/*! jQuery UI - v1.8.24 - 2012-09-28
* https://github.com/jquery/jquery-ui
* Includes: jquery.ui.core.js, jquery.ui.widget.js, jquery.ui.mouse.js, jquery.ui.draggable.js, jquery.ui.droppable.js, jquery.ui.resizable.js, jquery.ui.selectable.js, jquery.ui.sortable.js, jquery.effects.core.js, jquery.effects.blind.js, jquery.effects.bounce.js, jquery.effects.clip.js, jquery.effects.drop.js, jquery.effects.explode.js, jquery.effects.fade.js, jquery.effects.fold.js, jquery.effects.highlight.js, jquery.effects.pulsate.js, jquery.effects.scale.js, jquery.effects.shake.js, jquery.effects.slide.js, jquery.effects.transfer.js, jquery.ui.accordion.js, jquery.ui.autocomplete.js, jquery.ui.button.js, jquery.ui.datepicker.js, jquery.ui.dialog.js, jquery.ui.position.js, jquery.ui.progressbar.js, jquery.ui.slider.js, jquery.ui.tabs.js
* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */
(function(a, b) {
function c(b, c) {
var e = b.nodeName.toLowerCase();
if ("area" === e) {
var f = b.parentNode, g = f.name, h;
return !b.href || !g || f.nodeName.toLowerCase() !== "map" ? !1 : (h = a("img[usemap=#" + g + "]")[0],
!!h && d(h))
}
return (/input|select|textarea|button|object/.test(e) ? !b.disabled : "a" == e ? b.href || c : c) && d(b)
}
function d(b) {
return !a(b).parents().andSelf().filter(function() {
return a.curCSS(this, "visibility") === "hidden" || a.expr.filters.hidden(this)
}).length
}
a.ui = a.ui || {};
if (a.ui.version)
return;
a.extend(a.ui, {
version: "1.8.24",
keyCode: {
ALT: 18,
BACKSPACE: 8,
CAPS_LOCK: 20,
COMMA: 188,
COMMAND: 91,
COMMAND_LEFT: 91,
COMMAND_RIGHT: 93,
CONTROL: 17,
DELETE: 46,
DOWN: 40,
END: 35,
ENTER: 13,
ESCAPE: 27,
HOME: 36,
INSERT: 45,
LEFT: 37,
MENU: 93,
NUMPAD_ADD: 107,
NUMPAD_DECIMAL: 110,
NUMPAD_DIVIDE: 111,
NUMPAD_ENTER: 108,
NUMPAD_MULTIPLY: 106,
NUMPAD_SUBTRACT: 109,
PAGE_DOWN: 34,
PAGE_UP: 33,
PERIOD: 190,
RIGHT: 39,
SHIFT: 16,
SPACE: 32,
TAB: 9,
UP: 38,
WINDOWS: 91
}
}),
a.fn.extend({
propAttr: a.fn.prop || a.fn.attr,
_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)
},
scrollParent: function() {
var b;
return 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) : 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),
/fixed/.test(this.css("position")) || !b.length ? a(document) : b
},
zIndex: function(c) {
if (c !== b)
return this.css("zIndex", c);
if (this.length) {
var d = a(this[0]), e, f;
while (d.length && d[0] !== document) {
e = d.css("position");
if (e === "absolute" || e === "relative" || e === "fixed") {
f = parseInt(d.css("zIndex"), 10);
if (!isNaN(f) && f !== 0)
return f
}
d = d.parent()
}
}
return 0
},
disableSelection: function() {
return this.bind((a.support.selectstart ? "selectstart" : "mousedown") + ".ui-disableSelection", function(a) {
a.preventDefault()
})
},
enableSelection: function() {
return this.unbind(".ui-disableSelection")
}
}),
a("").outerWidth(1).jquery || a.each(["Width", "Height"], function(c, d) {
function h(b, c, d, f) {
return a.each(e, function() {
c -= parseFloat(a.curCSS(b, "padding" + this, !0)) || 0,
d && (c -= parseFloat(a.curCSS(b, "border" + this + "Width", !0)) || 0),
f && (c -= parseFloat(a.curCSS(b, "margin" + this, !0)) || 0)
}),
c
}
var e = d === "Width" ? ["Left", "Right"] : ["Top", "Bottom"]
, f = d.toLowerCase()
, g = {
innerWidth: a.fn.innerWidth,
innerHeight: a.fn.innerHeight,
outerWidth: a.fn.outerWidth,
outerHeight: a.fn.outerHeight
};
a.fn["inner" + d] = function(c) {
return c === b ? g["inner" + d].call(this) : this.each(function() {
a(this).css(f, h(this, c) + "px")
})
}
,
a.fn["outer" + d] = function(b, c) {
return typeof b != "number" ? g["outer" + d].call(this, b) : this.each(function() {
a(this).css(f, h(this, b, !0, c) + "px")
})
}
}),
a.extend(a.expr[":"], {
data: a.expr.createPseudo ? a.expr.createPseudo(function(b) {
return function(c) {
return !!a.data(c, b)
}
}) : function(b, c, d) {
return !!a.data(b, d[3])
}
,
focusable: function(b) {
return c(b, !isNaN(a.attr(b, "tabindex")))
},
tabbable: function(b) {
var d = a.attr(b, "tabindex")
, e = isNaN(d);
return (e || d >= 0) && c(b, !e)
}
}),
a(function() {
var b = document.body
, c = b.appendChild(c = document.createElement("div"));
c.offsetHeight,
a.extend(c.style, {
minHeight: "100px",
height: "auto",
padding: 0,
borderWidth: 0
}),
a.support.minHeight = c.offsetHeight === 100,
a.support.selectstart = "onselectstart"in c,
b.removeChild(c).style.display = "none"
}),
a.curCSS || (a.curCSS = a.css),
a.extend(a.ui, {
plugin: {
add: function(b, c, d) {
var e = a.ui[b].prototype;
for (var f in d)
e.plugins[f] = e.plugins[f] || [],
e.plugins[f].push([c, d[f]])
},
call: function(a, b, c) {
var d = a.plugins[b];
if (!d || !a.element[0].parentNode)
return;
for (var e = 0; e < d.length; e++)
a.options[d[e][0]] && d[e][1].apply(a.element, c)
}
},
contains: function(a, b) {
return document.compareDocumentPosition ? a.compareDocumentPosition(b) & 16 : a !== b && a.contains(b)
},
hasScroll: function(b, c) {
if (a(b).css("overflow") === "hidden")
return !1;
var d = c && c === "left" ? "scrollLeft" : "scrollTop"
, e = !1;
return b[d] > 0 ? !0 : (b[d] = 1,
e = b[d] > 0,
b[d] = 0,
e)
},
isOverAxis: function(a, b, c) {
return a > b && a < b + c
},
isOver: function(b, c, d, e, f, g) {
return a.ui.isOverAxis(b, d, f) && a.ui.isOverAxis(c, e, g)
}
})
}
)(jQuery),
function(a, b) {
if (a.cleanData) {
var c = a.cleanData;
a.cleanData = function(b) {
for (var d = 0, e; (e = b[d]) != null; d++)
try {
a(e).triggerHandler("remove")
} catch (f) {}
c(b)
}
} else {
var d = a.fn.remove;
a.fn.remove = function(b, c) {
return this.each(function() {
return c || (!b || a.filter(b, [this]).length) && a("*", this).add([this]).each(function() {
try {
a(this).triggerHandler("remove")
} catch (b) {}
}),
d.call(a(this), b, c)
})
}
}
a.widget = function(b, c, d) {
var e = b.split(".")[0], f;
b = b.split(".")[1],
f = e + "-" + b,
d || (d = c,
c = a.Widget),
a.expr[":"][f] = function(c) {
return !!a.data(c, b)
}
,
a[e] = a[e] || {},
a[e][b] = function(a, b) {
arguments.length && this._createWidget(a, b)
}
;
var g = new c;
g.options = a.extend(!0, {}, g.options),
a[e][b].prototype = a.extend(!0, g, {
namespace: e,
widgetName: b,
widgetEventPrefix: a[e][b].prototype.widgetEventPrefix || b,
widgetBaseClass: f
}, d),
a.widget.bridge(b, a[e][b])
}
,
a.widget.bridge = function(c, d) {
a.fn[c] = function(e) {
var f = typeof e == "string"
, g = Array.prototype.slice.call(arguments, 1)
, h = this;
return e = !f && g.length ? a.extend.apply(null, [!0, e].concat(g)) : e,
f && e.charAt(0) === "_" ? h : (f ? this.each(function() {
var d = a.data(this, c)
, f = d && a.isFunction(d[e]) ? d[e].apply(d, g) : d;
if (f !== d && f !== b)
return h = f,
!1
}) : this.each(function() {
var b = a.data(this, c);
b ? b.option(e || {})._init() : a.data(this, c, new d(e,this))
}),
h)
}
}
,
a.Widget = function(a, b) {
arguments.length && this._createWidget(a, b)
}
,
a.Widget.prototype = {
widgetName: "widget",
widgetEventPrefix: "",
options: {
disabled: !1
},
_createWidget: function(b, c) {
a.data(c, this.widgetName, this),
this.element = a(c),
this.options = a.extend(!0, {}, this.options, this._getCreateOptions(), b);
var d = this;
this.element.bind("remove." + this.widgetName, function() {
d.destroy()
}),
this._create(),
this._trigger("create"),
this._init()
},
_getCreateOptions: function() {
return a.metadata && a.metadata.get(this.element[0])[this.widgetName]
},
_create: function() {},
_init: function() {},
destroy: function() {
this.element.unbind("." + this.widgetName).removeData(this.widgetName),
this.widget().unbind("." + this.widgetName).removeAttr("aria-disabled").removeClass(this.widgetBaseClass + "-disabled " + "ui-state-disabled")
},
widget: function() {
return this.element
},
option: function(c, d) {
var e = c;
if (arguments.length === 0)
return a.extend({}, this.options);
if (typeof c == "string") {
if (d === b)
return this.options[c];
e = {},
e[c] = d
}
return this._setOptions(e),
this
},
_setOptions: function(b) {
var c = this;
return a.each(b, function(a, b) {
c._setOption(a, b)
}),
this
},
_setOption: function(a, b) {
return this.options[a] = b,
a === "disabled" && this.widget()[b ? "addClass" : "removeClass"](this.widgetBaseClass + "-disabled" + " " + "ui-state-disabled").attr("aria-disabled", b),
this
},
enable: function() {
return this._setOption("disabled", !1)
},
disable: function() {
return this._setOption("disabled", !0)
},
_trigger: function(b, c, d) {
var e, f, g = this.options[b];
d = d || {},
c = a.Event(c),
c.type = (b === this.widgetEventPrefix ? b : this.widgetEventPrefix + b).toLowerCase(),
c.target = this.element[0],
f = c.originalEvent;
if (f)
for (e in f)
e in c || (c[e] = f[e]);
return this.element.trigger(c, d),
!(a.isFunction(g) && g.call(this.element[0], c, d) === !1 || c.isDefaultPrevented())
}
}
}(jQuery),
function(a, b) {
var c = !1;
a(document).mouseup(function(a) {
c = !1
}),
a.widget("ui.mouse", {
options: {
cancel: ":input,option",
distance: 1,
delay: 0
},
_mouseInit: function() {
var b = this;
this.element.bind("mousedown." + this.widgetName, function(a) {
return b._mouseDown(a)
}).bind("click." + this.widgetName, function(c) {
if (!0 === a.data(c.target, b.widgetName + ".preventClickEvent"))
return a.removeData(c.target, b.widgetName + ".preventClickEvent"),
c.stopImmediatePropagation(),
!1
}),
this.started = !1
},
_mouseDestroy: function() {
this.element.unbind("." + this.widgetName),
this._mouseMoveDelegate && a(document).unbind("mousemove." + this.widgetName, this._mouseMoveDelegate).unbind("mouseup." + this.widgetName, this._mouseUpDelegate)
},
_mouseDown: function(b) {
if (c)
return;
this._mouseStarted && this._mouseUp(b),
this._mouseDownEvent = b;
var d = this
, e = b.which == 1
, f = typeof this.options.cancel == "string" && b.target.nodeName ? a(b.target).closest(this.options.cancel).length : !1;
if (!e || f || !this._mouseCapture(b))
return !0;
this.mouseDelayMet = !this.options.delay,
this.mouseDelayMet || (this._mouseDelayTimer = setTimeout(function() {
d.mouseDelayMet = !0
}, this.options.delay));
if (this._mouseDistanceMet(b) && this._mouseDelayMet(b)) {
this._mouseStarted = this._mouseStart(b) !== !1;
if (!this._mouseStarted)
return b.preventDefault(),
!0
}
return !0 === a.data(b.target, this.widgetName + ".preventClickEvent") && a.removeData(b.target, this.widgetName + ".preventClickEvent"),
this._mouseMoveDelegate = function(a) {
return d._mouseMove(a)
}
,
this._mouseUpDelegate = function(a) {
return d._mouseUp(a)
}
,
a(document).bind("mousemove." + this.widgetName, this._mouseMoveDelegate).bind("mouseup." + this.widgetName, this._mouseUpDelegate),
b.preventDefault(),
c = !0,
!0
},
_mouseMove: function(b) {
return !a.browser.msie || document.documentMode >= 9 || !!b.button ? this._mouseStarted ? (this._mouseDrag(b),
b.preventDefault()) : (this._mouseDistanceMet(b) && this._mouseDelayMet(b) && (this._mouseStarted = this._mouseStart(this._mouseDownEvent, b) !== !1,
this._mouseStarted ? this._mouseDrag(b) : this._mouseUp(b)),
!this._mouseStarted) : this._mouseUp(b)
},
_mouseUp: function(b) {
return a(document).unbind("mousemove." + this.widgetName, this._mouseMoveDelegate).unbind("mouseup." + this.widgetName, this._mouseUpDelegate),
this._mouseStarted && (this._mouseStarted = !1,
b.target == this._mouseDownEvent.target && a.data(b.target, this.widgetName + ".preventClickEvent", !0),
this._mouseStop(b)),
!1
},
_mouseDistanceMet: function(a) {
return Math.max(Math.abs(this._mouseDownEvent.pageX - a.pageX), Math.abs(this._mouseDownEvent.pageY - a.pageY)) >= this.options.distance
},
_mouseDelayMet: function(a) {
return this.mouseDelayMet
},
_mouseStart: function(a) {},
_mouseDrag: function(a) {},
_mouseStop: function(a) {},
_mouseCapture: function(a) {
return !0
}
})
}(jQuery),
function(a, b) {
a.widget("ui.draggable", a.ui.mouse, {
widgetEventPrefix: "drag",
options: {
addClasses: !0,
appendTo: "parent",
axis: !1,
connectToSortable: !1,
containment: !1,
cursor: "auto",
cursorAt: !1,
grid: !1,
handle: !1,
helper: "original",
iframeFix: !1,
opacity: !1,
refreshPositions: !1,
revert: !1,
revertDuration: 500,
scope: "default",
scroll: !0,
scrollSensitivity: 20,
scrollSpeed: 20,
snap: !1,
snapMode: "both",
snapTolerance: 20,
stack: !1,
zIndex: !1
},
_create: function() {
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;
return this.element.removeData("draggable").unbind(".draggable").removeClass("ui-draggable ui-draggable-dragging ui-draggable-disabled"),
this._mouseDestroy(),
this
},
_mouseCapture: function(b) {
var c = this.options;
return this.helper || c.disabled || a(b.target).is(".ui-resizable-handle") ? !1 : (this.handle = this._getHandle(b),
this.handle ? (c.iframeFix && a(c.iframeFix === !0 ? "iframe" : c.iframeFix).each(function() {
a('').css({
width: this.offsetWidth + "px",
height: this.offsetHeight + "px",
position: "absolute",
opacity: "0.001",
zIndex: 1e3
}).css(a(this).offset()).appendTo("body")
}),
!0) : !1)
},
_mouseStart: function(b) {
var c = this.options;
return this.helper = this._createHelper(b),
this.helper.addClass("ui-draggable-dragging"),
this._cacheHelperProportions(),
a.ui.ddmanager && (a.ui.ddmanager.current = this),
this._cacheMargins(),
this.cssPosition = this.helper.css("position"),
this.scrollParent = this.helper.scrollParent(),
this.offset = this.positionAbs = this.element.offset(),
this.offset = {
top: this.offset.top - this.margins.top,
left: this.offset.left - this.margins.left
},
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.position = this._generatePosition(b),
this.originalPageX = b.pageX,
this.originalPageY = b.pageY,
c.cursorAt && this._adjustOffsetFromHelper(c.cursorAt),
c.containment && this._setContainment(),
this._trigger("start", b) === !1 ? (this._clear(),
!1) : (this._cacheHelperProportions(),
a.ui.ddmanager && !c.dropBehaviour && a.ui.ddmanager.prepareOffsets(this, b),
this._mouseDrag(b, !0),
a.ui.ddmanager && a.ui.ddmanager.dragStart(this, b),
!0)
},
_mouseDrag: function(b, c) {
this.position = this._generatePosition(b),
this.positionAbs = this._convertPositionTo("absolute");
if (!c) {
var d = this._uiHash();
if (this._trigger("drag", b, d) === !1)
return this._mouseUp({}),
!1;
this.position = d.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";
return a.ui.ddmanager && a.ui.ddmanager.drag(this, b),
!1
},
_mouseStop: function(b) {
var c = !1;
a.ui.ddmanager && !this.options.dropBehaviour && (c = a.ui.ddmanager.drop(this, b)),
this.dropped && (c = this.dropped,
this.dropped = !1);
var d = this.element[0]
, e = !1;
while (d && (d = d.parentNode))
d == document && (e = !0);
if (!e && this.options.helper === "original")
return !1;
if (this.options.revert == "invalid" && !c || this.options.revert == "valid" && c || this.options.revert === !0 || a.isFunction(this.options.revert) && this.options.revert.call(this.element, c)) {
var f = this;
a(this.helper).animate(this.originalPosition, parseInt(this.options.revertDuration, 10), function() {
f._trigger("stop", b) !== !1 && f._clear()
})
} else
this._trigger("stop", b) !== !1 && this._clear();
return !1
},
_mouseUp: function(b) {
return a("div.ui-draggable-iframeFix").each(function() {
this.parentNode.removeChild(this)
}),
a.ui.ddmanager && a.ui.ddmanager.dragStop(this, b),
a.ui.mouse.prototype._mouseUp.call(this, b)
},
cancel: function() {
return this.helper.is(".ui-draggable-dragging") ? this._mouseUp({}) : this._clear(),
this
},
_getHandle: function(b) {
var c = !this.options.handle || !a(this.options.handle, this.element).length ? !0 : !1;
return a(this.options.handle, this.element).find("*").andSelf().each(function() {
this == b.target && (c = !0)
}),
c
},
_createHelper: function(b) {
var c = this.options
, d = a.isFunction(c.helper) ? a(c.helper.apply(this.element[0], [b])) : c.helper == "clone" ? this.element.clone().removeAttr("id") : this.element;
return d.parents("body").length || d.appendTo(c.appendTo == "parent" ? this.element[0].parentNode : c.appendTo),
d[0] != this.element[0] && !/(fixed|absolute)/.test(d.css("position")) && d.css("position", "absolute"),
d
},
_adjustOffsetFromHelper: function(b) {
typeof b == "string" && (b = b.split(" ")),
a.isArray(b) && (b = {
left: +b[0],
top: +b[1] || 0
}),
"left"in b && (this.offset.click.left = b.left + this.margins.left),
"right"in b && (this.offset.click.left = this.helperProportions.width - b.right + this.margins.left),
"top"in b && (this.offset.click.top = b.top + this.margins.top),
"bottom"in b && (this.offset.click.top = this.helperProportions.height - b.bottom + this.margins.top)
},
_getParentOffset: function() {
this.offsetParent = this.helper.offsetParent();
var b = this.offsetParent.offset();
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 a = this.element.position();
return {
top: a.top - (parseInt(this.helper.css("top"), 10) || 0) + this.scrollParent.scrollTop(),
left: a.left - (parseInt(this.helper.css("left"), 10) || 0) + this.scrollParent.scrollLeft()
}
}
return {
top: 0,
left: 0
}
},
_cacheMargins: function() {
this.margins = {
left: parseInt(this.element.css("marginLeft"), 10) || 0,
top: parseInt(this.element.css("marginTop"), 10) || 0,
right: parseInt(this.element.css("marginRight"), 10) || 0,
bottom: parseInt(this.element.css("marginBottom"), 10) || 0
}
},
_cacheHelperProportions: function() {
this.helperProportions = {
width: this.helper.outerWidth(),
height: this.helper.outerHeight()
}
},
_setContainment: function() {
var b = this.options;
b.containment == "parent" && (b.containment = this.helper[0].parentNode);
if (b.containment == "document" || b.containment == "window")
this.containment = [b.containment == "document" ? 0 : a(window).scrollLeft() - this.offset.relative.left - this.offset.parent.left, b.containment == "document" ? 0 : a(window).scrollTop() - this.offset.relative.top - this.offset.parent.top, (b.containment == "document" ? 0 : a(window).scrollLeft()) + a(b.containment == "document" ? document : window).width() - this.helperProportions.width - this.margins.left, (b.containment == "document" ? 0 : a(window).scrollTop()) + (a(b.containment == "document" ? document : window).height() || document.body.parentNode.scrollHeight) - this.helperProportions.height - this.margins.top];
if (!/^(document|window|parent)$/.test(b.containment) && b.containment.constructor != Array) {
var c = a(b.containment)
, d = c[0];
if (!d)
return;
var e = c.offset()
, f = a(d).css("overflow") != "hidden";
this.containment = [(parseInt(a(d).css("borderLeftWidth"), 10) || 0) + (parseInt(a(d).css("paddingLeft"), 10) || 0), (parseInt(a(d).css("borderTopWidth"), 10) || 0) + (parseInt(a(d).css("paddingTop"), 10) || 0), (f ? Math.max(d.scrollWidth, d.offsetWidth) : d.offsetWidth) - (parseInt(a(d).css("borderLeftWidth"), 10) || 0) - (parseInt(a(d).css("paddingRight"), 10) || 0) - this.helperProportions.width - this.margins.left - this.margins.right, (f ? Math.max(d.scrollHeight, d.offsetHeight) : d.offsetHeight) - (parseInt(a(d).css("borderTopWidth"), 10) || 0) - (parseInt(a(d).css("paddingBottom"), 10) || 0) - this.helperProportions.height - this.margins.top - this.margins.bottom],
this.relative_container = c
} else
b.containment.constructor == Array && (this.containment = b.containment)
},
_convertPositionTo: function(b, c) {
c || (c = this.position);
var d = b == "absolute" ? 1 : -1
, e = this.options
, f = 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(f[0].tagName);
return {
top: c.top + this.offset.relative.top * d + this.offset.parent.top * d - (a.browser.safari && a.browser.version < 526 && this.cssPosition == "fixed" ? 0 : (this.cssPosition == "fixed" ? -this.scrollParent.scrollTop() : g ? 0 : f.scrollTop()) * d),
left: c.left + this.offset.relative.left * d + this.offset.parent.left * d - (a.browser.safari && a.browser.version < 526 && this.cssPosition == "fixed" ? 0 : (this.cssPosition == "fixed" ? -this.scrollParent.scrollLeft() : g ? 0 : f.scrollLeft()) * d)
}
},
_generatePosition: function(b) {
var c = this.options
, d = this.cssPosition == "absolute" && (this.scrollParent[0] == document || !a.ui.contains(this.scrollParent[0], this.offsetParent[0])) ? this.offsetParent : this.scrollParent
, e = /(html|body)/i.test(d[0].tagName)
, f = b.pageX
, g = b.pageY;
if (this.originalPosition) {
var h;
if (this.containment) {
if (this.relative_container) {
var i = this.relative_container.offset();
h = [this.containment[0] + i.left, this.containment[1] + i.top, this.containment[2] + i.left, this.containment[3] + i.top]
} else
h = this.containment;
b.pageX - this.offset.click.left < h[0] && (f = h[0] + this.offset.click.left),
b.pageY - this.offset.click.top < h[1] && (g = h[1] + this.offset.click.top),
b.pageX - this.offset.click.left > h[2] && (f = h[2] + this.offset.click.left),
b.pageY - this.offset.click.top > h[3] && (g = h[3] + this.offset.click.top)
}
if (c.grid) {
var j = c.grid[1] ? this.originalPageY + Math.round((g - this.originalPageY) / c.grid[1]) * c.grid[1] : this.originalPageY;
g = h ? j - this.offset.click.top < h[1] || j - this.offset.click.top > h[3] ? j - this.offset.click.top < h[1] ? j + c.grid[1] : j - c.grid[1] : j : j;
var k = c.grid[0] ? this.originalPageX + Math.round((f - this.originalPageX) / c.grid[0]) * c.grid[0] : this.originalPageX;
f = h ? k - this.offset.click.left < h[0] || k - this.offset.click.left > h[2] ? k - this.offset.click.left < h[0] ? k + c.grid[0] : k - c.grid[0] : k : k
}
}
return {
top: g - this.offset.click.top - this.offset.relative.top - this.offset.parent.top + (a.browser.safari && a.browser.version < 526 && this.cssPosition == "fixed" ? 0 : this.cssPosition == "fixed" ? -this.scrollParent.scrollTop() : e ? 0 : d.scrollTop()),
left: f - this.offset.click.left - this.offset.relative.left - this.offset.parent.left + (a.browser.safari && a.browser.version < 526 && this.cssPosition == "fixed" ? 0 : this.cssPosition == "fixed" ? -this.scrollParent.scrollLeft() : e ? 0 : d.scrollLeft())
}
},
_clear: function() {
this.helper.removeClass("ui-draggable-dragging"),
this.helper[0] != this.element[0] && !this.cancelHelperRemoval && this.helper.remove(),
this.helper = null,
this.cancelHelperRemoval = !1
},
_trigger: function(b, c, d) {
return d = d || this._uiHash(),
a.ui.plugin.call(this, b, [c, d]),
b == "drag" && (this.positionAbs = this._convertPositionTo("absolute")),
a.Widget.prototype._trigger.call(this, b, c, d)
},
plugins: {},
_uiHash: function(a) {
return {
helper: this.helper,
position: this.position,
originalPosition: this.originalPosition,
offset: this.positionAbs
}
}
}),
a.extend(a.ui.draggable, {
version: "1.8.24"
}),
a.ui.plugin.add("draggable", "connectToSortable", {
start: function(b, c) {
var d = a(this).data("draggable")
, e = d.options
, f = a.extend({}, c, {
item: d.element
});
d.sortables = [],
a(e.connectToSortable).each(function() {
var c = a.data(this, "sortable");
c && !c.options.disabled && (d.sortables.push({
instance: c,
shouldRevert: c.options.revert
}),
c.refreshPositions(),
c._trigger("activate", b, f))
})
},
stop: function(b, c) {
var d = a(this).data("draggable")
, e = a.extend({}, c, {
item: d.element
});
a.each(d.sortables, function() {
this.instance.isOver ? (this.instance.isOver = 0,
d.cancelHelperRemoval = !0,
this.instance.cancelHelperRemoval = !1,
this.shouldRevert && (this.instance.options.revert = !0),
this.instance._mouseStop(b),
this.instance.options.helper = this.instance.options._helper,
d.options.helper == "original" && this.instance.currentItem.css({
top: "auto",
left: "auto"
})) : (this.instance.cancelHelperRemoval = !1,
this.instance._trigger("deactivate", b, e))
})
},
drag: function(b, c) {
var d = a(this).data("draggable")
, e = this
, f = function(b) {
var c = this.offset.click.top
, d = this.offset.click.left
, e = this.positionAbs.top
, f = this.positionAbs.left
, g = b.height
, h = b.width
, i = b.top
, j = b.left;
return a.ui.isOver(e + c, f + d, i, j, g, h)
};
a.each(d.sortables, function(f) {
this.instance.positionAbs = d.positionAbs,
this.instance.helperProportions = d.helperProportions,
this.instance.offset.click = d.offset.click,
this.instance._intersectsWith(this.instance.containerCache) ? (this.instance.isOver || (this.instance.isOver = 1,
this.instance.currentItem = a(e).clone().removeAttr("id").appendTo(this.instance.element).data("sortable-item", !0),
this.instance.options._helper = this.instance.options.helper,
this.instance.options.helper = function() {
return c.helper[0]
}
,
b.target = this.instance.currentItem[0],
this.instance._mouseCapture(b, !0),
this.instance._mouseStart(b, !0, !0),
this.instance.offset.click.top = d.offset.click.top,
this.instance.offset.click.left = d.offset.click.left,
this.instance.offset.parent.left -= d.offset.parent.left - this.instance.offset.parent.left,
this.instance.offset.parent.top -= d.offset.parent.top - this.instance.offset.parent.top,
d._trigger("toSortable", b),
d.dropped = this.instance.element,
d.currentItem = d.element,
this.instance.fromOutside = d),
this.instance.currentItem && this.instance._mouseDrag(b)) : this.instance.isOver && (this.instance.isOver = 0,
this.instance.cancelHelperRemoval = !0,
this.instance.options.revert = !1,
this.instance._trigger("out", b, this.instance._uiHash(this.instance)),
this.instance._mouseStop(b, !0),
this.instance.options.helper = this.instance.options._helper,
this.instance.currentItem.remove(),
this.instance.placeholder && this.instance.placeholder.remove(),
d._trigger("fromSortable", b),
d.dropped = !1)
})
}
}),
a.ui.plugin.add("draggable", "cursor", {
start: function(b, c) {
var d = a("body")
, e = a(this).data("draggable").options;
d.css("cursor") && (e._cursor = d.css("cursor")),
d.css("cursor", e.cursor)
},
stop: function(b, c) {
var d = a(this).data("draggable").options;
d._cursor && a("body").css("cursor", d._cursor)
}
}),
a.ui.plugin.add("draggable", "opacity", {
start: function(b, c) {
var d = a(c.helper)
, e = a(this).data("draggable").options;
d.css("opacity") && (e._opacity = d.css("opacity")),
d.css("opacity", e.opacity)
},
stop: function(b, c) {
var d = a(this).data("draggable").options;
d._opacity && a(c.helper).css("opacity", d._opacity)
}
}),
a.ui.plugin.add("draggable", "scroll", {
start: function(b, c) {
var d = a(this).data("draggable");
d.scrollParent[0] != document && d.scrollParent[0].tagName != "HTML" && (d.overflowOffset = d.scrollParent.offset())
},
drag: function(b, c) {
var d = a(this).data("draggable")
, e = d.options
, f = !1;
if (d.scrollParent[0] != document && d.scrollParent[0].tagName != "HTML") {
if (!e.axis || e.axis != "x")
d.overflowOffset.top + d.scrollParent[0].offsetHeight - b.pageY < e.scrollSensitivity ? d.scrollParent[0].scrollTop = f = d.scrollParent[0].scrollTop + e.scrollSpeed : b.pageY - d.overflowOffset.top < e.scrollSensitivity && (d.scrollParent[0].scrollTop = f = d.scrollParent[0].scrollTop - e.scrollSpeed);
if (!e.axis || e.axis != "y")
d.overflowOffset.left + d.scrollParent[0].offsetWidth - b.pageX < e.scrollSensitivity ? d.scrollParent[0].scrollLeft = f = d.scrollParent[0].scrollLeft + e.scrollSpeed : b.pageX - d.overflowOffset.left < e.scrollSensitivity && (d.scrollParent[0].scrollLeft = f = d.scrollParent[0].scrollLeft - e.scrollSpeed)
} else {
if (!e.axis || e.axis != "x")
b.pageY - a(document).scrollTop() < e.scrollSensitivity ? f = a(document).scrollTop(a(document).scrollTop() - e.scrollSpeed) : a(window).height() - (b.pageY - a(document).scrollTop()) < e.scrollSensitivity && (f = a(document).scrollTop(a(document).scrollTop() + e.scrollSpeed));
if (!e.axis || e.axis != "y")
b.pageX - a(document).scrollLeft() < e.scrollSensitivity ? f = a(document).scrollLeft(a(document).scrollLeft() - e.scrollSpeed) : a(window).width() - (b.pageX - a(document).scrollLeft()) < e.scrollSensitivity && (f = a(document).scrollLeft(a(document).scrollLeft() + e.scrollSpeed))
}
f !== !1 && a.ui.ddmanager && !e.dropBehaviour && a.ui.ddmanager.prepareOffsets(d, b)
}
}),
a.ui.plugin.add("draggable", "snap", {
start: function(b, c) {
var d = a(this).data("draggable")
, e = d.options;
d.snapElements = [],
a(e.snap.constructor != String ? e.snap.items || ":data(draggable)" : e.snap).each(function() {
var b = a(this)
, c = b.offset();
this != d.element[0] && d.snapElements.push({
item: this,
width: b.outerWidth(),
height: b.outerHeight(),
top: c.top,
left: c.left
})
})
},
drag: function(b, c) {
var d = a(this).data("draggable")
, e = d.options
, f = e.snapTolerance
, g = c.offset.left
, h = g + d.helperProportions.width
, i = c.offset.top
, j = i + d.helperProportions.height;
for (var k = d.snapElements.length - 1; k >= 0; k--) {
var l = d.snapElements[k].left
, m = l + d.snapElements[k].width
, n = d.snapElements[k].top
, o = n + d.snapElements[k].height;
if (!(l - f < g && g < m + f && n - f < i && i < o + f || l - f < g && g < m + f && n - f < j && j < o + f || l - f < h && h < m + f && n - f < i && i < o + f || l - f < h && h < m + f && n - f < j && j < o + f)) {
d.snapElements[k].snapping && d.options.snap.release && d.options.snap.release.call(d.element, b, a.extend(d._uiHash(), {
snapItem: d.snapElements[k].item
})),
d.snapElements[k].snapping = !1;
continue
}
if (e.snapMode != "inner") {
var p = Math.abs(n - j) <= f
, q = Math.abs(o - i) <= f
, r = Math.abs(l - h) <= f
, s = Math.abs(m - g) <= f;
p && (c.position.top = d._convertPositionTo("relative", {
top: n - d.helperProportions.height,
left: 0
}).top - d.margins.top),
q && (c.position.top = d._convertPositionTo("relative", {
top: o,
left: 0
}).top - d.margins.top),
r && (c.position.left = d._convertPositionTo("relative", {
top: 0,
left: l - d.helperProportions.width
}).left - d.margins.left),
s && (c.position.left = d._convertPositionTo("relative", {
top: 0,
left: m
}).left - d.margins.left)
}
var t = p || q || r || s;
if (e.snapMode != "outer") {
var p = Math.abs(n - i) <= f
, q = Math.abs(o - j) <= f
, r = Math.abs(l - g) <= f
, s = Math.abs(m - h) <= f;
p && (c.position.top = d._convertPositionTo("relative", {
top: n,
left: 0
}).top - d.margins.top),
q && (c.position.top = d._convertPositionTo("relative", {
top: o - d.helperProportions.height,
left: 0
}).top - d.margins.top),
r && (c.position.left = d._convertPositionTo("relative", {
top: 0,
left: l
}).left - d.margins.left),
s && (c.position.left = d._convertPositionTo("relative", {
top: 0,
left: m - d.helperProportions.width
}).left - d.margins.left)
}
!d.snapElements[k].snapping && (p || q || r || s || t) && d.options.snap.snap && d.options.snap.snap.call(d.element, b, a.extend(d._uiHash(), {
snapItem: d.snapElements[k].item
})),
d.snapElements[k].snapping = p || q || r || s || t
}
}
}),
a.ui.plugin.add("draggable", "stack", {
start: function(b, c) {
var d = a(this).data("draggable").options
, e = a.makeArray(a(d.stack)).sort(function(b, c) {
return (parseInt(a(b).css("zIndex"), 10) || 0) - (parseInt(a(c).css("zIndex"), 10) || 0)
});
if (!e.length)
return;
var f = parseInt(e[0].style.zIndex) || 0;
a(e).each(function(a) {
this.style.zIndex = f + a
}),
this[0].style.zIndex = f + e.length
}
}),
a.ui.plugin.add("draggable", "zIndex", {
start: function(b, c) {
var d = a(c.helper)
, e = a(this).data("draggable").options;
d.css("zIndex") && (e._zIndex = d.css("zIndex")),
d.css("zIndex", e.zIndex)
},
stop: function(b, c) {
var d = a(this).data("draggable").options;
d._zIndex && a(c.helper).css("zIndex", d._zIndex)
}
})
}(jQuery),
function(a, b) {
a.widget("ui.droppable", {
widgetEventPrefix: "drop",
options: {
accept: "*",
activeClass: !1,
addClasses: !0,
greedy: !1,
hoverClass: !1,
scope: "default",
tolerance: "intersect"
},
_create: function() {
var b = this.options
, c = b.accept;
this.isover = 0,
this.isout = 1,
this.accept = a.isFunction(c) ? c : function(a) {
return a.is(c)
}
,
this.proportions = {
width: this.element[0].offsetWidth,
height: this.element[0].offsetHeight
},
a.ui.ddmanager.droppables[b.scope] = a.ui.ddmanager.droppables[b.scope] || [],
a.ui.ddmanager.droppables[b.scope].push(this),
b.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++)
b[c] == this && b.splice(c, 1);
return this.element.removeClass("ui-droppable ui-droppable-disabled").removeData("droppable").unbind(".droppable"),
this
},
_setOption: function(b, c) {
b == "accept" && (this.accept = a.isFunction(c) ? c : function(a) {
return a.is(c)
}
),
a.Widget.prototype._setOption.apply(this, arguments)
},
_activate: function(b) {
var c = a.ui.ddmanager.current;
this.options.activeClass && this.element.addClass(this.options.activeClass),
c && this._trigger("activate", b, this.ui(c))
},
_deactivate: function(b) {
var c = a.ui.ddmanager.current;
this.options.activeClass && this.element.removeClass(this.options.activeClass),
c && this._trigger("deactivate", b, this.ui(c))
},
_over: function(b) {
var c = a.ui.ddmanager.current;
if (!c || (c.currentItem || c.element)[0] == this.element[0])
return;
this.accept.call(this.element[0], c.currentItem || c.element) && (this.options.hoverClass && this.element.addClass(this.options.hoverClass),
this._trigger("over", b, this.ui(c)))
},
_out: function(b) {
var c = a.ui.ddmanager.current;
if (!c || (c.currentItem || c.element)[0] == this.element[0])
return;
this.accept.call(this.element[0], c.currentItem || c.element) && (this.options.hoverClass && this.element.removeClass(this.options.hoverClass),
this._trigger("out", b, this.ui(c)))
},
_drop: function(b, c) {
var d = c || a.ui.ddmanager.current;
if (!d || (d.currentItem || d.element)[0] == this.element[0])
return !1;
var e = !1;
return this.element.find(":data(droppable)").not(".ui-draggable-dragging").each(function() {
var b = a.data(this, "droppable");
if (b.options.greedy && !b.options.disabled && b.options.scope == d.options.scope && b.accept.call(b.element[0], d.currentItem || d.element) && a.ui.intersect(d, a.extend(b, {
offset: b.element.offset()
}), b.options.tolerance))
return e = !0,
!1
}),
e ? !1 : this.accept.call(this.element[0], d.currentItem || d.element) ? (this.options.activeClass && this.element.removeClass(this.options.activeClass),
this.options.hoverClass && this.element.removeClass(this.options.hoverClass),
this._trigger("drop", b, this.ui(d)),
this.element) : !1
},
ui: function(a) {
return {
draggable: a.currentItem || a.element,
helper: a.helper,
position: a.position,
offset: a.positionAbs
}
}
}),
a.extend(a.ui.droppable, {
version: "1.8.24"
}),
a.ui.intersect = function(b, c, d) {
if (!c.offset)
return !1;
var e = (b.positionAbs || b.position.absolute).left
, f = e + b.helperProportions.width
, g = (b.positionAbs || b.position.absolute).top
, h = g + b.helperProportions.height
, i = c.offset.left
, j = i + c.proportions.width
, k = c.offset.top
, l = k + c.proportions.height;
switch (d) {
case "fit":
return i <= e && f <= j && k <= g && h <= l;
case "intersect":
return i < e + b.helperProportions.width / 2 && f - b.helperProportions.width / 2 < j && k < g + b.helperProportions.height / 2 && h - b.helperProportions.height / 2 < l;
case "pointer":
var m = (b.positionAbs || b.position.absolute).left + (b.clickOffset || b.offset.click).left
, n = (b.positionAbs || b.position.absolute).top + (b.clickOffset || b.offset.click).top
, o = a.ui.isOver(n, m, k, i, c.proportions.height, c.proportions.width);
return o;
case "touch":
return (g >= k && g <= l || h >= k && h <= l || g < k && h > l) && (e >= i && e <= j || f >= i && f <= j || e < i && f > j);
default:
return !1
}
}
,
a.ui.ddmanager = {
current: null,
droppables: {
"default": []
},
prepareOffsets: function(b, c) {
var d = a.ui.ddmanager.droppables[b.options.scope] || []
, e = c ? c.type : null
, f = (b.currentItem || b.element).find(":data(droppable)").andSelf();
g: for (var h = 0; h < d.length; h++) {
if (d[h].options.disabled || b && !d[h].accept.call(d[h].element[0], b.currentItem || b.element))
continue;
for (var i = 0; i < f.length; i++)
if (f[i] == d[h].element[0]) {
d[h].proportions.height = 0;
continue g
}
d[h].visible = d[h].element.css("display") != "none";
if (!d[h].visible)
continue;
e == "mousedown" && d[h]._activate.call(d[h], c),
d[h].offset = d[h].element.offset(),
d[h].proportions = {
width: d[h].element[0].offsetWidth,
height: d[h].element[0].offsetHeight
}
}
},
drop: function(b, c) {
var d = !1;
return a.each(a.ui.ddmanager.droppables[b.options.scope] || [], function() {
if (!this.options)
return;
!this.options.disabled && this.visible && a.ui.intersect(b, this, this.options.tolerance) && (d = this._drop.call(this, c) || d),
!this.options.disabled && this.visible && this.accept.call(this.element[0], b.currentItem || b.element) && (this.isout = 1,
this.isover = 0,
this._deactivate.call(this, c))
}),
d
},
dragStart: function(b, c) {
b.element.parents(":not(body,html)").bind("scroll.droppable", function() {
b.options.refreshPositions || a.ui.ddmanager.prepareOffsets(b, c)
})
},
drag: function(b, c) {
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 d = a.ui.intersect(b, this, this.options.tolerance)
, e = !d && this.isover == 1 ? "isout" : d && this.isover == 0 ? "isover" : null;
if (!e)
return;
var f;
if (this.options.greedy) {
var g = this.options.scope
, h = this.element.parents(":data(droppable)").filter(function() {
return a.data(this, "droppable").options.scope === g
});
h.length && (f = a.data(h[0], "droppable"),
f.greedyChild = e == "isover" ? 1 : 0)
}
f && e == "isover" && (f.isover = 0,
f.isout = 1,
f._out.call(f, c)),
this[e] = 1,
this[e == "isout" ? "isover" : "isout"] = 0,
this[e == "isover" ? "_over" : "_out"].call(this, c),
f && e == "isout" && (f.isout = 0,
f.isover = 1,
f._over.call(f, c))
})
},
dragStop: function(b, c) {
b.element.parents(":not(body,html)").unbind("scroll.droppable"),
b.options.refreshPositions || a.ui.ddmanager.prepareOffsets(b, c)
}
}
}(jQuery),
function(a, b) {
a.widget("ui.resizable", a.ui.mouse, {
widgetEventPrefix: "resize",
options: {
alsoResize: !1,
animate: !1,
animateDuration: "slow",
animateEasing: "swing",
aspectRatio: !1,
autoHide: !1,
containment: !1,
ghost: !1,
grid: !1,
handles: "e,s,se",
helper: !1,
maxHeight: null,
maxWidth: null,
minHeight: 10,
minWidth: 10,
zIndex: 1e3
},
_create: function() {
var b = this
, c = this.options;
this.element.addClass("ui-resizable"),
a.extend(this, {
_aspectRatio: !!c.aspectRatio,
aspectRatio: c.aspectRatio,
originalElement: this.element,
_proportionallyResizeElements: [],
_helper: c.helper || c.ghost || c.animate ? c.helper || "ui-resizable-helper" : null
}),
this.element[0].nodeName.match(/canvas|textarea|input|select|button|img/i) && (this.element.wrap(a('').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 = !0,
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 = c.handles || (a(".ui-resizable-handle", this.element).length ? {
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"
} : "e,s,se");
if (this.handles.constructor == String) {
this.handles == "all" && (this.handles = "n,e,s,w,se,sw,ne,nw");
var d = this.handles.split(",");
this.handles = {};
for (var e = 0; e < d.length; e++) {
var f = a.trim(d[e])
, g = "ui-resizable-" + f
, h = a('');
h.css({
zIndex: c.zIndex
}),
"se" == f && h.addClass("ui-icon ui-icon-gripsmall-diagonal-se"),
this.handles[f] = ".ui-resizable-" + f,
this.element.append(h)
}
}
this._renderAxis = function(b) {
b = b || this.element;
for (var c in this.handles) {
this.handles[c].constructor == String && (this.handles[c] = a(this.handles[c], this.element).show());
if (this.elementIsWrapper && this.originalElement[0].nodeName.match(/textarea|input|select|button/i)) {
var d = a(this.handles[c], this.element)
, e = 0;
e = /sw|ne|nw|se|n|s/.test(c) ? d.outerHeight() : d.outerWidth();
var f = ["padding", /ne|nw|n/.test(c) ? "Top" : /se|sw|s/.test(c) ? "Bottom" : /^e$/.test(c) ? "Right" : "Left"].join("");
b.css(f, e),
this._proportionallyResize()
}
if (!a(this.handles[c]).length)
continue
}
}
,
this._renderAxis(this.element),
this._handles = a(".ui-resizable-handle", this.element).disableSelection(),
this._handles.mouseover(function() {
if (!b.resizing) {
if (this.className)
var a = this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i);
b.axis = a && a[1] ? a[1] : "se"
}
}),
c.autoHide && (this._handles.hide(),
a(this.element).addClass("ui-resizable-autohide").hover(function() {
if (c.disabled)
return;
a(this).removeClass("ui-resizable-autohide"),
b._handles.show()
}, function() {
if (c.disabled)
return;
b.resizing || (a(this).addClass("ui-resizable-autohide"),
b._handles.hide())
})),
this._mouseInit()
},
destroy: function() {
this._mouseDestroy();
var b = function(b) {
a(b).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").unbind(".resizable").find(".ui-resizable-handle").remove()
};
if (this.elementIsWrapper) {
b(this.element);
var c = this.element;
c.after(this.originalElement.css({
position: c.css("position"),
width: c.outerWidth(),
height: c.outerHeight(),
top: c.css("top"),
left: c.css("left")
})).remove()
}
return this.originalElement.css("resize", this.originalResizeStyle),
b(this.originalElement),
this
},
_mouseCapture: function(b) {
var c = !1;
for (var d in this.handles)
a(this.handles[d])[0] == b.target && (c = !0);
return !this.options.disabled && c
},
_mouseStart: function(b) {
var d = this.options
, e = this.element.position()
, f = this.element;
this.resizing = !0,
this.documentScroll = {
top: a(document).scrollTop(),
left: a(document).scrollLeft()
},
(f.is(".ui-draggable") || /absolute/.test(f.css("position"))) && f.css({
position: "absolute",
top: e.top,
left: e.left
}),
this._renderProxy();
var g = c(this.helper.css("left"))
, h = c(this.helper.css("top"));
d.containment && (g += a(d.containment).scrollLeft() || 0,
h += a(d.containment).scrollTop() || 0),
this.offset = this.helper.offset(),
this.position = {
left: g,
top: h
},
this.size = this._helper ? {
width: f.outerWidth(),
height: f.outerHeight()
} : {
width: f.width(),
height: f.height()
},
this.originalSize = this._helper ? {
width: f.outerWidth(),
height: f.outerHeight()
} : {
width: f.width(),
height: f.height()
},
this.originalPosition = {
left: g,
top: h
},
this.sizeDiff = {
width: f.outerWidth() - f.width(),
height: f.outerHeight() - f.height()
},
this.originalMousePosition = {
left: b.pageX,
top: b.pageY
},
this.aspectRatio = typeof d.aspectRatio == "number" ? d.aspectRatio : this.originalSize.width / this.originalSize.height || 1;
var i = a(".ui-resizable-" + this.axis).css("cursor");
return a("body").css("cursor", i == "auto" ? this.axis + "-resize" : i),
f.addClass("ui-resizable-resizing"),
this._propagate("start", b),
!0
},
_mouseDrag: function(b) {
var c = this.helper
, d = this.options
, e = {}
, f = this
, g = this.originalMousePosition
, h = this.axis
, i = b.pageX - g.left || 0
, j = b.pageY - g.top || 0
, k = this._change[h];
if (!k)
return !1;
var l = k.apply(this, [b, i, j])
, m = a.browser.msie && a.browser.version < 7
, n = this.sizeDiff;
this._updateVirtualBoundaries(b.shiftKey);
if (this._aspectRatio || b.shiftKey)
l = this._updateRatio(l, b);
return l = this._respectSize(l, b),
this._propagate("resize", b),
c.css({
top: this.position.top + "px",
left: this.position.left + "px",
width: this.size.width + "px",
height: this.size.height + "px"
}),
!this._helper && this._proportionallyResizeElements.length && this._proportionallyResize(),
this._updateCache(l),
this._trigger("resize", b, this.ui()),
!1
},
_mouseStop: function(b) {
this.resizing = !1;
var c = this.options
, d = this;
if (this._helper) {
var e = this._proportionallyResizeElements
, f = e.length && /textarea/i.test(e[0].nodeName)
, g = f && a.ui.hasScroll(e[0], "left") ? 0 : d.sizeDiff.height
, h = f ? 0 : d.sizeDiff.width
, i = {
width: d.helper.width() - h,
height: d.helper.height() - g
}
, j = parseInt(d.element.css("left"), 10) + (d.position.left - d.originalPosition.left) || null
, k = parseInt(d.element.css("top"), 10) + (d.position.top - d.originalPosition.top) || null;
c.animate || this.element.css(a.extend(i, {
top: k,
left: j
})),
d.helper.height(d.size.height),
d.helper.width(d.size.width),
this._helper && !c.animate && this._proportionallyResize()
}
return a("body").css("cursor", "auto"),
this.element.removeClass("ui-resizable-resizing"),
this._propagate("stop", b),
this._helper && this.helper.remove(),
!1
},
_updateVirtualBoundaries: function(a) {
var b = this.options, c, e, f, g, h;
h = {
minWidth: d(b.minWidth) ? b.minWidth : 0,
maxWidth: d(b.maxWidth) ? b.maxWidth : Infinity,
minHeight: d(b.minHeight) ? b.minHeight : 0,
maxHeight: d(b.maxHeight) ? b.maxHeight : Infinity
};
if (this._aspectRatio || a)
c = h.minHeight * this.aspectRatio,
f = h.minWidth / this.aspectRatio,
e = h.maxHeight * this.aspectRatio,
g = h.maxWidth / this.aspectRatio,
c > h.minWidth && (h.minWidth = c),
f > h.minHeight && (h.minHeight = f),
e < h.maxWidth && (h.maxWidth = e),
g < h.maxHeight && (h.maxHeight = g);
this._vBoundaries = h
},
_updateCache: function(a) {
var b = this.options;
this.offset = this.helper.offset(),
d(a.left) && (this.position.left = a.left),
d(a.top) && (this.position.top = a.top),
d(a.height) && (this.size.height = a.height),
d(a.width) && (this.size.width = a.width)
},
_updateRatio: function(a, b) {
var c = this.options
, e = this.position
, f = this.size
, g = this.axis;
return d(a.height) ? a.width = a.height * this.aspectRatio : d(a.width) && (a.height = a.width / this.aspectRatio),
g == "sw" && (a.left = e.left + (f.width - a.width),
a.top = null),
g == "nw" && (a.top = e.top + (f.height - a.height),
a.left = e.left + (f.width - a.width)),
a
},
_respectSize: function(a, b) {
var c = this.helper
, e = this._vBoundaries
, f = this._aspectRatio || b.shiftKey
, g = this.axis
, h = d(a.width) && e.maxWidth && e.maxWidth < a.width
, i = d(a.height) && e.maxHeight && e.maxHeight < a.height
, j = d(a.width) && e.minWidth && e.minWidth > a.width
, k = d(a.height) && e.minHeight && e.minHeight > a.height;
j && (a.width = e.minWidth),
k && (a.height = e.minHeight),
h && (a.width = e.maxWidth),
i && (a.height = e.maxHeight);
var l = this.originalPosition.left + this.originalSize.width
, m = this.position.top + this.size.height
, n = /sw|nw|w/.test(g)
, o = /nw|ne|n/.test(g);
j && n && (a.left = l - e.minWidth),
h && n && (a.left = l - e.maxWidth),
k && o && (a.top = m - e.minHeight),
i && o && (a.top = m - e.maxHeight);
var p = !a.width && !a.height;
return p && !a.left && a.top ? a.top = null : p && !a.top && a.left && (a.left = null),
a
},
_proportionallyResize: function() {
var b = this.options;
if (!this._proportionallyResizeElements.length)
return;
var c = this.helper || this.element;
for (var d = 0; d < this._proportionallyResizeElements.length; d++) {
var e = this._proportionallyResizeElements[d];
if (!this.borderDif) {
var f = [e.css("borderTopWidth"), e.css("borderRightWidth"), e.css("borderBottomWidth"), e.css("borderLeftWidth")]
, g = [e.css("paddingTop"), e.css("paddingRight"), e.css("paddingBottom"), e.css("paddingLeft")];
this.borderDif = a.map(f, function(a, b) {
var c = parseInt(a, 10) || 0
, d = parseInt(g[b], 10) || 0;
return c + d
})
}
if (!a.browser.msie || !a(c).is(":hidden") && !a(c).parents(":hidden").length)
e.css({
height: c.height() - this.borderDif[0] - this.borderDif[2] || 0,
width: c.width() - this.borderDif[1] - this.borderDif[3] || 0
});
else
continue
}
},
_renderProxy: function() {
var b = this.element
, c = this.options;
this.elementOffset = b.offset();
if (this._helper) {
this.helper = this.helper || a('');
var d = a.browser.msie && a.browser.version < 7
, e = d ? 1 : 0
, f = d ? 2 : -1;
this.helper.addClass(this._helper).css({
width: this.element.outerWidth() + f,
height: this.element.outerHeight() + f,
position: "absolute",
left: this.elementOffset.left - e + "px",
top: this.elementOffset.top - e + "px",
zIndex: ++c.zIndex
}),
this.helper.appendTo("body").disableSelection()
} else
this.helper = this.element
},
_change: {
e: function(a, b, c) {
return {
width: this.originalSize.width + b
}
},
w: function(a, b, c) {
var d = this.options
, e = this.originalSize
, f = this.originalPosition;
return {
left: f.left + b,
width: e.width - b
}
},
n: function(a, b, c) {
var d = this.options
, e = this.originalSize
, f = this.originalPosition;
return {
top: f.top + c,
height: e.height - c
}
},
s: function(a, b, c) {
return {
height: this.originalSize.height + c
}
},
se: function(b, c, d) {
return a.extend(this._change.s.apply(this, arguments), this._change.e.apply(this, [b, c, d]))
},
sw: function(b, c, d) {
return a.extend(this._change.s.apply(this, arguments), this._change.w.apply(this, [b, c, d]))
},
ne: function(b, c, d) {
return a.extend(this._change.n.apply(this, arguments), this._change.e.apply(this, [b, c, d]))
},
nw: function(b, c, d) {
return a.extend(this._change.n.apply(this, arguments), this._change.w.apply(this, [b, c, d]))
}
},
_propagate: function(b, c) {
a.ui.plugin.call(this, b, [c, this.ui()]),
b != "resize" && this._trigger(b, c, 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
}
}
}),
a.extend(a.ui.resizable, {
version: "1.8.24"
}),
a.ui.plugin.add("resizable", "alsoResize", {
start: function(b, c) {
var d = a(this).data("resizable")
, e = d.options
, f = function(b) {
a(b).each(function() {
var b = a(this);
b.data("resizable-alsoresize", {
width: parseInt(b.width(), 10),
height: parseInt(b.height(), 10),
left: parseInt(b.css("left"), 10),
top: parseInt(b.css("top"), 10)
})
})
};
typeof e.alsoResize == "object" && !e.alsoResize.parentNode ? e.alsoResize.length ? (e.alsoResize = e.alsoResize[0],
f(e.alsoResize)) : a.each(e.alsoResize, function(a) {
f(a)
}) : f(e.alsoResize)
},
resize: function(b, c) {
var d = a(this).data("resizable")
, e = d.options
, f = d.originalSize
, g = d.originalPosition
, h = {
height: d.size.height - f.height || 0,
width: d.size.width - f.width || 0,
top: d.position.top - g.top || 0,
left: d.position.left - g.left || 0
}
, i = function(b, d) {
a(b).each(function() {
var b = a(this)
, e = a(this).data("resizable-alsoresize")
, f = {}
, g = d && d.length ? d : b.parents(c.originalElement[0]).length ? ["width", "height"] : ["width", "height", "top", "left"];
a.each(g, function(a, b) {
var c = (e[b] || 0) + (h[b] || 0);
c && c >= 0 && (f[b] = c || null)
}),
b.css(f)
})
};
typeof e.alsoResize == "object" && !e.alsoResize.nodeType ? a.each(e.alsoResize, function(a, b) {
i(a, b)
}) : i(e.alsoResize)
},
stop: function(b, c) {
a(this).removeData("resizable-alsoresize")
}
}),
a.ui.plugin.add("resizable", "animate", {
stop: function(b, c) {
var d = a(this).data("resizable")
, e = d.options
, f = d._proportionallyResizeElements
, g = f.length && /textarea/i.test(f[0].nodeName)
, h = g && a.ui.hasScroll(f[0], "left") ? 0 : d.sizeDiff.height
, i = g ? 0 : d.sizeDiff.width
, j = {
width: d.size.width - i,
height: d.size.height - h
}
, k = parseInt(d.element.css("left"), 10) + (d.position.left - d.originalPosition.left) || null
, l = parseInt(d.element.css("top"), 10) + (d.position.top - d.originalPosition.top) || null;
d.element.animate(a.extend(j, l && k ? {
top: l,
left: k
} : {}), {
duration: e.animateDuration,
easing: e.animateEasing,
step: function() {
var c = {
width: parseInt(d.element.css("width"), 10),
height: parseInt(d.element.css("height"), 10),
top: parseInt(d.element.css("top"), 10),
left: parseInt(d.element.css("left"), 10)
};
f && f.length && a(f[0]).css({
width: c.width,
height: c.height
}),
d._updateCache(c),
d._propagate("resize", b)
}
})
}
}),
a.ui.plugin.add("resizable", "containment", {
start: function(b, d) {
var e = a(this).data("resizable")
, f = e.options
, g = e.element
, h = f.containment
, i = h instanceof a ? h.get(0) : /parent/.test(h) ? g.parent().get(0) : h;
if (!i)
return;
e.containerElement = a(i);
if (/document/.test(h) || h == document)
e.containerOffset = {
left: 0,
top: 0
},
e.containerPosition = {
left: 0,
top: 0
},
e.parentData = {
element: a(document),
left: 0,
top: 0,
width: a(document).width(),
height: a(document).height() || document.body.parentNode.scrollHeight
};
else {
var j = a(i)
, k = [];
a(["Top", "Right", "Left", "Bottom"]).each(function(a, b) {
k[a] = c(j.css("padding" + b))
}),
e.containerOffset = j.offset(),
e.containerPosition = j.position(),
e.containerSize = {
height: j.innerHeight() - k[3],
width: j.innerWidth() - k[1]
};
var l = e.containerOffset
, m = e.containerSize.height
, n = e.containerSize.width
, o = a.ui.hasScroll(i, "left") ? i.scrollWidth : n
, p = a.ui.hasScroll(i) ? i.scrollHeight : m;
e.parentData = {
element: i,
left: l.left,
top: l.top,
width: o,
height: p
}
}
},
resize: function(b, c) {
var d = a(this).data("resizable")
, e = d.options
, f = d.containerSize
, g = d.containerOffset
, h = d.size
, i = d.position
, j = d._aspectRatio || b.shiftKey
, k = {
top: 0,
left: 0
}
, l = d.containerElement;
l[0] != document && /static/.test(l.css("position")) && (k = g),
i.left < (d._helper ? g.left : 0) && (d.size.width = d.size.width + (d._helper ? d.position.left - g.left : d.position.left - k.left),
j && (d.size.height = d.size.width / d.aspectRatio),
d.position.left = e.helper ? g.left : 0),
i.top < (d._helper ? g.top : 0) && (d.size.height = d.size.height + (d._helper ? d.position.top - g.top : d.position.top),
j && (d.size.width = d.size.height * d.aspectRatio),
d.position.top = d._helper ? g.top : 0),
d.offset.left = d.parentData.left + d.position.left,
d.offset.top = d.parentData.top + d.position.top;
var m = Math.abs((d._helper ? d.offset.left - k.left : d.offset.left - k.left) + d.sizeDiff.width)
, n = Math.abs((d._helper ? d.offset.top - k.top : d.offset.top - g.top) + d.sizeDiff.height)
, o = d.containerElement.get(0) == d.element.parent().get(0)
, p = /relative|absolute/.test(d.containerElement.css("position"));
o && p && (m -= d.parentData.left),
m + d.size.width >= d.parentData.width && (d.size.width = d.parentData.width - m,
j && (d.size.height = d.size.width / d.aspectRatio)),
n + d.size.height >= d.parentData.height && (d.size.height = d.parentData.height - n,
j && (d.size.width = d.size.height * d.aspectRatio))
},
stop: function(b, c) {
var d = a(this).data("resizable")
, e = d.options
, f = d.position
, g = d.containerOffset
, h = d.containerPosition
, i = d.containerElement
, j = a(d.helper)
, k = j.offset()
, l = j.outerWidth() - d.sizeDiff.width
, m = j.outerHeight() - d.sizeDiff.height;
d._helper && !e.animate && /relative/.test(i.css("position")) && a(this).css({
left: k.left - h.left - g.left,
width: l,
height: m
}),
d._helper && !e.animate && /static/.test(i.css("position")) && a(this).css({
left: k.left - h.left - g.left,
width: l,
height: m
})
}
}),
a.ui.plugin.add("resizable", "ghost", {
start: function(b, c) {
var d = a(this).data("resizable")
, e = d.options
, f = d.size;
d.ghost = d.originalElement.clone(),
d.ghost.css({
opacity: .25,
display: "block",
position: "relative",
height: f.height,
width: f.width,
margin: 0,
left: 0,
top: 0
}).addClass("ui-resizable-ghost").addClass(typeof e.ghost == "string" ? e.ghost : ""),
d.ghost.appendTo(d.helper)
},
resize: function(b, c) {
var d = a(this).data("resizable")
, e = d.options;
d.ghost && d.ghost.css({
position: "relative",
height: d.size.height,
width: d.size.width
})
},
stop: function(b, c) {
var d = a(this).data("resizable")
, e = d.options;
d.ghost && d.helper && d.helper.get(0).removeChild(d.ghost.get(0))
}
}),
a.ui.plugin.add("resizable", "grid", {
resize: function(b, c) {
var d = a(this).data("resizable")
, e = d.options
, f = d.size
, g = d.originalSize
, h = d.originalPosition
, i = d.axis
, j = e._aspectRatio || b.shiftKey;
e.grid = typeof e.grid == "number" ? [e.grid, e.grid] : e.grid;
var k = Math.round((f.width - g.width) / (e.grid[0] || 1)) * (e.grid[0] || 1)
, l = Math.round((f.height - g.height) / (e.grid[1] || 1)) * (e.grid[1] || 1);
/^(se|s|e)$/.test(i) ? (d.size.width = g.width + k,
d.size.height = g.height + l) : /^(ne)$/.test(i) ? (d.size.width = g.width + k,
d.size.height = g.height + l,
d.position.top = h.top - l) : /^(sw)$/.test(i) ? (d.size.width = g.width + k,
d.size.height = g.height + l,
d.position.left = h.left - k) : (d.size.width = g.width + k,
d.size.height = g.height + l,
d.position.top = h.top - l,
d.position.left = h.left - k)
}
});
var c = function(a) {
return parseInt(a, 10) || 0
}
, d = function(a) {
return !isNaN(parseInt(a, 10))
}
}(jQuery),
function(a, b) {
a.widget("ui.selectable", a.ui.mouse, {
options: {
appendTo: "body",
autoRefresh: !0,
distance: 0,
filter: "*",
tolerance: "touch"
},
_create: function() {
var b = this;
this.element.addClass("ui-selectable"),
this.dragged = !1;
var c;
this.refresh = function() {
c = a(b.options.filter, b.element[0]),
c.addClass("ui-selectee"),
c.each(function() {
var b = a(this)
, c = b.offset();
a.data(this, "selectable-item", {
element: this,
$element: b,
left: c.left,
top: c.top,
right: c.left + b.outerWidth(),
bottom: c.top + b.outerHeight(),
startselected: !1,
selected: b.hasClass("ui-selected"),
selecting: b.hasClass("ui-selecting"),
unselecting: b.hasClass("ui-unselecting")
})
})
}
,
this.refresh(),
this.selectees = c.addClass("ui-selectee"),
this._mouseInit(),
this.helper = a("")
},
destroy: function() {
return this.selectees.removeClass("ui-selectee").removeData("selectable-item"),
this.element.removeClass("ui-selectable ui-selectable-disabled").removeData("selectable").unbind(".selectable"),
this._mouseDestroy(),
this
},
_mouseStart: function(b) {
var c = this;
this.opos = [b.pageX, b.pageY];
if (this.options.disabled)
return;
var d = this.options;
this.selectees = a(d.filter, this.element[0]),
this._trigger("start", b),
a(d.appendTo).append(this.helper),
this.helper.css({
left: b.clientX,
top: b.clientY,
width: 0,
height: 0
}),
d.autoRefresh && this.refresh(),
this.selectees.filter(".ui-selected").each(function() {
var d = a.data(this, "selectable-item");
d.startselected = !0,
!b.metaKey && !b.ctrlKey && (d.$element.removeClass("ui-selected"),
d.selected = !1,
d.$element.addClass("ui-unselecting"),
d.unselecting = !0,
c._trigger("unselecting", b, {
unselecting: d.element
}))
}),
a(b.target).parents().andSelf().each(function() {
var d = a.data(this, "selectable-item");
if (d) {
var e = !b.metaKey && !b.ctrlKey || !d.$element.hasClass("ui-selected");
return d.$element.removeClass(e ? "ui-unselecting" : "ui-selected").addClass(e ? "ui-selecting" : "ui-unselecting"),
d.unselecting = !e,
d.selecting = e,
d.selected = e,
e ? c._trigger("selecting", b, {
selecting: d.element
}) : c._trigger("unselecting", b, {
unselecting: d.element
}),
!1
}
})
},
_mouseDrag: function(b) {
var c = this;
this.dragged = !0;
if (this.options.disabled)
return;
var d = this.options
, e = this.opos[0]
, f = this.opos[1]
, g = b.pageX
, h = b.pageY;
if (e > g) {
var i = g;
g = e,
e = i
}
if (f > h) {
var i = h;
h = f,
f = i
}
return this.helper.css({
left: e,
top: f,
width: g - e,
height: h - f
}),
this.selectees.each(function() {
var i = a.data(this, "selectable-item");
if (!i || i.element == c.element[0])
return;
var j = !1;
d.tolerance == "touch" ? j = !(i.left > g || i.right < e || i.top > h || i.bottom < f) : d.tolerance == "fit" && (j = i.left > e && i.right < g && i.top > f && i.bottom < h),
j ? (i.selected && (i.$element.removeClass("ui-selected"),
i.selected = !1),
i.unselecting && (i.$element.removeClass("ui-unselecting"),
i.unselecting = !1),
i.selecting || (i.$element.addClass("ui-selecting"),
i.selecting = !0,
c._trigger("selecting", b, {
selecting: i.element
}))) : (i.selecting && ((b.metaKey || b.ctrlKey) && i.startselected ? (i.$element.removeClass("ui-selecting"),
i.selecting = !1,
i.$element.addClass("ui-selected"),
i.selected = !0) : (i.$element.removeClass("ui-selecting"),
i.selecting = !1,
i.startselected && (i.$element.addClass("ui-unselecting"),
i.unselecting = !0),
c._trigger("unselecting", b, {
unselecting: i.element
}))),
i.selected && !b.metaKey && !b.ctrlKey && !i.startselected && (i.$element.removeClass("ui-selected"),
i.selected = !1,
i.$element.addClass("ui-unselecting"),
i.unselecting = !0,
c._trigger("unselecting", b, {
unselecting: i.element
})))
}),
!1
},
_mouseStop: function(b) {
var c = this;
this.dragged = !1;
var d = this.options;
return a(".ui-unselecting", this.element[0]).each(function() {
var d = a.data(this, "selectable-item");
d.$element.removeClass("ui-unselecting"),
d.unselecting = !1,
d.startselected = !1,
c._trigger("unselected", b, {
unselected: d.element
})
}),
a(".ui-selecting", this.element[0]).each(function() {
var d = a.data(this, "selectable-item");
d.$element.removeClass("ui-selecting").addClass("ui-selected"),
d.selecting = !1,
d.selected = !0,
d.startselected = !0,
c._trigger("selected", b, {
selected: d.element
})
}),
this._trigger("stop", b),
this.helper.remove(),
!1
}
}),
a.extend(a.ui.selectable, {
version: "1.8.24"
})
}(jQuery),
function(a, b) {
a.widget("ui.sortable", a.ui.mouse, {
widgetEventPrefix: "sort",
ready: !1,
options: {
appendTo: "parent",
axis: !1,
connectWith: !1,
containment: !1,
cursor: "auto",
cursorAt: !1,
dropOnEmpty: !0,
forcePlaceholderSize: !1,
forceHelperSize: !1,
grid: !1,
handle: !1,
helper: "original",
items: "> *",
opacity: !1,
placeholder: !1,
revert: !1,
scroll: !0,
scrollSensitivity: 20,
scrollSpeed: 20,
scope: "default",
tolerance: "intersect",
zIndex: 1e3
},
_create: function() {
var a = this.options;
this.containerCache = {},
this.element.addClass("ui-sortable"),
this.refresh(),
this.floating = this.items.length ? a.axis === "x" || /left|right/.test(this.items[0].item.css("float")) || /inline|table-cell/.test(this.items[0].item.css("display")) : !1,
this.offset = this.element.offset(),
this._mouseInit(),
this.ready = !0
},
destroy: function() {
a.Widget.prototype.destroy.call(this),
this.element.removeClass("ui-sortable ui-sortable-disabled"),
this._mouseDestroy();
for (var b = this.items.length - 1; b >= 0; b--)
this.items[b].item.removeData(this.widgetName + "-item");
return this
},
_setOption: function(b, c) {
b === "disabled" ? (this.options[b] = c,
this.widget()[c ? "addClass" : "removeClass"]("ui-sortable-disabled")) : a.Widget.prototype._setOption.apply(this, arguments)
},
_mouseCapture: function(b, c) {
var d = this;
if (this.reverting)
return !1;
if (this.options.disabled || this.options.type == "static")
return !1;
this._refreshItems(b);
var e = null
, f = this
, g = a(b.target).parents().each(function() {
if (a.data(this, d.widgetName + "-item") == f)
return e = a(this),
!1
});
a.data(b.target, d.widgetName + "-item") == f && (e = a(b.target));
if (!e)
return !1;
if (this.options.handle && !c) {
var h = !1;
a(this.options.handle, e).find("*").andSelf().each(function() {
this == b.target && (h = !0)
});
if (!h)
return !1
}
return this.currentItem = e,
this._removeCurrentsFromItems(),
!0
},
_mouseStart: function(b, c, d) {
var e = this.options
, f = this;
this.currentContainer = this,
this.refreshPositions(),
this.helper = this._createHelper(b),
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
},
a.extend(this.offset, {
click: {
left: b.pageX - this.offset.left,
top: b.pageY - this.offset.top
},
parent: this._getParentOffset(),
relative: this._getRelativeOffset()
}),
this.helper.css("position", "absolute"),
this.cssPosition = this.helper.css("position"),
this.originalPosition = this._generatePosition(b),
this.originalPageX = b.pageX,
this.originalPageY = b.pageY,
e.cursorAt && this._adjustOffsetFromHelper(e.cursorAt),
this.domPosition = {
prev: this.currentItem.prev()[0],
parent: this.currentItem.parent()[0]
},
this.helper[0] != this.currentItem[0] && this.currentItem.hide(),
this._createPlaceholder(),
e.containment && this._setContainment(),
e.cursor && (a("body").css("cursor") && (this._storedCursor = a("body").css("cursor")),
a("body").css("cursor", e.cursor)),
e.opacity && (this.helper.css("opacity") && (this._storedOpacity = this.helper.css("opacity")),
this.helper.css("opacity", e.opacity)),
e.zIndex && (this.helper.css("zIndex") && (this._storedZIndex = this.helper.css("zIndex")),
this.helper.css("zIndex", e.zIndex)),
this.scrollParent[0] != document && this.scrollParent[0].tagName != "HTML" && (this.overflowOffset = this.scrollParent.offset()),
this._trigger("start", b, this._uiHash()),
this._preserveHelperProportions || this._cacheHelperProportions();
if (!d)
for (var g = this.containers.length - 1; g >= 0; g--)
this.containers[g]._trigger("activate", b, f._uiHash(this));
return a.ui.ddmanager && (a.ui.ddmanager.current = this),
a.ui.ddmanager && !e.dropBehaviour && a.ui.ddmanager.prepareOffsets(this, b),
this.dragging = !0,
this.helper.addClass("ui-sortable-helper"),
this._mouseDrag(b),
!0
},
_mouseDrag: function(b) {
this.position = this._generatePosition(b),
this.positionAbs = this._convertPositionTo("absolute"),
this.lastPositionAbs || (this.lastPositionAbs = this.positionAbs);
if (this.options.scroll) {
var c = this.options
, d = !1;
this.scrollParent[0] != document && this.scrollParent[0].tagName != "HTML" ? (this.overflowOffset.top + this.scrollParent[0].offsetHeight - b.pageY < c.scrollSensitivity ? this.scrollParent[0].scrollTop = d = this.scrollParent[0].scrollTop + c.scrollSpeed : b.pageY - this.overflowOffset.top < c.scrollSensitivity && (this.scrollParent[0].scrollTop = d = this.scrollParent[0].scrollTop - c.scrollSpeed),
this.overflowOffset.left + this.scrollParent[0].offsetWidth - b.pageX < c.scrollSensitivity ? this.scrollParent[0].scrollLeft = d = this.scrollParent[0].scrollLeft + c.scrollSpeed : b.pageX - this.overflowOffset.left < c.scrollSensitivity && (this.scrollParent[0].scrollLeft = d = this.scrollParent[0].scrollLeft - c.scrollSpeed)) : (b.pageY - a(document).scrollTop() < c.scrollSensitivity ? d = a(document).scrollTop(a(document).scrollTop() - c.scrollSpeed) : a(window).height() - (b.pageY - a(document).scrollTop()) < c.scrollSensitivity && (d = a(document).scrollTop(a(document).scrollTop() + c.scrollSpeed)),
b.pageX - a(document).scrollLeft() < c.scrollSensitivity ? d = a(document).scrollLeft(a(document).scrollLeft() - c.scrollSpeed) : a(window).width() - (b.pageX - a(document).scrollLeft()) < c.scrollSensitivity && (d = a(document).scrollLeft(a(document).scrollLeft() + c.scrollSpeed))),
d !== !1 && a.ui.ddmanager && !c.dropBehaviour && a.ui.ddmanager.prepareOffsets(this, b)
}
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 e = this.items.length - 1; e >= 0; e--) {
var f = this.items[e]
, g = f.item[0]
, h = this._intersectsWithPointer(f);
if (!h)
continue;
if (f.instance !== this.currentContainer)
continue;
if (g != this.currentItem[0] && this.placeholder[h == 1 ? "next" : "prev"]()[0] != g && !a.ui.contains(this.placeholder[0], g) && (this.options.type == "semi-dynamic" ? !a.ui.contains(this.element[0], g) : !0)) {
this.direction = h == 1 ? "down" : "up";
if (this.options.tolerance == "pointer" || this._intersectsWithSides(f))
this._rearrange(b, f);
else
break;
this._trigger("change", b, this._uiHash());
break
}
}
return this._contactContainers(b),
a.ui.ddmanager && a.ui.ddmanager.drag(this, b),
this._trigger("sort", b, this._uiHash()),
this.lastPositionAbs = this.positionAbs,
!1
},
_mouseStop: function(b, c) {
if (!b)
return;
a.ui.ddmanager && !this.options.dropBehaviour && a.ui.ddmanager.drop(this, b);
if (this.options.revert) {
var d = this
, e = d.placeholder.offset();
d.reverting = !0,
a(this.helper).animate({
left: e.left - this.offset.parent.left - d.margins.left + (this.offsetParent[0] == document.body ? 0 : this.offsetParent[0].scrollLeft),
top: e.top - this.offset.parent.top - d.margins.top + (this.offsetParent[0] == document.body ? 0 : this.offsetParent[0].scrollTop)
}, parseInt(this.options.revert, 10) || 500, function() {
d._clear(b)
})
} else
this._clear(b, c);
return !1
},
cancel: function() {
var b = this;
if (this.dragging) {
this._mouseUp({
target: null
}),
this.options.helper == "original" ? this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper") : this.currentItem.show();
for (var c = this.containers.length - 1; c >= 0; c--)
this.containers[c]._trigger("deactivate", null, b._uiHash(this)),
this.containers[c].containerCache.over && (this.containers[c]._trigger("out", null, b._uiHash(this)),
this.containers[c].containerCache.over = 0)
}
return this.placeholder && (this.placeholder[0].parentNode && this.placeholder[0].parentNode.removeChild(this.placeholder[0]),
this.options.helper != "original" && this.helper && this.helper[0].parentNode && this.helper.remove(),
a.extend(this, {
helper: null,
dragging: !1,
reverting: !1,
_noFinalSort: null
}),
this.domPosition.prev ? a(this.domPosition.prev).after(this.currentItem) : a(this.domPosition.parent).prepend(this.currentItem)),
this
},
serialize: function(b) {
var c = this._getItemsAsjQuery(b && b.connected)
, d = [];
return b = b || {},
a(c).each(function() {
var c = (a(b.item || this).attr(b.attribute || "id") || "").match(b.expression || /(.+)[-=_](.+)/);
c && d.push((b.key || c[1] + "[]") + "=" + (b.key && b.expression ? c[1] : c[2]))
}),
!d.length && b.key && d.push(b.key + "="),
d.join("&")
},
toArray: function(b) {
var c = this._getItemsAsjQuery(b && b.connected)
, d = [];
return b = b || {},
c.each(function() {
d.push(a(b.item || this).attr(b.attribute || "id") || "")
}),
d
},
_intersectsWith: function(a) {
var b = this.positionAbs.left
, c = b + this.helperProportions.width
, d = this.positionAbs.top
, e = d + this.helperProportions.height
, f = a.left
, g = f + a.width
, h = a.top
, i = h + a.height
, j = this.offset.click.top
, k = this.offset.click.left
, l = d + j > h && d + j < i && b + k > f && b + k < g;
return this.options.tolerance == "pointer" || this.options.forcePointerForContainers || this.options.tolerance != "pointer" && this.helperProportions[this.floating ? "width" : "height"] > a[this.floating ? "width" : "height"] ? l : f < b + this.helperProportions.width / 2 && c - this.helperProportions.width / 2 < g && h < d + this.helperProportions.height / 2 && e - this.helperProportions.height / 2 < i
},
_intersectsWithPointer: function(b) {
var c = this.options.axis === "x" || a.ui.isOverAxis(this.positionAbs.top + this.offset.click.top, b.top, b.height)
, d = this.options.axis === "y" || a.ui.isOverAxis(this.positionAbs.left + this.offset.click.left, b.left, b.width)
, e = c && d
, f = this._getDragVerticalDirection()
, g = this._getDragHorizontalDirection();
return e ? this.floating ? g && g == "right" || f == "down" ? 2 : 1 : f && (f == "down" ? 2 : 1) : !1
},
_intersectsWithSides: function(b) {
var c = a.ui.isOverAxis(this.positionAbs.top + this.offset.click.top, b.top + b.height / 2, b.height)
, d = a.ui.isOverAxis(this.positionAbs.left + this.offset.click.left, b.left + b.width / 2, b.width)
, e = this._getDragVerticalDirection()
, f = this._getDragHorizontalDirection();
return this.floating && f ? f == "right" && d || f == "left" && !d : e && (e == "down" && c || e == "up" && !c)
},
_getDragVerticalDirection: function() {
var a = this.positionAbs.top - this.lastPositionAbs.top;
return a != 0 && (a > 0 ? "down" : "up")
},
_getDragHorizontalDirection: function() {
var a = this.positionAbs.left - this.lastPositionAbs.left;
return a != 0 && (a > 0 ? "right" : "left")
},
refresh: function(a) {
return this._refreshItems(a),
this.refreshPositions(),
this
},
_connectWith: function() {
var a = this.options;
return a.connectWith.constructor == String ? [a.connectWith] : a.connectWith
},
_getItemsAsjQuery: function(b) {
var c = this
, d = []
, e = []
, f = this._connectWith();
if (f && b)
for (var g = f.length - 1; g >= 0; g--) {
var h = a(f[g]);
for (var i = h.length - 1; i >= 0; i--) {
var j = a.data(h[i], this.widgetName);
j && j != this && !j.options.disabled && e.push([a.isFunction(j.options.items) ? j.options.items.call(j.element) : a(j.options.items, j.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"), j])
}
}
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").not(".ui-sortable-placeholder"), this]);
for (var g = e.length - 1; g >= 0; g--)
e[g][0].each(function() {
d.push(this)
});
return a(d)
},
_removeCurrentsFromItems: function() {
var a = this.currentItem.find(":data(" + this.widgetName + "-item)");
for (var b = 0; b < this.items.length; b++)
for (var c = 0; c < a.length; c++)
a[c] == this.items[b].item[0] && this.items.splice(b, 1)
},
_refreshItems: function(b) {
this.items = [],
this.containers = [this];
var c = this.items
, d = this
, e = [[a.isFunction(this.options.items) ? this.options.items.call(this.element[0], b, {
item: this.currentItem
}) : a(this.options.items, this.element), this]]
, f = this._connectWith();
if (f && this.ready)
for (var g = f.length - 1; g >= 0; g--) {
var h = a(f[g]);
for (var i = h.length - 1; i >= 0; i--) {
var j = a.data(h[i], this.widgetName);
j && j != this && !j.options.disabled && (e.push([a.isFunction(j.options.items) ? j.options.items.call(j.element[0], b, {
item: this.currentItem
}) : a(j.options.items, j.element), j]),
this.containers.push(j))
}
}
for (var g = e.length - 1; g >= 0; g--) {
var k = e[g][1]
, l = e[g][0];
for (var i = 0, m = l.length; i < m; i++) {
var n = a(l[i]);
n.data(this.widgetName + "-item", k),
c.push({
item: n,
instance: k,
width: 0,
height: 0,
left: 0,
top: 0
})
}
}
},
refreshPositions: function(b) {
this.offsetParent && this.helper && (this.offset.parent = this._getParentOffset());
for (var c = this.items.length - 1; c >= 0; c--) {
var d = this.items[c];
if (d.instance != this.currentContainer && this.currentContainer && d.item[0] != this.currentItem[0])
continue;
var e = this.options.toleranceElement ? a(this.options.toleranceElement, d.item) : d.item;
b || (d.width = e.outerWidth(),
d.height = e.outerHeight());
var f = e.offset();
d.left = f.left,
d.top = f.top
}
if (this.options.custom && this.options.custom.refreshContainers)
this.options.custom.refreshContainers.call(this);
else
for (var c = this.containers.length - 1; c >= 0; c--) {
var f = this.containers[c].element.offset();
this.containers[c].containerCache.left = f.left,
this.containers[c].containerCache.top = f.top,
this.containers[c].containerCache.width = this.containers[c].element.outerWidth(),
this.containers[c].containerCache.height = this.containers[c].element.outerHeight()
}
return this
},
_createPlaceholder: function(b) {
var c = b || this
, d = c.options;
if (!d.placeholder || d.placeholder.constructor == String) {
var e = d.placeholder;
d.placeholder = {
element: function() {
var b = a(document.createElement(c.currentItem[0].nodeName)).addClass(e || c.currentItem[0].className + " ui-sortable-placeholder").removeClass("ui-sortable-helper")[0];
return e || (b.style.visibility = "hidden"),
b
},
update: function(a, b) {
if (e && !d.forcePlaceholderSize)
return;
b.height() || b.height(c.currentItem.innerHeight() - parseInt(c.currentItem.css("paddingTop") || 0, 10) - parseInt(c.currentItem.css("paddingBottom") || 0, 10)),
b.width() || b.width(c.currentItem.innerWidth() - parseInt(c.currentItem.css("paddingLeft") || 0, 10) - parseInt(c.currentItem.css("paddingRight") || 0, 10))
}
}
}
c.placeholder = a(d.placeholder.element.call(c.element, c.currentItem)),
c.currentItem.after(c.placeholder),
d.placeholder.update(c, c.placeholder)
},
_contactContainers: function(b) {
var c = null
, d = null;
for (var e = this.containers.length - 1; e >= 0; e--) {
if (a.ui.contains(this.currentItem[0], this.containers[e].element[0]))
continue;
if (this._intersectsWith(this.containers[e].containerCache)) {
if (c && a.ui.contains(this.containers[e].element[0], c.element[0]))
continue;
c = this.containers[e],
d = e
} else
this.containers[e].containerCache.over && (this.containers[e]._trigger("out", b, this._uiHash(this)),
this.containers[e].containerCache.over = 0)
}
if (!c)
return;
if (this.containers.length === 1)
this.containers[d]._trigger("over", b, this._uiHash(this)),
this.containers[d].containerCache.over = 1;
else if (this.currentContainer != this.containers[d]) {
var f = 1e4
, g = null
, h = this.positionAbs[this.containers[d].floating ? "left" : "top"];
for (var i = this.items.length - 1; i >= 0; i--) {
if (!a.ui.contains(this.containers[d].element[0], this.items[i].item[0]))
continue;
var j = this.containers[d].floating ? this.items[i].item.offset().left : this.items[i].item.offset().top;
Math.abs(j - h) < f && (f = Math.abs(j - h),
g = this.items[i],
this.direction = j - h > 0 ? "down" : "up")
}
if (!g && !this.options.dropOnEmpty)
return;
this.currentContainer = this.containers[d],
g ? this._rearrange(b, g, null, !0) : this._rearrange(b, null, this.containers[d].element, !0),
this._trigger("change", b, this._uiHash()),
this.containers[d]._trigger("change", b, this._uiHash(this)),
this.options.placeholder.update(this.currentContainer, this.placeholder),
this.containers[d]._trigger("over", b, this._uiHash(this)),
this.containers[d].containerCache.over = 1
}
},
_createHelper: function(b) {
var c = this.options
, d = a.isFunction(c.helper) ? a(c.helper.apply(this.element[0], [b, this.currentItem])) : c.helper == "clone" ? this.currentItem.clone() : this.currentItem;
return d.parents("body").length || a(c.appendTo != "parent" ? c.appendTo : this.currentItem[0].parentNode)[0].appendChild(d[0]),
d[0] == this.currentItem[0] && (this._storedCSS = {
width: this.currentItem[0].style.width,
height: this.currentItem[0].style.height,
position: this.currentItem.css("position"),
top: this.currentItem.css("top"),
left: this.currentItem.css("left")
}),
(d[0].style.width == "" || c.forceHelperSize) && d.width(this.currentItem.width()),
(d[0].style.height == "" || c.forceHelperSize) && d.height(this.currentItem.height()),
d
},
_adjustOffsetFromHelper: function(b) {
typeof b == "string" && (b = b.split(" ")),
a.isArray(b) && (b = {
left: +b[0],
top: +b[1] || 0
}),
"left"in b && (this.offset.click.left = b.left + this.margins.left),
"right"in b && (this.offset.click.left = this.helperProportions.width - b.right + this.margins.left),
"top"in b && (this.offset.click.top = b.top + this.margins.top),
"bottom"in b && (this.offset.click.top = this.helperProportions.height - b.bottom + this.margins.top)
},
_getParentOffset: function() {
this.offsetParent = this.helper.offsetParent();
var b = this.offsetParent.offset();
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 a = this.currentItem.position();
return {
top: a.top - (parseInt(this.helper.css("top"), 10) || 0) + this.scrollParent.scrollTop(),
left: a.left - (parseInt(this.helper.css("left"), 10) || 0) + this.scrollParent.scrollLeft()
}
}
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 b = this.options;
b.containment == "parent" && (b.containment = this.helper[0].parentNode);
if (b.containment == "document" || b.containment == "window")
this.containment = [0 - this.offset.relative.left - this.offset.parent.left, 0 - this.offset.relative.top - this.offset.parent.top, a(b.containment == "document" ? document : window).width() - this.helperProportions.width - this.margins.left, (a(b.containment == "document" ? document : window).height() || document.body.parentNode.scrollHeight) - this.helperProportions.height - this.margins.top];
if (!/^(document|window|parent)$/.test(b.containment)) {
var c = a(b.containment)[0]
, d = a(b.containment).offset()
, e = 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 + (e ? 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 + (e ? 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(b, c) {
c || (c = this.position);
var d = b == "absolute" ? 1 : -1
, e = this.options
, f = 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(f[0].tagName);
return {
top: c.top + this.offset.relative.top * d + this.offset.parent.top * d - (a.browser.safari && this.cssPosition == "fixed" ? 0 : (this.cssPosition == "fixed" ? -this.scrollParent.scrollTop() : g ? 0 : f.scrollTop()) * d),
left: c.left + this.offset.relative.left * d + this.offset.parent.left * d - (a.browser.safari && this.cssPosition == "fixed" ? 0 : (this.cssPosition == "fixed" ? -this.scrollParent.scrollLeft() : g ? 0 : f.scrollLeft()) * d)
}
},
_generatePosition: function(b) {
var c = this.options
, d = this.cssPosition == "absolute" && (this.scrollParent[0] == document || !a.ui.contains(this.scrollParent[0], this.offsetParent[0])) ? this.offsetParent : this.scrollParent
, e = /(html|body)/i.test(d[0].tagName);
this.cssPosition == "relative" && (this.scrollParent[0] == document || this.scrollParent[0] == this.offsetParent[0]) && (this.offset.relative = this._getRelativeOffset());
var f = b.pageX
, g = b.pageY;
if (this.originalPosition) {
this.containment && (b.pageX - this.offset.click.left < this.containment[0] && (f = this.containment[0] + this.offset.click.left),
b.pageY - this.offset.click.top < this.containment[1] && (g = this.containment[1] + this.offset.click.top),
b.pageX - this.offset.click.left > this.containment[2] && (f = this.containment[2] + this.offset.click.left),
b.pageY - this.offset.click.top > this.containment[3] && (g = this.containment[3] + this.offset.click.top));
if (c.grid) {
var h = this.originalPageY + Math.round((g - this.originalPageY) / c.grid[1]) * c.grid[1];
g = this.containment ? h - this.offset.click.top < this.containment[1] || h - this.offset.click.top > this.containment[3] ? h - this.offset.click.top < this.containment[1] ? h + c.grid[1] : h - c.grid[1] : h : h;
var i = this.originalPageX + Math.round((f - this.originalPageX) / c.grid[0]) * c.grid[0];
f = this.containment ? i - this.offset.click.left < this.containment[0] || i - this.offset.click.left > this.containment[2] ? i - this.offset.click.left < this.containment[0] ? i + c.grid[0] : i - c.grid[0] : i : i
}
}
return {
top: g - 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() : e ? 0 : d.scrollTop()),
left: f - 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() : e ? 0 : d.scrollLeft())
}
},
_rearrange: function(a, b, c, d) {
c ? c[0].appendChild(this.placeholder[0]) : b.item[0].parentNode.insertBefore(this.placeholder[0], this.direction == "down" ? b.item[0] : b.item[0].nextSibling),
this.counter = this.counter ? ++this.counter : 1;
var e = this
, f = this.counter;
window.setTimeout(function() {
f == e.counter && e.refreshPositions(!d)
}, 0)
},
_clear: function(b, c) {
this.reverting = !1;
var d = []
, e = this;
!this._noFinalSort && this.currentItem.parent().length && this.placeholder.before(this.currentItem),
this._noFinalSort = null;
if (this.helper[0] == this.currentItem[0]) {
for (var f in this._storedCSS)
if (this._storedCSS[f] == "auto" || this._storedCSS[f] == "static")
this._storedCSS[f] = "";
this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper")
} else
this.currentItem.show();
this.fromOutside && !c && d.push(function(a) {
this._trigger("receive", a, this._uiHash(this.fromOutside))
}),
(this.fromOutside || this.domPosition.prev != this.currentItem.prev().not(".ui-sortable-helper")[0] || this.domPosition.parent != this.currentItem.parent()[0]) && !c && d.push(function(a) {
this._trigger("update", a, this._uiHash())
}),
this !== this.currentContainer && (c || (d.push(function(a) {
this._trigger("remove", a, this._uiHash())
}),
d.push(function(a) {
return function(b) {
a._trigger("receive", b, this._uiHash(this))
}
}
.call(this, this.currentContainer)),
d.push(function(a) {
return function(b) {
a._trigger("update", b, this._uiHash(this))
}
}
.call(this, this.currentContainer))));
for (var f = this.containers.length - 1; f >= 0; f--)
c || d.push(function(a) {
return function(b) {
a._trigger("deactivate", b, this._uiHash(this))
}
}
.call(this, this.containers[f])),
this.containers[f].containerCache.over && (d.push(function(a) {
return function(b) {
a._trigger("out", b, this._uiHash(this))
}
}
.call(this, this.containers[f])),
this.containers[f].containerCache.over = 0);
this._storedCursor && a("body").css("cursor", this._storedCursor),
this._storedOpacity && this.helper.css("opacity", this._storedOpacity),
this._storedZIndex && this.helper.css("zIndex", this._storedZIndex == "auto" ? "" : this._storedZIndex),
this.dragging = !1;
if (this.cancelHelperRemoval) {
if (!c) {
this._trigger("beforeStop", b, this._uiHash());
for (var f = 0; f < d.length; f++)
d[f].call(this, b);
this._trigger("stop", b, this._uiHash())
}
return this.fromOutside = !1,
!1
}
c || this._trigger("beforeStop", b, this._uiHash()),
this.placeholder[0].parentNode.removeChild(this.placeholder[0]),
this.helper[0] != this.currentItem[0] && this.helper.remove(),
this.helper = null;
if (!c) {
for (var f = 0; f < d.length; f++)
d[f].call(this, b);
this._trigger("stop", b, this._uiHash())
}
return this.fromOutside = !1,
!0
},
_trigger: function() {
a.Widget.prototype._trigger.apply(this, arguments) === !1 && this.cancel()
},
_uiHash: function(b) {
var c = b || this;
return {
helper: c.helper,
placeholder: c.placeholder || a([]),
position: c.position,
originalPosition: c.originalPosition,
offset: c.positionAbs,
item: c.currentItem,
sender: b ? b.element : null
}
}
}),
a.extend(a.ui.sortable, {
version: "1.8.24"
})
}(jQuery),
jQuery.effects || function(a, b) {
function c(b) {
var c;
return b && b.constructor == Array && b.length == 3 ? b : (c = /rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(b)) ? [parseInt(c[1], 10), parseInt(c[2], 10), parseInt(c[3], 10)] : (c = /rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(b)) ? [parseFloat(c[1]) * 2.55, parseFloat(c[2]) * 2.55, parseFloat(c[3]) * 2.55] : (c = /#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(b)) ? [parseInt(c[1], 16), parseInt(c[2], 16), parseInt(c[3], 16)] : (c = /#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(b)) ? [parseInt(c[1] + c[1], 16), parseInt(c[2] + c[2], 16), parseInt(c[3] + c[3], 16)] : (c = /rgba\(0, 0, 0, 0\)/.exec(b)) ? e.transparent : e[a.trim(b).toLowerCase()]
}
function d(b, d) {
var e;
do {
e = (a.curCSS || a.css)(b, d);
if (e != "" && e != "transparent" || a.nodeName(b, "body"))
break;
d = "backgroundColor"
} while (b = b.parentNode);return c(e)
}
function h() {
var a = document.defaultView ? document.defaultView.getComputedStyle(this, null) : this.currentStyle, b = {}, c, d;
if (a && a.length && a[0] && a[a[0]]) {
var e = a.length;
while (e--)
c = a[e],
typeof a[c] == "string" && (d = c.replace(/\-(\w)/g, function(a, b) {
return b.toUpperCase()
}),
b[d] = a[c])
} else
for (c in a)
typeof a[c] == "string" && (b[c] = a[c]);
return b
}
function i(b) {
var c, d;
for (c in b)
d = b[c],
(d == null || a.isFunction(d) || c in g || /scrollbar/.test(c) || !/color/i.test(c) && isNaN(parseFloat(d))) && delete b[c];
return b
}
function j(a, b) {
var c = {
_: 0
}, d;
for (d in b)
a[d] != b[d] && (c[d] = b[d]);
return c
}
function k(b, c, d, e) {
typeof b == "object" && (e = c,
d = null,
c = b,
b = c.effect),
a.isFunction(c) && (e = c,
d = null,
c = {});
if (typeof c == "number" || a.fx.speeds[c])
e = d,
d = c,
c = {};
return a.isFunction(d) && (e = d,
d = null),
c = c || {},
d = d || c.duration,
d = a.fx.off ? 0 : typeof d == "number" ? d : d in a.fx.speeds ? a.fx.speeds[d] : a.fx.speeds._default,
e = e || c.complete,
[b, c, d, e]
}
function l(b) {
return !b || typeof b == "number" || a.fx.speeds[b] ? !0 : typeof b == "string" && !a.effects[b] ? !0 : !1
}
a.effects = {},
a.each(["backgroundColor", "borderBottomColor", "borderLeftColor", "borderRightColor", "borderTopColor", "borderColor", "color", "outlineColor"], function(b, e) {
a.fx.step[e] = function(a) {
a.colorInit || (a.start = d(a.elem, e),
a.end = c(a.end),
a.colorInit = !0),
a.elem.style[e] = "rgb(" + Math.max(Math.min(parseInt(a.pos * (a.end[0] - a.start[0]) + a.start[0], 10), 255), 0) + "," + Math.max(Math.min(parseInt(a.pos * (a.end[1] - a.start[1]) + a.start[1], 10), 255), 0) + "," + Math.max(Math.min(parseInt(a.pos * (a.end[2] - a.start[2]) + a.start[2], 10), 255), 0) + ")"
}
});
var e = {
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]
}
, f = ["add", "remove", "toggle"]
, g = {
border: 1,
borderBottom: 1,
borderColor: 1,
borderLeft: 1,
borderRight: 1,
borderTop: 1,
borderWidth: 1,
margin: 1,
padding: 1
};
a.effects.animateClass = function(b, c, d, e) {
return a.isFunction(d) && (e = d,
d = null),
this.queue(function() {
var g = a(this), k = g.attr("style") || " ", l = i(h.call(this)), m, n = g.attr("class") || "";
a.each(f, function(a, c) {
b[c] && g[c + "Class"](b[c])
}),
m = i(h.call(this)),
g.attr("class", n),
g.animate(j(l, m), {
queue: !1,
duration: c,
easing: d,
complete: function() {
a.each(f, function(a, c) {
b[c] && g[c + "Class"](b[c])
}),
typeof g.attr("style") == "object" ? (g.attr("style").cssText = "",
g.attr("style").cssText = k) : g.attr("style", k),
e && e.apply(this, arguments),
a.dequeue(this)
}
})
})
}
,
a.fn.extend({
_addClass: a.fn.addClass,
addClass: function(b, c, d, e) {
return c ? a.effects.animateClass.apply(this, [{
add: b
}, c, d, e]) : this._addClass(b)
},
_removeClass: a.fn.removeClass,
removeClass: function(b, c, d, e) {
return c ? a.effects.animateClass.apply(this, [{
remove: b
}, c, d, e]) : this._removeClass(b)
},
_toggleClass: a.fn.toggleClass,
toggleClass: function(c, d, e, f, g) {
return typeof d == "boolean" || d === b ? e ? a.effects.animateClass.apply(this, [d ? {
add: c
} : {
remove: c
}, e, f, g]) : this._toggleClass(c, d) : a.effects.animateClass.apply(this, [{
toggle: c
}, d, e, f])
},
switchClass: function(b, c, d, e, f) {
return a.effects.animateClass.apply(this, [{
add: c,
remove: b
}, d, e, f])
}
}),
a.extend(a.effects, {
version: "1.8.24",
save: function(a, b) {
for (var c = 0; c < b.length; c++)
b[c] !== null && a.data("ec.storage." + b[c], a[0].style[b[c]])
},
restore: function(a, b) {
for (var c = 0; c < b.length; c++)
b[c] !== null && a.css(b[c], a.data("ec.storage." + b[c]))
},
setMode: function(a, b) {
return b == "toggle" && (b = a.is(":hidden") ? "show" : "hide"),
b
},
getBaseline: function(a, b) {
var c, d;
switch (a[0]) {
case "top":
c = 0;
break;
case "middle":
c = .5;
break;
case "bottom":
c = 1;
break;
default:
c = a[0] / b.height
}
switch (a[1]) {
case "left":
d = 0;
break;
case "center":
d = .5;
break;
case "right":
d = 1;
break;
default:
d = a[1] / b.width
}
return {
x: d,
y: c
}
},
createWrapper: function(b) {
if (b.parent().is(".ui-effects-wrapper"))
return b.parent();
var c = {
width: b.outerWidth(!0),
height: b.outerHeight(!0),
"float": b.css("float")
}
, d = a("").addClass("ui-effects-wrapper").css({
fontSize: "100%",
background: "transparent",
border: "none",
margin: 0,
padding: 0
})
, e = document.activeElement;
try {
e.id
} catch (f) {
e = document.body
}
return b.wrap(d),
(b[0] === e || a.contains(b[0], e)) && a(e).focus(),
d = b.parent(),
b.css("position") == "static" ? (d.css({
position: "relative"
}),
b.css({
position: "relative"
})) : (a.extend(c, {
position: b.css("position"),
zIndex: b.css("z-index")
}),
a.each(["top", "left", "bottom", "right"], function(a, d) {
c[d] = b.css(d),
isNaN(parseInt(c[d], 10)) && (c[d] = "auto")
}),
b.css({
position: "relative",
top: 0,
left: 0,
right: "auto",
bottom: "auto"
})),
d.css(c).show()
},
removeWrapper: function(b) {
var c, d = document.activeElement;
return b.parent().is(".ui-effects-wrapper") ? (c = b.parent().replaceWith(b),
(b[0] === d || a.contains(b[0], d)) && a(d).focus(),
c) : b
},
setTransition: function(b, c, d, e) {
return e = e || {},
a.each(c, function(a, c) {
var f = b.cssUnit(c);
f[0] > 0 && (e[c] = f[0] * d + f[1])
}),
e
}
}),
a.fn.extend({
effect: function(b, c, d, e) {
var f = k.apply(this, arguments)
, g = {
options: f[1],
duration: f[2],
callback: f[3]
}
, h = g.options.mode
, i = a.effects[b];
return a.fx.off || !i ? h ? this[h](g.duration, g.callback) : this.each(function() {
g.callback && g.callback.call(this)
}) : i.call(this, g)
},
_show: a.fn.show,
show: function(a) {
if (l(a))
return this._show.apply(this, arguments);
var b = k.apply(this, arguments);
return b[1].mode = "show",
this.effect.apply(this, b)
},
_hide: a.fn.hide,
hide: function(a) {
if (l(a))
return this._hide.apply(this, arguments);
var b = k.apply(this, arguments);
return b[1].mode = "hide",
this.effect.apply(this, b)
},
__toggle: a.fn.toggle,
toggle: function(b) {
if (l(b) || typeof b == "boolean" || a.isFunction(b))
return this.__toggle.apply(this, arguments);
var c = k.apply(this, arguments);
return c[1].mode = "toggle",
this.effect.apply(this, c)
},
cssUnit: function(b) {
var c = this.css(b)
, d = [];
return a.each(["em", "px", "%", "pt"], function(a, b) {
c.indexOf(b) > 0 && (d = [parseFloat(c), b])
}),
d
}
});
var m = {};
a.each(["Quad", "Cubic", "Quart", "Quint", "Expo"], function(a, b) {
m[b] = function(b) {
return Math.pow(b, a + 2)
}
}),
a.extend(m, {
Sine: function(a) {
return 1 - Math.cos(a * Math.PI / 2)
},
Circ: function(a) {
return 1 - Math.sqrt(1 - a * a)
},
Elastic: function(a) {
return a === 0 || a === 1 ? a : -Math.pow(2, 8 * (a - 1)) * Math.sin(((a - 1) * 80 - 7.5) * Math.PI / 15)
},
Back: function(a) {
return a * a * (3 * a - 2)
},
Bounce: function(a) {
var b, c = 4;
while (a < ((b = Math.pow(2, --c)) - 1) / 11)
;
return 1 / Math.pow(4, 3 - c) - 7.5625 * Math.pow((b * 3 - 2) / 22 - a, 2)
}
}),
a.each(m, function(b, c) {
a.easing["easeIn" + b] = c,
a.easing["easeOut" + b] = function(a) {
return 1 - c(1 - a)
}
,
a.easing["easeInOut" + b] = function(a) {
return a < .5 ? c(a * 2) / 2 : c(a * -2 + 2) / -2 + 1
}
})
}(jQuery),
function(a, b) {
a.effects.blind = function(b) {
return this.queue(function() {
var c = a(this)
, d = ["position", "top", "bottom", "left", "right"]
, e = a.effects.setMode(c, b.options.mode || "hide")
, f = b.options.direction || "vertical";
a.effects.save(c, d),
c.show();
var g = a.effects.createWrapper(c).css({
overflow: "hidden"
})
, h = f == "vertical" ? "height" : "width"
, i = f == "vertical" ? g.height() : g.width();
e == "show" && g.css(h, 0);
var j = {};
j[h] = e == "show" ? i : 0,
g.animate(j, b.duration, b.options.easing, function() {
e == "hide" && c.hide(),
a.effects.restore(c, d),
a.effects.removeWrapper(c),
b.callback && b.callback.apply(c[0], arguments),
c.dequeue()
})
})
}
}(jQuery),
function(a, b) {
a.effects.bounce = function(b) {
return this.queue(function() {
var c = a(this)
, d = ["position", "top", "bottom", "left", "right"]
, e = a.effects.setMode(c, b.options.mode || "effect")
, f = b.options.direction || "up"
, g = b.options.distance || 20
, h = b.options.times || 5
, i = b.duration || 250;
/show|hide/.test(e) && d.push("opacity"),
a.effects.save(c, d),
c.show(),
a.effects.createWrapper(c);
var j = f == "up" || f == "down" ? "top" : "left"
, k = f == "up" || f == "left" ? "pos" : "neg"
, g = b.options.distance || (j == "top" ? c.outerHeight(!0) / 3 : c.outerWidth(!0) / 3);
e == "show" && c.css("opacity", 0).css(j, k == "pos" ? -g : g),
e == "hide" && (g = g / (h * 2)),
e != "hide" && h--;
if (e == "show") {
var l = {
opacity: 1
};
l[j] = (k == "pos" ? "+=" : "-=") + g,
c.animate(l, i / 2, b.options.easing),
g = g / 2,
h--
}
for (var m = 0; m < h; m++) {
var n = {}
, p = {};
n[j] = (k == "pos" ? "-=" : "+=") + g,
p[j] = (k == "pos" ? "+=" : "-=") + g,
c.animate(n, i / 2, b.options.easing).animate(p, i / 2, b.options.easing),
g = e == "hide" ? g * 2 : g / 2
}
if (e == "hide") {
var l = {
opacity: 0
};
l[j] = (k == "pos" ? "-=" : "+=") + g,
c.animate(l, i / 2, b.options.easing, function() {
c.hide(),
a.effects.restore(c, d),
a.effects.removeWrapper(c),
b.callback && b.callback.apply(this, arguments)
})
} else {
var n = {}
, p = {};
n[j] = (k == "pos" ? "-=" : "+=") + g,
p[j] = (k == "pos" ? "+=" : "-=") + g,
c.animate(n, i / 2, b.options.easing).animate(p, i / 2, b.options.easing, function() {
a.effects.restore(c, d),
a.effects.removeWrapper(c),
b.callback && b.callback.apply(this, arguments)
})
}
c.queue("fx", function() {
c.dequeue()
}),
c.dequeue()
})
}
}(jQuery),
function(a, b) {
a.effects.clip = function(b) {
return this.queue(function() {
var c = a(this)
, d = ["position", "top", "bottom", "left", "right", "height", "width"]
, e = a.effects.setMode(c, b.options.mode || "hide")
, f = b.options.direction || "vertical";
a.effects.save(c, d),
c.show();
var g = a.effects.createWrapper(c).css({
overflow: "hidden"
})
, h = c[0].tagName == "IMG" ? g : c
, i = {
size: f == "vertical" ? "height" : "width",
position: f == "vertical" ? "top" : "left"
}
, j = f == "vertical" ? h.height() : h.width();
e == "show" && (h.css(i.size, 0),
h.css(i.position, j / 2));
var k = {};
k[i.size] = e == "show" ? j : 0,
k[i.position] = e == "show" ? 0 : j / 2,
h.animate(k, {
queue: !1,
duration: b.duration,
easing: b.options.easing,
complete: function() {
e == "hide" && c.hide(),
a.effects.restore(c, d),
a.effects.removeWrapper(c),
b.callback && b.callback.apply(c[0], arguments),
c.dequeue()
}
})
})
}
}(jQuery),
function(a, b) {
a.effects.drop = function(b) {
return this.queue(function() {
var c = a(this)
, d = ["position", "top", "bottom", "left", "right", "opacity"]
, e = a.effects.setMode(c, b.options.mode || "hide")
, f = b.options.direction || "left";
a.effects.save(c, d),
c.show(),
a.effects.createWrapper(c);
var g = f == "up" || f == "down" ? "top" : "left"
, h = f == "up" || f == "left" ? "pos" : "neg"
, i = b.options.distance || (g == "top" ? c.outerHeight(!0) / 2 : c.outerWidth(!0) / 2);
e == "show" && c.css("opacity", 0).css(g, h == "pos" ? -i : i);
var j = {
opacity: e == "show" ? 1 : 0
};
j[g] = (e == "show" ? h == "pos" ? "+=" : "-=" : h == "pos" ? "-=" : "+=") + i,
c.animate(j, {
queue: !1,
duration: b.duration,
easing: b.options.easing,
complete: function() {
e == "hide" && c.hide(),
a.effects.restore(c, d),
a.effects.removeWrapper(c),
b.callback && b.callback.apply(this, arguments),
c.dequeue()
}
})
})
}
}(jQuery),
function(a, b) {
a.effects.explode = function(b) {
return this.queue(function() {
var c = b.options.pieces ? Math.round(Math.sqrt(b.options.pieces)) : 3
, d = 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 e = a(this).show().css("visibility", "hidden")
, f = e.offset();
f.top -= parseInt(e.css("marginTop"), 10) || 0,
f.left -= parseInt(e.css("marginLeft"), 10) || 0;
var g = e.outerWidth(!0)
, h = e.outerHeight(!0);
for (var i = 0; i < c; i++)
for (var j = 0; j < d; j++)
e.clone().appendTo("body").wrap("").css({
position: "absolute",
visibility: "visible",
left: -j * (g / d),
top: -i * (h / c)
}).parent().addClass("ui-effects-explode").css({
position: "absolute",
overflow: "hidden",
width: g / d,
height: h / c,
left: f.left + j * (g / d) + (b.options.mode == "show" ? (j - Math.floor(d / 2)) * (g / d) : 0),
top: f.top + i * (h / c) + (b.options.mode == "show" ? (i - Math.floor(c / 2)) * (h / c) : 0),
opacity: b.options.mode == "show" ? 0 : 1
}).animate({
left: f.left + j * (g / d) + (b.options.mode == "show" ? 0 : (j - Math.floor(d / 2)) * (g / d)),
top: f.top + i * (h / c) + (b.options.mode == "show" ? 0 : (i - Math.floor(c / 2)) * (h / c)),
opacity: b.options.mode == "show" ? 1 : 0
}, b.duration || 500);
setTimeout(function() {
b.options.mode == "show" ? e.css({
visibility: "visible"
}) : e.css({
visibility: "visible"
}).hide(),
b.callback && b.callback.apply(e[0]),
e.dequeue(),
a("div.ui-effects-explode").remove()
}, b.duration || 500)
})
}
}(jQuery),
function(a, b) {
a.effects.fade = function(b) {
return this.queue(function() {
var c = a(this)
, d = a.effects.setMode(c, b.options.mode || "hide");
c.animate({
opacity: d
}, {
queue: !1,
duration: b.duration,
easing: b.options.easing,
complete: function() {
b.callback && b.callback.apply(this, arguments),
c.dequeue()
}
})
})
}
}(jQuery),
function(a, b) {
a.effects.fold = function(b) {
return this.queue(function() {
var c = a(this)
, d = ["position", "top", "bottom", "left", "right"]
, e = a.effects.setMode(c, b.options.mode || "hide")
, f = b.options.size || 15
, g = !!b.options.horizFirst
, h = b.duration ? b.duration / 2 : a.fx.speeds._default / 2;
a.effects.save(c, d),
c.show();
var i = a.effects.createWrapper(c).css({
overflow: "hidden"
})
, j = e == "show" != g
, k = j ? ["width", "height"] : ["height", "width"]
, l = j ? [i.width(), i.height()] : [i.height(), i.width()]
, m = /([0-9]+)%/.exec(f);
m && (f = parseInt(m[1], 10) / 100 * l[e == "hide" ? 0 : 1]),
e == "show" && i.css(g ? {
height: 0,
width: f
} : {
height: f,
width: 0
});
var n = {}
, p = {};
n[k[0]] = e == "show" ? l[0] : f,
p[k[1]] = e == "show" ? l[1] : 0,
i.animate(n, h, b.options.easing).animate(p, h, b.options.easing, function() {
e == "hide" && c.hide(),
a.effects.restore(c, d),
a.effects.removeWrapper(c),
b.callback && b.callback.apply(c[0], arguments),
c.dequeue()
})
})
}
}(jQuery),
function(a, b) {
a.effects.highlight = function(b) {
return this.queue(function() {
var c = a(this)
, d = ["backgroundImage", "backgroundColor", "opacity"]
, e = a.effects.setMode(c, b.options.mode || "show")
, f = {
backgroundColor: c.css("backgroundColor")
};
e == "hide" && (f.opacity = 0),
a.effects.save(c, d),
c.show().css({
backgroundImage: "none",
backgroundColor: b.options.color || "#ffff99"
}).animate(f, {
queue: !1,
duration: b.duration,
easing: b.options.easing,
complete: function() {
e == "hide" && c.hide(),
a.effects.restore(c, d),
e == "show" && !a.support.opacity && this.style.removeAttribute("filter"),
b.callback && b.callback.apply(this, arguments),
c.dequeue()
}
})
})
}
}(jQuery),
function(a, b) {
a.effects.pulsate = function(b) {
return this.queue(function() {
var c = a(this)
, d = a.effects.setMode(c, b.options.mode || "show")
, e = (b.options.times || 5) * 2 - 1
, f = b.duration ? b.duration / 2 : a.fx.speeds._default / 2
, g = c.is(":visible")
, h = 0;
g || (c.css("opacity", 0).show(),
h = 1),
(d == "hide" && g || d == "show" && !g) && e--;
for (var i = 0; i < e; i++)
c.animate({
opacity: h
}, f, b.options.easing),
h = (h + 1) % 2;
c.animate({
opacity: h
}, f, b.options.easing, function() {
h == 0 && c.hide(),
b.callback && b.callback.apply(this, arguments)
}),
c.queue("fx", function() {
c.dequeue()
}).dequeue()
})
}
}(jQuery),
function(a, b) {
a.effects.puff = function(b) {
return this.queue(function() {
var c = a(this)
, d = a.effects.setMode(c, b.options.mode || "hide")
, e = parseInt(b.options.percent, 10) || 150
, f = e / 100
, g = {
height: c.height(),
width: c.width()
};
a.extend(b.options, {
fade: !0,
mode: d,
percent: d == "hide" ? e : 100,
from: d == "hide" ? g : {
height: g.height * f,
width: g.width * f
}
}),
c.effect("scale", b.options, b.duration, b.callback),
c.dequeue()
})
}
,
a.effects.scale = function(b) {
return this.queue(function() {
var c = a(this)
, d = a.extend(!0, {}, b.options)
, e = a.effects.setMode(c, b.options.mode || "effect")
, f = parseInt(b.options.percent, 10) || (parseInt(b.options.percent, 10) == 0 ? 0 : e == "hide" ? 0 : 100)
, g = b.options.direction || "both"
, h = b.options.origin;
e != "effect" && (d.origin = h || ["middle", "center"],
d.restore = !0);
var i = {
height: c.height(),
width: c.width()
};
c.from = b.options.from || (e == "show" ? {
height: 0,
width: 0
} : i);
var j = {
y: g != "horizontal" ? f / 100 : 1,
x: g != "vertical" ? f / 100 : 1
};
c.to = {
height: i.height * j.y,
width: i.width * j.x
},
b.options.fade && (e == "show" && (c.from.opacity = 0,
c.to.opacity = 1),
e == "hide" && (c.from.opacity = 1,
c.to.opacity = 0)),
d.from = c.from,
d.to = c.to,
d.mode = e,
c.effect("size", d, b.duration, b.callback),
c.dequeue()
})
}
,
a.effects.size = function(b) {
return this.queue(function() {
var c = a(this)
, d = ["position", "top", "bottom", "left", "right", "width", "height", "overflow", "opacity"]
, e = ["position", "top", "bottom", "left", "right", "overflow", "opacity"]
, f = ["width", "height", "overflow"]
, g = ["fontSize"]
, h = ["borderTopWidth", "borderBottomWidth", "paddingTop", "paddingBottom"]
, i = ["borderLeftWidth", "borderRightWidth", "paddingLeft", "paddingRight"]
, j = a.effects.setMode(c, b.options.mode || "effect")
, k = b.options.restore || !1
, l = b.options.scale || "both"
, m = b.options.origin
, n = {
height: c.height(),
width: c.width()
};
c.from = b.options.from || n,
c.to = b.options.to || n;
if (m) {
var p = a.effects.getBaseline(m, n);
c.from.top = (n.height - c.from.height) * p.y,
c.from.left = (n.width - c.from.width) * p.x,
c.to.top = (n.height - c.to.height) * p.y,
c.to.left = (n.width - c.to.width) * p.x
}
var q = {
from: {
y: c.from.height / n.height,
x: c.from.width / n.width
},
to: {
y: c.to.height / n.height,
x: c.to.width / n.width
}
};
if (l == "box" || l == "both")
q.from.y != q.to.y && (d = d.concat(h),
c.from = a.effects.setTransition(c, h, q.from.y, c.from),
c.to = a.effects.setTransition(c, h, q.to.y, c.to)),
q.from.x != q.to.x && (d = d.concat(i),
c.from = a.effects.setTransition(c, i, q.from.x, c.from),
c.to = a.effects.setTransition(c, i, q.to.x, c.to));
(l == "content" || l == "both") && q.from.y != q.to.y && (d = d.concat(g),
c.from = a.effects.setTransition(c, g, q.from.y, c.from),
c.to = a.effects.setTransition(c, g, q.to.y, c.to)),
a.effects.save(c, k ? d : e),
c.show(),
a.effects.createWrapper(c),
c.css("overflow", "hidden").css(c.from);
if (l == "content" || l == "both")
h = h.concat(["marginTop", "marginBottom"]).concat(g),
i = i.concat(["marginLeft", "marginRight"]),
f = d.concat(h).concat(i),
c.find("*[width]").each(function() {
var c = a(this);
k && a.effects.save(c, f);
var d = {
height: c.height(),
width: c.width()
};
c.from = {
height: d.height * q.from.y,
width: d.width * q.from.x
},
c.to = {
height: d.height * q.to.y,
width: d.width * q.to.x
},
q.from.y != q.to.y && (c.from = a.effects.setTransition(c, h, q.from.y, c.from),
c.to = a.effects.setTransition(c, h, q.to.y, c.to)),
q.from.x != q.to.x && (c.from = a.effects.setTransition(c, i, q.from.x, c.from),
c.to = a.effects.setTransition(c, i, q.to.x, c.to)),
c.css(c.from),
c.animate(c.to, b.duration, b.options.easing, function() {
k && a.effects.restore(c, f)
})
});
c.animate(c.to, {
queue: !1,
duration: b.duration,
easing: b.options.easing,
complete: function() {
c.to.opacity === 0 && c.css("opacity", c.from.opacity),
j == "hide" && c.hide(),
a.effects.restore(c, k ? d : e),
a.effects.removeWrapper(c),
b.callback && b.callback.apply(this, arguments),
c.dequeue()
}
})
})
}
}(jQuery),
function(a, b) {
a.effects.shake = function(b) {
return this.queue(function() {
var c = a(this)
, d = ["position", "top", "bottom", "left", "right"]
, e = a.effects.setMode(c, b.options.mode || "effect")
, f = b.options.direction || "left"
, g = b.options.distance || 20
, h = b.options.times || 3
, i = b.duration || b.options.duration || 140;
a.effects.save(c, d),
c.show(),
a.effects.createWrapper(c);
var j = f == "up" || f == "down" ? "top" : "left"
, k = f == "up" || f == "left" ? "pos" : "neg"
, l = {}
, m = {}
, n = {};
l[j] = (k == "pos" ? "-=" : "+=") + g,
m[j] = (k == "pos" ? "+=" : "-=") + g * 2,
n[j] = (k == "pos" ? "-=" : "+=") + g * 2,
c.animate(l, i, b.options.easing);
for (var p = 1; p < h; p++)
c.animate(m, i, b.options.easing).animate(n, i, b.options.easing);
c.animate(m, i, b.options.easing).animate(l, i / 2, b.options.easing, function() {
a.effects.restore(c, d),
a.effects.removeWrapper(c),
b.callback && b.callback.apply(this, arguments)
}),
c.queue("fx", function() {
c.dequeue()
}),
c.dequeue()
})
}
}(jQuery),
function(a, b) {
a.effects.slide = function(b) {
return this.queue(function() {
var c = a(this)
, d = ["position", "top", "bottom", "left", "right"]
, e = a.effects.setMode(c, b.options.mode || "show")
, f = b.options.direction || "left";
a.effects.save(c, d),
c.show(),
a.effects.createWrapper(c).css({
overflow: "hidden"
});
var g = f == "up" || f == "down" ? "top" : "left"
, h = f == "up" || f == "left" ? "pos" : "neg"
, i = b.options.distance || (g == "top" ? c.outerHeight(!0) : c.outerWidth(!0));
e == "show" && c.css(g, h == "pos" ? isNaN(i) ? "-" + i : -i : i);
var j = {};
j[g] = (e == "show" ? h == "pos" ? "+=" : "-=" : h == "pos" ? "-=" : "+=") + i,
c.animate(j, {
queue: !1,
duration: b.duration,
easing: b.options.easing,
complete: function() {
e == "hide" && c.hide(),
a.effects.restore(c, d),
a.effects.removeWrapper(c),
b.callback && b.callback.apply(this, arguments),
c.dequeue()
}
})
})
}
}(jQuery),
function(a, b) {
a.effects.transfer = function(b) {
return this.queue(function() {
var c = a(this)
, d = a(b.options.to)
, e = d.offset()
, f = {
top: e.top,
left: e.left,
height: d.innerHeight(),
width: d.innerWidth()
}
, g = c.offset()
, h = a('').appendTo(document.body).addClass(b.options.className).css({
top: g.top,
left: g.left,
height: c.innerHeight(),
width: c.innerWidth(),
position: "absolute"
}).animate(f, b.duration, b.options.easing, function() {
h.remove(),
b.callback && b.callback.apply(c[0], arguments),
c.dequeue()
})
})
}
}(jQuery),
function(a, b) {
a.widget("ui.accordion", {
options: {
active: 0,
animated: "slide",
autoHeight: !0,
clearStyle: !1,
collapsible: !1,
event: "click",
fillSpace: !1,
header: "> li > :first-child,> :not(li):even",
icons: {
header: "ui-icon-triangle-1-e",
headerSelected: "ui-icon-triangle-1-s"
},
navigation: !1,
navigationFilter: function() {
return this.href.toLowerCase() === location.href.toLowerCase()
}
},
_create: function() {
var b = this
, c = b.options;
b.running = 0,
b.element.addClass("ui-accordion ui-widget ui-helper-reset").children("li").addClass("ui-accordion-li-fix"),
b.headers = b.element.find(c.header).addClass("ui-accordion-header ui-helper-reset ui-state-default ui-corner-all").bind("mouseenter.accordion", function() {
if (c.disabled)
return;
a(this).addClass("ui-state-hover")
}).bind("mouseleave.accordion", function() {
if (c.disabled)
return;
a(this).removeClass("ui-state-hover")
}).bind("focus.accordion", function() {
if (c.disabled)
return;
a(this).addClass("ui-state-focus")
}).bind("blur.accordion", function() {
if (c.disabled)
return;
a(this).removeClass("ui-state-focus")
}),
b.headers.next().addClass("ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom");
if (c.navigation) {
var d = b.element.find("a").filter(c.navigationFilter).eq(0);
if (d.length) {
var e = d.closest(".ui-accordion-header");
e.length ? b.active = e : b.active = d.closest(".ui-accordion-content").prev()
}
}
b.active = b._findActive(b.active || c.active).addClass("ui-state-default ui-state-active").toggleClass("ui-corner-all").toggleClass("ui-corner-top"),
b.active.next().addClass("ui-accordion-content-active"),
b._createIcons(),
b.resize(),
b.element.attr("role", "tablist"),
b.headers.attr("role", "tab").bind("keydown.accordion", function(a) {
return b._keydown(a)
}).next().attr("role", "tabpanel"),
b.headers.not(b.active || "").attr({
"aria-expanded": "false",
"aria-selected": "false",
tabIndex: -1
}).next().hide(),
b.active.length ? b.active.attr({
"aria-expanded": "true",
"aria-selected": "true",
tabIndex: 0
}) : b.headers.eq(0).attr("tabIndex", 0),
a.browser.safari || b.headers.find("a").attr("tabIndex", -1),
c.event && b.headers.bind(c.event.split(" ").join(".accordion ") + ".accordion", function(a) {
b._clickHandler.call(b, a, this),
a.preventDefault()
})
},
_createIcons: function() {
var b = this.options;
b.icons && (a("").addClass("ui-icon " + b.icons.header).prependTo(this.headers),
this.active.children(".ui-icon").toggleClass(b.icons.header).toggleClass(b.icons.headerSelected),
this.element.addClass("ui-accordion-icons"))
},
_destroyIcons: function() {
this.headers.children(".ui-icon").remove(),
this.element.removeClass("ui-accordion-icons")
},
destroy: function() {
var b = this.options;
this.element.removeClass("ui-accordion ui-widget ui-helper-reset").removeAttr("role"),
this.headers.unbind(".accordion").removeClass("ui-accordion-header ui-accordion-disabled ui-helper-reset ui-state-default ui-corner-all ui-state-active ui-state-disabled ui-corner-top").removeAttr("role").removeAttr("aria-expanded").removeAttr("aria-selected").removeAttr("tabIndex"),
this.headers.find("a").removeAttr("tabIndex"),
this._destroyIcons();
var c = this.headers.next().css("display", "").removeAttr("role").removeClass("ui-helper-reset ui-widget-content ui-corner-bottom ui-accordion-content ui-accordion-content-active ui-accordion-disabled ui-state-disabled");
return (b.autoHeight || b.fillHeight) && c.css("height", ""),
a.Widget.prototype.destroy.call(this)
},
_setOption: function(b, c) {
a.Widget.prototype._setOption.apply(this, arguments),
b == "active" && this.activate(c),
b == "icons" && (this._destroyIcons(),
c && this._createIcons()),
b == "disabled" && this.headers.add(this.headers.next())[c ? "addClass" : "removeClass"]("ui-accordion-disabled ui-state-disabled")
},
_keydown: function(b) {
if (this.options.disabled || b.altKey || b.ctrlKey)
return;
var c = a.ui.keyCode
, d = this.headers.length
, e = this.headers.index(b.target)
, f = !1;
switch (b.keyCode) {
case c.RIGHT:
case c.DOWN:
f = this.headers[(e + 1) % d];
break;
case c.LEFT:
case c.UP:
f = this.headers[(e - 1 + d) % d];
break;
case c.SPACE:
case c.ENTER:
this._clickHandler({
target: b.target
}, b.target),
b.preventDefault()
}
return f ? (a(b.target).attr("tabIndex", -1),
a(f).attr("tabIndex", 0),
f.focus(),
!1) : !0
},
resize: function() {
var b = this.options, c;
if (b.fillSpace) {
if (a.browser.msie) {
var d = this.element.parent().css("overflow");
this.element.parent().css("overflow", "hidden")
}
c = this.element.parent().height(),
a.browser.msie && this.element.parent().css("overflow", d),
this.headers.each(function() {
c -= a(this).outerHeight(!0)
}),
this.headers.next().each(function() {
a(this).height(Math.max(0, c - a(this).innerHeight() + a(this).height()))
}).css("overflow", "auto")
} else
b.autoHeight && (c = 0,
this.headers.next().each(function() {
c = Math.max(c, a(this).height("").height())
}).height(c));
return this
},
activate: function(a) {
this.options.active = a;
var b = this._findActive(a)[0];
return this._clickHandler({
target: b
}, b),
this
},
_findActive: function(b) {
return b ? typeof b == "number" ? this.headers.filter(":eq(" + b + ")") : this.headers.not(this.headers.not(b)) : b === !1 ? a([]) : this.headers.filter(":eq(0)")
},
_clickHandler: function(b, c) {
var d = this.options;
if (d.disabled)
return;
if (!b.target) {
if (!d.collapsible)
return;
this.active.removeClass("ui-state-active ui-corner-top").addClass("ui-state-default ui-corner-all").children(".ui-icon").removeClass(d.icons.headerSelected).addClass(d.icons.header),
this.active.next().addClass("ui-accordion-content-active");
var e = this.active.next()
, f = {
options: d,
newHeader: a([]),
oldHeader: d.active,
newContent: a([]),
oldContent: e
}
, g = this.active = a([]);
this._toggle(g, e, f);
return
}
var h = a(b.currentTarget || c)
, i = h[0] === this.active[0];
d.active = d.collapsible && i ? !1 : this.headers.index(h);
if (this.running || !d.collapsible && i)
return;
var j = this.active
, g = h.next()
, e = this.active.next()
, f = {
options: d,
newHeader: i && d.collapsible ? a([]) : h,
oldHeader: this.active,
newContent: i && d.collapsible ? a([]) : g,
oldContent: e
}
, k = this.headers.index(this.active[0]) > this.headers.index(h[0]);
this.active = i ? a([]) : h,
this._toggle(g, e, f, i, k),
j.removeClass("ui-state-active ui-corner-top").addClass("ui-state-default ui-corner-all").children(".ui-icon").removeClass(d.icons.headerSelected).addClass(d.icons.header),
i || (h.removeClass("ui-state-default ui-corner-all").addClass("ui-state-active ui-corner-top").children(".ui-icon").removeClass(d.icons.header).addClass(d.icons.headerSelected),
h.next().addClass("ui-accordion-content-active"));
return
},
_toggle: function(b, c, d, e, f) {
var g = this
, h = g.options;
g.toShow = b,
g.toHide = c,
g.data = d;
var i = function() {
if (!g)
return;
return g._completed.apply(g, arguments)
};
g._trigger("changestart", null, g.data),
g.running = c.size() === 0 ? b.size() : c.size();
if (h.animated) {
var j = {};
h.collapsible && e ? j = {
toShow: a([]),
toHide: c,
complete: i,
down: f,
autoHeight: h.autoHeight || h.fillSpace
} : j = {
toShow: b,
toHide: c,
complete: i,
down: f,
autoHeight: h.autoHeight || h.fillSpace
},
h.proxied || (h.proxied = h.animated),
h.proxiedDuration || (h.proxiedDuration = h.duration),
h.animated = a.isFunction(h.proxied) ? h.proxied(j) : h.proxied,
h.duration = a.isFunction(h.proxiedDuration) ? h.proxiedDuration(j) : h.proxiedDuration;
var k = a.ui.accordion.animations
, l = h.duration
, m = h.animated;
m && !k[m] && !a.easing[m] && (m = "slide"),
k[m] || (k[m] = function(a) {
this.slide(a, {
easing: m,
duration: l || 700
})
}
),
k[m](j)
} else
h.collapsible && e ? b.toggle() : (c.hide(),
b.show()),
i(!0);
c.prev().attr({
"aria-expanded": "false",
"aria-selected": "false",
tabIndex: -1
}).blur(),
b.prev().attr({
"aria-expanded": "true",
"aria-selected": "true",
tabIndex: 0
}).focus()
},
_completed: function(a) {
this.running = a ? 0 : --this.running;
if (this.running)
return;
this.options.clearStyle && this.toShow.add(this.toHide).css({
height: "",
overflow: ""
}),
this.toHide.removeClass("ui-accordion-content-active"),
this.toHide.length && (this.toHide.parent()[0].className = this.toHide.parent()[0].className),
this._trigger("change", null, this.data)
}
}),
a.extend(a.ui.accordion, {
version: "1.8.24",
animations: {
slide: function(b, c) {
b = a.extend({
easing: "swing",
duration: 300
}, b, c);
if (!b.toHide.size()) {
b.toShow.animate({
height: "show",
paddingTop: "show",
paddingBottom: "show"
}, b);
return
}
if (!b.toShow.size()) {
b.toHide.animate({
height: "hide",
paddingTop: "hide",
paddingBottom: "hide"
}, b);
return
}
var d = b.toShow.css("overflow"), e = 0, f = {}, g = {}, h = ["height", "paddingTop", "paddingBottom"], i, j = b.toShow;
i = j[0].style.width,
j.width(j.parent().width() - parseFloat(j.css("paddingLeft")) - parseFloat(j.css("paddingRight")) - (parseFloat(j.css("borderLeftWidth")) || 0) - (parseFloat(j.css("borderRightWidth")) || 0)),
a.each(h, function(c, d) {
g[d] = "hide";
var e = ("" + a.css(b.toShow[0], d)).match(/^([\d+-.]+)(.*)$/);
f[d] = {
value: e[1],
unit: e[2] || "px"
}
}),
b.toShow.css({
height: 0,
overflow: "hidden"
}).show(),
b.toHide.filter(":hidden").each(b.complete).end().filter(":visible").animate(g, {
step: function(a, c) {
c.prop == "height" && (e = c.end - c.start === 0 ? 0 : (c.now - c.start) / (c.end - c.start)),
b.toShow[0].style[c.prop] = e * f[c.prop].value + f[c.prop].unit
},
duration: b.duration,
easing: b.easing,
complete: function() {
b.autoHeight || b.toShow.css("height", ""),
b.toShow.css({
width: i,
overflow: d
}),
b.complete()
}
})
},
bounceslide: function(a) {
this.slide(a, {
easing: a.down ? "easeOutBounce" : "swing",
duration: a.down ? 1e3 : 200
})
}
}
})
}(jQuery),
function(a, b) {
var c = 0;
a.widget("ui.autocomplete", {
options: {
appendTo: "body",
autoFocus: !1,
delay: 300,
minLength: 1,
position: {
my: "left top",
at: "left bottom",
collision: "none"
},
source: null
},
pending: 0,
_create: function() {
var b = this, c = this.element[0].ownerDocument, d;
this.isMultiLine = this.element.is("textarea"),
this.element.addClass("ui-autocomplete-input").attr("autocomplete", "off").attr({
role: "textbox",
"aria-autocomplete": "list",
"aria-haspopup": "true"
}).bind("keydown.autocomplete", function(c) {
if (b.options.disabled || b.element.propAttr("readOnly"))
return;
d = !1;
var e = a.ui.keyCode;
switch (c.keyCode) {
case e.PAGE_UP:
b._move("previousPage", c);
break;
case e.PAGE_DOWN:
b._move("nextPage", c);
break;
case e.UP:
b._keyEvent("previous", c);
break;
case e.DOWN:
b._keyEvent("next", c);
break;
case e.ENTER:
case e.NUMPAD_ENTER:
b.menu.active && (d = !0,
c.preventDefault());
case e.TAB:
if (!b.menu.active)
return;
b.menu.select(c);
break;
case e.ESCAPE:
b.element.val(b.term),
b.close(c);
break;
default:
clearTimeout(b.searching),
b.searching = setTimeout(function() {
b.term != b.element.val() && (b.selectedItem = null,
b.search(null, c))
}, b.options.delay)
}
}).bind("keypress.autocomplete", function(a) {
d && (d = !1,
a.preventDefault())
}).bind("focus.autocomplete", function() {
if (b.options.disabled)
return;
b.selectedItem = null,
b.previous = b.element.val()
}).bind("blur.autocomplete", function(a) {
if (b.options.disabled)
return;
clearTimeout(b.searching),
b.closing = setTimeout(function() {
b.close(a),
b._change(a)
}, 150)
}),
this._initSource(),
this.menu = a("").addClass("ui-autocomplete").appendTo(a(this.options.appendTo || "body", c)[0]).mousedown(function(c) {
var d = b.menu.element[0];
a(c.target).closest(".ui-menu-item").length || setTimeout(function() {
a(document).one("mousedown", function(c) {
c.target !== b.element[0] && c.target !== d && !a.ui.contains(d, c.target) && b.close()
})
}, 1),
setTimeout(function() {
clearTimeout(b.closing)
}, 13)
}).menu({
focus: function(a, c) {
var d = c.item.data("item.autocomplete");
!1 !== b._trigger("focus", a, {
item: d
}) && /^key/.test(a.originalEvent.type) && b.element.val(d.value)
},
selected: function(a, d) {
var e = d.item.data("item.autocomplete")
, f = b.previous;
b.element[0] !== c.activeElement && (b.element.focus(),
b.previous = f,
setTimeout(function() {
b.previous = f,
b.selectedItem = e
}, 1)),
!1 !== b._trigger("select", a, {
item: e
}) && b.element.val(e.value),
b.term = b.element.val(),
b.close(a),
b.selectedItem = e
},
blur: function(a, c) {
b.menu.element.is(":visible") && b.element.val() !== b.term && b.element.val(b.term)
}
}).zIndex(this.element.zIndex() + 1).css({
top: 0,
left: 0
}).hide().data("menu"),
a.fn.bgiframe && this.menu.element.bgiframe(),
b.beforeunloadHandler = function() {
b.element.removeAttr("autocomplete")
}
,
a(window).bind("beforeunload", b.beforeunloadHandler)
},
destroy: function() {
this.element.removeClass("ui-autocomplete-input").removeAttr("autocomplete").removeAttr("role").removeAttr("aria-autocomplete").removeAttr("aria-haspopup"),
this.menu.element.remove(),
a(window).unbind("beforeunload", this.beforeunloadHandler),
a.Widget.prototype.destroy.call(this)
},
_setOption: function(b, c) {
a.Widget.prototype._setOption.apply(this, arguments),
b === "source" && this._initSource(),
b === "appendTo" && this.menu.element.appendTo(a(c || "body", this.element[0].ownerDocument)[0]),
b === "disabled" && c && this.xhr && this.xhr.abort()
},
_initSource: function() {
var b = this, c, d;
a.isArray(this.options.source) ? (c = this.options.source,
this.source = function(b, d) {
d(a.ui.autocomplete.filter(c, b.term))
}
) : typeof this.options.source == "string" ? (d = this.options.source,
this.source = function(c, e) {
b.xhr && b.xhr.abort(),
b.xhr = a.ajax({
url: d,
data: c,
dataType: "json",
success: function(a, b) {
e(a)
},
error: function() {
e([])
}
})
}
) : this.source = this.options.source
},
search: function(a, b) {
a = a != null ? a : this.element.val(),
this.term = this.element.val();
if (a.length < this.options.minLength)
return this.close(b);
clearTimeout(this.closing);
if (this._trigger("search", b) === !1)
return;
return this._search(a)
},
_search: function(a) {
this.pending++,
this.element.addClass("ui-autocomplete-loading"),
this.source({
term: a
}, this._response())
},
_response: function() {
var a = this
, b = ++c;
return function(d) {
b === c && a.__response(d),
a.pending--,
a.pending || a.element.removeClass("ui-autocomplete-loading")
}
},
__response: function(a) {
!this.options.disabled && a && a.length ? (a = this._normalize(a),
this._suggest(a),
this._trigger("open")) : this.close()
},
close: function(a) {
clearTimeout(this.closing),
this.menu.element.is(":visible") && (this.menu.element.hide(),
this.menu.deactivate(),
this._trigger("close", a))
},
_change: function(a) {
this.previous !== this.element.val() && this._trigger("change", a, {
item: this.selectedItem
})
},
_normalize: function(b) {
return b.length && b[0].label && b[0].value ? b : a.map(b, function(b) {
return typeof b == "string" ? {
label: b,
value: b
} : a.extend({
label: b.label || b.value,
value: b.value || b.label
}, b)
})
},
_suggest: function(b) {
var c = this.menu.element.empty().zIndex(this.element.zIndex() + 1);
this._renderMenu(c, b),
this.menu.deactivate(),
this.menu.refresh(),
c.show(),
this._resizeMenu(),
c.position(a.extend({
of: this.element
}, this.options.position)),
this.options.autoFocus && this.menu.next(new a.Event("mouseover"))
},
_resizeMenu: function() {
var a = this.menu.element;
a.outerWidth(Math.max(a.width("").outerWidth() + 1, this.element.outerWidth()))
},
_renderMenu: function(b, c) {
var d = this;
a.each(c, function(a, c) {
d._renderItem(b, c)
})
},
_renderItem: function(b, c) {
return a("").data("item.autocomplete", c).append(a("").text(c.label)).appendTo(b)
},
_move: function(a, b) {
if (!this.menu.element.is(":visible")) {
this.search(null, b);
return
}
if (this.menu.first() && /^previous/.test(a) || this.menu.last() && /^next/.test(a)) {
this.element.val(this.term),
this.menu.deactivate();
return
}
this.menu[a](b)
},
widget: function() {
return this.menu.element
},
_keyEvent: function(a, b) {
if (!this.isMultiLine || this.menu.element.is(":visible"))
this._move(a, b),
b.preventDefault()
}
}),
a.extend(a.ui.autocomplete, {
escapeRegex: function(a) {
return a.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&")
},
filter: function(b, c) {
var d = new RegExp(a.ui.autocomplete.escapeRegex(c),"i");
return a.grep(b, function(a) {
return d.test(a.label || a.value || a)
})
}
})
}(jQuery),
function(a) {
a.widget("ui.menu", {
_create: function() {
var b = this;
this.element.addClass("ui-menu ui-widget ui-widget-content ui-corner-all").attr({
role: "listbox",
"aria-activedescendant": "ui-active-menuitem"
}).click(function(c) {
if (!a(c.target).closest(".ui-menu-item a").length)
return;
c.preventDefault(),
b.select(c)
}),
this.refresh()
},
refresh: function() {
var b = this
, c = this.element.children("li:not(.ui-menu-item):has(a)").addClass("ui-menu-item").attr("role", "menuitem");
c.children("a").addClass("ui-corner-all").attr("tabindex", -1).mouseenter(function(c) {
b.activate(c, a(this).parent())
}).mouseleave(function() {
b.deactivate()
})
},
activate: function(a, b) {
this.deactivate();
if (this.hasScroll()) {
var c = b.offset().top - this.element.offset().top
, d = this.element.scrollTop()
, e = this.element.height();
c < 0 ? this.element.scrollTop(d + c) : c >= e && this.element.scrollTop(d + c - e + b.height())
}
this.active = b.eq(0).children("a").addClass("ui-state-hover").attr("id", "ui-active-menuitem").end(),
this._trigger("focus", a, {
item: b
})
},
deactivate: function() {
if (!this.active)
return;
this.active.children("a").removeClass("ui-state-hover").removeAttr("id"),
this._trigger("blur"),
this.active = null
},
next: function(a) {
this.move("next", ".ui-menu-item:first", a)
},
previous: function(a) {
this.move("prev", ".ui-menu-item:last", a)
},
first: function() {
return this.active && !this.active.prevAll(".ui-menu-item").length
},
last: function() {
return this.active && !this.active.nextAll(".ui-menu-item").length
},
move: function(a, b, c) {
if (!this.active) {
this.activate(c, this.element.children(b));
return
}
var d = this.active[a + "All"](".ui-menu-item").eq(0);
d.length ? this.activate(c, d) : this.activate(c, this.element.children(b))
},
nextPage: function(b) {
if (this.hasScroll()) {
if (!this.active || this.last()) {
this.activate(b, this.element.children(".ui-menu-item:first"));
return
}
var c = this.active.offset().top
, d = this.element.height()
, e = this.element.children(".ui-menu-item").filter(function() {
var b = a(this).offset().top - c - d + a(this).height();
return b < 10 && b > -10
});
e.length || (e = this.element.children(".ui-menu-item:last")),
this.activate(b, e)
} else
this.activate(b, this.element.children(".ui-menu-item").filter(!this.active || this.last() ? ":first" : ":last"))
},
previousPage: function(b) {
if (this.hasScroll()) {
if (!this.active || this.first()) {
this.activate(b, this.element.children(".ui-menu-item:last"));
return
}
var c = this.active.offset().top
, d = this.element.height()
, e = this.element.children(".ui-menu-item").filter(function() {
var b = a(this).offset().top - c + d - a(this).height();
return b < 10 && b > -10
});
e.length || (e = this.element.children(".ui-menu-item:first")),
this.activate(b, e)
} else
this.activate(b, this.element.children(".ui-menu-item").filter(!this.active || this.first() ? ":last" : ":first"))
},
hasScroll: function() {
return this.element.height() < this.element[a.fn.prop ? "prop" : "attr"]("scrollHeight")
},
select: function(a) {
this._trigger("selected", a, {
item: this.active
})
}
})
}(jQuery),
function(a, b) {
var c, d, e, f, g = "ui-button ui-widget ui-state-default ui-corner-all", h = "ui-state-hover ui-state-active ", i = "ui-button-icons-only ui-button-icon-only ui-button-text-icons ui-button-text-icon-primary ui-button-text-icon-secondary ui-button-text-only", j = function() {
var b = a(this).find(":ui-button");
setTimeout(function() {
b.button("refresh")
}, 1)
}, k = function(b) {
var c = b.name
, d = b.form
, e = a([]);
return c && (d ? e = a(d).find("[name='" + c + "']") : e = a("[name='" + c + "']", b.ownerDocument).filter(function() {
return !this.form
})),
e
};
a.widget("ui.button", {
options: {
disabled: null,
text: !0,
label: null,
icons: {
primary: null,
secondary: null
}
},
_create: function() {
this.element.closest("form").unbind("reset.button").bind("reset.button", j),
typeof this.options.disabled != "boolean" ? this.options.disabled = !!this.element.propAttr("disabled") : this.element.propAttr("disabled", this.options.disabled),
this._determineButtonType(),
this.hasTitle = !!this.buttonElement.attr("title");
var b = this
, h = this.options
, i = this.type === "checkbox" || this.type === "radio"
, l = "ui-state-hover" + (i ? "" : " ui-state-active")
, m = "ui-state-focus";
h.label === null && (h.label = this.buttonElement.html()),
this.buttonElement.addClass(g).attr("role", "button").bind("mouseenter.button", function() {
if (h.disabled)
return;
a(this).addClass("ui-state-hover"),
this === c && a(this).addClass("ui-state-active")
}).bind("mouseleave.button", function() {
if (h.disabled)
return;
a(this).removeClass(l)
}).bind("click.button", function(a) {
h.disabled && (a.preventDefault(),
a.stopImmediatePropagation())
}),
this.element.bind("focus.button", function() {
b.buttonElement.addClass(m)
}).bind("blur.button", function() {
b.buttonElement.removeClass(m)
}),
i && (this.element.bind("change.button", function() {
if (f)
return;
b.refresh()
}),
this.buttonElement.bind("mousedown.button", function(a) {
if (h.disabled)
return;
f = !1,
d = a.pageX,
e = a.pageY
}).bind("mouseup.button", function(a) {
if (h.disabled)
return;
if (d !== a.pageX || e !== a.pageY)
f = !0
})),
this.type === "checkbox" ? this.buttonElement.bind("click.button", function() {
if (h.disabled || f)
return !1;
a(this).toggleClass("ui-state-active"),
b.buttonElement.attr("aria-pressed", b.element[0].checked)
}) : this.type === "radio" ? this.buttonElement.bind("click.button", function() {
if (h.disabled || f)
return !1;
a(this).addClass("ui-state-active"),
b.buttonElement.attr("aria-pressed", "true");
var c = b.element[0];
k(c).not(c).map(function() {
return a(this).button("widget")[0]
}).removeClass("ui-state-active").attr("aria-pressed", "false")
}) : (this.buttonElement.bind("mousedown.button", function() {
if (h.disabled)
return !1;
a(this).addClass("ui-state-active"),
c = this,
a(document).one("mouseup", function() {
c = null
})
}).bind("mouseup.button", function() {
if (h.disabled)
return !1;
a(this).removeClass("ui-state-active")
}).bind("keydown.button", function(b) {
if (h.disabled)
return !1;
(b.keyCode == a.ui.keyCode.SPACE || b.keyCode == a.ui.keyCode.ENTER) && a(this).addClass("ui-state-active")
}).bind("keyup.button", function() {
a(this).removeClass("ui-state-active")
}),
this.buttonElement.is("a") && this.buttonElement.keyup(function(b) {
b.keyCode === a.ui.keyCode.SPACE && a(this).click()
})),
this._setOption("disabled", h.disabled),
this._resetButton()
},
_determineButtonType: function() {
this.element.is(":checkbox") ? this.type = "checkbox" : this.element.is(":radio") ? this.type = "radio" : this.element.is("input") ? this.type = "input" : this.type = "button";
if (this.type === "checkbox" || this.type === "radio") {
var a = this.element.parents().filter(":last")
, b = "label[for='" + this.element.attr("id") + "']";
this.buttonElement = a.find(b),
this.buttonElement.length || (a = a.length ? a.siblings() : this.element.siblings(),
this.buttonElement = a.filter(b),
this.buttonElement.length || (this.buttonElement = a.find(b))),
this.element.addClass("ui-helper-hidden-accessible");
var c = this.element.is(":checked");
c && this.buttonElement.addClass("ui-state-active"),
this.buttonElement.attr("aria-pressed", c)
} else
this.buttonElement = this.element
},
widget: function() {
return this.buttonElement
},
destroy: function() {
this.element.removeClass("ui-helper-hidden-accessible"),
this.buttonElement.removeClass(g + " " + h + " " + i).removeAttr("role").removeAttr("aria-pressed").html(this.buttonElement.find(".ui-button-text").html()),
this.hasTitle || this.buttonElement.removeAttr("title"),
a.Widget.prototype.destroy.call(this)
},
_setOption: function(b, c) {
a.Widget.prototype._setOption.apply(this, arguments);
if (b === "disabled") {
c ? this.element.propAttr("disabled", !0) : this.element.propAttr("disabled", !1);
return
}
this._resetButton()
},
refresh: function() {
var b = this.element.is(":disabled");
b !== this.options.disabled && this._setOption("disabled", b),
this.type === "radio" ? k(this.element[0]).each(function() {
a(this).is(":checked") ? a(this).button("widget").addClass("ui-state-active").attr("aria-pressed", "true") : a(this).button("widget").removeClass("ui-state-active").attr("aria-pressed", "false")
}) : this.type === "checkbox" && (this.element.is(":checked") ? this.buttonElement.addClass("ui-state-active").attr("aria-pressed", "true") : this.buttonElement.removeClass("ui-state-active").attr("aria-pressed", "false"))
},
_resetButton: function() {
if (this.type === "input") {
this.options.label && this.element.val(this.options.label);
return
}
var b = this.buttonElement.removeClass(i)
, c = a("", this.element[0].ownerDocument).addClass("ui-button-text").html(this.options.label).appendTo(b.empty()).text()
, d = this.options.icons
, e = d.primary && d.secondary
, f = [];
d.primary || d.secondary ? (this.options.text && f.push("ui-button-text-icon" + (e ? "s" : d.primary ? "-primary" : "-secondary")),
d.primary && b.prepend(""),
d.secondary && b.append(""),
this.options.text || (f.push(e ? "ui-button-icons-only" : "ui-button-icon-only"),
this.hasTitle || b.attr("title", c))) : f.push("ui-button-text-only"),
b.addClass(f.join(" "))
}
}),
a.widget("ui.buttonset", {
options: {
items: ":button, :submit, :reset, :checkbox, :radio, a, :data(button)"
},
_create: function() {
this.element.addClass("ui-buttonset")
},
_init: function() {
this.refresh()
},
_setOption: function(b, c) {
b === "disabled" && this.buttons.button("option", b, c),
a.Widget.prototype._setOption.apply(this, arguments)
},
refresh: function() {
var b = this.element.css("direction") === "rtl";
this.buttons = this.element.find(this.options.items).filter(":ui-button").button("refresh").end().not(":ui-button").button().end().map(function() {
return a(this).button("widget")[0]
}).removeClass("ui-corner-all ui-corner-left ui-corner-right").filter(":first").addClass(b ? "ui-corner-right" : "ui-corner-left").end().filter(":last").addClass(b ? "ui-corner-left" : "ui-corner-right").end().end()
},
destroy: function() {
this.element.removeClass("ui-buttonset"),
this.buttons.map(function() {
return a(this).button("widget")[0]
}).removeClass("ui-corner-left ui-corner-right").end().button("destroy"),
a.Widget.prototype.destroy.call(this)
}
})
}(jQuery),
function($, undefined) {
function Datepicker() {
this.debug = !1,
this._curInst = null,
this._keyEvent = !1,
this._disabledInputs = [],
this._datepickerShowing = !1,
this._inDialog = !1,
this._mainDivId = "ui-datepicker-div",
this._inlineClass = "ui-datepicker-inline",
this._appendClass = "ui-datepicker-append",
this._triggerClass = "ui-datepicker-trigger",
this._dialogClass = "ui-datepicker-dialog",
this._disableClass = "ui-datepicker-disabled",
this._unselectableClass = "ui-datepicker-unselectable",
this._currentClass = "ui-datepicker-current-day",
this._dayOverClass = "ui-datepicker-days-cell-over",
this.regional = [],
this.regional[""] = {
closeText: "Done",
prevText: "Prev",
nextText: "Next",
currentText: "Today",
monthNames: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"],
monthNamesShort: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"],
dayNames: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"],
dayNamesShort: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
dayNamesMin: ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"],
weekHeader: "Wk",
dateFormat: "mm/dd/yy",
firstDay: 0,
isRTL: !1,
showMonthAfterYear: !1,
yearSuffix: ""
},
this._defaults = {
showOn: "focus",
showAnim: "fadeIn",
showOptions: {},
defaultDate: null,
appendText: "",
buttonText: "...",
buttonImage: "",
buttonImageOnly: !1,
hideIfNoPrevNext: !1,
navigationAsDateFormat: !1,
gotoCurrent: !1,
changeMonth: !1,
changeYear: !1,
yearRange: "c-10:c+10",
showOtherMonths: !1,
selectOtherMonths: !1,
showWeek: !1,
calculateWeek: this.iso8601Week,
shortYearCutoff: "+10",
minDate: null,
maxDate: null,
duration: "fast",
beforeShowDay: null,
beforeShow: null,
onSelect: null,
onChangeMonthYear: null,
onClose: null,
numberOfMonths: 1,
showCurrentAtPos: 0,
stepMonths: 1,
stepBigMonths: 12,
altField: "",
altFormat: "",
constrainInput: !0,
showButtonPanel: !1,
autoSize: !1,
disabled: !1
},
$.extend(this._defaults, this.regional[""]),
this.dpDiv = bindHover($('
' + this._get(a, "weekHeader") + " | " : ""; for (var S = 0; S < 7; S++) { var T = (S + y) % 7; R += "= 5 ? ' class="ui-datepicker-week-end"' : "") + ">" + '' + C[T] + " | " } Q += R + "
---|---|
' + this._get(a, "calculateWeek")(Y) + " | " : ""; for (var S = 0; S < 7; S++) { var ba = F ? F.apply(a.input ? a.input[0] : null, [Y]) : [!0, ""] , bb = Y.getMonth() != n , bc = bb && !H || !ba[0] || l && Y < l || m && Y > m; _ += '" + (bb && !G ? " " : bc ? '' + Y.getDate() + "" : '' + Y.getDate() + "") + " | ", Y.setDate(Y.getDate() + 1), Y = this._daylightSavingAdjust(Y) } Q += _ + "