﻿(function (c, j) { function k(a) { return !c(a).parents().andSelf().filter(function () { return c.curCSS(this, "visibility") === "hidden" || c.expr.filters.hidden(this) }).length } c.ui = c.ui || {}; if (!c.ui.version) { c.extend(c.ui, { version: "1.8.11", keyCode: { ALT: 18, BACKSPACE: 8, CAPS_LOCK: 20, COMMA: 188, COMMAND: 91, COMMAND_LEFT: 91, COMMAND_RIGHT: 93, CONTROL: 17, DELETE: 46, DOWN: 40, END: 35, ENTER: 13, ESCAPE: 27, HOME: 36, INSERT: 45, LEFT: 37, MENU: 93, NUMPAD_ADD: 107, NUMPAD_DECIMAL: 110, NUMPAD_DIVIDE: 111, NUMPAD_ENTER: 108, NUMPAD_MULTIPLY: 106, NUMPAD_SUBTRACT: 109, PAGE_DOWN: 34, PAGE_UP: 33, PERIOD: 190, RIGHT: 39, SHIFT: 16, SPACE: 32, TAB: 9, UP: 38, WINDOWS: 91} }); c.fn.extend({ _focus: c.fn.focus, focus: function (a, b) { return typeof a === "number" ? this.each(function () { var d = this; setTimeout(function () { c(d).focus(); b && b.call(d) }, a) }) : this._focus.apply(this, arguments) }, scrollParent: function () { var a; a = c.browser.msie && /(static|relative)/.test(this.css("position")) || /absolute/.test(this.css("position")) ? this.parents().filter(function () { return /(relative|absolute|fixed)/.test(c.curCSS(this, "position", 1)) && /(auto|scroll)/.test(c.curCSS(this, "overflow", 1) + c.curCSS(this, "overflow-y", 1) + c.curCSS(this, "overflow-x", 1)) }).eq(0) : this.parents().filter(function () { return /(auto|scroll)/.test(c.curCSS(this, "overflow", 1) + c.curCSS(this, "overflow-y", 1) + c.curCSS(this, "overflow-x", 1)) }).eq(0); return /fixed/.test(this.css("position")) || !a.length ? c(document) : a }, zIndex: function (a) { if (a !== j) return this.css("zIndex", a); if (this.length) { a = c(this[0]); for (var b; a.length && a[0] !== document; ) { b = a.css("position"); if (b === "absolute" || b === "relative" || b === "fixed") { b = parseInt(a.css("zIndex"), 10); if (!isNaN(b) && b !== 0) return b } a = a.parent() } } return 0 }, disableSelection: function () { return this.bind((c.support.selectstart ? "selectstart" : "mousedown") + ".ui-disableSelection", function (a) { a.preventDefault() }) }, enableSelection: function () { return this.unbind(".ui-disableSelection") } }); c.each(["Width", "Height"], function (a, b) { function d(f, g, l, m) { c.each(e, function () { g -= parseFloat(c.curCSS(f, "padding" + this, true)) || 0; if (l) g -= parseFloat(c.curCSS(f, "border" + this + "Width", true)) || 0; if (m) g -= parseFloat(c.curCSS(f, "margin" + this, true)) || 0 }); return g } var e = b === "Width" ? ["Left", "Right"] : ["Top", "Bottom"], h = b.toLowerCase(), i = { innerWidth: c.fn.innerWidth, innerHeight: c.fn.innerHeight, outerWidth: c.fn.outerWidth, outerHeight: c.fn.outerHeight }; c.fn["inner" + b] = function (f) { if (f === j) return i["inner" + b].call(this); return this.each(function () { c(this).css(h, d(this, f) + "px") }) }; c.fn["outer" + b] = function (f, g) { if (typeof f !== "number") return i["outer" + b].call(this, f); return this.each(function () { c(this).css(h, d(this, f, true, g) + "px") }) } }); c.extend(c.expr[":"], { data: function (a, b, d) { return !!c.data(a, d[3]) }, focusable: function (a) { var b = a.nodeName.toLowerCase(), d = c.attr(a, "tabindex"); if ("area" === b) { b = a.parentNode; d = b.name; if (!a.href || !d || b.nodeName.toLowerCase() !== "map") return false; a = c("img[usemap=#" + d + "]")[0]; return !!a && k(a) } return (/input|select|textarea|button|object/.test(b) ? !a.disabled : "a" == b ? a.href || !isNaN(d) : !isNaN(d)) && k(a) }, tabbable: function (a) { var b = c.attr(a, "tabindex"); return (isNaN(b) || b >= 0) && c(a).is(":focusable") } }); c(function () { var a = document.body, b = a.appendChild(b = document.createElement("div")); c.extend(b.style, { minHeight: "100px", height: "auto", padding: 0, borderWidth: 0 }); c.support.minHeight = b.offsetHeight === 100; c.support.selectstart = "onselectstart" in b; a.removeChild(b).style.display = "none" }); c.extend(c.ui, { plugin: { add: function (a, b, d) { a = c.ui[a].prototype; for (var e in d) { a.plugins[e] = a.plugins[e] || []; a.plugins[e].push([b, d[e]]) } }, call: function (a, b, d) { if ((b = a.plugins[b]) && a.element[0].parentNode) for (var e = 0; e < b.length; e++) a.options[b[e][0]] && b[e][1].apply(a.element, d) } }, contains: function (a, b) { return document.compareDocumentPosition ? a.compareDocumentPosition(b) & 16 : a !== b && a.contains(b) }, hasScroll: function (a, b) { if (c(a).css("overflow") === "hidden") return false; b = b && b === "left" ? "scrollLeft" : "scrollTop"; var d = false; if (a[b] > 0) return true; a[b] = 1; d = a[b] > 0; a[b] = 0; return d }, isOverAxis: function (a, b, d) { return a > b && a < b + d }, isOver: function (a, b, d, e, h, i) { return c.ui.isOverAxis(a, d, h) && c.ui.isOverAxis(b, e, i) } }) } })(jQuery); (function (b, j) { if (b.cleanData) { var k = b.cleanData; b.cleanData = function (a) { for (var c = 0, d; (d = a[c]) != null; c++) b(d).triggerHandler("remove"); k(a) } } else { var l = b.fn.remove; b.fn.remove = function (a, c) { return this.each(function () { if (!c) if (!a || b.filter(a, [this]).length) b("*", this).add([this]).each(function () { b(this).triggerHandler("remove") }); return l.call(b(this), a, c) }) } } b.widget = function (a, c, d) { var e = a.split(".")[0], f; a = a.split(".")[1]; f = e + "-" + a; if (!d) { d = c; c = b.Widget } b.expr[":"][f] = function (h) { return !!b.data(h, a) }; b[e] = b[e] || {}; b[e][a] = function (h, g) { arguments.length && this._createWidget(h, g) }; c = new c; c.options = b.extend(true, {}, c.options); b[e][a].prototype = b.extend(true, c, { namespace: e, widgetName: a, widgetEventPrefix: b[e][a].prototype.widgetEventPrefix || a, widgetBaseClass: f }, d); b.widget.bridge(a, b[e][a]) }; b.widget.bridge = function (a, c) { b.fn[a] = function (d) { var e = typeof d === "string", f = Array.prototype.slice.call(arguments, 1), h = this; d = !e && f.length ? b.extend.apply(null, [true, d].concat(f)) : d; if (e && d.charAt(0) === "_") return h; e ? this.each(function () { var g = b.data(this, a), i = g && b.isFunction(g[d]) ? g[d].apply(g, f) : g; if (i !== g && i !== j) { h = i; return false } }) : this.each(function () { var g = b.data(this, a); g ? g.option(d || {})._init() : b.data(this, a, new c(d, this)) }); return h } }; b.Widget = function (a, c) { arguments.length && this._createWidget(a, c) }; b.Widget.prototype = { widgetName: "widget", widgetEventPrefix: "", options: { disabled: false }, _createWidget: function (a, c) { b.data(c, this.widgetName, this); this.element = b(c); this.options = b.extend(true, {}, this.options, this._getCreateOptions(), a); var d = this; this.element.bind("remove." + this.widgetName, function () { d.destroy() }); this._create(); this._trigger("create"); this._init() }, _getCreateOptions: function () { return b.metadata && b.metadata.get(this.element[0])[this.widgetName] }, _create: function () { }, _init: function () { }, destroy: function () { this.element.unbind("." + this.widgetName).removeData(this.widgetName); this.widget().unbind("." + this.widgetName).removeAttr("aria-disabled").removeClass(this.widgetBaseClass + "-disabled ui-state-disabled") }, widget: function () { return this.element }, option: function (a, c) { var d = a; if (arguments.length === 0) return b.extend({}, this.options); if (typeof a === "string") { if (c === j) return this.options[a]; d = {}; d[a] = c } this._setOptions(d); return this }, _setOptions: function (a) { var c = this; b.each(a, function (d, e) { c._setOption(d, e) }); return this }, _setOption: function (a, c) { this.options[a] = c; if (a === "disabled") this.widget()[c ? "addClass" : "removeClass"](this.widgetBaseClass + "-disabled ui-state-disabled").attr("aria-disabled", c); return this }, enable: function () { return this._setOption("disabled", false) }, disable: function () { return this._setOption("disabled", true) }, _trigger: function (a, c, d) { var e = this.options[a]; c = b.Event(c); c.type = (a === this.widgetEventPrefix ? a : this.widgetEventPrefix + a).toLowerCase(); d = d || {}; if (c.originalEvent) { a = b.event.props.length; for (var f; a; ) { f = b.event.props[--a]; c[f] = c.originalEvent[f] } } this.element.trigger(c, d); return !(b.isFunction(e) && e.call(this.element[0], c, d) === false || c.isDefaultPrevented()) } } })(jQuery); (function (b) { b.widget("ui.mouse", { options: { cancel: ":input,option", distance: 1, delay: 0 }, _mouseInit: function () { var a = this; this.element.bind("mousedown." + this.widgetName, function (c) { return a._mouseDown(c) }).bind("click." + this.widgetName, function (c) { if (true === b.data(c.target, a.widgetName + ".preventClickEvent")) { b.removeData(c.target, a.widgetName + ".preventClickEvent"); c.stopImmediatePropagation(); return false } }); this.started = false }, _mouseDestroy: function () { this.element.unbind("." + this.widgetName) }, _mouseDown: function (a) { a.originalEvent = a.originalEvent || {}; if (!a.originalEvent.mouseHandled) { this._mouseStarted && this._mouseUp(a); this._mouseDownEvent = a; var c = this, e = a.which == 1, f = typeof this.options.cancel == "string" ? b(a.target).parents().add(a.target).filter(this.options.cancel).length : false; if (!e || f || !this._mouseCapture(a)) return true; this.mouseDelayMet = !this.options.delay; if (!this.mouseDelayMet) this._mouseDelayTimer = setTimeout(function () { c.mouseDelayMet = true }, this.options.delay); if (this._mouseDistanceMet(a) && this._mouseDelayMet(a)) { this._mouseStarted = this._mouseStart(a) !== false; if (!this._mouseStarted) { a.preventDefault(); return true } } true === b.data(a.target, this.widgetName + ".preventClickEvent") && b.removeData(a.target, this.widgetName + ".preventClickEvent"); this._mouseMoveDelegate = function (d) { return c._mouseMove(d) }; this._mouseUpDelegate = function (d) { return c._mouseUp(d) }; b(document).bind("mousemove." + this.widgetName, this._mouseMoveDelegate).bind("mouseup." + this.widgetName, this._mouseUpDelegate); a.preventDefault(); return a.originalEvent.mouseHandled = true } }, _mouseMove: function (a) { if (b.browser.msie && !(document.documentMode >= 9) && !a.button) return this._mouseUp(a); if (this._mouseStarted) { this._mouseDrag(a); return a.preventDefault() } if (this._mouseDistanceMet(a) && this._mouseDelayMet(a)) (this._mouseStarted = this._mouseStart(this._mouseDownEvent, a) !== false) ? this._mouseDrag(a) : this._mouseUp(a); return !this._mouseStarted }, _mouseUp: function (a) { b(document).unbind("mousemove." + this.widgetName, this._mouseMoveDelegate).unbind("mouseup." + this.widgetName, this._mouseUpDelegate); if (this._mouseStarted) { this._mouseStarted = false; a.target == this._mouseDownEvent.target && b.data(a.target, this.widgetName + ".preventClickEvent", true); this._mouseStop(a) } return false }, _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 true } }) })(jQuery); (function (c) { c.ui = c.ui || {}; var n = /left|center|right/, o = /top|center|bottom/, t = c.fn.position, u = c.fn.offset; c.fn.position = function (b) { if (!b || !b.of) return t.apply(this, arguments); b = c.extend({}, b); var a = c(b.of), d = a[0], g = (b.collision || "flip").split(" "), e = b.offset ? b.offset.split(" ") : [0, 0], h, k, j; if (d.nodeType === 9) { h = a.width(); k = a.height(); j = { top: 0, left: 0} } else if (d.setTimeout) { h = a.width(); k = a.height(); j = { top: a.scrollTop(), left: a.scrollLeft()} } else if (d.preventDefault) { b.at = "left top"; h = k = 0; j = { top: b.of.pageY, left: b.of.pageX} } else { h = a.outerWidth(); k = a.outerHeight(); j = a.offset() } c.each(["my", "at"], function () { var f = (b[this] || "").split(" "); if (f.length === 1) f = n.test(f[0]) ? f.concat(["center"]) : o.test(f[0]) ? ["center"].concat(f) : ["center", "center"]; f[0] = n.test(f[0]) ? f[0] : "center"; f[1] = o.test(f[1]) ? f[1] : "center"; b[this] = f }); if (g.length === 1) g[1] = g[0]; e[0] = parseInt(e[0], 10) || 0; if (e.length === 1) e[1] = e[0]; e[1] = parseInt(e[1], 10) || 0; if (b.at[0] === "right") j.left += h; else if (b.at[0] === "center") j.left += h / 2; if (b.at[1] === "bottom") j.top += k; else if (b.at[1] === "center") j.top += k / 2; j.left += e[0]; j.top += e[1]; return this.each(function () { var f = c(this), l = f.outerWidth(), m = f.outerHeight(), p = parseInt(c.curCSS(this, "marginLeft", true)) || 0, q = parseInt(c.curCSS(this, "marginTop", true)) || 0, v = l + p + (parseInt(c.curCSS(this, "marginRight", true)) || 0), w = m + q + (parseInt(c.curCSS(this, "marginBottom", true)) || 0), i = c.extend({}, j), r; if (b.my[0] === "right") i.left -= l; else if (b.my[0] === "center") i.left -= l / 2; if (b.my[1] === "bottom") i.top -= m; else if (b.my[1] === "center") i.top -= m / 2; i.left = Math.round(i.left); i.top = Math.round(i.top); r = { left: i.left - p, top: i.top - q }; c.each(["left", "top"], function (s, x) { c.ui.position[g[s]] && c.ui.position[g[s]][x](i, { targetWidth: h, targetHeight: k, elemWidth: l, elemHeight: m, collisionPosition: r, collisionWidth: v, collisionHeight: w, offset: e, my: b.my, at: b.at }) }); c.fn.bgiframe && f.bgiframe(); f.offset(c.extend(i, { using: b.using })) }) }; c.ui.position = { fit: { left: function (b, a) { var d = c(window); d = a.collisionPosition.left + a.collisionWidth - d.width() - d.scrollLeft(); b.left = d > 0 ? b.left - d : Math.max(b.left - a.collisionPosition.left, b.left) }, top: function (b, a) { var d = c(window); d = a.collisionPosition.top + a.collisionHeight - d.height() - d.scrollTop(); b.top = d > 0 ? b.top - d : Math.max(b.top - a.collisionPosition.top, b.top) } }, flip: { left: function (b, a) { if (a.at[0] !== "center") { var d = c(window); d = a.collisionPosition.left + a.collisionWidth - d.width() - d.scrollLeft(); var g = a.my[0] === "left" ? -a.elemWidth : a.my[0] === "right" ? a.elemWidth : 0, e = a.at[0] === "left" ? a.targetWidth : -a.targetWidth, h = -2 * a.offset[0]; b.left += a.collisionPosition.left < 0 ? g + e + h : d > 0 ? g + e + h : 0 } }, top: function (b, a) { if (a.at[1] !== "center") { var d = c(window); d = a.collisionPosition.top + a.collisionHeight - d.height() - d.scrollTop(); var g = a.my[1] === "top" ? -a.elemHeight : a.my[1] === "bottom" ? a.elemHeight : 0, e = a.at[1] === "top" ? a.targetHeight : -a.targetHeight, h = -2 * a.offset[1]; b.top += a.collisionPosition.top < 0 ? g + e + h : d > 0 ? g + e + h : 0 } } } }; if (!c.offset.setOffset) { c.offset.setOffset = function (b, a) { if (/static/.test(c.curCSS(b, "position"))) b.style.position = "relative"; var d = c(b), g = d.offset(), e = parseInt(c.curCSS(b, "top", true), 10) || 0, h = parseInt(c.curCSS(b, "left", true), 10) || 0; g = { top: a.top - g.top + e, left: a.left - g.left + h }; "using" in a ? a.using.call(b, g) : d.css(g) }; c.fn.offset = function (b) { var a = this[0]; if (!a || !a.ownerDocument) return null; if (b) return this.each(function () { c.offset.setOffset(this, b) }); return u.call(this) } } })(jQuery); (function (d) { d.widget("ui.draggable", d.ui.mouse, { widgetEventPrefix: "drag", options: { addClasses: true, appendTo: "parent", axis: false, connectToSortable: false, containment: false, cursor: "auto", cursorAt: false, grid: false, handle: false, helper: "original", iframeFix: false, opacity: false, refreshPositions: false, revert: false, revertDuration: 500, scope: "default", scroll: true, scrollSensitivity: 20, scrollSpeed: 20, snap: false, snapMode: "both", snapTolerance: 20, stack: false, zIndex: false }, _create: function () { if (this.options.helper == "original" && !/^(?:r|a|f)/.test(this.element.css("position"))) this.element[0].style.position = "relative"; this.options.addClasses && this.element.addClass("ui-draggable"); this.options.disabled && this.element.addClass("ui-draggable-disabled"); this._mouseInit() }, destroy: function () { if (this.element.data("draggable")) { this.element.removeData("draggable").unbind(".draggable").removeClass("ui-draggable ui-draggable-dragging ui-draggable-disabled"); this._mouseDestroy(); return this } }, _mouseCapture: function (a) { var b = this.options; if (this.helper || b.disabled || d(a.target).is(".ui-resizable-handle")) return false; this.handle = this._getHandle(a); if (!this.handle) return false; return true }, _mouseStart: function (a) { var b = this.options; this.helper = this._createHelper(a); this._cacheHelperProportions(); if (d.ui.ddmanager) d.ui.ddmanager.current = this; this._cacheMargins(); this.cssPosition = this.helper.css("position"); this.scrollParent = this.helper.scrollParent(); this.offset = this.positionAbs = this.element.offset(); this.offset = { top: this.offset.top - this.margins.top, left: this.offset.left - this.margins.left }; d.extend(this.offset, { click: { left: a.pageX - this.offset.left, top: a.pageY - this.offset.top }, parent: this._getParentOffset(), relative: this._getRelativeOffset() }); this.originalPosition = this.position = this._generatePosition(a); this.originalPageX = a.pageX; this.originalPageY = a.pageY; b.cursorAt && this._adjustOffsetFromHelper(b.cursorAt); b.containment && this._setContainment(); if (this._trigger("start", a) === false) { this._clear(); return false } this._cacheHelperProportions(); d.ui.ddmanager && !b.dropBehaviour && d.ui.ddmanager.prepareOffsets(this, a); this.helper.addClass("ui-draggable-dragging"); this._mouseDrag(a, true); return true }, _mouseDrag: function (a, b) { this.position = this._generatePosition(a); this.positionAbs = this._convertPositionTo("absolute"); if (!b) { b = this._uiHash(); if (this._trigger("drag", a, b) === false) { this._mouseUp({}); return false } this.position = b.position } if (!this.options.axis || this.options.axis != "y") this.helper[0].style.left = this.position.left + "px"; if (!this.options.axis || this.options.axis != "x") this.helper[0].style.top = this.position.top + "px"; d.ui.ddmanager && d.ui.ddmanager.drag(this, a); return false }, _mouseStop: function (a) { var b = false; if (d.ui.ddmanager && !this.options.dropBehaviour) b = d.ui.ddmanager.drop(this, a); if (this.dropped) { b = this.dropped; this.dropped = false } if ((!this.element[0] || !this.element[0].parentNode) && this.options.helper == "original") return false; if (this.options.revert == "invalid" && !b || this.options.revert == "valid" && b || this.options.revert === true || d.isFunction(this.options.revert) && this.options.revert.call(this.element, b)) { var c = this; d(this.helper).animate(this.originalPosition, parseInt(this.options.revertDuration, 10), function () { c._trigger("stop", a) !== false && c._clear() }) } else this._trigger("stop", a) !== false && this._clear(); return false }, cancel: function () { this.helper.is(".ui-draggable-dragging") ? this._mouseUp({}) : this._clear(); return this }, _getHandle: function (a) { var b = !this.options.handle || !d(this.options.handle, this.element).length ? true : false; d(this.options.handle, this.element).find("*").andSelf().each(function () { if (this == a.target) b = true }); return b }, _createHelper: function (a) { var b = this.options; a = d.isFunction(b.helper) ? d(b.helper.apply(this.element[0], [a])) : b.helper == "clone" ? this.element.clone() : this.element; a.parents("body").length || a.appendTo(b.appendTo == "parent" ? this.element[0].parentNode : b.appendTo); a[0] != this.element[0] && !/(fixed|absolute)/.test(a.css("position")) && a.css("position", "absolute"); return a }, _adjustOffsetFromHelper: function (a) { if (typeof a == "string") a = a.split(" "); if (d.isArray(a)) a = { left: +a[0], top: +a[1] || 0 }; if ("left" in a) this.offset.click.left = a.left + this.margins.left; if ("right" in a) this.offset.click.left = this.helperProportions.width - a.right + this.margins.left; if ("top" in a) this.offset.click.top = a.top + this.margins.top; if ("bottom" in a) this.offset.click.top = this.helperProportions.height - a.bottom + this.margins.top }, _getParentOffset: function () { this.offsetParent = this.helper.offsetParent(); var a = this.offsetParent.offset(); if (this.cssPosition == "absolute" && this.scrollParent[0] != document && d.ui.contains(this.scrollParent[0], this.offsetParent[0])) { a.left += this.scrollParent.scrollLeft(); a.top += this.scrollParent.scrollTop() } if (this.offsetParent[0] == document.body || this.offsetParent[0].tagName && this.offsetParent[0].tagName.toLowerCase() == "html" && d.browser.msie) a = { top: 0, left: 0 }; return { top: a.top + (parseInt(this.offsetParent.css("borderTopWidth"), 10) || 0), left: a.left + (parseInt(this.offsetParent.css("borderLeftWidth"), 10) || 0)} }, _getRelativeOffset: function () { if (this.cssPosition == "relative") { var a = this.element.position(); return { top: a.top - (parseInt(this.helper.css("top"), 10) || 0) + this.scrollParent.scrollTop(), left: a.left - (parseInt(this.helper.css("left"), 10) || 0) + this.scrollParent.scrollLeft()} } else return { top: 0, left: 0} }, _cacheMargins: function () { this.margins = { left: parseInt(this.element.css("marginLeft"), 10) || 0, top: parseInt(this.element.css("marginTop"), 10) || 0, 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 a = this.options; if (a.containment == "parent") a.containment = this.helper[0].parentNode; if (a.containment == "document" || a.containment == "window") this.containment = [(a.containment == "document" ? 0 : d(window).scrollLeft()) - this.offset.relative.left - this.offset.parent.left, (a.containment == "document" ? 0 : d(window).scrollTop()) - this.offset.relative.top - this.offset.parent.top, (a.containment == "document" ? 0 : d(window).scrollLeft()) + d(a.containment == "document" ? document : window).width() - this.helperProportions.width - this.margins.left, (a.containment == "document" ? 0 : d(window).scrollTop()) + (d(a.containment == "document" ? document : window).height() || document.body.parentNode.scrollHeight) - this.helperProportions.height - this.margins.top]; if (!/^(document|window|parent)$/.test(a.containment) && a.containment.constructor != Array) { var b = d(a.containment)[0]; if (b) { a = d(a.containment).offset(); var c = d(b).css("overflow") != "hidden"; this.containment = [a.left + (parseInt(d(b).css("borderLeftWidth"), 10) || 0) + (parseInt(d(b).css("paddingLeft"), 10) || 0), a.top + (parseInt(d(b).css("borderTopWidth"), 10) || 0) + (parseInt(d(b).css("paddingTop"), 10) || 0), a.left + (c ? Math.max(b.scrollWidth, b.offsetWidth) : b.offsetWidth) - (parseInt(d(b).css("borderLeftWidth"), 10) || 0) - (parseInt(d(b).css("paddingRight"), 10) || 0) - this.helperProportions.width - this.margins.left - this.margins.right, a.top + (c ? Math.max(b.scrollHeight, b.offsetHeight) : b.offsetHeight) - (parseInt(d(b).css("borderTopWidth"), 10) || 0) - (parseInt(d(b).css("paddingBottom"), 10) || 0) - this.helperProportions.height - this.margins.top - this.margins.bottom] } } else if (a.containment.constructor == Array) this.containment = a.containment }, _convertPositionTo: function (a, b) { if (!b) b = this.position; a = a == "absolute" ? 1 : -1; var c = this.cssPosition == "absolute" && !(this.scrollParent[0] != document && d.ui.contains(this.scrollParent[0], this.offsetParent[0])) ? this.offsetParent : this.scrollParent, f = /(html|body)/i.test(c[0].tagName); return { top: b.top + this.offset.relative.top * a + this.offset.parent.top * a - (d.browser.safari && d.browser.version < 526 && this.cssPosition == "fixed" ? 0 : (this.cssPosition == "fixed" ? -this.scrollParent.scrollTop() : f ? 0 : c.scrollTop()) * a), left: b.left + this.offset.relative.left * a + this.offset.parent.left * a - (d.browser.safari && d.browser.version < 526 && this.cssPosition == "fixed" ? 0 : (this.cssPosition == "fixed" ? -this.scrollParent.scrollLeft() : f ? 0 : c.scrollLeft()) * a)} }, _generatePosition: function (a) { var b = this.options, c = this.cssPosition == "absolute" && !(this.scrollParent[0] != document && d.ui.contains(this.scrollParent[0], this.offsetParent[0])) ? this.offsetParent : this.scrollParent, f = /(html|body)/i.test(c[0].tagName), e = a.pageX, g = a.pageY; if (this.originalPosition) { if (this.containment) { if (a.pageX - this.offset.click.left < this.containment[0]) e = this.containment[0] + this.offset.click.left; if (a.pageY - this.offset.click.top < this.containment[1]) g = this.containment[1] + this.offset.click.top; if (a.pageX - this.offset.click.left > this.containment[2]) e = this.containment[2] + this.offset.click.left; if (a.pageY - this.offset.click.top > this.containment[3]) g = this.containment[3] + this.offset.click.top } if (b.grid) { g = this.originalPageY + Math.round((g - this.originalPageY) / b.grid[1]) * b.grid[1]; g = this.containment ? !(g - this.offset.click.top < this.containment[1] || g - this.offset.click.top > this.containment[3]) ? g : !(g - this.offset.click.top < this.containment[1]) ? g - b.grid[1] : g + b.grid[1] : g; e = this.originalPageX + Math.round((e - this.originalPageX) / b.grid[0]) * b.grid[0]; e = this.containment ? !(e - this.offset.click.left < this.containment[0] || e - this.offset.click.left > this.containment[2]) ? e : !(e - this.offset.click.left < this.containment[0]) ? e - b.grid[0] : e + b.grid[0] : e } } return { top: g - this.offset.click.top - this.offset.relative.top - this.offset.parent.top + (d.browser.safari && d.browser.version < 526 && this.cssPosition == "fixed" ? 0 : this.cssPosition == "fixed" ? -this.scrollParent.scrollTop() : f ? 0 : c.scrollTop()), left: e - this.offset.click.left - this.offset.relative.left - this.offset.parent.left + (d.browser.safari && d.browser.version < 526 && this.cssPosition == "fixed" ? 0 : this.cssPosition == "fixed" ? -this.scrollParent.scrollLeft() : f ? 0 : c.scrollLeft())} }, _clear: function () { this.helper.removeClass("ui-draggable-dragging"); this.helper[0] != this.element[0] && !this.cancelHelperRemoval && this.helper.remove(); this.helper = null; this.cancelHelperRemoval = false }, _trigger: function (a, b, c) { c = c || this._uiHash(); d.ui.plugin.call(this, a, [b, c]); if (a == "drag") this.positionAbs = this._convertPositionTo("absolute"); return d.Widget.prototype._trigger.call(this, a, b, c) }, plugins: {}, _uiHash: function () { return { helper: this.helper, position: this.position, originalPosition: this.originalPosition, offset: this.positionAbs} } }); d.extend(d.ui.draggable, { version: "1.8.11" }); d.ui.plugin.add("draggable", "connectToSortable", { start: function (a, b) { var c = d(this).data("draggable"), f = c.options, e = d.extend({}, b, { item: c.element }); c.sortables = []; d(f.connectToSortable).each(function () { var g = d.data(this, "sortable"); if (g && !g.options.disabled) { c.sortables.push({ instance: g, shouldRevert: g.options.revert }); g.refreshPositions(); g._trigger("activate", a, e) } }) }, stop: function (a, b) { var c = d(this).data("draggable"), f = d.extend({}, b, { item: c.element }); d.each(c.sortables, function () { if (this.instance.isOver) { this.instance.isOver = 0; c.cancelHelperRemoval = true; this.instance.cancelHelperRemoval = false; if (this.shouldRevert) this.instance.options.revert = true; this.instance._mouseStop(a); this.instance.options.helper = this.instance.options._helper; c.options.helper == "original" && this.instance.currentItem.css({ top: "auto", left: "auto" }) } else { this.instance.cancelHelperRemoval = false; this.instance._trigger("deactivate", a, f) } }) }, drag: function (a, b) { var c = d(this).data("draggable"), f = this; d.each(c.sortables, function () { this.instance.positionAbs = c.positionAbs; this.instance.helperProportions = c.helperProportions; this.instance.offset.click = c.offset.click; if (this.instance._intersectsWith(this.instance.containerCache)) { if (!this.instance.isOver) { this.instance.isOver = 1; this.instance.currentItem = d(f).clone().appendTo(this.instance.element).data("sortable-item", true); this.instance.options._helper = this.instance.options.helper; this.instance.options.helper = function () { return b.helper[0] }; a.target = this.instance.currentItem[0]; this.instance._mouseCapture(a, true); this.instance._mouseStart(a, true, true); this.instance.offset.click.top = c.offset.click.top; this.instance.offset.click.left = c.offset.click.left; this.instance.offset.parent.left -= c.offset.parent.left - this.instance.offset.parent.left; this.instance.offset.parent.top -= c.offset.parent.top - this.instance.offset.parent.top; c._trigger("toSortable", a); c.dropped = this.instance.element; c.currentItem = c.element; this.instance.fromOutside = c } this.instance.currentItem && this.instance._mouseDrag(a) } else if (this.instance.isOver) { this.instance.isOver = 0; this.instance.cancelHelperRemoval = true; this.instance.options.revert = false; this.instance._trigger("out", a, this.instance._uiHash(this.instance)); this.instance._mouseStop(a, true); this.instance.options.helper = this.instance.options._helper; this.instance.currentItem.remove(); this.instance.placeholder && this.instance.placeholder.remove(); c._trigger("fromSortable", a); c.dropped = false } }) } }); d.ui.plugin.add("draggable", "cursor", { start: function () { var a = d("body"), b = d(this).data("draggable").options; if (a.css("cursor")) b._cursor = a.css("cursor"); a.css("cursor", b.cursor) }, stop: function () { var a = d(this).data("draggable").options; a._cursor && d("body").css("cursor", a._cursor) } }); d.ui.plugin.add("draggable", "iframeFix", { start: function () { var a = d(this).data("draggable").options; d(a.iframeFix === true ? "iframe" : a.iframeFix).each(function () { d('<div class="ui-draggable-iframeFix" style="background: #fff;"></div>').css({ width: this.offsetWidth + "px", height: this.offsetHeight + "px", position: "absolute", opacity: "0.001", zIndex: 1E3 }).css(d(this).offset()).appendTo("body") }) }, stop: function () { d("div.ui-draggable-iframeFix").each(function () { this.parentNode.removeChild(this) }) } }); d.ui.plugin.add("draggable", "opacity", { start: function (a, b) { a = d(b.helper); b = d(this).data("draggable").options; if (a.css("opacity")) b._opacity = a.css("opacity"); a.css("opacity", b.opacity) }, stop: function (a, b) { a = d(this).data("draggable").options; a._opacity && d(b.helper).css("opacity", a._opacity) } }); d.ui.plugin.add("draggable", "scroll", { start: function () { var a = d(this).data("draggable"); if (a.scrollParent[0] != document && a.scrollParent[0].tagName != "HTML") a.overflowOffset = a.scrollParent.offset() }, drag: function (a) { var b = d(this).data("draggable"), c = b.options, f = false; if (b.scrollParent[0] != document && b.scrollParent[0].tagName != "HTML") { if (!c.axis || c.axis != "x") if (b.overflowOffset.top + b.scrollParent[0].offsetHeight - a.pageY < c.scrollSensitivity) b.scrollParent[0].scrollTop = f = b.scrollParent[0].scrollTop + c.scrollSpeed; else if (a.pageY - b.overflowOffset.top < c.scrollSensitivity) b.scrollParent[0].scrollTop = f = b.scrollParent[0].scrollTop - c.scrollSpeed; if (!c.axis || c.axis != "y") if (b.overflowOffset.left + b.scrollParent[0].offsetWidth - a.pageX < c.scrollSensitivity) b.scrollParent[0].scrollLeft = f = b.scrollParent[0].scrollLeft + c.scrollSpeed; else if (a.pageX - b.overflowOffset.left < c.scrollSensitivity) b.scrollParent[0].scrollLeft = f = b.scrollParent[0].scrollLeft - c.scrollSpeed } else { if (!c.axis || c.axis != "x") if (a.pageY - d(document).scrollTop() < c.scrollSensitivity) f = d(document).scrollTop(d(document).scrollTop() - c.scrollSpeed); else if (d(window).height() - (a.pageY - d(document).scrollTop()) < c.scrollSensitivity) f = d(document).scrollTop(d(document).scrollTop() + c.scrollSpeed); if (!c.axis || c.axis != "y") if (a.pageX - d(document).scrollLeft() < c.scrollSensitivity) f = d(document).scrollLeft(d(document).scrollLeft() - c.scrollSpeed); else if (d(window).width() - (a.pageX - d(document).scrollLeft()) < c.scrollSensitivity) f = d(document).scrollLeft(d(document).scrollLeft() + c.scrollSpeed) } f !== false && d.ui.ddmanager && !c.dropBehaviour && d.ui.ddmanager.prepareOffsets(b, a) } }); d.ui.plugin.add("draggable", "snap", { start: function () { var a = d(this).data("draggable"), b = a.options; a.snapElements = []; d(b.snap.constructor != String ? b.snap.items || ":data(draggable)" : b.snap).each(function () { var c = d(this), f = c.offset(); this != a.element[0] && a.snapElements.push({ item: this, width: c.outerWidth(), height: c.outerHeight(), top: f.top, left: f.left }) }) }, drag: function (a, b) { for (var c = d(this).data("draggable"), f = c.options, e = f.snapTolerance, g = b.offset.left, n = g + c.helperProportions.width, m = b.offset.top, o = m + c.helperProportions.height, h = c.snapElements.length - 1; h >= 0; h--) { var i = c.snapElements[h].left, k = i + c.snapElements[h].width, j = c.snapElements[h].top, l = j + c.snapElements[h].height; if (i - e < g && g < k + e && j - e < m && m < l + e || i - e < g && g < k + e && j - e < o && o < l + e || i - e < n && n < k + e && j - e < m && m < l + e || i - e < n && n < k + e && j - e < o && o < l + e) { if (f.snapMode != "inner") { var p = Math.abs(j - o) <= e, q = Math.abs(l - m) <= e, r = Math.abs(i - n) <= e, s = Math.abs(k - g) <= e; if (p) b.position.top = c._convertPositionTo("relative", { top: j - c.helperProportions.height, left: 0 }).top - c.margins.top; if (q) b.position.top = c._convertPositionTo("relative", { top: l, left: 0 }).top - c.margins.top; if (r) b.position.left = c._convertPositionTo("relative", { top: 0, left: i - c.helperProportions.width }).left - c.margins.left; if (s) b.position.left = c._convertPositionTo("relative", { top: 0, left: k }).left - c.margins.left } var t = p || q || r || s; if (f.snapMode != "outer") { p = Math.abs(j - m) <= e; q = Math.abs(l - o) <= e; r = Math.abs(i - g) <= e; s = Math.abs(k - n) <= e; if (p) b.position.top = c._convertPositionTo("relative", { top: j, left: 0 }).top - c.margins.top; if (q) b.position.top = c._convertPositionTo("relative", { top: l - c.helperProportions.height, left: 0 }).top - c.margins.top; if (r) b.position.left = c._convertPositionTo("relative", { top: 0, left: i }).left - c.margins.left; if (s) b.position.left = c._convertPositionTo("relative", { top: 0, left: k - c.helperProportions.width }).left - c.margins.left } if (!c.snapElements[h].snapping && (p || q || r || s || t)) c.options.snap.snap && c.options.snap.snap.call(c.element, a, d.extend(c._uiHash(), { snapItem: c.snapElements[h].item })); c.snapElements[h].snapping = p || q || r || s || t } else { c.snapElements[h].snapping && c.options.snap.release && c.options.snap.release.call(c.element, a, d.extend(c._uiHash(), { snapItem: c.snapElements[h].item })); c.snapElements[h].snapping = false } } } }); d.ui.plugin.add("draggable", "stack", { start: function () { var a = d(this).data("draggable").options; a = d.makeArray(d(a.stack)).sort(function (c, f) { return (parseInt(d(c).css("zIndex"), 10) || 0) - (parseInt(d(f).css("zIndex"), 10) || 0) }); if (a.length) { var b = parseInt(a[0].style.zIndex) || 0; d(a).each(function (c) { this.style.zIndex = b + c }); this[0].style.zIndex = b + a.length } } }); d.ui.plugin.add("draggable", "zIndex", { start: function (a, b) { a = d(b.helper); b = d(this).data("draggable").options; if (a.css("zIndex")) b._zIndex = a.css("zIndex"); a.css("zIndex", b.zIndex) }, stop: function (a, b) { a = d(this).data("draggable").options; a._zIndex && d(b.helper).css("zIndex", a._zIndex) } }) })(jQuery); (function (d) { d.widget("ui.droppable", { widgetEventPrefix: "drop", options: { accept: "*", activeClass: false, addClasses: true, greedy: false, hoverClass: false, scope: "default", tolerance: "intersect" }, _create: function () { var a = this.options, b = a.accept; this.isover = 0; this.isout = 1; this.accept = d.isFunction(b) ? b : function (c) { return c.is(b) }; this.proportions = { width: this.element[0].offsetWidth, height: this.element[0].offsetHeight }; d.ui.ddmanager.droppables[a.scope] = d.ui.ddmanager.droppables[a.scope] || []; d.ui.ddmanager.droppables[a.scope].push(this); a.addClasses && this.element.addClass("ui-droppable") }, destroy: function () { for (var a = d.ui.ddmanager.droppables[this.options.scope], b = 0; b < a.length; b++) a[b] == this && a.splice(b, 1); this.element.removeClass("ui-droppable ui-droppable-disabled").removeData("droppable").unbind(".droppable"); return this }, _setOption: function (a, b) { if (a == "accept") this.accept = d.isFunction(b) ? b : function (c) { return c.is(b) }; d.Widget.prototype._setOption.apply(this, arguments) }, _activate: function (a) { var b = d.ui.ddmanager.current; this.options.activeClass && this.element.addClass(this.options.activeClass); b && this._trigger("activate", a, this.ui(b)) }, _deactivate: function (a) { var b = d.ui.ddmanager.current; this.options.activeClass && this.element.removeClass(this.options.activeClass); b && this._trigger("deactivate", a, this.ui(b)) }, _over: function (a) { var b = d.ui.ddmanager.current; if (!(!b || (b.currentItem || b.element)[0] == this.element[0])) if (this.accept.call(this.element[0], b.currentItem || b.element)) { this.options.hoverClass && this.element.addClass(this.options.hoverClass); this._trigger("over", a, this.ui(b)) } }, _out: function (a) { var b = d.ui.ddmanager.current; if (!(!b || (b.currentItem || b.element)[0] == this.element[0])) if (this.accept.call(this.element[0], b.currentItem || b.element)) { this.options.hoverClass && this.element.removeClass(this.options.hoverClass); this._trigger("out", a, this.ui(b)) } }, _drop: function (a, b) { var c = b || d.ui.ddmanager.current; if (!c || (c.currentItem || c.element)[0] == this.element[0]) return false; var e = false; this.element.find(":data(droppable)").not(".ui-draggable-dragging").each(function () { var g = d.data(this, "droppable"); if (g.options.greedy && !g.options.disabled && g.options.scope == c.options.scope && g.accept.call(g.element[0], c.currentItem || c.element) && d.ui.intersect(c, d.extend(g, { offset: g.element.offset() }), g.options.tolerance)) { e = true; return false } }); if (e) return false; if (this.accept.call(this.element[0], c.currentItem || c.element)) { this.options.activeClass && this.element.removeClass(this.options.activeClass); this.options.hoverClass && this.element.removeClass(this.options.hoverClass); this._trigger("drop", a, this.ui(c)); return this.element } return false }, ui: function (a) { return { draggable: a.currentItem || a.element, helper: a.helper, position: a.position, offset: a.positionAbs} } }); d.extend(d.ui.droppable, { version: "1.8.11" }); d.ui.intersect = function (a, b, c) { if (!b.offset) return false; var e = (a.positionAbs || a.position.absolute).left, g = e + a.helperProportions.width, f = (a.positionAbs || a.position.absolute).top, h = f + a.helperProportions.height, i = b.offset.left, k = i + b.proportions.width, j = b.offset.top, l = j + b.proportions.height; switch (c) { case "fit": return i <= e && g <= k && j <= f && h <= l; case "intersect": return i < e + a.helperProportions.width / 2 && g - a.helperProportions.width / 2 < k && j < f + a.helperProportions.height / 2 && h - a.helperProportions.height / 2 < l; case "pointer": return d.ui.isOver((a.positionAbs || a.position.absolute).top + (a.clickOffset || a.offset.click).top, (a.positionAbs || a.position.absolute).left + (a.clickOffset || a.offset.click).left, j, i, b.proportions.height, b.proportions.width); case "touch": return (f >= j && f <= l || h >= j && h <= l || f < j && h > l) && (e >= i && e <= k || g >= i && g <= k || e < i && g > k); default: return false } }; d.ui.ddmanager = { current: null, droppables: { "default": [] }, prepareOffsets: function (a, b) { var c = d.ui.ddmanager.droppables[a.options.scope] || [], e = b ? b.type : null, g = (a.currentItem || a.element).find(":data(droppable)").andSelf(), f = 0; a: for (; f < c.length; f++) if (!(c[f].options.disabled || a && !c[f].accept.call(c[f].element[0], a.currentItem || a.element))) { for (var h = 0; h < g.length; h++) if (g[h] == c[f].element[0]) { c[f].proportions.height = 0; continue a } c[f].visible = c[f].element.css("display") != "none"; if (c[f].visible) { e == "mousedown" && c[f]._activate.call(c[f], b); c[f].offset = c[f].element.offset(); c[f].proportions = { width: c[f].element[0].offsetWidth, height: c[f].element[0].offsetHeight} } } }, drop: function (a, b) { var c = false; d.each(d.ui.ddmanager.droppables[a.options.scope] || [], function () { if (this.options) { if (!this.options.disabled && this.visible && d.ui.intersect(a, this, this.options.tolerance)) c = c || this._drop.call(this, b); if (!this.options.disabled && this.visible && this.accept.call(this.element[0], a.currentItem || a.element)) { this.isout = 1; this.isover = 0; this._deactivate.call(this, b) } } }); return c }, drag: function (a, b) { a.options.refreshPositions && d.ui.ddmanager.prepareOffsets(a, b); d.each(d.ui.ddmanager.droppables[a.options.scope] || [], function () { if (!(this.options.disabled || this.greedyChild || !this.visible)) { var c = d.ui.intersect(a, this, this.options.tolerance); if (c = !c && this.isover == 1 ? "isout" : c && this.isover == 0 ? "isover" : null) { var e; if (this.options.greedy) { var g = this.element.parents(":data(droppable):eq(0)"); if (g.length) { e = d.data(g[0], "droppable"); e.greedyChild = c == "isover" ? 1 : 0 } } if (e && c == "isover") { e.isover = 0; e.isout = 1; e._out.call(e, b) } this[c] = 1; this[c == "isout" ? "isover" : "isout"] = 0; this[c == "isover" ? "_over" : "_out"].call(this, b); if (e && c == "isout") { e.isout = 0; e.isover = 1; e._over.call(e, b) } } } }) } } })(jQuery); (function (e) { e.widget("ui.resizable", e.ui.mouse, { widgetEventPrefix: "resize", options: { alsoResize: false, animate: false, animateDuration: "slow", animateEasing: "swing", aspectRatio: false, autoHide: false, containment: false, ghost: false, grid: false, handles: "e,s,se", helper: false, maxHeight: null, maxWidth: null, minHeight: 10, minWidth: 10, zIndex: 1E3 }, _create: function () { var b = this, a = this.options; this.element.addClass("ui-resizable"); e.extend(this, { _aspectRatio: !!a.aspectRatio, aspectRatio: a.aspectRatio, originalElement: this.element, _proportionallyResizeElements: [], _helper: a.helper || a.ghost || a.animate ? a.helper || "ui-resizable-helper" : null }); if (this.element[0].nodeName.match(/canvas|textarea|input|select|button|img/i)) { / relative /.test(this.element.css("position")) && e.browser.opera && this.element.css({ position: "relative", top: "auto", left: "auto" }); this.element.wrap(e('<div class="ui-wrapper" style="overflow: hidden;"></div>').css({ position: this.element.css("position"), width: this.element.outerWidth(), height: this.element.outerHeight(), top: this.element.css("top"), left: this.element.css("left") })); this.element = this.element.parent().data("resizable", this.element.data("resizable")); this.elementIsWrapper = true; this.element.css({ marginLeft: this.originalElement.css("marginLeft"), marginTop: this.originalElement.css("marginTop"), marginRight: this.originalElement.css("marginRight"), marginBottom: this.originalElement.css("marginBottom") }); this.originalElement.css({ marginLeft: 0, marginTop: 0, marginRight: 0, marginBottom: 0 }); this.originalResizeStyle = this.originalElement.css("resize"); this.originalElement.css("resize", "none"); this._proportionallyResizeElements.push(this.originalElement.css({ position: "static", zoom: 1, display: "block" })); this.originalElement.css({ margin: this.originalElement.css("margin") }); this._proportionallyResize() } this.handles = a.handles || (!e(".ui-resizable-handle", this.element).length ? "e,s,se" : { n: ".ui-resizable-n", e: ".ui-resizable-e", s: ".ui-resizable-s", w: ".ui-resizable-w", se: ".ui-resizable-se", sw: ".ui-resizable-sw", ne: ".ui-resizable-ne", nw: ".ui-resizable-nw" }); if (this.handles.constructor == String) { if (this.handles == "all") this.handles = "n,e,s,w,se,sw,ne,nw"; var c = this.handles.split(","); this.handles = {}; for (var d = 0; d < c.length; d++) { var f = e.trim(c[d]), g = e('<div class="ui-resizable-handle ' + ("ui-resizable-" + f) + '"></div>'); /sw|se|ne|nw/.test(f) && g.css({ zIndex: ++a.zIndex }); "se" == f && g.addClass("ui-icon ui-icon-gripsmall-diagonal-se"); this.handles[f] = ".ui-resizable-" + f; this.element.append(g) } } this._renderAxis = function (h) { h = h || this.element; for (var i in this.handles) { if (this.handles[i].constructor == String) this.handles[i] = e(this.handles[i], this.element).show(); if (this.elementIsWrapper && this.originalElement[0].nodeName.match(/textarea|input|select|button/i)) { var j = e(this.handles[i], this.element), k = 0; k = /sw|ne|nw|se|n|s/.test(i) ? j.outerHeight() : j.outerWidth(); j = ["padding", /ne|nw|n/.test(i) ? "Top" : /se|sw|s/.test(i) ? "Bottom" : /^e$/.test(i) ? "Right" : "Left"].join(""); h.css(j, k); this._proportionallyResize() } e(this.handles[i]) } }; this._renderAxis(this.element); this._handles = e(".ui-resizable-handle", this.element).disableSelection(); this._handles.mouseover(function () { if (!b.resizing) { if (this.className) var h = this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i); b.axis = h && h[1] ? h[1] : "se" } }); if (a.autoHide) { this._handles.hide(); e(this.element).addClass("ui-resizable-autohide").hover(function () { e(this).removeClass("ui-resizable-autohide"); b._handles.show() }, function () { if (!b.resizing) { e(this).addClass("ui-resizable-autohide"); b._handles.hide() } }) } this._mouseInit() }, destroy: function () { this._mouseDestroy(); var b = function (c) { e(c).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").unbind(".resizable").find(".ui-resizable-handle").remove() }; if (this.elementIsWrapper) { b(this.element); var a = this.element; a.after(this.originalElement.css({ position: a.css("position"), width: a.outerWidth(), height: a.outerHeight(), top: a.css("top"), left: a.css("left") })).remove() } this.originalElement.css("resize", this.originalResizeStyle); b(this.originalElement); return this }, _mouseCapture: function (b) { var a = false; for (var c in this.handles) if (e(this.handles[c])[0] == b.target) a = true; return !this.options.disabled && a }, _mouseStart: function (b) { var a = this.options, c = this.element.position(), d = this.element; this.resizing = true; this.documentScroll = { top: e(document).scrollTop(), left: e(document).scrollLeft() }; if (d.is(".ui-draggable") || /absolute/.test(d.css("position"))) d.css({ position: "absolute", top: c.top, left: c.left }); e.browser.opera && /relative/.test(d.css("position")) && d.css({ position: "relative", top: "auto", left: "auto" }); this._renderProxy(); c = m(this.helper.css("left")); var f = m(this.helper.css("top")); if (a.containment) { c += e(a.containment).scrollLeft() || 0; f += e(a.containment).scrollTop() || 0 } this.offset = this.helper.offset(); this.position = { left: c, top: f }; this.size = this._helper ? { width: d.outerWidth(), height: d.outerHeight()} : { width: d.width(), height: d.height() }; this.originalSize = this._helper ? { width: d.outerWidth(), height: d.outerHeight()} : { width: d.width(), height: d.height() }; this.originalPosition = { left: c, top: f }; this.sizeDiff = { width: d.outerWidth() - d.width(), height: d.outerHeight() - d.height() }; this.originalMousePosition = { left: b.pageX, top: b.pageY }; this.aspectRatio = typeof a.aspectRatio == "number" ? a.aspectRatio : this.originalSize.width / this.originalSize.height || 1; a = e(".ui-resizable-" + this.axis).css("cursor"); e("body").css("cursor", a == "auto" ? this.axis + "-resize" : a); d.addClass("ui-resizable-resizing"); this._propagate("start", b); return true }, _mouseDrag: function (b) { var a = this.helper, c = this.originalMousePosition, d = this._change[this.axis]; if (!d) return false; c = d.apply(this, [b, b.pageX - c.left || 0, b.pageY - c.top || 0]); if (this._aspectRatio || b.shiftKey) c = this._updateRatio(c, b); c = this._respectSize(c, b); this._propagate("resize", b); a.css({ top: this.position.top + "px", left: this.position.left + "px", width: this.size.width + "px", height: this.size.height + "px" }); !this._helper && this._proportionallyResizeElements.length && this._proportionallyResize(); this._updateCache(c); this._trigger("resize", b, this.ui()); return false }, _mouseStop: function (b) { this.resizing = false; var a = this.options, c = this; if (this._helper) { var d = this._proportionallyResizeElements, f = d.length && /textarea/i.test(d[0].nodeName); d = f && e.ui.hasScroll(d[0], "left") ? 0 : c.sizeDiff.height; f = f ? 0 : c.sizeDiff.width; f = { width: c.helper.width() - f, height: c.helper.height() - d }; d = parseInt(c.element.css("left"), 10) + (c.position.left - c.originalPosition.left) || null; var g = parseInt(c.element.css("top"), 10) + (c.position.top - c.originalPosition.top) || null; a.animate || this.element.css(e.extend(f, { top: g, left: d })); c.helper.height(c.size.height); c.helper.width(c.size.width); this._helper && !a.animate && this._proportionallyResize() } e("body").css("cursor", "auto"); this.element.removeClass("ui-resizable-resizing"); this._propagate("stop", b); this._helper && this.helper.remove(); return false }, _updateCache: function (b) { this.offset = this.helper.offset(); if (l(b.left)) this.position.left = b.left; if (l(b.top)) this.position.top = b.top; if (l(b.height)) this.size.height = b.height; if (l(b.width)) this.size.width = b.width }, _updateRatio: function (b) { var a = this.position, c = this.size, d = this.axis; if (b.height) b.width = c.height * this.aspectRatio; else if (b.width) b.height = c.width / this.aspectRatio; if (d == "sw") { b.left = a.left + (c.width - b.width); b.top = null } if (d == "nw") { b.top = a.top + (c.height - b.height); b.left = a.left + (c.width - b.width) } return b }, _respectSize: function (b) { var a = this.options, c = this.axis, d = l(b.width) && a.maxWidth && a.maxWidth < b.width, f = l(b.height) && a.maxHeight && a.maxHeight < b.height, g = l(b.width) && a.minWidth && a.minWidth > b.width, h = l(b.height) && a.minHeight && a.minHeight > b.height; if (g) b.width = a.minWidth; if (h) b.height = a.minHeight; if (d) b.width = a.maxWidth; if (f) b.height = a.maxHeight; var i = this.originalPosition.left + this.originalSize.width, j = this.position.top + this.size.height, k = /sw|nw|w/.test(c); c = /nw|ne|n/.test(c); if (g && k) b.left = i - a.minWidth; if (d && k) b.left = i - a.maxWidth; if (h && c) b.top = j - a.minHeight; if (f && c) b.top = j - a.maxHeight; if ((a = !b.width && !b.height) && !b.left && b.top) b.top = null; else if (a && !b.top && b.left) b.left = null; return b }, _proportionallyResize: function () { if (this._proportionallyResizeElements.length) for (var b = this.helper || this.element, a = 0; a < this._proportionallyResizeElements.length; a++) { var c = this._proportionallyResizeElements[a]; if (!this.borderDif) { var d = [c.css("borderTopWidth"), c.css("borderRightWidth"), c.css("borderBottomWidth"), c.css("borderLeftWidth")], f = [c.css("paddingTop"), c.css("paddingRight"), c.css("paddingBottom"), c.css("paddingLeft")]; this.borderDif = e.map(d, function (g, h) { g = parseInt(g, 10) || 0; h = parseInt(f[h], 10) || 0; return g + h }) } e.browser.msie && (e(b).is(":hidden") || e(b).parents(":hidden").length) || c.css({ height: b.height() - this.borderDif[0] - this.borderDif[2] || 0, width: b.width() - this.borderDif[1] - this.borderDif[3] || 0 }) } }, _renderProxy: function () { var b = this.options; this.elementOffset = this.element.offset(); if (this._helper) { this.helper = this.helper || e('<div style="overflow:hidden;"></div>'); var a = e.browser.msie && e.browser.version < 7, c = a ? 1 : 0; a = a ? 2 : -1; this.helper.addClass(this._helper).css({ width: this.element.outerWidth() + a, height: this.element.outerHeight() + a, position: "absolute", left: this.elementOffset.left - c + "px", top: this.elementOffset.top - c + "px", zIndex: ++b.zIndex }); this.helper.appendTo("body").disableSelection() } else this.helper = this.element }, _change: { e: function (b, a) { return { width: this.originalSize.width + a} }, w: function (b, a) { return { left: this.originalPosition.left + a, width: this.originalSize.width - a} }, n: function (b, a, c) { return { top: this.originalPosition.top + c, height: this.originalSize.height - c} }, s: function (b, a, c) { return { height: this.originalSize.height + c} }, se: function (b, a, c) { return e.extend(this._change.s.apply(this, arguments), this._change.e.apply(this, [b, a, c])) }, sw: function (b, a, c) { return e.extend(this._change.s.apply(this, arguments), this._change.w.apply(this, [b, a, c])) }, ne: function (b, a, c) { return e.extend(this._change.n.apply(this, arguments), this._change.e.apply(this, [b, a, c])) }, nw: function (b, a, c) { return e.extend(this._change.n.apply(this, arguments), this._change.w.apply(this, [b, a, c])) } }, _propagate: function (b, a) { e.ui.plugin.call(this, b, [a, this.ui()]); b != "resize" && this._trigger(b, a, this.ui()) }, plugins: {}, ui: function () { return { originalElement: this.originalElement, element: this.element, helper: this.helper, position: this.position, size: this.size, originalSize: this.originalSize, originalPosition: this.originalPosition} } }); e.extend(e.ui.resizable, { version: "1.8.11" }); e.ui.plugin.add("resizable", "alsoResize", { start: function () { var b = e(this).data("resizable").options, a = function (c) { e(c).each(function () { var d = e(this); d.data("resizable-alsoresize", { width: parseInt(d.width(), 10), height: parseInt(d.height(), 10), left: parseInt(d.css("left"), 10), top: parseInt(d.css("top"), 10), position: d.css("position") }) }) }; if (typeof b.alsoResize == "object" && !b.alsoResize.parentNode) if (b.alsoResize.length) { b.alsoResize = b.alsoResize[0]; a(b.alsoResize) } else e.each(b.alsoResize, function (c) { a(c) }); else a(b.alsoResize) }, resize: function (b, a) { var c = e(this).data("resizable"); b = c.options; var d = c.originalSize, f = c.originalPosition, g = { height: c.size.height - d.height || 0, width: c.size.width - d.width || 0, top: c.position.top - f.top || 0, left: c.position.left - f.left || 0 }, h = function (i, j) { e(i).each(function () { var k = e(this), q = e(this).data("resizable-alsoresize"), p = {}, r = j && j.length ? j : k.parents(a.originalElement[0]).length ? ["width", "height"] : ["width", "height", "top", "left"]; e.each(r, function (n, o) { if ((n = (q[o] || 0) + (g[o] || 0)) && n >= 0) p[o] = n || null }); if (e.browser.opera && /relative/.test(k.css("position"))) { c._revertToRelativePosition = true; k.css({ position: "absolute", top: "auto", left: "auto" }) } k.css(p) }) }; typeof b.alsoResize == "object" && !b.alsoResize.nodeType ? e.each(b.alsoResize, function (i, j) { h(i, j) }) : h(b.alsoResize) }, stop: function () { var b = e(this).data("resizable"), a = b.options, c = function (d) { e(d).each(function () { var f = e(this); f.css({ position: f.data("resizable-alsoresize").position }) }) }; if (b._revertToRelativePosition) { b._revertToRelativePosition = false; typeof a.alsoResize == "object" && !a.alsoResize.nodeType ? e.each(a.alsoResize, function (d) { c(d) }) : c(a.alsoResize) } e(this).removeData("resizable-alsoresize") } }); e.ui.plugin.add("resizable", "animate", { stop: function (b) { var a = e(this).data("resizable"), c = a.options, d = a._proportionallyResizeElements, f = d.length && /textarea/i.test(d[0].nodeName), g = f && e.ui.hasScroll(d[0], "left") ? 0 : a.sizeDiff.height; f = { width: a.size.width - (f ? 0 : a.sizeDiff.width), height: a.size.height - g }; g = parseInt(a.element.css("left"), 10) + (a.position.left - a.originalPosition.left) || null; var h = parseInt(a.element.css("top"), 10) + (a.position.top - a.originalPosition.top) || null; a.element.animate(e.extend(f, h && g ? { top: h, left: g} : {}), { duration: c.animateDuration, easing: c.animateEasing, step: function () { var i = { width: parseInt(a.element.css("width"), 10), height: parseInt(a.element.css("height"), 10), top: parseInt(a.element.css("top"), 10), left: parseInt(a.element.css("left"), 10) }; d && d.length && e(d[0]).css({ width: i.width, height: i.height }); a._updateCache(i); a._propagate("resize", b) } }) } }); e.ui.plugin.add("resizable", "containment", { start: function () { var b = e(this).data("resizable"), a = b.element, c = b.options.containment; if (a = c instanceof e ? c.get(0) : /parent/.test(c) ? a.parent().get(0) : c) { b.containerElement = e(a); if (/document/.test(c) || c == document) { b.containerOffset = { left: 0, top: 0 }; b.containerPosition = { left: 0, top: 0 }; b.parentData = { element: e(document), left: 0, top: 0, width: e(document).width(), height: e(document).height() || document.body.parentNode.scrollHeight} } else { var d = e(a), f = []; e(["Top", "Right", "Left", "Bottom"]).each(function (i, j) { f[i] = m(d.css("padding" + j)) }); b.containerOffset = d.offset(); b.containerPosition = d.position(); b.containerSize = { height: d.innerHeight() - f[3], width: d.innerWidth() - f[1] }; c = b.containerOffset; var g = b.containerSize.height, h = b.containerSize.width; h = e.ui.hasScroll(a, "left") ? a.scrollWidth : h; g = e.ui.hasScroll(a) ? a.scrollHeight : g; b.parentData = { element: a, left: c.left, top: c.top, width: h, height: g} } } }, resize: function (b) { var a = e(this).data("resizable"), c = a.options, d = a.containerOffset, f = a.position; b = a._aspectRatio || b.shiftKey; var g = { top: 0, left: 0 }, h = a.containerElement; if (h[0] != document && /static/.test(h.css("position"))) g = d; if (f.left < (a._helper ? d.left : 0)) { a.size.width += a._helper ? a.position.left - d.left : a.position.left - g.left; if (b) a.size.height = a.size.width / c.aspectRatio; a.position.left = c.helper ? d.left : 0 } if (f.top < (a._helper ? d.top : 0)) { a.size.height += a._helper ? a.position.top - d.top : a.position.top; if (b) a.size.width = a.size.height * c.aspectRatio; a.position.top = a._helper ? d.top : 0 } a.offset.left = a.parentData.left + a.position.left; a.offset.top = a.parentData.top + a.position.top; c = Math.abs((a._helper ? a.offset.left - g.left : a.offset.left - g.left) + a.sizeDiff.width); d = Math.abs((a._helper ? a.offset.top - g.top : a.offset.top - d.top) + a.sizeDiff.height); f = a.containerElement.get(0) == a.element.parent().get(0); g = /relative|absolute/.test(a.containerElement.css("position")); if (f && g) c -= a.parentData.left; if (c + a.size.width >= a.parentData.width) { a.size.width = a.parentData.width - c; if (b) a.size.height = a.size.width / a.aspectRatio } if (d + a.size.height >= a.parentData.height) { a.size.height = a.parentData.height - d; if (b) a.size.width = a.size.height * a.aspectRatio } }, stop: function () { var b = e(this).data("resizable"), a = b.options, c = b.containerOffset, d = b.containerPosition, f = b.containerElement, g = e(b.helper), h = g.offset(), i = g.outerWidth() - b.sizeDiff.width; g = g.outerHeight() - b.sizeDiff.height; b._helper && !a.animate && /relative/.test(f.css("position")) && e(this).css({ left: h.left - d.left - c.left, width: i, height: g }); b._helper && !a.animate && /static/.test(f.css("position")) && e(this).css({ left: h.left - d.left - c.left, width: i, height: g }) } }); e.ui.plugin.add("resizable", "ghost", { start: function () { var b = e(this).data("resizable"), a = b.options, c = b.size; b.ghost = b.originalElement.clone(); b.ghost.css({ opacity: 0.25, display: "block", position: "relative", height: c.height, width: c.width, margin: 0, left: 0, top: 0 }).addClass("ui-resizable-ghost").addClass(typeof a.ghost == "string" ? a.ghost : ""); b.ghost.appendTo(b.helper) }, resize: function () { var b = e(this).data("resizable"); b.ghost && b.ghost.css({ position: "relative", height: b.size.height, width: b.size.width }) }, stop: function () { var b = e(this).data("resizable"); b.ghost && b.helper && b.helper.get(0).removeChild(b.ghost.get(0)) } }); e.ui.plugin.add("resizable", "grid", { resize: function () { var b = e(this).data("resizable"), a = b.options, c = b.size, d = b.originalSize, f = b.originalPosition, g = b.axis; a.grid = typeof a.grid == "number" ? [a.grid, a.grid] : a.grid; var h = Math.round((c.width - d.width) / (a.grid[0] || 1)) * (a.grid[0] || 1); a = Math.round((c.height - d.height) / (a.grid[1] || 1)) * (a.grid[1] || 1); if (/^(se|s|e)$/.test(g)) { b.size.width = d.width + h; b.size.height = d.height + a } else if (/^(ne)$/.test(g)) { b.size.width = d.width + h; b.size.height = d.height + a; b.position.top = f.top - a } else { if (/^(sw)$/.test(g)) { b.size.width = d.width + h; b.size.height = d.height + a } else { b.size.width = d.width + h; b.size.height = d.height + a; b.position.top = f.top - a } b.position.left = f.left - h } } }); var m = function (b) { return parseInt(b, 10) || 0 }, l = function (b) { return !isNaN(parseInt(b, 10)) } })(jQuery); (function (a) { var g, i = function (b) { a(":ui-button", b.target.form).each(function () { var c = a(this).data("button"); setTimeout(function () { c.refresh() }, 1) }) }, h = function (b) { var c = b.name, d = b.form, f = a([]); if (c) f = d ? a(d).find("[name='" + c + "']") : a("[name='" + c + "']", b.ownerDocument).filter(function () { return !this.form }); return f }; a.widget("ui.button", { options: { disabled: null, text: true, label: null, icons: { primary: null, secondary: null} }, _create: function () { this.element.closest("form").unbind("reset.button").bind("reset.button", i); if (typeof this.options.disabled !== "boolean") this.options.disabled = this.element.attr("disabled"); this._determineButtonType(); this.hasTitle = !!this.buttonElement.attr("title"); var b = this, c = this.options, d = this.type === "checkbox" || this.type === "radio", f = "ui-state-hover" + (!d ? " ui-state-active" : ""); if (c.label === null) c.label = this.buttonElement.html(); if (this.element.is(":disabled")) c.disabled = true; this.buttonElement.addClass("ui-button ui-widget ui-state-default ui-corner-all").attr("role", "button").bind("mouseenter.button", function () { if (!c.disabled) { a(this).addClass("ui-state-hover"); this === g && a(this).addClass("ui-state-active") } }).bind("mouseleave.button", function () { c.disabled || a(this).removeClass(f) }).bind("focus.button", function () { a(this).addClass("ui-state-focus") }).bind("blur.button", function () { a(this).removeClass("ui-state-focus") }); d && this.element.bind("change.button", function () { b.refresh() }); if (this.type === "checkbox") this.buttonElement.bind("click.button", function () { if (c.disabled) return false; a(this).toggleClass("ui-state-active"); b.buttonElement.attr("aria-pressed", b.element[0].checked) }); else if (this.type === "radio") this.buttonElement.bind("click.button", function () { if (c.disabled) return false; a(this).addClass("ui-state-active"); b.buttonElement.attr("aria-pressed", true); var e = b.element[0]; h(e).not(e).map(function () { return a(this).button("widget")[0] }).removeClass("ui-state-active").attr("aria-pressed", false) }); else { this.buttonElement.bind("mousedown.button", function () { if (c.disabled) return false; a(this).addClass("ui-state-active"); g = this; a(document).one("mouseup", function () { g = null }) }).bind("mouseup.button", function () { if (c.disabled) return false; a(this).removeClass("ui-state-active") }).bind("keydown.button", function (e) { if (c.disabled) return false; if (e.keyCode == a.ui.keyCode.SPACE || e.keyCode == a.ui.keyCode.ENTER) a(this).addClass("ui-state-active") }).bind("keyup.button", function () { a(this).removeClass("ui-state-active") }); this.buttonElement.is("a") && this.buttonElement.keyup(function (e) { e.keyCode === a.ui.keyCode.SPACE && a(this).click() }) } this._setOption("disabled", c.disabled) }, _determineButtonType: function () { this.type = this.element.is(":checkbox") ? "checkbox" : this.element.is(":radio") ? "radio" : this.element.is("input") ? "input" : "button"; if (this.type === "checkbox" || this.type === "radio") { var b = this.element.parents().filter(":last"), c = "label[for=" + this.element.attr("id") + "]"; this.buttonElement = b.find(c); if (!this.buttonElement.length) { b = b.length ? b.siblings() : this.element.siblings(); this.buttonElement = b.filter(c); if (!this.buttonElement.length) this.buttonElement = b.find(c) } this.element.addClass("ui-helper-hidden-accessible"); (b = this.element.is(":checked")) && this.buttonElement.addClass("ui-state-active"); this.buttonElement.attr("aria-pressed", b) } else this.buttonElement = this.element }, widget: function () { return this.buttonElement }, destroy: function () { this.element.removeClass("ui-helper-hidden-accessible"); this.buttonElement.removeClass("ui-button ui-widget ui-state-default ui-corner-all ui-state-hover ui-state-active  ui-button-icons-only ui-button-icon-only ui-button-text-icons ui-button-text-icon-primary ui-button-text-icon-secondary ui-button-text-only").removeAttr("role").removeAttr("aria-pressed").html(this.buttonElement.find(".ui-button-text").html()); this.hasTitle || this.buttonElement.removeAttr("title"); a.Widget.prototype.destroy.call(this) }, _setOption: function (b, c) { a.Widget.prototype._setOption.apply(this, arguments); if (b === "disabled") c ? this.element.attr("disabled", true) : this.element.removeAttr("disabled"); this._resetButton() }, refresh: function () { var b = this.element.is(":disabled"); b !== this.options.disabled && this._setOption("disabled", b); if (this.type === "radio") h(this.element[0]).each(function () { a(this).is(":checked") ? a(this).button("widget").addClass("ui-state-active").attr("aria-pressed", true) : a(this).button("widget").removeClass("ui-state-active").attr("aria-pressed", false) }); else if (this.type === "checkbox") this.element.is(":checked") ? this.buttonElement.addClass("ui-state-active").attr("aria-pressed", true) : this.buttonElement.removeClass("ui-state-active").attr("aria-pressed", false) }, _resetButton: function () { if (this.type === "input") this.options.label && this.element.val(this.options.label); else { var b = this.buttonElement.removeClass("ui-button-icons-only ui-button-icon-only ui-button-text-icons ui-button-text-icon-primary ui-button-text-icon-secondary ui-button-text-only"), c = a("<span></span>").addClass("ui-button-text").html(this.options.label).appendTo(b.empty()).text(), d = this.options.icons, f = d.primary && d.secondary, e = []; if (d.primary || d.secondary) { if (this.options.text) e.push("ui-button-text-icon" + (f ? "s" : d.primary ? "-primary" : "-secondary")); d.primary && b.prepend("<span class='ui-button-icon-primary ui-icon " + d.primary + "'></span>"); d.secondary && b.append("<span class='ui-button-icon-secondary ui-icon " + d.secondary + "'></span>"); if (!this.options.text) { e.push(f ? "ui-button-icons-only" : "ui-button-icon-only"); this.hasTitle || b.attr("title", c) } } else e.push("ui-button-text-only"); b.addClass(e.join(" ")) } } }); a.widget("ui.buttonset", { options: { items: ":button, :submit, :reset, :checkbox, :radio, a, :data(button)" }, _create: function () { this.element.addClass("ui-buttonset") }, _init: function () { this.refresh() }, _setOption: function (b, c) { b === "disabled" && this.buttons.button("option", b, c); a.Widget.prototype._setOption.apply(this, arguments) }, refresh: function () { this.buttons = this.element.find(this.options.items).filter(":ui-button").button("refresh").end().not(":ui-button").button().end().map(function () { return a(this).button("widget")[0] }).removeClass("ui-corner-all ui-corner-left ui-corner-right").filter(":first").addClass("ui-corner-left").end().filter(":last").addClass("ui-corner-right").end().end() }, destroy: function () { this.element.removeClass("ui-buttonset"); this.buttons.map(function () { return a(this).button("widget")[0] }).removeClass("ui-corner-left ui-corner-right").end().button("destroy"); a.Widget.prototype.destroy.call(this) } }) })(jQuery); (function (c, j) { var k = { buttons: true, height: true, maxHeight: true, maxWidth: true, minHeight: true, minWidth: true, width: true }, l = { maxHeight: true, maxWidth: true, minHeight: true, minWidth: true }; c.widget("ui.dialog", { options: { autoOpen: true, buttons: {}, closeOnEscape: true, closeText: "close", dialogClass: "", draggable: true, hide: null, height: "auto", maxHeight: false, maxWidth: false, minHeight: 150, minWidth: 150, modal: false, position: { my: "center", at: "center", collision: "fit", using: function (a) { var b = c(this).css(a).offset().top; b < 0 && c(this).css("top", a.top - b) } }, resizable: true, show: null, stack: true, title: "", width: 300, zIndex: 1E3 }, _create: function () { this.originalTitle = this.element.attr("title"); if (typeof this.originalTitle !== "string") this.originalTitle = ""; this.options.title = this.options.title || this.originalTitle; var a = this, b = a.options, d = b.title || "&#160;", e = c.ui.dialog.getTitleId(a.element), g = (a.uiDialog = c("<div></div>")).appendTo(document.body).hide().addClass("ui-dialog ui-widget ui-widget-content ui-corner-all " + b.dialogClass).css({ zIndex: b.zIndex }).attr("tabIndex", -1).css("outline", 0).keydown(function (i) { if (b.closeOnEscape && i.keyCode && i.keyCode === c.ui.keyCode.ESCAPE) { a.close(i); i.preventDefault() } }).attr({ role: "dialog", "aria-labelledby": e }).mousedown(function (i) { a.moveToTop(false, i) }); a.element.show().removeAttr("title").addClass("ui-dialog-content ui-widget-content").appendTo(g); var f = (a.uiDialogTitlebar = c("<div></div>")).addClass("ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix").prependTo(g), h = c('<a href="#"></a>').addClass("ui-dialog-titlebar-close ui-corner-all").attr("role", "button").hover(function () { h.addClass("ui-state-hover") }, function () { h.removeClass("ui-state-hover") }).focus(function () { h.addClass("ui-state-focus") }).blur(function () { h.removeClass("ui-state-focus") }).click(function (i) { a.close(i); return false }).appendTo(f); (a.uiDialogTitlebarCloseText = c("<span></span>")).addClass("ui-icon ui-icon-closethick").text(b.closeText).appendTo(h); c("<span></span>").addClass("ui-dialog-title").attr("id", e).html(d).prependTo(f); if (c.isFunction(b.beforeclose) && !c.isFunction(b.beforeClose)) b.beforeClose = b.beforeclose; f.find("*").add(f).disableSelection(); b.draggable && c.fn.draggable && a._makeDraggable(); b.resizable && c.fn.resizable && a._makeResizable(); a._createButtons(b.buttons); a._isOpen = false; c.fn.bgiframe && g.bgiframe() }, _init: function () { this.options.autoOpen && this.open() }, destroy: function () { var a = this; a.overlay && a.overlay.destroy(); a.uiDialog.hide(); a.element.unbind(".dialog").removeData("dialog").removeClass("ui-dialog-content ui-widget-content").hide().appendTo("body"); a.uiDialog.remove(); a.originalTitle && a.element.attr("title", a.originalTitle); return a }, widget: function () { return this.uiDialog }, close: function (a) { var b = this, d, e; if (false !== b._trigger("beforeClose", a)) { b.overlay && b.overlay.destroy(); b.uiDialog.unbind("keypress.ui-dialog"); b._isOpen = false; if (b.options.hide) b.uiDialog.hide(b.options.hide, function () { b._trigger("close", a) }); else { b.uiDialog.hide(); b._trigger("close", a) } c.ui.dialog.overlay.resize(); if (b.options.modal) { d = 0; c(".ui-dialog").each(function () { if (this !== b.uiDialog[0]) { e = c(this).css("z-index"); isNaN(e) || (d = Math.max(d, e)) } }); c.ui.dialog.maxZ = d } return b } }, isOpen: function () { return this._isOpen }, moveToTop: function (a, b) { var d = this, e = d.options; if (e.modal && !a || !e.stack && !e.modal) return d._trigger("focus", b); if (e.zIndex > c.ui.dialog.maxZ) c.ui.dialog.maxZ = e.zIndex; if (d.overlay) { c.ui.dialog.maxZ += 1; d.overlay.$el.css("z-index", c.ui.dialog.overlay.maxZ = c.ui.dialog.maxZ) } a = { scrollTop: d.element.attr("scrollTop"), scrollLeft: d.element.attr("scrollLeft") }; c.ui.dialog.maxZ += 1; d.uiDialog.css("z-index", c.ui.dialog.maxZ); d.element.attr(a); d._trigger("focus", b); return d }, open: function () { if (!this._isOpen) { var a = this, b = a.options, d = a.uiDialog; a.overlay = b.modal ? new c.ui.dialog.overlay(a) : null; a._size(); a._position(b.position); d.show(b.show); a.moveToTop(true); b.modal && d.bind("keypress.ui-dialog", function (e) { if (e.keyCode === c.ui.keyCode.TAB) { var g = c(":tabbable", this), f = g.filter(":first"); g = g.filter(":last"); if (e.target === g[0] && !e.shiftKey) { f.focus(1); return false } else if (e.target === f[0] && e.shiftKey) { g.focus(1); return false } } }); c(a.element.find(":tabbable").get().concat(d.find(".ui-dialog-buttonpane :tabbable").get().concat(d.get()))).eq(0).focus(); a._isOpen = true; a._trigger("open"); return a } }, _createButtons: function (a) { var b = this, d = false, e = c("<div></div>").addClass("ui-dialog-buttonpane ui-widget-content ui-helper-clearfix"), g = c("<div></div>").addClass("ui-dialog-buttonset").appendTo(e); b.uiDialog.find(".ui-dialog-buttonpane").remove(); typeof a === "object" && a !== null && c.each(a, function () { return !(d = true) }); if (d) { c.each(a, function (f, h) { h = c.isFunction(h) ? { click: h, text: f} : h; f = c('<button type="button"></button>').attr(h, true).unbind("click").click(function () { h.click.apply(b.element[0], arguments) }).appendTo(g); c.fn.button && f.button() }); e.appendTo(b.uiDialog) } }, _makeDraggable: function () { function a(f) { return { position: f.position, offset: f.offset} } var b = this, d = b.options, e = c(document), g; b.uiDialog.draggable({ cancel: ".ui-dialog-content, .ui-dialog-titlebar-close", handle: ".ui-dialog-titlebar", containment: "document", start: function (f, h) { g = d.height === "auto" ? "auto" : c(this).height(); c(this).height(c(this).height()).addClass("ui-dialog-dragging"); b._trigger("dragStart", f, a(h)) }, drag: function (f, h) { b._trigger("drag", f, a(h)) }, stop: function (f, h) { d.position = [h.position.left - e.scrollLeft(), h.position.top - e.scrollTop()]; c(this).removeClass("ui-dialog-dragging").height(g); b._trigger("dragStop", f, a(h)); c.ui.dialog.overlay.resize() } }) }, _makeResizable: function (a) { function b(f) { return { originalPosition: f.originalPosition, originalSize: f.originalSize, position: f.position, size: f.size} } a = a === j ? this.options.resizable : a; var d = this, e = d.options, g = d.uiDialog.css("position"); a = typeof a === "string" ? a : "n,e,s,w,se,sw,ne,nw"; d.uiDialog.resizable({ cancel: ".ui-dialog-content", containment: "document", alsoResize: d.element, maxWidth: e.maxWidth, maxHeight: e.maxHeight, minWidth: e.minWidth, minHeight: d._minHeight(), handles: a, start: function (f, h) { c(this).addClass("ui-dialog-resizing"); d._trigger("resizeStart", f, b(h)) }, resize: function (f, h) { d._trigger("resize", f, b(h)) }, stop: function (f, h) { c(this).removeClass("ui-dialog-resizing"); e.height = c(this).height(); e.width = c(this).width(); d._trigger("resizeStop", f, b(h)); c.ui.dialog.overlay.resize() } }).css("position", g).find(".ui-resizable-se").addClass("ui-icon ui-icon-grip-diagonal-se") }, _minHeight: function () { var a = this.options; return a.height === "auto" ? a.minHeight : Math.min(a.minHeight, a.height) }, _position: function (a) { var b = [], d = [0, 0], e; if (a) { if (typeof a === "string" || typeof a === "object" && "0" in a) { b = a.split ? a.split(" ") : [a[0], a[1]]; if (b.length === 1) b[1] = b[0]; c.each(["left", "top"], function (g, f) { if (+b[g] === b[g]) { d[g] = b[g]; b[g] = f } }); a = { my: b.join(" "), at: b.join(" "), offset: d.join(" ")} } a = c.extend({}, c.ui.dialog.prototype.options.position, a) } else a = c.ui.dialog.prototype.options.position; (e = this.uiDialog.is(":visible")) || this.uiDialog.show(); this.uiDialog.css({ top: 0, left: 0 }).position(c.extend({ of: window }, a)); e || this.uiDialog.hide() }, _setOptions: function (a) { var b = this, d = {}, e = false; c.each(a, function (g, f) { b._setOption(g, f); if (g in k) e = true; if (g in l) d[g] = f }); e && this._size(); this.uiDialog.is(":data(resizable)") && this.uiDialog.resizable("option", d) }, _setOption: function (a, b) { var d = this, e = d.uiDialog; switch (a) { case "beforeclose": a = "beforeClose"; break; case "buttons": d._createButtons(b); break; case "closeText": d.uiDialogTitlebarCloseText.text("" + b); break; case "dialogClass": e.removeClass(d.options.dialogClass).addClass("ui-dialog ui-widget ui-widget-content ui-corner-all " + b); break; case "disabled": b ? e.addClass("ui-dialog-disabled") : e.removeClass("ui-dialog-disabled"); break; case "draggable": var g = e.is(":data(draggable)"); g && !b && e.draggable("destroy"); !g && b && d._makeDraggable(); break; case "position": d._position(b); break; case "resizable": (g = e.is(":data(resizable)")) && !b && e.resizable("destroy"); g && typeof b === "string" && e.resizable("option", "handles", b); !g && b !== false && d._makeResizable(b); break; case "title": c(".ui-dialog-title", d.uiDialogTitlebar).html("" + (b || "&#160;")); break } c.Widget.prototype._setOption.apply(d, arguments) }, _size: function () { var a = this.options, b, d, e = this.uiDialog.is(":visible"); this.element.show().css({ width: "auto", minHeight: 0, height: 0 }); if (a.minWidth > a.width) a.width = a.minWidth; b = this.uiDialog.css({ height: "auto", width: a.width }).height(); d = Math.max(0, a.minHeight - b); if (a.height === "auto") if (c.support.minHeight) this.element.css({ minHeight: d, height: "auto" }); else { this.uiDialog.show(); a = this.element.css("height", "auto").height(); e || this.uiDialog.hide(); this.element.height(Math.max(a, d)) } else this.element.height(Math.max(a.height - b, 0)); this.uiDialog.is(":data(resizable)") && this.uiDialog.resizable("option", "minHeight", this._minHeight()) } }); c.extend(c.ui.dialog, { version: "1.8.11", uuid: 0, maxZ: 0, getTitleId: function (a) { a = a.attr("id"); if (!a) { this.uuid += 1; a = this.uuid } return "ui-dialog-title-" + a }, overlay: function (a) { this.$el = c.ui.dialog.overlay.create(a) } }); c.extend(c.ui.dialog.overlay, { instances: [], oldInstances: [], maxZ: 0, events: c.map("focus,mousedown,mouseup,keydown,keypress,click".split(","), function (a) { return a + ".dialog-overlay" }).join(" "), create: function (a) { if (this.instances.length === 0) { setTimeout(function () { c.ui.dialog.overlay.instances.length && c(document).bind(c.ui.dialog.overlay.events, function (d) { if (c(d.target).zIndex() < c.ui.dialog.overlay.maxZ) return false }) }, 1); c(document).bind("keydown.dialog-overlay", function (d) { if (a.options.closeOnEscape && d.keyCode && d.keyCode === c.ui.keyCode.ESCAPE) { a.close(d); d.preventDefault() } }); c(window).bind("resize.dialog-overlay", c.ui.dialog.overlay.resize) } var b = (this.oldInstances.pop() || c("<div></div>").addClass("ui-widget-overlay")).appendTo(document.body).css({ width: this.width(), height: this.height() }); c.fn.bgiframe && b.bgiframe(); this.instances.push(b); return b }, destroy: function (a) { var b = c.inArray(a, this.instances); b != -1 && this.oldInstances.push(this.instances.splice(b, 1)[0]); this.instances.length === 0 && c([document, window]).unbind(".dialog-overlay"); a.remove(); var d = 0; c.each(this.instances, function () { d = Math.max(d, this.css("z-index")) }); this.maxZ = d }, height: function () { var a, b; if (c.browser.msie && c.browser.version < 7) { a = Math.max(document.documentElement.scrollHeight, document.body.scrollHeight); b = Math.max(document.documentElement.offsetHeight, document.body.offsetHeight); return a < b ? c(window).height() + "px" : a + "px" } else return c(document).height() + "px" }, width: function () { var a, b; if (c.browser.msie && c.browser.version < 7) { a = Math.max(document.documentElement.scrollWidth, document.body.scrollWidth); b = Math.max(document.documentElement.offsetWidth, document.body.offsetWidth); return a < b ? c(window).width() + "px" : a + "px" } else return c(document).width() + "px" }, resize: function () { var a = c([]); c.each(c.ui.dialog.overlay.instances, function () { a = a.add(this) }); a.css({ width: 0, height: 0 }).css({ width: c.ui.dialog.overlay.width(), height: c.ui.dialog.overlay.height() }) } }); c.extend(c.ui.dialog.overlay.prototype, { destroy: function () { c.ui.dialog.overlay.destroy(this.$el) } }) })(jQuery); (function (d, p) { function u() { return ++v } function w() { return ++x } var v = 0, x = 0; d.widget("ui.tabs", { options: { add: null, ajaxOptions: null, cache: false, cookie: null, collapsible: false, disable: null, disabled: [], enable: null, event: "click", fx: null, idPrefix: "ui-tabs-", load: null, panelTemplate: "<div></div>", remove: null, select: null, show: null, spinner: "<em>Loading&#8230;</em>", tabTemplate: "<li><a href='#{href}'><span>#{label}</span></a></li>" }, _create: function () { this._tabify(true) }, _setOption: function (b, e) { if (b == "selected") this.options.collapsible && e == this.options.selected || this.select(e); else { this.options[b] = e; this._tabify() } }, _tabId: function (b) { return b.title && b.title.replace(/\s/g, "_").replace(/[^\w\u00c0-\uFFFF-]/g, "") || this.options.idPrefix + u() }, _sanitizeSelector: function (b) { return b.replace(/:/g, "\\:") }, _cookie: function () { var b = this.cookie || (this.cookie = this.options.cookie.name || "ui-tabs-" + w()); return d.cookie.apply(null, [b].concat(d.makeArray(arguments))) }, _ui: function (b, e) { return { tab: b, panel: e, index: this.anchors.index(b)} }, _cleanup: function () { this.lis.filter(".ui-state-processing").removeClass("ui-state-processing").find("span:data(label.tabs)").each(function () { var b = d(this); b.html(b.data("label.tabs")).removeData("label.tabs") }) }, _tabify: function (b) { function e(g, f) { g.css("display", ""); !d.support.opacity && f.opacity && g[0].style.removeAttribute("filter") } var a = this, c = this.options, h = /^#.+/; this.list = this.element.find("ol,ul").eq(0); this.lis = d(" > li:has(a[href])", this.list); this.anchors = this.lis.map(function () { return d("a", this)[0] }); this.panels = d([]); this.anchors.each(function (g, f) { var i = d(f).attr("href"), l = i.split("#")[0], q; if (l && (l === location.toString().split("#")[0] || (q = d("base")[0]) && l === q.href)) { i = f.hash; f.href = i } if (h.test(i)) a.panels = a.panels.add(a.element.find(a._sanitizeSelector(i))); else if (i && i !== "#") { d.data(f, "href.tabs", i); d.data(f, "load.tabs", i.replace(/#.*$/, "")); i = a._tabId(f); f.href = "#" + i; f = a.element.find("#" + i); if (!f.length) { f = d(c.panelTemplate).attr("id", i).addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").insertAfter(a.panels[g - 1] || a.list); f.data("destroy.tabs", true) } a.panels = a.panels.add(f) } else c.disabled.push(g) }); if (b) { this.element.addClass("ui-tabs ui-widget ui-widget-content ui-corner-all"); this.list.addClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all"); this.lis.addClass("ui-state-default ui-corner-top"); this.panels.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom"); if (c.selected === p) { location.hash && this.anchors.each(function (g, f) { if (f.hash == location.hash) { c.selected = g; return false } }); if (typeof c.selected !== "number" && c.cookie) c.selected = parseInt(a._cookie(), 10); if (typeof c.selected !== "number" && this.lis.filter(".ui-tabs-selected").length) c.selected = this.lis.index(this.lis.filter(".ui-tabs-selected")); c.selected = c.selected || (this.lis.length ? 0 : -1) } else if (c.selected === null) c.selected = -1; c.selected = c.selected >= 0 && this.anchors[c.selected] || c.selected < 0 ? c.selected : 0; c.disabled = d.unique(c.disabled.concat(d.map(this.lis.filter(".ui-state-disabled"), function (g) { return a.lis.index(g) }))).sort(); d.inArray(c.selected, c.disabled) != -1 && c.disabled.splice(d.inArray(c.selected, c.disabled), 1); this.panels.addClass("ui-tabs-hide"); this.lis.removeClass("ui-tabs-selected ui-state-active"); if (c.selected >= 0 && this.anchors.length) { a.element.find(a._sanitizeSelector(a.anchors[c.selected].hash)).removeClass("ui-tabs-hide"); this.lis.eq(c.selected).addClass("ui-tabs-selected ui-state-active"); a.element.queue("tabs", function () { a._trigger("show", null, a._ui(a.anchors[c.selected], a.element.find(a._sanitizeSelector(a.anchors[c.selected].hash))[0])) }); this.load(c.selected) } d(window).bind("unload", function () { a.lis.add(a.anchors).unbind(".tabs"); a.lis = a.anchors = a.panels = null }) } else c.selected = this.lis.index(this.lis.filter(".ui-tabs-selected")); this.element[c.collapsible ? "addClass" : "removeClass"]("ui-tabs-collapsible"); c.cookie && this._cookie(c.selected, c.cookie); b = 0; for (var j; j = this.lis[b]; b++) d(j)[d.inArray(b, c.disabled) != -1 && !d(j).hasClass("ui-tabs-selected") ? "addClass" : "removeClass"]("ui-state-disabled"); c.cache === false && this.anchors.removeData("cache.tabs"); this.lis.add(this.anchors).unbind(".tabs"); if (c.event !== "mouseover") { var k = function (g, f) { f.is(":not(.ui-state-disabled)") && f.addClass("ui-state-" + g) }, n = function (g, f) { f.removeClass("ui-state-" + g) }; this.lis.bind("mouseover.tabs", function () { k("hover", d(this)) }); this.lis.bind("mouseout.tabs", function () { n("hover", d(this)) }); this.anchors.bind("focus.tabs", function () { k("focus", d(this).closest("li")) }); this.anchors.bind("blur.tabs", function () { n("focus", d(this).closest("li")) }) } var m, o; if (c.fx) if (d.isArray(c.fx)) { m = c.fx[0]; o = c.fx[1] } else m = o = c.fx; var r = o ? function (g, f) { d(g).closest("li").addClass("ui-tabs-selected ui-state-active"); f.hide().removeClass("ui-tabs-hide").animate(o, o.duration || "normal", function () { e(f, o); a._trigger("show", null, a._ui(g, f[0])) }) } : function (g, f) { d(g).closest("li").addClass("ui-tabs-selected ui-state-active"); f.removeClass("ui-tabs-hide"); a._trigger("show", null, a._ui(g, f[0])) }, s = m ? function (g, f) { f.animate(m, m.duration || "normal", function () { a.lis.removeClass("ui-tabs-selected ui-state-active"); f.addClass("ui-tabs-hide"); e(f, m); a.element.dequeue("tabs") }) } : function (g, f) { a.lis.removeClass("ui-tabs-selected ui-state-active"); f.addClass("ui-tabs-hide"); a.element.dequeue("tabs") }; this.anchors.bind(c.event + ".tabs", function () { var g = this, f = d(g).closest("li"), i = a.panels.filter(":not(.ui-tabs-hide)"), l = a.element.find(a._sanitizeSelector(g.hash)); if (f.hasClass("ui-tabs-selected") && !c.collapsible || f.hasClass("ui-state-disabled") || f.hasClass("ui-state-processing") || a.panels.filter(":animated").length || a._trigger("select", null, a._ui(this, l[0])) === false) { this.blur(); return false } c.selected = a.anchors.index(this); a.abort(); if (c.collapsible) if (f.hasClass("ui-tabs-selected")) { c.selected = -1; c.cookie && a._cookie(c.selected, c.cookie); a.element.queue("tabs", function () { s(g, i) }).dequeue("tabs"); this.blur(); return false } else if (!i.length) { c.cookie && a._cookie(c.selected, c.cookie); a.element.queue("tabs", function () { r(g, l) }); a.load(a.anchors.index(this)); this.blur(); return false } c.cookie && a._cookie(c.selected, c.cookie); if (l.length) { i.length && a.element.queue("tabs", function () { s(g, i) }); a.element.queue("tabs", function () { r(g, l) }); a.load(a.anchors.index(this)) } else throw "jQuery UI Tabs: Mismatching fragment identifier."; d.browser.msie && this.blur() }); this.anchors.bind("click.tabs", function () { return false }) }, _getIndex: function (b) { if (typeof b == "string") b = this.anchors.index(this.anchors.filter("[href$=" + b + "]")); return b }, destroy: function () { var b = this.options; this.abort(); this.element.unbind(".tabs").removeClass("ui-tabs ui-widget ui-widget-content ui-corner-all ui-tabs-collapsible").removeData("tabs"); this.list.removeClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all"); this.anchors.each(function () { var e = d.data(this, "href.tabs"); if (e) this.href = e; var a = d(this).unbind(".tabs"); d.each(["href", "load", "cache"], function (c, h) { a.removeData(h + ".tabs") }) }); this.lis.unbind(".tabs").add(this.panels).each(function () { d.data(this, "destroy.tabs") ? d(this).remove() : d(this).removeClass("ui-state-default ui-corner-top ui-tabs-selected ui-state-active ui-state-hover ui-state-focus ui-state-disabled ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide") }); b.cookie && this._cookie(null, b.cookie); return this }, add: function (b, e, a) { if (a === p) a = this.anchors.length; var c = this, h = this.options; e = d(h.tabTemplate.replace(/#\{href\}/g, b).replace(/#\{label\}/g, e)); b = !b.indexOf("#") ? b.replace("#", "") : this._tabId(d("a", e)[0]); e.addClass("ui-state-default ui-corner-top").data("destroy.tabs", true); var j = c.element.find("#" + b); j.length || (j = d(h.panelTemplate).attr("id", b).data("destroy.tabs", true)); j.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide"); if (a >= this.lis.length) { e.appendTo(this.list); j.appendTo(this.list[0].parentNode) } else { e.insertBefore(this.lis[a]); j.insertBefore(this.panels[a]) } h.disabled = d.map(h.disabled, function (k) { return k >= a ? ++k : k }); this._tabify(); if (this.anchors.length == 1) { h.selected = 0; e.addClass("ui-tabs-selected ui-state-active"); j.removeClass("ui-tabs-hide"); this.element.queue("tabs", function () { c._trigger("show", null, c._ui(c.anchors[0], c.panels[0])) }); this.load(0) } this._trigger("add", null, this._ui(this.anchors[a], this.panels[a])); return this }, remove: function (b) { b = this._getIndex(b); var e = this.options, a = this.lis.eq(b).remove(), c = this.panels.eq(b).remove(); if (a.hasClass("ui-tabs-selected") && this.anchors.length > 1) this.select(b + (b + 1 < this.anchors.length ? 1 : -1)); e.disabled = d.map(d.grep(e.disabled, function (h) { return h != b }), function (h) { return h >= b ? --h : h }); this._tabify(); this._trigger("remove", null, this._ui(a.find("a")[0], c[0])); return this }, enable: function (b) { b = this._getIndex(b); var e = this.options; if (d.inArray(b, e.disabled) != -1) { this.lis.eq(b).removeClass("ui-state-disabled"); e.disabled = d.grep(e.disabled, function (a) { return a != b }); this._trigger("enable", null, this._ui(this.anchors[b], this.panels[b])); return this } }, disable: function (b) { b = this._getIndex(b); var e = this.options; if (b != e.selected) { this.lis.eq(b).addClass("ui-state-disabled"); e.disabled.push(b); e.disabled.sort(); this._trigger("disable", null, this._ui(this.anchors[b], this.panels[b])) } return this }, select: function (b) { b = this._getIndex(b); if (b == -1) if (this.options.collapsible && this.options.selected != -1) b = this.options.selected; else return this; this.anchors.eq(b).trigger(this.options.event + ".tabs"); return this }, load: function (b) { b = this._getIndex(b); var e = this, a = this.options, c = this.anchors.eq(b)[0], h = d.data(c, "load.tabs"); this.abort(); if (!h || this.element.queue("tabs").length !== 0 && d.data(c, "cache.tabs")) this.element.dequeue("tabs"); else { this.lis.eq(b).addClass("ui-state-processing"); if (a.spinner) { var j = d("span", c); j.data("label.tabs", j.html()).html(a.spinner) } this.xhr = d.ajax(d.extend({}, a.ajaxOptions, { url: h, success: function (k, n) { e.element.find(e._sanitizeSelector(c.hash)).html(k); e._cleanup(); a.cache && d.data(c, "cache.tabs", true); e._trigger("load", null, e._ui(e.anchors[b], e.panels[b])); try { a.ajaxOptions.success(k, n) } catch (m) { } }, error: function (k, n) { e._cleanup(); e._trigger("load", null, e._ui(e.anchors[b], e.panels[b])); try { a.ajaxOptions.error(k, n, b, c) } catch (m) { } } })); e.element.dequeue("tabs"); return this } }, abort: function () { this.element.queue([]); this.panels.stop(false, true); this.element.queue("tabs", this.element.queue("tabs").splice(-2, 2)); if (this.xhr) { this.xhr.abort(); delete this.xhr } this._cleanup(); return this }, url: function (b, e) { this.anchors.eq(b).removeData("cache.tabs").data("load.tabs", e); return this }, length: function () { return this.anchors.length } }); d.extend(d.ui.tabs, { version: "1.8.11" }); d.extend(d.ui.tabs.prototype, { rotation: null, rotate: function (b, e) { var a = this, c = this.options, h = a._rotate || (a._rotate = function (j) { clearTimeout(a.rotation); a.rotation = setTimeout(function () { var k = c.selected; a.select(++k < a.anchors.length ? k : 0) }, b); j && j.stopPropagation() }); e = a._unrotate || (a._unrotate = !e ? function (j) { j.clientX && a.rotate(null) } : function () { t = c.selected; h() }); if (b) { this.element.bind("tabsshow", h); this.anchors.bind(c.event + ".tabs", e); h() } else { clearTimeout(a.rotation); this.element.unbind("tabsshow", h); this.anchors.unbind(c.event + ".tabs", e); delete this._rotate; delete this._unrotate } return this } }) })(jQuery); (function (d, A) { function K() { this.debug = false; this._curInst = null; this._keyEvent = false; this._disabledInputs = []; this._inDialog = this._datepickerShowing = false; this._mainDivId = "ui-datepicker-div"; this._inlineClass = "ui-datepicker-inline"; this._appendClass = "ui-datepicker-append"; this._triggerClass = "ui-datepicker-trigger"; this._dialogClass = "ui-datepicker-dialog"; this._disableClass = "ui-datepicker-disabled"; this._unselectableClass = "ui-datepicker-unselectable"; this._currentClass = "ui-datepicker-current-day"; this._dayOverClass = "ui-datepicker-days-cell-over"; this.regional = []; this.regional[""] = { closeText: "Done", prevText: "Prev", nextText: "Next", currentText: "Today", monthNames: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"], monthNamesShort: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"], dayNames: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"], dayNamesShort: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"], dayNamesMin: ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"], weekHeader: "Wk", dateFormat: "mm/dd/yy", firstDay: 0, isRTL: false, showMonthAfterYear: false, yearSuffix: "" }; this._defaults = { showOn: "focus", showAnim: "fadeIn", showOptions: {}, defaultDate: null, appendText: "", buttonText: "...", buttonImage: "", buttonImageOnly: false, hideIfNoPrevNext: false, navigationAsDateFormat: false, gotoCurrent: false, changeMonth: false, changeYear: false, yearRange: "c-10:c+10", showOtherMonths: false, selectOtherMonths: false, showWeek: false, calculateWeek: this.iso8601Week, shortYearCutoff: "+10", minDate: null, maxDate: null, duration: "fast", beforeShowDay: null, beforeShow: null, onSelect: null, onChangeMonthYear: null, onClose: null, numberOfMonths: 1, showCurrentAtPos: 0, stepMonths: 1, stepBigMonths: 12, altField: "", altFormat: "", constrainInput: true, showButtonPanel: false, autoSize: false }; d.extend(this._defaults, this.regional[""]); this.dpDiv = d('<div id="' + this._mainDivId + '" class="ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all"></div>') } function F(a, b) { d.extend(a, b); for (var c in b) if (b[c] == null || b[c] == A) a[c] = b[c]; return a } d.extend(d.ui, { datepicker: { version: "1.8.11"} }); var y = (new Date).getTime(); d.extend(K.prototype, { markerClassName: "hasDatepicker", log: function () { this.debug && console.log.apply("", arguments) }, _widgetDatepicker: function () { return this.dpDiv }, setDefaults: function (a) { F(this._defaults, a || {}); return this }, _attachDatepicker: function (a, b) { var c = null; for (var e in this._defaults) { var f = a.getAttribute("date:" + e); if (f) { c = c || {}; try { c[e] = eval(f) } catch (h) { c[e] = f } } } e = a.nodeName.toLowerCase(); f = e == "div" || e == "span"; if (!a.id) { this.uuid += 1; a.id = "dp" + this.uuid } var i = this._newInst(d(a), f); i.settings = d.extend({}, b || {}, c || {}); if (e == "input") this._connectDatepicker(a, i); else f && this._inlineDatepicker(a, i) }, _newInst: function (a, b) { return { id: a[0].id.replace(/([^A-Za-z0-9_-])/g, "\\\\$1"), input: a, selectedDay: 0, selectedMonth: 0, selectedYear: 0, drawMonth: 0, drawYear: 0, inline: b, dpDiv: !b ? this.dpDiv : d('<div class="' + this._inlineClass + ' ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all"></div>')} }, _connectDatepicker: function (a, b) { var c = d(a); b.append = d([]); b.trigger = d([]); if (!c.hasClass(this.markerClassName)) { this._attachments(c, b); c.addClass(this.markerClassName).keydown(this._doKeyDown).keypress(this._doKeyPress).keyup(this._doKeyUp).bind("setData.datepicker", function (e, f, h) { b.settings[f] = h }).bind("getData.datepicker", function (e, f) { return this._get(b, f) }); this._autoSize(b); d.data(a, "datepicker", b) } }, _attachments: function (a, b) { var c = this._get(b, "appendText"), e = this._get(b, "isRTL"); b.append && b.append.remove(); if (c) { b.append = d('<span class="' + this._appendClass + '">' + c + "</span>"); a[e ? "before" : "after"](b.append) } a.unbind("focus", this._showDatepicker); b.trigger && b.trigger.remove(); c = this._get(b, "showOn"); if (c == "focus" || c == "both") a.focus(this._showDatepicker); if (c == "button" || c == "both") { c = this._get(b, "buttonText"); var f = this._get(b, "buttonImage"); b.trigger = d(this._get(b, "buttonImageOnly") ? d("<img/>").addClass(this._triggerClass).attr({ src: f, alt: c, title: c }) : d('<button type="button"></button>').addClass(this._triggerClass).html(f == "" ? c : d("<img/>").attr({ src: f, alt: c, title: c }))); a[e ? "before" : "after"](b.trigger); b.trigger.click(function () { d.datepicker._datepickerShowing && d.datepicker._lastInput == a[0] ? d.datepicker._hideDatepicker() : d.datepicker._showDatepicker(a[0]); return false }) } }, _autoSize: function (a) { if (this._get(a, "autoSize") && !a.inline) { var b = new Date(2009, 11, 20), c = this._get(a, "dateFormat"); if (c.match(/[DM]/)) { var e = function (f) { for (var h = 0, i = 0, g = 0; g < f.length; g++) if (f[g].length > h) { h = f[g].length; i = g } return i }; b.setMonth(e(this._get(a, c.match(/MM/) ? "monthNames" : "monthNamesShort"))); b.setDate(e(this._get(a, c.match(/DD/) ? "dayNames" : "dayNamesShort")) + 20 - b.getDay()) } a.input.attr("size", this._formatDate(a, b).length) } }, _inlineDatepicker: function (a, b) { var c = d(a); if (!c.hasClass(this.markerClassName)) { c.addClass(this.markerClassName).append(b.dpDiv).bind("setData.datepicker", function (e, f, h) { b.settings[f] = h }).bind("getData.datepicker", function (e, f) { return this._get(b, f) }); d.data(a, "datepicker", b); this._setDate(b, this._getDefaultDate(b), true); this._updateDatepicker(b); this._updateAlternate(b); b.dpDiv.show() } }, _dialogDatepicker: function (a, b, c, e, f) { a = this._dialogInst; if (!a) { this.uuid += 1; this._dialogInput = d('<input type="text" id="' + ("dp" + this.uuid) + '" style="position: absolute; top: -100px; width: 0px; z-index: -10;"/>'); this._dialogInput.keydown(this._doKeyDown); d("body").append(this._dialogInput); a = this._dialogInst = this._newInst(this._dialogInput, false); a.settings = {}; d.data(this._dialogInput[0], "datepicker", a) } F(a.settings, e || {}); b = b && b.constructor == Date ? this._formatDate(a, b) : b; this._dialogInput.val(b); this._pos = f ? f.length ? f : [f.pageX, f.pageY] : null; if (!this._pos) this._pos = [document.documentElement.clientWidth / 2 - 100 + (document.documentElement.scrollLeft || document.body.scrollLeft), document.documentElement.clientHeight / 2 - 150 + (document.documentElement.scrollTop || document.body.scrollTop)]; this._dialogInput.css("left", this._pos[0] + 20 + "px").css("top", this._pos[1] + "px"); a.settings.onSelect = c; this._inDialog = true; this.dpDiv.addClass(this._dialogClass); this._showDatepicker(this._dialogInput[0]); d.blockUI && d.blockUI(this.dpDiv); d.data(this._dialogInput[0], "datepicker", a); return this }, _destroyDatepicker: function (a) { var b = d(a), c = d.data(a, "datepicker"); if (b.hasClass(this.markerClassName)) { var e = a.nodeName.toLowerCase(); d.removeData(a, "datepicker"); if (e == "input") { c.append.remove(); c.trigger.remove(); b.removeClass(this.markerClassName).unbind("focus", this._showDatepicker).unbind("keydown", this._doKeyDown).unbind("keypress", this._doKeyPress).unbind("keyup", this._doKeyUp) } else if (e == "div" || e == "span") b.removeClass(this.markerClassName).empty() } }, _enableDatepicker: function (a) { var b = d(a), c = d.data(a, "datepicker"); if (b.hasClass(this.markerClassName)) { var e = a.nodeName.toLowerCase(); if (e == "input") { a.disabled = false; c.trigger.filter("button").each(function () { this.disabled = false }).end().filter("img").css({ opacity: "1.0", cursor: "" }) } else if (e == "div" || e == "span") b.children("." + this._inlineClass).children().removeClass("ui-state-disabled"); this._disabledInputs = d.map(this._disabledInputs, function (f) { return f == a ? null : f }) } }, _disableDatepicker: function (a) { var b = d(a), c = d.data(a, "datepicker"); if (b.hasClass(this.markerClassName)) { var e = a.nodeName.toLowerCase(); if (e == "input") { a.disabled = true; c.trigger.filter("button").each(function () { this.disabled = true }).end().filter("img").css({ opacity: "0.5", cursor: "default" }) } else if (e == "div" || e == "span") b.children("." + this._inlineClass).children().addClass("ui-state-disabled"); this._disabledInputs = d.map(this._disabledInputs, function (f) { return f == a ? null : f }); this._disabledInputs[this._disabledInputs.length] = a } }, _isDisabledDatepicker: function (a) { if (!a) return false; for (var b = 0; b < this._disabledInputs.length; b++) if (this._disabledInputs[b] == a) return true; return false }, _getInst: function (a) { try { return d.data(a, "datepicker") } catch (b) { throw "Missing instance data for this datepicker"; } }, _optionDatepicker: function (a, b, c) { var e = this._getInst(a); if (arguments.length == 2 && typeof b == "string") return b == "defaults" ? d.extend({}, d.datepicker._defaults) : e ? b == "all" ? d.extend({}, e.settings) : this._get(e, b) : null; var f = b || {}; if (typeof b == "string") { f = {}; f[b] = c } if (e) { this._curInst == e && this._hideDatepicker(); var h = this._getDateDatepicker(a, true), i = this._getMinMaxDate(e, "min"), g = this._getMinMaxDate(e, "max"); F(e.settings, f); if (i !== null && f.dateFormat !== A && f.minDate === A) e.settings.minDate = this._formatDate(e, i); if (g !== null && f.dateFormat !== A && f.maxDate === A) e.settings.maxDate = this._formatDate(e, g); this._attachments(d(a), e); this._autoSize(e); this._setDateDatepicker(a, h); this._updateDatepicker(e) } }, _changeDatepicker: function (a, b, c) { this._optionDatepicker(a, b, c) }, _refreshDatepicker: function (a) { (a = this._getInst(a)) && this._updateDatepicker(a) }, _setDateDatepicker: function (a, b) { if (a = this._getInst(a)) { this._setDate(a, b); this._updateDatepicker(a); this._updateAlternate(a) } }, _getDateDatepicker: function (a, b) { (a = this._getInst(a)) && !a.inline && this._setDateFromField(a, b); return a ? this._getDate(a) : null }, _doKeyDown: function (a) { var b = d.datepicker._getInst(a.target), c = true, e = b.dpDiv.is(".ui-datepicker-rtl"); b._keyEvent = true; if (d.datepicker._datepickerShowing) switch (a.keyCode) { case 9: d.datepicker._hideDatepicker(); c = false; break; case 13: c = d("td." + d.datepicker._dayOverClass + ":not(." + d.datepicker._currentClass + ")", b.dpDiv); c[0] ? d.datepicker._selectDay(a.target, b.selectedMonth, b.selectedYear, c[0]) : d.datepicker._hideDatepicker(); return false; case 27: d.datepicker._hideDatepicker(); break; case 33: d.datepicker._adjustDate(a.target, a.ctrlKey ? -d.datepicker._get(b, "stepBigMonths") : -d.datepicker._get(b, "stepMonths"), "M"); break; case 34: d.datepicker._adjustDate(a.target, a.ctrlKey ? +d.datepicker._get(b, "stepBigMonths") : +d.datepicker._get(b, "stepMonths"), "M"); break; case 35: if (a.ctrlKey || a.metaKey) d.datepicker._clearDate(a.target); c = a.ctrlKey || a.metaKey; break; case 36: if (a.ctrlKey || a.metaKey) d.datepicker._gotoToday(a.target); c = a.ctrlKey || a.metaKey; break; case 37: if (a.ctrlKey || a.metaKey) d.datepicker._adjustDate(a.target, e ? +1 : -1, "D"); c = a.ctrlKey || a.metaKey; if (a.originalEvent.altKey) d.datepicker._adjustDate(a.target, a.ctrlKey ? -d.datepicker._get(b, "stepBigMonths") : -d.datepicker._get(b, "stepMonths"), "M"); break; case 38: if (a.ctrlKey || a.metaKey) d.datepicker._adjustDate(a.target, -7, "D"); c = a.ctrlKey || a.metaKey; break; case 39: if (a.ctrlKey || a.metaKey) d.datepicker._adjustDate(a.target, e ? -1 : +1, "D"); c = a.ctrlKey || a.metaKey; if (a.originalEvent.altKey) d.datepicker._adjustDate(a.target, a.ctrlKey ? +d.datepicker._get(b, "stepBigMonths") : +d.datepicker._get(b, "stepMonths"), "M"); break; case 40: if (a.ctrlKey || a.metaKey) d.datepicker._adjustDate(a.target, +7, "D"); c = a.ctrlKey || a.metaKey; break; default: c = false } else if (a.keyCode == 36 && a.ctrlKey) d.datepicker._showDatepicker(this); else c = false; if (c) { a.preventDefault(); a.stopPropagation() } }, _doKeyPress: function (a) { var b = d.datepicker._getInst(a.target); if (d.datepicker._get(b, "constrainInput")) { b = d.datepicker._possibleChars(d.datepicker._get(b, "dateFormat")); var c = String.fromCharCode(a.charCode == A ? a.keyCode : a.charCode); return a.ctrlKey || a.metaKey || c < " " || !b || b.indexOf(c) > -1 } }, _doKeyUp: function (a) { a = d.datepicker._getInst(a.target); if (a.input.val() != a.lastVal) try { if (d.datepicker.parseDate(d.datepicker._get(a, "dateFormat"), a.input ? a.input.val() : null, d.datepicker._getFormatConfig(a))) { d.datepicker._setDateFromField(a); d.datepicker._updateAlternate(a); d.datepicker._updateDatepicker(a) } } catch (b) { d.datepicker.log(b) } return true }, _showDatepicker: function (a) { a = a.target || a; if (a.nodeName.toLowerCase() != "input") a = d("input", a.parentNode)[0]; if (!(d.datepicker._isDisabledDatepicker(a) || d.datepicker._lastInput == a)) { var b = d.datepicker._getInst(a); d.datepicker._curInst && d.datepicker._curInst != b && d.datepicker._curInst.dpDiv.stop(true, true); var c = d.datepicker._get(b, "beforeShow"); F(b.settings, c ? c.apply(a, [a, b]) : {}); b.lastVal = null; d.datepicker._lastInput = a; d.datepicker._setDateFromField(b); if (d.datepicker._inDialog) a.value = ""; if (!d.datepicker._pos) { d.datepicker._pos = d.datepicker._findPos(a); d.datepicker._pos[1] += a.offsetHeight } var e = false; d(a).parents().each(function () { e |= d(this).css("position") == "fixed"; return !e }); if (e && d.browser.opera) { d.datepicker._pos[0] -= document.documentElement.scrollLeft; d.datepicker._pos[1] -= document.documentElement.scrollTop } c = { left: d.datepicker._pos[0], top: d.datepicker._pos[1] }; d.datepicker._pos = null; b.dpDiv.empty(); b.dpDiv.css({ position: "absolute", display: "block", top: "-1000px" }); d.datepicker._updateDatepicker(b); c = d.datepicker._checkOffset(b, c, e); b.dpDiv.css({ position: d.datepicker._inDialog && d.blockUI ? "static" : e ? "fixed" : "absolute", display: "none", left: c.left + "px", top: c.top + "px" }); if (!b.inline) { c = d.datepicker._get(b, "showAnim"); var f = d.datepicker._get(b, "duration"), h = function () { d.datepicker._datepickerShowing = true; var i = b.dpDiv.find("iframe.ui-datepicker-cover"); if (i.length) { var g = d.datepicker._getBorders(b.dpDiv); i.css({ left: -g[0], top: -g[1], width: b.dpDiv.outerWidth(), height: b.dpDiv.outerHeight() }) } }; b.dpDiv.zIndex(d(a).zIndex() + 1); d.effects && d.effects[c] ? b.dpDiv.show(c, d.datepicker._get(b, "showOptions"), f, h) : b.dpDiv[c || "show"](c ? f : null, h); if (!c || !f) h(); b.input.is(":visible") && !b.input.is(":disabled") && b.input.focus(); d.datepicker._curInst = b } } }, _updateDatepicker: function (a) { var b = this, c = d.datepicker._getBorders(a.dpDiv); a.dpDiv.empty().append(this._generateHTML(a)); var e = a.dpDiv.find("iframe.ui-datepicker-cover"); e.length && e.css({ left: -c[0], top: -c[1], width: a.dpDiv.outerWidth(), height: a.dpDiv.outerHeight() }); a.dpDiv.find("button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a").bind("mouseout", function () { d(this).removeClass("ui-state-hover"); this.className.indexOf("ui-datepicker-prev") != -1 && d(this).removeClass("ui-datepicker-prev-hover"); this.className.indexOf("ui-datepicker-next") != -1 && d(this).removeClass("ui-datepicker-next-hover") }).bind("mouseover", function () { if (!b._isDisabledDatepicker(a.inline ? a.dpDiv.parent()[0] : a.input[0])) { d(this).parents(".ui-datepicker-calendar").find("a").removeClass("ui-state-hover"); d(this).addClass("ui-state-hover"); this.className.indexOf("ui-datepicker-prev") != -1 && d(this).addClass("ui-datepicker-prev-hover"); this.className.indexOf("ui-datepicker-next") != -1 && d(this).addClass("ui-datepicker-next-hover") } }).end().find("." + this._dayOverClass + " a").trigger("mouseover").end(); c = this._getNumberOfMonths(a); e = c[1]; e > 1 ? a.dpDiv.addClass("ui-datepicker-multi-" + e).css("width", 17 * e + "em") : a.dpDiv.removeClass("ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4").width(""); a.dpDiv[(c[0] != 1 || c[1] != 1 ? "add" : "remove") + "Class"]("ui-datepicker-multi"); a.dpDiv[(this._get(a, "isRTL") ? "add" : "remove") + "Class"]("ui-datepicker-rtl"); a == d.datepicker._curInst && d.datepicker._datepickerShowing && a.input && a.input.is(":visible") && !a.input.is(":disabled") && a.input[0] != document.activeElement && a.input.focus(); if (a.yearshtml) { var f = a.yearshtml; setTimeout(function () { f === a.yearshtml && a.dpDiv.find("select.ui-datepicker-year:first").replaceWith(a.yearshtml); f = a.yearshtml = null }, 0) } }, _getBorders: function (a) { var b = function (c) { return { thin: 1, medium: 2, thick: 3}[c] || c }; return [parseFloat(b(a.css("border-left-width"))), parseFloat(b(a.css("border-top-width")))] }, _checkOffset: function (a, b, c) { var e = a.dpDiv.outerWidth(), f = a.dpDiv.outerHeight(), h = a.input ? a.input.outerWidth() : 0, i = a.input ? a.input.outerHeight() : 0, g = document.documentElement.clientWidth + d(document).scrollLeft(), j = document.documentElement.clientHeight + d(document).scrollTop(); b.left -= this._get(a, "isRTL") ? e - h : 0; b.left -= c && b.left == a.input.offset().left ? d(document).scrollLeft() : 0; b.top -= c && b.top == a.input.offset().top + i ? d(document).scrollTop() : 0; b.left -= Math.min(b.left, b.left + e > g && g > e ? Math.abs(b.left + e - g) : 0); b.top -= Math.min(b.top, b.top + f > j && j > f ? Math.abs(f + i) : 0); return b }, _findPos: function (a) { for (var b = this._get(this._getInst(a), "isRTL"); a && (a.type == "hidden" || a.nodeType != 1 || d.expr.filters.hidden(a)); ) a = a[b ? "previousSibling" : "nextSibling"]; a = d(a).offset(); return [a.left, a.top] }, _hideDatepicker: function (a) { var b = this._curInst; if (!(!b || a && b != d.data(a, "datepicker"))) if (this._datepickerShowing) { a = this._get(b, "showAnim"); var c = this._get(b, "duration"), e = function () { d.datepicker._tidyDialog(b); this._curInst = null }; d.effects && d.effects[a] ? b.dpDiv.hide(a, d.datepicker._get(b, "showOptions"), c, e) : b.dpDiv[a == "slideDown" ? "slideUp" : a == "fadeIn" ? "fadeOut" : "hide"](a ? c : null, e); a || e(); if (a = this._get(b, "onClose")) a.apply(b.input ? b.input[0] : null, [b.input ? b.input.val() : "", b]); this._datepickerShowing = false; this._lastInput = null; if (this._inDialog) { this._dialogInput.css({ position: "absolute", left: "0", top: "-100px" }); if (d.blockUI) { d.unblockUI(); d("body").append(this.dpDiv) } } this._inDialog = false } }, _tidyDialog: function (a) { a.dpDiv.removeClass(this._dialogClass).unbind(".ui-datepicker-calendar") }, _checkExternalClick: function (a) { if (d.datepicker._curInst) { a = d(a.target); a[0].id != d.datepicker._mainDivId && a.parents("#" + d.datepicker._mainDivId).length == 0 && !a.hasClass(d.datepicker.markerClassName) && !a.hasClass(d.datepicker._triggerClass) && d.datepicker._datepickerShowing && !(d.datepicker._inDialog && d.blockUI) && d.datepicker._hideDatepicker() } }, _adjustDate: function (a, b, c) { a = d(a); var e = this._getInst(a[0]); if (!this._isDisabledDatepicker(a[0])) { this._adjustInstDate(e, b + (c == "M" ? this._get(e, "showCurrentAtPos") : 0), c); this._updateDatepicker(e) } }, _gotoToday: function (a) { a = d(a); var b = this._getInst(a[0]); if (this._get(b, "gotoCurrent") && b.currentDay) { b.selectedDay = b.currentDay; b.drawMonth = b.selectedMonth = b.currentMonth; b.drawYear = b.selectedYear = b.currentYear } else { var c = new Date; b.selectedDay = c.getDate(); b.drawMonth = b.selectedMonth = c.getMonth(); b.drawYear = b.selectedYear = c.getFullYear() } this._notifyChange(b); this._adjustDate(a) }, _selectMonthYear: function (a, b, c) { a = d(a); var e = this._getInst(a[0]); e._selectingMonthYear = false; e["selected" + (c == "M" ? "Month" : "Year")] = e["draw" + (c == "M" ? "Month" : "Year")] = parseInt(b.options[b.selectedIndex].value, 10); this._notifyChange(e); this._adjustDate(a) }, _clickMonthYear: function (a) { var b = this._getInst(d(a)[0]); b.input && b._selectingMonthYear && setTimeout(function () { b.input.focus() }, 0); b._selectingMonthYear = !b._selectingMonthYear }, _selectDay: function (a, b, c, e) { var f = d(a); if (!(d(e).hasClass(this._unselectableClass) || this._isDisabledDatepicker(f[0]))) { f = this._getInst(f[0]); f.selectedDay = f.currentDay = d("a", e).html(); f.selectedMonth = f.currentMonth = b; f.selectedYear = f.currentYear = c; this._selectDate(a, this._formatDate(f, f.currentDay, f.currentMonth, f.currentYear)) } }, _clearDate: function (a) { a = d(a); this._getInst(a[0]); this._selectDate(a, "") }, _selectDate: function (a, b) { a = this._getInst(d(a)[0]); b = b != null ? b : this._formatDate(a); a.input && a.input.val(b); this._updateAlternate(a); var c = this._get(a, "onSelect"); if (c) c.apply(a.input ? a.input[0] : null, [b, a]); else a.input && a.input.trigger("change"); if (a.inline) this._updateDatepicker(a); else { this._hideDatepicker(); this._lastInput = a.input[0]; typeof a.input[0] != "object" && a.input.focus(); this._lastInput = null } }, _updateAlternate: function (a) { var b = this._get(a, "altField"); if (b) { var c = this._get(a, "altFormat") || this._get(a, "dateFormat"), e = this._getDate(a), f = this.formatDate(c, e, this._getFormatConfig(a)); d(b).each(function () { d(this).val(f) }) } }, noWeekends: function (a) { a = a.getDay(); return [a > 0 && a < 6, ""] }, iso8601Week: function (a) { a = new Date(a.getTime()); a.setDate(a.getDate() + 4 - (a.getDay() || 7)); var b = a.getTime(); a.setMonth(0); a.setDate(1); return Math.floor(Math.round((b - a) / 864E5) / 7) + 1 }, parseDate: function (a, b, c) { if (a == null || b == null) throw "Invalid arguments"; b = typeof b == "object" ? b.toString() : b + ""; if (b == "") return null; var e = (c ? c.shortYearCutoff : null) || this._defaults.shortYearCutoff; e = typeof e != "string" ? e : (new Date).getFullYear() % 100 + parseInt(e, 10); for (var f = (c ? c.dayNamesShort : null) || this._defaults.dayNamesShort, h = (c ? c.dayNames : null) || this._defaults.dayNames, i = (c ? c.monthNamesShort : null) || this._defaults.monthNamesShort, g = (c ? c.monthNames : null) || this._defaults.monthNames, j = c = -1, l = -1, u = -1, k = false, o = function (p) { (p = z + 1 < a.length && a.charAt(z + 1) == p) && z++; return p }, m = function (p) { var v = o(p); p = new RegExp("^\\d{1," + (p == "@" ? 14 : p == "!" ? 20 : p == "y" && v ? 4 : p == "o" ? 3 : 2) + "}"); p = b.substring(s).match(p); if (!p) throw "Missing number at position " + s; s += p[0].length; return parseInt(p[0], 10) }, n = function (p, v, H) { p = o(p) ? H : v; for (v = 0; v < p.length; v++) if (b.substr(s, p[v].length).toLowerCase() == p[v].toLowerCase()) { s += p[v].length; return v + 1 } throw "Unknown name at position " + s; }, r = function () { if (b.charAt(s) != a.charAt(z)) throw "Unexpected literal at position " + s; s++ }, s = 0, z = 0; z < a.length; z++) if (k) if (a.charAt(z) == "'" && !o("'")) k = false; else r(); else switch (a.charAt(z)) { case "d": l = m("d"); break; case "D": n("D", f, h); break; case "o": u = m("o"); break; case "m": j = m("m"); break; case "M": j = n("M", i, g); break; case "y": c = m("y"); break; case "@": var w = new Date(m("@")); c = w.getFullYear(); j = w.getMonth() + 1; l = w.getDate(); break; case "!": w = new Date((m("!") - this._ticksTo1970) / 1E4); c = w.getFullYear(); j = w.getMonth() + 1; l = w.getDate(); break; case "'": if (o("'")) r(); else k = true; break; default: r() } if (c == -1) c = (new Date).getFullYear(); else if (c < 100) c += (new Date).getFullYear() - (new Date).getFullYear() % 100 + (c <= e ? 0 : -100); if (u > -1) { j = 1; l = u; do { e = this._getDaysInMonth(c, j - 1); if (l <= e) break; j++; l -= e } while (1) } w = this._daylightSavingAdjust(new Date(c, j - 1, l)); if (w.getFullYear() != c || w.getMonth() + 1 != j || w.getDate() != l) throw "Invalid date"; return w }, ATOM: "yy-mm-dd", COOKIE: "D, dd M yy", ISO_8601: "yy-mm-dd", RFC_822: "D, d M y", RFC_850: "DD, dd-M-y", RFC_1036: "D, d M y", RFC_1123: "D, d M yy", RFC_2822: "D, d M yy", RSS: "D, d M y", TICKS: "!", TIMESTAMP: "@", W3C: "yy-mm-dd", _ticksTo1970: (718685 + Math.floor(492.5) - Math.floor(19.7) + Math.floor(4.925)) * 24 * 60 * 60 * 1E7, formatDate: function (a, b, c) { if (!b) return ""; var e = (c ? c.dayNamesShort : null) || this._defaults.dayNamesShort, f = (c ? c.dayNames : null) || this._defaults.dayNames, h = (c ? c.monthNamesShort : null) || this._defaults.monthNamesShort; c = (c ? c.monthNames : null) || this._defaults.monthNames; var i = function (o) { (o = k + 1 < a.length && a.charAt(k + 1) == o) && k++; return o }, g = function (o, m, n) { m = "" + m; if (i(o)) for (; m.length < n; ) m = "0" + m; return m }, j = function (o, m, n, r) { return i(o) ? r[m] : n[m] }, l = "", u = false; if (b) for (var k = 0; k < a.length; k++) if (u) if (a.charAt(k) == "'" && !i("'")) u = false; else l += a.charAt(k); else switch (a.charAt(k)) { case "d": l += g("d", b.getDate(), 2); break; case "D": l += j("D", b.getDay(), e, f); break; case "o": l += g("o", (b.getTime() - (new Date(b.getFullYear(), 0, 0)).getTime()) / 864E5, 3); break; case "m": l += g("m", b.getMonth() + 1, 2); break; case "M": l += j("M", b.getMonth(), h, c); break; case "y": l += i("y") ? b.getFullYear() : (b.getYear() % 100 < 10 ? "0" : "") + b.getYear() % 100; break; case "@": l += b.getTime(); break; case "!": l += b.getTime() * 1E4 + this._ticksTo1970; break; case "'": if (i("'")) l += "'"; else u = true; break; default: l += a.charAt(k) } return l }, _possibleChars: function (a) { for (var b = "", c = false, e = function (h) { (h = f + 1 < a.length && a.charAt(f + 1) == h) && f++; return h }, f = 0; f < a.length; f++) if (c) if (a.charAt(f) == "'" && !e("'")) c = false; else b += a.charAt(f); else switch (a.charAt(f)) { case "d": case "m": case "y": case "@": b += "0123456789"; break; case "D": case "M": return null; case "'": if (e("'")) b += "'"; else c = true; break; default: b += a.charAt(f) } return b }, _get: function (a, b) { return a.settings[b] !== A ? a.settings[b] : this._defaults[b] }, _setDateFromField: function (a, b) { if (a.input.val() != a.lastVal) { var c = this._get(a, "dateFormat"), e = a.lastVal = a.input ? a.input.val() : null, f, h; f = h = this._getDefaultDate(a); var i = this._getFormatConfig(a); try { f = this.parseDate(c, e, i) || h } catch (g) { this.log(g); e = b ? "" : e } a.selectedDay = f.getDate(); a.drawMonth = a.selectedMonth = f.getMonth(); a.drawYear = a.selectedYear = f.getFullYear(); a.currentDay = e ? f.getDate() : 0; a.currentMonth = e ? f.getMonth() : 0; a.currentYear = e ? f.getFullYear() : 0; this._adjustInstDate(a) } }, _getDefaultDate: function (a) { return this._restrictMinMax(a, this._determineDate(a, this._get(a, "defaultDate"), new Date)) }, _determineDate: function (a, b, c) { var e = function (h) { var i = new Date; i.setDate(i.getDate() + h); return i }, f = function (h) { try { return d.datepicker.parseDate(d.datepicker._get(a, "dateFormat"), h, d.datepicker._getFormatConfig(a)) } catch (i) { } var g = (h.toLowerCase().match(/^c/) ? d.datepicker._getDate(a) : null) || new Date, j = g.getFullYear(), l = g.getMonth(); g = g.getDate(); for (var u = /([+-]?[0-9]+)\s*(d|D|w|W|m|M|y|Y)?/g, k = u.exec(h); k; ) { switch (k[2] || "d") { case "d": case "D": g += parseInt(k[1], 10); break; case "w": case "W": g += parseInt(k[1], 10) * 7; break; case "m": case "M": l += parseInt(k[1], 10); g = Math.min(g, d.datepicker._getDaysInMonth(j, l)); break; case "y": case "Y": j += parseInt(k[1], 10); g = Math.min(g, d.datepicker._getDaysInMonth(j, l)); break } k = u.exec(h) } return new Date(j, l, g) }; if (b = (b = b == null || b === "" ? c : typeof b == "string" ? f(b) : typeof b == "number" ? isNaN(b) ? c : e(b) : new Date(b.getTime())) && b.toString() == "Invalid Date" ? c : b) { b.setHours(0); b.setMinutes(0); b.setSeconds(0); b.setMilliseconds(0) } return this._daylightSavingAdjust(b) }, _daylightSavingAdjust: function (a) { if (!a) return null; a.setHours(a.getHours() > 12 ? a.getHours() + 2 : 0); return a }, _setDate: function (a, b, c) { var e = !b, f = a.selectedMonth, h = a.selectedYear; b = this._restrictMinMax(a, this._determineDate(a, b, new Date)); a.selectedDay = a.currentDay = b.getDate(); a.drawMonth = a.selectedMonth = a.currentMonth = b.getMonth(); a.drawYear = a.selectedYear = a.currentYear = b.getFullYear(); if ((f != a.selectedMonth || h != a.selectedYear) && !c) this._notifyChange(a); this._adjustInstDate(a); if (a.input) a.input.val(e ? "" : this._formatDate(a)) }, _getDate: function (a) { return !a.currentYear || a.input && a.input.val() == "" ? null : this._daylightSavingAdjust(new Date(a.currentYear, a.currentMonth, a.currentDay)) }, _generateHTML: function (a) { var b = new Date; b = this._daylightSavingAdjust(new Date(b.getFullYear(), b.getMonth(), b.getDate())); var c = this._get(a, "isRTL"), e = this._get(a, "showButtonPanel"), f = this._get(a, "hideIfNoPrevNext"), h = this._get(a, "navigationAsDateFormat"), i = this._getNumberOfMonths(a), g = this._get(a, "showCurrentAtPos"), j = this._get(a, "stepMonths"), l = i[0] != 1 || i[1] != 1, u = this._daylightSavingAdjust(!a.currentDay ? new Date(9999, 9, 9) : new Date(a.currentYear, a.currentMonth, a.currentDay)), k = this._getMinMaxDate(a, "min"), o = this._getMinMaxDate(a, "max"); g = a.drawMonth - g; var m = a.drawYear; if (g < 0) { g += 12; m-- } if (o) { var n = this._daylightSavingAdjust(new Date(o.getFullYear(), o.getMonth() - i[0] * i[1] + 1, o.getDate())); for (n = k && n < k ? k : n; this._daylightSavingAdjust(new Date(m, g, 1)) > n; ) { g--; if (g < 0) { g = 11; m-- } } } a.drawMonth = g; a.drawYear = m; n = this._get(a, "prevText"); n = !h ? n : this.formatDate(n, this._daylightSavingAdjust(new Date(m, g - j, 1)), this._getFormatConfig(a)); n = this._canAdjustMonth(a, -1, m, g) ? '<a class="ui-datepicker-prev ui-corner-all" onclick="DP_jQuery_' + y + ".datepicker._adjustDate('#" + a.id + "', -" + j + ", 'M');\" title=\"" + n + '"><span class="ui-icon ui-icon-circle-triangle-' + (c ? "e" : "w") + '">' + n + "</span></a>" : f ? "" : '<a class="ui-datepicker-prev ui-corner-all ui-state-disabled" title="' + n + '"><span class="ui-icon ui-icon-circle-triangle-' + (c ? "e" : "w") + '">' + n + "</span></a>"; var r = this._get(a, "nextText"); r = !h ? r : this.formatDate(r, this._daylightSavingAdjust(new Date(m, g + j, 1)), this._getFormatConfig(a)); f = this._canAdjustMonth(a, +1, m, g) ? '<a class="ui-datepicker-next ui-corner-all" onclick="DP_jQuery_' + y + ".datepicker._adjustDate('#" + a.id + "', +" + j + ", 'M');\" title=\"" + r + '"><span class="ui-icon ui-icon-circle-triangle-' + (c ? "w" : "e") + '">' + r + "</span></a>" : f ? "" : '<a class="ui-datepicker-next ui-corner-all ui-state-disabled" title="' + r + '"><span class="ui-icon ui-icon-circle-triangle-' + (c ? "w" : "e") + '">' + r + "</span></a>"; j = this._get(a, "currentText"); r = this._get(a, "gotoCurrent") && a.currentDay ? u : b; j = !h ? j : this.formatDate(j, r, this._getFormatConfig(a)); h = !a.inline ? '<button type="button" class="ui-datepicker-close ui-state-default ui-priority-primary ui-corner-all" onclick="DP_jQuery_' + y + '.datepicker._hideDatepicker();">' + this._get(a, "closeText") + "</button>" : ""; e = e ? '<div class="ui-datepicker-buttonpane ui-widget-content">' + (c ? h : "") + (this._isInRange(a, r) ? '<button type="button" class="ui-datepicker-current ui-state-default ui-priority-secondary ui-corner-all" onclick="DP_jQuery_' + y + ".datepicker._gotoToday('#" + a.id + "');\">" + j + "</button>" : "") + (c ? "" : h) + "</div>" : ""; h = parseInt(this._get(a, "firstDay"), 10); h = isNaN(h) ? 0 : h; j = this._get(a, "showWeek"); r = this._get(a, "dayNames"); this._get(a, "dayNamesShort"); var s = this._get(a, "dayNamesMin"), z = this._get(a, "monthNames"), w = this._get(a, "monthNamesShort"), p = this._get(a, "beforeShowDay"), v = this._get(a, "showOtherMonths"), H = this._get(a, "selectOtherMonths"); this._get(a, "calculateWeek"); for (var L = this._getDefaultDate(a), I = "", D = 0; D < i[0]; D++) { for (var M = "", E = 0; E < i[1]; E++) { var N = this._daylightSavingAdjust(new Date(m, g, a.selectedDay)), t = " ui-corner-all", x = ""; if (l) { x += '<div class="ui-datepicker-group'; if (i[1] > 1) switch (E) { case 0: x += " ui-datepicker-group-first"; t = " ui-corner-" + (c ? "right" : "left"); break; case i[1] - 1: x += " ui-datepicker-group-last"; t = " ui-corner-" + (c ? "left" : "right"); break; default: x += " ui-datepicker-group-middle"; t = ""; break } x += '">' } x += '<div class="ui-datepicker-header ui-widget-header ui-helper-clearfix' + t + '">' + (/all|left/.test(t) && D == 0 ? c ? f : n : "") + (/all|right/.test(t) && D == 0 ? c ? n : f : "") + this._generateMonthYearHeader(a, g, m, k, o, D > 0 || E > 0, z, w) + '</div><table class="ui-datepicker-calendar"><thead><tr>'; var B = j ? '<th class="ui-datepicker-week-col">' + this._get(a, "weekHeader") + "</th>" : ""; for (t = 0; t < 7; t++) { var q = (t + h) % 7; B += "<th" + ((t + h + 6) % 7 >= 5 ? ' class="ui-datepicker-week-end"' : "") + '><span title="' + r[q] + '">' + s[q] + "</span></th>" } x += B + "</tr></thead><tbody>"; B = this._getDaysInMonth(m, g); if (m == a.selectedYear && g == a.selectedMonth) a.selectedDay = Math.min(a.selectedDay, B); t = (this._getFirstDayOfMonth(m, g) - h + 7) % 7; B = l ? 6 : Math.ceil((t + B) / 7); q = this._daylightSavingAdjust(new Date(m, g, 1 - t)); for (var O = 0; O < B; O++) { x += "<tr>"; var P = !j ? "" : '<td class="ui-datepicker-week-col">' + this._get(a, "calculateWeek")(q) + "</td>"; for (t = 0; t < 7; t++) { var G = p ? p.apply(a.input ? a.input[0] : null, [q]) : [true, ""], C = q.getMonth() != g, J = C && !H || !G[0] || k && q < k || o && q > o; P += '<td class="' + ((t + h + 6) % 7 >= 5 ? " ui-datepicker-week-end" : "") + (C ? " ui-datepicker-other-month" : "") + (q.getTime() == N.getTime() && g == a.selectedMonth && a._keyEvent || L.getTime() == q.getTime() && L.getTime() == N.getTime() ? " " + this._dayOverClass : "") + (J ? " " + this._unselectableClass + " ui-state-disabled" : "") + (C && !v ? "" : " " + G[1] + (q.getTime() == u.getTime() ? " " + this._currentClass : "") + (q.getTime() == b.getTime() ? " ui-datepicker-today" : "")) + '"' + ((!C || v) && G[2] ? ' title="' + G[2] + '"' : "") + (J ? "" : ' onclick="DP_jQuery_' + y + ".datepicker._selectDay('#" + a.id + "'," + q.getMonth() + "," + q.getFullYear() + ', this);return false;"') + ">" + (C && !v ? "&#xa0;" : J ? '<span class="ui-state-default">' + q.getDate() + "</span>" : '<a class="ui-state-default' + (q.getTime() == b.getTime() ? " ui-state-highlight" : "") + (q.getTime() == u.getTime() ? " ui-state-active" : "") + (C ? " ui-priority-secondary" : "") + '" href="#">' + q.getDate() + "</a>") + "</td>"; q.setDate(q.getDate() + 1); q = this._daylightSavingAdjust(q) } x += P + "</tr>" } g++; if (g > 11) { g = 0; m++ } x += "</tbody></table>" + (l ? "</div>" + (i[0] > 0 && E == i[1] - 1 ? '<div class="ui-datepicker-row-break"></div>' : "") : ""); M += x } I += M } I += e + (d.browser.msie && parseInt(d.browser.version, 10) < 7 && !a.inline ? '<iframe src="javascript:false;" class="ui-datepicker-cover" frameborder="0"></iframe>' : ""); a._keyEvent = false; return I }, _generateMonthYearHeader: function (a, b, c, e, f, h, i, g) { var j = this._get(a, "changeMonth"), l = this._get(a, "changeYear"), u = this._get(a, "showMonthAfterYear"), k = '<div class="ui-datepicker-title">', o = ""; if (h || !j) o += '<span class="ui-datepicker-month">' + i[b] + "</span>"; else { i = e && e.getFullYear() == c; var m = f && f.getFullYear() == c; o += '<select class="ui-datepicker-month" onchange="DP_jQuery_' + y + ".datepicker._selectMonthYear('#" + a.id + "', this, 'M');\" onclick=\"DP_jQuery_" + y + ".datepicker._clickMonthYear('#" + a.id + "');\">"; for (var n = 0; n < 12; n++) if ((!i || n >= e.getMonth()) && (!m || n <= f.getMonth())) o += '<option value="' + n + '"' + (n == b ? ' selected="selected"' : "") + ">" + g[n] + "</option>"; o += "</select>" } u || (k += o + (h || !(j && l) ? "&#xa0;" : "")); a.yearshtml = ""; if (h || !l) k += '<span class="ui-datepicker-year">' + c + "</span>"; else { g = this._get(a, "yearRange").split(":"); var r = (new Date).getFullYear(); i = function (s) { s = s.match(/c[+-].*/) ? c + parseInt(s.substring(1), 10) : s.match(/[+-].*/) ? r + parseInt(s, 10) : parseInt(s, 10); return isNaN(s) ? r : s }; b = i(g[0]); g = Math.max(b, i(g[1] || "")); b = e ? Math.max(b, e.getFullYear()) : b; g = f ? Math.min(g, f.getFullYear()) : g; for (a.yearshtml += '<select class="ui-datepicker-year" onchange="DP_jQuery_' + y + ".datepicker._selectMonthYear('#" + a.id + "', this, 'Y');\" onclick=\"DP_jQuery_" + y + ".datepicker._clickMonthYear('#" + a.id + "');\">"; b <= g; b++) a.yearshtml += '<option value="' + b + '"' + (b == c ? ' selected="selected"' : "") + ">" + b + "</option>"; a.yearshtml += "</select>"; if (d.browser.mozilla) k += '<select class="ui-datepicker-year"><option value="' + c + '" selected="selected">' + c + "</option></select>"; else { k += a.yearshtml; a.yearshtml = null } } k += this._get(a, "yearSuffix"); if (u) k += (h || !(j && l) ? "&#xa0;" : "") + o; k += "</div>"; return k }, _adjustInstDate: function (a, b, c) { var e = a.drawYear + (c == "Y" ? b : 0), f = a.drawMonth + (c == "M" ? b : 0); b = Math.min(a.selectedDay, this._getDaysInMonth(e, f)) + (c == "D" ? b : 0); e = this._restrictMinMax(a, this._daylightSavingAdjust(new Date(e, f, b))); a.selectedDay = e.getDate(); a.drawMonth = a.selectedMonth = e.getMonth(); a.drawYear = a.selectedYear = e.getFullYear(); if (c == "M" || c == "Y") this._notifyChange(a) }, _restrictMinMax: function (a, b) { var c = this._getMinMaxDate(a, "min"); a = this._getMinMaxDate(a, "max"); b = c && b < c ? c : b; return b = a && b > a ? a : b }, _notifyChange: function (a) { var b = this._get(a, "onChangeMonthYear"); if (b) b.apply(a.input ? a.input[0] : null, [a.selectedYear, a.selectedMonth + 1, a]) }, _getNumberOfMonths: function (a) { a = this._get(a, "numberOfMonths"); return a == null ? [1, 1] : typeof a == "number" ? [1, a] : a }, _getMinMaxDate: function (a, b) { return this._determineDate(a, this._get(a, b + "Date"), null) }, _getDaysInMonth: function (a, b) { return 32 - this._daylightSavingAdjust(new Date(a, b, 32)).getDate() }, _getFirstDayOfMonth: function (a, b) { return (new Date(a, b, 1)).getDay() }, _canAdjustMonth: function (a, b, c, e) { var f = this._getNumberOfMonths(a); c = this._daylightSavingAdjust(new Date(c, e + (b < 0 ? b : f[0] * f[1]), 1)); b < 0 && c.setDate(this._getDaysInMonth(c.getFullYear(), c.getMonth())); return this._isInRange(a, c) }, _isInRange: function (a, b) { var c = this._getMinMaxDate(a, "min"); a = this._getMinMaxDate(a, "max"); return (!c || b.getTime() >= c.getTime()) && (!a || b.getTime() <= a.getTime()) }, _getFormatConfig: function (a) { var b = this._get(a, "shortYearCutoff"); b = typeof b != "string" ? b : (new Date).getFullYear() % 100 + parseInt(b, 10); return { shortYearCutoff: b, dayNamesShort: this._get(a, "dayNamesShort"), dayNames: this._get(a, "dayNames"), monthNamesShort: this._get(a, "monthNamesShort"), monthNames: this._get(a, "monthNames")} }, _formatDate: function (a, b, c, e) { if (!b) { a.currentDay = a.selectedDay; a.currentMonth = a.selectedMonth; a.currentYear = a.selectedYear } b = b ? typeof b == "object" ? b : this._daylightSavingAdjust(new Date(e, c, b)) : this._daylightSavingAdjust(new Date(a.currentYear, a.currentMonth, a.currentDay)); return this.formatDate(this._get(a, "dateFormat"), b, this._getFormatConfig(a)) } }); d.fn.datepicker = function (a) { if (!this.length) return this; if (!d.datepicker.initialized) { d(document).mousedown(d.datepicker._checkExternalClick).find("body").append(d.datepicker.dpDiv); d.datepicker.initialized = true } var b = Array.prototype.slice.call(arguments, 1); if (typeof a == "string" && (a == "isDisabled" || a == "getDate" || a == "widget")) return d.datepicker["_" + a + "Datepicker"].apply(d.datepicker, [this[0]].concat(b)); if (a == "option" && arguments.length == 2 && typeof arguments[1] == "string") return d.datepicker["_" + a + "Datepicker"].apply(d.datepicker, [this[0]].concat(b)); return this.each(function () { typeof a == "string" ? d.datepicker["_" + a + "Datepicker"].apply(d.datepicker, [this].concat(b)) : d.datepicker._attachDatepicker(this, a) }) }; d.datepicker = new K; d.datepicker.initialized = false; d.datepicker.uuid = (new Date).getTime(); d.datepicker.version = "1.8.11"; window["DP_jQuery_" + y] = d })(jQuery); (function ($) { function init(a) { $(a).addClass('validatebox-text') } function destroyBox(a) { var b = $.data(a, 'validatebox').tip; if (b) { b.remove() } $(a).remove() } function bindEvents(a) { var b = $(a); var c = $.data(a, 'validatebox').tip; var d = null; b.unbind('.validatebox').bind('focus.validatebox', function () { if (d) { clearInterval(d) } d = setInterval(function () { validate(a) }, 200) }).bind('blur.validatebox', function () { clearInterval(d); d = null; hideTip(a) }).bind('mouseover.validatebox', function () { if (b.hasClass('validatebox-invalid')) { showTip(a) } }).bind('mouseout.validatebox', function () { hideTip(a) }) } function showTip(a) { var b = $(a); var c = $.data(a, 'validatebox').message; var d = $.data(a, 'validatebox').tip; if (!d) { d = $('<div class="validatebox-tip"><span class="validatebox-tip-content"></span><span class="validatebox-tip-pointer"></span></div>').appendTo('body'); $.data(a, 'validatebox').tip = d } d.find('.validatebox-tip-content').html(c); d.css({ display: 'block', left: b.offset().left + b.outerWidth(), top: b.offset().top }) } function hideTip(a) { var b = $.data(a, 'validatebox').tip; if (b) { b.remove(); $.data(a, 'validatebox').tip = null } } function validate(b) { var c = $.data(b, 'validatebox').options; var d = $.data(b, 'validatebox').tip; var e = $(b); var f = e.val(); function setTipMessage(a) { $.data(b, 'validatebox').message = a } var g = e.attr('disabled'); if (g == true || g == 'true') { return true } if (c.required) { if (f == '') { e.addClass('validatebox-invalid'); setTipMessage(c.missingMessage); showTip(b); return false } } if (c.validType) { var h = /([a-zA-Z_]+)(.*)/.exec(c.validType); var j = c.rules[h[1]]; if (f && j) { var k = eval(h[2]); if (!j['validator'](f, k)) { e.addClass('validatebox-invalid'); var l = j['message']; if (k) { for (var i = 0; i < k.length; i++) { l = l.replace(new RegExp("\\{" + i + "\\}", "g"), k[i]) } } setTipMessage(c.invalidMessage || l); showTip(b); return false } } } e.removeClass('validatebox-invalid'); hideTip(b); return true } $.fn.validatebox = function (b) { if (typeof b == 'string') { switch (b) { case 'destroy': return this.each(function () { destroyBox(this) }); case 'validate': return this.each(function () { validate(this) }); case 'isValid': return validate(this[0]) } } b = b || {}; return this.each(function () { var a = $.data(this, 'validatebox'); if (a) { $.extend(a.options, b) } else { init(this); var t = $(this); a = $.data(this, 'validatebox', { options: $.extend({}, $.fn.validatebox.defaults, { required: (t.attr('required') ? (t.attr('required') == 'true' || t.attr('required') == true) : undefined), validType: (t.attr('validType') || undefined), missingMessage: (t.attr('missingMessage') || undefined), invalidMessage: (t.attr('invalidMessage') || undefined) }, b) }) } bindEvents(this) }) }; $.fn.validatebox.defaults = { required: false, validType: null, missingMessage: 'This field is required.', invalidMessage: null, rules: { length: { validator: function (a, b) { var c = $.trim(a).length; return c >= b[0] && c <= b[1] }, message: 'Please enter a value between {0} and {1}.' }, number: { validator: function (a) { return /^-?(?:\d+|\d{1,3}(?:,\d{3})+)(?:\.\d+)?$/.test(a) }, message: '只能输入数字.' }, minLength: { validator: function (a, b) { return a.length >= b[0] }, message: '输入的长度不能少于{0}.' }, CHS: { validator: function (a, b) { return /^[\u0391-\uFFE5]+$/.test(a) }, message: '请输入汉字' }, ZIP: { validator: function (a, b) { return /^[1-9]\d{5}$/.test(a) }, message: '邮政编码不存在' }, QQ: { validator: function (a, b) { return /^[1-9]\d{4,10}$/.test(a) }, message: 'QQ号码不正确' }, mobile: { validator: function (a, b) { return /^((\(\d{2,3}\))|(\d{3}\-))?13\d{9}$/.test(a) }, message: '手机号码不正确' }, loginName: { validator: function (a, b) { return /^[\u0391-\uFFE5\w]+$/.test(a) }, message: '登录名称只允许汉字、英文字母、数字及下划线。' }, safepass: { validator: function (a, b) { return safePassword(a) }, message: '密码由字母和数字组成，至少6位' }, equalTo: { validator: function (a, b) { return a == $(b).val() }, message: '两次输入的字符不一至' }, idcard: { validator: function (a, b) { return idCard(a) }, message: '请输入正确的身份证号码' }, email: { validator: function (b) { return /^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i.test(b) }, message: 'Please enter a valid email address.' }, url: { validator: function (b) { return /^(https?|ftp):\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i.test(value) }, message: "Please enter a valid URL."}}} })(jQuery); (function ($) { $.fn.numberTextBox = function () { function fixValue(target) { var min = parseFloat($(target).attr('min')); var max = parseFloat($(target).attr('max')); var precision = $(target).attr("precision") || 0; var val = parseFloat($(target).val()).toFixed(precision); if (isNaN(val)) { $(target).val(''); return } if (min && val < min) { $(target).val(min.toFixed(precision)) } else if (max && val > max) { $(target).val(max.toFixed(precision)) } else { $(target).val(val) } } return this.each(function () { $(this).css({ imeMode: "disabled" }); $(this).keypress(function (e) { if (e.which == 46) { return true } else if ((e.which >= 48 && e.which <= 57 && e.ctrlKey == false && e.shiftKey == false) || e.which == 0 || e.which == 8) { return true } else if (e.ctrlKey == true && (e.which == 99 || e.which == 118)) { return true } else { return false } }).bind('paste', function () { if (window.clipboardData) { var s = clipboardData.getData('text'); if (!/\D/.test(s)) { return true } else { return false } } else { return false } }).bind('dragenter', function () { return false }).blur(function () { fixValue(this) }) }) }; $(function () { $('.n').numberTextBox() }) })(jQuery); (function (b, j, y) { var p = "function", k = "password", d = "maxLength", g = "type", a = "", c = true, o = "placeholder", e = false, w = "watermark", l = w, i = "watermarkClass", t = "watermarkFocus", n = "watermarkSubmit", r = "watermarkMaxLength", h = "watermarkPassword", f = "watermarkText", m = /\r/g, v = ":data(" + l + ")", q = ":text,:password,:search,textarea", s = ["Page_ClientValidate"], u = e, x = o in document.createElement("input"); b.watermark = b.watermark || { version: "3.1", runOnce: c, options: { className: w, useNative: c, hideBeforeUnload: c }, hide: function (a) { b(a).filter(v).each(function () { b.watermark._hide(b(this)) }) }, _hide: function (b, q) { var o = b[0], p = (o.value || a).replace(m, a), l = b.data(f) || a, n = b.data(r) || 0, k = b.data(i); if (l.length && p == l) { o.value = a; if (b.data(h)) if ((b.attr(g) || a) === "text") { var e = b.data(h) || [], c = b.parent() || []; if (e.length && c.length) { c[0].removeChild(b[0]); c[0].appendChild(e[0]); b = e } } if (n) { b.attr(d, n); b.removeData(r) } if (q) { b.attr("autocomplete", "off"); j.setTimeout(function () { b.select() }, 1) } } k && b.removeClass(k) }, show: function (a) { b(a).filter(v).each(function () { b.watermark._show(b(this)) }) }, _show: function (e) { var s = e[0], v = (s.value || a).replace(m, a), j = e.data(f) || a, p = e.attr(g) || a, q = e.data(i); if ((v.length == 0 || v == j) && !e.data(t)) { u = c; if (e.data(h)) if (p === k) { var o = e.data(h) || [], n = e.parent() || []; if (o.length && n.length) { n[0].removeChild(e[0]); n[0].appendChild(o[0]); e = o; e.attr(d, j.length) } } if (p === "text" || p === "search") { var l = e.attr(d) || 0; if (l > 0 && j.length > l) { e.data(r, l); e.attr(d, j.length) } } q && e.addClass(q); s.value = j } else b.watermark._hide(e) }, hideAll: function () { if (u) { b.watermark.hide(q); u = e } }, showAll: function () { b.watermark.show(q) } }; b.fn.watermark = b.fn.watermark || function (s, r) { var u = "string"; if (!this.length) return this; var w = e, v = typeof s === u; if (v) s = s.replace(m, a); if (typeof r === "object") { w = typeof r.className === u; r = b.extend({}, b.watermark.options, r) } else if (typeof r === u) { w = c; r = b.extend({}, b.watermark.options, { className: r }) } else r = b.watermark.options; if (typeof r.useNative !== p) r.useNative = r.useNative ? function () { return c } : function () { return e }; return this.each(function () { var z = "dragleave", y = "dragenter", B = this, e = b(B); if (!e.is(q)) return; if (e.data(l)) { if (v || w) { b.watermark._hide(e); v && e.data(f, s); w && e.data(i, r.className) } } else { if (x && r.useNative.call(B, e) && (e.attr("tagName") || a) !== "TEXTAREA") { v && e.attr(o, s); return } e.data(f, v ? s : a); e.data(i, r.className); e.data(l, 1); if ((e.attr(g) || a) === k) { var C = e.wrap("<span>").parent(), p = b(C.html().replace(/type=["']?password["']?/i, 'type="text"')); p.data(f, e.data(f)); p.data(i, e.data(i)); p.data(l, 1); p.attr(d, s.length); p.focus(function () { b.watermark._hide(p, c) }).bind(y, function () { b.watermark._hide(p) }).bind("dragend", function () { j.setTimeout(function () { p.blur() }, 1) }); e.blur(function () { b.watermark._show(e) }).bind(z, function () { b.watermark._show(e) }); p.data(h, e); e.data(h, p) } else e.focus(function () { e.data(t, 1); b.watermark._hide(e, c) }).blur(function () { e.data(t, 0); b.watermark._show(e) }).bind(y, function () { b.watermark._hide(e) }).bind(z, function () { b.watermark._show(e) }).bind("dragend", function () { j.setTimeout(function () { b.watermark._show(e) }, 1) }).bind("drop", function (d) { var c = e[0], b = d.originalEvent.dataTransfer.getData("Text"); if ((c.value || a).replace(m, a).replace(b, a) === e.data(f)) c.value = b; e.focus() }); if (B.form) { var u = B.form, A = b(u); if (!A.data(n)) { A.submit(b.watermark.hideAll); if (u.submit) { A.data(n, u.submit); u.submit = function (c, a) { return function () { var d = a.data(n); b.watermark.hideAll(); if (d.apply) d.apply(c, Array.prototype.slice.call(arguments)); else d() } } (u, A) } else { A.data(n, 1); u.submit = function (a) { return function () { b.watermark.hideAll(); delete a.submit; a.submit() } } (u) } } } } b.watermark._show(e) }) }; if (b.watermark.runOnce) { b.watermark.runOnce = e; b.extend(b.expr[":"], { search: function (b) { return "search" === (b.type || a) }, data: function (c, d, a) { return !!b.data(c, a[3]) } }); (function (c) { b.fn.val = function () { var d = this; if (!d.length) return arguments.length ? d : y; if (!arguments.length) if (d.data(l)) { var e = (d[0].value || a).replace(m, a); return e === (d.data(f) || a) ? a : e } else return c.apply(d, arguments); else { c.apply(d, arguments); b.watermark.show(d); return d } } })(b.fn.val); s.length && b(function () { for (var a, c, d = s.length - 1; d >= 0; d--) { a = s[d]; c = j[a]; if (typeof c === p) j[a] = function (a) { return function () { b.watermark.hideAll(); return a.apply(null, Array.prototype.slice.call(arguments)) } } (c) } }); b(j).bind("beforeunload", function () { b.watermark.options.hideBeforeUnload && b.watermark.hideAll() }) } })(jQuery, window); (function ($) { $.fn.layout = function (opts) { var prefix = "ui-layout-", defaults = { paneClass: prefix + "pane", resizerClass: prefix + "resizer", togglerClass: prefix + "toggler", togglerInnerClass: prefix + "", buttonClass: prefix + "button", contentSelector: "." + prefix + "content", contentIgnoreSelector: "." + prefix + "ignore" }; var options = { name: "", scrollToBookmarkOnLoad: true, defaults: { applyDefaultStyles: false, closable: true, resizable: true, slidable: true, contentSelector: defaults.contentSelector, contentIgnoreSelector: defaults.contentIgnoreSelector, paneClass: defaults.paneClass, resizerClass: defaults.resizerClass, togglerClass: defaults.togglerClass, buttonClass: defaults.buttonClass, resizerDragOpacity: 1, maskIframesOnResize: true, minSize: 0, maxSize: 0, spacing_open: 6, spacing_closed: 6, togglerLength_open: 50, togglerLength_closed: 50, togglerAlign_open: "center", togglerAlign_closed: "center", togglerTip_open: "Close", togglerTip_closed: "Open", resizerTip: "Resize", sliderTip: "Slide Open", sliderCursor: "pointer", slideTrigger_open: "click", slideTrigger_close: "mouseout", hideTogglerOnSlide: false, togglerContent_open: "", togglerContent_closed: "", showOverflowOnHover: false, enableCursorHotkey: true, customHotkeyModifier: "SHIFT", fxName: "slide", fxSpeed: null, fxSettings: {}, initClosed: false, initHidden: false }, north: { paneSelector: "." + prefix + "north", size: "auto", resizerCursor: "n-resize" }, south: { paneSelector: "." + prefix + "south", size: "auto", resizerCursor: "s-resize" }, east: { paneSelector: "." + prefix + "east", size: 200, resizerCursor: "e-resize" }, west: { paneSelector: "." + prefix + "west", size: 200, resizerCursor: "w-resize" }, center: { paneSelector: "." + prefix + "center"} }; var effects = { slide: { all: { duration: "fast" }, north: { direction: "up" }, south: { direction: "down" }, east: { direction: "right" }, west: { direction: "left"} }, drop: { all: { duration: "slow" }, north: { direction: "up" }, south: { direction: "down" }, east: { direction: "right" }, west: { direction: "left"} }, scale: { all: { duration: "fast"}} }; var config = { allPanes: "north,south,east,west,center", borderPanes: "north,south,east,west", zIndex: { resizer_normal: 1, pane_normal: 2, mask: 4, sliding: 100, resizing: 10000, animation: 10000 }, resizers: { cssReq: { position: "absolute", padding: 0, margin: 0, fontSize: "1px", textAlign: "left", overflow: "hidden", zIndex: 1 }, cssDef: { background: "#DDD", border: "none"} }, togglers: { cssReq: { position: "absolute", display: "block", padding: 0, margin: 0, overflow: "hidden", textAlign: "center", fontSize: "1px", cursor: "pointer", zIndex: 1 }, cssDef: { background: "#AAA"} }, content: { cssReq: { overflow: "auto" }, cssDef: {} }, defaults: { cssReq: { position: "absolute", margin: 0, zIndex: 2 }, cssDef: { padding: "10px", background: "#FFF", border: "1px solid #BBB", overflow: "auto"} }, north: { edge: "top", sizeType: "height", dir: "horz", cssReq: { top: 0, bottom: "auto", left: 0, right: 0, width: "auto"} }, south: { edge: "bottom", sizeType: "height", dir: "horz", cssReq: { top: "auto", bottom: 0, left: 0, right: 0, width: "auto"} }, east: { edge: "right", sizeType: "width", dir: "vert", cssReq: { left: "auto", right: 0, top: "auto", bottom: "auto", height: "auto"} }, west: { edge: "left", sizeType: "width", dir: "vert", cssReq: { left: 0, right: "auto", top: "auto", bottom: "auto", height: "auto"} }, center: { dir: "center", cssReq: { left: "auto", right: "auto", top: "auto", bottom: "auto", height: "auto", width: "auto"}} }; var state = { id: Math.floor(Math.random() * 10000), container: {}, north: {}, south: {}, east: {}, west: {}, center: {} }; var altEdge = { top: "bottom", bottom: "top", left: "right", right: "left" }, altSide = { north: "south", south: "north", east: "west", west: "east" }; var isStr = function (o) { if (typeof o == "string") return true; else if (typeof o == "object") { try { var match = o.constructor.toString().match(/string/i); return (match !== null) } catch (e) { } } return false }; var str = function (o) { if (typeof o == "string" || isStr(o)) return $.trim(o); else return o }; var min = function (x, y) { return Math.min(x, y) }; var max = function (x, y) { return Math.max(x, y) }; var transformData = function (d) { var json = { defaults: { fxSettings: {} }, north: { fxSettings: {} }, south: { fxSettings: {} }, east: { fxSettings: {} }, west: { fxSettings: {} }, center: { fxSettings: {}} }; d = d || {}; if (d.effects || d.defaults || d.north || d.south || d.west || d.east || d.center) json = $.extend(json, d); else $.each(d, function (key, val) { a = key.split("__"); json[a[1] ? a[0] : "defaults"][a[1] ? a[1] : a[0]] = val }); return json }; var setFlowCallback = function (action, pane, param) { var cb = action + "," + pane + "," + (param ? 1 : 0), cP, cbPane; $.each(c.borderPanes.split(","), function (i, p) { if (c[p].isMoving) { bindCallback(p); return false } }); function bindCallback(p, test) { cP = c[p]; if (!cP.doCallback) { cP.doCallback = true; cP.callback = cb } else { cpPane = cP.callback.split(",")[1]; if (cpPane != p && cpPane != pane) bindCallback(cpPane, true) } } }; var execFlowCallback = function (pane) { var cP = c[pane]; c.isLayoutBusy = false; delete cP.isMoving; if (!cP.doCallback || !cP.callback) return; cP.doCallback = false; var cb = cP.callback.split(","), param = (cb[2] > 0 ? true : false); if (cb[0] == "open") open(cb[1], param); else if (cb[0] == "close") close(cb[1], param); if (!cP.doCallback) cP.callback = null }; var execUserCallback = function (pane, v_fn) { if (!v_fn) return; var fn; try { if (typeof v_fn == "function") fn = v_fn; else if (typeof v_fn != "string") return; else if (v_fn.indexOf(",") > 0) { var args = v_fn.split(","), fn = eval(args[0]); if (typeof fn == "function" && args.length > 1) return fn(args[1]) } else fn = eval(v_fn); if (typeof fn == "function") return fn(pane, $Ps[pane], $.extend({}, state[pane]), $.extend({}, options[pane]), options.name) } catch (ex) { } }; var cssNum = function ($E, prop) { var val = 0, hidden = false, visibility = ""; if (!$.browser.msie) { if ($.curCSS($E[0], "display", true) == "none") { hidden = true; visibility = $.curCSS($E[0], "visibility", true); $E.css({ display: "block", visibility: "hidden" }) } } val = parseInt($.curCSS($E[0], prop, true), 10) || 0; if (hidden) { $E.css({ display: "none" }); if (visibility && visibility != "hidden") $E.css({ visibility: visibility }) } return val }; var cssW = function (e, outerWidth) { var $E; if (isStr(e)) { e = str(e); $E = $Ps[e] } else $E = $(e); if (outerWidth <= 0) return 0; else if (!(outerWidth > 0)) outerWidth = isStr(e) ? getPaneSize(e) : $E.outerWidth(); if (!$.boxModel) return outerWidth; else return outerWidth - cssNum($E, "paddingLeft") - cssNum($E, "paddingRight") - ($.curCSS($E[0], "borderLeftStyle", true) == "none" ? 0 : cssNum($E, "borderLeftWidth")) - ($.curCSS($E[0], "borderRightStyle", true) == "none" ? 0 : cssNum($E, "borderRightWidth")) }; var cssH = function (e, outerHeight) { var $E; if (isStr(e)) { e = str(e); $E = $Ps[e] } else $E = $(e); if (outerHeight <= 0) return 0; else if (!(outerHeight > 0)) outerHeight = (isStr(e)) ? getPaneSize(e) : $E.outerHeight(); if (!$.boxModel) return outerHeight; else return outerHeight - cssNum($E, "paddingTop") - cssNum($E, "paddingBottom") - ($.curCSS($E[0], "borderTopStyle", true) == "none" ? 0 : cssNum($E, "borderTopWidth")) - ($.curCSS($E[0], "borderBottomStyle", true) == "none" ? 0 : cssNum($E, "borderBottomWidth")) }; var cssSize = function (pane, outerSize) { if (c[pane].dir == "horz") return cssH(pane, outerSize); else return cssW(pane, outerSize) }; var getPaneSize = function (pane, inclSpace) { var $P = $Ps[pane], o = options[pane], s = state[pane], oSp = (inclSpace ? o.spacing_open : 0), cSp = (inclSpace ? o.spacing_closed : 0); if (!$P || s.isHidden) return 0; else if (s.isClosed || (s.isSliding && inclSpace)) return cSp; else if (c[pane].dir == "horz") return $P.outerHeight() + oSp; else return $P.outerWidth() + oSp }; var setPaneMinMaxSizes = function (pane) { var d = cDims, edge = c[pane].edge, dir = c[pane].dir, o = options[pane], s = state[pane], $P = $Ps[pane], $altPane = $Ps[altSide[pane]], paneSpacing = o.spacing_open, altPaneSpacing = options[altSide[pane]].spacing_open, altPaneSize = (!$altPane ? 0 : (dir == "horz" ? $altPane.outerHeight() : $altPane.outerWidth())), containerSize = (dir == "horz" ? d.innerHeight : d.innerWidth), limitSize = containerSize - paneSpacing - altPaneSize - altPaneSpacing, minSize = s.minSize || 0, maxSize = Math.min(s.maxSize || 9999, limitSize), minPos, maxPos; switch (pane) { case "north": minPos = d.offsetTop + minSize; maxPos = d.offsetTop + maxSize; break; case "west": minPos = d.offsetLeft + minSize; maxPos = d.offsetLeft + maxSize; break; case "south": minPos = d.offsetTop + d.innerHeight - maxSize; maxPos = d.offsetTop + d.innerHeight - minSize; break; case "east": minPos = d.offsetLeft + d.innerWidth - maxSize; maxPos = d.offsetLeft + d.innerWidth - minSize; break } $.extend(s, { minSize: minSize, maxSize: maxSize, minPosition: minPos, maxPosition: maxPos }) }; var getPaneDims = function () { var d = { top: getPaneSize("north", true), bottom: getPaneSize("south", true), left: getPaneSize("west", true), right: getPaneSize("east", true), width: 0, height: 0 }; with (d) { width = cDims.innerWidth - left - right; height = cDims.innerHeight - bottom - top; top += cDims.top; bottom += cDims.bottom; left += cDims.left; right += cDims.right } return d }; var getElemDims = function ($E) { var d = {}, e, b, p; $.each("Left,Right,Top,Bottom".split(","), function () { e = str(this); b = d["border" + e] = cssNum($E, "border" + e + "Width"); p = d["padding" + e] = cssNum($E, "padding" + e); d["offset" + e] = b + p; if ($E == $Container) d[e.toLowerCase()] = ($.boxModel ? p : 0) }); d.innerWidth = d.outerWidth = $E.outerWidth(); d.innerHeight = d.outerHeight = $E.outerHeight(); if ($.boxModel) { d.innerWidth -= (d.offsetLeft + d.offsetRight); d.innerHeight -= (d.offsetTop + d.offsetBottom) } return d }; var setTimer = function (pane, action, fn, ms) { var Layout = window.layout = window.layout || {}, Timers = Layout.timers = Layout.timers || {}, name = "layout_" + state.id + "_" + pane + "_" + action; if (Timers[name]) return; else Timers[name] = setTimeout(fn, ms) }; var clearTimer = function (pane, action) { var Layout = window.layout = window.layout || {}, Timers = Layout.timers = Layout.timers || {}, name = "layout_" + state.id + "_" + pane + "_" + action; if (Timers[name]) { clearTimeout(Timers[name]); delete Timers[name]; return true } else return false }; var create = function () { initOptions(); initContainer(); initPanes(); initHandles(); initResizable(); sizeContent("all"); if (options.scrollToBookmarkOnLoad) with (self.location) if (hash) replace(hash); initHotkeys(); $(window).resize(function () { var timerID = "timerLayout_" + state.id; if (window[timerID]) clearTimeout(window[timerID]); window[timerID] = null; if (true || $.browser.msie) window[timerID] = setTimeout(resizeAll, 100); else resizeAll() }) }; var initContainer = function () { try { if ($Container[0].tagName == "BODY") { $("html").css({ height: "100%", overflow: "hidden" }); $("body").css({ position: "relative", height: "100%", overflow: "hidden", margin: 0, padding: 0, border: "none" }) } else { var CSS = { overflow: "hidden" }, p = $Container.css("position"), h = $Container.css("height"); if (!$Container.hasClass("ui-layout-pane")) { if (!p || "fixed,absolute,relative".indexOf(p) < 0) CSS.position = "relative"; if (!h || h == "auto") CSS.height = "100%" } $Container.css(CSS) } } catch (ex) { } cDims = state.container = getElemDims($Container) }; var initHotkeys = function () { $.each(c.borderPanes.split(","), function (i, pane) { var o = options[pane]; if (o.enableCursorHotkey || o.customHotkey) { $(document).keydown(keyDown); return false } }) }; var initOptions = function () { opts = transformData(opts); if (opts.effects) { $.extend(effects, opts.effects); delete opts.effects } $.each("name,scrollToBookmarkOnLoad".split(","), function (idx, key) { if (opts[key] !== undefined) options[key] = opts[key]; else if (opts.defaults[key] !== undefined) { options[key] = opts.defaults[key]; delete opts.defaults[key] } }); $.each("paneSelector,resizerCursor,customHotkey".split(","), function (idx, key) { delete opts.defaults[key] }); $.extend(options.defaults, opts.defaults); c.center = $.extend(true, {}, c.defaults, c.center); $.extend(options.center, opts.center); var o_Center = $.extend(true, {}, options.defaults, opts.defaults, options.center); $.each("paneClass,contentSelector,contentIgnoreSelector,applyDefaultStyles,showOverflowOnHover".split(","), function (idx, key) { options.center[key] = o_Center[key] }); var defs = options.defaults; $.each(c.borderPanes.split(","), function (i, pane) { c[pane] = $.extend(true, {}, c.defaults, c[pane]); o = options[pane] = $.extend(true, {}, options.defaults, options[pane], opts.defaults, opts[pane]); if (!o.paneClass) o.paneClass = defaults.paneClass; if (!o.resizerClass) o.resizerClass = defaults.resizerClass; if (!o.togglerClass) o.togglerClass = defaults.togglerClass; $.each(["_open", "_close", ""], function (i, n) { var sName = "fxName" + n, sSpeed = "fxSpeed" + n, sSettings = "fxSettings" + n; o[sName] = opts[pane][sName] || opts[pane].fxName || opts.defaults[sName] || opts.defaults.fxName || o[sName] || o.fxName || defs[sName] || defs.fxName || "none"; var fxName = o[sName]; if (fxName == "none" || !$.effects || !$.effects[fxName] || (!effects[fxName] && !o[sSettings] && !o.fxSettings)) fxName = o[sName] = "none"; var fx = effects[fxName] || {}, fx_all = fx.all || {}, fx_pane = fx[pane] || {}; o[sSettings] = $.extend({}, fx_all, fx_pane, defs.fxSettings || {}, defs[sSettings] || {}, o.fxSettings, o[sSettings], opts.defaults.fxSettings, opts.defaults[sSettings] || {}, opts[pane].fxSettings, opts[pane][sSettings] || {}); o[sSpeed] = opts[pane][sSpeed] || opts[pane].fxSpeed || opts.defaults[sSpeed] || opts.defaults.fxSpeed || o[sSpeed] || o[sSettings].duration || o.fxSpeed || o.fxSettings.duration || defs.fxSpeed || defs.fxSettings.duration || fx_pane.duration || fx_all.duration || "normal" }) }) }; var initPanes = function () { $.each(c.allPanes.split(","), function () { var pane = str(this), o = options[pane], s = state[pane], fx = s.fx, dir = c[pane].dir, size = o.size == "auto" || isNaN(o.size) ? 0 : o.size, minSize = o.minSize || 1, maxSize = o.maxSize || 9999, spacing = o.spacing_open || 0, sel = o.paneSelector, isIE6 = ($.browser.msie && $.browser.version < 7), CSS = {}, $P, $C; $Cs[pane] = false; if (sel.substr(0, 1) === "#") $P = $Ps[pane] = $Container.find(sel + ":first"); else { $P = $Ps[pane] = $Container.children(sel + ":first"); if (!$P.length) $P = $Ps[pane] = $Container.children("form:first").children(sel + ":first") } if (!$P.length) { $Ps[pane] = false; return true } $P.attr("pane", pane).addClass(o.paneClass + " " + o.paneClass + "-" + pane); if (pane != "center") { s.isClosed = false; s.isSliding = false; s.isResizing = false; s.isHidden = false; s.noRoom = false; c[pane].pins = [] } CSS = $.extend({ visibility: "visible", display: "block" }, c.defaults.cssReq, c[pane].cssReq); if (o.applyDefaultStyles) $.extend(CSS, c.defaults.cssDef, c[pane].cssDef); $P.css(CSS); CSS = {}; switch (pane) { case "north": CSS.top = cDims.top; CSS.left = cDims.left; CSS.right = cDims.right; break; case "south": CSS.bottom = cDims.bottom; CSS.left = cDims.left; CSS.right = cDims.right; break; case "west": CSS.left = cDims.left; break; case "east": CSS.right = cDims.right; break; case "center": } if (dir == "horz") { if (size === 0 || size == "auto") { $P.css({ height: "auto" }); size = $P.outerHeight() } size = max(size, minSize); size = min(size, maxSize); size = min(size, cDims.innerHeight - spacing); CSS.height = max(1, cssH(pane, size)); s.size = size; s.maxSize = maxSize; s.minSize = max(minSize, size - CSS.height + 1); $P.css(CSS) } else if (dir == "vert") { if (size === 0 || size == "auto") { $P.css({ width: "auto", float: "left" }); size = $P.outerWidth(); $P.css({ float: "none" }) } size = max(size, minSize); size = min(size, maxSize); size = min(size, cDims.innerWidth - spacing); CSS.width = max(1, cssW(pane, size)); s.size = size; s.maxSize = maxSize; s.minSize = max(minSize, size - CSS.width + 1); $P.css(CSS); sizeMidPanes(pane, null, true) } else if (pane == "center") { $P.css(CSS); sizeMidPanes("center", null, true) } if (o.initClosed && o.closable) { $P.hide().addClass("closed"); s.isClosed = true } else if (o.initHidden || o.initClosed) { hide(pane, true); s.isHidden = true } else $P.addClass("open"); if (o.showOverflowOnHover) $P.hover(allowOverflow, resetOverflow); if (o.contentSelector) { $C = $Cs[pane] = $P.children(o.contentSelector + ":first"); if (!$C.length) { $Cs[pane] = false; return true } $C.css(c.content.cssReq); if (o.applyDefaultStyles) $C.css(c.content.cssDef); $P.css({ overflow: "hidden" }) } }) }; var initHandles = function () { $.each(c.borderPanes.split(","), function () { var pane = str(this), o = options[pane], s = state[pane], rClass = o.resizerClass, tClass = o.togglerClass, $P = $Ps[pane]; $Rs[pane] = false; $Ts[pane] = false; if (!$P || (!o.closable && !o.resizable)) return; var edge = c[pane].edge, isOpen = $P.is(":visible"), spacing = (isOpen ? o.spacing_open : o.spacing_closed), _pane = "-" + pane, _state = (isOpen ? "-open" : "-closed"), $R, $T; $R = $Rs[pane] = $("<span></span>"); if (isOpen && o.resizable); else if (!isOpen && o.slidable) $R.attr("title", o.sliderTip).css("cursor", o.sliderCursor); $R.attr("id", (o.paneSelector.substr(0, 1) == "#" ? o.paneSelector.substr(1) + "-resizer" : "")).attr("resizer", pane).css(c.resizers.cssReq).css(edge, cDims[edge] + getPaneSize(pane)).addClass(rClass + " " + rClass + _pane + " " + rClass + _state + " " + rClass + _pane + _state).appendTo($Container); if (o.applyDefaultStyles) $R.css(c.resizers.cssDef); if (o.closable) { $T = $Ts[pane] = $("<div></div>"); $T.attr("id", (o.paneSelector.substr(0, 1) == "#" ? o.paneSelector.substr(1) + "-toggler" : "")).css(c.togglers.cssReq).attr("title", (isOpen ? o.togglerTip_open : o.togglerTip_closed)).click(function (evt) { toggle(pane); evt.stopPropagation() }).mouseover(function (evt) { evt.stopPropagation() }).addClass(tClass + " " + tClass + _pane + " " + tClass + _state + " " + tClass + _pane + _state).appendTo($R); if (o.togglerContent_open) $("<span>" + o.togglerContent_open + "</span>").addClass("content content-open").css("display", s.isClosed ? "none" : "block").appendTo($T); if (o.togglerContent_closed) $("<span>" + o.togglerContent_closed + "</span>").addClass("content content-closed").css("display", s.isClosed ? "block" : "none").appendTo($T); if (o.applyDefaultStyles) $T.css(c.togglers.cssDef); if (!isOpen) bindStartSlidingEvent(pane, true) } }); sizeHandles("all", true) }; var initResizable = function () { var draggingAvailable = (typeof $.fn.draggable == "function"), minPosition, maxPosition, edge; $.each(c.borderPanes.split(","), function () { var pane = str(this), o = options[pane], s = state[pane]; if (!draggingAvailable || !$Ps[pane] || !o.resizable) { o.resizable = false; return true } var rClass = o.resizerClass, dragClass = rClass + "-drag", dragPaneClass = rClass + "-" + pane + "-drag", draggingClass = rClass + "-dragging", draggingPaneClass = rClass + "-" + pane + "-dragging", draggingClassSet = false, $P = $Ps[pane], $R = $Rs[pane]; if (!s.isClosed) $R.attr("title", o.resizerTip).css("cursor", o.resizerCursor); $R.draggable({ containment: $Container[0], axis: (c[pane].dir == "horz" ? "y" : "x"), delay: 200, distance: 1, helper: "clone", opacity: o.resizerDragOpacity, zIndex: c.zIndex.resizing, start: function (e, ui) { if (false === execUserCallback(pane, o.onresize_start)) return false; s.isResizing = true; clearTimer(pane, "closeSlider"); $R.addClass(dragClass + " " + dragPaneClass); draggingClassSet = false; var resizerWidth = (pane == "east" || pane == "south" ? o.spacing_open : 0); setPaneMinMaxSizes(pane); s.minPosition -= resizerWidth; s.maxPosition -= resizerWidth; edge = (c[pane].dir == "horz" ? "top" : "left"); $(o.maskIframesOnResize === true ? "iframe" : o.maskIframesOnResize).each(function () { $('<div class="ui-layout-mask"/>').css({ background: "#fff", opacity: "0.001", zIndex: 9, position: "absolute", width: this.offsetWidth + "px", height: this.offsetHeight + "px" }).css($(this).offset()).appendTo(this.parentNode) }) }, drag: function (e, ui) { if (!draggingClassSet) { $(".ui-draggable-dragging").addClass(draggingClass + " " + draggingPaneClass).children().css("visibility", "hidden"); draggingClassSet = true; if (s.isSliding) $Ps[pane].css("zIndex", c.zIndex.sliding) } if (ui.position[edge] < s.minPosition) ui.position[edge] = s.minPosition; else if (ui.position[edge] > s.maxPosition) ui.position[edge] = s.maxPosition }, stop: function (e, ui) { var dragPos = ui.position, resizerPos, newSize; $R.removeClass(dragClass + " " + dragPaneClass); switch (pane) { case "north": resizerPos = dragPos.top; break; case "west": resizerPos = dragPos.left; break; case "south": resizerPos = cDims.outerHeight - dragPos.top - $R.outerHeight(); break; case "east": resizerPos = cDims.outerWidth - dragPos.left - $R.outerWidth(); break } newSize = resizerPos - cDims[c[pane].edge]; sizePane(pane, newSize); $("div.ui-layout-mask").remove(); s.isResizing = false } }) }) }; var hide = function (pane, onInit) { var o = options[pane], s = state[pane], $P = $Ps[pane], $R = $Rs[pane]; if (!$P || s.isHidden) return; if (false === execUserCallback(pane, o.onhide_start)) return; s.isSliding = false; if ($R) $R.hide(); if (onInit || s.isClosed) { s.isClosed = true; s.isHidden = true; $P.hide(); sizeMidPanes(c[pane].dir == "horz" ? "all" : "center"); execUserCallback(pane, o.onhide_end || o.onhide) } else { s.isHiding = true; close(pane, false) } }; var show = function (pane, openPane) { var o = options[pane], s = state[pane], $P = $Ps[pane], $R = $Rs[pane]; if (!$P || !s.isHidden) return; if (false === execUserCallback(pane, o.onshow_start)) return; s.isSliding = false; s.isShowing = true; if ($R && o.spacing_open > 0) $R.show(); if (openPane === false) close(pane, true); else open(pane) }; var toggle = function (pane) { var s = state[pane]; if (s.isHidden) show(pane); else if (s.isClosed) open(pane); else close(pane) }; var close = function (pane, force, noAnimation) { var $P = $Ps[pane], $R = $Rs[pane], $T = $Ts[pane], o = options[pane], s = state[pane], doFX = !noAnimation && !s.isClosed && (o.fxName_close != "none"), edge = c[pane].edge, rClass = o.resizerClass, tClass = o.togglerClass, _pane = "-" + pane, _open = "-open", _sliding = "-sliding", _closed = "-closed", isShowing = s.isShowing, isHiding = s.isHiding; delete s.isShowing; delete s.isHiding; if (!$P || (!o.resizable && !o.closable)) return; else if (!force && s.isClosed && !isShowing) return; if (c.isLayoutBusy) { setFlowCallback("close", pane, force); return } if (!isShowing && false === execUserCallback(pane, o.onclose_start)) return; c[pane].isMoving = true; c.isLayoutBusy = true; s.isClosed = true; if (isHiding) s.isHidden = true; else if (isShowing) s.isHidden = false; syncPinBtns(pane, false); if (!s.isSliding) sizeMidPanes(c[pane].dir == "horz" ? "all" : "center"); if ($R) { $R.css(edge, cDims[edge]).removeClass(rClass + _open + " " + rClass + _pane + _open).removeClass(rClass + _sliding + " " + rClass + _pane + _sliding).addClass(rClass + _closed + " " + rClass + _pane + _closed); if (o.resizable) $R.draggable("disable").css("cursor", "default").attr("title", ""); if ($T) { $T.removeClass(tClass + _open + " " + tClass + _pane + _open).addClass(tClass + _closed + " " + tClass + _pane + _closed).attr("title", o.togglerTip_closed) } sizeHandles() } if (doFX) { lockPaneForFX(pane, true); $P.hide(o.fxName_close, o.fxSettings_close, o.fxSpeed_close, function () { lockPaneForFX(pane, false); if (!s.isClosed) return; close_2() }) } else { $P.hide(); close_2() } function close_2() { bindStartSlidingEvent(pane, true); if (!isShowing) execUserCallback(pane, o.onclose_end || o.onclose); if (isShowing) execUserCallback(pane, o.onshow_end || o.onshow); if (isHiding) execUserCallback(pane, o.onhide_end || o.onhide); execFlowCallback(pane) } }; var open = function (pane, slide, noAnimation) { var $P = $Ps[pane], $R = $Rs[pane], $T = $Ts[pane], o = options[pane], s = state[pane], doFX = !noAnimation && s.isClosed && (o.fxName_open != "none"), edge = c[pane].edge, rClass = o.resizerClass, tClass = o.togglerClass, _pane = "-" + pane, _open = "-open", _closed = "-closed", _sliding = "-sliding", isShowing = s.isShowing; delete s.isShowing; if (!$P || (!o.resizable && !o.closable)) return; else if (!s.isClosed && !s.isSliding) return; if (s.isHidden && !isShowing) { show(pane, true); return } if (c.isLayoutBusy) { setFlowCallback("open", pane, slide); return } if (false === execUserCallback(pane, o.onopen_start)) return; c[pane].isMoving = true; c.isLayoutBusy = true; if (s.isSliding && !slide) bindStopSlidingEvents(pane, false); s.isClosed = false; if (isShowing) s.isHidden = false; setPaneMinMaxSizes(pane); if (s.size > s.maxSize) $P.css(c[pane].sizeType, max(1, cssSize(pane, s.maxSize))); bindStartSlidingEvent(pane, false); if (doFX) { lockPaneForFX(pane, true); $P.show(o.fxName_open, o.fxSettings_open, o.fxSpeed_open, function () { lockPaneForFX(pane, false); if (s.isClosed) return; open_2() }) } else { $P.show(); open_2() } function open_2() { if (!s.isSliding) sizeMidPanes(c[pane].dir == "vert" ? "center" : "all"); if ($R) { $R.css(edge, cDims[edge] + getPaneSize(pane)).removeClass(rClass + _closed + " " + rClass + _pane + _closed).addClass(rClass + _open + " " + rClass + _pane + _open).addClass(!s.isSliding ? "" : rClass + _sliding + " " + rClass + _pane + _sliding); if (o.resizable) $R.draggable("enable").css("cursor", o.resizerCursor).attr("title", o.resizerTip); else $R.css("cursor", "default"); if ($T) { $T.removeClass(tClass + _closed + " " + tClass + _pane + _closed).addClass(tClass + _open + " " + tClass + _pane + _open).attr("title", o.togglerTip_open) } sizeHandles("all") } sizeContent(pane); syncPinBtns(pane, !s.isSliding); execUserCallback(pane, o.onopen_end || o.onopen); if (isShowing) execUserCallback(pane, o.onshow_end || o.onshow); execFlowCallback(pane) } }; var lockPaneForFX = function (pane, doLock) { var $P = $Ps[pane]; if (doLock) { $P.css({ zIndex: c.zIndex.animation }); if (pane == "south") $P.css({ top: cDims.top + cDims.innerHeight - $P.outerHeight() }); else if (pane == "east") $P.css({ left: cDims.left + cDims.innerWidth - $P.outerWidth() }) } else { if (!state[pane].isSliding) $P.css({ zIndex: c.zIndex.pane_normal }); if (pane == "south") $P.css({ top: "auto" }); else if (pane == "east") $P.css({ left: "auto" }) } }; var bindStartSlidingEvent = function (pane, enable) { var o = options[pane], $R = $Rs[pane], trigger = o.slideTrigger_open; if (!$R || !o.slidable) return; if (trigger != "click" && trigger != "dblclick" && trigger != "mouseover") trigger = "click"; $R[enable ? "bind" : "unbind"](trigger, slideOpen).css("cursor", (enable ? o.sliderCursor : "default")).attr("title", (enable ? o.sliderTip : "")) }; var bindStopSlidingEvents = function (pane, enable) { var o = options[pane], s = state[pane], trigger = o.slideTrigger_close, action = (enable ? "bind" : "unbind"), $P = $Ps[pane], $R = $Rs[pane]; s.isSliding = enable; clearTimer(pane, "closeSlider"); $P.css({ zIndex: (enable ? c.zIndex.sliding : c.zIndex.pane_normal) }); $R.css({ zIndex: (enable ? c.zIndex.sliding : c.zIndex.resizer_normal) }); if (trigger != "click" && trigger != "mouseout") trigger = "mouseout"; if (enable) { $P.bind(trigger, slideClosed); $R.bind(trigger, slideClosed); if (trigger = "mouseout") { $P.bind("mouseover", cancelMouseOut); $R.bind("mouseover", cancelMouseOut) } } else { $P.unbind(trigger); $R.unbind(trigger); if (trigger = "mouseout") { $P.unbind("mouseover"); $R.unbind("mouseover"); clearTimer(pane, "closeSlider") } } function cancelMouseOut(evt) { clearTimer(pane, "closeSlider"); evt.stopPropagation() } }; var slideOpen = function () { var pane = $(this).attr("resizer"); if (state[pane].isClosed) { bindStopSlidingEvents(pane, true); open(pane, true) } }; var slideClosed = function () { var $E = $(this), pane = $E.attr("pane") || $E.attr("resizer"), o = options[pane], s = state[pane]; if (s.isClosed || s.isResizing) return; else if (o.slideTrigger_close == "click") close_NOW(); else setTimer(pane, "closeSlider", close_NOW, 300); function close_NOW() { bindStopSlidingEvents(pane, false); if (!s.isClosed) close(pane) } }; var sizePane = function (pane, size) { var edge = c[pane].edge, dir = c[pane].dir, o = options[pane], s = state[pane], $P = $Ps[pane], $R = $Rs[pane]; setPaneMinMaxSizes(pane); s.minSize = max(s.minSize, o.minSize); if (o.maxSize > 0) s.maxSize = min(s.maxSize, o.maxSize); size = max(size, s.minSize); size = min(size, s.maxSize); s.size = size; $R.css(edge, size + cDims[edge]); $P.css(c[pane].sizeType, max(1, cssSize(pane, size))); if (!s.isSliding) sizeMidPanes(dir == "horz" ? "all" : "center"); sizeHandles(); sizeContent(pane); execUserCallback(pane, o.onresize_end || o.onresize) }; var sizeMidPanes = function (panes, overrideDims, onInit) { if (!panes || panes == "all") panes = "east,west,center"; var d = getPaneDims(); if (overrideDims) $.extend(d, overrideDims); $.each(panes.split(","), function () { if (!$Ps[this]) return; var pane = str(this), o = options[pane], s = state[pane], $P = $Ps[pane], $R = $Rs[pane], hasRoom = true, CSS = {}; if (pane == "center") { d = getPaneDims(); CSS = $.extend({}, d); CSS.width = max(1, cssW(pane, CSS.width)); CSS.height = max(1, cssH(pane, CSS.height)); hasRoom = (CSS.width > 1 && CSS.height > 1); if ($.browser.msie && (!$.boxModel || $.browser.version < 7)) { if ($Ps.north) $Ps.north.css({ width: cssW($Ps.north, cDims.innerWidth) }); if ($Ps.south) $Ps.south.css({ width: cssW($Ps.south, cDims.innerWidth) }) } } else { CSS.top = d.top; CSS.bottom = d.bottom; CSS.height = max(1, cssH(pane, d.height)); hasRoom = (CSS.height > 1) } if (hasRoom) { $P.css(CSS); if (s.noRoom) { s.noRoom = false; if (s.isHidden) return; else show(pane, !s.isClosed) } if (!onInit) { sizeContent(pane); execUserCallback(pane, o.onresize_end || o.onresize) } } else if (!s.noRoom) { s.noRoom = true; if (s.isHidden) return; if (onInit) { $P.hide(); if ($R) $R.hide() } else hide(pane) } }) }; var sizeContent = function (panes) { if (!panes || panes == "all") panes = c.allPanes; $.each(panes.split(","), function () { if (!$Cs[this]) return; var pane = str(this), ignore = options[pane].contentIgnoreSelector, $P = $Ps[pane], $C = $Cs[pane], e_C = $C[0], height = cssH($P); $P.children().each(function () { if (this == e_C) return; var $E = $(this); if (!ignore || !$E.is(ignore)) height -= $E.outerHeight() }); if (height > 0) height = cssH($C, height); if (height < 1) $C.hide(); else $C.css({ height: height }).show() }) }; var sizeHandles = function (panes, onInit) { if (!panes || panes == "all") panes = c.borderPanes; $.each(panes.split(","), function () { var pane = str(this), o = options[pane], s = state[pane], $P = $Ps[pane], $R = $Rs[pane], $T = $Ts[pane]; if (!$P || !$R || (!o.resizable && !o.closable)) return; var dir = c[pane].dir, _state = (s.isClosed ? "_closed" : "_open"), spacing = o["spacing" + _state], togAlign = o["togglerAlign" + _state], togLen = o["togglerLength" + _state], paneLen, offset, CSS = {}; if (spacing == 0) { $R.hide(); return } else if (!s.noRoom && !s.isHidden) $R.show(); if (dir == "horz") { paneLen = $P.outerWidth(); $R.css({ width: max(1, cssW($R, paneLen)), height: max(1, cssH($R, spacing)), left: cssNum($P, "left") }) } else { paneLen = $P.outerHeight(); $R.css({ height: max(1, cssH($R, paneLen)), width: max(1, cssW($R, spacing)), top: cDims.top + getPaneSize("north", true) }) } if ($T) { if (togLen == 0 || (s.isSliding && o.hideTogglerOnSlide)) { $T.hide(); return } else $T.show(); if (!(togLen > 0) || togLen == "100%" || togLen > paneLen) { togLen = paneLen; offset = 0 } else { if (typeof togAlign == "string") { switch (togAlign) { case "top": case "left": offset = 0; break; case "bottom": case "right": offset = paneLen - togLen; break; case "middle": case "center": default: offset = Math.floor((paneLen - togLen) / 2) } } else { var x = parseInt(togAlign); if (togAlign >= 0) offset = x; else offset = paneLen - togLen + x } } var $TC_o = (o.togglerContent_open ? $T.children(".content-open") : false), $TC_c = (o.togglerContent_closed ? $T.children(".content-closed") : false), $TC = (s.isClosed ? $TC_c : $TC_o); if ($TC_o) $TC_o.css("display", s.isClosed ? "none" : "block"); if ($TC_c) $TC_c.css("display", s.isClosed ? "block" : "none"); if (dir == "horz") { var width = cssW($T, togLen); $T.css({ width: max(0, width), height: max(1, cssH($T, spacing)), left: offset }); if ($TC) $TC.css("marginLeft", Math.floor((width - $TC.outerWidth()) / 2)) } else { var height = cssH($T, togLen); $T.css({ height: max(0, height), width: max(1, cssW($T, spacing)), top: offset }); if ($TC) $TC.css("marginTop", Math.floor((height - $TC.outerHeight()) / 2)) } } if (onInit && o.initHidden) { $R.hide(); if ($T) $T.hide() } }) }; var resizeAll = function () { var oldW = cDims.innerWidth, oldH = cDims.innerHeight; cDims = state.container = getElemDims($Container); var checkH = (cDims.innerHeight < oldH), checkW = (cDims.innerWidth < oldW), s, dir; if (checkH || checkW) $.each(["south", "north", "east", "west"], function (i, pane) { s = state[pane]; dir = c[pane].dir; if (!s.isClosed && ((checkH && dir == "horz") || (checkW && dir == "vert"))) { setPaneMinMaxSizes(pane); if (s.size > s.maxSize) sizePane(pane, s.maxSize) } }); sizeMidPanes("all"); sizeHandles("all") }; function keyDown(evt) { if (!evt) return true; var code = evt.keyCode; if (code < 33) return true; var PANE = { 38: "north", 40: "south", 37: "west", 39: "east" }, isCursorKey = (code >= 37 && code <= 40), ALT = evt.altKey, SHIFT = evt.shiftKey, CTRL = evt.ctrlKey, pane = false, s, o, k, m, el; if (!CTRL && !SHIFT) return true; else if (isCursorKey && options[PANE[code]].enableCursorHotkey) pane = PANE[code]; else $.each(c.borderPanes.split(","), function (i, p) { o = options[p]; k = o.customHotkey; m = o.customHotkeyModifier; if ((SHIFT && m == "SHIFT") || (CTRL && m == "CTRL") || (CTRL && SHIFT)) { if (k && code == (isNaN(k) || k <= 9 ? k.toUpperCase().charCodeAt(0) : k)) { pane = p; return false } } }); if (!pane) return true; o = options[pane]; s = state[pane]; if (!o.enableCursorHotkey || s.isHidden || !$Ps[pane]) return true; el = evt.target || evt.srcElement; if (el && SHIFT && isCursorKey && (el.tagName == "TEXTAREA" || (el.tagName == "INPUT" && (code == 37 || code == 39)))) return true; toggle(pane); evt.stopPropagation(); evt.returnValue = false; return false }; function allowOverflow(elem) { if (this && this.tagName) elem = this; var $P; if (typeof elem == "string") $P = $Ps[elem]; else { if ($(elem).attr("pane")) $P = $(elem); else $P = $(elem).parents("div[pane]:first") } if (!$P.length) return; var pane = $P.attr("pane"), s = state[pane]; if (s.cssSaved) resetOverflow(pane); if (s.isSliding || s.isResizing || s.isClosed) { s.cssSaved = false; return } var newCSS = { zIndex: (c.zIndex.pane_normal + 1) }, curCSS = {}, of = $P.css("overflow"), ofX = $P.css("overflowX"), ofY = $P.css("overflowY"); if (of != "visible") { curCSS.overflow = of; newCSS.overflow = "visible" } if (ofX && ofX != "visible" && ofX != "auto") { curCSS.overflowX = ofX; newCSS.overflowX = "visible" } if (ofY && ofY != "visible" && ofY != "auto") { curCSS.overflowY = ofX; newCSS.overflowY = "visible" } s.cssSaved = curCSS; $P.css(newCSS); $.each(c.allPanes.split(","), function (i, p) { if (p != pane) resetOverflow(p) }) }; function resetOverflow(elem) { if (this && this.tagName) elem = this; var $P; if (typeof elem == "string") $P = $Ps[elem]; else { if ($(elem).hasClass("ui-layout-pane")) $P = $(elem); else $P = $(elem).parents("div[pane]:first") } if (!$P.length) return; var pane = $P.attr("pane"), s = state[pane], CSS = s.cssSaved || {}; if (!s.isSliding && !s.isResizing) $P.css("zIndex", c.zIndex.pane_normal); $P.css(CSS); s.cssSaved = false }; function getBtn(selector, pane, action) { var $E = $(selector), err = "Error Adding Button \n\nInvalid "; if (!$E.length) alert(err + "selector: " + selector); else if (c.borderPanes.indexOf(pane) == -1) alert(err + "pane: " + pane); else { var btn = options[pane].buttonClass + "-" + action; $E.addClass(btn + " " + btn + "-" + pane); return $E } return false }; function addToggleBtn(selector, pane) { var $E = getBtn(selector, pane, "toggle"); if ($E) $E.attr("title", state[pane].isClosed ? "Open" : "Close").click(function (evt) { toggle(pane); evt.stopPropagation() }) }; function addOpenBtn(selector, pane) { var $E = getBtn(selector, pane, "open"); if ($E) $E.attr("title", "Open").click(function (evt) { open(pane); evt.stopPropagation() }) }; function addCloseBtn(selector, pane) { var $E = getBtn(selector, pane, "close"); if ($E) $E.attr("title", "Close").click(function (evt) { close(pane); evt.stopPropagation() }) }; function addPinBtn(selector, pane) { var $E = getBtn(selector, pane, "pin"); if ($E) { var s = state[pane]; $E.click(function (evt) { setPinState($(this), pane, (s.isSliding || s.isClosed)); if (s.isSliding || s.isClosed) open(pane); else close(pane); evt.stopPropagation() }); setPinState($E, pane, (!s.isClosed && !s.isSliding)); c[pane].pins.push(selector) } }; function syncPinBtns(pane, doPin) { $.each(c[pane].pins, function (i, selector) { setPinState($(selector), pane, doPin) }) }; function setPinState($Pin, pane, doPin) { var updown = $Pin.attr("pin"); if (updown && doPin == (updown == "down")) return; var root = options[pane].buttonClass, class1 = root + "-pin", class2 = class1 + "-" + pane, UP1 = class1 + "-up", UP2 = class2 + "-up", DN1 = class1 + "-down", DN2 = class2 + "-down"; $Pin.attr("pin", doPin ? "down" : "up").attr("title", doPin ? "Un-Pin" : "Pin").removeClass(doPin ? UP1 : DN1).removeClass(doPin ? UP2 : DN2).addClass(doPin ? DN1 : UP1).addClass(doPin ? DN2 : UP2) }; var $Container = $(this).css({ overflow: "hidden" }), $Ps = {}, $Cs = {}, $Rs = {}, $Ts = {}, c = config, cDims = state.container; create(); return { options: options, state: state, panes: $Ps, toggle: toggle, open: open, close: close, hide: hide, show: show, resizeContent: sizeContent, sizePane: sizePane, resizeAll: resizeAll, addToggleBtn: addToggleBtn, addOpenBtn: addOpenBtn, addCloseBtn: addCloseBtn, addPinBtn: addPinBtn, allowOverflow: allowOverflow, resetOverflow: resetOverflow, cssWidth: cssW, cssHeight: cssH} } })(jQuery); if ($.fn.validatebox) { $.fn.validatebox.defaults.missingMessage = "该输入项为必输项"; $.fn.validatebox.defaults.rules.email.message = "请输入有效的电子邮件地址"; $.fn.validatebox.defaults.rules.url.message = "请输入有效的URL地址"; $.fn.validatebox.defaults.rules.length.message = "输入内容长度必须介于{0}和{1}之间" } (function ($) { function ajaxSubmit(target, options) { options = options || {}; if (options.onSubmit) { if (options.onSubmit.call(target) == false) { return } } var form = $(target); if (options.url) { form.attr('action', options.url) } var frameId = 'easyui_frame_' + (new Date().getTime()); var frame = $('<iframe id=' + frameId + ' name=' + frameId + '></iframe>').attr('src', window.ActiveXObject ? 'javascript:false' : 'about:blank').css({ position: 'absolute', top: -1000, left: -1000 }); var t = form.attr('target'), a = form.attr('action'); form.attr('target', frameId); try { frame.appendTo('body'); frame.bind('load', cb); form[0].submit() } finally { form.attr('action', a); t ? form.attr('target', t) : form.removeAttr('target') } var checkCount = 10; function cb() { frame.unbind(); var body = $('#' + frameId).contents().find('body'); var data = body.html(); if (data == '') { if (--checkCount) { setTimeout(cb, 100); return } return } var ta = body.find('>textarea'); if (ta.length) { data = ta.value() } else { var pre = body.find('>pre'); if (pre.length) { data = pre.html() } } if (options.success) { options.success(data) } setTimeout(function () { frame.unbind(); frame.remove() }, 100) } } function load(target, data) { if (typeof data == 'string') { $.ajax({ url: data, dataType: 'json', success: function (data) { _load(data) } }) } else { _load(data) } function _load(data) { var form = $(target); for (var name in data) { var val = data[name]; if (val == null || val == "") continue; $('input[name=' + name + ']', form).val(val); $('textarea[name=' + name + ']', form).val(val); $('select[name=' + name + ']', form).val(val) } } } function clear(target) { $('input,select,textarea', target).each(function () { var t = this.type, tag = this.tagName.toLowerCase(); if (t == 'text' || t == 'password' || tag == 'textarea') this.value = ''; else if (t == 'checkbox' || t == 'radio') this.checked = false; else if (tag == 'select') this.selectedIndex = 0 }) } function setForm(target) { var options = $.data(target, 'form').options; var form = $(target); form.unbind('.form').bind('submit.form', function () { ajaxSubmit(target, options); return false }) } function _15(form) { if ($.fn.validatebox) { var box = $(".validatebox-text", form); if (box.length) { box.validatebox("validate"); box.trigger("blur"); var _1d = $(".validatebox-invalid:first", form).focus(); return _1d.length == 0 } } return true }; $.fn.form = function (options, param) { if (typeof options == 'string') { switch (options) { case 'submit': return this.each(function () { ajaxSubmit(this, $.extend({}, $.fn.form.defaults, param || {})) }); case 'load': return this.each(function () { load(this, param) }); case 'clear': return this.each(function () { clear(this) }); case "validate": return _15(this[0]) } } options = options || {}; return this.each(function () { if (!$.data(this, 'form')) { $.data(this, 'form', { options: $.extend({}, $.fn.form.defaults, options) }) } setForm(this) }) }; $.fn.form.defaults = { url: null, onSubmit: function () { }, success: function (data) { } } })(jQuery); function reinitIframe() { var $iframe = $('iframe.auto'); $iframe.each(function (i, iframe) { try { var height = 0; if (!$.browser.msie) { height = (iframe.contentDocument.body.offsetHeight + 20) } else { height = (iframe.contentWindow.document.body.scrollHeight + 20) } $(iframe).height(height) } catch (ex) { } }) } window.setInterval("reinitIframe()", 400); var height = window.screen.height - 250, width = window.screen.width, leftW = 300; if (width > 1200) { leftW = width / 2 - 40 } else if (width > 1000) { leftW = width / 2 - 40 } else leftW = 100; var _html = "<div id='loading' style='position:absolute;left:0;width:100%;height:" + height + "px;top:0;background:#E0ECFF;opacity:0.8;filter:alpha(opacity=80);'> </div>"; document.write(_html); function maxWin() { try { window.moveTo(0, 0); window.resizeTo(window.screen.width, window.screen.height); if (window.dialogWidth) { window.dialogWidth = window.screen.availWidth + "px"; window.dialogHeight = window.screen.availHeight + "px"; window.dialogTop = "0px"; window.dialogLeft = "0px" } } catch (err) { } } (function ($) { function getOrCreateMsg(msgId) { var msgPnl = $("<div>").attr("id", "dialog-" + msgId).css({ "display": "none", "font-size": "12px" }).html($("<p>")); return msgPnl }; jQuery.alert = function (message, options) { var defaults = { modal: true, resizable: false, buttons: { '确定': function () { $(this).dialog('close') } } }; $alert = getOrCreateMsg('alert'); $("p", $alert).html(message); $alert.dialog($.extend({}, defaults, options)) }; jQuery.confirm = function (message, callback, options) { var defaults = { modal: true, resizable: false, buttons: { '确定': function () { $(this).dialog('close'); return (typeof callback == 'string') ? window.location.href = callback : callback(true) }, '取消': function () { $(this).dialog('close'); callback(false); return false } }, minHeight: 50 }, $confirm = getOrCreateMsg('confirm'); $("p", $confirm).html(message); $confirm.dialog($.extend({}, defaults, options)) }; $.fn.mdialog = function () { var $this = $(this); var src = $this.attr("src"); var dialogPnl = $("<div>").css({ "padding": 0, "margin": 0 }); var iframe = $("<iframe>").attr({ frameborder: 0, scrolling: "no" }).css({ "padding": 0, "margin": 0, width: "100%" }).attr("src", src).addClass("auto"); dialogPnl.append(iframe); var op = $this.attr("options"); var defaults = { modal: true, resizable: true, minHeight: 50, closeOnEscape: true, maxHeight: 750, close: function () { dialogPnl.remove() } }; if ($.browser.msie && $.browser.version == "6.0") defaults.modal = false; if (op != undefined && op.length > 3) { eval("options=" + op); for (var name in options) { defaults[name] = options[name] } }; dialogPnl.dialog($.extend({}, defaults)) } })(jQuery); function closeDialog() { window.top.$(".ui-dialog").last().remove() } $(function () { $("#loading").remove(); try { $(".tabs").tabs(); $(".v").validatebox(); $(":button,:reset,:submit").button(); $(".mdialog").click(function () { $(this).mdialog(); return false }); $(".topdialog").click(function () { window.top.$(this).mdialog(); return false }) } catch (msg) { } $.fn.ajaxForm = function (success) { var form = $(this); var btn = form.find(":submit"); form.submit(function () { $.ajax({ url: form.attr("action"), type: form.attr("method"), data: form.serialize(), beforeSend: function (xhr) { if (!form.form("validate")) return false; btn.attr("disabled", true) }, success: function (data) { if (success) { success(data) } }, error: function (g) { alert("请求出错，请重试") }, complete: function () { btn.attr("disabled", false) } }); return false }); return false }; $(".grid-table tbody tr:gt(0)").hover(function (e) { $(this).css("background-color", "#fafafa") }, function () { $(this).css("background-color", "#fff") }); $(".datebox").datepicker({ altFormat: 'yy-mm-dd', changeMonth: true, changeYear: true, showButtonPanel: true }); $(".datebox").bind("focus", function () { $(this).select() }); $(".datebox").bind("keydown", function (event) { if (event.keyCode != 8 && event.keyCode != 46) { return false } else { $(this).val("") } }); $("form[ajaxForm='']").ajaxForm(function (callback) { eval("var resultCallBackOrMsg=" + callback); if (typeof (resultCallBackOrMsg) == "string") { window.top.$.alert(resultCallBackOrMsg, { title: "温馨提示" }) } if (typeof (resultCallBackOrMsg) == "function") { resultCallBackOrMsg() } }); $(".load").each(function (i, doc) { var $this = $(doc); var src = $this.attr("src"); if (src == "") src = $this.attr("action"); if (src.indexOf("?") > -1) src = src + "&" + new Date(); else src = src + "?" + new Date(); $.getJSON(src, function (data) { if (data != undefined && data != null && data != "") { for (var name in data) { var val = data[name]; if (val == null || val == "") continue; $('input[name=' + name + ']', $this).val(val); $('textarea[name=' + name + ']', $this).val(val); $('select[name=' + name + ']', $this).val(val) } } }) }); $("[default]").each(function (i, doc) { $(doc).val($(doc).attr("default")) }); $("input[w]").each(function (i, doc) { $(doc).watermark($(doc).attr("w")) }); $.datepicker.regional["zh-CN"] = { closeText: "关闭", prevText: "&#x3c;上月", nextText: "下月&#x3e;", currentText: "今天", monthNames: ["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"], monthNamesShort: ["一", "二", "三", "四", "五", "六", "七", "八", "九", "十", "十一", "十二"], dayNames: ["星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"], dayNamesShort: ["周日", "周一", "周二", "周三", "周四", "周五", "周六"], dayNamesMin: ["日", "一", "二", "三", "四", "五", "六"], dateFormat: "yy-mm-dd", firstDay: 1, isRTL: false }; $.datepicker.setDefaults($.datepicker.regional["zh-CN"]) });
