",
options: {
disabled: !1,
create: null
},
_createWidget: function(e, s) {
s = t(s || this.defaultElement || this)[0],
this.element = t(s),
this.uuid = i++,
this.eventNamespace = "." + this.widgetName + this.uuid,
this.options = t.widget.extend({}, this.options, this._getCreateOptions(), e),
this.bindings = t(),
this.hoverable = t(),
this.focusable = t(),
s !== this && (t.data(s, this.widgetFullName, this),
this._on(!0, this.element, {
remove: function(t) {
t.target === s && this.destroy()
}
}),
this.document = t(s.style ? s.ownerDocument : s.document || s),
this.window = t(this.document[0].defaultView || this.document[0].parentWindow)),
this._create(),
this._trigger("create", null, this._getCreateEventData()),
this._init()
},
_getCreateOptions: t.noop,
_getCreateEventData: t.noop,
_create: t.noop,
_init: t.noop,
destroy: function() {
this._destroy(),
this.element.unbind(this.eventNamespace).removeData(this.widgetName).removeData(this.widgetFullName).removeData(t.camelCase(this.widgetFullName)),
this.widget().unbind(this.eventNamespace).removeAttr("aria-disabled").removeClass(this.widgetFullName + "-disabled " + "ui-state-disabled"),
this.bindings.unbind(this.eventNamespace),
this.hoverable.removeClass("ui-state-hover"),
this.focusable.removeClass("ui-state-focus")
},
_destroy: t.noop,
widget: function() {
return this.element
},
option: function(i, s) {
var n, o, a, r = i;
if (0 === arguments.length)
return t.widget.extend({}, this.options);
if ("string" == typeof i)
if (r = {},
n = i.split("."),
i = n.shift(),
n.length) {
for (o = r[i] = t.widget.extend({}, this.options[i]),
a = 0; n.length - 1 > a; a++)
o[n[a]] = o[n[a]] || {},
o = o[n[a]];
if (i = n.pop(),
s === e)
return o[i] === e ? null : o[i];
o[i] = s
} else {
if (s === e)
return this.options[i] === e ? null : this.options[i];
r[i] = s
}
return this._setOptions(r),
this
},
_setOptions: function(t) {
var e;
for (e in t)
this._setOption(e, t[e]);
return this
},
_setOption: function(t, e) {
return this.options[t] = e,
"disabled" === t && (this.widget().toggleClass(this.widgetFullName + "-disabled ui-state-disabled", !!e).attr("aria-disabled", e),
this.hoverable.removeClass("ui-state-hover"),
this.focusable.removeClass("ui-state-focus")),
this
},
enable: function() {
return this._setOption("disabled", !1)
},
disable: function() {
return this._setOption("disabled", !0)
},
_on: function(i, s, n) {
var o, a = this;
"boolean" != typeof i && (n = s,
s = i,
i = !1),
n ? (s = o = t(s),
this.bindings = this.bindings.add(s)) : (n = s,
s = this.element,
o = this.widget()),
t.each(n, function(n, r) {
function h() {
return i || a.options.disabled !== !0 && !t(this).hasClass("ui-state-disabled") ? ("string" == typeof r ? a[r] : r).apply(a, arguments) : e
}
"string" != typeof r && (h.guid = r.guid = r.guid || h.guid || t.guid++);
var l = n.match(/^(\w+)\s*(.*)$/)
, c = l[1] + a.eventNamespace
, u = l[2];
u ? o.delegate(u, c, h) : s.bind(c, h)
})
},
_off: function(t, e) {
e = (e || "").split(" ").join(this.eventNamespace + " ") + this.eventNamespace,
t.unbind(e).undelegate(e)
},
_delay: function(t, e) {
function i() {
return ("string" == typeof t ? s[t] : t).apply(s, arguments)
}
var s = this;
return setTimeout(i, e || 0)
},
_hoverable: function(e) {
this.hoverable = this.hoverable.add(e),
this._on(e, {
mouseenter: function(e) {
t(e.currentTarget).addClass("ui-state-hover")
},
mouseleave: function(e) {
t(e.currentTarget).removeClass("ui-state-hover")
}
})
},
_focusable: function(e) {
this.focusable = this.focusable.add(e),
this._on(e, {
focusin: function(e) {
t(e.currentTarget).addClass("ui-state-focus")
},
focusout: function(e) {
t(e.currentTarget).removeClass("ui-state-focus")
}
})
},
_trigger: function(e, i, s) {
var n, o, a = this.options[e];
if (s = s || {},
i = t.Event(i),
i.type = (e === this.widgetEventPrefix ? e : this.widgetEventPrefix + e).toLowerCase(),
i.target = this.element[0],
o = i.originalEvent)
for (n in o)
n in i || (i[n] = o[n]);
return this.element.trigger(i, s),
!(t.isFunction(a) && a.apply(this.element[0], [i].concat(s)) === !1 || i.isDefaultPrevented())
}
},
t.each({
show: "fadeIn",
hide: "fadeOut"
}, function(e, i) {
t.Widget.prototype["_" + e] = function(s, n, o) {
"string" == typeof n && (n = {
effect: n
});
var a, r = n ? n === !0 || "number" == typeof n ? i : n.effect || i : e;
n = n || {},
"number" == typeof n && (n = {
duration: n
}),
a = !t.isEmptyObject(n),
n.complete = o,
n.delay && s.delay(n.delay),
a && t.effects && t.effects.effect[r] ? s[e](n) : r !== e && s[r] ? s[r](n.duration, n.easing, o) : s.queue(function(i) {
t(this)[e](),
o && o.call(s[0]),
i()
})
}
})
}(jQuery),
function(t) {
var e = !1;
t(document).mouseup(function() {
e = !1
}),
t.widget("ui.mouse", {
version: "1.10.2",
options: {
cancel: "input,textarea,button,select,option",
distance: 1,
delay: 0
},
_mouseInit: function() {
var e = this;
this.element.bind("mousedown." + this.widgetName, function(t) {
return e._mouseDown(t)
}).bind("click." + this.widgetName, function(i) {
return !0 === t.data(i.target, e.widgetName + ".preventClickEvent") ? (t.removeData(i.target, e.widgetName + ".preventClickEvent"),
i.stopImmediatePropagation(),
!1) : undefined
}),
this.started = !1
},
_mouseDestroy: function() {
this.element.unbind("." + this.widgetName),
this._mouseMoveDelegate && t(document).unbind("mousemove." + this.widgetName, this._mouseMoveDelegate).unbind("mouseup." + this.widgetName, this._mouseUpDelegate)
},
_mouseDown: function(i) {
if (!e) {
this._mouseStarted && this._mouseUp(i),
this._mouseDownEvent = i;
var s = this
, n = 1 === i.which
, o = "string" == typeof this.options.cancel && i.target.nodeName ? t(i.target).closest(this.options.cancel).length : !1;
return n && !o && this._mouseCapture(i) ? (this.mouseDelayMet = !this.options.delay,
this.mouseDelayMet || (this._mouseDelayTimer = setTimeout(function() {
s.mouseDelayMet = !0
}, this.options.delay)),
this._mouseDistanceMet(i) && this._mouseDelayMet(i) && (this._mouseStarted = this._mouseStart(i) !== !1,
!this._mouseStarted) ? (i.preventDefault(),
!0) : (!0 === t.data(i.target, this.widgetName + ".preventClickEvent") && t.removeData(i.target, this.widgetName + ".preventClickEvent"),
this._mouseMoveDelegate = function(t) {
return s._mouseMove(t)
}
,
this._mouseUpDelegate = function(t) {
return s._mouseUp(t)
}
,
t(document).bind("mousemove." + this.widgetName, this._mouseMoveDelegate).bind("mouseup." + this.widgetName, this._mouseUpDelegate),
i.preventDefault(),
e = !0,
!0)) : !0
}
},
_mouseMove: function(e) {
return t.ui.ie && (!document.documentMode || 9 > document.documentMode) && !e.button ? this._mouseUp(e) : this._mouseStarted ? (this._mouseDrag(e),
e.preventDefault()) : (this._mouseDistanceMet(e) && this._mouseDelayMet(e) && (this._mouseStarted = this._mouseStart(this._mouseDownEvent, e) !== !1,
this._mouseStarted ? this._mouseDrag(e) : this._mouseUp(e)),
!this._mouseStarted)
},
_mouseUp: function(e) {
return t(document).unbind("mousemove." + this.widgetName, this._mouseMoveDelegate).unbind("mouseup." + this.widgetName, this._mouseUpDelegate),
this._mouseStarted && (this._mouseStarted = !1,
e.target === this._mouseDownEvent.target && t.data(e.target, this.widgetName + ".preventClickEvent", !0),
this._mouseStop(e)),
!1
},
_mouseDistanceMet: function(t) {
return Math.max(Math.abs(this._mouseDownEvent.pageX - t.pageX), Math.abs(this._mouseDownEvent.pageY - t.pageY)) >= this.options.distance
},
_mouseDelayMet: function() {
return this.mouseDelayMet
},
_mouseStart: function() {},
_mouseDrag: function() {},
_mouseStop: function() {},
_mouseCapture: function() {
return !0
}
})
}(jQuery),
function(t) {
t.widget("ui.draggable", t.ui.mouse, {
version: "1.10.2",
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,
drag: null,
start: null,
stop: null
},
_create: function() {
"original" !== this.options.helper || /^(?: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() {
this.element.removeClass("ui-draggable ui-draggable-dragging ui-draggable-disabled"),
this._mouseDestroy()
},
_mouseCapture: function(e) {
var i = this.options;
return this.helper || i.disabled || t(e.target).closest(".ui-resizable-handle").length > 0 ? !1 : (this.handle = this._getHandle(e),
this.handle ? (t(i.iframeFix === !0 ? "iframe" : i.iframeFix).each(function() {
t("
").css({
width: this.offsetWidth + "px",
height: this.offsetHeight + "px",
position: "absolute",
opacity: "0.001",
zIndex: 1e3
}).css(t(this).offset()).appendTo("body")
}),
!0) : !1)
},
_mouseStart: function(e) {
var i = this.options;
return this.helper = this._createHelper(e),
this.helper.addClass("ui-draggable-dragging"),
this._cacheHelperProportions(),
t.ui.ddmanager && (t.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
},
t.extend(this.offset, {
click: {
left: e.pageX - this.offset.left,
top: e.pageY - this.offset.top
},
parent: this._getParentOffset(),
relative: this._getRelativeOffset()
}),
this.originalPosition = this.position = this._generatePosition(e),
this.originalPageX = e.pageX,
this.originalPageY = e.pageY,
i.cursorAt && this._adjustOffsetFromHelper(i.cursorAt),
i.containment && this._setContainment(),
this._trigger("start", e) === !1 ? (this._clear(),
!1) : (this._cacheHelperProportions(),
t.ui.ddmanager && !i.dropBehaviour && t.ui.ddmanager.prepareOffsets(this, e),
this._mouseDrag(e, !0),
t.ui.ddmanager && t.ui.ddmanager.dragStart(this, e),
!0)
},
_mouseDrag: function(e, i) {
if (this.position = this._generatePosition(e),
this.positionAbs = this._convertPositionTo("absolute"),
!i) {
var s = this._uiHash();
if (this._trigger("drag", e, s) === !1)
return this._mouseUp({}),
!1;
this.position = s.position
}
return this.options.axis && "y" === this.options.axis || (this.helper[0].style.left = this.position.left + "px"),
this.options.axis && "x" === this.options.axis || (this.helper[0].style.top = this.position.top + "px"),
t.ui.ddmanager && t.ui.ddmanager.drag(this, e),
!1
},
_mouseStop: function(e) {
var i, s = this, n = !1, o = !1;
for (t.ui.ddmanager && !this.options.dropBehaviour && (o = t.ui.ddmanager.drop(this, e)),
this.dropped && (o = this.dropped,
this.dropped = !1),
i = this.element[0]; i && (i = i.parentNode); )
i === document && (n = !0);
return n || "original" !== this.options.helper ? ("invalid" === this.options.revert && !o || "valid" === this.options.revert && o || this.options.revert === !0 || t.isFunction(this.options.revert) && this.options.revert.call(this.element, o) ? t(this.helper).animate(this.originalPosition, parseInt(this.options.revertDuration, 10), function() {
s._trigger("stop", e) !== !1 && s._clear()
}) : this._trigger("stop", e) !== !1 && this._clear(),
!1) : !1
},
_mouseUp: function(e) {
return t("div.ui-draggable-iframeFix").each(function() {
this.parentNode.removeChild(this)
}),
t.ui.ddmanager && t.ui.ddmanager.dragStop(this, e),
t.ui.mouse.prototype._mouseUp.call(this, e)
},
cancel: function() {
return this.helper.is(".ui-draggable-dragging") ? this._mouseUp({}) : this._clear(),
this
},
_getHandle: function(e) {
return this.options.handle ? !!t(e.target).closest(this.element.find(this.options.handle)).length : !0
},
_createHelper: function(e) {
var i = this.options
, s = t.isFunction(i.helper) ? t(i.helper.apply(this.element[0], [e])) : "clone" === i.helper ? this.element.clone().removeAttr("id") : this.element;
return s.parents("body").length || s.appendTo("parent" === i.appendTo ? this.element[0].parentNode : i.appendTo),
s[0] === this.element[0] || /(fixed|absolute)/.test(s.css("position")) || s.css("position", "absolute"),
s
},
_adjustOffsetFromHelper: function(e) {
"string" == typeof e && (e = e.split(" ")),
t.isArray(e) && (e = {
left: +e[0],
top: +e[1] || 0
}),
"left"in e && (this.offset.click.left = e.left + this.margins.left),
"right"in e && (this.offset.click.left = this.helperProportions.width - e.right + this.margins.left),
"top"in e && (this.offset.click.top = e.top + this.margins.top),
"bottom"in e && (this.offset.click.top = this.helperProportions.height - e.bottom + this.margins.top)
},
_getParentOffset: function() {
this.offsetParent = this.helper.offsetParent();
var e = this.offsetParent.offset();
return "absolute" === this.cssPosition && this.scrollParent[0] !== document && t.contains(this.scrollParent[0], this.offsetParent[0]) && (e.left += this.scrollParent.scrollLeft(),
e.top += this.scrollParent.scrollTop()),
(this.offsetParent[0] === document.body || this.offsetParent[0].tagName && "html" === this.offsetParent[0].tagName.toLowerCase() && t.ui.ie) && (e = {
top: 0,
left: 0
}),
{
top: e.top + (parseInt(this.offsetParent.css("borderTopWidth"), 10) || 0),
left: e.left + (parseInt(this.offsetParent.css("borderLeftWidth"), 10) || 0)
}
},
_getRelativeOffset: function() {
if ("relative" === this.cssPosition) {
var t = this.element.position();
return {
top: t.top - (parseInt(this.helper.css("top"), 10) || 0) + this.scrollParent.scrollTop(),
left: t.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 e, i, s, n = this.options;
if ("parent" === n.containment && (n.containment = this.helper[0].parentNode),
("document" === n.containment || "window" === n.containment) && (this.containment = ["document" === n.containment ? 0 : t(window).scrollLeft() - this.offset.relative.left - this.offset.parent.left, "document" === n.containment ? 0 : t(window).scrollTop() - this.offset.relative.top - this.offset.parent.top, ("document" === n.containment ? 0 : t(window).scrollLeft()) + t("document" === n.containment ? document : window).width() - this.helperProportions.width - this.margins.left, ("document" === n.containment ? 0 : t(window).scrollTop()) + (t("document" === n.containment ? document : window).height() || document.body.parentNode.scrollHeight) - this.helperProportions.height - this.margins.top]),
/^(document|window|parent)$/.test(n.containment) || n.containment.constructor === Array)
n.containment.constructor === Array && (this.containment = n.containment);
else {
if (i = t(n.containment),
s = i[0],
!s)
return;
e = "hidden" !== t(s).css("overflow"),
this.containment = [(parseInt(t(s).css("borderLeftWidth"), 10) || 0) + (parseInt(t(s).css("paddingLeft"), 10) || 0), (parseInt(t(s).css("borderTopWidth"), 10) || 0) + (parseInt(t(s).css("paddingTop"), 10) || 0), (e ? Math.max(s.scrollWidth, s.offsetWidth) : s.offsetWidth) - (parseInt(t(s).css("borderRightWidth"), 10) || 0) - (parseInt(t(s).css("paddingRight"), 10) || 0) - this.helperProportions.width - this.margins.left - this.margins.right, (e ? Math.max(s.scrollHeight, s.offsetHeight) : s.offsetHeight) - (parseInt(t(s).css("borderBottomWidth"), 10) || 0) - (parseInt(t(s).css("paddingBottom"), 10) || 0) - this.helperProportions.height - this.margins.top - this.margins.bottom],
this.relative_container = i
}
},
_convertPositionTo: function(e, i) {
i || (i = this.position);
var s = "absolute" === e ? 1 : -1
, n = "absolute" !== this.cssPosition || this.scrollParent[0] !== document && t.contains(this.scrollParent[0], this.offsetParent[0]) ? this.scrollParent : this.offsetParent
, o = /(html|body)/i.test(n[0].tagName);
return {
top: i.top + this.offset.relative.top * s + this.offset.parent.top * s - ("fixed" === this.cssPosition ? -this.scrollParent.scrollTop() : o ? 0 : n.scrollTop()) * s,
left: i.left + this.offset.relative.left * s + this.offset.parent.left * s - ("fixed" === this.cssPosition ? -this.scrollParent.scrollLeft() : o ? 0 : n.scrollLeft()) * s
}
},
_generatePosition: function(e) {
var i, s, n, o, a = this.options, r = "absolute" !== this.cssPosition || this.scrollParent[0] !== document && t.contains(this.scrollParent[0], this.offsetParent[0]) ? this.scrollParent : this.offsetParent, h = /(html|body)/i.test(r[0].tagName), l = e.pageX, c = e.pageY;
return this.originalPosition && (this.containment && (this.relative_container ? (s = this.relative_container.offset(),
i = [this.containment[0] + s.left, this.containment[1] + s.top, this.containment[2] + s.left, this.containment[3] + s.top]) : i = this.containment,
e.pageX - this.offset.click.left < i[0] && (l = i[0] + this.offset.click.left),
e.pageY - this.offset.click.top < i[1] && (c = i[1] + this.offset.click.top),
e.pageX - this.offset.click.left > i[2] && (l = i[2] + this.offset.click.left),
e.pageY - this.offset.click.top > i[3] && (c = i[3] + this.offset.click.top)),
a.grid && (n = a.grid[1] ? this.originalPageY + Math.round((c - this.originalPageY) / a.grid[1]) * a.grid[1] : this.originalPageY,
c = i ? n - this.offset.click.top >= i[1] || n - this.offset.click.top > i[3] ? n : n - this.offset.click.top >= i[1] ? n - a.grid[1] : n + a.grid[1] : n,
o = a.grid[0] ? this.originalPageX + Math.round((l - this.originalPageX) / a.grid[0]) * a.grid[0] : this.originalPageX,
l = i ? o - this.offset.click.left >= i[0] || o - this.offset.click.left > i[2] ? o : o - this.offset.click.left >= i[0] ? o - a.grid[0] : o + a.grid[0] : o)),
{
top: c - this.offset.click.top - this.offset.relative.top - this.offset.parent.top + ("fixed" === this.cssPosition ? -this.scrollParent.scrollTop() : h ? 0 : r.scrollTop()),
left: l - this.offset.click.left - this.offset.relative.left - this.offset.parent.left + ("fixed" === this.cssPosition ? -this.scrollParent.scrollLeft() : h ? 0 : r.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(e, i, s) {
return s = s || this._uiHash(),
t.ui.plugin.call(this, e, [i, s]),
"drag" === e && (this.positionAbs = this._convertPositionTo("absolute")),
t.Widget.prototype._trigger.call(this, e, i, s)
},
plugins: {},
_uiHash: function() {
return {
helper: this.helper,
position: this.position,
originalPosition: this.originalPosition,
offset: this.positionAbs
}
}
}),
t.ui.plugin.add("draggable", "connectToSortable", {
start: function(e, i) {
var s = t(this).data("ui-draggable")
, n = s.options
, o = t.extend({}, i, {
item: s.element
});
s.sortables = [],
t(n.connectToSortable).each(function() {
var i = t.data(this, "ui-sortable");
i && !i.options.disabled && (s.sortables.push({
instance: i,
shouldRevert: i.options.revert
}),
i.refreshPositions(),
i._trigger("activate", e, o))
})
},
stop: function(e, i) {
var s = t(this).data("ui-draggable")
, n = t.extend({}, i, {
item: s.element
});
t.each(s.sortables, function() {
this.instance.isOver ? (this.instance.isOver = 0,
s.cancelHelperRemoval = !0,
this.instance.cancelHelperRemoval = !1,
this.shouldRevert && (this.instance.options.revert = this.shouldRevert),
this.instance._mouseStop(e),
this.instance.options.helper = this.instance.options._helper,
"original" === s.options.helper && this.instance.currentItem.css({
top: "auto",
left: "auto"
})) : (this.instance.cancelHelperRemoval = !1,
this.instance._trigger("deactivate", e, n))
})
},
drag: function(e, i) {
var s = t(this).data("ui-draggable")
, n = this;
t.each(s.sortables, function() {
var o = !1
, a = this;
this.instance.positionAbs = s.positionAbs,
this.instance.helperProportions = s.helperProportions,
this.instance.offset.click = s.offset.click,
this.instance._intersectsWith(this.instance.containerCache) && (o = !0,
t.each(s.sortables, function() {
return this.instance.positionAbs = s.positionAbs,
this.instance.helperProportions = s.helperProportions,
this.instance.offset.click = s.offset.click,
this !== a && this.instance._intersectsWith(this.instance.containerCache) && t.contains(a.instance.element[0], this.instance.element[0]) && (o = !1),
o
})),
o ? (this.instance.isOver || (this.instance.isOver = 1,
this.instance.currentItem = t(n).clone().removeAttr("id").appendTo(this.instance.element).data("ui-sortable-item", !0),
this.instance.options._helper = this.instance.options.helper,
this.instance.options.helper = function() {
return i.helper[0]
}
,
e.target = this.instance.currentItem[0],
this.instance._mouseCapture(e, !0),
this.instance._mouseStart(e, !0, !0),
this.instance.offset.click.top = s.offset.click.top,
this.instance.offset.click.left = s.offset.click.left,
this.instance.offset.parent.left -= s.offset.parent.left - this.instance.offset.parent.left,
this.instance.offset.parent.top -= s.offset.parent.top - this.instance.offset.parent.top,
s._trigger("toSortable", e),
s.dropped = this.instance.element,
s.currentItem = s.element,
this.instance.fromOutside = s),
this.instance.currentItem && this.instance._mouseDrag(e)) : this.instance.isOver && (this.instance.isOver = 0,
this.instance.cancelHelperRemoval = !0,
this.instance.options.revert = !1,
this.instance._trigger("out", e, this.instance._uiHash(this.instance)),
this.instance._mouseStop(e, !0),
this.instance.options.helper = this.instance.options._helper,
this.instance.currentItem.remove(),
this.instance.placeholder && this.instance.placeholder.remove(),
s._trigger("fromSortable", e),
s.dropped = !1)
})
}
}),
t.ui.plugin.add("draggable", "cursor", {
start: function() {
var e = t("body")
, i = t(this).data("ui-draggable").options;
e.css("cursor") && (i._cursor = e.css("cursor")),
e.css("cursor", i.cursor)
},
stop: function() {
var e = t(this).data("ui-draggable").options;
e._cursor && t("body").css("cursor", e._cursor)
}
}),
t.ui.plugin.add("draggable", "opacity", {
start: function(e, i) {
var s = t(i.helper)
, n = t(this).data("ui-draggable").options;
s.css("opacity") && (n._opacity = s.css("opacity")),
s.css("opacity", n.opacity)
},
stop: function(e, i) {
var s = t(this).data("ui-draggable").options;
s._opacity && t(i.helper).css("opacity", s._opacity)
}
}),
t.ui.plugin.add("draggable", "scroll", {
start: function() {
var e = t(this).data("ui-draggable");
e.scrollParent[0] !== document && "HTML" !== e.scrollParent[0].tagName && (e.overflowOffset = e.scrollParent.offset())
},
drag: function(e) {
var i = t(this).data("ui-draggable")
, s = i.options
, n = !1;
i.scrollParent[0] !== document && "HTML" !== i.scrollParent[0].tagName ? (s.axis && "x" === s.axis || (i.overflowOffset.top + i.scrollParent[0].offsetHeight - e.pageY < s.scrollSensitivity ? i.scrollParent[0].scrollTop = n = i.scrollParent[0].scrollTop + s.scrollSpeed : e.pageY - i.overflowOffset.top < s.scrollSensitivity && (i.scrollParent[0].scrollTop = n = i.scrollParent[0].scrollTop - s.scrollSpeed)),
s.axis && "y" === s.axis || (i.overflowOffset.left + i.scrollParent[0].offsetWidth - e.pageX < s.scrollSensitivity ? i.scrollParent[0].scrollLeft = n = i.scrollParent[0].scrollLeft + s.scrollSpeed : e.pageX - i.overflowOffset.left < s.scrollSensitivity && (i.scrollParent[0].scrollLeft = n = i.scrollParent[0].scrollLeft - s.scrollSpeed))) : (s.axis && "x" === s.axis || (e.pageY - t(document).scrollTop() < s.scrollSensitivity ? n = t(document).scrollTop(t(document).scrollTop() - s.scrollSpeed) : t(window).height() - (e.pageY - t(document).scrollTop()) < s.scrollSensitivity && (n = t(document).scrollTop(t(document).scrollTop() + s.scrollSpeed))),
s.axis && "y" === s.axis || (e.pageX - t(document).scrollLeft() < s.scrollSensitivity ? n = t(document).scrollLeft(t(document).scrollLeft() - s.scrollSpeed) : t(window).width() - (e.pageX - t(document).scrollLeft()) < s.scrollSensitivity && (n = t(document).scrollLeft(t(document).scrollLeft() + s.scrollSpeed)))),
n !== !1 && t.ui.ddmanager && !s.dropBehaviour && t.ui.ddmanager.prepareOffsets(i, e)
}
}),
t.ui.plugin.add("draggable", "snap", {
start: function() {
var e = t(this).data("ui-draggable")
, i = e.options;
e.snapElements = [],
t(i.snap.constructor !== String ? i.snap.items || ":data(ui-draggable)" : i.snap).each(function() {
var i = t(this)
, s = i.offset();
this !== e.element[0] && e.snapElements.push({
item: this,
width: i.outerWidth(),
height: i.outerHeight(),
top: s.top,
left: s.left
})
})
},
drag: function(e, i) {
var s, n, o, a, r, h, l, c, u, d, p = t(this).data("ui-draggable"), f = p.options, g = f.snapTolerance, m = i.offset.left, v = m + p.helperProportions.width, _ = i.offset.top, b = _ + p.helperProportions.height;
for (u = p.snapElements.length - 1; u >= 0; u--)
r = p.snapElements[u].left,
h = r + p.snapElements[u].width,
l = p.snapElements[u].top,
c = l + p.snapElements[u].height,
m > r - g && h + g > m && _ > l - g && c + g > _ || m > r - g && h + g > m && b > l - g && c + g > b || v > r - g && h + g > v && _ > l - g && c + g > _ || v > r - g && h + g > v && b > l - g && c + g > b ? ("inner" !== f.snapMode && (s = g >= Math.abs(l - b),
n = g >= Math.abs(c - _),
o = g >= Math.abs(r - v),
a = g >= Math.abs(h - m),
s && (i.position.top = p._convertPositionTo("relative", {
top: l - p.helperProportions.height,
left: 0
}).top - p.margins.top),
n && (i.position.top = p._convertPositionTo("relative", {
top: c,
left: 0
}).top - p.margins.top),
o && (i.position.left = p._convertPositionTo("relative", {
top: 0,
left: r - p.helperProportions.width
}).left - p.margins.left),
a && (i.position.left = p._convertPositionTo("relative", {
top: 0,
left: h
}).left - p.margins.left)),
d = s || n || o || a,
"outer" !== f.snapMode && (s = g >= Math.abs(l - _),
n = g >= Math.abs(c - b),
o = g >= Math.abs(r - m),
a = g >= Math.abs(h - v),
s && (i.position.top = p._convertPositionTo("relative", {
top: l,
left: 0
}).top - p.margins.top),
n && (i.position.top = p._convertPositionTo("relative", {
top: c - p.helperProportions.height,
left: 0
}).top - p.margins.top),
o && (i.position.left = p._convertPositionTo("relative", {
top: 0,
left: r
}).left - p.margins.left),
a && (i.position.left = p._convertPositionTo("relative", {
top: 0,
left: h - p.helperProportions.width
}).left - p.margins.left)),
!p.snapElements[u].snapping && (s || n || o || a || d) && p.options.snap.snap && p.options.snap.snap.call(p.element, e, t.extend(p._uiHash(), {
snapItem: p.snapElements[u].item
})),
p.snapElements[u].snapping = s || n || o || a || d) : (p.snapElements[u].snapping && p.options.snap.release && p.options.snap.release.call(p.element, e, t.extend(p._uiHash(), {
snapItem: p.snapElements[u].item
})),
p.snapElements[u].snapping = !1)
}
}),
t.ui.plugin.add("draggable", "stack", {
start: function() {
var e, i = this.data("ui-draggable").options, s = t.makeArray(t(i.stack)).sort(function(e, i) {
return (parseInt(t(e).css("zIndex"), 10) || 0) - (parseInt(t(i).css("zIndex"), 10) || 0)
});
s.length && (e = parseInt(t(s[0]).css("zIndex"), 10) || 0,
t(s).each(function(i) {
t(this).css("zIndex", e + i)
}),
this.css("zIndex", e + s.length))
}
}),
t.ui.plugin.add("draggable", "zIndex", {
start: function(e, i) {
var s = t(i.helper)
, n = t(this).data("ui-draggable").options;
s.css("zIndex") && (n._zIndex = s.css("zIndex")),
s.css("zIndex", n.zIndex)
},
stop: function(e, i) {
var s = t(this).data("ui-draggable").options;
s._zIndex && t(i.helper).css("zIndex", s._zIndex)
}
})
}(jQuery),
function(t) {
function e(t, e, i) {
return t > e && e + i > t
}
t.widget("ui.droppable", {
version: "1.10.2",
widgetEventPrefix: "drop",
options: {
accept: "*",
activeClass: !1,
addClasses: !0,
greedy: !1,
hoverClass: !1,
scope: "default",
tolerance: "intersect",
activate: null,
deactivate: null,
drop: null,
out: null,
over: null
},
_create: function() {
var e = this.options
, i = e.accept;
this.isover = !1,
this.isout = !0,
this.accept = t.isFunction(i) ? i : function(t) {
return t.is(i)
}
,
this.proportions = {
width: this.element[0].offsetWidth,
height: this.element[0].offsetHeight
},
t.ui.ddmanager.droppables[e.scope] = t.ui.ddmanager.droppables[e.scope] || [],
t.ui.ddmanager.droppables[e.scope].push(this),
e.addClasses && this.element.addClass("ui-droppable")
},
_destroy: function() {
for (var e = 0, i = t.ui.ddmanager.droppables[this.options.scope]; i.length > e; e++)
i[e] === this && i.splice(e, 1);
this.element.removeClass("ui-droppable ui-droppable-disabled")
},
_setOption: function(e, i) {
"accept" === e && (this.accept = t.isFunction(i) ? i : function(t) {
return t.is(i)
}
),
t.Widget.prototype._setOption.apply(this, arguments)
},
_activate: function(e) {
var i = t.ui.ddmanager.current;
this.options.activeClass && this.element.addClass(this.options.activeClass),
i && this._trigger("activate", e, this.ui(i))
},
_deactivate: function(e) {
var i = t.ui.ddmanager.current;
this.options.activeClass && this.element.removeClass(this.options.activeClass),
i && this._trigger("deactivate", e, this.ui(i))
},
_over: function(e) {
var i = t.ui.ddmanager.current;
i && (i.currentItem || i.element)[0] !== this.element[0] && this.accept.call(this.element[0], i.currentItem || i.element) && (this.options.hoverClass && this.element.addClass(this.options.hoverClass),
this._trigger("over", e, this.ui(i)))
},
_out: function(e) {
var i = t.ui.ddmanager.current;
i && (i.currentItem || i.element)[0] !== this.element[0] && this.accept.call(this.element[0], i.currentItem || i.element) && (this.options.hoverClass && this.element.removeClass(this.options.hoverClass),
this._trigger("out", e, this.ui(i)))
},
_drop: function(e, i) {
var s = i || t.ui.ddmanager.current
, n = !1;
return s && (s.currentItem || s.element)[0] !== this.element[0] ? (this.element.find(":data(ui-droppable)").not(".ui-draggable-dragging").each(function() {
var e = t.data(this, "ui-droppable");
return e.options.greedy && !e.options.disabled && e.options.scope === s.options.scope && e.accept.call(e.element[0], s.currentItem || s.element) && t.ui.intersect(s, t.extend(e, {
offset: e.element.offset()
}), e.options.tolerance) ? (n = !0,
!1) : undefined
}),
n ? !1 : this.accept.call(this.element[0], s.currentItem || s.element) ? (this.options.activeClass && this.element.removeClass(this.options.activeClass),
this.options.hoverClass && this.element.removeClass(this.options.hoverClass),
this._trigger("drop", e, this.ui(s)),
this.element) : !1) : !1
},
ui: function(t) {
return {
draggable: t.currentItem || t.element,
helper: t.helper,
position: t.position,
offset: t.positionAbs
}
}
}),
t.ui.intersect = function(t, i, s) {
if (!i.offset)
return !1;
var n, o, a = (t.positionAbs || t.position.absolute).left, r = a + t.helperProportions.width, h = (t.positionAbs || t.position.absolute).top, l = h + t.helperProportions.height, c = i.offset.left, u = c + i.proportions.width, d = i.offset.top, p = d + i.proportions.height;
switch (s) {
case "fit":
return a >= c && u >= r && h >= d && p >= l;
case "intersect":
return a + t.helperProportions.width / 2 > c && u > r - t.helperProportions.width / 2 && h + t.helperProportions.height / 2 > d && p > l - t.helperProportions.height / 2;
case "pointer":
return n = (t.positionAbs || t.position.absolute).left + (t.clickOffset || t.offset.click).left,
o = (t.positionAbs || t.position.absolute).top + (t.clickOffset || t.offset.click).top,
e(o, d, i.proportions.height) && e(n, c, i.proportions.width);
case "touch":
return (h >= d && p >= h || l >= d && p >= l || d > h && l > p) && (a >= c && u >= a || r >= c && u >= r || c > a && r > u);
default:
return !1
}
}
,
t.ui.ddmanager = {
current: null,
droppables: {
"default": []
},
prepareOffsets: function(e, i) {
var s, n, o = t.ui.ddmanager.droppables[e.options.scope] || [], a = i ? i.type : null, r = (e.currentItem || e.element).find(":data(ui-droppable)").addBack();
t: for (s = 0; o.length > s; s++)
if (!(o[s].options.disabled || e && !o[s].accept.call(o[s].element[0], e.currentItem || e.element))) {
for (n = 0; r.length > n; n++)
if (r[n] === o[s].element[0]) {
o[s].proportions.height = 0;
continue t
}
o[s].visible = "none" !== o[s].element.css("display"),
o[s].visible && ("mousedown" === a && o[s]._activate.call(o[s], i),
o[s].offset = o[s].element.offset(),
o[s].proportions = {
width: o[s].element[0].offsetWidth,
height: o[s].element[0].offsetHeight
})
}
},
drop: function(e, i) {
var s = !1;
return t.each((t.ui.ddmanager.droppables[e.options.scope] || []).slice(), function() {
this.options && (!this.options.disabled && this.visible && t.ui.intersect(e, this, this.options.tolerance) && (s = this._drop.call(this, i) || s),
!this.options.disabled && this.visible && this.accept.call(this.element[0], e.currentItem || e.element) && (this.isout = !0,
this.isover = !1,
this._deactivate.call(this, i)))
}),
s
},
dragStart: function(e, i) {
e.element.parentsUntil("body").bind("scroll.droppable", function() {
e.options.refreshPositions || t.ui.ddmanager.prepareOffsets(e, i)
})
},
drag: function(e, i) {
e.options.refreshPositions && t.ui.ddmanager.prepareOffsets(e, i),
t.each(t.ui.ddmanager.droppables[e.options.scope] || [], function() {
if (!this.options.disabled && !this.greedyChild && this.visible) {
var s, n, o, a = t.ui.intersect(e, this, this.options.tolerance), r = !a && this.isover ? "isout" : a && !this.isover ? "isover" : null;
r && (this.options.greedy && (n = this.options.scope,
o = this.element.parents(":data(ui-droppable)").filter(function() {
return t.data(this, "ui-droppable").options.scope === n
}),
o.length && (s = t.data(o[0], "ui-droppable"),
s.greedyChild = "isover" === r)),
s && "isover" === r && (s.isover = !1,
s.isout = !0,
s._out.call(s, i)),
this[r] = !0,
this["isout" === r ? "isover" : "isout"] = !1,
this["isover" === r ? "_over" : "_out"].call(this, i),
s && "isout" === r && (s.isout = !1,
s.isover = !0,
s._over.call(s, i)))
}
})
},
dragStop: function(e, i) {
e.element.parentsUntil("body").unbind("scroll.droppable"),
e.options.refreshPositions || t.ui.ddmanager.prepareOffsets(e, i)
}
}
}(jQuery),
function(t) {
function e(t) {
return parseInt(t, 10) || 0
}
function i(t) {
return !isNaN(parseInt(t, 10))
}
t.widget("ui.resizable", t.ui.mouse, {
version: "1.10.2",
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: 90,
resize: null,
start: null,
stop: null
},
_create: function() {
var e, i, s, n, o, a = this, r = this.options;
if (this.element.addClass("ui-resizable"),
t.extend(this, {
_aspectRatio: !!r.aspectRatio,
aspectRatio: r.aspectRatio,
originalElement: this.element,
_proportionallyResizeElements: [],
_helper: r.helper || r.ghost || r.animate ? r.helper || "ui-resizable-helper" : null
}),
this.element[0].nodeName.match(/canvas|textarea|input|select|button|img/i) && (this.element.wrap(t("
").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("ui-resizable", this.element.data("ui-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 = r.handles || (t(".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"),
this.handles.constructor === String)
for ("all" === this.handles && (this.handles = "n,e,s,w,se,sw,ne,nw"),
e = this.handles.split(","),
this.handles = {},
i = 0; e.length > i; i++)
s = t.trim(e[i]),
o = "ui-resizable-" + s,
n = t("
"),
n.css({
zIndex: r.zIndex
}),
"se" === s && n.addClass("ui-icon ui-icon-gripsmall-diagonal-se"),
this.handles[s] = ".ui-resizable-" + s,
this.element.append(n);
this._renderAxis = function(e) {
var i, s, n, o;
e = e || this.element;
for (i in this.handles)
this.handles[i].constructor === String && (this.handles[i] = t(this.handles[i], this.element).show()),
this.elementIsWrapper && this.originalElement[0].nodeName.match(/textarea|input|select|button/i) && (s = t(this.handles[i], this.element),
o = /sw|ne|nw|se|n|s/.test(i) ? s.outerHeight() : s.outerWidth(),
n = ["padding", /ne|nw|n/.test(i) ? "Top" : /se|sw|s/.test(i) ? "Bottom" : /^e$/.test(i) ? "Right" : "Left"].join(""),
e.css(n, o),
this._proportionallyResize()),
t(this.handles[i]).length
}
,
this._renderAxis(this.element),
this._handles = t(".ui-resizable-handle", this.element).disableSelection(),
this._handles.mouseover(function() {
a.resizing || (this.className && (n = this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)),
a.axis = n && n[1] ? n[1] : "se")
}),
r.autoHide && (this._handles.hide(),
t(this.element).addClass("ui-resizable-autohide").mouseenter(function() {
r.disabled || (t(this).removeClass("ui-resizable-autohide"),
a._handles.show())
}).mouseleave(function() {
r.disabled || a.resizing || (t(this).addClass("ui-resizable-autohide"),
a._handles.hide())
})),
this._mouseInit()
},
_destroy: function() {
this._mouseDestroy();
var e, i = function(e) {
t(e).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").removeData("ui-resizable").unbind(".resizable").find(".ui-resizable-handle").remove()
};
return this.elementIsWrapper && (i(this.element),
e = this.element,
this.originalElement.css({
position: e.css("position"),
width: e.outerWidth(),
height: e.outerHeight(),
top: e.css("top"),
left: e.css("left")
}).insertAfter(e),
e.remove()),
this.originalElement.css("resize", this.originalResizeStyle),
i(this.originalElement),
this
},
_mouseCapture: function(e) {
var i, s, n = !1;
for (i in this.handles)
s = t(this.handles[i])[0],
(s === e.target || t.contains(s, e.target)) && (n = !0);
return !this.options.disabled && n
},
_mouseStart: function(i) {
var s, n, o, a = this.options, r = this.element.position(), h = this.element;
return this.resizing = !0,
/absolute/.test(h.css("position")) ? h.css({
position: "absolute",
top: h.css("top"),
left: h.css("left")
}) : h.is(".ui-draggable") && h.css({
position: "absolute",
top: r.top,
left: r.left
}),
this._renderProxy(),
s = e(this.helper.css("left")),
n = e(this.helper.css("top")),
a.containment && (s += t(a.containment).scrollLeft() || 0,
n += t(a.containment).scrollTop() || 0),
this.offset = this.helper.offset(),
this.position = {
left: s,
top: n
},
this.size = this._helper ? {
width: h.outerWidth(),
height: h.outerHeight()
} : {
width: h.width(),
height: h.height()
},
this.originalSize = this._helper ? {
width: h.outerWidth(),
height: h.outerHeight()
} : {
width: h.width(),
height: h.height()
},
this.originalPosition = {
left: s,
top: n
},
this.sizeDiff = {
width: h.outerWidth() - h.width(),
height: h.outerHeight() - h.height()
},
this.originalMousePosition = {
left: i.pageX,
top: i.pageY
},
this.aspectRatio = "number" == typeof a.aspectRatio ? a.aspectRatio : this.originalSize.width / this.originalSize.height || 1,
o = t(".ui-resizable-" + this.axis).css("cursor"),
t("body").css("cursor", "auto" === o ? this.axis + "-resize" : o),
h.addClass("ui-resizable-resizing"),
this._propagate("start", i),
!0
},
_mouseDrag: function(e) {
var i, s = this.helper, n = {}, o = this.originalMousePosition, a = this.axis, r = this.position.top, h = this.position.left, l = this.size.width, c = this.size.height, u = e.pageX - o.left || 0, d = e.pageY - o.top || 0, p = this._change[a];
return p ? (i = p.apply(this, [e, u, d]),
this._updateVirtualBoundaries(e.shiftKey),
(this._aspectRatio || e.shiftKey) && (i = this._updateRatio(i, e)),
i = this._respectSize(i, e),
this._updateCache(i),
this._propagate("resize", e),
this.position.top !== r && (n.top = this.position.top + "px"),
this.position.left !== h && (n.left = this.position.left + "px"),
this.size.width !== l && (n.width = this.size.width + "px"),
this.size.height !== c && (n.height = this.size.height + "px"),
s.css(n),
!this._helper && this._proportionallyResizeElements.length && this._proportionallyResize(),
t.isEmptyObject(n) || this._trigger("resize", e, this.ui()),
!1) : !1
},
_mouseStop: function(e) {
this.resizing = !1;
var i, s, n, o, a, r, h, l = this.options, c = this;
return this._helper && (i = this._proportionallyResizeElements,
s = i.length && /textarea/i.test(i[0].nodeName),
n = s && t.ui.hasScroll(i[0], "left") ? 0 : c.sizeDiff.height,
o = s ? 0 : c.sizeDiff.width,
a = {
width: c.helper.width() - o,
height: c.helper.height() - n
},
r = parseInt(c.element.css("left"), 10) + (c.position.left - c.originalPosition.left) || null,
h = parseInt(c.element.css("top"), 10) + (c.position.top - c.originalPosition.top) || null,
l.animate || this.element.css(t.extend(a, {
top: h,
left: r
})),
c.helper.height(c.size.height),
c.helper.width(c.size.width),
this._helper && !l.animate && this._proportionallyResize()),
t("body").css("cursor", "auto"),
this.element.removeClass("ui-resizable-resizing"),
this._propagate("stop", e),
this._helper && this.helper.remove(),
!1
},
_updateVirtualBoundaries: function(t) {
var e, s, n, o, a, r = this.options;
a = {
minWidth: i(r.minWidth) ? r.minWidth : 0,
maxWidth: i(r.maxWidth) ? r.maxWidth : 1 / 0,
minHeight: i(r.minHeight) ? r.minHeight : 0,
maxHeight: i(r.maxHeight) ? r.maxHeight : 1 / 0
},
(this._aspectRatio || t) && (e = a.minHeight * this.aspectRatio,
n = a.minWidth / this.aspectRatio,
s = a.maxHeight * this.aspectRatio,
o = a.maxWidth / this.aspectRatio,
e > a.minWidth && (a.minWidth = e),
n > a.minHeight && (a.minHeight = n),
a.maxWidth > s && (a.maxWidth = s),
a.maxHeight > o && (a.maxHeight = o)),
this._vBoundaries = a
},
_updateCache: function(t) {
this.offset = this.helper.offset(),
i(t.left) && (this.position.left = t.left),
i(t.top) && (this.position.top = t.top),
i(t.height) && (this.size.height = t.height),
i(t.width) && (this.size.width = t.width)
},
_updateRatio: function(t) {
var e = this.position
, s = this.size
, n = this.axis;
return i(t.height) ? t.width = t.height * this.aspectRatio : i(t.width) && (t.height = t.width / this.aspectRatio),
"sw" === n && (t.left = e.left + (s.width - t.width),
t.top = null),
"nw" === n && (t.top = e.top + (s.height - t.height),
t.left = e.left + (s.width - t.width)),
t
},
_respectSize: function(t) {
var e = this._vBoundaries
, s = this.axis
, n = i(t.width) && e.maxWidth && e.maxWidth < t.width
, o = i(t.height) && e.maxHeight && e.maxHeight < t.height
, a = i(t.width) && e.minWidth && e.minWidth > t.width
, r = i(t.height) && e.minHeight && e.minHeight > t.height
, h = this.originalPosition.left + this.originalSize.width
, l = this.position.top + this.size.height
, c = /sw|nw|w/.test(s)
, u = /nw|ne|n/.test(s);
return a && (t.width = e.minWidth),
r && (t.height = e.minHeight),
n && (t.width = e.maxWidth),
o && (t.height = e.maxHeight),
a && c && (t.left = h - e.minWidth),
n && c && (t.left = h - e.maxWidth),
r && u && (t.top = l - e.minHeight),
o && u && (t.top = l - e.maxHeight),
t.width || t.height || t.left || !t.top ? t.width || t.height || t.top || !t.left || (t.left = null) : t.top = null,
t
},
_proportionallyResize: function() {
if (this._proportionallyResizeElements.length) {
var t, e, i, s, n, o = this.helper || this.element;
for (t = 0; this._proportionallyResizeElements.length > t; t++) {
if (n = this._proportionallyResizeElements[t],
!this.borderDif)
for (this.borderDif = [],
i = [n.css("borderTopWidth"), n.css("borderRightWidth"), n.css("borderBottomWidth"), n.css("borderLeftWidth")],
s = [n.css("paddingTop"), n.css("paddingRight"), n.css("paddingBottom"), n.css("paddingLeft")],
e = 0; i.length > e; e++)
this.borderDif[e] = (parseInt(i[e], 10) || 0) + (parseInt(s[e], 10) || 0);
n.css({
height: o.height() - this.borderDif[0] - this.borderDif[2] || 0,
width: o.width() - this.borderDif[1] - this.borderDif[3] || 0
})
}
}
},
_renderProxy: function() {
var e = this.element
, i = this.options;
this.elementOffset = e.offset(),
this._helper ? (this.helper = this.helper || t("
"),
this.helper.addClass(this._helper).css({
width: this.element.outerWidth() - 1,
height: this.element.outerHeight() - 1,
position: "absolute",
left: this.elementOffset.left + "px",
top: this.elementOffset.top + "px",
zIndex: ++i.zIndex
}),
this.helper.appendTo("body").disableSelection()) : this.helper = this.element
},
_change: {
e: function(t, e) {
return {
width: this.originalSize.width + e
}
},
w: function(t, e) {
var i = this.originalSize
, s = this.originalPosition;
return {
left: s.left + e,
width: i.width - e
}
},
n: function(t, e, i) {
var s = this.originalSize
, n = this.originalPosition;
return {
top: n.top + i,
height: s.height - i
}
},
s: function(t, e, i) {
return {
height: this.originalSize.height + i
}
},
se: function(e, i, s) {
return t.extend(this._change.s.apply(this, arguments), this._change.e.apply(this, [e, i, s]))
},
sw: function(e, i, s) {
return t.extend(this._change.s.apply(this, arguments), this._change.w.apply(this, [e, i, s]))
},
ne: function(e, i, s) {
return t.extend(this._change.n.apply(this, arguments), this._change.e.apply(this, [e, i, s]))
},
nw: function(e, i, s) {
return t.extend(this._change.n.apply(this, arguments), this._change.w.apply(this, [e, i, s]))
}
},
_propagate: function(e, i) {
t.ui.plugin.call(this, e, [i, this.ui()]),
"resize" !== e && this._trigger(e, i, 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
}
}
}),
t.ui.plugin.add("resizable", "animate", {
stop: function(e) {
var i = t(this).data("ui-resizable")
, s = i.options
, n = i._proportionallyResizeElements
, o = n.length && /textarea/i.test(n[0].nodeName)
, a = o && t.ui.hasScroll(n[0], "left") ? 0 : i.sizeDiff.height
, r = o ? 0 : i.sizeDiff.width
, h = {
width: i.size.width - r,
height: i.size.height - a
}
, l = parseInt(i.element.css("left"), 10) + (i.position.left - i.originalPosition.left) || null
, c = parseInt(i.element.css("top"), 10) + (i.position.top - i.originalPosition.top) || null;
i.element.animate(t.extend(h, c && l ? {
top: c,
left: l
} : {}), {
duration: s.animateDuration,
easing: s.animateEasing,
step: function() {
var s = {
width: parseInt(i.element.css("width"), 10),
height: parseInt(i.element.css("height"), 10),
top: parseInt(i.element.css("top"), 10),
left: parseInt(i.element.css("left"), 10)
};
n && n.length && t(n[0]).css({
width: s.width,
height: s.height
}),
i._updateCache(s),
i._propagate("resize", e)
}
})
}
}),
t.ui.plugin.add("resizable", "containment", {
start: function() {
var i, s, n, o, a, r, h, l = t(this).data("ui-resizable"), c = l.options, u = l.element, d = c.containment, p = d instanceof t ? d.get(0) : /parent/.test(d) ? u.parent().get(0) : d;
p && (l.containerElement = t(p),
/document/.test(d) || d === document ? (l.containerOffset = {
left: 0,
top: 0
},
l.containerPosition = {
left: 0,
top: 0
},
l.parentData = {
element: t(document),
left: 0,
top: 0,
width: t(document).width(),
height: t(document).height() || document.body.parentNode.scrollHeight
}) : (i = t(p),
s = [],
t(["Top", "Right", "Left", "Bottom"]).each(function(t, n) {
s[t] = e(i.css("padding" + n))
}),
l.containerOffset = i.offset(),
l.containerPosition = i.position(),
l.containerSize = {
height: i.innerHeight() - s[3],
width: i.innerWidth() - s[1]
},
n = l.containerOffset,
o = l.containerSize.height,
a = l.containerSize.width,
r = t.ui.hasScroll(p, "left") ? p.scrollWidth : a,
h = t.ui.hasScroll(p) ? p.scrollHeight : o,
l.parentData = {
element: p,
left: n.left,
top: n.top,
width: r,
height: h
}))
},
resize: function(e) {
var i, s, n, o, a = t(this).data("ui-resizable"), r = a.options, h = a.containerOffset, l = a.position, c = a._aspectRatio || e.shiftKey, u = {
top: 0,
left: 0
}, d = a.containerElement;
d[0] !== document && /static/.test(d.css("position")) && (u = h),
l.left < (a._helper ? h.left : 0) && (a.size.width = a.size.width + (a._helper ? a.position.left - h.left : a.position.left - u.left),
c && (a.size.height = a.size.width / a.aspectRatio),
a.position.left = r.helper ? h.left : 0),
l.top < (a._helper ? h.top : 0) && (a.size.height = a.size.height + (a._helper ? a.position.top - h.top : a.position.top),
c && (a.size.width = a.size.height * a.aspectRatio),
a.position.top = a._helper ? h.top : 0),
a.offset.left = a.parentData.left + a.position.left,
a.offset.top = a.parentData.top + a.position.top,
i = Math.abs((a._helper ? a.offset.left - u.left : a.offset.left - u.left) + a.sizeDiff.width),
s = Math.abs((a._helper ? a.offset.top - u.top : a.offset.top - h.top) + a.sizeDiff.height),
n = a.containerElement.get(0) === a.element.parent().get(0),
o = /relative|absolute/.test(a.containerElement.css("position")),
n && o && (i -= a.parentData.left),
i + a.size.width >= a.parentData.width && (a.size.width = a.parentData.width - i,
c && (a.size.height = a.size.width / a.aspectRatio)),
s + a.size.height >= a.parentData.height && (a.size.height = a.parentData.height - s,
c && (a.size.width = a.size.height * a.aspectRatio))
},
stop: function() {
var e = t(this).data("ui-resizable")
, i = e.options
, s = e.containerOffset
, n = e.containerPosition
, o = e.containerElement
, a = t(e.helper)
, r = a.offset()
, h = a.outerWidth() - e.sizeDiff.width
, l = a.outerHeight() - e.sizeDiff.height;
e._helper && !i.animate && /relative/.test(o.css("position")) && t(this).css({
left: r.left - n.left - s.left,
width: h,
height: l
}),
e._helper && !i.animate && /static/.test(o.css("position")) && t(this).css({
left: r.left - n.left - s.left,
width: h,
height: l
})
}
}),
t.ui.plugin.add("resizable", "alsoResize", {
start: function() {
var e = t(this).data("ui-resizable")
, i = e.options
, s = function(e) {
t(e).each(function() {
var e = t(this);
e.data("ui-resizable-alsoresize", {
width: parseInt(e.width(), 10),
height: parseInt(e.height(), 10),
left: parseInt(e.css("left"), 10),
top: parseInt(e.css("top"), 10)
})
})
};
"object" != typeof i.alsoResize || i.alsoResize.parentNode ? s(i.alsoResize) : i.alsoResize.length ? (i.alsoResize = i.alsoResize[0],
s(i.alsoResize)) : t.each(i.alsoResize, function(t) {
s(t)
})
},
resize: function(e, i) {
var s = t(this).data("ui-resizable")
, n = s.options
, o = s.originalSize
, a = s.originalPosition
, r = {
height: s.size.height - o.height || 0,
width: s.size.width - o.width || 0,
top: s.position.top - a.top || 0,
left: s.position.left - a.left || 0
}
, h = function(e, s) {
t(e).each(function() {
var e = t(this)
, n = t(this).data("ui-resizable-alsoresize")
, o = {}
, a = s && s.length ? s : e.parents(i.originalElement[0]).length ? ["width", "height"] : ["width", "height", "top", "left"];
t.each(a, function(t, e) {
var i = (n[e] || 0) + (r[e] || 0);
i && i >= 0 && (o[e] = i || null)
}),
e.css(o)
})
};
"object" != typeof n.alsoResize || n.alsoResize.nodeType ? h(n.alsoResize) : t.each(n.alsoResize, function(t, e) {
h(t, e)
})
},
stop: function() {
t(this).removeData("resizable-alsoresize")
}
}),
t.ui.plugin.add("resizable", "ghost", {
start: function() {
var e = t(this).data("ui-resizable")
, i = e.options
, s = e.size;
e.ghost = e.originalElement.clone(),
e.ghost.css({
opacity: .25,
display: "block",
position: "relative",
height: s.height,
width: s.width,
margin: 0,
left: 0,
top: 0
}).addClass("ui-resizable-ghost").addClass("string" == typeof i.ghost ? i.ghost : ""),
e.ghost.appendTo(e.helper)
},
resize: function() {
var e = t(this).data("ui-resizable");
e.ghost && e.ghost.css({
position: "relative",
height: e.size.height,
width: e.size.width
})
},
stop: function() {
var e = t(this).data("ui-resizable");
e.ghost && e.helper && e.helper.get(0).removeChild(e.ghost.get(0))
}
}),
t.ui.plugin.add("resizable", "grid", {
resize: function() {
var e = t(this).data("ui-resizable")
, i = e.options
, s = e.size
, n = e.originalSize
, o = e.originalPosition
, a = e.axis
, r = "number" == typeof i.grid ? [i.grid, i.grid] : i.grid
, h = r[0] || 1
, l = r[1] || 1
, c = Math.round((s.width - n.width) / h) * h
, u = Math.round((s.height - n.height) / l) * l
, d = n.width + c
, p = n.height + u
, f = i.maxWidth && d > i.maxWidth
, g = i.maxHeight && p > i.maxHeight
, m = i.minWidth && i.minWidth > d
, v = i.minHeight && i.minHeight > p;
i.grid = r,
m && (d += h),
v && (p += l),
f && (d -= h),
g && (p -= l),
/^(se|s|e)$/.test(a) ? (e.size.width = d,
e.size.height = p) : /^(ne)$/.test(a) ? (e.size.width = d,
e.size.height = p,
e.position.top = o.top - u) : /^(sw)$/.test(a) ? (e.size.width = d,
e.size.height = p,
e.position.left = o.left - c) : (e.size.width = d,
e.size.height = p,
e.position.top = o.top - u,
e.position.left = o.left - c)
}
})
}(jQuery),
function(t) {
t.widget("ui.selectable", t.ui.mouse, {
version: "1.10.2",
options: {
appendTo: "body",
autoRefresh: !0,
distance: 0,
filter: "*",
tolerance: "touch",
selected: null,
selecting: null,
start: null,
stop: null,
unselected: null,
unselecting: null
},
_create: function() {
var e, i = this;
this.element.addClass("ui-selectable"),
this.dragged = !1,
this.refresh = function() {
e = t(i.options.filter, i.element[0]),
e.addClass("ui-selectee"),
e.each(function() {
var e = t(this)
, i = e.offset();
t.data(this, "selectable-item", {
element: this,
$element: e,
left: i.left,
top: i.top,
right: i.left + e.outerWidth(),
bottom: i.top + e.outerHeight(),
startselected: !1,
selected: e.hasClass("ui-selected"),
selecting: e.hasClass("ui-selecting"),
unselecting: e.hasClass("ui-unselecting")
})
})
}
,
this.refresh(),
this.selectees = e.addClass("ui-selectee"),
this._mouseInit(),
this.helper = t("
")
},
_destroy: function() {
this.selectees.removeClass("ui-selectee").removeData("selectable-item"),
this.element.removeClass("ui-selectable ui-selectable-disabled"),
this._mouseDestroy()
},
_mouseStart: function(e) {
var i = this
, s = this.options;
this.opos = [e.pageX, e.pageY],
this.options.disabled || (this.selectees = t(s.filter, this.element[0]),
this._trigger("start", e),
t(s.appendTo).append(this.helper),
this.helper.css({
left: e.pageX,
top: e.pageY,
width: 0,
height: 0
}),
s.autoRefresh && this.refresh(),
this.selectees.filter(".ui-selected").each(function() {
var s = t.data(this, "selectable-item");
s.startselected = !0,
e.metaKey || e.ctrlKey || (s.$element.removeClass("ui-selected"),
s.selected = !1,
s.$element.addClass("ui-unselecting"),
s.unselecting = !0,
i._trigger("unselecting", e, {
unselecting: s.element
}))
}),
t(e.target).parents().addBack().each(function() {
var s, n = t.data(this, "selectable-item");
return n ? (s = !e.metaKey && !e.ctrlKey || !n.$element.hasClass("ui-selected"),
n.$element.removeClass(s ? "ui-unselecting" : "ui-selected").addClass(s ? "ui-selecting" : "ui-unselecting"),
n.unselecting = !s,
n.selecting = s,
n.selected = s,
s ? i._trigger("selecting", e, {
selecting: n.element
}) : i._trigger("unselecting", e, {
unselecting: n.element
}),
!1) : undefined
}))
},
_mouseDrag: function(e) {
if (this.dragged = !0,
!this.options.disabled) {
var i, s = this, n = this.options, o = this.opos[0], a = this.opos[1], r = e.pageX, h = e.pageY;
return o > r && (i = r,
r = o,
o = i),
a > h && (i = h,
h = a,
a = i),
this.helper.css({
left: o,
top: a,
width: r - o,
height: h - a
}),
this.selectees.each(function() {
var i = t.data(this, "selectable-item")
, l = !1;
i && i.element !== s.element[0] && ("touch" === n.tolerance ? l = !(i.left > r || o > i.right || i.top > h || a > i.bottom) : "fit" === n.tolerance && (l = i.left > o && r > i.right && i.top > a && h > i.bottom),
l ? (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,
s._trigger("selecting", e, {
selecting: i.element
}))) : (i.selecting && ((e.metaKey || e.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),
s._trigger("unselecting", e, {
unselecting: i.element
}))),
i.selected && (e.metaKey || e.ctrlKey || i.startselected || (i.$element.removeClass("ui-selected"),
i.selected = !1,
i.$element.addClass("ui-unselecting"),
i.unselecting = !0,
s._trigger("unselecting", e, {
unselecting: i.element
})))))
}),
!1
}
},
_mouseStop: function(e) {
var i = this;
return this.dragged = !1,
t(".ui-unselecting", this.element[0]).each(function() {
var s = t.data(this, "selectable-item");
s.$element.removeClass("ui-unselecting"),
s.unselecting = !1,
s.startselected = !1,
i._trigger("unselected", e, {
unselected: s.element
})
}),
t(".ui-selecting", this.element[0]).each(function() {
var s = t.data(this, "selectable-item");
s.$element.removeClass("ui-selecting").addClass("ui-selected"),
s.selecting = !1,
s.selected = !0,
s.startselected = !0,
i._trigger("selected", e, {
selected: s.element
})
}),
this._trigger("stop", e),
this.helper.remove(),
!1
}
})
}(jQuery),
function(t) {
function e(t, e, i) {
return t > e && e + i > t
}
function i(t) {
return /left|right/.test(t.css("float")) || /inline|table-cell/.test(t.css("display"))
}
t.widget("ui.sortable", t.ui.mouse, {
version: "1.10.2",
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,
activate: null,
beforeStop: null,
change: null,
deactivate: null,
out: null,
over: null,
receive: null,
remove: null,
sort: null,
start: null,
stop: null,
update: null
},
_create: function() {
var t = this.options;
this.containerCache = {},
this.element.addClass("ui-sortable"),
this.refresh(),
this.floating = this.items.length ? "x" === t.axis || i(this.items[0].item) : !1,
this.offset = this.element.offset(),
this._mouseInit(),
this.ready = !0
},
_destroy: function() {
this.element.removeClass("ui-sortable ui-sortable-disabled"),
this._mouseDestroy();
for (var t = this.items.length - 1; t >= 0; t--)
this.items[t].item.removeData(this.widgetName + "-item");
return this
},
_setOption: function(e, i) {
"disabled" === e ? (this.options[e] = i,
this.widget().toggleClass("ui-sortable-disabled", !!i)) : t.Widget.prototype._setOption.apply(this, arguments)
},
_mouseCapture: function(e, i) {
var s = null
, n = !1
, o = this;
return this.reverting ? !1 : this.options.disabled || "static" === this.options.type ? !1 : (this._refreshItems(e),
t(e.target).parents().each(function() {
return t.data(this, o.widgetName + "-item") === o ? (s = t(this),
!1) : undefined
}),
t.data(e.target, o.widgetName + "-item") === o && (s = t(e.target)),
s ? !this.options.handle || i || (t(this.options.handle, s).find("*").addBack().each(function() {
this === e.target && (n = !0)
}),
n) ? (this.currentItem = s,
this._removeCurrentsFromItems(),
!0) : !1 : !1)
},
_mouseStart: function(e, i, s) {
var n, o, a = this.options;
if (this.currentContainer = this,
this.refreshPositions(),
this.helper = this._createHelper(e),
this._cacheHelperProportions(),
this._cacheMargins(),
this.scrollParent = this.helper.scrollParent(),
this.offset = this.currentItem.offset(),
this.offset = {
top: this.offset.top - this.margins.top,
left: this.offset.left - this.margins.left
},
t.extend(this.offset, {
click: {
left: e.pageX - this.offset.left,
top: e.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(e),
this.originalPageX = e.pageX,
this.originalPageY = e.pageY,
a.cursorAt && this._adjustOffsetFromHelper(a.cursorAt),
this.domPosition = {
prev: this.currentItem.prev()[0],
parent: this.currentItem.parent()[0]
},
this.helper[0] !== this.currentItem[0] && this.currentItem.hide(),
this._createPlaceholder(),
a.containment && this._setContainment(),
a.cursor && "auto" !== a.cursor && (o = this.document.find("body"),
this.storedCursor = o.css("cursor"),
o.css("cursor", a.cursor),
this.storedStylesheet = t("").appendTo(o)),
a.opacity && (this.helper.css("opacity") && (this._storedOpacity = this.helper.css("opacity")),
this.helper.css("opacity", a.opacity)),
a.zIndex && (this.helper.css("zIndex") && (this._storedZIndex = this.helper.css("zIndex")),
this.helper.css("zIndex", a.zIndex)),
this.scrollParent[0] !== document && "HTML" !== this.scrollParent[0].tagName && (this.overflowOffset = this.scrollParent.offset()),
this._trigger("start", e, this._uiHash()),
this._preserveHelperProportions || this._cacheHelperProportions(),
!s)
for (n = this.containers.length - 1; n >= 0; n--)
this.containers[n]._trigger("activate", e, this._uiHash(this));
return t.ui.ddmanager && (t.ui.ddmanager.current = this),
t.ui.ddmanager && !a.dropBehaviour && t.ui.ddmanager.prepareOffsets(this, e),
this.dragging = !0,
this.helper.addClass("ui-sortable-helper"),
this._mouseDrag(e),
!0
},
_mouseDrag: function(e) {
var i, s, n, o, a = this.options, r = !1;
for (this.position = this._generatePosition(e),
this.positionAbs = this._convertPositionTo("absolute"),
this.lastPositionAbs || (this.lastPositionAbs = this.positionAbs),
this.options.scroll && (this.scrollParent[0] !== document && "HTML" !== this.scrollParent[0].tagName ? (this.overflowOffset.top + this.scrollParent[0].offsetHeight - e.pageY < a.scrollSensitivity ? this.scrollParent[0].scrollTop = r = this.scrollParent[0].scrollTop + a.scrollSpeed : e.pageY - this.overflowOffset.top < a.scrollSensitivity && (this.scrollParent[0].scrollTop = r = this.scrollParent[0].scrollTop - a.scrollSpeed),
this.overflowOffset.left + this.scrollParent[0].offsetWidth - e.pageX < a.scrollSensitivity ? this.scrollParent[0].scrollLeft = r = this.scrollParent[0].scrollLeft + a.scrollSpeed : e.pageX - this.overflowOffset.left < a.scrollSensitivity && (this.scrollParent[0].scrollLeft = r = this.scrollParent[0].scrollLeft - a.scrollSpeed)) : (e.pageY - t(document).scrollTop() < a.scrollSensitivity ? r = t(document).scrollTop(t(document).scrollTop() - a.scrollSpeed) : t(window).height() - (e.pageY - t(document).scrollTop()) < a.scrollSensitivity && (r = t(document).scrollTop(t(document).scrollTop() + a.scrollSpeed)),
e.pageX - t(document).scrollLeft() < a.scrollSensitivity ? r = t(document).scrollLeft(t(document).scrollLeft() - a.scrollSpeed) : t(window).width() - (e.pageX - t(document).scrollLeft()) < a.scrollSensitivity && (r = t(document).scrollLeft(t(document).scrollLeft() + a.scrollSpeed))),
r !== !1 && t.ui.ddmanager && !a.dropBehaviour && t.ui.ddmanager.prepareOffsets(this, e)),
this.positionAbs = this._convertPositionTo("absolute"),
this.options.axis && "y" === this.options.axis || (this.helper[0].style.left = this.position.left + "px"),
this.options.axis && "x" === this.options.axis || (this.helper[0].style.top = this.position.top + "px"),
i = this.items.length - 1; i >= 0; i--)
if (s = this.items[i],
n = s.item[0],
o = this._intersectsWithPointer(s),
o && s.instance === this.currentContainer && n !== this.currentItem[0] && this.placeholder[1 === o ? "next" : "prev"]()[0] !== n && !t.contains(this.placeholder[0], n) && ("semi-dynamic" === this.options.type ? !t.contains(this.element[0], n) : !0)) {
if (this.direction = 1 === o ? "down" : "up",
"pointer" !== this.options.tolerance && !this._intersectsWithSides(s))
break;
this._rearrange(e, s),
this._trigger("change", e, this._uiHash());
break
}
return this._contactContainers(e),
t.ui.ddmanager && t.ui.ddmanager.drag(this, e),
this._trigger("sort", e, this._uiHash()),
this.lastPositionAbs = this.positionAbs,
!1
},
_mouseStop: function(e, i) {
if (e) {
if (t.ui.ddmanager && !this.options.dropBehaviour && t.ui.ddmanager.drop(this, e),
this.options.revert) {
var s = this
, n = this.placeholder.offset()
, o = this.options.axis
, a = {};
o && "x" !== o || (a.left = n.left - this.offset.parent.left - this.margins.left + (this.offsetParent[0] === document.body ? 0 : this.offsetParent[0].scrollLeft)),
o && "y" !== o || (a.top = n.top - this.offset.parent.top - this.margins.top + (this.offsetParent[0] === document.body ? 0 : this.offsetParent[0].scrollTop)),
this.reverting = !0,
t(this.helper).animate(a, parseInt(this.options.revert, 10) || 500, function() {
s._clear(e)
})
} else
this._clear(e, i);
return !1
}
},
cancel: function() {
if (this.dragging) {
this._mouseUp({
target: null
}),
"original" === this.options.helper ? this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper") : this.currentItem.show();
for (var e = this.containers.length - 1; e >= 0; e--)
this.containers[e]._trigger("deactivate", null, this._uiHash(this)),
this.containers[e].containerCache.over && (this.containers[e]._trigger("out", null, this._uiHash(this)),
this.containers[e].containerCache.over = 0)
}
return this.placeholder && (this.placeholder[0].parentNode && this.placeholder[0].parentNode.removeChild(this.placeholder[0]),
"original" !== this.options.helper && this.helper && this.helper[0].parentNode && this.helper.remove(),
t.extend(this, {
helper: null,
dragging: !1,
reverting: !1,
_noFinalSort: null
}),
this.domPosition.prev ? t(this.domPosition.prev).after(this.currentItem) : t(this.domPosition.parent).prepend(this.currentItem)),
this
},
serialize: function(e) {
var i = this._getItemsAsjQuery(e && e.connected)
, s = [];
return e = e || {},
t(i).each(function() {
var i = (t(e.item || this).attr(e.attribute || "id") || "").match(e.expression || /(.+)[\-=_](.+)/);
i && s.push((e.key || i[1] + "[]") + "=" + (e.key && e.expression ? i[1] : i[2]))
}),
!s.length && e.key && s.push(e.key + "="),
s.join("&")
},
toArray: function(e) {
var i = this._getItemsAsjQuery(e && e.connected)
, s = [];
return e = e || {},
i.each(function() {
s.push(t(e.item || this).attr(e.attribute || "id") || "")
}),
s
},
_intersectsWith: function(t) {
var e = this.positionAbs.left
, i = e + this.helperProportions.width
, s = this.positionAbs.top
, n = s + this.helperProportions.height
, o = t.left
, a = o + t.width
, r = t.top
, h = r + t.height
, l = this.offset.click.top
, c = this.offset.click.left
, u = s + l > r && h > s + l && e + c > o && a > e + c;
return "pointer" === this.options.tolerance || this.options.forcePointerForContainers || "pointer" !== this.options.tolerance && this.helperProportions[this.floating ? "width" : "height"] > t[this.floating ? "width" : "height"] ? u : e + this.helperProportions.width / 2 > o && a > i - this.helperProportions.width / 2 && s + this.helperProportions.height / 2 > r && h > n - this.helperProportions.height / 2
},
_intersectsWithPointer: function(t) {
var i = "x" === this.options.axis || e(this.positionAbs.top + this.offset.click.top, t.top, t.height)
, s = "y" === this.options.axis || e(this.positionAbs.left + this.offset.click.left, t.left, t.width)
, n = i && s
, o = this._getDragVerticalDirection()
, a = this._getDragHorizontalDirection();
return n ? this.floating ? a && "right" === a || "down" === o ? 2 : 1 : o && ("down" === o ? 2 : 1) : !1
},
_intersectsWithSides: function(t) {
var i = e(this.positionAbs.top + this.offset.click.top, t.top + t.height / 2, t.height)
, s = e(this.positionAbs.left + this.offset.click.left, t.left + t.width / 2, t.width)
, n = this._getDragVerticalDirection()
, o = this._getDragHorizontalDirection();
return this.floating && o ? "right" === o && s || "left" === o && !s : n && ("down" === n && i || "up" === n && !i)
},
_getDragVerticalDirection: function() {
var t = this.positionAbs.top - this.lastPositionAbs.top;
return 0 !== t && (t > 0 ? "down" : "up")
},
_getDragHorizontalDirection: function() {
var t = this.positionAbs.left - this.lastPositionAbs.left;
return 0 !== t && (t > 0 ? "right" : "left")
},
refresh: function(t) {
return this._refreshItems(t),
this.refreshPositions(),
this
},
_connectWith: function() {
var t = this.options;
return t.connectWith.constructor === String ? [t.connectWith] : t.connectWith
},
_getItemsAsjQuery: function(e) {
var i, s, n, o, a = [], r = [], h = this._connectWith();
if (h && e)
for (i = h.length - 1; i >= 0; i--)
for (n = t(h[i]),
s = n.length - 1; s >= 0; s--)
o = t.data(n[s], this.widgetFullName),
o && o !== this && !o.options.disabled && r.push([t.isFunction(o.options.items) ? o.options.items.call(o.element) : t(o.options.items, o.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"), o]);
for (r.push([t.isFunction(this.options.items) ? this.options.items.call(this.element, null, {
options: this.options,
item: this.currentItem
}) : t(this.options.items, this.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"), this]),
i = r.length - 1; i >= 0; i--)
r[i][0].each(function() {
a.push(this)
});
return t(a)
},
_removeCurrentsFromItems: function() {
var e = this.currentItem.find(":data(" + this.widgetName + "-item)");
this.items = t.grep(this.items, function(t) {
for (var i = 0; e.length > i; i++)
if (e[i] === t.item[0])
return !1;
return !0
})
},
_refreshItems: function(e) {
this.items = [],
this.containers = [this];
var i, s, n, o, a, r, h, l, c = this.items, u = [[t.isFunction(this.options.items) ? this.options.items.call(this.element[0], e, {
item: this.currentItem
}) : t(this.options.items, this.element), this]], d = this._connectWith();
if (d && this.ready)
for (i = d.length - 1; i >= 0; i--)
for (n = t(d[i]),
s = n.length - 1; s >= 0; s--)
o = t.data(n[s], this.widgetFullName),
o && o !== this && !o.options.disabled && (u.push([t.isFunction(o.options.items) ? o.options.items.call(o.element[0], e, {
item: this.currentItem
}) : t(o.options.items, o.element), o]),
this.containers.push(o));
for (i = u.length - 1; i >= 0; i--)
for (a = u[i][1],
r = u[i][0],
s = 0,
l = r.length; l > s; s++)
h = t(r[s]),
h.data(this.widgetName + "-item", a),
c.push({
item: h,
instance: a,
width: 0,
height: 0,
left: 0,
top: 0
})
},
refreshPositions: function(e) {
this.offsetParent && this.helper && (this.offset.parent = this._getParentOffset());
var i, s, n, o;
for (i = this.items.length - 1; i >= 0; i--)
s = this.items[i],
s.instance !== this.currentContainer && this.currentContainer && s.item[0] !== this.currentItem[0] || (n = this.options.toleranceElement ? t(this.options.toleranceElement, s.item) : s.item,
e || (s.width = n.outerWidth(),
s.height = n.outerHeight()),
o = n.offset(),
s.left = o.left,
s.top = o.top);
if (this.options.custom && this.options.custom.refreshContainers)
this.options.custom.refreshContainers.call(this);
else
for (i = this.containers.length - 1; i >= 0; i--)
o = this.containers[i].element.offset(),
this.containers[i].containerCache.left = o.left,
this.containers[i].containerCache.top = o.top,
this.containers[i].containerCache.width = this.containers[i].element.outerWidth(),
this.containers[i].containerCache.height = this.containers[i].element.outerHeight();
return this
},
_createPlaceholder: function(e) {
e = e || this;
var i, s = e.options;
s.placeholder && s.placeholder.constructor !== String || (i = s.placeholder,
s.placeholder = {
element: function() {
var s = e.currentItem[0].nodeName.toLowerCase()
, n = t(e.document[0].createElement(s)).addClass(i || e.currentItem[0].className + " ui-sortable-placeholder").removeClass("ui-sortable-helper");
return "tr" === s ? n.append("
| ") : "img" === s && n.attr("src", e.currentItem.attr("src")),
i || n.css("visibility", "hidden"),
n
},
update: function(t, n) {
(!i || s.forcePlaceholderSize) && (n.height() || n.height(e.currentItem.innerHeight() - parseInt(e.currentItem.css("paddingTop") || 0, 10) - parseInt(e.currentItem.css("paddingBottom") || 0, 10)),
n.width() || n.width(e.currentItem.innerWidth() - parseInt(e.currentItem.css("paddingLeft") || 0, 10) - parseInt(e.currentItem.css("paddingRight") || 0, 10)))
}
}),
e.placeholder = t(s.placeholder.element.call(e.element, e.currentItem)),
e.currentItem.after(e.placeholder),
s.placeholder.update(e, e.placeholder)
},
_contactContainers: function(s) {
var n, o, a, r, h, l, c, u, d, p, f = null, g = null;
for (n = this.containers.length - 1; n >= 0; n--)
if (!t.contains(this.currentItem[0], this.containers[n].element[0]))
if (this._intersectsWith(this.containers[n].containerCache)) {
if (f && t.contains(this.containers[n].element[0], f.element[0]))
continue;
f = this.containers[n],
g = n
} else
this.containers[n].containerCache.over && (this.containers[n]._trigger("out", s, this._uiHash(this)),
this.containers[n].containerCache.over = 0);
if (f)
if (1 === this.containers.length)
this.containers[g].containerCache.over || (this.containers[g]._trigger("over", s, this._uiHash(this)),
this.containers[g].containerCache.over = 1);
else {
for (a = 1e4,
r = null,
p = f.floating || i(this.currentItem),
h = p ? "left" : "top",
l = p ? "width" : "height",
c = this.positionAbs[h] + this.offset.click[h],
o = this.items.length - 1; o >= 0; o--)
t.contains(this.containers[g].element[0], this.items[o].item[0]) && this.items[o].item[0] !== this.currentItem[0] && (!p || e(this.positionAbs.top + this.offset.click.top, this.items[o].top, this.items[o].height)) && (u = this.items[o].item.offset()[h],
d = !1,
Math.abs(u - c) > Math.abs(u + this.items[o][l] - c) && (d = !0,
u += this.items[o][l]),
a > Math.abs(u - c) && (a = Math.abs(u - c),
r = this.items[o],
this.direction = d ? "up" : "down"));
if (!r && !this.options.dropOnEmpty)
return;
if (this.currentContainer === this.containers[g])
return;
r ? this._rearrange(s, r, null, !0) : this._rearrange(s, null, this.containers[g].element, !0),
this._trigger("change", s, this._uiHash()),
this.containers[g]._trigger("change", s, this._uiHash(this)),
this.currentContainer = this.containers[g],
this.options.placeholder.update(this.currentContainer, this.placeholder),
this.containers[g]._trigger("over", s, this._uiHash(this)),
this.containers[g].containerCache.over = 1
}
},
_createHelper: function(e) {
var i = this.options
, s = t.isFunction(i.helper) ? t(i.helper.apply(this.element[0], [e, this.currentItem])) : "clone" === i.helper ? this.currentItem.clone() : this.currentItem;
return s.parents("body").length || t("parent" !== i.appendTo ? i.appendTo : this.currentItem[0].parentNode)[0].appendChild(s[0]),
s[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")
}),
(!s[0].style.width || i.forceHelperSize) && s.width(this.currentItem.width()),
(!s[0].style.height || i.forceHelperSize) && s.height(this.currentItem.height()),
s
},
_adjustOffsetFromHelper: function(e) {
"string" == typeof e && (e = e.split(" ")),
t.isArray(e) && (e = {
left: +e[0],
top: +e[1] || 0
}),
"left"in e && (this.offset.click.left = e.left + this.margins.left),
"right"in e && (this.offset.click.left = this.helperProportions.width - e.right + this.margins.left),
"top"in e && (this.offset.click.top = e.top + this.margins.top),
"bottom"in e && (this.offset.click.top = this.helperProportions.height - e.bottom + this.margins.top)
},
_getParentOffset: function() {
this.offsetParent = this.helper.offsetParent();
var e = this.offsetParent.offset();
return "absolute" === this.cssPosition && this.scrollParent[0] !== document && t.contains(this.scrollParent[0], this.offsetParent[0]) && (e.left += this.scrollParent.scrollLeft(),
e.top += this.scrollParent.scrollTop()),
(this.offsetParent[0] === document.body || this.offsetParent[0].tagName && "html" === this.offsetParent[0].tagName.toLowerCase() && t.ui.ie) && (e = {
top: 0,
left: 0
}),
{
top: e.top + (parseInt(this.offsetParent.css("borderTopWidth"), 10) || 0),
left: e.left + (parseInt(this.offsetParent.css("borderLeftWidth"), 10) || 0)
}
},
_getRelativeOffset: function() {
if ("relative" === this.cssPosition) {
var t = this.currentItem.position();
return {
top: t.top - (parseInt(this.helper.css("top"), 10) || 0) + this.scrollParent.scrollTop(),
left: t.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 e, i, s, n = this.options;
"parent" === n.containment && (n.containment = this.helper[0].parentNode),
("document" === n.containment || "window" === n.containment) && (this.containment = [0 - this.offset.relative.left - this.offset.parent.left, 0 - this.offset.relative.top - this.offset.parent.top, t("document" === n.containment ? document : window).width() - this.helperProportions.width - this.margins.left, (t("document" === n.containment ? document : window).height() || document.body.parentNode.scrollHeight) - this.helperProportions.height - this.margins.top]),
/^(document|window|parent)$/.test(n.containment) || (e = t(n.containment)[0],
i = t(n.containment).offset(),
s = "hidden" !== t(e).css("overflow"),
this.containment = [i.left + (parseInt(t(e).css("borderLeftWidth"), 10) || 0) + (parseInt(t(e).css("paddingLeft"), 10) || 0) - this.margins.left, i.top + (parseInt(t(e).css("borderTopWidth"), 10) || 0) + (parseInt(t(e).css("paddingTop"), 10) || 0) - this.margins.top, i.left + (s ? Math.max(e.scrollWidth, e.offsetWidth) : e.offsetWidth) - (parseInt(t(e).css("borderLeftWidth"), 10) || 0) - (parseInt(t(e).css("paddingRight"), 10) || 0) - this.helperProportions.width - this.margins.left, i.top + (s ? Math.max(e.scrollHeight, e.offsetHeight) : e.offsetHeight) - (parseInt(t(e).css("borderTopWidth"), 10) || 0) - (parseInt(t(e).css("paddingBottom"), 10) || 0) - this.helperProportions.height - this.margins.top])
},
_convertPositionTo: function(e, i) {
i || (i = this.position);
var s = "absolute" === e ? 1 : -1
, n = "absolute" !== this.cssPosition || this.scrollParent[0] !== document && t.contains(this.scrollParent[0], this.offsetParent[0]) ? this.scrollParent : this.offsetParent
, o = /(html|body)/i.test(n[0].tagName);
return {
top: i.top + this.offset.relative.top * s + this.offset.parent.top * s - ("fixed" === this.cssPosition ? -this.scrollParent.scrollTop() : o ? 0 : n.scrollTop()) * s,
left: i.left + this.offset.relative.left * s + this.offset.parent.left * s - ("fixed" === this.cssPosition ? -this.scrollParent.scrollLeft() : o ? 0 : n.scrollLeft()) * s
}
},
_generatePosition: function(e) {
var i, s, n = this.options, o = e.pageX, a = e.pageY, r = "absolute" !== this.cssPosition || this.scrollParent[0] !== document && t.contains(this.scrollParent[0], this.offsetParent[0]) ? this.scrollParent : this.offsetParent, h = /(html|body)/i.test(r[0].tagName);
return "relative" !== this.cssPosition || this.scrollParent[0] !== document && this.scrollParent[0] !== this.offsetParent[0] || (this.offset.relative = this._getRelativeOffset()),
this.originalPosition && (this.containment && (e.pageX - this.offset.click.left < this.containment[0] && (o = this.containment[0] + this.offset.click.left),
e.pageY - this.offset.click.top < this.containment[1] && (a = this.containment[1] + this.offset.click.top),
e.pageX - this.offset.click.left > this.containment[2] && (o = this.containment[2] + this.offset.click.left),
e.pageY - this.offset.click.top > this.containment[3] && (a = this.containment[3] + this.offset.click.top)),
n.grid && (i = this.originalPageY + Math.round((a - this.originalPageY) / n.grid[1]) * n.grid[1],
a = this.containment ? i - this.offset.click.top >= this.containment[1] && i - this.offset.click.top <= this.containment[3] ? i : i - this.offset.click.top >= this.containment[1] ? i - n.grid[1] : i + n.grid[1] : i,
s = this.originalPageX + Math.round((o - this.originalPageX) / n.grid[0]) * n.grid[0],
o = this.containment ? s - this.offset.click.left >= this.containment[0] && s - this.offset.click.left <= this.containment[2] ? s : s - this.offset.click.left >= this.containment[0] ? s - n.grid[0] : s + n.grid[0] : s)),
{
top: a - this.offset.click.top - this.offset.relative.top - this.offset.parent.top + ("fixed" === this.cssPosition ? -this.scrollParent.scrollTop() : h ? 0 : r.scrollTop()),
left: o - this.offset.click.left - this.offset.relative.left - this.offset.parent.left + ("fixed" === this.cssPosition ? -this.scrollParent.scrollLeft() : h ? 0 : r.scrollLeft())
}
},
_rearrange: function(t, e, i, s) {
i ? i[0].appendChild(this.placeholder[0]) : e.item[0].parentNode.insertBefore(this.placeholder[0], "down" === this.direction ? e.item[0] : e.item[0].nextSibling),
this.counter = this.counter ? ++this.counter : 1;
var n = this.counter;
this._delay(function() {
n === this.counter && this.refreshPositions(!s)
})
},
_clear: function(t, e) {
this.reverting = !1;
var i, s = [];
if (!this._noFinalSort && this.currentItem.parent().length && this.placeholder.before(this.currentItem),
this._noFinalSort = null,
this.helper[0] === this.currentItem[0]) {
for (i in this._storedCSS)
("auto" === this._storedCSS[i] || "static" === this._storedCSS[i]) && (this._storedCSS[i] = "");
this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper")
} else
this.currentItem.show();
for (this.fromOutside && !e && s.push(function(t) {
this._trigger("receive", t, this._uiHash(this.fromOutside))
}),
!this.fromOutside && this.domPosition.prev === this.currentItem.prev().not(".ui-sortable-helper")[0] && this.domPosition.parent === this.currentItem.parent()[0] || e || s.push(function(t) {
this._trigger("update", t, this._uiHash())
}),
this !== this.currentContainer && (e || (s.push(function(t) {
this._trigger("remove", t, this._uiHash())
}),
s.push(function(t) {
return function(e) {
t._trigger("receive", e, this._uiHash(this))
}
}
.call(this, this.currentContainer)),
s.push(function(t) {
return function(e) {
t._trigger("update", e, this._uiHash(this))
}
}
.call(this, this.currentContainer)))),
i = this.containers.length - 1; i >= 0; i--)
e || s.push(function(t) {
return function(e) {
t._trigger("deactivate", e, this._uiHash(this))
}
}
.call(this, this.containers[i])),
this.containers[i].containerCache.over && (s.push(function(t) {
return function(e) {
t._trigger("out", e, this._uiHash(this))
}
}
.call(this, this.containers[i])),
this.containers[i].containerCache.over = 0);
if (this.storedCursor && (this.document.find("body").css("cursor", this.storedCursor),
this.storedStylesheet.remove()),
this._storedOpacity && this.helper.css("opacity", this._storedOpacity),
this._storedZIndex && this.helper.css("zIndex", "auto" === this._storedZIndex ? "" : this._storedZIndex),
this.dragging = !1,
this.cancelHelperRemoval) {
if (!e) {
for (this._trigger("beforeStop", t, this._uiHash()),
i = 0; s.length > i; i++)
s[i].call(this, t);
this._trigger("stop", t, this._uiHash())
}
return this.fromOutside = !1,
!1
}
if (e || this._trigger("beforeStop", t, this._uiHash()),
this.placeholder[0].parentNode.removeChild(this.placeholder[0]),
this.helper[0] !== this.currentItem[0] && this.helper.remove(),
this.helper = null,
!e) {
for (i = 0; s.length > i; i++)
s[i].call(this, t);
this._trigger("stop", t, this._uiHash())
}
return this.fromOutside = !1,
!0
},
_trigger: function() {
t.Widget.prototype._trigger.apply(this, arguments) === !1 && this.cancel()
},
_uiHash: function(e) {
var i = e || this;
return {
helper: i.helper,
placeholder: i.placeholder || t([]),
position: i.position,
originalPosition: i.originalPosition,
offset: i.positionAbs,
item: i.currentItem,
sender: e ? e.element : null
}
}
})
}(jQuery),
function(t, e) {
var i = "ui-effects-";
t.effects = {
effect: {}
},
function(t, e) {
function i(t, e, i) {
var s = u[e.type] || {};
return null == t ? i || !e.def ? null : e.def : (t = s.floor ? ~~t : parseFloat(t),
isNaN(t) ? e.def : s.mod ? (t + s.mod) % s.mod : 0 > t ? 0 : t > s.max ? s.max : t)
}
function s(i) {
var s = l()
, n = s._rgba = [];
return i = i.toLowerCase(),
f(h, function(t, o) {
var a, r = o.re.exec(i), h = r && o.parse(r), l = o.space || "rgba";
return h ? (a = s[l](h),
s[c[l].cache] = a[c[l].cache],
n = s._rgba = a._rgba,
!1) : e
}),
n.length ? ("0,0,0,0" === n.join() && t.extend(n, o.transparent),
s) : o[i]
}
function n(t, e, i) {
return i = (i + 1) % 1,
1 > 6 * i ? t + 6 * (e - t) * i : 1 > 2 * i ? e : 2 > 3 * i ? t + 6 * (e - t) * (2 / 3 - i) : t
}
var o, a = "backgroundColor borderBottomColor borderLeftColor borderRightColor borderTopColor color columnRuleColor outlineColor textDecorationColor textEmphasisColor", r = /^([\-+])=\s*(\d+\.?\d*)/, h = [{
re: /rgba?\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/,
parse: function(t) {
return [t[1], t[2], t[3], t[4]]
}
}, {
re: /rgba?\(\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/,
parse: function(t) {
return [2.55 * t[1], 2.55 * t[2], 2.55 * t[3], t[4]]
}
}, {
re: /#([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})/,
parse: function(t) {
return [parseInt(t[1], 16), parseInt(t[2], 16), parseInt(t[3], 16)]
}
}, {
re: /#([a-f0-9])([a-f0-9])([a-f0-9])/,
parse: function(t) {
return [parseInt(t[1] + t[1], 16), parseInt(t[2] + t[2], 16), parseInt(t[3] + t[3], 16)]
}
}, {
re: /hsla?\(\s*(\d+(?:\.\d+)?)\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/,
space: "hsla",
parse: function(t) {
return [t[1], t[2] / 100, t[3] / 100, t[4]]
}
}], l = t.Color = function(e, i, s, n) {
return new t.Color.fn.parse(e,i,s,n)
}
, c = {
rgba: {
props: {
red: {
idx: 0,
type: "byte"
},
green: {
idx: 1,
type: "byte"
},
blue: {
idx: 2,
type: "byte"
}
}
},
hsla: {
props: {
hue: {
idx: 0,
type: "degrees"
},
saturation: {
idx: 1,
type: "percent"
},
lightness: {
idx: 2,
type: "percent"
}
}
}
}, u = {
"byte": {
floor: !0,
max: 255
},
percent: {
max: 1
},
degrees: {
mod: 360,
floor: !0
}
}, d = l.support = {}, p = t("
")[0], f = t.each;
p.style.cssText = "background-color:rgba(1,1,1,.5)",
d.rgba = p.style.backgroundColor.indexOf("rgba") > -1,
f(c, function(t, e) {
e.cache = "_" + t,
e.props.alpha = {
idx: 3,
type: "percent",
def: 1
}
}),
l.fn = t.extend(l.prototype, {
parse: function(n, a, r, h) {
if (n === e)
return this._rgba = [null, null, null, null],
this;
(n.jquery || n.nodeType) && (n = t(n).css(a),
a = e);
var u = this
, d = t.type(n)
, p = this._rgba = [];
return a !== e && (n = [n, a, r, h],
d = "array"),
"string" === d ? this.parse(s(n) || o._default) : "array" === d ? (f(c.rgba.props, function(t, e) {
p[e.idx] = i(n[e.idx], e)
}),
this) : "object" === d ? (n instanceof l ? f(c, function(t, e) {
n[e.cache] && (u[e.cache] = n[e.cache].slice())
}) : f(c, function(e, s) {
var o = s.cache;
f(s.props, function(t, e) {
if (!u[o] && s.to) {
if ("alpha" === t || null == n[t])
return;
u[o] = s.to(u._rgba)
}
u[o][e.idx] = i(n[t], e, !0)
}),
u[o] && 0 > t.inArray(null, u[o].slice(0, 3)) && (u[o][3] = 1,
s.from && (u._rgba = s.from(u[o])))
}),
this) : e
},
is: function(t) {
var i = l(t)
, s = !0
, n = this;
return f(c, function(t, o) {
var a, r = i[o.cache];
return r && (a = n[o.cache] || o.to && o.to(n._rgba) || [],
f(o.props, function(t, i) {
return null != r[i.idx] ? s = r[i.idx] === a[i.idx] : e
})),
s
}),
s
},
_space: function() {
var t = []
, e = this;
return f(c, function(i, s) {
e[s.cache] && t.push(i)
}),
t.pop()
},
transition: function(t, e) {
var s = l(t)
, n = s._space()
, o = c[n]
, a = 0 === this.alpha() ? l("transparent") : this
, r = a[o.cache] || o.to(a._rgba)
, h = r.slice();
return s = s[o.cache],
f(o.props, function(t, n) {
var o = n.idx
, a = r[o]
, l = s[o]
, c = u[n.type] || {};
null !== l && (null === a ? h[o] = l : (c.mod && (l - a > c.mod / 2 ? a += c.mod : a - l > c.mod / 2 && (a -= c.mod)),
h[o] = i((l - a) * e + a, n)))
}),
this[n](h)
},
blend: function(e) {
if (1 === this._rgba[3])
return this;
var i = this._rgba.slice()
, s = i.pop()
, n = l(e)._rgba;
return l(t.map(i, function(t, e) {
return (1 - s) * n[e] + s * t
}))
},
toRgbaString: function() {
var e = "rgba("
, i = t.map(this._rgba, function(t, e) {
return null == t ? e > 2 ? 1 : 0 : t
});
return 1 === i[3] && (i.pop(),
e = "rgb("),
e + i.join() + ")"
},
toHslaString: function() {
var e = "hsla("
, i = t.map(this.hsla(), function(t, e) {
return null == t && (t = e > 2 ? 1 : 0),
e && 3 > e && (t = Math.round(100 * t) + "%"),
t
});
return 1 === i[3] && (i.pop(),
e = "hsl("),
e + i.join() + ")"
},
toHexString: function(e) {
var i = this._rgba.slice()
, s = i.pop();
return e && i.push(~~(255 * s)),
"#" + t.map(i, function(t) {
return t = (t || 0).toString(16),
1 === t.length ? "0" + t : t
}).join("")
},
toString: function() {
return 0 === this._rgba[3] ? "transparent" : this.toRgbaString()
}
}),
l.fn.parse.prototype = l.fn,
c.hsla.to = function(t) {
if (null == t[0] || null == t[1] || null == t[2])
return [null, null, null, t[3]];
var e, i, s = t[0] / 255, n = t[1] / 255, o = t[2] / 255, a = t[3], r = Math.max(s, n, o), h = Math.min(s, n, o), l = r - h, c = r + h, u = .5 * c;
return e = h === r ? 0 : s === r ? 60 * (n - o) / l + 360 : n === r ? 60 * (o - s) / l + 120 : 60 * (s - n) / l + 240,
i = 0 === l ? 0 : .5 >= u ? l / c : l / (2 - c),
[Math.round(e) % 360, i, u, null == a ? 1 : a]
}
,
c.hsla.from = function(t) {
if (null == t[0] || null == t[1] || null == t[2])
return [null, null, null, t[3]];
var e = t[0] / 360
, i = t[1]
, s = t[2]
, o = t[3]
, a = .5 >= s ? s * (1 + i) : s + i - s * i
, r = 2 * s - a;
return [Math.round(255 * n(r, a, e + 1 / 3)), Math.round(255 * n(r, a, e)), Math.round(255 * n(r, a, e - 1 / 3)), o]
}
,
f(c, function(s, n) {
var o = n.props
, a = n.cache
, h = n.to
, c = n.from;
l.fn[s] = function(s) {
if (h && !this[a] && (this[a] = h(this._rgba)),
s === e)
return this[a].slice();
var n, r = t.type(s), u = "array" === r || "object" === r ? s : arguments, d = this[a].slice();
return f(o, function(t, e) {
var s = u["object" === r ? t : e.idx];
null == s && (s = d[e.idx]),
d[e.idx] = i(s, e)
}),
c ? (n = l(c(d)),
n[a] = d,
n) : l(d)
}
,
f(o, function(e, i) {
l.fn[e] || (l.fn[e] = function(n) {
var o, a = t.type(n), h = "alpha" === e ? this._hsla ? "hsla" : "rgba" : s, l = this[h](), c = l[i.idx];
return "undefined" === a ? c : ("function" === a && (n = n.call(this, c),
a = t.type(n)),
null == n && i.empty ? this : ("string" === a && (o = r.exec(n),
o && (n = c + parseFloat(o[2]) * ("+" === o[1] ? 1 : -1))),
l[i.idx] = n,
this[h](l)))
}
)
})
}),
l.hook = function(e) {
var i = e.split(" ");
f(i, function(e, i) {
t.cssHooks[i] = {
set: function(e, n) {
var o, a, r = "";
if ("transparent" !== n && ("string" !== t.type(n) || (o = s(n)))) {
if (n = l(o || n),
!d.rgba && 1 !== n._rgba[3]) {
for (a = "backgroundColor" === i ? e.parentNode : e; ("" === r || "transparent" === r) && a && a.style; )
try {
r = t.css(a, "backgroundColor"),
a = a.parentNode
} catch (h) {}
n = n.blend(r && "transparent" !== r ? r : "_default")
}
n = n.toRgbaString()
}
try {
e.style[i] = n
} catch (h) {}
}
},
t.fx.step[i] = function(e) {
e.colorInit || (e.start = l(e.elem, i),
e.end = l(e.end),
e.colorInit = !0),
t.cssHooks[i].set(e.elem, e.start.transition(e.end, e.pos))
}
})
}
,
l.hook(a),
t.cssHooks.borderColor = {
expand: function(t) {
var e = {};
return f(["Top", "Right", "Bottom", "Left"], function(i, s) {
e["border" + s + "Color"] = t
}),
e
}
},
o = t.Color.names = {
aqua: "#00ffff",
black: "#000000",
blue: "#0000ff",
fuchsia: "#ff00ff",
gray: "#808080",
green: "#008000",
lime: "#00ff00",
maroon: "#800000",
navy: "#000080",
olive: "#808000",
purple: "#800080",
red: "#ff0000",
silver: "#c0c0c0",
teal: "#008080",
white: "#ffffff",
yellow: "#ffff00",
transparent: [null, null, null, 0],
_default: "#ffffff"
}
}(jQuery),
function() {
function i(e) {
var i, s, n = e.ownerDocument.defaultView ? e.ownerDocument.defaultView.getComputedStyle(e, null) : e.currentStyle, o = {};
if (n && n.length && n[0] && n[n[0]])
for (s = n.length; s--; )
i = n[s],
"string" == typeof n[i] && (o[t.camelCase(i)] = n[i]);
else
for (i in n)
"string" == typeof n[i] && (o[i] = n[i]);
return o
}
function s(e, i) {
var s, n, a = {};
for (s in i)
n = i[s],
e[s] !== n && (o[s] || (t.fx.step[s] || !isNaN(parseFloat(n))) && (a[s] = n));
return a
}
var n = ["add", "remove", "toggle"]
, o = {
border: 1,
borderBottom: 1,
borderColor: 1,
borderLeft: 1,
borderRight: 1,
borderTop: 1,
borderWidth: 1,
margin: 1,
padding: 1
};
t.each(["borderLeftStyle", "borderRightStyle", "borderBottomStyle", "borderTopStyle"], function(e, i) {
t.fx.step[i] = function(t) {
("none" !== t.end && !t.setAttr || 1 === t.pos && !t.setAttr) && (jQuery.style(t.elem, i, t.end),
t.setAttr = !0)
}
}),
t.fn.addBack || (t.fn.addBack = function(t) {
return this.add(null == t ? this.prevObject : this.prevObject.filter(t))
}
),
t.effects.animateClass = function(e, o, a, r) {
var h = t.speed(o, a, r);
return this.queue(function() {
var o, a = t(this), r = a.attr("class") || "", l = h.children ? a.find("*").addBack() : a;
l = l.map(function() {
var e = t(this);
return {
el: e,
start: i(this)
}
}),
o = function() {
t.each(n, function(t, i) {
e[i] && a[i + "Class"](e[i])
})
}
,
o(),
l = l.map(function() {
return this.end = i(this.el[0]),
this.diff = s(this.start, this.end),
this
}),
a.attr("class", r),
l = l.map(function() {
var e = this
, i = t.Deferred()
, s = t.extend({}, h, {
queue: !1,
complete: function() {
i.resolve(e)
}
});
return this.el.animate(this.diff, s),
i.promise()
}),
t.when.apply(t, l.get()).done(function() {
o(),
t.each(arguments, function() {
var e = this.el;
t.each(this.diff, function(t) {
e.css(t, "")
})
}),
h.complete.call(a[0])
})
})
}
,
t.fn.extend({
addClass: function(e) {
return function(i, s, n, o) {
return s ? t.effects.animateClass.call(this, {
add: i
}, s, n, o) : e.apply(this, arguments)
}
}(t.fn.addClass),
removeClass: function(e) {
return function(i, s, n, o) {
return arguments.length > 1 ? t.effects.animateClass.call(this, {
remove: i
}, s, n, o) : e.apply(this, arguments)
}
}(t.fn.removeClass),
toggleClass: function(i) {
return function(s, n, o, a, r) {
return "boolean" == typeof n || n === e ? o ? t.effects.animateClass.call(this, n ? {
add: s
} : {
remove: s
}, o, a, r) : i.apply(this, arguments) : t.effects.animateClass.call(this, {
toggle: s
}, n, o, a)
}
}(t.fn.toggleClass),
switchClass: function(e, i, s, n, o) {
return t.effects.animateClass.call(this, {
add: i,
remove: e
}, s, n, o)
}
})
}(),
function() {
function s(e, i, s, n) {
return t.isPlainObject(e) && (i = e,
e = e.effect),
e = {
effect: e
},
null == i && (i = {}),
t.isFunction(i) && (n = i,
s = null,
i = {}),
("number" == typeof i || t.fx.speeds[i]) && (n = s,
s = i,
i = {}),
t.isFunction(s) && (n = s,
s = null),
i && t.extend(e, i),
s = s || i.duration,
e.duration = t.fx.off ? 0 : "number" == typeof s ? s : s in t.fx.speeds ? t.fx.speeds[s] : t.fx.speeds._default,
e.complete = n || i.complete,
e
}
function n(e) {
return !e || "number" == typeof e || t.fx.speeds[e] ? !0 : "string" != typeof e || t.effects.effect[e] ? t.isFunction(e) ? !0 : "object" != typeof e || e.effect ? !1 : !0 : !0
}
t.extend(t.effects, {
version: "1.10.2",
save: function(t, e) {
for (var s = 0; e.length > s; s++)
null !== e[s] && t.data(i + e[s], t[0].style[e[s]])
},
restore: function(t, s) {
var n, o;
for (o = 0; s.length > o; o++)
null !== s[o] && (n = t.data(i + s[o]),
n === e && (n = ""),
t.css(s[o], n))
},
setMode: function(t, e) {
return "toggle" === e && (e = t.is(":hidden") ? "show" : "hide"),
e
},
getBaseline: function(t, e) {
var i, s;
switch (t[0]) {
case "top":
i = 0;
break;
case "middle":
i = .5;
break;
case "bottom":
i = 1;
break;
default:
i = t[0] / e.height
}
switch (t[1]) {
case "left":
s = 0;
break;
case "center":
s = .5;
break;
case "right":
s = 1;
break;
default:
s = t[1] / e.width
}
return {
x: s,
y: i
}
},
createWrapper: function(e) {
if (e.parent().is(".ui-effects-wrapper"))
return e.parent();
var i = {
width: e.outerWidth(!0),
height: e.outerHeight(!0),
"float": e.css("float")
}
, s = t("
").addClass("ui-effects-wrapper").css({
fontSize: "100%",
background: "transparent",
border: "none",
margin: 0,
padding: 0
})
, n = {
width: e.width(),
height: e.height()
}
, o = document.activeElement;
try {
o.id
} catch (a) {
o = document.body
}
return e.wrap(s),
(e[0] === o || t.contains(e[0], o)) && t(o).focus(),
s = e.parent(),
"static" === e.css("position") ? (s.css({
position: "relative"
}),
e.css({
position: "relative"
})) : (t.extend(i, {
position: e.css("position"),
zIndex: e.css("z-index")
}),
t.each(["top", "left", "bottom", "right"], function(t, s) {
i[s] = e.css(s),
isNaN(parseInt(i[s], 10)) && (i[s] = "auto")
}),
e.css({
position: "relative",
top: 0,
left: 0,
right: "auto",
bottom: "auto"
})),
e.css(n),
s.css(i).show()
},
removeWrapper: function(e) {
var i = document.activeElement;
return e.parent().is(".ui-effects-wrapper") && (e.parent().replaceWith(e),
(e[0] === i || t.contains(e[0], i)) && t(i).focus()),
e
},
setTransition: function(e, i, s, n) {
return n = n || {},
t.each(i, function(t, i) {
var o = e.cssUnit(i);
o[0] > 0 && (n[i] = o[0] * s + o[1])
}),
n
}
}),
t.fn.extend({
effect: function() {
function e(e) {
function s() {
t.isFunction(o) && o.call(n[0]),
t.isFunction(e) && e()
}
var n = t(this)
, o = i.complete
, r = i.mode;
(n.is(":hidden") ? "hide" === r : "show" === r) ? (n[r](),
s()) : a.call(n[0], i, s)
}
var i = s.apply(this, arguments)
, n = i.mode
, o = i.queue
, a = t.effects.effect[i.effect];
return t.fx.off || !a ? n ? this[n](i.duration, i.complete) : this.each(function() {
i.complete && i.complete.call(this)
}) : o === !1 ? this.each(e) : this.queue(o || "fx", e)
},
show: function(t) {
return function(e) {
if (n(e))
return t.apply(this, arguments);
var i = s.apply(this, arguments);
return i.mode = "show",
this.effect.call(this, i)
}
}(t.fn.show),
hide: function(t) {
return function(e) {
if (n(e))
return t.apply(this, arguments);
var i = s.apply(this, arguments);
return i.mode = "hide",
this.effect.call(this, i)
}
}(t.fn.hide),
toggle: function(t) {
return function(e) {
if (n(e) || "boolean" == typeof e)
return t.apply(this, arguments);
var i = s.apply(this, arguments);
return i.mode = "toggle",
this.effect.call(this, i)
}
}(t.fn.toggle),
cssUnit: function(e) {
var i = this.css(e)
, s = [];
return t.each(["em", "px", "%", "pt"], function(t, e) {
i.indexOf(e) > 0 && (s = [parseFloat(i), e])
}),
s
}
})
}(),
function() {
var e = {};
t.each(["Quad", "Cubic", "Quart", "Quint", "Expo"], function(t, i) {
e[i] = function(e) {
return Math.pow(e, t + 2)
}
}),
t.extend(e, {
Sine: function(t) {
return 1 - Math.cos(t * Math.PI / 2)
},
Circ: function(t) {
return 1 - Math.sqrt(1 - t * t)
},
Elastic: function(t) {
return 0 === t || 1 === t ? t : -Math.pow(2, 8 * (t - 1)) * Math.sin((80 * (t - 1) - 7.5) * Math.PI / 15)
},
Back: function(t) {
return t * t * (3 * t - 2)
},
Bounce: function(t) {
for (var e, i = 4; ((e = Math.pow(2, --i)) - 1) / 11 > t; )
;
return 1 / Math.pow(4, 3 - i) - 7.5625 * Math.pow((3 * e - 2) / 22 - t, 2)
}
}),
t.each(e, function(e, i) {
t.easing["easeIn" + e] = i,
t.easing["easeOut" + e] = function(t) {
return 1 - i(1 - t)
}
,
t.easing["easeInOut" + e] = function(t) {
return .5 > t ? i(2 * t) / 2 : 1 - i(-2 * t + 2) / 2
}
})
}()
}(jQuery),
function(t) {
var e = 0
, i = {}
, s = {};
i.height = i.paddingTop = i.paddingBottom = i.borderTopWidth = i.borderBottomWidth = "hide",
s.height = s.paddingTop = s.paddingBottom = s.borderTopWidth = s.borderBottomWidth = "show",
t.widget("ui.accordion", {
version: "1.10.2",
options: {
active: 0,
animate: {},
collapsible: !1,
event: "click",
header: "> li > :first-child,> :not(li):even",
heightStyle: "auto",
icons: {
activeHeader: "ui-icon-triangle-1-s",
header: "ui-icon-triangle-1-e"
},
activate: null,
beforeActivate: null
},
_create: function() {
var e = this.options;
this.prevShow = this.prevHide = t(),
this.element.addClass("ui-accordion ui-widget ui-helper-reset").attr("role", "tablist"),
e.collapsible || e.active !== !1 && null != e.active || (e.active = 0),
this._processPanels(),
0 > e.active && (e.active += this.headers.length),
this._refresh()
},
_getCreateEventData: function() {
return {
header: this.active,
panel: this.active.length ? this.active.next() : t(),
content: this.active.length ? this.active.next() : t()
}
},
_createIcons: function() {
var e = this.options.icons;
e && (t("
").addClass("ui-accordion-header-icon ui-icon " + e.header).prependTo(this.headers),
this.active.children(".ui-accordion-header-icon").removeClass(e.header).addClass(e.activeHeader),
this.headers.addClass("ui-accordion-icons"))
},
_destroyIcons: function() {
this.headers.removeClass("ui-accordion-icons").children(".ui-accordion-header-icon").remove()
},
_destroy: function() {
var t;
this.element.removeClass("ui-accordion ui-widget ui-helper-reset").removeAttr("role"),
this.headers.removeClass("ui-accordion-header ui-accordion-header-active ui-helper-reset ui-state-default ui-corner-all ui-state-active ui-state-disabled ui-corner-top").removeAttr("role").removeAttr("aria-selected").removeAttr("aria-controls").removeAttr("tabIndex").each(function() {
/^ui-accordion/.test(this.id) && this.removeAttribute("id")
}),
this._destroyIcons(),
t = this.headers.next().css("display", "").removeAttr("role").removeAttr("aria-expanded").removeAttr("aria-hidden").removeAttr("aria-labelledby").removeClass("ui-helper-reset ui-widget-content ui-corner-bottom ui-accordion-content ui-accordion-content-active ui-state-disabled").each(function() {
/^ui-accordion/.test(this.id) && this.removeAttribute("id")
}),
"content" !== this.options.heightStyle && t.css("height", "")
},
_setOption: function(t, e) {
return "active" === t ? (this._activate(e),
undefined) : ("event" === t && (this.options.event && this._off(this.headers, this.options.event),
this._setupEvents(e)),
this._super(t, e),
"collapsible" !== t || e || this.options.active !== !1 || this._activate(0),
"icons" === t && (this._destroyIcons(),
e && this._createIcons()),
"disabled" === t && this.headers.add(this.headers.next()).toggleClass("ui-state-disabled", !!e),
undefined)
},
_keydown: function(e) {
if (!e.altKey && !e.ctrlKey) {
var i = t.ui.keyCode
, s = this.headers.length
, n = this.headers.index(e.target)
, o = !1;
switch (e.keyCode) {
case i.RIGHT:
case i.DOWN:
o = this.headers[(n + 1) % s];
break;
case i.LEFT:
case i.UP:
o = this.headers[(n - 1 + s) % s];
break;
case i.SPACE:
case i.ENTER:
this._eventHandler(e);
break;
case i.HOME:
o = this.headers[0];
break;
case i.END:
o = this.headers[s - 1]
}
o && (t(e.target).attr("tabIndex", -1),
t(o).attr("tabIndex", 0),
o.focus(),
e.preventDefault())
}
},
_panelKeyDown: function(e) {
e.keyCode === t.ui.keyCode.UP && e.ctrlKey && t(e.currentTarget).prev().focus()
},
refresh: function() {
var e = this.options;
this._processPanels(),
(e.active === !1 && e.collapsible === !0 || !this.headers.length) && (e.active = !1,
this.active = t()),
e.active === !1 ? this._activate(0) : this.active.length && !t.contains(this.element[0], this.active[0]) ? this.headers.length === this.headers.find(".ui-state-disabled").length ? (e.active = !1,
this.active = t()) : this._activate(Math.max(0, e.active - 1)) : e.active = this.headers.index(this.active),
this._destroyIcons(),
this._refresh()
},
_processPanels: function() {
this.headers = this.element.find(this.options.header).addClass("ui-accordion-header ui-helper-reset ui-state-default ui-corner-all"),
this.headers.next().addClass("ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom").filter(":not(.ui-accordion-content-active)").hide()
},
_refresh: function() {
var i, s = this.options, n = s.heightStyle, o = this.element.parent(), a = this.accordionId = "ui-accordion-" + (this.element.attr("id") || ++e);
this.active = this._findActive(s.active).addClass("ui-accordion-header-active ui-state-active ui-corner-top").removeClass("ui-corner-all"),
this.active.next().addClass("ui-accordion-content-active").show(),
this.headers.attr("role", "tab").each(function(e) {
var i = t(this)
, s = i.attr("id")
, n = i.next()
, o = n.attr("id");
s || (s = a + "-header-" + e,
i.attr("id", s)),
o || (o = a + "-panel-" + e,
n.attr("id", o)),
i.attr("aria-controls", o),
n.attr("aria-labelledby", s)
}).next().attr("role", "tabpanel"),
this.headers.not(this.active).attr({
"aria-selected": "false",
tabIndex: -1
}).next().attr({
"aria-expanded": "false",
"aria-hidden": "true"
}).hide(),
this.active.length ? this.active.attr({
"aria-selected": "true",
tabIndex: 0
}).next().attr({
"aria-expanded": "true",
"aria-hidden": "false"
}) : this.headers.eq(0).attr("tabIndex", 0),
this._createIcons(),
this._setupEvents(s.event),
"fill" === n ? (i = o.height(),
this.element.siblings(":visible").each(function() {
var e = t(this)
, s = e.css("position");
"absolute" !== s && "fixed" !== s && (i -= e.outerHeight(!0))
}),
this.headers.each(function() {
i -= t(this).outerHeight(!0)
}),
this.headers.next().each(function() {
t(this).height(Math.max(0, i - t(this).innerHeight() + t(this).height()))
}).css("overflow", "auto")) : "auto" === n && (i = 0,
this.headers.next().each(function() {
i = Math.max(i, t(this).css("height", "").height())
}).height(i))
},
_activate: function(e) {
var i = this._findActive(e)[0];
i !== this.active[0] && (i = i || this.active[0],
this._eventHandler({
target: i,
currentTarget: i,
preventDefault: t.noop
}))
},
_findActive: function(e) {
return "number" == typeof e ? this.headers.eq(e) : t()
},
_setupEvents: function(e) {
var i = {
keydown: "_keydown"
};
e && t.each(e.split(" "), function(t, e) {
i[e] = "_eventHandler"
}),
this._off(this.headers.add(this.headers.next())),
this._on(this.headers, i),
this._on(this.headers.next(), {
keydown: "_panelKeyDown"
}),
this._hoverable(this.headers),
this._focusable(this.headers)
},
_eventHandler: function(e) {
var i = this.options
, s = this.active
, n = t(e.currentTarget)
, o = n[0] === s[0]
, a = o && i.collapsible
, r = a ? t() : n.next()
, h = s.next()
, l = {
oldHeader: s,
oldPanel: h,
newHeader: a ? t() : n,
newPanel: r
};
e.preventDefault(),
o && !i.collapsible || this._trigger("beforeActivate", e, l) === !1 || (i.active = a ? !1 : this.headers.index(n),
this.active = o ? t() : n,
this._toggle(l),
s.removeClass("ui-accordion-header-active ui-state-active"),
i.icons && s.children(".ui-accordion-header-icon").removeClass(i.icons.activeHeader).addClass(i.icons.header),
o || (n.removeClass("ui-corner-all").addClass("ui-accordion-header-active ui-state-active ui-corner-top"),
i.icons && n.children(".ui-accordion-header-icon").removeClass(i.icons.header).addClass(i.icons.activeHeader),
n.next().addClass("ui-accordion-content-active")))
},
_toggle: function(e) {
var i = e.newPanel
, s = this.prevShow.length ? this.prevShow : e.oldPanel;
this.prevShow.add(this.prevHide).stop(!0, !0),
this.prevShow = i,
this.prevHide = s,
this.options.animate ? this._animate(i, s, e) : (s.hide(),
i.show(),
this._toggleComplete(e)),
s.attr({
"aria-expanded": "false",
"aria-hidden": "true"
}),
s.prev().attr("aria-selected", "false"),
i.length && s.length ? s.prev().attr("tabIndex", -1) : i.length && this.headers.filter(function() {
return 0 === t(this).attr("tabIndex")
}).attr("tabIndex", -1),
i.attr({
"aria-expanded": "true",
"aria-hidden": "false"
}).prev().attr({
"aria-selected": "true",
tabIndex: 0
})
},
_animate: function(t, e, n) {
var o, a, r, h = this, l = 0, c = t.length && (!e.length || t.index() < e.index()), u = this.options.animate || {}, d = c && u.down || u, p = function() {
h._toggleComplete(n)
};
return "number" == typeof d && (r = d),
"string" == typeof d && (a = d),
a = a || d.easing || u.easing,
r = r || d.duration || u.duration,
e.length ? t.length ? (o = t.show().outerHeight(),
e.animate(i, {
duration: r,
easing: a,
step: function(t, e) {
e.now = Math.round(t)
}
}),
t.hide().animate(s, {
duration: r,
easing: a,
complete: p,
step: function(t, i) {
i.now = Math.round(t),
"height" !== i.prop ? l += i.now : "content" !== h.options.heightStyle && (i.now = Math.round(o - e.outerHeight() - l),
l = 0)
}
}),
undefined) : e.animate(i, r, a, p) : t.animate(s, r, a, p)
},
_toggleComplete: function(t) {
var e = t.oldPanel;
e.removeClass("ui-accordion-content-active").prev().removeClass("ui-corner-top").addClass("ui-corner-all"),
e.length && (e.parent()[0].className = e.parent()[0].className),
this._trigger("activate", null, t)
}
})
}(jQuery),
function(t) {
var e = 0;
t.widget("ui.autocomplete", {
version: "1.10.2",
defaultElement: "",
options: {
appendTo: null,
autoFocus: !1,
delay: 300,
minLength: 1,
position: {
my: "left top",
at: "left bottom",
collision: "none"
},
source: null,
change: null,
close: null,
focus: null,
open: null,
response: null,
search: null,
select: null
},
pending: 0,
_create: function() {
var e, i, s, n = this.element[0].nodeName.toLowerCase(), o = "textarea" === n, a = "input" === n;
this.isMultiLine = o ? !0 : a ? !1 : this.element.prop("isContentEditable"),
this.valueMethod = this.element[o || a ? "val" : "text"],
this.isNewMenu = !0,
this.element.addClass("ui-autocomplete-input").attr("autocomplete", "off"),
this._on(this.element, {
keydown: function(n) {
if (this.element.prop("readOnly"))
return e = !0,
s = !0,
i = !0,
undefined;
e = !1,
s = !1,
i = !1;
var o = t.ui.keyCode;
switch (n.keyCode) {
case o.PAGE_UP:
e = !0,
this._move("previousPage", n);
break;
case o.PAGE_DOWN:
e = !0,
this._move("nextPage", n);
break;
case o.UP:
e = !0,
this._keyEvent("previous", n);
break;
case o.DOWN:
e = !0,
this._keyEvent("next", n);
break;
case o.ENTER:
case o.NUMPAD_ENTER:
this.menu.active && (e = !0,
n.preventDefault(),
this.menu.select(n));
break;
case o.TAB:
this.menu.active && this.menu.select(n);
break;
case o.ESCAPE:
this.menu.element.is(":visible") && (this._value(this.term),
this.close(n),
n.preventDefault());
break;
default:
i = !0,
this._searchTimeout(n)
}
},
keypress: function(s) {
if (e)
return e = !1,
s.preventDefault(),
undefined;
if (!i) {
var n = t.ui.keyCode;
switch (s.keyCode) {
case n.PAGE_UP:
this._move("previousPage", s);
break;
case n.PAGE_DOWN:
this._move("nextPage", s);
break;
case n.UP:
this._keyEvent("previous", s);
break;
case n.DOWN:
this._keyEvent("next", s)
}
}
},
input: function(t) {
return s ? (s = !1,
t.preventDefault(),
undefined) : (this._searchTimeout(t),
undefined)
},
focus: function() {
this.selectedItem = null,
this.previous = this._value()
},
blur: function(t) {
return this.cancelBlur ? (delete this.cancelBlur,
undefined) : (clearTimeout(this.searching),
this.close(t),
this._change(t),
undefined)
}
}),
this._initSource(),
this.menu = t("").addClass("ui-autocomplete ui-front").appendTo(this._appendTo()).menu({
input: t(),
role: null
}).hide().data("ui-menu"),
this._on(this.menu.element, {
mousedown: function(e) {
e.preventDefault(),
this.cancelBlur = !0,
this._delay(function() {
delete this.cancelBlur
});
var i = this.menu.element[0];
t(e.target).closest(".ui-menu-item").length || this._delay(function() {
var e = this;
this.document.one("mousedown", function(s) {
s.target === e.element[0] || s.target === i || t.contains(i, s.target) || e.close()
})
})
},
menufocus: function(e, i) {
if (this.isNewMenu && (this.isNewMenu = !1,
e.originalEvent && /^mouse/.test(e.originalEvent.type)))
return this.menu.blur(),
this.document.one("mousemove", function() {
t(e.target).trigger(e.originalEvent)
}),
undefined;
var s = i.item.data("ui-autocomplete-item");
!1 !== this._trigger("focus", e, {
item: s
}) ? e.originalEvent && /^key/.test(e.originalEvent.type) && this._value(s.value) : this.liveRegion.text(s.value)
},
menuselect: function(t, e) {
var i = e.item.data("ui-autocomplete-item")
, s = this.previous;
this.element[0] !== this.document[0].activeElement && (this.element.focus(),
this.previous = s,
this._delay(function() {
this.previous = s,
this.selectedItem = i
})),
!1 !== this._trigger("select", t, {
item: i
}) && this._value(i.value),
this.term = this._value(),
this.close(t),
this.selectedItem = i
}
}),
this.liveRegion = t("", {
role: "status",
"aria-live": "polite"
}).addClass("ui-helper-hidden-accessible").insertAfter(this.element),
this._on(this.window, {
beforeunload: function() {
this.element.removeAttr("autocomplete")
}
})
},
_destroy: function() {
clearTimeout(this.searching),
this.element.removeClass("ui-autocomplete-input").removeAttr("autocomplete"),
this.menu.element.remove(),
this.liveRegion.remove()
},
_setOption: function(t, e) {
this._super(t, e),
"source" === t && this._initSource(),
"appendTo" === t && this.menu.element.appendTo(this._appendTo()),
"disabled" === t && e && this.xhr && this.xhr.abort()
},
_appendTo: function() {
var e = this.options.appendTo;
return e && (e = e.jquery || e.nodeType ? t(e) : this.document.find(e).eq(0)),
e || (e = this.element.closest(".ui-front")),
e.length || (e = this.document[0].body),
e
},
_initSource: function() {
var e, i, s = this;
t.isArray(this.options.source) ? (e = this.options.source,
this.source = function(i, s) {
s(t.ui.autocomplete.filter(e, i.term))
}
) : "string" == typeof this.options.source ? (i = this.options.source,
this.source = function(e, n) {
s.xhr && s.xhr.abort(),
s.xhr = t.ajax({
url: i,
data: e,
dataType: "json",
success: function(t) {
n(t)
},
error: function() {
n([])
}
})
}
) : this.source = this.options.source
},
_searchTimeout: function(t) {
clearTimeout(this.searching),
this.searching = this._delay(function() {
this.term !== this._value() && (this.selectedItem = null,
this.search(null, t))
}, this.options.delay)
},
search: function(t, e) {
return t = null != t ? t : this._value(),
this.term = this._value(),
t.length < this.options.minLength ? this.close(e) : this._trigger("search", e) !== !1 ? this._search(t) : undefined
},
_search: function(t) {
this.pending++,
this.element.addClass("ui-autocomplete-loading"),
this.cancelSearch = !1,
this.source({
term: t
}, this._response())
},
_response: function() {
var t = this
, i = ++e;
return function(s) {
i === e && t.__response(s),
t.pending--,
t.pending || t.element.removeClass("ui-autocomplete-loading")
}
},
__response: function(t) {
t && (t = this._normalize(t)),
this._trigger("response", null, {
content: t
}),
!this.options.disabled && t && t.length && !this.cancelSearch ? (this._suggest(t),
this._trigger("open")) : this._close()
},
close: function(t) {
this.cancelSearch = !0,
this._close(t)
},
_close: function(t) {
this.menu.element.is(":visible") && (this.menu.element.hide(),
this.menu.blur(),
this.isNewMenu = !0,
this._trigger("close", t))
},
_change: function(t) {
this.previous !== this._value() && this._trigger("change", t, {
item: this.selectedItem
})
},
_normalize: function(e) {
return e.length && e[0].label && e[0].value ? e : t.map(e, function(e) {
return "string" == typeof e ? {
label: e,
value: e
} : t.extend({
label: e.label || e.value,
value: e.value || e.label
}, e)
})
},
_suggest: function(e) {
var i = this.menu.element.empty();
this._renderMenu(i, e),
this.isNewMenu = !0,
this.menu.refresh(),
i.show(),
this._resizeMenu(),
i.position(t.extend({
of: this.element
}, this.options.position)),
this.options.autoFocus && this.menu.next()
},
_resizeMenu: function() {
var t = this.menu.element;
t.outerWidth(Math.max(t.width("").outerWidth() + 1, this.element.outerWidth()))
},
_renderMenu: function(e, i) {
var s = this;
t.each(i, function(t, i) {
s._renderItemData(e, i)
})
},
_renderItemData: function(t, e) {
return this._renderItem(t, e).data("ui-autocomplete-item", e)
},
_renderItem: function(e, i) {
return t("- ").append(t("").text(i.label)).appendTo(e)
},
_move: function(t, e) {
return this.menu.element.is(":visible") ? this.menu.isFirstItem() && /^previous/.test(t) || this.menu.isLastItem() && /^next/.test(t) ? (this._value(this.term),
this.menu.blur(),
undefined) : (this.menu[t](e),
undefined) : (this.search(null, e),
undefined)
},
widget: function() {
return this.menu.element
},
_value: function() {
return this.valueMethod.apply(this.element, arguments)
},
_keyEvent: function(t, e) {
(!this.isMultiLine || this.menu.element.is(":visible")) && (this._move(t, e),
e.preventDefault())
}
}),
t.extend(t.ui.autocomplete, {
escapeRegex: function(t) {
return t.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g, "\\$&")
},
filter: function(e, i) {
var s = RegExp(t.ui.autocomplete.escapeRegex(i), "i");
return t.grep(e, function(t) {
return s.test(t.label || t.value || t)
})
}
}),
t.widget("ui.autocomplete", t.ui.autocomplete, {
options: {
messages: {
noResults: "No search results.",
results: function(t) {
return t + (t > 1 ? " results are" : " result is") + " available, use up and down arrow keys to navigate."
}
}
},
__response: function(t) {
var e;
this._superApply(arguments),
this.options.disabled || this.cancelSearch || (e = t && t.length ? this.options.messages.results(t.length) : this.options.messages.noResults,
this.liveRegion.text(e))
}
})
}(jQuery),
function(t) {
var e, i, s, n, o = "ui-button ui-widget ui-state-default ui-corner-all", a = "ui-state-hover ui-state-active ", r = "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", h = function() {
var e = t(this).find(":ui-button");
setTimeout(function() {
e.button("refresh")
}, 1)
}, l = function(e) {
var i = e.name
, s = e.form
, n = t([]);
return i && (i = i.replace(/'/g, "\\'"),
n = s ? t(s).find("[name='" + i + "']") : t("[name='" + i + "']", e.ownerDocument).filter(function() {
return !this.form
})),
n
};
t.widget("ui.button", {
version: "1.10.2",
defaultElement: "