! function(a) {
"function" == typeof define && define.amd ? define(["jquery"], a) : a(jQuery)
}(function(a) {
function b(b, d) {
var e, f, g, h = b.nodeName.toLowerCase();
return "area" === h ? (e = b.parentNode, f = e.name, b.href && f && "map" === e.nodeName.toLowerCase() ? (g = a("img[usemap='#" + f + "']")[0], !!g && c(g)) : !1) : (/input|select|textarea|button|object/.test(h) ? !b.disabled : "a" === h ? b.href || d : d) && c(b)
}
function c(b) {
return a.expr.filters.visible(b) && !a(b).parents().addBack().filter(function() {
return "hidden" === a.css(this, "visibility")
}).length
}
a.ui = a.ui || {}, a.extend(a.ui, {
version: "1.11.2",
keyCode: {
BACKSPACE: 8,
COMMA: 188,
DELETE: 46,
DOWN: 40,
END: 35,
ENTER: 13,
ESCAPE: 27,
HOME: 36,
LEFT: 37,
PAGE_DOWN: 34,
PAGE_UP: 33,
PERIOD: 190,
RIGHT: 39,
SPACE: 32,
TAB: 9,
UP: 38
}
}), a.fn.extend({
scrollParent: function(b) {
var c = this.css("position"),
d = "absolute" === c,
e = b ? /(auto|scroll|hidden)/ : /(auto|scroll)/,
f = this.parents().filter(function() {
var b = a(this);
return d && "static" === b.css("position") ? !1 : e.test(b.css("overflow") + b.css("overflow-y") + b.css("overflow-x"))
}).eq(0);
return "fixed" !== c && f.length ? f : a(this[0].ownerDocument || document)
},
uniqueId: function() {
var a = 0;
return function() {
return this.each(function() {
this.id || (this.id = "ui-id-" + ++a)
})
}
}(),
removeUniqueId: function() {
return this.each(function() {
/^ui-id-\d+$/.test(this.id) && a(this).removeAttr("id")
})
}
}), a.extend(a.expr[":"], {
data: a.expr.createPseudo ? a.expr.createPseudo(function(b) {
return function(c) {
return !!a.data(c, b)
}
}) : function(b, c, d) {
return !!a.data(b, d[3])
},
focusable: function(c) {
return b(c, !isNaN(a.attr(c, "tabindex")))
},
tabbable: function(c) {
var d = a.attr(c, "tabindex"),
e = isNaN(d);
return (e || d >= 0) && b(c, !e)
}
}), a("<a>").outerWidth(1).jquery || a.each(["Width", "Height"], function(b, c) {
function d(b, c, d, f) {
return a.each(e, function() {
c -= parseFloat(a.css(b, "padding" + this)) || 0, d && (c -= parseFloat(a.css(b, "border" + this + "Width")) || 0), f && (c -= parseFloat(a.css(b, "margin" + this)) || 0)
}), c
}
var e = "Width" === c ? ["Left", "Right"] : ["Top", "Bottom"],
f = c.toLowerCase(),
g = {
innerWidth: a.fn.innerWidth,
innerHeight: a.fn.innerHeight,
outerWidth: a.fn.outerWidth,
outerHeight: a.fn.outerHeight
};
a.fn["inner" + c] = function(b) {
return void 0 === b ? g["inner" + c].call(this) : this.each(function() {
a(this).css(f, d(this, b) + "px")
})
}, a.fn["outer" + c] = function(b, e) {
return "number" != typeof b ? g["outer" + c].call(this, b) : this.each(function() {
a(this).css(f, d(this, b, !0, e) + "px")
})
}
}), a.fn.addBack || (a.fn.addBack = function(a) {
return this.add(null == a ? this.prevObject : this.prevObject.filter(a))
}), a("<a>").data("a-b", "a").removeData("a-b").data("a-b") && (a.fn.removeData = function(b) {
return function(c) {
return arguments.length ? b.call(this, a.camelCase(c)) : b.call(this)
}
}(a.fn.removeData)), a.ui.ie = !!/msie [\w.]+/.exec(navigator.userAgent.toLowerCase()), a.fn.extend({
focus: function(b) {
return function(c, d) {
return "number" == typeof c ? this.each(function() {
var b = this;
setTimeout(function() {
a(b).focus(), d && d.call(b)
}, c)
}) : b.apply(this, arguments)
}
}(a.fn.focus),
disableSelection: function() {
var a = "onselectstart" in document.createElement("div") ? "selectstart" : "mousedown";
return function() {
return this.bind(a + ".ui-disableSelection", function(a) {
a.preventDefault()
})
}
}(),
enableSelection: function() {
return this.unbind(".ui-disableSelection")
},
zIndex: function(b) {
if (void 0 !== b) return this.css("zIndex", b);
if (this.length)
for (var c, d, e = a(this[0]); e.length && e[0] !== document;) {
if (c = e.css("position"), ("absolute" === c || "relative" === c || "fixed" === c) && (d = parseInt(e.css("zIndex"), 10), !isNaN(d) && 0 !== d)) return d;
e = e.parent()
}
return 0
}
}), a.ui.plugin = {
add: function(b, c, d) {
var e, f = a.ui[b].prototype;
for (e in d) f.plugins[e] = f.plugins[e] || [], f.plugins[e].push([c, d[e]])
},
call: function(a, b, c, d) {
var e, f = a.plugins[b];
if (f && (d || a.element[0].parentNode && 11 !== a.element[0].parentNode.nodeType))
for (e = 0; e < f.length; e++) a.options[f[e][0]] && f[e][1].apply(a.element, c)
}
}
});
/*!
* jQuery UI Widget 1.11.2
* http://jqueryui.com
*
* Copyright 2014 jQuery Foundation and other contributors
* Released under the MIT license.
* http://jquery.org/license
*
* http://api.jqueryui.com/jQuery.widget/
*/
! function(a) {
"function" == typeof define && define.amd ? define(["jquery"], a) : a(jQuery)
}(function(a) {
var b = 0,
c = Array.prototype.slice;
return a.cleanData = function(b) {
return function(c) {
var d, e, f;
for (f = 0; null != (e = c[f]); f++) try {
d = a._data(e, "events"), d && d.remove && a(e).triggerHandler("remove")
} catch (g) {}
b(c)
}
}(a.cleanData), a.widget = function(b, c, d) {
var e, f, g, h, i = {},
j = b.split(".")[0];
return b = b.split(".")[1], e = j + "-" + b, d || (d = c, c = a.Widget), a.expr[":"][e.toLowerCase()] = function(b) {
return !!a.data(b, e)
}, a[j] = a[j] || {}, f = a[j][b], g = a[j][b] = function(a, b) {
return this._createWidget ? void(arguments.length && this._createWidget(a, b)) : new g(a, b)
}, a.extend(g, f, {
version: d.version,
_proto: a.extend({}, d),
_childConstructors: []
}), h = new c, h.options = a.widget.extend({}, h.options), a.each(d, function(b, d) {
return a.isFunction(d) ? void(i[b] = function() {
var a = function() {
return c.prototype[b].apply(this, arguments)
},
e = function(a) {
return c.prototype[b].apply(this, a)
};
return function() {
var b, c = this._super,
f = this._superApply;
return this._super = a, this._superApply = e, b = d.apply(this, arguments), this._super = c, this._superApply = f, b
}
}()) : void(i[b] = d)
}), g.prototype = a.widget.extend(h, {
widgetEventPrefix: f ? h.widgetEventPrefix || b : b
}, i, {
constructor: g,
namespace: j,
widgetName: b,
widgetFullName: e
}), f ? (a.each(f._childConstructors, function(b, c) {
var d = c.prototype;
a.widget(d.namespace + "." + d.widgetName, g, c._proto)
}), delete f._childConstructors) : c._childConstructors.push(g), a.widget.bridge(b, g), g
}, a.widget.extend = function(b) {
for (var d, e, f = c.call(arguments, 1), g = 0, h = f.length; h > g; g++)
for (d in f[g]) e = f[g][d], f[g].hasOwnProperty(d) && void 0 !== e && (b[d] = a.isPlainObject(e) ? a.isPlainObject(b[d]) ? a.widget.extend({}, b[d], e) : a.widget.extend({}, e) : e);
return b
}, a.widget.bridge = function(b, d) {
var e = d.prototype.widgetFullName || b;
a.fn[b] = function(f) {
var g = "string" == typeof f,
h = c.call(arguments, 1),
i = this;
return f = !g && h.length ? a.widget.extend.apply(null, [f].concat(h)) : f, this.each(g ? function() {
var c, d = a.data(this, e);
return "instance" === f ? (i = d, !1) : d ? a.isFunction(d[f]) && "_" !== f.charAt(0) ? (c = d[f].apply(d, h), c !== d && void 0 !== c ? (i = c && c.jquery ? i.pushStack(c.get()) : c, !1) : void 0) : a.error("no such method '" + f + "' for " + b + " widget instance") : a.error("cannot call methods on " + b + " prior to initialization; attempted to call method '" + f + "'")
} : function() {
var b = a.data(this, e);
b ? (b.option(f || {}), b._init && b._init()) : a.data(this, e, new d(f, this))
}), i
}
}, a.Widget = function() {}, a.Widget._childConstructors = [], a.Widget.prototype = {
widgetName: "widget",
widgetEventPrefix: "",
defaultElement: "<div>",
options: {
disabled: !1,
create: null
},
_createWidget: function(c, d) {
d = a(d || this.defaultElement || this)[0], this.element = a(d), this.uuid = b++, this.eventNamespace = "." + this.widgetName + this.uuid, this.bindings = a(), this.hoverable = a(), this.focusable = a(), d !== this && (a.data(d, this.widgetFullName, this), this._on(!0, this.element, {
remove: function(a) {
a.target === d && this.destroy()
}
}), this.document = a(d.style ? d.ownerDocument : d.document || d), this.window = a(this.document[0].defaultView || this.document[0].parentWindow)), this.options = a.widget.extend({}, this.options, this._getCreateOptions(), c), this._create(), this._trigger("create", null, this._getCreateEventData()), this._init()
},
_getCreateOptions: a.noop,
_getCreateEventData: a.noop,
_create: a.noop,
_init: a.noop,
destroy: function() {
this._destroy(), this.element.unbind(this.eventNamespace).removeData(this.widgetFullName).removeData(a.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: a.noop,
widget: function() {
return this.element
},
option: function(b, c) {
var d, e, f, g = b;
if (0 === arguments.length) return a.widget.extend({}, this.options);
if ("string" == typeof b)
if (g = {}, d = b.split("."), b = d.shift(), d.length) {
for (e = g[b] = a.widget.extend({}, this.options[b]), f = 0; f < d.length - 1; f++) e[d[f]] = e[d[f]] || {}, e = e[d[f]];
if (b = d.pop(), 1 === arguments.length) return void 0 === e[b] ? null : e[b];
e[b] = c
} else {
if (1 === arguments.length) return void 0 === this.options[b] ? null : this.options[b];
g[b] = c
}
return this._setOptions(g), this
},
_setOptions: function(a) {
var b;
for (b in a) this._setOption(b, a[b]);
return this
},
_setOption: function(a, b) {
return this.options[a] = b, "disabled" === a && (this.widget().toggleClass(this.widgetFullName + "-disabled", !!b), b && (this.hoverable.removeClass("ui-state-hover"), this.focusable.removeClass("ui-state-focus"))), this
},
enable: function() {
return this._setOptions({
disabled: !1
})
},
disable: function() {
return this._setOptions({
disabled: !0
})
},
_on: function(b, c, d) {
var e, f = this;
"boolean" != typeof b && (d = c, c = b, b = !1), d ? (c = e = a(c), this.bindings = this.bindings.add(c)) : (d = c, c = this.element, e = this.widget()), a.each(d, function(d, g) {
function h() {
return b || f.options.disabled !== !0 && !a(this).hasClass("ui-state-disabled") ? ("string" == typeof g ? f[g] : g).apply(f, arguments) : void 0
}
"string" != typeof g && (h.guid = g.guid = g.guid || h.guid || a.guid++);
var i = d.match(/^([\w:-]*)\s*(.*)$/),
j = i[1] + f.eventNamespace,
k = i[2];
k ? e.delegate(k, j, h) : c.bind(j, h)
})
},
_off: function(b, c) {
c = (c || "").split(" ").join(this.eventNamespace + " ") + this.eventNamespace, b.unbind(c).undelegate(c), this.bindings = a(this.bindings.not(b).get()), this.focusable = a(this.focusable.not(b).get()), this.hoverable = a(this.hoverable.not(b).get())
},
_delay: function(a, b) {
function c() {
return ("string" == typeof a ? d[a] : a).apply(d, arguments)
}
var d = this;
return setTimeout(c, b || 0)
},
_hoverable: function(b) {
this.hoverable = this.hoverable.add(b), this._on(b, {
mouseenter: function(b) {
a(b.currentTarget).addClass("ui-state-hover")
},
mouseleave: function(b) {
a(b.currentTarget).removeClass("ui-state-hover")
}
})
},
_focusable: function(b) {
this.focusable = this.focusable.add(b), this._on(b, {
focusin: function(b) {
a(b.currentTarget).addClass("ui-state-focus")
},
focusout: function(b) {
a(b.currentTarget).removeClass("ui-state-focus")
}
})
},
_trigger: function(b, c, d) {
var e, f, g = this.options[b];
if (d = d || {}, c = a.Event(c), c.type = (b === this.widgetEventPrefix ? b : this.widgetEventPrefix + b).toLowerCase(), c.target = this.element[0], f = c.originalEvent)
for (e in f) e in c || (c[e] = f[e]);
return this.element.trigger(c, d), !(a.isFunction(g) && g.apply(this.element[0], [c].concat(d)) === !1 || c.isDefaultPrevented())
}
}, a.each({
show: "fadeIn",
hide: "fadeOut"
}, function(b, c) {
a.Widget.prototype["_" + b] = function(d, e, f) {
"string" == typeof e && (e = {
effect: e
});
var g, h = e ? e === !0 || "number" == typeof e ? c : e.effect || c : b;
e = e || {}, "number" == typeof e && (e = {
duration: e
}), g = !a.isEmptyObject(e), e.complete = f, e.delay && d.delay(e.delay), g && a.effects && a.effects.effect[h] ? d[b](e) : h !== b && d[h] ? d[h](e.duration, e.easing, f) : d.queue(function(c) {
a(this)[b](), f && f.call(d[0]), c()
})
}
}), a.widget
});
/*!
* jQuery UI Mouse 1.11.2
* http://jqueryui.com
*
* Copyright 2014 jQuery Foundation and other contributors
* Released under the MIT license.
* http://jquery.org/license
*
* http://api.jqueryui.com/mouse/
*/
! function(a) {
"function" == typeof define && define.amd ? define(["jquery", "./widget"], a) : a(jQuery)
}(function(a) {
var b = !1;
return a(document).mouseup(function() {
b = !1
}), a.widget("ui.mouse", {
version: "1.11.2",
options: {
cancel: "input,textarea,button,select,option",
distance: 1,
delay: 0
},
_mouseInit: function() {
var b = this;
this.element.bind("mousedown." + this.widgetName, function(a) {
return b._mouseDown(a)
}).bind("click." + this.widgetName, function(c) {
return !0 === a.data(c.target, b.widgetName + ".preventClickEvent") ? (a.removeData(c.target, b.widgetName + ".preventClickEvent"), c.stopImmediatePropagation(), !1) : void 0
}), this.started = !1
},
_mouseDestroy: function() {
this.element.unbind("." + this.widgetName), this._mouseMoveDelegate && this.document.unbind("mousemove." + this.widgetName, this._mouseMoveDelegate).unbind("mouseup." + this.widgetName, this._mouseUpDelegate)
},
_mouseDown: function(c) {
if (!b) {
this._mouseMoved = !1, this._mouseStarted && this._mouseUp(c), this._mouseDownEvent = c;
var d = this,
e = 1 === c.which,
f = "string" == typeof this.options.cancel && c.target.nodeName ? a(c.target).closest(this.options.cancel).length : !1;
return e && !f && this._mouseCapture(c) ? (this.mouseDelayMet = !this.options.delay, this.mouseDelayMet || (this._mouseDelayTimer = setTimeout(function() {
d.mouseDelayMet = !0
}, this.options.delay)), this._mouseDistanceMet(c) && this._mouseDelayMet(c) && (this._mouseStarted = this._mouseStart(c) !== !1, !this._mouseStarted) ? (c.preventDefault(), !0) : (!0 === a.data(c.target, this.widgetName + ".preventClickEvent") && a.removeData(c.target, this.widgetName + ".preventClickEvent"), this._mouseMoveDelegate = function(a) {
return d._mouseMove(a)
}, this._mouseUpDelegate = function(a) {
return d._mouseUp(a)
}, this.document.bind("mousemove." + this.widgetName, this._mouseMoveDelegate).bind("mouseup." + this.widgetName, this._mouseUpDelegate), c.preventDefault(), b = !0, !0)) : !0
}
},
_mouseMove: function(b) {
if (this._mouseMoved) {
if (a.ui.ie && (!document.documentMode || document.documentMode < 9) && !b.button) return this._mouseUp(b);
if (!b.which) return this._mouseUp(b)
}
return (b.which || b.button) && (this._mouseMoved = !0), this._mouseStarted ? (this._mouseDrag(b), b.preventDefault()) : (this._mouseDistanceMet(b) && this._mouseDelayMet(b) && (this._mouseStarted = this._mouseStart(this._mouseDownEvent, b) !== !1, this._mouseStarted ? this._mouseDrag(b) : this._mouseUp(b)), !this._mouseStarted)
},
_mouseUp: function(c) {
return this.document.unbind("mousemove." + this.widgetName, this._mouseMoveDelegate).unbind("mouseup." + this.widgetName, this._mouseUpDelegate), this._mouseStarted && (this._mouseStarted = !1, c.target === this._mouseDownEvent.target && a.data(c.target, this.widgetName + ".preventClickEvent", !0), this._mouseStop(c)), b = !1, !1
},
_mouseDistanceMet: function(a) {
return Math.max(Math.abs(this._mouseDownEvent.pageX - a.pageX), Math.abs(this._mouseDownEvent.pageY - a.pageY)) >= this.options.distance
},
_mouseDelayMet: function() {
return this.mouseDelayMet
},
_mouseStart: function() {},
_mouseDrag: function() {},
_mouseStop: function() {},
_mouseCapture: function() {
return !0
}
})
});
/*!
* jQuery UI Sortable 1.11.2
* http://jqueryui.com
*
* Copyright 2014 jQuery Foundation and other contributors
* Released under the MIT license.
* http://jquery.org/license
*
* http://api.jqueryui.com/sortable/
*/
! function(a) {
"function" == typeof define && define.amd ? define(["jquery", "./core", "./mouse", "./widget"], a) : a(jQuery)
}(function(a) {
return a.widget("ui.sortable", a.ui.mouse, {
version: "1.11.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
},
_isOverAxis: function(a, b, c) {
return a >= b && b + c > a
},
_isFloating: function(a) {
return /left|right/.test(a.css("float")) || /inline|table-cell/.test(a.css("display"))
},
_create: function() {
var a = this.options;
this.containerCache = {}, this.element.addClass("ui-sortable"), this.refresh(), this.floating = this.items.length ? "x" === a.axis || this._isFloating(this.items[0].item) : !1, this.offset = this.element.offset(), this._mouseInit(), this._setHandleClassName(), this.ready = !0
},
_setOption: function(a, b) {
this._super(a, b), "handle" === a && this._setHandleClassName()
},
_setHandleClassName: function() {
this.element.find(".ui-sortable-handle").removeClass("ui-sortable-handle"), a.each(this.items, function() {
(this.instance.options.handle ? this.item.find(this.instance.options.handle) : this.item).addClass("ui-sortable-handle")
})
},
_destroy: function() {
this.element.removeClass("ui-sortable ui-sortable-disabled").find(".ui-sortable-handle").removeClass("ui-sortable-handle"), this._mouseDestroy();
for (var a = this.items.length - 1; a >= 0; a--) this.items[a].item.removeData(this.widgetName + "-item");
return this
},
_mouseCapture: function(b, c) {
var d = null,
e = !1,
f = this;
return this.reverting ? !1 : this.options.disabled || "static" === this.options.type ? !1 : (this._refreshItems(b), a(b.target).parents().each(function() {
return a.data(this, f.widgetName + "-item") === f ? (d = a(this), !1) : void 0
}), a.data(b.target, f.widgetName + "-item") === f && (d = a(b.target)), d && (!this.options.handle || c || (a(this.options.handle, d).find("*").addBack().each(function() {
this === b.target && (e = !0)
}), e)) ? (this.currentItem = d, this._removeCurrentsFromItems(), !0) : !1)
},
_mouseStart: function(b, c, d) {
var e, f, g = this.options;
if (this.currentContainer = this, this.refreshPositions(), this.helper = this._createHelper(b), this._cacheHelperProportions(), this._cacheMargins(), this.scrollParent = this.helper.scrollParent(), this.offset = this.currentItem.offset(), this.offset = {
top: this.offset.top - this.margins.top,
left: this.offset.left - this.margins.left
}, a.extend(this.offset, {
click: {
left: b.pageX - this.offset.left,
top: b.pageY - this.offset.top
},
parent: this._getParentOffset(),
relative: this._getRelativeOffset()
}), this.helper.css("position", "absolute"), this.cssPosition = this.helper.css("position"), this.originalPosition = this._generatePosition(b), this.originalPageX = b.pageX, this.originalPageY = b.pageY, g.cursorAt && this._adjustOffsetFromHelper(g.cursorAt), this.domPosition = {
prev: this.currentItem.prev()[0],
parent: this.currentItem.parent()[0]
}, this.helper[0] !== this.currentItem[0] && this.currentItem.hide(), this._createPlaceholder(), g.containment && this._setContainment(), g.cursor && "auto" !== g.cursor && (f = this.document.find("body"), this.storedCursor = f.css("cursor"), f.css("cursor", g.cursor), this.storedStylesheet = a("<style>*{ cursor: " + g.cursor + " !important; }</style>").appendTo(f)), g.opacity && (this.helper.css("opacity") && (this._storedOpacity = this.helper.css("opacity")), this.helper.css("opacity", g.opacity)), g.zIndex && (this.helper.css("zIndex") && (this._storedZIndex = this.helper.css("zIndex")), this.helper.css("zIndex", g.zIndex)), this.scrollParent[0] !== document && "HTML" !== this.scrollParent[0].tagName && (this.overflowOffset = this.scrollParent.offset()), this._trigger("start", b, this._uiHash()), this._preserveHelperProportions || this._cacheHelperProportions(), !d)
for (e = this.containers.length - 1; e >= 0; e--) this.containers[e]._trigger("activate", b, this._uiHash(this));
return a.ui.ddmanager && (a.ui.ddmanager.current = this), a.ui.ddmanager && !g.dropBehaviour && a.ui.ddmanager.prepareOffsets(this, b), this.dragging = !0, this.helper.addClass("ui-sortable-helper"), this._mouseDrag(b), !0
},
_mouseDrag: function(b) {
var c, d, e, f, g = this.options,
h = !1;
for (this.position = this._generatePosition(b), 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 - b.pageY < g.scrollSensitivity ? this.scrollParent[0].scrollTop = h = this.scrollParent[0].scrollTop + g.scrollSpeed : b.pageY - this.overflowOffset.top < g.scrollSensitivity && (this.scrollParent[0].scrollTop = h = this.scrollParent[0].scrollTop - g.scrollSpeed), this.overflowOffset.left + this.scrollParent[0].offsetWidth - b.pageX < g.scrollSensitivity ? this.scrollParent[0].scrollLeft = h = this.scrollParent[0].scrollLeft + g.scrollSpeed : b.pageX - this.overflowOffset.left < g.scrollSensitivity && (this.scrollParent[0].scrollLeft = h = this.scrollParent[0].scrollLeft - g.scrollSpeed)) : (b.pageY - a(document).scrollTop() < g.scrollSensitivity ? h = a(document).scrollTop(a(document).scrollTop() - g.scrollSpeed) : a(window).height() - (b.pageY - a(document).scrollTop()) < g.scrollSensitivity && (h = a(document).scrollTop(a(document).scrollTop() + g.scrollSpeed)), b.pageX - a(document).scrollLeft() < g.scrollSensitivity ? h = a(document).scrollLeft(a(document).scrollLeft() - g.scrollSpeed) : a(window).width() - (b.pageX - a(document).scrollLeft()) < g.scrollSensitivity && (h = a(document).scrollLeft(a(document).scrollLeft() + g.scrollSpeed))), h !== !1 && a.ui.ddmanager && !g.dropBehaviour && a.ui.ddmanager.prepareOffsets(this, b)), 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"), c = this.items.length - 1; c >= 0; c--)
if (d = this.items[c], e = d.item[0], f = this._intersectsWithPointer(d), f && d.instance === this.currentContainer && e !== this.currentItem[0] && this.placeholder[1 === f ? "next" : "prev"]()[0] !== e && !a.contains(this.placeholder[0], e) && ("semi-dynamic" === this.options.type ? !a.contains(this.element[0], e) : !0)) {
if (this.direction = 1 === f ? "down" : "up", "pointer" !== this.options.tolerance && !this._intersectsWithSides(d)) break;
this._rearrange(b, d), this._trigger("change", b, this._uiHash());
break
}
return this._contactContainers(b), a.ui.ddmanager && a.ui.ddmanager.drag(this, b), this._trigger("sort", b, this._uiHash()), this.lastPositionAbs = this.positionAbs, !1
},
_mouseStop: function(b, c) {
if (b) {
if (a.ui.ddmanager && !this.options.dropBehaviour && a.ui.ddmanager.drop(this, b), this.options.revert) {
var d = this,
e = this.placeholder.offset(),
f = this.options.axis,
g = {};
f && "x" !== f || (g.left = e.left - this.offset.parent.left - this.margins.left + (this.offsetParent[0] === document.body ? 0 : this.offsetParent[0].scrollLeft)), f && "y" !== f || (g.top = e.top - this.offset.parent.top - this.margins.top + (this.offsetParent[0] === document.body ? 0 : this.offsetParent[0].scrollTop)), this.reverting = !0, a(this.helper).animate(g, parseInt(this.options.revert, 10) || 500, function() {
d._clear(b)
})
} else this._clear(b, c);
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 b = this.containers.length - 1; b >= 0; b--) this.containers[b]._trigger("deactivate", null, this._uiHash(this)), this.containers[b].containerCache.over && (this.containers[b]._trigger("out", null, this._uiHash(this)), this.containers[b].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(), a.extend(this, {
helper: null,
dragging: !1,
reverting: !1,
_noFinalSort: null
}), this.domPosition.prev ? a(this.domPosition.prev).after(this.currentItem) : a(this.domPosition.parent).prepend(this.currentItem)), this
},
serialize: function(b) {
var c = this._getItemsAsjQuery(b && b.connected),
d = [];
return b = b || {}, a(c).each(function() {
var c = (a(b.item || this).attr(b.attribute || "id") || "").match(b.expression || /(.+)[\-=_](.+)/);
c && d.push((b.key || c[1] + "[]") + "=" + (b.key && b.expression ? c[1] : c[2]))
}), !d.length && b.key && d.push(b.key + "="), d.join("&")
},
toArray: function(b) {
var c = this._getItemsAsjQuery(b && b.connected),
d = [];
return b = b || {}, c.each(function() {
d.push(a(b.item || this).attr(b.attribute || "id") || "")
}), d
},
_intersectsWith: function(a) {
var b = this.positionAbs.left,
c = b + this.helperProportions.width,
d = this.positionAbs.top,
e = d + this.helperProportions.height,
f = a.left,
g = f + a.width,
h = a.top,
i = h + a.height,
j = this.offset.click.top,
k = this.offset.click.left,
l = "x" === this.options.axis || d + j > h && i > d + j,
m = "y" === this.options.axis || b + k > f && g > b + k,
n = l && m;
return "pointer" === this.options.tolerance || this.options.forcePointerForContainers || "pointer" !== this.options.tolerance && this.helperProportions[this.floating ? "width" : "height"] > a[this.floating ? "width" : "height"] ? n : f < b + this.helperProportions.width / 2 && c - this.helperProportions.width / 2 < g && h < d + this.helperProportions.height / 2 && e - this.helperProportions.height / 2 < i
},
_intersectsWithPointer: function(a) {
var b = "x" === this.options.axis || this._isOverAxis(this.positionAbs.top + this.offset.click.top, a.top, a.height),
c = "y" === this.options.axis || this._isOverAxis(this.positionAbs.left + this.offset.click.left, a.left, a.width),
d = b && c,
e = this._getDragVerticalDirection(),
f = this._getDragHorizontalDirection();
return d ? this.floating ? f && "right" === f || "down" === e ? 2 : 1 : e && ("down" === e ? 2 : 1) : !1
},
_intersectsWithSides: function(a) {
var b = this._isOverAxis(this.positionAbs.top + this.offset.click.top, a.top + a.height / 2, a.height),
c = this._isOverAxis(this.positionAbs.left + this.offset.click.left, a.left + a.width / 2, a.width),
d = this._getDragVerticalDirection(),
e = this._getDragHorizontalDirection();
return this.floating && e ? "right" === e && c || "left" === e && !c : d && ("down" === d && b || "up" === d && !b)
},
_getDragVerticalDirection: function() {
var a = this.positionAbs.top - this.lastPositionAbs.top;
return 0 !== a && (a > 0 ? "down" : "up")
},
_getDragHorizontalDirection: function() {
var a = this.positionAbs.left - this.lastPositionAbs.left;
return 0 !== a && (a > 0 ? "right" : "left")
},
refresh: function(a) {
return this._refreshItems(a), this._setHandleClassName(), this.refreshPositions(), this
},
_connectWith: function() {
var a = this.options;
return a.connectWith.constructor === String ? [a.connectWith] : a.connectWith
},
_getItemsAsjQuery: function(b) {
function c() {
h.push(this)
}
var d, e, f, g, h = [],
i = [],
j = this._connectWith();
if (j && b)
for (d = j.length - 1; d >= 0; d--)
for (f = a(j[d]), e = f.length - 1; e >= 0; e--) g = a.data(f[e], this.widgetFullName), g && g !== this && !g.options.disabled && i.push([a.isFunction(g.options.items) ? g.options.items.call(g.element) : a(g.options.items, g.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"), g]);
for (i.push([a.isFunction(this.options.items) ? this.options.items.call(this.element, null, {
options: this.options,
item: this.currentItem
}) : a(this.options.items, this.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"), this]), d = i.length - 1; d >= 0; d--) i[d][0].each(c);
return a(h)
},
_removeCurrentsFromItems: function() {
var b = this.currentItem.find(":data(" + this.widgetName + "-item)");
this.items = a.grep(this.items, function(a) {
for (var c = 0; c < b.length; c++)
if (b[c] === a.item[0]) return !1;
return !0
})
},
_refreshItems: function(b) {
this.items = [], this.containers = [this];
var c, d, e, f, g, h, i, j, k = this.items,
l = [
[a.isFunction(this.options.items) ? this.options.items.call(this.element[0], b, {
item: this.currentItem
}) : a(this.options.items, this.element), this]
],
m = this._connectWith();
if (m && this.ready)
for (c = m.length - 1; c >= 0; c--)
for (e = a(m[c]), d = e.length - 1; d >= 0; d--) f = a.data(e[d], this.widgetFullName), f && f !== this && !f.options.disabled && (l.push([a.isFunction(f.options.items) ? f.options.items.call(f.element[0], b, {
item: this.currentItem
}) : a(f.options.items, f.element), f]), this.containers.push(f));
for (c = l.length - 1; c >= 0; c--)
for (g = l[c][1], h = l[c][0], d = 0, j = h.length; j > d; d++) i = a(h[d]), i.data(this.widgetName + "-item", g), k.push({
item: i,
instance: g,
width: 0,
height: 0,
left: 0,
top: 0
})
},
refreshPositions: function(b) {
this.offsetParent && this.helper && (this.offset.parent = this._getParentOffset());
var c, d, e, f;
for (c = this.items.length - 1; c >= 0; c--) d = this.items[c], d.instance !== this.currentContainer && this.currentContainer && d.item[0] !== this.currentItem[0] || (e = this.options.toleranceElement ? a(this.options.toleranceElement, d.item) : d.item, b || (d.width = e.outerWidth(), d.height = e.outerHeight()), f = e.offset(), d.left = f.left, d.top = f.top);
if (this.options.custom && this.options.custom.refreshContainers) this.options.custom.refreshContainers.call(this);
else
for (c = this.containers.length - 1; c >= 0; c--) f = this.containers[c].element.offset(), this.containers[c].containerCache.left = f.left, this.containers[c].containerCache.top = f.top, this.containers[c].containerCache.width = this.containers[c].element.outerWidth(), this.containers[c].containerCache.height = this.containers[c].element.outerHeight();
return this
},
_createPlaceholder: function(b) {
b = b || this;
var c, d = b.options;
d.placeholder && d.placeholder.constructor !== String || (c = d.placeholder, d.placeholder = {
element: function() {
var d = b.currentItem[0].nodeName.toLowerCase(),
e = a("<" + d + ">", b.document[0]).addClass(c || b.currentItem[0].className + " ui-sortable-placeholder").removeClass("ui-sortable-helper");
return "tr" === d ? b.currentItem.children().each(function() {
a("<td> </td>", b.document[0]).attr("colspan", a(this).attr("colspan") || 1).appendTo(e)
}) : "img" === d && e.attr("src", b.currentItem.attr("src")), c || e.css("visibility", "hidden"), e
},
update: function(a, e) {
(!c || d.forcePlaceholderSize) && (e.height() || e.height(b.currentItem.innerHeight() - parseInt(b.currentItem.css("paddingTop") || 0, 10) - parseInt(b.currentItem.css("paddingBottom") || 0, 10)), e.width() || e.width(b.currentItem.innerWidth() - parseInt(b.currentItem.css("paddingLeft") || 0, 10) - parseInt(b.currentItem.css("paddingRight") || 0, 10)))
}
}), b.placeholder = a(d.placeholder.element.call(b.element, b.currentItem)), b.currentItem.after(b.placeholder), d.placeholder.update(b, b.placeholder)
},
_contactContainers: function(b) {
var c, d, e, f, g, h, i, j, k, l, m = null,
n = null;
for (c = this.containers.length - 1; c >= 0; c--)
if (!a.contains(this.currentItem[0], this.containers[c].element[0]))
if (this._intersectsWith(this.containers[c].containerCache)) {
if (m && a.contains(this.containers[c].element[0], m.element[0])) continue;
m = this.containers[c], n = c
} else this.containers[c].containerCache.over && (this.containers[c]._trigger("out", b, this._uiHash(this)), this.containers[c].containerCache.over = 0);
if (m)
if (1 === this.containers.length) this.containers[n].containerCache.over || (this.containers[n]._trigger("over", b, this._uiHash(this)), this.containers[n].containerCache.over = 1);
else {
for (e = 1e4, f = null, k = m.floating || this._isFloating(this.currentItem), g = k ? "left" : "top", h = k ? "width" : "height", l = k ? "clientX" : "clientY", d = this.items.length - 1; d >= 0; d--) a.contains(this.containers[n].element[0], this.items[d].item[0]) && this.items[d].item[0] !== this.currentItem[0] && (i = this.items[d].item.offset()[g], j = !1, b[l] - i > this.items[d][h] / 2 && (j = !0), Math.abs(b[l] - i) < e && (e = Math.abs(b[l] - i), f = this.items[d], this.direction = j ? "up" : "down"));
if (!f && !this.options.dropOnEmpty) return;
if (this.currentContainer === this.containers[n]) return void(this.currentContainer.containerCache.over || (this.containers[n]._trigger("over", b, this._uiHash()), this.currentContainer.containerCache.over = 1));
f ? this._rearrange(b, f, null, !0) : this._rearrange(b, null, this.containers[n].element, !0), this._trigger("change", b, this._uiHash()), this.containers[n]._trigger("change", b, this._uiHash(this)), this.currentContainer = this.containers[n], this.options.placeholder.update(this.currentContainer, this.placeholder), this.containers[n]._trigger("over", b, this._uiHash(this)), this.containers[n].containerCache.over = 1
}
},
_createHelper: function(b) {
var c = this.options,
d = a.isFunction(c.helper) ? a(c.helper.apply(this.element[0], [b, this.currentItem])) : "clone" === c.helper ? this.currentItem.clone() : this.currentItem;
return d.parents("body").length || a("parent" !== c.appendTo ? c.appendTo : this.currentItem[0].parentNode)[0].appendChild(d[0]), d[0] === this.currentItem[0] && (this._storedCSS = {
width: this.currentItem[0].style.width,
height: this.currentItem[0].style.height,
position: this.currentItem.css("position"),
top: this.currentItem.css("top"),
left: this.currentItem.css("left")
}), (!d[0].style.width || c.forceHelperSize) && d.width(this.currentItem.width()), (!d[0].style.height || c.forceHelperSize) && d.height(this.currentItem.height()), d
},
_adjustOffsetFromHelper: function(b) {
"string" == typeof b && (b = b.split(" ")), a.isArray(b) && (b = {
left: +b[0],
top: +b[1] || 0
}), "left" in b && (this.offset.click.left = b.left + this.margins.left), "right" in b && (this.offset.click.left = this.helperProportions.width - b.right + this.margins.left), "top" in b && (this.offset.click.top = b.top + this.margins.top), "bottom" in b && (this.offset.click.top = this.helperProportions.height - b.bottom + this.margins.top)
},
_getParentOffset: function() {
this.offsetParent = this.helper.offsetParent();
var b = this.offsetParent.offset();
return "absolute" === this.cssPosition && this.scrollParent[0] !== document && a.contains(this.scrollParent[0], this.offsetParent[0]) && (b.left += this.scrollParent.scrollLeft(), b.top += this.scrollParent.scrollTop()), (this.offsetParent[0] === document.body || this.offsetParent[0].tagName && "html" === this.offsetParent[0].tagName.toLowerCase() && a.ui.ie) && (b = {
top: 0,
left: 0
}), {
top: b.top + (parseInt(this.offsetParent.css("borderTopWidth"), 10) || 0),
left: b.left + (parseInt(this.offsetParent.css("borderLeftWidth"), 10) || 0)
}
},
_getRelativeOffset: function() {
if ("relative" === this.cssPosition) {
var a = this.currentItem.position();
return {
top: a.top - (parseInt(this.helper.css("top"), 10) || 0) + this.scrollParent.scrollTop(),
left: a.left - (parseInt(this.helper.css("left"), 10) || 0) + this.scrollParent.scrollLeft()
}
}
return {
top: 0,
left: 0
}
},
_cacheMargins: function() {
this.margins = {
left: parseInt(this.currentItem.css("marginLeft"), 10) || 0,
top: parseInt(this.currentItem.css("marginTop"), 10) || 0
}
},
_cacheHelperProportions: function() {
this.helperProportions = {
width: this.helper.outerWidth(),
height: this.helper.outerHeight()
}
},
_setContainment: function() {
var b, c, d, e = this.options;
"parent" === e.containment && (e.containment = this.helper[0].parentNode), ("document" === e.containment || "window" === e.containment) && (this.containment = [0 - this.offset.relative.left - this.offset.parent.left, 0 - this.offset.relative.top - this.offset.parent.top, a("document" === e.containment ? document : window).width() - this.helperProportions.width - this.margins.left, (a("document" === e.containment ? document : window).height() || document.body.parentNode.scrollHeight) - this.helperProportions.height - this.margins.top]), /^(document|window|parent)$/.test(e.containment) || (b = a(e.containment)[0], c = a(e.containment).offset(), d = "hidden" !== a(b).css("overflow"), this.containment = [c.left + (parseInt(a(b).css("borderLeftWidth"), 10) || 0) + (parseInt(a(b).css("paddingLeft"), 10) || 0) - this.margins.left, c.top + (parseInt(a(b).css("borderTopWidth"), 10) || 0) + (parseInt(a(b).css("paddingTop"), 10) || 0) - this.margins.top, c.left + (d ? Math.max(b.scrollWidth, b.offsetWidth) : b.offsetWidth) - (parseInt(a(b).css("borderLeftWidth"), 10) || 0) - (parseInt(a(b).css("paddingRight"), 10) || 0) - this.helperProportions.width - this.margins.left, c.top + (d ? Math.max(b.scrollHeight, b.offsetHeight) : b.offsetHeight) - (parseInt(a(b).css("borderTopWidth"), 10) || 0) - (parseInt(a(b).css("paddingBottom"), 10) || 0) - this.helperProportions.height - this.margins.top])
},
_convertPositionTo: function(b, c) {
c || (c = this.position);
var d = "absolute" === b ? 1 : -1,
e = "absolute" !== this.cssPosition || this.scrollParent[0] !== document && a.contains(this.scrollParent[0], this.offsetParent[0]) ? this.scrollParent : this.offsetParent,
f = /(html|body)/i.test(e[0].tagName);
return {
top: c.top + this.offset.relative.top * d + this.offset.parent.top * d - ("fixed" === this.cssPosition ? -this.scrollParent.scrollTop() : f ? 0 : e.scrollTop()) * d,
left: c.left + this.offset.relative.left * d + this.offset.parent.left * d - ("fixed" === this.cssPosition ? -this.scrollParent.scrollLeft() : f ? 0 : e.scrollLeft()) * d
}
},
_generatePosition: function(b) {
var c, d, e = this.options,
f = b.pageX,
g = b.pageY,
h = "absolute" !== this.cssPosition || this.scrollParent[0] !== document && a.contains(this.scrollParent[0], this.offsetParent[0]) ? this.scrollParent : this.offsetParent,
i = /(html|body)/i.test(h[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 && (b.pageX - this.offset.click.left < this.containment[0] && (f = this.containment[0] + this.offset.click.left), b.pageY - this.offset.click.top < this.containment[1] && (g = this.containment[1] + this.offset.click.top), b.pageX - this.offset.click.left > this.containment[2] && (f = this.containment[2] + this.offset.click.left), b.pageY - this.offset.click.top > this.containment[3] && (g = this.containment[3] + this.offset.click.top)), e.grid && (c = this.originalPageY + Math.round((g - this.originalPageY) / e.grid[1]) * e.grid[1], g = this.containment ? c - this.offset.click.top >= this.containment[1] && c - this.offset.click.top <= this.containment[3] ? c : c - this.offset.click.top >= this.containment[1] ? c - e.grid[1] : c + e.grid[1] : c, d = this.originalPageX + Math.round((f - this.originalPageX) / e.grid[0]) * e.grid[0], f = this.containment ? d - this.offset.click.left >= this.containment[0] && d - this.offset.click.left <= this.containment[2] ? d : d - this.offset.click.left >= this.containment[0] ? d - e.grid[0] : d + e.grid[0] : d)), {
top: g - this.offset.click.top - this.offset.relative.top - this.offset.parent.top + ("fixed" === this.cssPosition ? -this.scrollParent.scrollTop() : i ? 0 : h.scrollTop()),
left: f - this.offset.click.left - this.offset.relative.left - this.offset.parent.left + ("fixed" === this.cssPosition ? -this.scrollParent.scrollLeft() : i ? 0 : h.scrollLeft())
}
},
_rearrange: function(a, b, c, d) {
c ? c[0].appendChild(this.placeholder[0]) : b.item[0].parentNode.insertBefore(this.placeholder[0], "down" === this.direction ? b.item[0] : b.item[0].nextSibling), this.counter = this.counter ? ++this.counter : 1;
var e = this.counter;
this._delay(function() {
e === this.counter && this.refreshPositions(!d)
})
},
_clear: function(a, b) {
function c(a, b, c) {
return function(d) {
c._trigger(a, d, b._uiHash(b))
}
}
this.reverting = !1;
var d, e = [];
if (!this._noFinalSort && this.currentItem.parent().length && this.placeholder.before(this.currentItem), this._noFinalSort = null, this.helper[0] === this.currentItem[0]) {
for (d in this._storedCSS)("auto" === this._storedCSS[d] || "static" === this._storedCSS[d]) && (this._storedCSS[d] = "");
this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper")
} else this.currentItem.show();
for (this.fromOutside && !b && e.push(function(a) {
this._trigger("receive", a, this._uiHash(this.fromOutside))
}), !this.fromOutside && this.domPosition.prev === this.currentItem.prev().not(".ui-sortable-helper")[0] && this.domPosition.parent === this.currentItem.parent()[0] || b || e.push(function(a) {
this._trigger("update", a, this._uiHash())
}), this !== this.currentContainer && (b || (e.push(function(a) {
this._trigger("remove", a, this._uiHash())
}), e.push(function(a) {
return function(b) {
a._trigger("receive", b, this._uiHash(this))
}
}.call(this, this.currentContainer)), e.push(function(a) {
return function(b) {
a._trigger("update", b, this._uiHash(this))
}
}.call(this, this.currentContainer)))), d = this.containers.length - 1; d >= 0; d--) b || e.push(c("deactivate", this, this.containers[d])), this.containers[d].containerCache.over && (e.push(c("out", this, this.containers[d])), this.containers[d].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, b || this._trigger("beforeStop", a, this._uiHash()), this.placeholder[0].parentNode.removeChild(this.placeholder[0]), this.cancelHelperRemoval || (this.helper[0] !== this.currentItem[0] && this.helper.remove(), this.helper = null), !b) {
for (d = 0; d < e.length; d++) e[d].call(this, a);
this._trigger("stop", a, this._uiHash())
}
return this.fromOutside = !1, !this.cancelHelperRemoval
},
_trigger: function() {
a.Widget.prototype._trigger.apply(this, arguments) === !1 && this.cancel()
},
_uiHash: function(b) {
var c = b || this;
return {
helper: c.helper,
placeholder: c.placeholder || a([]),
position: c.position,
originalPosition: c.originalPosition,
offset: c.positionAbs,
item: c.currentItem,
sender: b ? b.element : null
}
}
})
});
/*!
* jQuery UI Draggable 1.11.2
* http://jqueryui.com
*
* Copyright 2014 jQuery Foundation and other contributors
* Released under the MIT license.
* http://jquery.org/license
*
* http://api.jqueryui.com/draggable/
*/
! function(a) {
"function" == typeof define && define.amd ? define(["jquery", "./core", "./mouse", "./widget"], a) : a(jQuery)
}(function(a) {
return a.widget("ui.draggable", a.ui.mouse, {
version: "1.11.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 && this._setPositionRelative(), this.options.addClasses && this.element.addClass("ui-draggable"), this.options.disabled && this.element.addClass("ui-draggable-disabled"), this._setHandleClassName(), this._mouseInit()
},
_setOption: function(a, b) {
this._super(a, b), "handle" === a && (this._removeHandleClassName(), this._setHandleClassName())
},
_destroy: function() {
return (this.helper || this.element).is(".ui-draggable-dragging") ? void(this.destroyOnClear = !0) : (this.element.removeClass("ui-draggable ui-draggable-dragging ui-draggable-disabled"), this._removeHandleClassName(), void this._mouseDestroy())
},
_mouseCapture: function(b) {
var c = this.options;
return this._blurActiveElement(b), this.helper || c.disabled || a(b.target).closest(".ui-resizable-handle").length > 0 ? !1 : (this.handle = this._getHandle(b), this.handle ? (this._blockFrames(c.iframeFix === !0 ? "iframe" : c.iframeFix), !0) : !1)
},
_blockFrames: function(b) {
this.iframeBlocks = this.document.find(b).map(function() {
var b = a(this);
return a("<div>").css("position", "absolute").appendTo(b.parent()).outerWidth(b.outerWidth()).outerHeight(b.outerHeight()).offset(b.offset())[0]
})
},
_unblockFrames: function() {
this.iframeBlocks && (this.iframeBlocks.remove(), delete this.iframeBlocks)
},
_blurActiveElement: function(b) {
var c = this.document[0];
if (this.handleElement.is(b.target)) try {
c.activeElement && "body" !== c.activeElement.nodeName.toLowerCase() && a(c.activeElement).blur()
} catch (d) {}
},
_mouseStart: function(b) {
var c = this.options;
return this.helper = this._createHelper(b), this.helper.addClass("ui-draggable-dragging"), this._cacheHelperProportions(), a.ui.ddmanager && (a.ui.ddmanager.current = this), this._cacheMargins(), this.cssPosition = this.helper.css("position"), this.scrollParent = this.helper.scrollParent(!0), this.offsetParent = this.helper.offsetParent(), this.hasFixedAncestor = this.helper.parents().filter(function() {
return "fixed" === a(this).css("position")
}).length > 0, this.positionAbs = this.element.offset(), this._refreshOffsets(b), this.originalPosition = this.position = this._generatePosition(b, !1), this.originalPageX = b.pageX, this.originalPageY = b.pageY, c.cursorAt && this._adjustOffsetFromHelper(c.cursorAt), this._setContainment(), this._trigger("start", b) === !1 ? (this._clear(), !1) : (this._cacheHelperProportions(), a.ui.ddmanager && !c.dropBehaviour && a.ui.ddmanager.prepareOffsets(this, b), this._normalizeRightBottom(), this._mouseDrag(b, !0), a.ui.ddmanager && a.ui.ddmanager.dragStart(this, b), !0)
},
_refreshOffsets: function(a) {
this.offset = {
top: this.positionAbs.top - this.margins.top,
left: this.positionAbs.left - this.margins.left,
scroll: !1,
parent: this._getParentOffset(),
relative: this._getRelativeOffset()
}, this.offset.click = {
left: a.pageX - this.offset.left,
top: a.pageY - this.offset.top
}
},
_mouseDrag: function(b, c) {
if (this.hasFixedAncestor && (this.offset.parent = this._getParentOffset()), this.position = this._generatePosition(b, !0), this.positionAbs = this._convertPositionTo("absolute"), !c) {
var d = this._uiHash();
if (this._trigger("drag", b, d) === !1) return this._mouseUp({}), !1;
this.position = d.position
}
return this.helper[0].style.left = this.position.left + "px", this.helper[0].style.top = this.position.top + "px", a.ui.ddmanager && a.ui.ddmanager.drag(this, b), !1
},
_mouseStop: function(b) {
var c = this,
d = !1;
return a.ui.ddmanager && !this.options.dropBehaviour && (d = a.ui.ddmanager.drop(this, b)), this.dropped && (d = this.dropped, this.dropped = !1), "invalid" === this.options.revert && !d || "valid" === this.options.revert && d || this.options.revert === !0 || a.isFunction(this.options.revert) && this.options.revert.call(this.element, d) ? a(this.helper).animate(this.originalPosition, parseInt(this.options.revertDuration, 10), function() {
c._trigger("stop", b) !== !1 && c._clear()
}) : this._trigger("stop", b) !== !1 && this._clear(), !1
},
_mouseUp: function(b) {
return this._unblockFrames(), a.ui.ddmanager && a.ui.ddmanager.dragStop(this, b), this.handleElement.is(b.target) && this.element.focus(), a.ui.mouse.prototype._mouseUp.call(this, b)
},
cancel: function() {
return this.helper.is(".ui-draggable-dragging") ? this._mouseUp({}) : this._clear(), this
},
_getHandle: function(b) {
return this.options.handle ? !!a(b.target).closest(this.element.find(this.options.handle)).length : !0
},
_setHandleClassName: function() {
this.handleElement = this.options.handle ? this.element.find(this.options.handle) : this.element, this.handleElement.addClass("ui-draggable-handle")
},
_removeHandleClassName: function() {
this.handleElement.removeClass("ui-draggable-handle")
},
_createHelper: function(b) {
var c = this.options,
d = a.isFunction(c.helper),
e = d ? a(c.helper.apply(this.element[0], [b])) : "clone" === c.helper ? this.element.clone().removeAttr("id") : this.element;
return e.parents("body").length || e.appendTo("parent" === c.appendTo ? this.element[0].parentNode : c.appendTo), d && e[0] === this.element[0] && this._setPositionRelative(), e[0] === this.element[0] || /(fixed|absolute)/.test(e.css("position")) || e.css("position", "absolute"), e
},
_setPositionRelative: function() {
/^(?:r|a|f)/.test(this.element.css("position")) || (this.element[0].style.position = "relative")
},
_adjustOffsetFromHelper: function(b) {
"string" == typeof b && (b = b.split(" ")), a.isArray(b) && (b = {
left: +b[0],
top: +b[1] || 0
}), "left" in b && (this.offset.click.left = b.left + this.margins.left), "right" in b && (this.offset.click.left = this.helperProportions.width - b.right + this.margins.left), "top" in b && (this.offset.click.top = b.top + this.margins.top), "bottom" in b && (this.offset.click.top = this.helperProportions.height - b.bottom + this.margins.top)
},
_isRootNode: function(a) {
return /(html|body)/i.test(a.tagName) || a === this.document[0]
},
_getParentOffset: function() {
var b = this.offsetParent.offset(),
c = this.document[0];
return "absolute" === this.cssPosition && this.scrollParent[0] !== c && a.contains(this.scrollParent[0], this.offsetParent[0]) && (b.left += this.scrollParent.scrollLeft(), b.top += this.scrollParent.scrollTop()), this._isRootNode(this.offsetParent[0]) && (b = {
top: 0,
left: 0
}), {
top: b.top + (parseInt(this.offsetParent.css("borderTopWidth"), 10) || 0),
left: b.left + (parseInt(this.offsetParent.css("borderLeftWidth"), 10) || 0)
}
},
_getRelativeOffset: function() {
if ("relative" !== this.cssPosition) return {
top: 0,
left: 0
};
var a = this.element.position(),
b = this._isRootNode(this.scrollParent[0]);
return {
top: a.top - (parseInt(this.helper.css("top"), 10) || 0) + (b ? 0 : this.scrollParent.scrollTop()),
left: a.left - (parseInt(this.helper.css("left"), 10) || 0) + (b ? 0 : this.scrollParent.scrollLeft())
}
},
_cacheMargins: function() {
this.margins = {
left: parseInt(this.element.css("marginLeft"), 10) || 0,
top: parseInt(this.element.css("marginTop"), 10) || 0,
right: parseInt(this.element.css("marginRight"), 10) || 0,
bottom: parseInt(this.element.css("marginBottom"), 10) || 0
}
},
_cacheHelperProportions: function() {
this.helperProportions = {
width: this.helper.outerWidth(),
height: this.helper.outerHeight()
}
},
_setContainment: function() {
var b, c, d, e = this.options,
f = this.document[0];
return this.relativeContainer = null, e.containment ? "window" === e.containment ? void(this.containment = [a(window).scrollLeft() - this.offset.relative.left - this.offset.parent.left, a(window).scrollTop() - this.offset.relative.top - this.offset.parent.top, a(window).scrollLeft() + a(window).width() - this.helperProportions.width - this.margins.left, a(window).scrollTop() + (a(window).height() || f.body.parentNode.scrollHeight) - this.helperProportions.height - this.margins.top]) : "document" === e.containment ? void(this.containment = [0, 0, a(f).width() - this.helperProportions.width - this.margins.left, (a(f).height() || f.body.parentNode.scrollHeight) - this.helperProportions.height - this.margins.top]) : e.containment.constructor === Array ? void(this.containment = e.containment) : ("parent" === e.containment && (e.containment = this.helper[0].parentNode), c = a(e.containment), d = c[0], void(d && (b = /(scroll|auto)/.test(c.css("overflow")), this.containment = [(parseInt(c.css("borderLeftWidth"), 10) || 0) + (parseInt(c.css("paddingLeft"), 10) || 0), (parseInt(c.css("borderTopWidth"), 10) || 0) + (parseInt(c.css("paddingTop"), 10) || 0), (b ? Math.max(d.scrollWidth, d.offsetWidth) : d.offsetWidth) - (parseInt(c.css("borderRightWidth"), 10) || 0) - (parseInt(c.css("paddingRight"), 10) || 0) - this.helperProportions.width - this.margins.left - this.margins.right, (b ? Math.max(d.scrollHeight, d.offsetHeight) : d.offsetHeight) - (parseInt(c.css("borderBottomWidth"), 10) || 0) - (parseInt(c.css("paddingBottom"), 10) || 0) - this.helperProportions.height - this.margins.top - this.margins.bottom], this.relativeContainer = c))) : void(this.containment = null)
},
_convertPositionTo: function(a, b) {
b || (b = this.position);
var c = "absolute" === a ? 1 : -1,
d = this._isRootNode(this.scrollParent[0]);
return {
top: b.top + this.offset.relative.top * c + this.offset.parent.top * c - ("fixed" === this.cssPosition ? -this.offset.scroll.top : d ? 0 : this.offset.scroll.top) * c,
left: b.left + this.offset.relative.left * c + this.offset.parent.left * c - ("fixed" === this.cssPosition ? -this.offset.scroll.left : d ? 0 : this.offset.scroll.left) * c
}
},
_generatePosition: function(a, b) {
var c, d, e, f, g = this.options,
h = this._isRootNode(this.scrollParent[0]),
i = a.pageX,
j = a.pageY;
return h && this.offset.scroll || (this.offset.scroll = {
top: this.scrollParent.scrollTop(),
left: this.scrollParent.scrollLeft()
}), b && (this.containment && (this.relativeContainer ? (d = this.relativeContainer.offset(), c = [this.containment[0] + d.left, this.containment[1] + d.top, this.containment[2] + d.left, this.containment[3] + d.top]) : c = this.containment, a.pageX - this.offset.click.left < c[0] && (i = c[0] + this.offset.click.left), a.pageY - this.offset.click.top < c[1] && (j = c[1] + this.offset.click.top), a.pageX - this.offset.click.left > c[2] && (i = c[2] + this.offset.click.left), a.pageY - this.offset.click.top > c[3] && (j = c[3] + this.offset.click.top)), g.grid && (e = g.grid[1] ? this.originalPageY + Math.round((j - this.originalPageY) / g.grid[1]) * g.grid[1] : this.originalPageY, j = c ? e - this.offset.click.top >= c[1] || e - this.offset.click.top > c[3] ? e : e - this.offset.click.top >= c[1] ? e - g.grid[1] : e + g.grid[1] : e, f = g.grid[0] ? this.originalPageX + Math.round((i - this.originalPageX) / g.grid[0]) * g.grid[0] : this.originalPageX, i = c ? f - this.offset.click.left >= c[0] || f - this.offset.click.left > c[2] ? f : f - this.offset.click.left >= c[0] ? f - g.grid[0] : f + g.grid[0] : f), "y" === g.axis && (i = this.originalPageX), "x" === g.axis && (j = this.originalPageY)), {
top: j - this.offset.click.top - this.offset.relative.top - this.offset.parent.top + ("fixed" === this.cssPosition ? -this.offset.scroll.top : h ? 0 : this.offset.scroll.top),
left: i - this.offset.click.left - this.offset.relative.left - this.offset.parent.left + ("fixed" === this.cssPosition ? -this.offset.scroll.left : h ? 0 : this.offset.scroll.left)
}
},
_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, this.destroyOnClear && this.destroy()
},
_normalizeRightBottom: function() {
"y" !== this.options.axis && "auto" !== this.helper.css("right") && (this.helper.width(this.helper.width()), this.helper.css("right", "auto")), "x" !== this.options.axis && "auto" !== this.helper.css("bottom") && (this.helper.height(this.helper.height()), this.helper.css("bottom", "auto"))
},
_trigger: function(b, c, d) {
return d = d || this._uiHash(), a.ui.plugin.call(this, b, [c, d, this], !0), /^(drag|start|stop)/.test(b) && (this.positionAbs = this._convertPositionTo("absolute"), d.offset = this.positionAbs), a.Widget.prototype._trigger.call(this, b, c, d)
},
plugins: {},
_uiHash: function() {
return {
helper: this.helper,
position: this.position,
originalPosition: this.originalPosition,
offset: this.positionAbs
}
}
}), a.ui.plugin.add("draggable", "connectToSortable", {
start: function(b, c, d) {
var e = a.extend({}, c, {
item: d.element
});
d.sortables = [], a(d.options.connectToSortable).each(function() {
var c = a(this).sortable("instance");
c && !c.options.disabled && (d.sortables.push(c), c.refreshPositions(), c._trigger("activate", b, e))
})
},
stop: function(b, c, d) {
var e = a.extend({}, c, {
item: d.element
});
d.cancelHelperRemoval = !1, a.each(d.sortables, function() {
var a = this;
a.isOver ? (a.isOver = 0, d.cancelHelperRemoval = !0, a.cancelHelperRemoval = !1, a._storedCSS = {
position: a.placeholder.css("position"),
top: a.placeholder.css("top"),
left: a.placeholder.css("left")
}, a._mouseStop(b), a.options.helper = a.options._helper) : (a.cancelHelperRemoval = !0, a._trigger("deactivate", b, e))
})
},
drag: function(b, c, d) {
a.each(d.sortables, function() {
var e = !1,
f = this;
f.positionAbs = d.positionAbs, f.helperProportions = d.helperProportions, f.offset.click = d.offset.click, f._intersectsWith(f.containerCache) && (e = !0, a.each(d.sortables, function() {
return this.positionAbs = d.positionAbs, this.helperProportions = d.helperProportions, this.offset.click = d.offset.click, this !== f && this._intersectsWith(this.containerCache) && a.contains(f.element[0], this.element[0]) && (e = !1), e
})), e ? (f.isOver || (f.isOver = 1, f.currentItem = c.helper.appendTo(f.element).data("ui-sortable-item", !0), f.options._helper = f.options.helper, f.options.helper = function() {
return c.helper[0]
}, b.target = f.currentItem[0], f._mouseCapture(b, !0), f._mouseStart(b, !0, !0), f.offset.click.top = d.offset.click.top, f.offset.click.left = d.offset.click.left, f.offset.parent.left -= d.offset.parent.left - f.offset.parent.left, f.offset.parent.top -= d.offset.parent.top - f.offset.parent.top, d._trigger("toSortable", b), d.dropped = f.element, a.each(d.sortables, function() {
this.refreshPositions()
}), d.currentItem = d.element, f.fromOutside = d), f.currentItem && (f._mouseDrag(b), c.position = f.position)) : f.isOver && (f.isOver = 0, f.cancelHelperRemoval = !0, f.options._revert = f.options.revert, f.options.revert = !1, f._trigger("out", b, f._uiHash(f)), f._mouseStop(b, !0), f.options.revert = f.options._revert, f.options.helper = f.options._helper, f.placeholder && f.placeholder.remove(), d._refreshOffsets(b), c.position = d._generatePosition(b, !0), d._trigger("fromSortable", b), d.dropped = !1, a.each(d.sortables, function() {
this.refreshPositions()
}))
})
}
}), a.ui.plugin.add("draggable", "cursor", {
start: function(b, c, d) {
var e = a("body"),
f = d.options;
e.css("cursor") && (f._cursor = e.css("cursor")), e.css("cursor", f.cursor)
},
stop: function(b, c, d) {
var e = d.options;
e._cursor && a("body").css("cursor", e._cursor)
}
}), a.ui.plugin.add("draggable", "opacity", {
start: function(b, c, d) {
var e = a(c.helper),
f = d.options;
e.css("opacity") && (f._opacity = e.css("opacity")), e.css("opacity", f.opacity)
},
stop: function(b, c, d) {
var e = d.options;
e._opacity && a(c.helper).css("opacity", e._opacity)
}
}), a.ui.plugin.add("draggable", "scroll", {
start: function(a, b, c) {
c.scrollParentNotHidden || (c.scrollParentNotHidden = c.helper.scrollParent(!1)), c.scrollParentNotHidden[0] !== c.document[0] && "HTML" !== c.scrollParentNotHidden[0].tagName && (c.overflowOffset = c.scrollParentNotHidden.offset())
},
drag: function(b, c, d) {
var e = d.options,
f = !1,
g = d.scrollParentNotHidden[0],
h = d.document[0];
g !== h && "HTML" !== g.tagName ? (e.axis && "x" === e.axis || (d.overflowOffset.top + g.offsetHeight - b.pageY < e.scrollSensitivity ? g.scrollTop = f = g.scrollTop + e.scrollSpeed : b.pageY - d.overflowOffset.top < e.scrollSensitivity && (g.scrollTop = f = g.scrollTop - e.scrollSpeed)), e.axis && "y" === e.axis || (d.overflowOffset.left + g.offsetWidth - b.pageX < e.scrollSensitivity ? g.scrollLeft = f = g.scrollLeft + e.scrollSpeed : b.pageX - d.overflowOffset.left < e.scrollSensitivity && (g.scrollLeft = f = g.scrollLeft - e.scrollSpeed))) : (e.axis && "x" === e.axis || (b.pageY - a(h).scrollTop() < e.scrollSensitivity ? f = a(h).scrollTop(a(h).scrollTop() - e.scrollSpeed) : a(window).height() - (b.pageY - a(h).scrollTop()) < e.scrollSensitivity && (f = a(h).scrollTop(a(h).scrollTop() + e.scrollSpeed))), e.axis && "y" === e.axis || (b.pageX - a(h).scrollLeft() < e.scrollSensitivity ? f = a(h).scrollLeft(a(h).scrollLeft() - e.scrollSpeed) : a(window).width() - (b.pageX - a(h).scrollLeft()) < e.scrollSensitivity && (f = a(h).scrollLeft(a(h).scrollLeft() + e.scrollSpeed)))), f !== !1 && a.ui.ddmanager && !e.dropBehaviour && a.ui.ddmanager.prepareOffsets(d, b)
}
}), a.ui.plugin.add("draggable", "snap", {
start: function(b, c, d) {
var e = d.options;
d.snapElements = [], a(e.snap.constructor !== String ? e.snap.items || ":data(ui-draggable)" : e.snap).each(function() {
var b = a(this),
c = b.offset();
this !== d.element[0] && d.snapElements.push({
item: this,
width: b.outerWidth(),
height: b.outerHeight(),
top: c.top,
left: c.left
})
})
},
drag: function(b, c, d) {
var e, f, g, h, i, j, k, l, m, n, o = d.options,
p = o.snapTolerance,
q = c.offset.left,
r = q + d.helperProportions.width,
s = c.offset.top,
t = s + d.helperProportions.height;
for (m = d.snapElements.length - 1; m >= 0; m--) i = d.snapElements[m].left - d.margins.left, j = i + d.snapElements[m].width, k = d.snapElements[m].top - d.margins.top, l = k + d.snapElements[m].height, i - p > r || q > j + p || k - p > t || s > l + p || !a.contains(d.snapElements[m].item.ownerDocument, d.snapElements[m].item) ? (d.snapElements[m].snapping && d.options.snap.release && d.options.snap.release.call(d.element, b, a.extend(d._uiHash(), {
snapItem: d.snapElements[m].item
})), d.snapElements[m].snapping = !1) : ("inner" !== o.snapMode && (e = Math.abs(k - t) <= p, f = Math.abs(l - s) <= p, g = Math.abs(i - r) <= p, h = Math.abs(j - q) <= p, e && (c.position.top = d._convertPositionTo("relative", {
top: k - d.helperProportions.height,
left: 0
}).top), f && (c.position.top = d._convertPositionTo("relative", {
top: l,
left: 0
}).top), g && (c.position.left = d._convertPositionTo("relative", {
top: 0,
left: i - d.helperProportions.width
}).left), h && (c.position.left = d._convertPositionTo("relative", {
top: 0,
left: j
}).left)), n = e || f || g || h, "outer" !== o.snapMode && (e = Math.abs(k - s) <= p, f = Math.abs(l - t) <= p, g = Math.abs(i - q) <= p, h = Math.abs(j - r) <= p, e && (c.position.top = d._convertPositionTo("relative", {
top: k,
left: 0
}).top), f && (c.position.top = d._convertPositionTo("relative", {
top: l - d.helperProportions.height,
left: 0
}).top), g && (c.position.left = d._convertPositionTo("relative", {
top: 0,
left: i
}).left), h && (c.position.left = d._convertPositionTo("relative", {
top: 0,
left: j - d.helperProportions.width
}).left)), !d.snapElements[m].snapping && (e || f || g || h || n) && d.options.snap.snap && d.options.snap.snap.call(d.element, b, a.extend(d._uiHash(), {
snapItem: d.snapElements[m].item
})), d.snapElements[m].snapping = e || f || g || h || n)
}
}), a.ui.plugin.add("draggable", "stack", {
start: function(b, c, d) {
var e, f = d.options,
g = a.makeArray(a(f.stack)).sort(function(b, c) {
return (parseInt(a(b).css("zIndex"), 10) || 0) - (parseInt(a(c).css("zIndex"), 10) || 0)
});
g.length && (e = parseInt(a(g[0]).css("zIndex"), 10) || 0, a(g).each(function(b) {
a(this).css("zIndex", e + b)
}), this.css("zIndex", e + g.length))
}
}), a.ui.plugin.add("draggable", "zIndex", {
start: function(b, c, d) {
var e = a(c.helper),
f = d.options;
e.css("zIndex") && (f._zIndex = e.css("zIndex")), e.css("zIndex", f.zIndex)
},
stop: function(b, c, d) {
var e = d.options;
e._zIndex && a(c.helper).css("zIndex", e._zIndex)
}
}), a.ui.draggable
});
/*!
* jQuery UI Droppable 1.11.2
* http://jqueryui.com
*
* Copyright 2014 jQuery Foundation and other contributors
* Released under the MIT license.
* http://jquery.org/license
*
* http://api.jqueryui.com/droppable/
*/
! function(a) {
"function" == typeof define && define.amd ? define(["jquery", "./core", "./widget", "./mouse", "./draggable"], a) : a(jQuery)
}(function(a) {
return a.widget("ui.droppable", {
version: "1.11.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 b, c = this.options,
d = c.accept;
this.isover = !1, this.isout = !0, this.accept = a.isFunction(d) ? d : function(a) {
return a.is(d)
}, this.proportions = function() {
return arguments.length ? void(b = arguments[0]) : b ? b : b = {
width: this.element[0].offsetWidth,
height: this.element[0].offsetHeight
}
}, this._addToManager(c.scope), c.addClasses && this.element.addClass("ui-droppable")
},
_addToManager: function(b) {
a.ui.ddmanager.droppables[b] = a.ui.ddmanager.droppables[b] || [], a.ui.ddmanager.droppables[b].push(this)
},
_splice: function(a) {
for (var b = 0; b < a.length; b++) a[b] === this && a.splice(b, 1)
},
_destroy: function() {
var b = a.ui.ddmanager.droppables[this.options.scope];
this._splice(b), this.element.removeClass("ui-droppable ui-droppable-disabled")
},
_setOption: function(b, c) {
if ("accept" === b) this.accept = a.isFunction(c) ? c : function(a) {
return a.is(c)
};
else if ("scope" === b) {
var d = a.ui.ddmanager.droppables[this.options.scope];
this._splice(d), this._addToManager(c)
}
this._super(b, c)
},
_activate: function(b) {
var c = a.ui.ddmanager.current;
this.options.activeClass && this.element.addClass(this.options.activeClass), c && this._trigger("activate", b, this.ui(c))
},
_deactivate: function(b) {
var c = a.ui.ddmanager.current;
this.options.activeClass && this.element.removeClass(this.options.activeClass), c && this._trigger("deactivate", b, this.ui(c))
},
_over: function(b) {
var c = a.ui.ddmanager.current;
c && (c.currentItem || c.element)[0] !== this.element[0] && this.accept.call(this.element[0], c.currentItem || c.element) && (this.options.hoverClass && this.element.addClass(this.options.hoverClass), this._trigger("over", b, this.ui(c)))
},
_out: function(b) {
var c = a.ui.ddmanager.current;
c && (c.currentItem || c.element)[0] !== this.element[0] && this.accept.call(this.element[0], c.currentItem || c.element) && (this.options.hoverClass && this.element.removeClass(this.options.hoverClass), this._trigger("out", b, this.ui(c)))
},
_drop: function(b, c) {
var d = c || a.ui.ddmanager.current,
e = !1;
return d && (d.currentItem || d.element)[0] !== this.element[0] ? (this.element.find(":data(ui-droppable)").not(".ui-draggable-dragging").each(function() {
var c = a(this).droppable("instance");
return c.options.greedy && !c.options.disabled && c.options.scope === d.options.scope && c.accept.call(c.element[0], d.currentItem || d.element) && a.ui.intersect(d, a.extend(c, {
offset: c.element.offset()
}), c.options.tolerance, b) ? (e = !0, !1) : void 0
}), e ? !1 : this.accept.call(this.element[0], d.currentItem || d.element) ? (this.options.activeClass && this.element.removeClass(this.options.activeClass), this.options.hoverClass && this.element.removeClass(this.options.hoverClass), this._trigger("drop", b, this.ui(d)), this.element) : !1) : !1
},
ui: function(a) {
return {
draggable: a.currentItem || a.element,
helper: a.helper,
position: a.position,
offset: a.positionAbs
}
}
}), a.ui.intersect = function() {
function a(a, b, c) {
return a >= b && b + c > a
}
return function(b, c, d, e) {
if (!c.offset) return !1;
var f = (b.positionAbs || b.position.absolute).left + b.margins.left,
g = (b.positionAbs || b.position.absolute).top + b.margins.top,
h = f + b.helperProportions.width,
i = g + b.helperProportions.height,
j = c.offset.left,
k = c.offset.top,
l = j + c.proportions().width,
m = k + c.proportions().height;
switch (d) {
case "fit":
return f >= j && l >= h && g >= k && m >= i;
case "intersect":
return j < f + b.helperProportions.width / 2 && h - b.helperProportions.width / 2 < l && k < g + b.helperProportions.height / 2 && i - b.helperProportions.height / 2 < m;
case "pointer":
return a(e.pageY, k, c.proportions().height) && a(e.pageX, j, c.proportions().width);
case "touch":
return (g >= k && m >= g || i >= k && m >= i || k > g && i > m) && (f >= j && l >= f || h >= j && l >= h || j > f && h > l);
default:
return !1
}
}
}(), a.ui.ddmanager = {
current: null,
droppables: {
"default": []
},
prepareOffsets: function(b, c) {
var d, e, f = a.ui.ddmanager.droppables[b.options.scope] || [],
g = c ? c.type : null,
h = (b.currentItem || b.element).find(":data(ui-droppable)").addBack();
a: for (d = 0; d < f.length; d++)
if (!(f[d].options.disabled || b && !f[d].accept.call(f[d].element[0], b.currentItem || b.element))) {
for (e = 0; e < h.length; e++)
if (h[e] === f[d].element[0]) {
f[d].proportions().height = 0;
continue a
}
f[d].visible = "none" !== f[d].element.css("display"), f[d].visible && ("mousedown" === g && f[d]._activate.call(f[d], c), f[d].offset = f[d].element.offset(), f[d].proportions({
width: f[d].element[0].offsetWidth,
height: f[d].element[0].offsetHeight
}))
}
},
drop: function(b, c) {
var d = !1;
return a.each((a.ui.ddmanager.droppables[b.options.scope] || []).slice(), function() {
this.options && (!this.options.disabled && this.visible && a.ui.intersect(b, this, this.options.tolerance, c) && (d = this._drop.call(this, c) || d), !this.options.disabled && this.visible && this.accept.call(this.element[0], b.currentItem || b.element) && (this.isout = !0, this.isover = !1, this._deactivate.call(this, c)))
}), d
},
dragStart: function(b, c) {
b.element.parentsUntil("body").bind("scroll.droppable", function() {
b.options.refreshPositions || a.ui.ddmanager.prepareOffsets(b, c)
})
},
drag: function(b, c) {
b.options.refreshPositions && a.ui.ddmanager.prepareOffsets(b, c), a.each(a.ui.ddmanager.droppables[b.options.scope] || [], function() {
if (!this.options.disabled && !this.greedyChild && this.visible) {
var d, e, f, g = a.ui.intersect(b, this, this.options.tolerance, c),
h = !g && this.isover ? "isout" : g && !this.isover ? "isover" : null;
h && (this.options.greedy && (e = this.options.scope, f = this.element.parents(":data(ui-droppable)").filter(function() {
return a(this).droppable("instance").options.scope === e
}), f.length && (d = a(f[0]).droppable("instance"), d.greedyChild = "isover" === h)), d && "isover" === h && (d.isover = !1, d.isout = !0, d._out.call(d, c)), this[h] = !0, this["isout" === h ? "isover" : "isout"] = !1, this["isover" === h ? "_over" : "_out"].call(this, c), d && "isout" === h && (d.isout = !1, d.isover = !0, d._over.call(d, c)))
}
})
},
dragStop: function(b, c) {
b.element.parentsUntil("body").unbind("scroll.droppable"), b.options.refreshPositions || a.ui.ddmanager.prepareOffsets(b, c)
}
}, a.ui.droppable
});
var postboxes;
! function(a) {
var b = a(document);
postboxes = {
add_postbox_toggles: function(c, d) {
var e = this;
e.init(c, d), a(".postbox .hndle, .postbox .handlediv").bind("click.postboxes", function() {
var d = a(this).parent(".postbox"),
f = d.attr("id");
"dashboard_browser_nag" != f && (d.toggleClass("closed"), "press-this" != c && e.save_state(c), f && (!d.hasClass("closed") && a.isFunction(postboxes.pbshow) ? e.pbshow(f) : d.hasClass("closed") && a.isFunction(postboxes.pbhide) && e.pbhide(f)), b.trigger("postbox-toggled", d))
}), a(".postbox .hndle a").click(function(a) {
a.stopPropagation()
}), a(".postbox a.dismiss").bind("click.postboxes", function() {
var b = a(this).parents(".postbox").attr("id") + "-hide";
return a("#" + b).prop("checked", !1).triggerHandler("click"), !1
}), a(".hide-postbox-tog").bind("click.postboxes", function() {
var d = a(this).val(),
f = a("#" + d);
a(this).prop("checked") ? (f.show(), a.isFunction(postboxes.pbshow) && e.pbshow(d)) : (f.hide(), a.isFunction(postboxes.pbhide) && e.pbhide(d)), e.save_state(c), e._mark_area(), b.trigger("postbox-toggled", f)
}), a('.columns-prefs input[type="radio"]').bind("click.postboxes", function() {
var b = parseInt(a(this).val(), 10);
b && (e._pb_edit(b), e.save_order(c))
})
},
init: function(b, c) {
var d = a(document.body).hasClass("mobile");
a.extend(this, c || {}), a("#wpbody-content").css("overflow", "hidden"), a(".meta-box-sortables").sortable({
placeholder: "sortable-placeholder",
connectWith: ".meta-box-sortables",
items: ".postbox",
handle: ".hndle",
cursor: "move",
delay: d ? 200 : 0,
distance: 2,
tolerance: "pointer",
forcePlaceholderSize: !0,
helper: "clone",
opacity: .65,
stop: function() {
return a(this).find("#dashboard_browser_nag").is(":visible") && "dashboard_browser_nag" != this.firstChild.id ? void a(this).sortable("cancel") : void postboxes.save_order(b)
},
receive: function(b, c) {
"dashboard_browser_nag" == c.item[0].id && a(c.sender).sortable("cancel"), postboxes._mark_area()
}
}), d && (a(document.body).bind("orientationchange.postboxes", function() {
postboxes._pb_change()
}), this._pb_change()), this._mark_area()
},
save_state: function(b) {
var c = a(".postbox").filter(".closed").map(function() {
return this.id
}).get().join(","),
d = a(".postbox").filter(":hidden").map(function() {
return this.id
}).get().join(",");
a.post(ajaxurl, {
action: "closed-postboxes",
closed: c,
hidden: d,
closedpostboxesnonce: jQuery("#closedpostboxesnonce").val(),
page: b
})
},
save_order: function(b) {
var c, d = a(".columns-prefs input:checked").val() || 0;
c = {
action: "meta-box-order",
_ajax_nonce: a("#meta-box-order-nonce").val(),
page_columns: d,
page: b
}, a(".meta-box-sortables").each(function() {
c["order[" + this.id.split("-")[0] + "]"] = a(this).sortable("toArray").join(",")
}), a.post(ajaxurl, c)
},
_mark_area: function() {
var b = a("div.postbox:visible").length,
c = a("#post-body #side-sortables");
a("#dashboard-widgets .meta-box-sortables:visible").each(function() {
var c = a(this);
1 == b || c.children(".postbox:visible").length ? c.removeClass("empty-container") : c.addClass("empty-container")
}), c.length && (c.children(".postbox:visible").length ? c.removeClass("empty-container") : "280px" == a("#postbox-container-1").css("width") && c.addClass("empty-container"))
},
_pb_edit: function(b) {
var c = a(".metabox-holder").get(0);
c && (c.className = c.className.replace(/columns-\d+/, "columns-" + b)), a(document).trigger("postboxes-columnchange")
},
_pb_change: function() {
var b = a('label.columns-prefs-1 input[type="radio"]');
switch (window.orientation) {
case 90:
case -90:
b.length && b.is(":checked") || this._pb_edit(2);
break;
case 0:
case 180:
a("#poststuff").length ? this._pb_edit(1) : b.length && b.is(":checked") || this._pb_edit(2)
}
},
pbshow: !1,
pbhide: !1
}
}(jQuery);
var wpNavMenu;
! function(a) {
var b;
b = wpNavMenu = {
options: {
menuItemDepthPerLevel: 30,
globalMaxDepth: 11
},
menuList: void 0,
targetList: void 0,
menusChanged: !1,
isRTL: !("undefined" == typeof isRtl || !isRtl),
negateIfRTL: "undefined" != typeof isRtl && isRtl ? -1 : 1,
init: function() {
b.menuList = a("#menu-to-edit"), b.targetList = b.menuList, this.jQueryExtensions(), this.attachMenuEditListeners(), this.setupInputWithDefaultTitle(), this.attachQuickSearchListeners(), this.attachThemeLocationsListeners(), this.attachTabsPanelListeners(), this.attachUnsavedChangesListener(), b.menuList.length && this.initSortables(), menus.oneThemeLocationNoMenus && a("#posttype-page").addSelectedToMenu(b.addMenuItemToBottom), this.initManageLocations(), this.initAccessibility(), this.initToggles(), this.initPreviewing()
},
jQueryExtensions: function() {
a.fn.extend({
menuItemDepth: function() {
var a = this.eq(0).css(b.isRTL ? "margin-right" : "margin-left");
return b.pxToDepth(a && -1 != a.indexOf("px") ? a.slice(0, -2) : 0)
},
updateDepthClass: function(b, c) {
return this.each(function() {
var d = a(this);
c = c || d.menuItemDepth(), a(this).removeClass("menu-item-depth-" + c).addClass("menu-item-depth-" + b)
})
},
shiftDepthClass: function(b) {
return this.each(function() {
var c = a(this),
d = c.menuItemDepth();
a(this).removeClass("menu-item-depth-" + d).addClass("menu-item-depth-" + (d + b))
})
},
childMenuItems: function() {
var b = a();
return this.each(function() {
for (var c = a(this), d = c.menuItemDepth(), e = c.next(); e.length && e.menuItemDepth() > d;) b = b.add(e), e = e.next()
}), b
},
shiftHorizontally: function(b) {
return this.each(function() {
var c = a(this),
d = c.menuItemDepth(),
e = d + b;
c.moveHorizontally(e, d)
})
},
moveHorizontally: function(b, c) {
return this.each(function() {
var d = a(this),
e = d.childMenuItems(),
f = b - c,
g = d.find(".is-submenu");
d.updateDepthClass(b, c).updateParentMenuItemDBId(), e && e.each(function() {
var b = a(this),
c = b.menuItemDepth(),
d = c + f;
b.updateDepthClass(d, c).updateParentMenuItemDBId()
}), 0 === b ? g.hide() : g.show()
})
},
updateParentMenuItemDBId: function() {
return this.each(function() {
var b = a(this),
c = b.find(".menu-item-data-parent-id"),
d = parseInt(b.menuItemDepth(), 10),
e = d - 1,
f = b.prevAll(".menu-item-depth-" + e).first();
c.val(0 === d ? 0 : f.find(".menu-item-data-db-id").val())
})
},
hideAdvancedMenuItemFields: function() {
return this.each(function() {
var b = a(this);
a(".hide-column-tog").not(":checked").each(function() {
b.find(".field-" + a(this).val()).addClass("hidden-field")
})
})
},
addSelectedToMenu: function(c) {
return 0 === a("#menu-to-edit").length ? !1 : this.each(function() {
var d = a(this),
e = {},
f = d.find(menus.oneThemeLocationNoMenus && 0 === d.find(".tabs-panel-active .categorychecklist li input:checked").length ? '#page-all li input[type="checkbox"]' : ".tabs-panel-active .categorychecklist li input:checked"),
g = /menu-item\[([^\]]*)/;
return c = c || b.addMenuItemToBottom, f.length ? (d.find(".spinner").show(), a(f).each(function() {
var d = a(this),
f = g.exec(d.attr("name")),
h = "undefined" == typeof f[1] ? 0 : parseInt(f[1], 10);
this.className && -1 != this.className.indexOf("add-to-top") && (c = b.addMenuItemToTop), e[h] = d.closest("li").getItemData("add-menu-item", h)
}), void b.addItemToMenu(e, c, function() {
f.removeAttr("checked"), d.find(".spinner").hide()
})) : !1
})
},
getItemData: function(a, b) {
a = a || "menu-item";
var c, d = {},
e = ["menu-item-db-id", "menu-item-object-id", "menu-item-object", "menu-item-parent-id", "menu-item-position", "menu-item-type", "menu-item-title", "menu-item-url", "menu-item-description", "menu-item-attr-title", "menu-item-target", "menu-item-classes", "menu-item-xfn"];
return b || "menu-item" != a || (b = this.find(".menu-item-data-db-id").val()), b ? (this.find("input").each(function() {
var f;
for (c = e.length; c--;) "menu-item" == a ? f = e[c] + "[" + b + "]" : "add-menu-item" == a && (f = "menu-item[" + b + "][" + e[c] + "]"), this.name && f == this.name && (d[e[c]] = this.value)
}), d) : d
},
setItemData: function(b, c, d) {
return c = c || "menu-item", d || "menu-item" != c || (d = a(".menu-item-data-db-id", this).val()), d ? (this.find("input").each(function() {
var e, f = a(this);
a.each(b, function(a, b) {
"menu-item" == c ? e = a + "[" + d + "]" : "add-menu-item" == c && (e = "menu-item[" + d + "][" + a + "]"), e == f.attr("name") && f.val(b)
})
}), this) : this
}
})
},
countMenuItems: function(b) {
return a(".menu-item-depth-" + b).length
},
moveMenuItem: function(c, d) {
var e, f, g, h = a("#menu-to-edit li"),
i = h.length,
j = c.parents("li.menu-item"),
k = j.childMenuItems(),
l = j.getItemData(),
m = parseInt(j.menuItemDepth(), 10),
n = parseInt(j.index(), 10),
o = j.next(),
p = o.childMenuItems(),
q = parseInt(o.menuItemDepth(), 10) + 1,
r = j.prev(),
s = parseInt(r.menuItemDepth(), 10),
t = r.getItemData()["menu-item-db-id"];
switch (d) {
case "up":
if (f = n - 1, 0 === n) break;
0 === f && 0 !== m && j.moveHorizontally(0, m), 0 !== s && j.moveHorizontally(s, m), k ? (e = j.add(k), e.detach().insertBefore(h.eq(f)).updateParentMenuItemDBId()) : j.detach().insertBefore(h.eq(f)).updateParentMenuItemDBId();
break;
case "down":
if (k) {
if (e = j.add(k), o = h.eq(e.length + n), p = 0 !== o.childMenuItems().length, p && (g = parseInt(o.menuItemDepth(), 10) + 1, j.moveHorizontally(g, m)), i === n + e.length) break;
e.detach().insertAfter(h.eq(n + e.length)).updateParentMenuItemDBId()
} else {
if (0 !== p.length && j.moveHorizontally(q, m), i === n + 1) break;
j.detach().insertAfter(h.eq(n + 1)).updateParentMenuItemDBId()
}
break;
case "top":
if (0 === n) break;
k ? (e = j.add(k), e.detach().insertBefore(h.eq(0)).updateParentMenuItemDBId()) : j.detach().insertBefore(h.eq(0)).updateParentMenuItemDBId();
break;
case "left":
if (0 === m) break;
j.shiftHorizontally(-1);
break;
case "right":
if (0 === n) break;
if (l["menu-item-parent-id"] === t) break;
j.shiftHorizontally(1)
}
c.focus(), b.registerChange(), b.refreshKeyboardAccessibility(), b.refreshAdvancedAccessibility()
},
initAccessibility: function() {
var c = a("#menu-to-edit");
b.refreshKeyboardAccessibility(), b.refreshAdvancedAccessibility(), c.on("click", ".menus-move-up", function(c) {
b.moveMenuItem(a(this).parents("li.menu-item").find("a.item-edit"), "up"), c.preventDefault()
}), c.on("click", ".menus-move-down", function(c) {
b.moveMenuItem(a(this).parents("li.menu-item").find("a.item-edit"), "down"), c.preventDefault()
}), c.on("click", ".menus-move-top", function(c) {
b.moveMenuItem(a(this).parents("li.menu-item").find("a.item-edit"), "top"), c.preventDefault()
}), c.on("click", ".menus-move-left", function(c) {
b.moveMenuItem(a(this).parents("li.menu-item").find("a.item-edit"), "left"), c.preventDefault()
}), c.on("click", ".menus-move-right", function(c) {
b.moveMenuItem(a(this).parents("li.menu-item").find("a.item-edit"), "right"), c.preventDefault()
})
},
refreshAdvancedAccessibility: function() {
a(".menu-item-settings .field-move a").css("display", "none"), a(".item-edit").each(function() {
var b, c, d, e, f, g, h, i, j, k = a(this),
l = k.closest("li.menu-item").first(),
m = l.menuItemDepth(),
n = 0 === m,
o = k.closest(".menu-item-handle").find(".menu-item-title").text(),
p = parseInt(l.index(), 10),
q = n ? m : parseInt(m - 1, 10),
r = l.prevAll(".menu-item-depth-" + q).first().find(".menu-item-title").text(),
s = l.prevAll(".menu-item-depth-" + m).first().find(".menu-item-title").text(),
t = a("#menu-to-edit li").length,
u = l.nextAll(".menu-item-depth-" + m).length;
0 !== p && (b = l.find(".menus-move-up"), b.prop("title", menus.moveUp).css("display", "inline")), 0 !== p && n && (b = l.find(".menus-move-top"), b.prop("title", menus.moveToTop).css("display", "inline")), p + 1 !== t && 0 !== p && (b = l.find(".menus-move-down"), b.prop("title", menus.moveDown).css("display", "inline")), 0 === p && 0 !== u && (b = l.find(".menus-move-down"), b.prop("title", menus.moveDown).css("display", "inline")), n || (b = l.find(".menus-move-left"), c = menus.outFrom.replace("%s", r), b.prop("title", menus.moveOutFrom.replace("%s", r)).html(c).css("display", "inline")), 0 !== p && l.find(".menu-item-data-parent-id").val() !== l.prev().find(".menu-item-data-db-id").val() && (b = l.find(".menus-move-right"), c = menus.under.replace("%s", s), b.prop("title", menus.moveUnder.replace("%s", s)).html(c).css("display", "inline")), n ? (d = a(".menu-item-depth-0"), e = d.index(l) + 1, t = d.length, f = menus.menuFocus.replace("%1$s", o).replace("%2$d", e).replace("%3$d", t)) : (g = l.prevAll(".menu-item-depth-" + parseInt(m - 1, 10)).first(), h = g.find(".menu-item-data-db-id").val(), i = g.find(".menu-item-title").text(), j = a('.menu-item .menu-item-data-parent-id[value="' + h + '"]'), e = a(j.parents(".menu-item").get().reverse()).index(l) + 1, f = menus.subMenuFocus.replace("%1$s", o).replace("%2$d", e).replace("%3$s", i)), k.prop("title", f).html(f)
})
},
refreshKeyboardAccessibility: function() {
a(".item-edit").off("focus").on("focus", function() {
a(this).off("keydown").on("keydown", function(c) {
var d, e = a(this),
f = e.parents("li.menu-item"),
g = f.getItemData();
if ((37 == c.which || 38 == c.which || 39 == c.which || 40 == c.which) && (e.off("keydown"), 1 !== a("#menu-to-edit li").length)) {
switch (d = {
38: "up",
40: "down",
37: "left",
39: "right"
}, a("body").hasClass("rtl") && (d = {
38: "up",
40: "down",
39: "left",
37: "right"
}), d[c.which]) {
case "up":
b.moveMenuItem(e, "up");
break;
case "down":
b.moveMenuItem(e, "down");
break;
case "left":
b.moveMenuItem(e, "left");
break;
case "right":
b.moveMenuItem(e, "right")
}
return a("#edit-" + g["menu-item-db-id"]).focus(), !1
}
})
})
},
initPreviewing: function() {
a("#menu-to-edit").on("change input", ".edit-menu-item-title", function(b) {
var c, d, e = a(b.currentTarget);
c = e.val(), d = e.closest(".menu-item").find(".menu-item-title"), c ? d.text(c).removeClass("no-title") : d.text(navMenuL10n.untitled).addClass("no-title")
})
},
initToggles: function() {
postboxes.add_postbox_toggles("nav-menus"), columns.useCheckboxesForHidden(), columns.checked = function(b) {
a(".field-" + b).removeClass("hidden-field")
}, columns.unchecked = function(b) {
a(".field-" + b).addClass("hidden-field")
}, b.menuList.hideAdvancedMenuItemFields(), a(".hide-postbox-tog").click(function() {
var b = a(".accordion-container li.accordion-section").filter(":hidden").map(function() {
return this.id
}).get().join(",");
a.post(ajaxurl, {
action: "closed-postboxes",
hidden: b,
closedpostboxesnonce: jQuery("#closedpostboxesnonce").val(),
page: "nav-menus"
})
})
},
initSortables: function() {
function c(a) {
var c;
j = a.placeholder.prev(), k = a.placeholder.next(), j[0] == a.item[0] && (j = j.prev()), k[0] == a.item[0] && (k = k.next()), l = j.length ? j.offset().top + j.height() : 0, m = k.length ? k.offset().top + k.height() / 3 : 0, h = k.length ? k.menuItemDepth() : 0, i = j.length ? (c = j.menuItemDepth() + 1) > b.options.globalMaxDepth ? b.options.globalMaxDepth : c : 0
}
function d(a, b) {
a.placeholder.updateDepthClass(b, q), q = b
}
function e() {
if (!s[0].className) return 0;
var a = s[0].className.match(/menu-max-depth-(\d+)/);
return a && a[1] ? parseInt(a[1], 10) : 0
}
function f(c) {
var d, e = t;
if (0 !== c) {
if (c > 0) d = p + c, d > t && (e = d);
else if (0 > c && p == t)
for (; !a(".menu-item-depth-" + e, b.menuList).length && e > 0;) e--;
s.removeClass("menu-max-depth-" + t).addClass("menu-max-depth-" + e), t = e
}
}
var g, h, i, j, k, l, m, n, o, p, q = 0,
r = b.menuList.offset().left,
s = a("body"),
t = e();
0 !== a("#menu-to-edit li").length && a(".drag-instructions").show(), r += b.isRTL ? b.menuList.width() : 0, b.menuList.sortable({
handle: ".menu-item-handle",
placeholder: "sortable-placeholder",
start: function(e, f) {
var h, i, j, k, l;
b.isRTL && (f.item[0].style.right = "auto"), o = f.item.children(".menu-item-transport"), g = f.item.menuItemDepth(), d(f, g), j = f.item.next()[0] == f.placeholder[0] ? f.item.next() : f.item, k = j.childMenuItems(), o.append(k), h = o.outerHeight(), h += h > 0 ? 1 * f.placeholder.css("margin-top").slice(0, -2) : 0, h += f.helper.outerHeight(), n = h, h -= 2, f.placeholder.height(h), p = g, k.each(function() {
var b = a(this).menuItemDepth();
p = b > p ? b : p
}), i = f.helper.find(".menu-item-handle").outerWidth(), i += b.depthToPx(p - g), i -= 2, f.placeholder.width(i), l = f.placeholder.next(), l.css("margin-top", n + "px"), f.placeholder.detach(), a(this).sortable("refresh"), f.item.after(f.placeholder), l.css("margin-top", 0), c(f)
},
stop: function(a, c) {
var d, e, h = q - g;
d = o.children().insertAfter(c.item), e = c.item.find(".item-title .is-submenu"), q > 0 ? e.show() : e.hide(), 0 !== h && (c.item.updateDepthClass(q), d.shiftDepthClass(h), f(h)), b.registerChange(), c.item.updateParentMenuItemDBId(), c.item[0].style.top = 0, b.isRTL && (c.item[0].style.left = "auto", c.item[0].style.right = 0), b.refreshKeyboardAccessibility(), b.refreshAdvancedAccessibility()
},
change: function(a, d) {
d.placeholder.parent().hasClass("menu") || (j.length ? j.after(d.placeholder) : b.menuList.prepend(d.placeholder)), c(d)
},
sort: function(e, f) {
var g = f.helper.offset(),
j = b.isRTL ? g.left + f.helper.width() : g.left,
o = b.negateIfRTL * b.pxToDepth(j - r);
o > i || g.top < l ? o = i : h > o && (o = h), o != q && d(f, o), m && g.top + n > m && (k.after(f.placeholder), c(f), a(this).sortable("refreshPositions"))
}
})
},
initManageLocations: function() {
a("#menu-locations-wrap form").submit(function() {
window.onbeforeunload = null
}), a(".menu-location-menus select").on("change", function() {
var b = a(this).closest("tr").find(".locations-edit-menu-link");
a(this).find("option:selected").data("orig") ? b.show() : b.hide()
})
},
attachMenuEditListeners: function() {
var b = this;
a("#update-nav-menu").bind("click", function(a) {
if (a.target && a.target.className) {
if (-1 != a.target.className.indexOf("item-edit")) return b.eventOnClickEditLink(a.target);
if (-1 != a.target.className.indexOf("item-delete")) return b.eventOnClickMenuItemDelete(a.target);
if (-1 != a.target.className.indexOf("item-cancel")) return b.eventOnClickCancelLink(a.target)
}
}), a('#add-custom-links input[type="text"]').keypress(function(b) {
13 === b.keyCode && (b.preventDefault(), a("#submit-customlinkdiv").click())
})
},
setupInputWithDefaultTitle: function() {
var b = "input-with-default-title";
a("." + b).each(function() {
var c = a(this),
d = c.attr("title"),
e = c.val();
if (c.data(b, d), "" === e) c.val(d);
else {
if (d == e) return;
c.removeClass(b)
}
}).focus(function() {
var c = a(this);
c.val() == c.data(b) && c.val("").removeClass(b)
}).blur(function() {
var c = a(this);
"" === c.val() && c.addClass(b).val(c.data(b))
}), a(".blank-slate .input-with-default-title").focus()
},
attachThemeLocationsListeners: function() {
var b = a("#nav-menu-theme-locations"),
c = {};
c.action = "menu-locations-save", c["menu-settings-column-nonce"] = a("#menu-settings-column-nonce").val(), b.find('input[type="submit"]').click(function() {
return b.find("select").each(function() {
c[this.name] = a(this).val()
}), b.find(".spinner").show(), a.post(ajaxurl, c, function() {
b.find(".spinner").hide()
}), !1
})
},
attachQuickSearchListeners: function() {
var c;
a(".quick-search").keypress(function(d) {
var e = a(this);
return 13 == d.which ? (b.updateQuickSearchResults(e), !1) : (c && clearTimeout(c), void(c = setTimeout(function() {
b.updateQuickSearchResults(e)
}, 400)))
}).attr("autocomplete", "off")
},
updateQuickSearchResults: function(c) {
var d, e, f = 2,
g = c.val();
g.length < f || (d = c.parents(".tabs-panel"), e = {
action: "menu-quick-search",
"response-format": "markup",
menu: a("#menu").val(),
"menu-settings-column-nonce": a("#menu-settings-column-nonce").val(),
q: g,
type: c.attr("name")
}, a(".spinner", d).show(), a.post(ajaxurl, e, function(a) {
b.processQuickSearchQueryResponse(a, e, d)
}))
},
addMenuItemToBottom: function(c) {
a(c).hideAdvancedMenuItemFields().appendTo(b.targetList), b.refreshKeyboardAccessibility(), b.refreshAdvancedAccessibility()
},
addMenuItemToTop: function(c) {
a(c).hideAdvancedMenuItemFields().prependTo(b.targetList), b.refreshKeyboardAccessibility(), b.refreshAdvancedAccessibility()
},
attachUnsavedChangesListener: function() {
a("#menu-management input, #menu-management select, #menu-management, #menu-management textarea, .menu-location-menus select").change(function() {
b.registerChange()
}), 0 !== a("#menu-to-edit").length || 0 !== a(".menu-location-menus select").length ? window.onbeforeunload = function() {
} : a("#menu-settings-column").find("input,select").end().find("a").attr("href", "#").unbind("click")
},
registerChange: function() {
b.menusChanged = !0
},
attachTabsPanelListeners: function() {
a("#menu-settings-column").bind("click", function(c) {
var d, e, f, g, h = a(c.target);
if (h.hasClass("nav-tab-link")) e = h.data("type"), f = h.parents(".accordion-section-content").first(), a("input", f).removeAttr("checked"), a(".tabs-panel-active", f).removeClass("tabs-panel-active").addClass("tabs-panel-inactive"), a("#" + e, f).removeClass("tabs-panel-inactive").addClass("tabs-panel-active"), a(".tabs", f).removeClass("tabs"), h.parent().addClass("tabs"), a(".quick-search", f).focus(), c.preventDefault();
else if (h.hasClass("select-all")) {
if (d = /#(.*)$/.exec(c.target.href), d && d[1]) return g = a("#" + d[1] + " .tabs-panel-active .menu-item-title input"), g.length === g.filter(":checked").length ? g.removeAttr("checked") : g.prop("checked", !0), !1
} else {
if (h.hasClass("submit-add-to-menu")) return b.registerChange(), c.target.id && "submit-customlinkdiv" == c.target.id ? b.addCustomLink(b.addMenuItemToBottom) : c.target.id && -1 != c.target.id.indexOf("submit-") && a("#" + c.target.id.replace(/submit-/, "")).addSelectedToMenu(b.addMenuItemToBottom), !1;
if (h.hasClass("page-numbers")) return a.post(ajaxurl, c.target.href.replace(/.*\?/, "").replace(/action=([^&]*)/, "") + "&action=menu-get-metabox", function(b) {
if (-1 != b.indexOf("replace-id")) {
var c = a.parseJSON(b),
d = document.getElementById(c["replace-id"]),
e = document.createElement("div"),
f = document.createElement("div");
c.markup && d && (f.innerHTML = c.markup ? c.markup : "", d.parentNode.insertBefore(e, d), e.parentNode.removeChild(d), e.parentNode.insertBefore(f, e), e.parentNode.removeChild(e))
}
}), !1
}
})
},
eventOnClickEditLink: function(b) {
var c, d, e = /#(.*)$/.exec(b.href);
return e && e[1] && (c = a("#" + e[1]), d = c.parent(), 0 !== d.length) ? (d.hasClass("menu-item-edit-inactive") ? (c.data("menu-item-data") || c.data("menu-item-data", c.getItemData()), c.slideDown("fast"), d.removeClass("menu-item-edit-inactive").addClass("menu-item-edit-active")) : (c.slideUp("fast"), d.removeClass("menu-item-edit-active").addClass("menu-item-edit-inactive")), !1) : void 0
},
eventOnClickCancelLink: function(b) {
var c = a(b).closest(".menu-item-settings"),
d = a(b).closest(".menu-item");
return d.removeClass("menu-item-edit-active").addClass("menu-item-edit-inactive"), c.setItemData(c.data("menu-item-data")).hide(), !1
},
eventOnClickMenuItemDelete: function(c) {
var r = confirm("Do you want to delete this item ?");
if (r == true) {
var d = parseInt(c.id.replace("delete-", ""), 10);
deleteitem(d);
return b.removeMenuItem(a("#menu-item-" + d)), b.registerChange(), !1
}else{
return false;
}
},
processQuickSearchQueryResponse: function(b, c, d) {
var e, f, g, h = {},
i = document.getElementById("nav-menu-meta"),
j = /menu-item[(\[^]\]*/,
k = a("<div>").html(b).find("li");
return k.length ? (k.each(function() {
if (g = a(this), e = j.exec(g.html()), e && e[1]) {
for (f = e[1]; i.elements["menu-item[" + f + "][menu-item-type]"] || h[f];) f--;
h[f] = !0, f != e[1] && g.html(g.html().replace(new RegExp("menu-item\\[" + e[1] + "\\]", "g"), "menu-item[" + f + "]"))
}
}), a(".categorychecklist", d).html(k), void a(".spinner", d).hide()) : (a(".categorychecklist", d).html("<li><p>" + navMenuL10n.noResultsFound + "</p></li>"), void a(".spinner", d).hide())
},
removeMenuItem: function(b) {
var c = b.childMenuItems();
b.addClass("deleting").animate({
opacity: 0,
height: 0
}, 350, function() {
var d = a("#menu-instructions");
b.remove(), c.shiftDepthClass(-1).updateParentMenuItemDBId(), 0 === a("#menu-to-edit li").length && (a(".drag-instructions").hide(), d.removeClass("menu-instructions-inactive"))
})
},
depthToPx: function(a) {
return a * b.options.menuItemDepthPerLevel
},
pxToDepth: function(a) {
return Math.floor(a / b.options.menuItemDepthPerLevel)
}
}, a(document).ready(function() {
wpNavMenu.init()
})
}(jQuery);
|