/*!
 * jQuery UI 1.8.10
 *
 * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
 * Dual licensed under the MIT or GPL Version 2 licenses.
 * http://jquery.org/license
 *
 * http://docs.jquery.com/UI
 */
(function (b, d) {
  function e(g) {
    return!b(g).parents().andSelf().filter(function () {
      return b.curCSS(this, "visibility") === "hidden" || b.expr.filters.hidden(this)
    }).length
  }
  b.ui = b.ui || {};
  if (!b.ui.version) {
    b.extend(b.ui, {version: "1.8.10", 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}});
    b.fn.extend({_focus: b.fn.focus, focus: function (g, f) {
        return typeof g === "number" ? this.each(function () {
          var a = this;
          setTimeout(function () {
            b(a).focus();
            f && f.call(a)
          }, g)
        }) : this._focus.apply(this, arguments)
      }, scrollParent: function () {
        var g;
        g = b.browser.msie && /(static|relative)/.test(this.css("position")) || /absolute/.test(this.css("position")) ? this.parents().filter(function () {
          return/(relative|absolute|fixed)/.test(b.curCSS(this,
                  "position", 1)) && /(auto|scroll)/.test(b.curCSS(this, "overflow", 1) + b.curCSS(this, "overflow-y", 1) + b.curCSS(this, "overflow-x", 1))
        }).eq(0) : this.parents().filter(function () {
          return/(auto|scroll)/.test(b.curCSS(this, "overflow", 1) + b.curCSS(this, "overflow-y", 1) + b.curCSS(this, "overflow-x", 1))
        }).eq(0);
        return/fixed/.test(this.css("position")) || !g.length ? b(document) : g
      }, zIndex: function (g) {
        if (g !== d)
          return this.css("zIndex", g);
        if (this.length) {
          g = b(this[0]);
          for (var f; g.length && g[0] !== document; ) {
            f = g.css("position");
            if (f === "absolute" || f === "relative" || f === "fixed") {
              f = parseInt(g.css("zIndex"), 10);
              if (!isNaN(f) && f !== 0)
                return f
            }
            g = g.parent()
          }
        }
        return 0
      }, disableSelection: function () {
        return this.bind((b.support.selectstart ? "selectstart" : "mousedown") + ".ui-disableSelection", function (g) {
          g.preventDefault()
        })
      }, enableSelection: function () {
        return this.unbind(".ui-disableSelection")
      }});
    b.each(["Width", "Height"], function (g, f) {
      function a(j, n, q, l) {
        b.each(c, function () {
          n -= parseFloat(b.curCSS(j, "padding" + this, true)) || 0;
          if (q)
            n -= parseFloat(b.curCSS(j,
                    "border" + this + "Width", true)) || 0;
          if (l)
            n -= parseFloat(b.curCSS(j, "margin" + this, true)) || 0
        });
        return n
      }
      var c = f === "Width" ? ["Left", "Right"] : ["Top", "Bottom"], h = f.toLowerCase(), i = {innerWidth: b.fn.innerWidth, innerHeight: b.fn.innerHeight, outerWidth: b.fn.outerWidth, outerHeight: b.fn.outerHeight};
      b.fn["inner" + f] = function (j) {
        if (j === d)
          return i["inner" + f].call(this);
        return this.each(function () {
          b(this).css(h, a(this, j) + "px")
        })
      };
      b.fn["outer" + f] = function (j, n) {
        if (typeof j !== "number")
          return i["outer" + f].call(this, j);
        return this.each(function () {
          b(this).css(h,
                  a(this, j, true, n) + "px")
        })
      }
    });
    b.extend(b.expr[":"], {data: function (g, f, a) {
        return!!b.data(g, a[3])
      }, focusable: function (g) {
        var f = g.nodeName.toLowerCase(), a = b.attr(g, "tabindex");
        if ("area" === f) {
          f = g.parentNode;
          a = f.name;
          if (!g.href || !a || f.nodeName.toLowerCase() !== "map")
            return false;
          g = b("img[usemap=#" + a + "]")[0];
          return!!g && e(g)
        }
        return(/input|select|textarea|button|object/.test(f) ? !g.disabled : "a" == f ? g.href || !isNaN(a) : !isNaN(a)) && e(g)
      }, tabbable: function (g) {
        var f = b.attr(g, "tabindex");
        return(isNaN(f) || f >= 0) && b(g).is(":focusable")
      }});
    b(function () {
      var g = document.body, f = g.appendChild(f = document.createElement("div"));
      b.extend(f.style, {minHeight: "100px", height: "auto", padding: 0, borderWidth: 0});
      b.support.minHeight = f.offsetHeight === 100;
      b.support.selectstart = "onselectstart"in f;
      g.removeChild(f).style.display = "none"
    });
    b.extend(b.ui, {plugin: {add: function (g, f, a) {
          g = b.ui[g].prototype;
          for (var c in a) {
            g.plugins[c] = g.plugins[c] || [];
            g.plugins[c].push([f, a[c]])
          }
        }, call: function (g, f, a) {
          if ((f = g.plugins[f]) && g.element[0].parentNode)
            for (var c = 0; c < f.length; c++)
              g.options[f[c][0]] &&
                      f[c][1].apply(g.element, a)
        }}, contains: function (g, f) {
        return document.compareDocumentPosition ? g.compareDocumentPosition(f) & 16 : g !== f && g.contains(f)
      }, hasScroll: function (g, f) {
        if (b(g).css("overflow") === "hidden")
          return false;
        f = f && f === "left" ? "scrollLeft" : "scrollTop";
        var a = false;
        if (g[f] > 0)
          return true;
        g[f] = 1;
        a = g[f] > 0;
        g[f] = 0;
        return a
      }, isOverAxis: function (g, f, a) {
        return g > f && g < f + a
      }, isOver: function (g, f, a, c, h, i) {
        return b.ui.isOverAxis(g, a, h) && b.ui.isOverAxis(f, c, i)
      }})
  }
})(jQuery);
(function (b, d) {
  if (b.cleanData) {
    var e = b.cleanData;
    b.cleanData = function (f) {
      for (var a = 0, c; (c = f[a]) != null; a++)
        b(c).triggerHandler("remove");
      e(f)
    }
  } else {
    var g = b.fn.remove;
    b.fn.remove = function (f, a) {
      return this.each(function () {
        if (!a)
          if (!f || b.filter(f, [this]).length)
            b("*", this).add([this]).each(function () {
              b(this).triggerHandler("remove")
            });
        return g.call(b(this), f, a)
      })
    }
  }
  b.widget = function (f, a, c) {
    var h = f.split(".")[0], i;
    f = f.split(".")[1];
    i = h + "-" + f;
    if (!c) {
      c = a;
      a = b.Widget
    }
    b.expr[":"][i] = function (j) {
      return!!b.data(j,
              f)
    };
    b[h] = b[h] || {};
    b[h][f] = function (j, n) {
      arguments.length && this._createWidget(j, n)
    };
    a = new a;
    a.options = b.extend(true, {}, a.options);
    b[h][f].prototype = b.extend(true, a, {namespace: h, widgetName: f, widgetEventPrefix: b[h][f].prototype.widgetEventPrefix || f, widgetBaseClass: i}, c);
    b.widget.bridge(f, b[h][f])
  };
  b.widget.bridge = function (f, a) {
    b.fn[f] = function (c) {
      var h = typeof c === "string", i = Array.prototype.slice.call(arguments, 1), j = this;
      c = !h && i.length ? b.extend.apply(null, [true, c].concat(i)) : c;
      if (h && c.charAt(0) === "_")
        return j;
      h ? this.each(function () {
        var n = b.data(this, f), q = n && b.isFunction(n[c]) ? n[c].apply(n, i) : n;
        if (q !== n && q !== d) {
          j = q;
          return false
        }
      }) : this.each(function () {
        var n = b.data(this, f);
        n ? n.option(c || {})._init() : b.data(this, f, new a(c, this))
      });
      return j
    }
  };
  b.Widget = function (f, a) {
    arguments.length && this._createWidget(f, a)
  };
  b.Widget.prototype = {widgetName: "widget", widgetEventPrefix: "", options: {disabled: false}, _createWidget: function (f, a) {
      b.data(a, this.widgetName, this);
      this.element = b(a);
      this.options = b.extend(true, {}, this.options,
              this._getCreateOptions(), f);
      var c = this;
      this.element.bind("remove." + this.widgetName, function () {
        c.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 (f, a) {
      var c = f;
      if (arguments.length === 0)
        return b.extend({}, this.options);
      if (typeof f === "string") {
        if (a === d)
          return this.options[f];
        c = {};
        c[f] = a
      }
      this._setOptions(c);
      return this
    }, _setOptions: function (f) {
      var a = this;
      b.each(f, function (c, h) {
        a._setOption(c, h)
      });
      return this
    }, _setOption: function (f, a) {
      this.options[f] = a;
      if (f === "disabled")
        this.widget()[a ? "addClass" : "removeClass"](this.widgetBaseClass + "-disabled ui-state-disabled").attr("aria-disabled", a);
      return this
    },
    enable: function () {
      return this._setOption("disabled", false)
    }, disable: function () {
      return this._setOption("disabled", true)
    }, _trigger: function (f, a, c) {
      var h = this.options[f];
      a = b.Event(a);
      a.type = (f === this.widgetEventPrefix ? f : this.widgetEventPrefix + f).toLowerCase();
      c = c || {};
      if (a.originalEvent) {
        f = b.event.props.length;
        for (var i; f; ) {
          i = b.event.props[--f];
          a[i] = a.originalEvent[i]
        }
      }
      this.element.trigger(a, c);
      return!(b.isFunction(h) && h.call(this.element[0], a, c) === false || a.isDefaultPrevented())
    }}
})(jQuery);
(function (b) {
  b.widget("ui.mouse", {options: {cancel: ":input,option", distance: 1, delay: 0}, _mouseInit: function () {
      var d = this;
      this.element.bind("mousedown." + this.widgetName, function (e) {
        return d._mouseDown(e)
      }).bind("click." + this.widgetName, function (e) {
        if (true === b.data(e.target, d.widgetName + ".preventClickEvent")) {
          b.removeData(e.target, d.widgetName + ".preventClickEvent");
          e.stopImmediatePropagation();
          return false
        }
      });
      this.started = false
    }, _mouseDestroy: function () {
      this.element.unbind("." + this.widgetName)
    }, _mouseDown: function (d) {
      d.originalEvent =
              d.originalEvent || {};
      if (!d.originalEvent.mouseHandled) {
        this._mouseStarted && this._mouseUp(d);
        this._mouseDownEvent = d;
        var e = this, g = d.which == 1, f = typeof this.options.cancel == "string" ? b(d.target).parents().add(d.target).filter(this.options.cancel).length : false;
        if (!g || f || !this._mouseCapture(d))
          return true;
        this.mouseDelayMet = !this.options.delay;
        if (!this.mouseDelayMet)
          this._mouseDelayTimer = setTimeout(function () {
            e.mouseDelayMet = true
          }, this.options.delay);
        if (this._mouseDistanceMet(d) && this._mouseDelayMet(d)) {
          this._mouseStarted =
                  this._mouseStart(d) !== false;
          if (!this._mouseStarted) {
            d.preventDefault();
            return true
          }
        }
        this._mouseMoveDelegate = function (a) {
          return e._mouseMove(a)
        };
        this._mouseUpDelegate = function (a) {
          return e._mouseUp(a)
        };
        b(document).bind("mousemove." + this.widgetName, this._mouseMoveDelegate).bind("mouseup." + this.widgetName, this._mouseUpDelegate);
        d.preventDefault();
        return d.originalEvent.mouseHandled = true
      }
    }, _mouseMove: function (d) {
      if (b.browser.msie && !(document.documentMode >= 9) && !d.button)
        return this._mouseUp(d);
      if (this._mouseStarted) {
        this._mouseDrag(d);
        return d.preventDefault()
      }
      if (this._mouseDistanceMet(d) && this._mouseDelayMet(d))
        (this._mouseStarted = this._mouseStart(this._mouseDownEvent, d) !== false) ? this._mouseDrag(d) : this._mouseUp(d);
      return!this._mouseStarted
    }, _mouseUp: function (d) {
      b(document).unbind("mousemove." + this.widgetName, this._mouseMoveDelegate).unbind("mouseup." + this.widgetName, this._mouseUpDelegate);
      if (this._mouseStarted) {
        this._mouseStarted = false;
        d.target == this._mouseDownEvent.target && b.data(d.target, this.widgetName + ".preventClickEvent",
                true);
        this._mouseStop(d)
      }
      return false
    }, _mouseDistanceMet: function (d) {
      return Math.max(Math.abs(this._mouseDownEvent.pageX - d.pageX), Math.abs(this._mouseDownEvent.pageY - d.pageY)) >= this.options.distance
    }, _mouseDelayMet: function () {
      return this.mouseDelayMet
    }, _mouseStart: function () {
    }, _mouseDrag: function () {
    }, _mouseStop: function () {
    }, _mouseCapture: function () {
      return true
    }})
})(jQuery);
(function (b) {
  b.widget("ui.draggable", b.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 (d) {
      var e =
              this.options;
      if (this.helper || e.disabled || b(d.target).is(".ui-resizable-handle"))
        return false;
      this.handle = this._getHandle(d);
      if (!this.handle)
        return false;
      return true
    }, _mouseStart: function (d) {
      var e = this.options;
      this.helper = this._createHelper(d);
      this._cacheHelperProportions();
      if (b.ui.ddmanager)
        b.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};
      b.extend(this.offset, {click: {left: d.pageX - this.offset.left, top: d.pageY - this.offset.top}, parent: this._getParentOffset(), relative: this._getRelativeOffset()});
      this.originalPosition = this.position = this._generatePosition(d);
      this.originalPageX = d.pageX;
      this.originalPageY = d.pageY;
      e.cursorAt && this._adjustOffsetFromHelper(e.cursorAt);
      e.containment && this._setContainment();
      if (this._trigger("start", d) === false) {
        this._clear();
        return false
      }
      this._cacheHelperProportions();
      b.ui.ddmanager && !e.dropBehaviour && b.ui.ddmanager.prepareOffsets(this, d);
      this.helper.addClass("ui-draggable-dragging");
      this._mouseDrag(d, true);
      return true
    }, _mouseDrag: function (d, e) {
      this.position = this._generatePosition(d);
      this.positionAbs = this._convertPositionTo("absolute");
      if (!e) {
        e = this._uiHash();
        if (this._trigger("drag", d, e) === false) {
          this._mouseUp({});
          return false
        }
        this.position = e.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";
      b.ui.ddmanager && b.ui.ddmanager.drag(this, d);
      return false
    }, _mouseStop: function (d) {
      var e = false;
      if (b.ui.ddmanager && !this.options.dropBehaviour)
        e = b.ui.ddmanager.drop(this, d);
      if (this.dropped) {
        e = this.dropped;
        this.dropped = false
      }
      if ((!this.element[0] || !this.element[0].parentNode) && this.options.helper == "original")
        return false;
      if (this.options.revert == "invalid" && !e || this.options.revert == "valid" && e || this.options.revert === true || b.isFunction(this.options.revert) &&
              this.options.revert.call(this.element, e)) {
        var g = this;
        b(this.helper).animate(this.originalPosition, parseInt(this.options.revertDuration, 10), function () {
          g._trigger("stop", d) !== false && g._clear()
        })
      } else
        this._trigger("stop", d) !== false && this._clear();
      return false
    }, cancel: function () {
      this.helper.is(".ui-draggable-dragging") ? this._mouseUp({}) : this._clear();
      return this
    }, _getHandle: function (d) {
      var e = !this.options.handle || !b(this.options.handle, this.element).length ? true : false;
      b(this.options.handle, this.element).find("*").andSelf().each(function () {
        if (this ==
                d.target)
          e = true
      });
      return e
    }, _createHelper: function (d) {
      var e = this.options;
      d = b.isFunction(e.helper) ? b(e.helper.apply(this.element[0], [d])) : e.helper == "clone" ? this.element.clone() : this.element;
      d.parents("body").length || d.appendTo(e.appendTo == "parent" ? this.element[0].parentNode : e.appendTo);
      d[0] != this.element[0] && !/(fixed|absolute)/.test(d.css("position")) && d.css("position", "absolute");
      return d
    }, _adjustOffsetFromHelper: function (d) {
      if (typeof d == "string")
        d = d.split(" ");
      if (b.isArray(d))
        d = {left: +d[0], top: +d[1] ||
                  0};
      if ("left"in d)
        this.offset.click.left = d.left + this.margins.left;
      if ("right"in d)
        this.offset.click.left = this.helperProportions.width - d.right + this.margins.left;
      if ("top"in d)
        this.offset.click.top = d.top + this.margins.top;
      if ("bottom"in d)
        this.offset.click.top = this.helperProportions.height - d.bottom + this.margins.top
    }, _getParentOffset: function () {
      this.offsetParent = this.helper.offsetParent();
      var d = this.offsetParent.offset();
      if (this.cssPosition == "absolute" && this.scrollParent[0] != document && b.ui.contains(this.scrollParent[0],
              this.offsetParent[0])) {
        d.left += this.scrollParent.scrollLeft();
        d.top += this.scrollParent.scrollTop()
      }
      if (this.offsetParent[0] == document.body || this.offsetParent[0].tagName && this.offsetParent[0].tagName.toLowerCase() == "html" && b.browser.msie)
        d = {top: 0, left: 0};
      return{top: d.top + (parseInt(this.offsetParent.css("borderTopWidth"), 10) || 0), left: d.left + (parseInt(this.offsetParent.css("borderLeftWidth"), 10) || 0)}
    }, _getRelativeOffset: function () {
      if (this.cssPosition == "relative") {
        var d = this.element.position();
        return{top: d.top -
                  (parseInt(this.helper.css("top"), 10) || 0) + this.scrollParent.scrollTop(), left: d.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}
    }, _cacheHelperProportions: function () {
      this.helperProportions = {width: this.helper.outerWidth(), height: this.helper.outerHeight()}
    }, _setContainment: function () {
      var d = this.options;
      if (d.containment ==
              "parent")
        d.containment = this.helper[0].parentNode;
      if (d.containment == "document" || d.containment == "window")
        this.containment = [(d.containment == "document" ? 0 : b(window).scrollLeft()) - this.offset.relative.left - this.offset.parent.left, (d.containment == "document" ? 0 : b(window).scrollTop()) - this.offset.relative.top - this.offset.parent.top, (d.containment == "document" ? 0 : b(window).scrollLeft()) + b(d.containment == "document" ? document : window).width() - this.helperProportions.width - this.margins.left, (d.containment == "document" ?
                  0 : b(window).scrollTop()) + (b(d.containment == "document" ? document : window).height() || document.body.parentNode.scrollHeight) - this.helperProportions.height - this.margins.top];
      if (!/^(document|window|parent)$/.test(d.containment) && d.containment.constructor != Array) {
        var e = b(d.containment)[0];
        if (e) {
          d = b(d.containment).offset();
          var g = b(e).css("overflow") != "hidden";
          this.containment = [d.left + (parseInt(b(e).css("borderLeftWidth"), 10) || 0) + (parseInt(b(e).css("paddingLeft"), 10) || 0) - this.margins.left, d.top + (parseInt(b(e).css("borderTopWidth"),
                    10) || 0) + (parseInt(b(e).css("paddingTop"), 10) || 0) - this.margins.top, d.left + (g ? Math.max(e.scrollWidth, e.offsetWidth) : e.offsetWidth) - (parseInt(b(e).css("borderLeftWidth"), 10) || 0) - (parseInt(b(e).css("paddingRight"), 10) || 0) - this.helperProportions.width - this.margins.left, d.top + (g ? Math.max(e.scrollHeight, e.offsetHeight) : e.offsetHeight) - (parseInt(b(e).css("borderTopWidth"), 10) || 0) - (parseInt(b(e).css("paddingBottom"), 10) || 0) - this.helperProportions.height - this.margins.top]
        }
      } else if (d.containment.constructor ==
              Array)
        this.containment = d.containment
    }, _convertPositionTo: function (d, e) {
      if (!e)
        e = this.position;
      d = d == "absolute" ? 1 : -1;
      var g = this.cssPosition == "absolute" && !(this.scrollParent[0] != document && b.ui.contains(this.scrollParent[0], this.offsetParent[0])) ? this.offsetParent : this.scrollParent, f = /(html|body)/i.test(g[0].tagName);
      return{top: e.top + this.offset.relative.top * d + this.offset.parent.top * d - (b.browser.safari && b.browser.version < 526 && this.cssPosition == "fixed" ? 0 : (this.cssPosition == "fixed" ? -this.scrollParent.scrollTop() :
                f ? 0 : g.scrollTop()) * d), left: e.left + this.offset.relative.left * d + this.offset.parent.left * d - (b.browser.safari && b.browser.version < 526 && this.cssPosition == "fixed" ? 0 : (this.cssPosition == "fixed" ? -this.scrollParent.scrollLeft() : f ? 0 : g.scrollLeft()) * d)}
    }, _generatePosition: function (d) {
      var e = this.options, g = this.cssPosition == "absolute" && !(this.scrollParent[0] != document && b.ui.contains(this.scrollParent[0], this.offsetParent[0])) ? this.offsetParent : this.scrollParent, f = /(html|body)/i.test(g[0].tagName), a = d.pageX, c = d.pageY;
      if (this.originalPosition) {
        if (this.containment) {
          if (d.pageX - this.offset.click.left < this.containment[0])
            a = this.containment[0] + this.offset.click.left;
          if (d.pageY - this.offset.click.top < this.containment[1])
            c = this.containment[1] + this.offset.click.top;
          if (d.pageX - this.offset.click.left > this.containment[2])
            a = this.containment[2] + this.offset.click.left;
          if (d.pageY - this.offset.click.top > this.containment[3])
            c = this.containment[3] + this.offset.click.top
        }
        if (e.grid) {
          c = this.originalPageY + Math.round((c - this.originalPageY) /
                  e.grid[1]) * e.grid[1];
          c = this.containment ? !(c - this.offset.click.top < this.containment[1] || c - this.offset.click.top > this.containment[3]) ? c : !(c - this.offset.click.top < this.containment[1]) ? c - e.grid[1] : c + e.grid[1] : c;
          a = this.originalPageX + Math.round((a - this.originalPageX) / e.grid[0]) * e.grid[0];
          a = this.containment ? !(a - this.offset.click.left < this.containment[0] || a - this.offset.click.left > this.containment[2]) ? a : !(a - this.offset.click.left < this.containment[0]) ? a - e.grid[0] : a + e.grid[0] : a
        }
      }
      return{top: c - this.offset.click.top -
                this.offset.relative.top - this.offset.parent.top + (b.browser.safari && b.browser.version < 526 && this.cssPosition == "fixed" ? 0 : this.cssPosition == "fixed" ? -this.scrollParent.scrollTop() : f ? 0 : g.scrollTop()), left: a - this.offset.click.left - this.offset.relative.left - this.offset.parent.left + (b.browser.safari && b.browser.version < 526 && this.cssPosition == "fixed" ? 0 : this.cssPosition == "fixed" ? -this.scrollParent.scrollLeft() : f ? 0 : g.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 (d, e, g) {
      g = g || this._uiHash();
      b.ui.plugin.call(this, d, [e, g]);
      if (d == "drag")
        this.positionAbs = this._convertPositionTo("absolute");
      return b.Widget.prototype._trigger.call(this, d, e, g)
    }, plugins: {}, _uiHash: function () {
      return{helper: this.helper, position: this.position, originalPosition: this.originalPosition, offset: this.positionAbs}
    }});
  b.extend(b.ui.draggable, {version: "1.8.10"});
  b.ui.plugin.add("draggable", "connectToSortable", {start: function (d, e) {
      var g = b(this).data("draggable"), f = g.options, a = b.extend({}, e, {item: g.element});
      g.sortables = [];
      b(f.connectToSortable).each(function () {
        var c = b.data(this, "sortable");
        if (c && !c.options.disabled) {
          g.sortables.push({instance: c, shouldRevert: c.options.revert});
          c._refreshItems();
          c._trigger("activate", d, a)
        }
      })
    }, stop: function (d, e) {
      var g = b(this).data("draggable"), f = b.extend({}, e, {item: g.element});
      b.each(g.sortables, function () {
        if (this.instance.isOver) {
          this.instance.isOver =
                  0;
          g.cancelHelperRemoval = true;
          this.instance.cancelHelperRemoval = false;
          if (this.shouldRevert)
            this.instance.options.revert = true;
          this.instance._mouseStop(d);
          this.instance.options.helper = this.instance.options._helper;
          g.options.helper == "original" && this.instance.currentItem.css({top: "auto", left: "auto"})
        } else {
          this.instance.cancelHelperRemoval = false;
          this.instance._trigger("deactivate", d, f)
        }
      })
    }, drag: function (d, e) {
      var g = b(this).data("draggable"), f = this;
      b.each(g.sortables, function () {
        this.instance.positionAbs =
                g.positionAbs;
        this.instance.helperProportions = g.helperProportions;
        this.instance.offset.click = g.offset.click;
        if (this.instance._intersectsWith(this.instance.containerCache)) {
          if (!this.instance.isOver) {
            this.instance.isOver = 1;
            this.instance.currentItem = b(f).clone().appendTo(this.instance.element).data("sortable-item", true);
            this.instance.options._helper = this.instance.options.helper;
            this.instance.options.helper = function () {
              return e.helper[0]
            };
            d.target = this.instance.currentItem[0];
            this.instance._mouseCapture(d,
                    true);
            this.instance._mouseStart(d, true, true);
            this.instance.offset.click.top = g.offset.click.top;
            this.instance.offset.click.left = g.offset.click.left;
            this.instance.offset.parent.left -= g.offset.parent.left - this.instance.offset.parent.left;
            this.instance.offset.parent.top -= g.offset.parent.top - this.instance.offset.parent.top;
            g._trigger("toSortable", d);
            g.dropped = this.instance.element;
            g.currentItem = g.element;
            this.instance.fromOutside = g
          }
          this.instance.currentItem && this.instance._mouseDrag(d)
        } else if (this.instance.isOver) {
          this.instance.isOver =
                  0;
          this.instance.cancelHelperRemoval = true;
          this.instance.options.revert = false;
          this.instance._trigger("out", d, this.instance._uiHash(this.instance));
          this.instance._mouseStop(d, true);
          this.instance.options.helper = this.instance.options._helper;
          this.instance.currentItem.remove();
          this.instance.placeholder && this.instance.placeholder.remove();
          g._trigger("fromSortable", d);
          g.dropped = false
        }
      })
    }});
  b.ui.plugin.add("draggable", "cursor", {start: function () {
      var d = b("body"), e = b(this).data("draggable").options;
      if (d.css("cursor"))
        e._cursor =
                d.css("cursor");
      d.css("cursor", e.cursor)
    }, stop: function () {
      var d = b(this).data("draggable").options;
      d._cursor && b("body").css("cursor", d._cursor)
    }});
  b.ui.plugin.add("draggable", "iframeFix", {start: function () {
      var d = b(this).data("draggable").options;
      b(d.iframeFix === true ? "iframe" : d.iframeFix).each(function () {
        b('<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(b(this).offset()).appendTo("body")
      })
    },
    stop: function () {
      b("div.ui-draggable-iframeFix").each(function () {
        this.parentNode.removeChild(this)
      })
    }});
  b.ui.plugin.add("draggable", "opacity", {start: function (d, e) {
      d = b(e.helper);
      e = b(this).data("draggable").options;
      if (d.css("opacity"))
        e._opacity = d.css("opacity");
      d.css("opacity", e.opacity)
    }, stop: function (d, e) {
      d = b(this).data("draggable").options;
      d._opacity && b(e.helper).css("opacity", d._opacity)
    }});
  b.ui.plugin.add("draggable", "scroll", {start: function () {
      var d = b(this).data("draggable");
      if (d.scrollParent[0] !=
              document && d.scrollParent[0].tagName != "HTML")
        d.overflowOffset = d.scrollParent.offset()
    }, drag: function (d) {
      var e = b(this).data("draggable"), g = e.options, f = false;
      if (e.scrollParent[0] != document && e.scrollParent[0].tagName != "HTML") {
        if (!g.axis || g.axis != "x")
          if (e.overflowOffset.top + e.scrollParent[0].offsetHeight - d.pageY < g.scrollSensitivity)
            e.scrollParent[0].scrollTop = f = e.scrollParent[0].scrollTop + g.scrollSpeed;
          else if (d.pageY - e.overflowOffset.top < g.scrollSensitivity)
            e.scrollParent[0].scrollTop = f = e.scrollParent[0].scrollTop -
                    g.scrollSpeed;
        if (!g.axis || g.axis != "y")
          if (e.overflowOffset.left + e.scrollParent[0].offsetWidth - d.pageX < g.scrollSensitivity)
            e.scrollParent[0].scrollLeft = f = e.scrollParent[0].scrollLeft + g.scrollSpeed;
          else if (d.pageX - e.overflowOffset.left < g.scrollSensitivity)
            e.scrollParent[0].scrollLeft = f = e.scrollParent[0].scrollLeft - g.scrollSpeed
      } else {
        if (!g.axis || g.axis != "x")
          if (d.pageY - b(document).scrollTop() < g.scrollSensitivity)
            f = b(document).scrollTop(b(document).scrollTop() - g.scrollSpeed);
          else if (b(window).height() -
                  (d.pageY - b(document).scrollTop()) < g.scrollSensitivity)
            f = b(document).scrollTop(b(document).scrollTop() + g.scrollSpeed);
        if (!g.axis || g.axis != "y")
          if (d.pageX - b(document).scrollLeft() < g.scrollSensitivity)
            f = b(document).scrollLeft(b(document).scrollLeft() - g.scrollSpeed);
          else if (b(window).width() - (d.pageX - b(document).scrollLeft()) < g.scrollSensitivity)
            f = b(document).scrollLeft(b(document).scrollLeft() + g.scrollSpeed)
      }
      f !== false && b.ui.ddmanager && !g.dropBehaviour && b.ui.ddmanager.prepareOffsets(e, d)
    }});
  b.ui.plugin.add("draggable",
          "snap", {start: function () {
              var d = b(this).data("draggable"), e = d.options;
              d.snapElements = [];
              b(e.snap.constructor != String ? e.snap.items || ":data(draggable)" : e.snap).each(function () {
                var g = b(this), f = g.offset();
                this != d.element[0] && d.snapElements.push({item: this, width: g.outerWidth(), height: g.outerHeight(), top: f.top, left: f.left})
              })
            }, drag: function (d, e) {
              for (var g = b(this).data("draggable"), f = g.options, a = f.snapTolerance, c = e.offset.left, h = c + g.helperProportions.width, i = e.offset.top, j = i + g.helperProportions.height, n =
                      g.snapElements.length - 1; n >= 0; n--) {
                var q = g.snapElements[n].left, l = q + g.snapElements[n].width, k = g.snapElements[n].top, m = k + g.snapElements[n].height;
                if (q - a < c && c < l + a && k - a < i && i < m + a || q - a < c && c < l + a && k - a < j && j < m + a || q - a < h && h < l + a && k - a < i && i < m + a || q - a < h && h < l + a && k - a < j && j < m + a) {
                  if (f.snapMode != "inner") {
                    var o = Math.abs(k - j) <= a, p = Math.abs(m - i) <= a, s = Math.abs(q - h) <= a, r = Math.abs(l - c) <= a;
                    if (o)
                      e.position.top = g._convertPositionTo("relative", {top: k - g.helperProportions.height, left: 0}).top - g.margins.top;
                    if (p)
                      e.position.top = g._convertPositionTo("relative",
                              {top: m, left: 0}).top - g.margins.top;
                    if (s)
                      e.position.left = g._convertPositionTo("relative", {top: 0, left: q - g.helperProportions.width}).left - g.margins.left;
                    if (r)
                      e.position.left = g._convertPositionTo("relative", {top: 0, left: l}).left - g.margins.left
                  }
                  var u = o || p || s || r;
                  if (f.snapMode != "outer") {
                    o = Math.abs(k - i) <= a;
                    p = Math.abs(m - j) <= a;
                    s = Math.abs(q - c) <= a;
                    r = Math.abs(l - h) <= a;
                    if (o)
                      e.position.top = g._convertPositionTo("relative", {top: k, left: 0}).top - g.margins.top;
                    if (p)
                      e.position.top = g._convertPositionTo("relative", {top: m - g.helperProportions.height,
                        left: 0}).top - g.margins.top;
                    if (s)
                      e.position.left = g._convertPositionTo("relative", {top: 0, left: q}).left - g.margins.left;
                    if (r)
                      e.position.left = g._convertPositionTo("relative", {top: 0, left: l - g.helperProportions.width}).left - g.margins.left
                  }
                  if (!g.snapElements[n].snapping && (o || p || s || r || u))
                    g.options.snap.snap && g.options.snap.snap.call(g.element, d, b.extend(g._uiHash(), {snapItem: g.snapElements[n].item}));
                  g.snapElements[n].snapping = o || p || s || r || u
                } else {
                  g.snapElements[n].snapping && g.options.snap.release && g.options.snap.release.call(g.element,
                          d, b.extend(g._uiHash(), {snapItem: g.snapElements[n].item}));
                  g.snapElements[n].snapping = false
                }
              }
            }});
  b.ui.plugin.add("draggable", "stack", {start: function () {
      var d = b(this).data("draggable").options;
      d = b.makeArray(b(d.stack)).sort(function (g, f) {
        return(parseInt(b(g).css("zIndex"), 10) || 0) - (parseInt(b(f).css("zIndex"), 10) || 0)
      });
      if (d.length) {
        var e = parseInt(d[0].style.zIndex) || 0;
        b(d).each(function (g) {
          this.style.zIndex = e + g
        });
        this[0].style.zIndex = e + d.length
      }
    }});
  b.ui.plugin.add("draggable", "zIndex", {start: function (d,
            e) {
      d = b(e.helper);
      e = b(this).data("draggable").options;
      if (d.css("zIndex"))
        e._zIndex = d.css("zIndex");
      d.css("zIndex", e.zIndex)
    }, stop: function (d, e) {
      d = b(this).data("draggable").options;
      d._zIndex && b(e.helper).css("zIndex", d._zIndex)
    }})
})(jQuery);
(function (b) {
  b.widget("ui.droppable", {widgetEventPrefix: "drop", options: {accept: "*", activeClass: false, addClasses: true, greedy: false, hoverClass: false, scope: "default", tolerance: "intersect"}, _create: function () {
      var d = this.options, e = d.accept;
      this.isover = 0;
      this.isout = 1;
      this.accept = b.isFunction(e) ? e : function (g) {
        return g.is(e)
      };
      this.proportions = {width: this.element[0].offsetWidth, height: this.element[0].offsetHeight};
      b.ui.ddmanager.droppables[d.scope] = b.ui.ddmanager.droppables[d.scope] || [];
      b.ui.ddmanager.droppables[d.scope].push(this);
      d.addClasses && this.element.addClass("ui-droppable")
    }, destroy: function () {
      for (var d = b.ui.ddmanager.droppables[this.options.scope], e = 0; e < d.length; e++)
        d[e] == this && d.splice(e, 1);
      this.element.removeClass("ui-droppable ui-droppable-disabled").removeData("droppable").unbind(".droppable");
      return this
    }, _setOption: function (d, e) {
      if (d == "accept")
        this.accept = b.isFunction(e) ? e : function (g) {
          return g.is(e)
        };
      b.Widget.prototype._setOption.apply(this, arguments)
    }, _activate: function (d) {
      var e = b.ui.ddmanager.current;
      this.options.activeClass &&
              this.element.addClass(this.options.activeClass);
      e && this._trigger("activate", d, this.ui(e))
    }, _deactivate: function (d) {
      var e = b.ui.ddmanager.current;
      this.options.activeClass && this.element.removeClass(this.options.activeClass);
      e && this._trigger("deactivate", d, this.ui(e))
    }, _over: function (d) {
      var e = b.ui.ddmanager.current;
      if (!(!e || (e.currentItem || e.element)[0] == this.element[0]))
        if (this.accept.call(this.element[0], e.currentItem || e.element)) {
          this.options.hoverClass && this.element.addClass(this.options.hoverClass);
          this._trigger("over", d, this.ui(e))
        }
    }, _out: function (d) {
      var e = b.ui.ddmanager.current;
      if (!(!e || (e.currentItem || e.element)[0] == this.element[0]))
        if (this.accept.call(this.element[0], e.currentItem || e.element)) {
          this.options.hoverClass && this.element.removeClass(this.options.hoverClass);
          this._trigger("out", d, this.ui(e))
        }
    }, _drop: function (d, e) {
      var g = e || b.ui.ddmanager.current;
      if (!g || (g.currentItem || g.element)[0] == this.element[0])
        return false;
      var f = false;
      this.element.find(":data(droppable)").not(".ui-draggable-dragging").each(function () {
        var a =
                b.data(this, "droppable");
        if (a.options.greedy && !a.options.disabled && a.options.scope == g.options.scope && a.accept.call(a.element[0], g.currentItem || g.element) && b.ui.intersect(g, b.extend(a, {offset: a.element.offset()}), a.options.tolerance)) {
          f = true;
          return false
        }
      });
      if (f)
        return false;
      if (this.accept.call(this.element[0], g.currentItem || g.element)) {
        this.options.activeClass && this.element.removeClass(this.options.activeClass);
        this.options.hoverClass && this.element.removeClass(this.options.hoverClass);
        this._trigger("drop",
                d, this.ui(g));
        return this.element
      }
      return false
    }, ui: function (d) {
      return{draggable: d.currentItem || d.element, helper: d.helper, position: d.position, offset: d.positionAbs}
    }});
  b.extend(b.ui.droppable, {version: "1.8.10"});
  b.ui.intersect = function (d, e, g) {
    if (!e.offset)
      return false;
    var f = (d.positionAbs || d.position.absolute).left, a = f + d.helperProportions.width, c = (d.positionAbs || d.position.absolute).top, h = c + d.helperProportions.height, i = e.offset.left, j = i + e.proportions.width, n = e.offset.top, q = n + e.proportions.height;
    switch (g) {
      case "fit":
        return i <= f && a <= j && n <= c && h <= q;
      case "intersect":
        return i < f + d.helperProportions.width / 2 && a - d.helperProportions.width / 2 < j && n < c + d.helperProportions.height / 2 && h - d.helperProportions.height / 2 < q;
      case "pointer":
        return b.ui.isOver((d.positionAbs || d.position.absolute).top + (d.clickOffset || d.offset.click).top, (d.positionAbs || d.position.absolute).left + (d.clickOffset || d.offset.click).left, n, i, e.proportions.height, e.proportions.width);
      case "touch":
        return(c >= n && c <= q || h >= n && h <= q || c < n && h > q) && (f >=
                i && f <= j || a >= i && a <= j || f < i && a > j);
      default:
        return false
    }
  };
  b.ui.ddmanager = {current: null, droppables: {"default": []}, prepareOffsets: function (d, e) {
      var g = b.ui.ddmanager.droppables[d.options.scope] || [], f = e ? e.type : null, a = (d.currentItem || d.element).find(":data(droppable)").andSelf(), c = 0;
      a:for (; c < g.length; c++)
        if (!(g[c].options.disabled || d && !g[c].accept.call(g[c].element[0], d.currentItem || d.element))) {
          for (var h = 0; h < a.length; h++)
            if (a[h] == g[c].element[0]) {
              g[c].proportions.height = 0;
              continue a
            }
          g[c].visible = g[c].element.css("display") !=
                  "none";
          if (g[c].visible) {
            g[c].offset = g[c].element.offset();
            g[c].proportions = {width: g[c].element[0].offsetWidth, height: g[c].element[0].offsetHeight};
            f == "mousedown" && g[c]._activate.call(g[c], e)
          }
        }
    }, drop: function (d, e) {
      var g = false;
      b.each(b.ui.ddmanager.droppables[d.options.scope] || [], function () {
        if (this.options) {
          if (!this.options.disabled && this.visible && b.ui.intersect(d, this, this.options.tolerance))
            g = g || this._drop.call(this, e);
          if (!this.options.disabled && this.visible && this.accept.call(this.element[0], d.currentItem ||
                  d.element)) {
            this.isout = 1;
            this.isover = 0;
            this._deactivate.call(this, e)
          }
        }
      });
      return g
    }, drag: function (d, e) {
      d.options.refreshPositions && b.ui.ddmanager.prepareOffsets(d, e);
      b.each(b.ui.ddmanager.droppables[d.options.scope] || [], function () {
        if (!(this.options.disabled || this.greedyChild || !this.visible)) {
          var g = b.ui.intersect(d, this, this.options.tolerance);
          if (g = !g && this.isover == 1 ? "isout" : g && this.isover == 0 ? "isover" : null) {
            var f;
            if (this.options.greedy) {
              var a = this.element.parents(":data(droppable):eq(0)");
              if (a.length) {
                f =
                        b.data(a[0], "droppable");
                f.greedyChild = g == "isover" ? 1 : 0
              }
            }
            if (f && g == "isover") {
              f.isover = 0;
              f.isout = 1;
              f._out.call(f, e)
            }
            this[g] = 1;
            this[g == "isout" ? "isover" : "isout"] = 0;
            this[g == "isover" ? "_over" : "_out"].call(this, e);
            if (f && g == "isout") {
              f.isout = 0;
              f.isover = 1;
              f._over.call(f, e)
            }
          }
        }
      })
    }}
})(jQuery);
(function (b) {
  b.widget("ui.resizable", b.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 g = this, f = this.options;
      this.element.addClass("ui-resizable");
      b.extend(this, {_aspectRatio: !!f.aspectRatio, aspectRatio: f.aspectRatio, originalElement: this.element,
        _proportionallyResizeElements: [], _helper: f.helper || f.ghost || f.animate ? f.helper || "ui-resizable-helper" : null});
      if (this.element[0].nodeName.match(/canvas|textarea|input|select|button|img/i)) {
        /relative/.test(this.element.css("position")) && b.browser.opera && this.element.css({position: "relative", top: "auto", left: "auto"});
        this.element.wrap(b('<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 = f.handles || (!b(".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 a = this.handles.split(",");
        this.handles = {};
        for (var c = 0; c < a.length; c++) {
          var h = b.trim(a[c]), i = b('<div class="ui-resizable-handle ' + ("ui-resizable-" + h) + '"></div>');
          /sw|se|ne|nw/.test(h) && i.css({zIndex: ++f.zIndex});
          "se" == h && i.addClass("ui-icon ui-icon-gripsmall-diagonal-se");
          this.handles[h] = ".ui-resizable-" + h;
          this.element.append(i)
        }
      }
      this._renderAxis = function (j) {
        j = j || this.element;
        for (var n in this.handles) {
          if (this.handles[n].constructor ==
                  String)
            this.handles[n] = b(this.handles[n], this.element).show();
          if (this.elementIsWrapper && this.originalElement[0].nodeName.match(/textarea|input|select|button/i)) {
            var q = b(this.handles[n], this.element), l = 0;
            l = /sw|ne|nw|se|n|s/.test(n) ? q.outerHeight() : q.outerWidth();
            q = ["padding", /ne|nw|n/.test(n) ? "Top" : /se|sw|s/.test(n) ? "Bottom" : /^e$/.test(n) ? "Right" : "Left"].join("");
            j.css(q, l);
            this._proportionallyResize()
          }
          b(this.handles[n])
        }
      };
      this._renderAxis(this.element);
      this._handles = b(".ui-resizable-handle", this.element).disableSelection();
      this._handles.mouseover(function () {
        if (!g.resizing) {
          if (this.className)
            var j = this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i);
          g.axis = j && j[1] ? j[1] : "se"
        }
      });
      if (f.autoHide) {
        this._handles.hide();
        b(this.element).addClass("ui-resizable-autohide").hover(function () {
          b(this).removeClass("ui-resizable-autohide");
          g._handles.show()
        }, function () {
          if (!g.resizing) {
            b(this).addClass("ui-resizable-autohide");
            g._handles.hide()
          }
        })
      }
      this._mouseInit()
    }, destroy: function () {
      this._mouseDestroy();
      var g = function (a) {
        b(a).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").unbind(".resizable").find(".ui-resizable-handle").remove()
      };
      if (this.elementIsWrapper) {
        g(this.element);
        var f = this.element;
        f.after(this.originalElement.css({position: f.css("position"), width: f.outerWidth(), height: f.outerHeight(), top: f.css("top"), left: f.css("left")})).remove()
      }
      this.originalElement.css("resize", this.originalResizeStyle);
      g(this.originalElement);
      return this
    }, _mouseCapture: function (g) {
      var f = false;
      for (var a in this.handles)
        if (b(this.handles[a])[0] == g.target)
          f = true;
      return!this.options.disabled && f
    }, _mouseStart: function (g) {
      var f = this.options, a = this.element.position(),
              c = this.element;
      this.resizing = true;
      this.documentScroll = {top: b(document).scrollTop(), left: b(document).scrollLeft()};
      if (c.is(".ui-draggable") || /absolute/.test(c.css("position")))
        c.css({position: "absolute", top: a.top, left: a.left});
      b.browser.opera && /relative/.test(c.css("position")) && c.css({position: "relative", top: "auto", left: "auto"});
      this._renderProxy();
      a = d(this.helper.css("left"));
      var h = d(this.helper.css("top"));
      if (f.containment) {
        a += b(f.containment).scrollLeft() || 0;
        h += b(f.containment).scrollTop() || 0
      }
      this.offset =
              this.helper.offset();
      this.position = {left: a, top: h};
      this.size = this._helper ? {width: c.outerWidth(), height: c.outerHeight()} : {width: c.width(), height: c.height()};
      this.originalSize = this._helper ? {width: c.outerWidth(), height: c.outerHeight()} : {width: c.width(), height: c.height()};
      this.originalPosition = {left: a, top: h};
      this.sizeDiff = {width: c.outerWidth() - c.width(), height: c.outerHeight() - c.height()};
      this.originalMousePosition = {left: g.pageX, top: g.pageY};
      this.aspectRatio = typeof f.aspectRatio == "number" ? f.aspectRatio :
              this.originalSize.width / this.originalSize.height || 1;
      f = b(".ui-resizable-" + this.axis).css("cursor");
      b("body").css("cursor", f == "auto" ? this.axis + "-resize" : f);
      c.addClass("ui-resizable-resizing");
      this._propagate("start", g);
      return true
    }, _mouseDrag: function (g) {
      var f = this.helper, a = this.originalMousePosition, c = this._change[this.axis];
      if (!c)
        return false;
      a = c.apply(this, [g, g.pageX - a.left || 0, g.pageY - a.top || 0]);
      if (this._aspectRatio || g.shiftKey)
        a = this._updateRatio(a, g);
      a = this._respectSize(a, g);
      this._propagate("resize",
              g);
      f.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(a);
      this._trigger("resize", g, this.ui());
      return false
    }, _mouseStop: function (g) {
      this.resizing = false;
      var f = this.options, a = this;
      if (this._helper) {
        var c = this._proportionallyResizeElements, h = c.length && /textarea/i.test(c[0].nodeName);
        c = h && b.ui.hasScroll(c[0], "left") ? 0 : a.sizeDiff.height;
        h = h ? 0 : a.sizeDiff.width;
        h = {width: a.helper.width() - h, height: a.helper.height() - c};
        c = parseInt(a.element.css("left"), 10) + (a.position.left - a.originalPosition.left) || null;
        var i = parseInt(a.element.css("top"), 10) + (a.position.top - a.originalPosition.top) || null;
        f.animate || this.element.css(b.extend(h, {top: i, left: c}));
        a.helper.height(a.size.height);
        a.helper.width(a.size.width);
        this._helper && !f.animate && this._proportionallyResize()
      }
      b("body").css("cursor", "auto");
      this.element.removeClass("ui-resizable-resizing");
      this._propagate("stop", g);
      this._helper && this.helper.remove();
      return false
    }, _updateCache: function (g) {
      this.offset = this.helper.offset();
      if (e(g.left))
        this.position.left = g.left;
      if (e(g.top))
        this.position.top = g.top;
      if (e(g.height))
        this.size.height = g.height;
      if (e(g.width))
        this.size.width = g.width
    }, _updateRatio: function (g) {
      var f = this.position, a = this.size, c = this.axis;
      if (g.height)
        g.width = a.height * this.aspectRatio;
      else if (g.width)
        g.height = a.width / this.aspectRatio;
      if (c == "sw") {
        g.left = f.left + (a.width - g.width);
        g.top =
                null
      }
      if (c == "nw") {
        g.top = f.top + (a.height - g.height);
        g.left = f.left + (a.width - g.width)
      }
      return g
    }, _respectSize: function (g) {
      var f = this.options, a = this.axis, c = e(g.width) && f.maxWidth && f.maxWidth < g.width, h = e(g.height) && f.maxHeight && f.maxHeight < g.height, i = e(g.width) && f.minWidth && f.minWidth > g.width, j = e(g.height) && f.minHeight && f.minHeight > g.height;
      if (i)
        g.width = f.minWidth;
      if (j)
        g.height = f.minHeight;
      if (c)
        g.width = f.maxWidth;
      if (h)
        g.height = f.maxHeight;
      var n = this.originalPosition.left + this.originalSize.width, q = this.position.top +
              this.size.height, l = /sw|nw|w/.test(a);
      a = /nw|ne|n/.test(a);
      if (i && l)
        g.left = n - f.minWidth;
      if (c && l)
        g.left = n - f.maxWidth;
      if (j && a)
        g.top = q - f.minHeight;
      if (h && a)
        g.top = q - f.maxHeight;
      if ((f = !g.width && !g.height) && !g.left && g.top)
        g.top = null;
      else if (f && !g.top && g.left)
        g.left = null;
      return g
    }, _proportionallyResize: function () {
      if (this._proportionallyResizeElements.length)
        for (var g = this.helper || this.element, f = 0; f < this._proportionallyResizeElements.length; f++) {
          var a = this._proportionallyResizeElements[f];
          if (!this.borderDif) {
            var c =
                    [a.css("borderTopWidth"), a.css("borderRightWidth"), a.css("borderBottomWidth"), a.css("borderLeftWidth")], h = [a.css("paddingTop"), a.css("paddingRight"), a.css("paddingBottom"), a.css("paddingLeft")];
            this.borderDif = b.map(c, function (i, j) {
              i = parseInt(i, 10) || 0;
              j = parseInt(h[j], 10) || 0;
              return i + j
            })
          }
          b.browser.msie && (b(g).is(":hidden") || b(g).parents(":hidden").length) || a.css({height: g.height() - this.borderDif[0] - this.borderDif[2] || 0, width: g.width() - this.borderDif[1] - this.borderDif[3] || 0})
        }
    }, _renderProxy: function () {
      var g =
              this.options;
      this.elementOffset = this.element.offset();
      if (this._helper) {
        this.helper = this.helper || b('<div style="overflow:hidden;"></div>');
        var f = b.browser.msie && b.browser.version < 7, a = f ? 1 : 0;
        f = f ? 2 : -1;
        this.helper.addClass(this._helper).css({width: this.element.outerWidth() + f, height: this.element.outerHeight() + f, position: "absolute", left: this.elementOffset.left - a + "px", top: this.elementOffset.top - a + "px", zIndex: ++g.zIndex});
        this.helper.appendTo("body").disableSelection()
      } else
        this.helper = this.element
    }, _change: {e: function (g,
              f) {
        return{width: this.originalSize.width + f}
      }, w: function (g, f) {
        return{left: this.originalPosition.left + f, width: this.originalSize.width - f}
      }, n: function (g, f, a) {
        return{top: this.originalPosition.top + a, height: this.originalSize.height - a}
      }, s: function (g, f, a) {
        return{height: this.originalSize.height + a}
      }, se: function (g, f, a) {
        return b.extend(this._change.s.apply(this, arguments), this._change.e.apply(this, [g, f, a]))
      }, sw: function (g, f, a) {
        return b.extend(this._change.s.apply(this, arguments), this._change.w.apply(this, [g, f,
          a]))
      }, ne: function (g, f, a) {
        return b.extend(this._change.n.apply(this, arguments), this._change.e.apply(this, [g, f, a]))
      }, nw: function (g, f, a) {
        return b.extend(this._change.n.apply(this, arguments), this._change.w.apply(this, [g, f, a]))
      }}, _propagate: function (g, f) {
      b.ui.plugin.call(this, g, [f, this.ui()]);
      g != "resize" && this._trigger(g, f, 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}
    }});
  b.extend(b.ui.resizable, {version: "1.8.10"});
  b.ui.plugin.add("resizable", "alsoResize", {start: function () {
      var g = b(this).data("resizable").options, f = function (a) {
        b(a).each(function () {
          var c = b(this);
          c.data("resizable-alsoresize", {width: parseInt(c.width(), 10), height: parseInt(c.height(), 10), left: parseInt(c.css("left"), 10), top: parseInt(c.css("top"), 10), position: c.css("position")})
        })
      };
      if (typeof g.alsoResize == "object" && !g.alsoResize.parentNode)
        if (g.alsoResize.length) {
          g.alsoResize =
                  g.alsoResize[0];
          f(g.alsoResize)
        } else
          b.each(g.alsoResize, function (a) {
            f(a)
          });
      else
        f(g.alsoResize)
    }, resize: function (g, f) {
      var a = b(this).data("resizable");
      g = a.options;
      var c = a.originalSize, h = a.originalPosition, i = {height: a.size.height - c.height || 0, width: a.size.width - c.width || 0, top: a.position.top - h.top || 0, left: a.position.left - h.left || 0}, j = function (n, q) {
        b(n).each(function () {
          var l = b(this), k = b(this).data("resizable-alsoresize"), m = {}, o = q && q.length ? q : l.parents(f.originalElement[0]).length ? ["width", "height"] : ["width",
            "height", "top", "left"];
          b.each(o, function (p, s) {
            if ((p = (k[s] || 0) + (i[s] || 0)) && p >= 0)
              m[s] = p || null
          });
          if (b.browser.opera && /relative/.test(l.css("position"))) {
            a._revertToRelativePosition = true;
            l.css({position: "absolute", top: "auto", left: "auto"})
          }
          l.css(m)
        })
      };
      typeof g.alsoResize == "object" && !g.alsoResize.nodeType ? b.each(g.alsoResize, function (n, q) {
        j(n, q)
      }) : j(g.alsoResize)
    }, stop: function () {
      var g = b(this).data("resizable"), f = g.options, a = function (c) {
        b(c).each(function () {
          var h = b(this);
          h.css({position: h.data("resizable-alsoresize").position})
        })
      };
      if (g._revertToRelativePosition) {
        g._revertToRelativePosition = false;
        typeof f.alsoResize == "object" && !f.alsoResize.nodeType ? b.each(f.alsoResize, function (c) {
          a(c)
        }) : a(f.alsoResize)
      }
      b(this).removeData("resizable-alsoresize")
    }});
  b.ui.plugin.add("resizable", "animate", {stop: function (g) {
      var f = b(this).data("resizable"), a = f.options, c = f._proportionallyResizeElements, h = c.length && /textarea/i.test(c[0].nodeName), i = h && b.ui.hasScroll(c[0], "left") ? 0 : f.sizeDiff.height;
      h = {width: f.size.width - (h ? 0 : f.sizeDiff.width), height: f.size.height -
                i};
      i = parseInt(f.element.css("left"), 10) + (f.position.left - f.originalPosition.left) || null;
      var j = parseInt(f.element.css("top"), 10) + (f.position.top - f.originalPosition.top) || null;
      f.element.animate(b.extend(h, j && i ? {top: j, left: i} : {}), {duration: a.animateDuration, easing: a.animateEasing, step: function () {
          var n = {width: parseInt(f.element.css("width"), 10), height: parseInt(f.element.css("height"), 10), top: parseInt(f.element.css("top"), 10), left: parseInt(f.element.css("left"), 10)};
          c && c.length && b(c[0]).css({width: n.width,
            height: n.height});
          f._updateCache(n);
          f._propagate("resize", g)
        }})
    }});
  b.ui.plugin.add("resizable", "containment", {start: function () {
      var g = b(this).data("resizable"), f = g.element, a = g.options.containment;
      if (f = a instanceof b ? a.get(0) : /parent/.test(a) ? f.parent().get(0) : a) {
        g.containerElement = b(f);
        if (/document/.test(a) || a == document) {
          g.containerOffset = {left: 0, top: 0};
          g.containerPosition = {left: 0, top: 0};
          g.parentData = {element: b(document), left: 0, top: 0, width: b(document).width(), height: b(document).height() || document.body.parentNode.scrollHeight}
        } else {
          var c =
                  b(f), h = [];
          b(["Top", "Right", "Left", "Bottom"]).each(function (n, q) {
            h[n] = d(c.css("padding" + q))
          });
          g.containerOffset = c.offset();
          g.containerPosition = c.position();
          g.containerSize = {height: c.innerHeight() - h[3], width: c.innerWidth() - h[1]};
          a = g.containerOffset;
          var i = g.containerSize.height, j = g.containerSize.width;
          j = b.ui.hasScroll(f, "left") ? f.scrollWidth : j;
          i = b.ui.hasScroll(f) ? f.scrollHeight : i;
          g.parentData = {element: f, left: a.left, top: a.top, width: j, height: i}
        }
      }
    }, resize: function (g) {
      var f = b(this).data("resizable"), a = f.options,
              c = f.containerOffset, h = f.position;
      g = f._aspectRatio || g.shiftKey;
      var i = {top: 0, left: 0}, j = f.containerElement;
      if (j[0] != document && /static/.test(j.css("position")))
        i = c;
      if (h.left < (f._helper ? c.left : 0)) {
        f.size.width += f._helper ? f.position.left - c.left : f.position.left - i.left;
        if (g)
          f.size.height = f.size.width / a.aspectRatio;
        f.position.left = a.helper ? c.left : 0
      }
      if (h.top < (f._helper ? c.top : 0)) {
        f.size.height += f._helper ? f.position.top - c.top : f.position.top;
        if (g)
          f.size.width = f.size.height * a.aspectRatio;
        f.position.top = f._helper ?
                c.top : 0
      }
      f.offset.left = f.parentData.left + f.position.left;
      f.offset.top = f.parentData.top + f.position.top;
      a = Math.abs((f._helper ? f.offset.left - i.left : f.offset.left - i.left) + f.sizeDiff.width);
      c = Math.abs((f._helper ? f.offset.top - i.top : f.offset.top - c.top) + f.sizeDiff.height);
      h = f.containerElement.get(0) == f.element.parent().get(0);
      i = /relative|absolute/.test(f.containerElement.css("position"));
      if (h && i)
        a -= f.parentData.left;
      if (a + f.size.width >= f.parentData.width) {
        f.size.width = f.parentData.width - a;
        if (g)
          f.size.height =
                  f.size.width / f.aspectRatio
      }
      if (c + f.size.height >= f.parentData.height) {
        f.size.height = f.parentData.height - c;
        if (g)
          f.size.width = f.size.height * f.aspectRatio
      }
    }, stop: function () {
      var g = b(this).data("resizable"), f = g.options, a = g.containerOffset, c = g.containerPosition, h = g.containerElement, i = b(g.helper), j = i.offset(), n = i.outerWidth() - g.sizeDiff.width;
      i = i.outerHeight() - g.sizeDiff.height;
      g._helper && !f.animate && /relative/.test(h.css("position")) && b(this).css({left: j.left - c.left - a.left, width: n, height: i});
      g._helper && !f.animate &&
              /static/.test(h.css("position")) && b(this).css({left: j.left - c.left - a.left, width: n, height: i})
    }});
  b.ui.plugin.add("resizable", "ghost", {start: function () {
      var g = b(this).data("resizable"), f = g.options, a = g.size;
      g.ghost = g.originalElement.clone();
      g.ghost.css({opacity: 0.25, display: "block", position: "relative", height: a.height, width: a.width, margin: 0, left: 0, top: 0}).addClass("ui-resizable-ghost").addClass(typeof f.ghost == "string" ? f.ghost : "");
      g.ghost.appendTo(g.helper)
    }, resize: function () {
      var g = b(this).data("resizable");
      g.ghost && g.ghost.css({position: "relative", height: g.size.height, width: g.size.width})
    }, stop: function () {
      var g = b(this).data("resizable");
      g.ghost && g.helper && g.helper.get(0).removeChild(g.ghost.get(0))
    }});
  b.ui.plugin.add("resizable", "grid", {resize: function () {
      var g = b(this).data("resizable"), f = g.options, a = g.size, c = g.originalSize, h = g.originalPosition, i = g.axis;
      f.grid = typeof f.grid == "number" ? [f.grid, f.grid] : f.grid;
      var j = Math.round((a.width - c.width) / (f.grid[0] || 1)) * (f.grid[0] || 1);
      f = Math.round((a.height - c.height) /
              (f.grid[1] || 1)) * (f.grid[1] || 1);
      if (/^(se|s|e)$/.test(i)) {
        g.size.width = c.width + j;
        g.size.height = c.height + f
      } else if (/^(ne)$/.test(i)) {
        g.size.width = c.width + j;
        g.size.height = c.height + f;
        g.position.top = h.top - f
      } else {
        if (/^(sw)$/.test(i)) {
          g.size.width = c.width + j;
          g.size.height = c.height + f
        } else {
          g.size.width = c.width + j;
          g.size.height = c.height + f;
          g.position.top = h.top - f
        }
        g.position.left = h.left - j
      }
    }});
  var d = function (g) {
    return parseInt(g, 10) || 0
  }, e = function (g) {
    return!isNaN(parseInt(g, 10))
  }
})(jQuery);
(function (b) {
  b.widget("ui.selectable", b.ui.mouse, {options: {appendTo: "body", autoRefresh: true, distance: 0, filter: "*", tolerance: "touch"}, _create: function () {
      var d = this;
      this.element.addClass("ui-selectable");
      this.dragged = false;
      var e;
      this.refresh = function () {
        e = b(d.options.filter, d.element[0]);
        e.each(function () {
          var g = b(this), f = g.offset();
          b.data(this, "selectable-item", {element: this, $element: g, left: f.left, top: f.top, right: f.left + g.outerWidth(), bottom: f.top + g.outerHeight(), startselected: false, selected: g.hasClass("ui-selected"),
            selecting: g.hasClass("ui-selecting"), unselecting: g.hasClass("ui-unselecting")})
        })
      };
      this.refresh();
      this.selectees = e.addClass("ui-selectee");
      this._mouseInit();
      this.helper = b("<div class='ui-selectable-helper'></div>")
    }, destroy: function () {
      this.selectees.removeClass("ui-selectee").removeData("selectable-item");
      this.element.removeClass("ui-selectable ui-selectable-disabled").removeData("selectable").unbind(".selectable");
      this._mouseDestroy();
      return this
    }, _mouseStart: function (d) {
      var e = this;
      this.opos = [d.pageX,
        d.pageY];
      if (!this.options.disabled) {
        var g = this.options;
        this.selectees = b(g.filter, this.element[0]);
        this._trigger("start", d);
        b(g.appendTo).append(this.helper);
        this.helper.css({left: d.clientX, top: d.clientY, width: 0, height: 0});
        g.autoRefresh && this.refresh();
        this.selectees.filter(".ui-selected").each(function () {
          var f = b.data(this, "selectable-item");
          f.startselected = true;
          if (!d.metaKey) {
            f.$element.removeClass("ui-selected");
            f.selected = false;
            f.$element.addClass("ui-unselecting");
            f.unselecting = true;
            e._trigger("unselecting",
                    d, {unselecting: f.element})
          }
        });
        b(d.target).parents().andSelf().each(function () {
          var f = b.data(this, "selectable-item");
          if (f) {
            var a = !d.metaKey || !f.$element.hasClass("ui-selected");
            f.$element.removeClass(a ? "ui-unselecting" : "ui-selected").addClass(a ? "ui-selecting" : "ui-unselecting");
            f.unselecting = !a;
            f.selecting = a;
            (f.selected = a) ? e._trigger("selecting", d, {selecting: f.element}) : e._trigger("unselecting", d, {unselecting: f.element});
            return false
          }
        })
      }
    }, _mouseDrag: function (d) {
      var e = this;
      this.dragged = true;
      if (!this.options.disabled) {
        var g =
                this.options, f = this.opos[0], a = this.opos[1], c = d.pageX, h = d.pageY;
        if (f > c) {
          var i = c;
          c = f;
          f = i
        }
        if (a > h) {
          i = h;
          h = a;
          a = i
        }
        this.helper.css({left: f, top: a, width: c - f, height: h - a});
        this.selectees.each(function () {
          var j = b.data(this, "selectable-item");
          if (!(!j || j.element == e.element[0])) {
            var n = false;
            if (g.tolerance == "touch")
              n = !(j.left > c || j.right < f || j.top > h || j.bottom < a);
            else if (g.tolerance == "fit")
              n = j.left > f && j.right < c && j.top > a && j.bottom < h;
            if (n) {
              if (j.selected) {
                j.$element.removeClass("ui-selected");
                j.selected = false
              }
              if (j.unselecting) {
                j.$element.removeClass("ui-unselecting");
                j.unselecting = false
              }
              if (!j.selecting) {
                j.$element.addClass("ui-selecting");
                j.selecting = true;
                e._trigger("selecting", d, {selecting: j.element})
              }
            } else {
              if (j.selecting)
                if (d.metaKey && j.startselected) {
                  j.$element.removeClass("ui-selecting");
                  j.selecting = false;
                  j.$element.addClass("ui-selected");
                  j.selected = true
                } else {
                  j.$element.removeClass("ui-selecting");
                  j.selecting = false;
                  if (j.startselected) {
                    j.$element.addClass("ui-unselecting");
                    j.unselecting = true
                  }
                  e._trigger("unselecting", d, {unselecting: j.element})
                }
              if (j.selected)
                if (!d.metaKey &&
                        !j.startselected) {
                  j.$element.removeClass("ui-selected");
                  j.selected = false;
                  j.$element.addClass("ui-unselecting");
                  j.unselecting = true;
                  e._trigger("unselecting", d, {unselecting: j.element})
                }
            }
          }
        });
        return false
      }
    }, _mouseStop: function (d) {
      var e = this;
      this.dragged = false;
      b(".ui-unselecting", this.element[0]).each(function () {
        var g = b.data(this, "selectable-item");
        g.$element.removeClass("ui-unselecting");
        g.unselecting = false;
        g.startselected = false;
        e._trigger("unselected", d, {unselected: g.element})
      });
      b(".ui-selecting", this.element[0]).each(function () {
        var g =
                b.data(this, "selectable-item");
        g.$element.removeClass("ui-selecting").addClass("ui-selected");
        g.selecting = false;
        g.selected = true;
        g.startselected = true;
        e._trigger("selected", d, {selected: g.element})
      });
      this._trigger("stop", d);
      this.helper.remove();
      return false
    }});
  b.extend(b.ui.selectable, {version: "1.8.10"})
})(jQuery);
(function (b) {
  b.widget("ui.sortable", b.ui.mouse, {widgetEventPrefix: "sort", options: {appendTo: "parent", axis: false, connectWith: false, containment: false, cursor: "auto", cursorAt: false, dropOnEmpty: true, forcePlaceholderSize: false, forceHelperSize: false, grid: false, handle: false, helper: "original", items: "> *", opacity: false, placeholder: false, revert: false, scroll: true, scrollSensitivity: 20, scrollSpeed: 20, scope: "default", tolerance: "intersect", zIndex: 1E3}, _create: function () {
      this.containerCache = {};
      this.element.addClass("ui-sortable");
      this.refresh();
      this.floating = this.items.length ? /left|right/.test(this.items[0].item.css("float")) : false;
      this.offset = this.element.offset();
      this._mouseInit()
    }, destroy: function () {
      this.element.removeClass("ui-sortable ui-sortable-disabled").removeData("sortable").unbind(".sortable");
      this._mouseDestroy();
      for (var d = this.items.length - 1; d >= 0; d--)
        this.items[d].item.removeData("sortable-item");
      return this
    }, _setOption: function (d, e) {
      if (d === "disabled") {
        this.options[d] = e;
        this.widget()[e ? "addClass" : "removeClass"]("ui-sortable-disabled")
      } else
        b.Widget.prototype._setOption.apply(this,
                arguments)
    }, _mouseCapture: function (d, e) {
      if (this.reverting)
        return false;
      if (this.options.disabled || this.options.type == "static")
        return false;
      this._refreshItems(d);
      var g = null, f = this;
      b(d.target).parents().each(function () {
        if (b.data(this, "sortable-item") == f) {
          g = b(this);
          return false
        }
      });
      if (b.data(d.target, "sortable-item") == f)
        g = b(d.target);
      if (!g)
        return false;
      if (this.options.handle && !e) {
        var a = false;
        b(this.options.handle, g).find("*").andSelf().each(function () {
          if (this == d.target)
            a = true
        });
        if (!a)
          return false
      }
      this.currentItem =
              g;
      this._removeCurrentsFromItems();
      return true
    }, _mouseStart: function (d, e, g) {
      e = this.options;
      var f = this;
      this.currentContainer = this;
      this.refreshPositions();
      this.helper = this._createHelper(d);
      this._cacheHelperProportions();
      this._cacheMargins();
      this.scrollParent = this.helper.scrollParent();
      this.offset = this.currentItem.offset();
      this.offset = {top: this.offset.top - this.margins.top, left: this.offset.left - this.margins.left};
      this.helper.css("position", "absolute");
      this.cssPosition = this.helper.css("position");
      b.extend(this.offset,
              {click: {left: d.pageX - this.offset.left, top: d.pageY - this.offset.top}, parent: this._getParentOffset(), relative: this._getRelativeOffset()});
      this.originalPosition = this._generatePosition(d);
      this.originalPageX = d.pageX;
      this.originalPageY = d.pageY;
      e.cursorAt && this._adjustOffsetFromHelper(e.cursorAt);
      this.domPosition = {prev: this.currentItem.prev()[0], parent: this.currentItem.parent()[0]};
      this.helper[0] != this.currentItem[0] && this.currentItem.hide();
      this._createPlaceholder();
      e.containment && this._setContainment();
      if (e.cursor) {
        if (b("body").css("cursor"))
          this._storedCursor = b("body").css("cursor");
        b("body").css("cursor", e.cursor)
      }
      if (e.opacity) {
        if (this.helper.css("opacity"))
          this._storedOpacity = this.helper.css("opacity");
        this.helper.css("opacity", e.opacity)
      }
      if (e.zIndex) {
        if (this.helper.css("zIndex"))
          this._storedZIndex = this.helper.css("zIndex");
        this.helper.css("zIndex", e.zIndex)
      }
      if (this.scrollParent[0] != document && this.scrollParent[0].tagName != "HTML")
        this.overflowOffset = this.scrollParent.offset();
      this._trigger("start",
              d, this._uiHash());
      this._preserveHelperProportions || this._cacheHelperProportions();
      if (!g)
        for (g = this.containers.length - 1; g >= 0; g--)
          this.containers[g]._trigger("activate", d, f._uiHash(this));
      if (b.ui.ddmanager)
        b.ui.ddmanager.current = this;
      b.ui.ddmanager && !e.dropBehaviour && b.ui.ddmanager.prepareOffsets(this, d);
      this.dragging = true;
      this.helper.addClass("ui-sortable-helper");
      this._mouseDrag(d);
      return true
    }, _mouseDrag: function (d) {
      this.position = this._generatePosition(d);
      this.positionAbs = this._convertPositionTo("absolute");
      if (!this.lastPositionAbs)
        this.lastPositionAbs = this.positionAbs;
      if (this.options.scroll) {
        var e = this.options, g = false;
        if (this.scrollParent[0] != document && this.scrollParent[0].tagName != "HTML") {
          if (this.overflowOffset.top + this.scrollParent[0].offsetHeight - d.pageY < e.scrollSensitivity)
            this.scrollParent[0].scrollTop = g = this.scrollParent[0].scrollTop + e.scrollSpeed;
          else if (d.pageY - this.overflowOffset.top < e.scrollSensitivity)
            this.scrollParent[0].scrollTop = g = this.scrollParent[0].scrollTop - e.scrollSpeed;
          if (this.overflowOffset.left +
                  this.scrollParent[0].offsetWidth - d.pageX < e.scrollSensitivity)
            this.scrollParent[0].scrollLeft = g = this.scrollParent[0].scrollLeft + e.scrollSpeed;
          else if (d.pageX - this.overflowOffset.left < e.scrollSensitivity)
            this.scrollParent[0].scrollLeft = g = this.scrollParent[0].scrollLeft - e.scrollSpeed
        } else {
          if (d.pageY - b(document).scrollTop() < e.scrollSensitivity)
            g = b(document).scrollTop(b(document).scrollTop() - e.scrollSpeed);
          else if (b(window).height() - (d.pageY - b(document).scrollTop()) < e.scrollSensitivity)
            g = b(document).scrollTop(b(document).scrollTop() +
                    e.scrollSpeed);
          if (d.pageX - b(document).scrollLeft() < e.scrollSensitivity)
            g = b(document).scrollLeft(b(document).scrollLeft() - e.scrollSpeed);
          else if (b(window).width() - (d.pageX - b(document).scrollLeft()) < e.scrollSensitivity)
            g = b(document).scrollLeft(b(document).scrollLeft() + e.scrollSpeed)
        }
        g !== false && b.ui.ddmanager && !e.dropBehaviour && b.ui.ddmanager.prepareOffsets(this, d)
      }
      this.positionAbs = this._convertPositionTo("absolute");
      if (!this.options.axis || this.options.axis != "y")
        this.helper[0].style.left = this.position.left +
                "px";
      if (!this.options.axis || this.options.axis != "x")
        this.helper[0].style.top = this.position.top + "px";
      for (e = this.items.length - 1; e >= 0; e--) {
        g = this.items[e];
        var f = g.item[0], a = this._intersectsWithPointer(g);
        if (a)
          if (f != this.currentItem[0] && this.placeholder[a == 1 ? "next" : "prev"]()[0] != f && !b.ui.contains(this.placeholder[0], f) && (this.options.type == "semi-dynamic" ? !b.ui.contains(this.element[0], f) : true)) {
            this.direction = a == 1 ? "down" : "up";
            if (this.options.tolerance == "pointer" || this._intersectsWithSides(g))
              this._rearrange(d,
                      g);
            else
              break;
            this._trigger("change", d, this._uiHash());
            break
          }
      }
      this._contactContainers(d);
      b.ui.ddmanager && b.ui.ddmanager.drag(this, d);
      this._trigger("sort", d, this._uiHash());
      this.lastPositionAbs = this.positionAbs;
      return false
    }, _mouseStop: function (d, e) {
      if (d) {
        b.ui.ddmanager && !this.options.dropBehaviour && b.ui.ddmanager.drop(this, d);
        if (this.options.revert) {
          var g = this;
          e = g.placeholder.offset();
          g.reverting = true;
          b(this.helper).animate({left: e.left - this.offset.parent.left - g.margins.left + (this.offsetParent[0] ==
                    document.body ? 0 : this.offsetParent[0].scrollLeft), top: e.top - this.offset.parent.top - g.margins.top + (this.offsetParent[0] == document.body ? 0 : this.offsetParent[0].scrollTop)}, parseInt(this.options.revert, 10) || 500, function () {
            g._clear(d)
          })
        } else
          this._clear(d, e);
        return false
      }
    }, cancel: function () {
      var d = this;
      if (this.dragging) {
        this._mouseUp({target: null});
        this.options.helper == "original" ? this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper") : this.currentItem.show();
        for (var e = this.containers.length -
                1; e >= 0; e--) {
          this.containers[e]._trigger("deactivate", null, d._uiHash(this));
          if (this.containers[e].containerCache.over) {
            this.containers[e]._trigger("out", null, d._uiHash(this));
            this.containers[e].containerCache.over = 0
          }
        }
      }
      if (this.placeholder) {
        this.placeholder[0].parentNode && this.placeholder[0].parentNode.removeChild(this.placeholder[0]);
        this.options.helper != "original" && this.helper && this.helper[0].parentNode && this.helper.remove();
        b.extend(this, {helper: null, dragging: false, reverting: false, _noFinalSort: null});
        this.domPosition.prev ? b(this.domPosition.prev).after(this.currentItem) : b(this.domPosition.parent).prepend(this.currentItem)
      }
      return this
    }, serialize: function (d) {
      var e = this._getItemsAsjQuery(d && d.connected), g = [];
      d = d || {};
      b(e).each(function () {
        var f = (b(d.item || this).attr(d.attribute || "id") || "").match(d.expression || /(.+)[-=_](.+)/);
        if (f)
          g.push((d.key || f[1] + "[]") + "=" + (d.key && d.expression ? f[1] : f[2]))
      });
      !g.length && d.key && g.push(d.key + "=");
      return g.join("&")
    }, toArray: function (d) {
      var e = this._getItemsAsjQuery(d &&
              d.connected), g = [];
      d = d || {};
      e.each(function () {
        g.push(b(d.item || this).attr(d.attribute || "id") || "")
      });
      return g
    }, _intersectsWith: function (d) {
      var e = this.positionAbs.left, g = e + this.helperProportions.width, f = this.positionAbs.top, a = f + this.helperProportions.height, c = d.left, h = c + d.width, i = d.top, j = i + d.height, n = this.offset.click.top, q = this.offset.click.left;
      n = f + n > i && f + n < j && e + q > c && e + q < h;
      return this.options.tolerance == "pointer" || this.options.forcePointerForContainers || this.options.tolerance != "pointer" && this.helperProportions[this.floating ?
              "width" : "height"] > d[this.floating ? "width" : "height"] ? n : c < e + this.helperProportions.width / 2 && g - this.helperProportions.width / 2 < h && i < f + this.helperProportions.height / 2 && a - this.helperProportions.height / 2 < j
    }, _intersectsWithPointer: function (d) {
      var e = b.ui.isOverAxis(this.positionAbs.top + this.offset.click.top, d.top, d.height);
      d = b.ui.isOverAxis(this.positionAbs.left + this.offset.click.left, d.left, d.width);
      e = e && d;
      d = this._getDragVerticalDirection();
      var g = this._getDragHorizontalDirection();
      if (!e)
        return false;
      return this.floating ?
              g && g == "right" || d == "down" ? 2 : 1 : d && (d == "down" ? 2 : 1)
    }, _intersectsWithSides: function (d) {
      var e = b.ui.isOverAxis(this.positionAbs.top + this.offset.click.top, d.top + d.height / 2, d.height);
      d = b.ui.isOverAxis(this.positionAbs.left + this.offset.click.left, d.left + d.width / 2, d.width);
      var g = this._getDragVerticalDirection(), f = this._getDragHorizontalDirection();
      return this.floating && f ? f == "right" && d || f == "left" && !d : g && (g == "down" && e || g == "up" && !e)
    }, _getDragVerticalDirection: function () {
      var d = this.positionAbs.top - this.lastPositionAbs.top;
      return d != 0 && (d > 0 ? "down" : "up")
    }, _getDragHorizontalDirection: function () {
      var d = this.positionAbs.left - this.lastPositionAbs.left;
      return d != 0 && (d > 0 ? "right" : "left")
    }, refresh: function (d) {
      this._refreshItems(d);
      this.refreshPositions();
      return this
    }, _connectWith: function () {
      var d = this.options;
      return d.connectWith.constructor == String ? [d.connectWith] : d.connectWith
    }, _getItemsAsjQuery: function (d) {
      var e = [], g = [], f = this._connectWith();
      if (f && d)
        for (d = f.length - 1; d >= 0; d--)
          for (var a = b(f[d]), c = a.length - 1; c >= 0; c--) {
            var h =
                    b.data(a[c], "sortable");
            if (h && h != this && !h.options.disabled)
              g.push([b.isFunction(h.options.items) ? h.options.items.call(h.element) : b(h.options.items, h.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"), h])
          }
      g.push([b.isFunction(this.options.items) ? this.options.items.call(this.element, null, {options: this.options, item: this.currentItem}) : b(this.options.items, this.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"), this]);
      for (d = g.length - 1; d >= 0; d--)
        g[d][0].each(function () {
          e.push(this)
        });
      return b(e)
    }, _removeCurrentsFromItems: function () {
      for (var d = this.currentItem.find(":data(sortable-item)"), e = 0; e < this.items.length; e++)
        for (var g = 0; g < d.length; g++)
          d[g] == this.items[e].item[0] && this.items.splice(e, 1)
    }, _refreshItems: function (d) {
      this.items = [];
      this.containers = [this];
      var e = this.items, g = [[b.isFunction(this.options.items) ? this.options.items.call(this.element[0], d, {item: this.currentItem}) : b(this.options.items, this.element), this]], f = this._connectWith();
      if (f)
        for (var a = f.length - 1; a >= 0; a--)
          for (var c =
                  b(f[a]), h = c.length - 1; h >= 0; h--) {
            var i = b.data(c[h], "sortable");
            if (i && i != this && !i.options.disabled) {
              g.push([b.isFunction(i.options.items) ? i.options.items.call(i.element[0], d, {item: this.currentItem}) : b(i.options.items, i.element), i]);
              this.containers.push(i)
            }
          }
      for (a = g.length - 1; a >= 0; a--) {
        d = g[a][1];
        f = g[a][0];
        h = 0;
        for (c = f.length; h < c; h++) {
          i = b(f[h]);
          i.data("sortable-item", d);
          e.push({item: i, instance: d, width: 0, height: 0, left: 0, top: 0})
        }
      }
    }, refreshPositions: function (d) {
      if (this.offsetParent && this.helper)
        this.offset.parent =
                this._getParentOffset();
      for (var e = this.items.length - 1; e >= 0; e--) {
        var g = this.items[e], f = this.options.toleranceElement ? b(this.options.toleranceElement, g.item) : g.item;
        if (!d) {
          g.width = f.outerWidth();
          g.height = f.outerHeight()
        }
        f = f.offset();
        g.left = f.left;
        g.top = f.top
      }
      if (this.options.custom && this.options.custom.refreshContainers)
        this.options.custom.refreshContainers.call(this);
      else
        for (e = this.containers.length - 1; e >= 0; e--) {
          f = this.containers[e].element.offset();
          this.containers[e].containerCache.left = f.left;
          this.containers[e].containerCache.top =
                  f.top;
          this.containers[e].containerCache.width = this.containers[e].element.outerWidth();
          this.containers[e].containerCache.height = this.containers[e].element.outerHeight()
        }
      return this
    }, _createPlaceholder: function (d) {
      var e = d || this, g = e.options;
      if (!g.placeholder || g.placeholder.constructor == String) {
        var f = g.placeholder;
        g.placeholder = {element: function () {
            var a = b(document.createElement(e.currentItem[0].nodeName)).addClass(f || e.currentItem[0].className + " ui-sortable-placeholder").removeClass("ui-sortable-helper")[0];
            if (!f)
              a.style.visibility = "hidden";
            return a
          }, update: function (a, c) {
            if (!(f && !g.forcePlaceholderSize)) {
              c.height() || c.height(e.currentItem.innerHeight() - parseInt(e.currentItem.css("paddingTop") || 0, 10) - parseInt(e.currentItem.css("paddingBottom") || 0, 10));
              c.width() || c.width(e.currentItem.innerWidth() - parseInt(e.currentItem.css("paddingLeft") || 0, 10) - parseInt(e.currentItem.css("paddingRight") || 0, 10))
            }
          }}
      }
      e.placeholder = b(g.placeholder.element.call(e.element, e.currentItem));
      e.currentItem.after(e.placeholder);
      g.placeholder.update(e, e.placeholder)
    }, _contactContainers: function (d) {
      for (var e = null, g = null, f = this.containers.length - 1; f >= 0; f--)
        if (!b.ui.contains(this.currentItem[0], this.containers[f].element[0]))
          if (this._intersectsWith(this.containers[f].containerCache)) {
            if (!(e && b.ui.contains(this.containers[f].element[0], e.element[0]))) {
              e = this.containers[f];
              g = f
            }
          } else if (this.containers[f].containerCache.over) {
            this.containers[f]._trigger("out", d, this._uiHash(this));
            this.containers[f].containerCache.over = 0
          }
      if (e)
        if (this.containers.length ===
                1) {
          this.containers[g]._trigger("over", d, this._uiHash(this));
          this.containers[g].containerCache.over = 1
        } else if (this.currentContainer != this.containers[g]) {
          e = 1E4;
          f = null;
          for (var a = this.positionAbs[this.containers[g].floating ? "left" : "top"], c = this.items.length - 1; c >= 0; c--)
            if (b.ui.contains(this.containers[g].element[0], this.items[c].item[0])) {
              var h = this.items[c][this.containers[g].floating ? "left" : "top"];
              if (Math.abs(h - a) < e) {
                e = Math.abs(h - a);
                f = this.items[c]
              }
            }
          if (f || this.options.dropOnEmpty) {
            this.currentContainer =
                    this.containers[g];
            f ? this._rearrange(d, f, null, true) : this._rearrange(d, null, this.containers[g].element, true);
            this._trigger("change", d, this._uiHash());
            this.containers[g]._trigger("change", d, this._uiHash(this));
            this.options.placeholder.update(this.currentContainer, this.placeholder);
            this.containers[g]._trigger("over", d, this._uiHash(this));
            this.containers[g].containerCache.over = 1
          }
        }
    }, _createHelper: function (d) {
      var e = this.options;
      d = b.isFunction(e.helper) ? b(e.helper.apply(this.element[0], [d, this.currentItem])) :
              e.helper == "clone" ? this.currentItem.clone() : this.currentItem;
      d.parents("body").length || b(e.appendTo != "parent" ? e.appendTo : this.currentItem[0].parentNode)[0].appendChild(d[0]);
      if (d[0] == this.currentItem[0])
        this._storedCSS = {width: this.currentItem[0].style.width, height: this.currentItem[0].style.height, position: this.currentItem.css("position"), top: this.currentItem.css("top"), left: this.currentItem.css("left")};
      if (d[0].style.width == "" || e.forceHelperSize)
        d.width(this.currentItem.width());
      if (d[0].style.height ==
              "" || e.forceHelperSize)
        d.height(this.currentItem.height());
      return d
    }, _adjustOffsetFromHelper: function (d) {
      if (typeof d == "string")
        d = d.split(" ");
      if (b.isArray(d))
        d = {left: +d[0], top: +d[1] || 0};
      if ("left"in d)
        this.offset.click.left = d.left + this.margins.left;
      if ("right"in d)
        this.offset.click.left = this.helperProportions.width - d.right + this.margins.left;
      if ("top"in d)
        this.offset.click.top = d.top + this.margins.top;
      if ("bottom"in d)
        this.offset.click.top = this.helperProportions.height - d.bottom + this.margins.top
    }, _getParentOffset: function () {
      this.offsetParent =
              this.helper.offsetParent();
      var d = this.offsetParent.offset();
      if (this.cssPosition == "absolute" && this.scrollParent[0] != document && b.ui.contains(this.scrollParent[0], this.offsetParent[0])) {
        d.left += this.scrollParent.scrollLeft();
        d.top += this.scrollParent.scrollTop()
      }
      if (this.offsetParent[0] == document.body || this.offsetParent[0].tagName && this.offsetParent[0].tagName.toLowerCase() == "html" && b.browser.msie)
        d = {top: 0, left: 0};
      return{top: d.top + (parseInt(this.offsetParent.css("borderTopWidth"), 10) || 0), left: d.left + (parseInt(this.offsetParent.css("borderLeftWidth"),
                10) || 0)}
    }, _getRelativeOffset: function () {
      if (this.cssPosition == "relative") {
        var d = this.currentItem.position();
        return{top: d.top - (parseInt(this.helper.css("top"), 10) || 0) + this.scrollParent.scrollTop(), left: d.left - (parseInt(this.helper.css("left"), 10) || 0) + this.scrollParent.scrollLeft()}
      } else
        return{top: 0, left: 0}
    }, _cacheMargins: function () {
      this.margins = {left: parseInt(this.currentItem.css("marginLeft"), 10) || 0, top: parseInt(this.currentItem.css("marginTop"), 10) || 0}
    }, _cacheHelperProportions: function () {
      this.helperProportions =
              {width: this.helper.outerWidth(), height: this.helper.outerHeight()}
    }, _setContainment: function () {
      var d = this.options;
      if (d.containment == "parent")
        d.containment = this.helper[0].parentNode;
      if (d.containment == "document" || d.containment == "window")
        this.containment = [0 - this.offset.relative.left - this.offset.parent.left, 0 - this.offset.relative.top - this.offset.parent.top, b(d.containment == "document" ? document : window).width() - this.helperProportions.width - this.margins.left, (b(d.containment == "document" ? document : window).height() ||
                  document.body.parentNode.scrollHeight) - this.helperProportions.height - this.margins.top];
      if (!/^(document|window|parent)$/.test(d.containment)) {
        var e = b(d.containment)[0];
        d = b(d.containment).offset();
        var g = b(e).css("overflow") != "hidden";
        this.containment = [d.left + (parseInt(b(e).css("borderLeftWidth"), 10) || 0) + (parseInt(b(e).css("paddingLeft"), 10) || 0) - this.margins.left, d.top + (parseInt(b(e).css("borderTopWidth"), 10) || 0) + (parseInt(b(e).css("paddingTop"), 10) || 0) - this.margins.top, d.left + (g ? Math.max(e.scrollWidth,
                  e.offsetWidth) : e.offsetWidth) - (parseInt(b(e).css("borderLeftWidth"), 10) || 0) - (parseInt(b(e).css("paddingRight"), 10) || 0) - this.helperProportions.width - this.margins.left, d.top + (g ? Math.max(e.scrollHeight, e.offsetHeight) : e.offsetHeight) - (parseInt(b(e).css("borderTopWidth"), 10) || 0) - (parseInt(b(e).css("paddingBottom"), 10) || 0) - this.helperProportions.height - this.margins.top]
      }
    }, _convertPositionTo: function (d, e) {
      if (!e)
        e = this.position;
      d = d == "absolute" ? 1 : -1;
      var g = this.cssPosition == "absolute" && !(this.scrollParent[0] !=
              document && b.ui.contains(this.scrollParent[0], this.offsetParent[0])) ? this.offsetParent : this.scrollParent, f = /(html|body)/i.test(g[0].tagName);
      return{top: e.top + this.offset.relative.top * d + this.offset.parent.top * d - (b.browser.safari && this.cssPosition == "fixed" ? 0 : (this.cssPosition == "fixed" ? -this.scrollParent.scrollTop() : f ? 0 : g.scrollTop()) * d), left: e.left + this.offset.relative.left * d + this.offset.parent.left * d - (b.browser.safari && this.cssPosition == "fixed" ? 0 : (this.cssPosition == "fixed" ? -this.scrollParent.scrollLeft() :
                f ? 0 : g.scrollLeft()) * d)}
    }, _generatePosition: function (d) {
      var e = this.options, g = this.cssPosition == "absolute" && !(this.scrollParent[0] != document && b.ui.contains(this.scrollParent[0], this.offsetParent[0])) ? this.offsetParent : this.scrollParent, f = /(html|body)/i.test(g[0].tagName);
      if (this.cssPosition == "relative" && !(this.scrollParent[0] != document && this.scrollParent[0] != this.offsetParent[0]))
        this.offset.relative = this._getRelativeOffset();
      var a = d.pageX, c = d.pageY;
      if (this.originalPosition) {
        if (this.containment) {
          if (d.pageX -
                  this.offset.click.left < this.containment[0])
            a = this.containment[0] + this.offset.click.left;
          if (d.pageY - this.offset.click.top < this.containment[1])
            c = this.containment[1] + this.offset.click.top;
          if (d.pageX - this.offset.click.left > this.containment[2])
            a = this.containment[2] + this.offset.click.left;
          if (d.pageY - this.offset.click.top > this.containment[3])
            c = this.containment[3] + this.offset.click.top
        }
        if (e.grid) {
          c = this.originalPageY + Math.round((c - this.originalPageY) / e.grid[1]) * e.grid[1];
          c = this.containment ? !(c - this.offset.click.top <
                  this.containment[1] || c - this.offset.click.top > this.containment[3]) ? c : !(c - this.offset.click.top < this.containment[1]) ? c - e.grid[1] : c + e.grid[1] : c;
          a = this.originalPageX + Math.round((a - this.originalPageX) / e.grid[0]) * e.grid[0];
          a = this.containment ? !(a - this.offset.click.left < this.containment[0] || a - this.offset.click.left > this.containment[2]) ? a : !(a - this.offset.click.left < this.containment[0]) ? a - e.grid[0] : a + e.grid[0] : a
        }
      }
      return{top: c - this.offset.click.top - this.offset.relative.top - this.offset.parent.top + (b.browser.safari &&
                this.cssPosition == "fixed" ? 0 : this.cssPosition == "fixed" ? -this.scrollParent.scrollTop() : f ? 0 : g.scrollTop()), left: a - this.offset.click.left - this.offset.relative.left - this.offset.parent.left + (b.browser.safari && this.cssPosition == "fixed" ? 0 : this.cssPosition == "fixed" ? -this.scrollParent.scrollLeft() : f ? 0 : g.scrollLeft())}
    }, _rearrange: function (d, e, g, f) {
      g ? g[0].appendChild(this.placeholder[0]) : e.item[0].parentNode.insertBefore(this.placeholder[0], this.direction == "down" ? e.item[0] : e.item[0].nextSibling);
      this.counter =
              this.counter ? ++this.counter : 1;
      var a = this, c = this.counter;
      window.setTimeout(function () {
        c == a.counter && a.refreshPositions(!f)
      }, 0)
    }, _clear: function (d, e) {
      this.reverting = false;
      var g = [];
      !this._noFinalSort && this.currentItem[0].parentNode && this.placeholder.before(this.currentItem);
      this._noFinalSort = null;
      if (this.helper[0] == this.currentItem[0]) {
        for (var f in this._storedCSS)
          if (this._storedCSS[f] == "auto" || this._storedCSS[f] == "static")
            this._storedCSS[f] = "";
        this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper")
      } else
        this.currentItem.show();
      this.fromOutside && !e && g.push(function (a) {
        this._trigger("receive", a, this._uiHash(this.fromOutside))
      });
      if ((this.fromOutside || this.domPosition.prev != this.currentItem.prev().not(".ui-sortable-helper")[0] || this.domPosition.parent != this.currentItem.parent()[0]) && !e)
        g.push(function (a) {
          this._trigger("update", a, this._uiHash())
        });
      if (!b.ui.contains(this.element[0], this.currentItem[0])) {
        e || g.push(function (a) {
          this._trigger("remove", a, this._uiHash())
        });
        for (f = this.containers.length - 1; f >= 0; f--)
          if (b.ui.contains(this.containers[f].element[0],
                  this.currentItem[0]) && !e) {
            g.push(function (a) {
              return function (c) {
                a._trigger("receive", c, this._uiHash(this))
              }
            }.call(this, this.containers[f]));
            g.push(function (a) {
              return function (c) {
                a._trigger("update", c, this._uiHash(this))
              }
            }.call(this, this.containers[f]))
          }
      }
      for (f = this.containers.length - 1; f >= 0; f--) {
        e || g.push(function (a) {
          return function (c) {
            a._trigger("deactivate", c, this._uiHash(this))
          }
        }.call(this, this.containers[f]));
        if (this.containers[f].containerCache.over) {
          g.push(function (a) {
            return function (c) {
              a._trigger("out",
                      c, this._uiHash(this))
            }
          }.call(this, this.containers[f]));
          this.containers[f].containerCache.over = 0
        }
      }
      this._storedCursor && b("body").css("cursor", this._storedCursor);
      this._storedOpacity && this.helper.css("opacity", this._storedOpacity);
      if (this._storedZIndex)
        this.helper.css("zIndex", this._storedZIndex == "auto" ? "" : this._storedZIndex);
      this.dragging = false;
      if (this.cancelHelperRemoval) {
        if (!e) {
          this._trigger("beforeStop", d, this._uiHash());
          for (f = 0; f < g.length; f++)
            g[f].call(this, d);
          this._trigger("stop", d, this._uiHash())
        }
        return false
      }
      e ||
              this._trigger("beforeStop", d, this._uiHash());
      this.placeholder[0].parentNode.removeChild(this.placeholder[0]);
      this.helper[0] != this.currentItem[0] && this.helper.remove();
      this.helper = null;
      if (!e) {
        for (f = 0; f < g.length; f++)
          g[f].call(this, d);
        this._trigger("stop", d, this._uiHash())
      }
      this.fromOutside = false;
      return true
    }, _trigger: function () {
      b.Widget.prototype._trigger.apply(this, arguments) === false && this.cancel()
    }, _uiHash: function (d) {
      var e = d || this;
      return{helper: e.helper, placeholder: e.placeholder || b([]), position: e.position,
        originalPosition: e.originalPosition, offset: e.positionAbs, item: e.currentItem, sender: d ? d.element : null}
    }});
  b.extend(b.ui.sortable, {version: "1.8.10"})
})(jQuery);
jQuery.effects || function (b, d) {
  function e(l) {
    var k;
    if (l && l.constructor == Array && l.length == 3)
      return l;
    if (k = /rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(l))
      return[parseInt(k[1], 10), parseInt(k[2], 10), parseInt(k[3], 10)];
    if (k = /rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(l))
      return[parseFloat(k[1]) * 2.55, parseFloat(k[2]) * 2.55, parseFloat(k[3]) * 2.55];
    if (k = /#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(l))
      return[parseInt(k[1],
                16), parseInt(k[2], 16), parseInt(k[3], 16)];
    if (k = /#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(l))
      return[parseInt(k[1] + k[1], 16), parseInt(k[2] + k[2], 16), parseInt(k[3] + k[3], 16)];
    if (/rgba\(0, 0, 0, 0\)/.exec(l))
      return j.transparent;
    return j[b.trim(l).toLowerCase()]
  }
  function g(l, k) {
    var m;
    do {
      m = b.curCSS(l, k);
      if (m != "" && m != "transparent" || b.nodeName(l, "body"))
        break;
      k = "backgroundColor"
    } while (l = l.parentNode);
    return e(m)
  }
  function f() {
    var l = document.defaultView ? document.defaultView.getComputedStyle(this, null) : this.currentStyle,
            k = {}, m, o;
    if (l && l.length && l[0] && l[l[0]])
      for (var p = l.length; p--; ) {
        m = l[p];
        if (typeof l[m] == "string") {
          o = m.replace(/\-(\w)/g, function (s, r) {
            return r.toUpperCase()
          });
          k[o] = l[m]
        }
      }
    else
      for (m in l)
        if (typeof l[m] === "string")
          k[m] = l[m];
    return k
  }
  function a(l) {
    var k, m;
    for (k in l) {
      m = l[k];
      if (m == null || b.isFunction(m) || k in q || /scrollbar/.test(k) || !/color/i.test(k) && isNaN(parseFloat(m)))
        delete l[k]
    }
    return l
  }
  function c(l, k) {
    var m = {_: 0}, o;
    for (o in k)
      if (l[o] != k[o])
        m[o] = k[o];
    return m
  }
  function h(l, k, m, o) {
    if (typeof l == "object") {
      o =
              k;
      m = null;
      k = l;
      l = k.effect
    }
    if (b.isFunction(k)) {
      o = k;
      m = null;
      k = {}
    }
    if (typeof k == "number" || b.fx.speeds[k]) {
      o = m;
      m = k;
      k = {}
    }
    if (b.isFunction(m)) {
      o = m;
      m = null
    }
    k = k || {};
    m = m || k.duration;
    m = b.fx.off ? 0 : typeof m == "number" ? m : m in b.fx.speeds ? b.fx.speeds[m] : b.fx.speeds._default;
    o = o || k.complete;
    return[l, k, m, o]
  }
  function i(l) {
    if (!l || typeof l === "number" || b.fx.speeds[l])
      return true;
    if (typeof l === "string" && !b.effects[l])
      return true;
    return false
  }
  b.effects = {};
  b.each(["backgroundColor", "borderBottomColor", "borderLeftColor", "borderRightColor",
    "borderTopColor", "borderColor", "color", "outlineColor"], function (l, k) {
    b.fx.step[k] = function (m) {
      if (!m.colorInit) {
        m.start = g(m.elem, k);
        m.end = e(m.end);
        m.colorInit = true
      }
      m.elem.style[k] = "rgb(" + Math.max(Math.min(parseInt(m.pos * (m.end[0] - m.start[0]) + m.start[0], 10), 255), 0) + "," + Math.max(Math.min(parseInt(m.pos * (m.end[1] - m.start[1]) + m.start[1], 10), 255), 0) + "," + Math.max(Math.min(parseInt(m.pos * (m.end[2] - m.start[2]) + m.start[2], 10), 255), 0) + ")"
    }
  });
  var j = {aqua: [0, 255, 255], azure: [240, 255, 255], beige: [245, 245, 220], black: [0,
      0, 0], blue: [0, 0, 255], brown: [165, 42, 42], cyan: [0, 255, 255], darkblue: [0, 0, 139], darkcyan: [0, 139, 139], darkgrey: [169, 169, 169], darkgreen: [0, 100, 0], darkkhaki: [189, 183, 107], darkmagenta: [139, 0, 139], darkolivegreen: [85, 107, 47], darkorange: [255, 140, 0], darkorchid: [153, 50, 204], darkred: [139, 0, 0], darksalmon: [233, 150, 122], darkviolet: [148, 0, 211], fuchsia: [255, 0, 255], gold: [255, 215, 0], green: [0, 128, 0], indigo: [75, 0, 130], khaki: [240, 230, 140], lightblue: [173, 216, 230], lightcyan: [224, 255, 255], lightgreen: [144, 238, 144], lightgrey: [211,
      211, 211], lightpink: [255, 182, 193], lightyellow: [255, 255, 224], lime: [0, 255, 0], magenta: [255, 0, 255], maroon: [128, 0, 0], navy: [0, 0, 128], olive: [128, 128, 0], orange: [255, 165, 0], pink: [255, 192, 203], purple: [128, 0, 128], violet: [128, 0, 128], red: [255, 0, 0], silver: [192, 192, 192], white: [255, 255, 255], yellow: [255, 255, 0], transparent: [255, 255, 255]}, n = ["add", "remove", "toggle"], q = {border: 1, borderBottom: 1, borderColor: 1, borderLeft: 1, borderRight: 1, borderTop: 1, borderWidth: 1, margin: 1, padding: 1};
  b.effects.animateClass = function (l, k, m,
          o) {
    if (b.isFunction(m)) {
      o = m;
      m = null
    }
    return this.queue("fx", function () {
      var p = b(this), s = p.attr("style") || " ", r = a(f.call(this)), u, v = p.attr("className");
      b.each(n, function (w, y) {
        l[y] && p[y + "Class"](l[y])
      });
      u = a(f.call(this));
      p.attr("className", v);
      p.animate(c(r, u), k, m, function () {
        b.each(n, function (w, y) {
          l[y] && p[y + "Class"](l[y])
        });
        if (typeof p.attr("style") == "object") {
          p.attr("style").cssText = "";
          p.attr("style").cssText = s
        } else
          p.attr("style", s);
        o && o.apply(this, arguments)
      });
      r = b.queue(this);
      u = r.splice(r.length - 1, 1)[0];
      r.splice(1, 0, u);
      b.dequeue(this)
    })
  };
  b.fn.extend({_addClass: b.fn.addClass, addClass: function (l, k, m, o) {
      return k ? b.effects.animateClass.apply(this, [{add: l}, k, m, o]) : this._addClass(l)
    }, _removeClass: b.fn.removeClass, removeClass: function (l, k, m, o) {
      return k ? b.effects.animateClass.apply(this, [{remove: l}, k, m, o]) : this._removeClass(l)
    }, _toggleClass: b.fn.toggleClass, toggleClass: function (l, k, m, o, p) {
      return typeof k == "boolean" || k === d ? m ? b.effects.animateClass.apply(this, [k ? {add: l} : {remove: l}, m, o, p]) : this._toggleClass(l,
              k) : b.effects.animateClass.apply(this, [{toggle: l}, k, m, o])
    }, switchClass: function (l, k, m, o, p) {
      return b.effects.animateClass.apply(this, [{add: k, remove: l}, m, o, p])
    }});
  b.extend(b.effects, {version: "1.8.10", save: function (l, k) {
      for (var m = 0; m < k.length; m++)
        k[m] !== null && l.data("ec.storage." + k[m], l[0].style[k[m]])
    }, restore: function (l, k) {
      for (var m = 0; m < k.length; m++)
        k[m] !== null && l.css(k[m], l.data("ec.storage." + k[m]))
    }, setMode: function (l, k) {
      if (k == "toggle")
        k = l.is(":hidden") ? "show" : "hide";
      return k
    }, getBaseline: function (l,
            k) {
      var m;
      switch (l[0]) {
        case "top":
          m = 0;
          break;
        case "middle":
          m = 0.5;
          break;
        case "bottom":
          m = 1;
          break;
        default:
          m = l[0] / k.height
      }
      switch (l[1]) {
        case "left":
          l = 0;
          break;
        case "center":
          l = 0.5;
          break;
        case "right":
          l = 1;
          break;
        default:
          l = l[1] / k.width
      }
      return{x: l, y: m}
    }, createWrapper: function (l) {
      if (l.parent().is(".ui-effects-wrapper"))
        return l.parent();
      var k = {width: l.outerWidth(true), height: l.outerHeight(true), "float": l.css("float")}, m = b("<div></div>").addClass("ui-effects-wrapper").css({fontSize: "100%", background: "transparent",
        border: "none", margin: 0, padding: 0});
      l.wrap(m);
      m = l.parent();
      if (l.css("position") == "static") {
        m.css({position: "relative"});
        l.css({position: "relative"})
      } else {
        b.extend(k, {position: l.css("position"), zIndex: l.css("z-index")});
        b.each(["top", "left", "bottom", "right"], function (o, p) {
          k[p] = l.css(p);
          if (isNaN(parseInt(k[p], 10)))
            k[p] = "auto"
        });
        l.css({position: "relative", top: 0, left: 0, right: "auto", bottom: "auto"})
      }
      return m.css(k).show()
    }, removeWrapper: function (l) {
      if (l.parent().is(".ui-effects-wrapper"))
        return l.parent().replaceWith(l);
      return l
    }, setTransition: function (l, k, m, o) {
      o = o || {};
      b.each(k, function (p, s) {
        unit = l.cssUnit(s);
        if (unit[0] > 0)
          o[s] = unit[0] * m + unit[1]
      });
      return o
    }});
  b.fn.extend({effect: function (l) {
      var k = h.apply(this, arguments), m = {options: k[1], duration: k[2], callback: k[3]};
      k = m.options.mode;
      var o = b.effects[l];
      if (b.fx.off || !o)
        return k ? this[k](m.duration, m.callback) : this.each(function () {
          m.callback && m.callback.call(this)
        });
      return o.call(this, m)
    }, _show: b.fn.show, show: function (l) {
      if (i(l))
        return this._show.apply(this, arguments);
      else {
        var k = h.apply(this, arguments);
        k[1].mode = "show";
        return this.effect.apply(this, k)
      }
    }, _hide: b.fn.hide, hide: function (l) {
      if (i(l))
        return this._hide.apply(this, arguments);
      else {
        var k = h.apply(this, arguments);
        k[1].mode = "hide";
        return this.effect.apply(this, k)
      }
    }, __toggle: b.fn.toggle, toggle: function (l) {
      if (i(l) || typeof l === "boolean" || b.isFunction(l))
        return this.__toggle.apply(this, arguments);
      else {
        var k = h.apply(this, arguments);
        k[1].mode = "toggle";
        return this.effect.apply(this, k)
      }
    }, cssUnit: function (l) {
      var k = this.css(l),
              m = [];
      b.each(["em", "px", "%", "pt"], function (o, p) {
        if (k.indexOf(p) > 0)
          m = [parseFloat(k), p]
      });
      return m
    }});
  b.easing.jswing = b.easing.swing;
  b.extend(b.easing, {def: "easeOutQuad", swing: function (l, k, m, o, p) {
      return b.easing[b.easing.def](l, k, m, o, p)
    }, easeInQuad: function (l, k, m, o, p) {
      return o * (k /= p) * k + m
    }, easeOutQuad: function (l, k, m, o, p) {
      return-o * (k /= p) * (k - 2) + m
    }, easeInOutQuad: function (l, k, m, o, p) {
      if ((k /= p / 2) < 1)
        return o / 2 * k * k + m;
      return-o / 2 * (--k * (k - 2) - 1) + m
    }, easeInCubic: function (l, k, m, o, p) {
      return o * (k /= p) * k * k + m
    }, easeOutCubic: function (l,
            k, m, o, p) {
      return o * ((k = k / p - 1) * k * k + 1) + m
    }, easeInOutCubic: function (l, k, m, o, p) {
      if ((k /= p / 2) < 1)
        return o / 2 * k * k * k + m;
      return o / 2 * ((k -= 2) * k * k + 2) + m
    }, easeInQuart: function (l, k, m, o, p) {
      return o * (k /= p) * k * k * k + m
    }, easeOutQuart: function (l, k, m, o, p) {
      return-o * ((k = k / p - 1) * k * k * k - 1) + m
    }, easeInOutQuart: function (l, k, m, o, p) {
      if ((k /= p / 2) < 1)
        return o / 2 * k * k * k * k + m;
      return-o / 2 * ((k -= 2) * k * k * k - 2) + m
    }, easeInQuint: function (l, k, m, o, p) {
      return o * (k /= p) * k * k * k * k + m
    }, easeOutQuint: function (l, k, m, o, p) {
      return o * ((k = k / p - 1) * k * k * k * k + 1) + m
    }, easeInOutQuint: function (l,
            k, m, o, p) {
      if ((k /= p / 2) < 1)
        return o / 2 * k * k * k * k * k + m;
      return o / 2 * ((k -= 2) * k * k * k * k + 2) + m
    }, easeInSine: function (l, k, m, o, p) {
      return-o * Math.cos(k / p * (Math.PI / 2)) + o + m
    }, easeOutSine: function (l, k, m, o, p) {
      return o * Math.sin(k / p * (Math.PI / 2)) + m
    }, easeInOutSine: function (l, k, m, o, p) {
      return-o / 2 * (Math.cos(Math.PI * k / p) - 1) + m
    }, easeInExpo: function (l, k, m, o, p) {
      return k == 0 ? m : o * Math.pow(2, 10 * (k / p - 1)) + m
    }, easeOutExpo: function (l, k, m, o, p) {
      return k == p ? m + o : o * (-Math.pow(2, -10 * k / p) + 1) + m
    }, easeInOutExpo: function (l, k, m, o, p) {
      if (k == 0)
        return m;
      if (k ==
              p)
        return m + o;
      if ((k /= p / 2) < 1)
        return o / 2 * Math.pow(2, 10 * (k - 1)) + m;
      return o / 2 * (-Math.pow(2, -10 * --k) + 2) + m
    }, easeInCirc: function (l, k, m, o, p) {
      return-o * (Math.sqrt(1 - (k /= p) * k) - 1) + m
    }, easeOutCirc: function (l, k, m, o, p) {
      return o * Math.sqrt(1 - (k = k / p - 1) * k) + m
    }, easeInOutCirc: function (l, k, m, o, p) {
      if ((k /= p / 2) < 1)
        return-o / 2 * (Math.sqrt(1 - k * k) - 1) + m;
      return o / 2 * (Math.sqrt(1 - (k -= 2) * k) + 1) + m
    }, easeInElastic: function (l, k, m, o, p) {
      l = 1.70158;
      var s = 0, r = o;
      if (k == 0)
        return m;
      if ((k /= p) == 1)
        return m + o;
      s || (s = p * 0.3);
      if (r < Math.abs(o)) {
        r = o;
        l = s / 4
      } else
        l =
                s / (2 * Math.PI) * Math.asin(o / r);
      return-(r * Math.pow(2, 10 * (k -= 1)) * Math.sin((k * p - l) * 2 * Math.PI / s)) + m
    }, easeOutElastic: function (l, k, m, o, p) {
      l = 1.70158;
      var s = 0, r = o;
      if (k == 0)
        return m;
      if ((k /= p) == 1)
        return m + o;
      s || (s = p * 0.3);
      if (r < Math.abs(o)) {
        r = o;
        l = s / 4
      } else
        l = s / (2 * Math.PI) * Math.asin(o / r);
      return r * Math.pow(2, -10 * k) * Math.sin((k * p - l) * 2 * Math.PI / s) + o + m
    }, easeInOutElastic: function (l, k, m, o, p) {
      l = 1.70158;
      var s = 0, r = o;
      if (k == 0)
        return m;
      if ((k /= p / 2) == 2)
        return m + o;
      s || (s = p * 0.3 * 1.5);
      if (r < Math.abs(o)) {
        r = o;
        l = s / 4
      } else
        l = s / (2 * Math.PI) * Math.asin(o /
                r);
      if (k < 1)
        return-0.5 * r * Math.pow(2, 10 * (k -= 1)) * Math.sin((k * p - l) * 2 * Math.PI / s) + m;
      return r * Math.pow(2, -10 * (k -= 1)) * Math.sin((k * p - l) * 2 * Math.PI / s) * 0.5 + o + m
    }, easeInBack: function (l, k, m, o, p, s) {
      if (s == d)
        s = 1.70158;
      return o * (k /= p) * k * ((s + 1) * k - s) + m
    }, easeOutBack: function (l, k, m, o, p, s) {
      if (s == d)
        s = 1.70158;
      return o * ((k = k / p - 1) * k * ((s + 1) * k + s) + 1) + m
    }, easeInOutBack: function (l, k, m, o, p, s) {
      if (s == d)
        s = 1.70158;
      if ((k /= p / 2) < 1)
        return o / 2 * k * k * (((s *= 1.525) + 1) * k - s) + m;
      return o / 2 * ((k -= 2) * k * (((s *= 1.525) + 1) * k + s) + 2) + m
    }, easeInBounce: function (l,
            k, m, o, p) {
      return o - b.easing.easeOutBounce(l, p - k, 0, o, p) + m
    }, easeOutBounce: function (l, k, m, o, p) {
      return(k /= p) < 1 / 2.75 ? o * 7.5625 * k * k + m : k < 2 / 2.75 ? o * (7.5625 * (k -= 1.5 / 2.75) * k + 0.75) + m : k < 2.5 / 2.75 ? o * (7.5625 * (k -= 2.25 / 2.75) * k + 0.9375) + m : o * (7.5625 * (k -= 2.625 / 2.75) * k + 0.984375) + m
    }, easeInOutBounce: function (l, k, m, o, p) {
      if (k < p / 2)
        return b.easing.easeInBounce(l, k * 2, 0, o, p) * 0.5 + m;
      return b.easing.easeOutBounce(l, k * 2 - p, 0, o, p) * 0.5 + o * 0.5 + m
    }})
}(jQuery);
(function (b) {
  b.effects.blind = function (d) {
    return this.queue(function () {
      var e = b(this), g = ["position", "top", "bottom", "left", "right"], f = b.effects.setMode(e, d.options.mode || "hide"), a = d.options.direction || "vertical";
      b.effects.save(e, g);
      e.show();
      var c = b.effects.createWrapper(e).css({overflow: "hidden"}), h = a == "vertical" ? "height" : "width";
      a = a == "vertical" ? c.height() : c.width();
      f == "show" && c.css(h, 0);
      var i = {};
      i[h] = f == "show" ? a : 0;
      c.animate(i, d.duration, d.options.easing, function () {
        f == "hide" && e.hide();
        b.effects.restore(e,
                g);
        b.effects.removeWrapper(e);
        d.callback && d.callback.apply(e[0], arguments);
        e.dequeue()
      })
    })
  }
})(jQuery);
(function (b) {
  b.effects.bounce = function (d) {
    return this.queue(function () {
      var e = b(this), g = ["position", "top", "bottom", "left", "right"], f = b.effects.setMode(e, d.options.mode || "effect"), a = d.options.direction || "up", c = d.options.distance || 20, h = d.options.times || 5, i = d.duration || 250;
      /show|hide/.test(f) && g.push("opacity");
      b.effects.save(e, g);
      e.show();
      b.effects.createWrapper(e);
      var j = a == "up" || a == "down" ? "top" : "left";
      a = a == "up" || a == "left" ? "pos" : "neg";
      c = d.options.distance || (j == "top" ? e.outerHeight({margin: true}) / 3 : e.outerWidth({margin: true}) /
              3);
      if (f == "show")
        e.css("opacity", 0).css(j, a == "pos" ? -c : c);
      if (f == "hide")
        c /= h * 2;
      f != "hide" && h--;
      if (f == "show") {
        var n = {opacity: 1};
        n[j] = (a == "pos" ? "+=" : "-=") + c;
        e.animate(n, i / 2, d.options.easing);
        c /= 2;
        h--
      }
      for (n = 0; n < h; n++) {
        var q = {}, l = {};
        q[j] = (a == "pos" ? "-=" : "+=") + c;
        l[j] = (a == "pos" ? "+=" : "-=") + c;
        e.animate(q, i / 2, d.options.easing).animate(l, i / 2, d.options.easing);
        c = f == "hide" ? c * 2 : c / 2
      }
      if (f == "hide") {
        n = {opacity: 0};
        n[j] = (a == "pos" ? "-=" : "+=") + c;
        e.animate(n, i / 2, d.options.easing, function () {
          e.hide();
          b.effects.restore(e, g);
          b.effects.removeWrapper(e);
          d.callback && d.callback.apply(this, arguments)
        })
      } else {
        q = {};
        l = {};
        q[j] = (a == "pos" ? "-=" : "+=") + c;
        l[j] = (a == "pos" ? "+=" : "-=") + c;
        e.animate(q, i / 2, d.options.easing).animate(l, i / 2, d.options.easing, function () {
          b.effects.restore(e, g);
          b.effects.removeWrapper(e);
          d.callback && d.callback.apply(this, arguments)
        })
      }
      e.queue("fx", function () {
        e.dequeue()
      });
      e.dequeue()
    })
  }
})(jQuery);
(function (b) {
  b.effects.clip = function (d) {
    return this.queue(function () {
      var e = b(this), g = ["position", "top", "bottom", "left", "right", "height", "width"], f = b.effects.setMode(e, d.options.mode || "hide"), a = d.options.direction || "vertical";
      b.effects.save(e, g);
      e.show();
      var c = b.effects.createWrapper(e).css({overflow: "hidden"});
      c = e[0].tagName == "IMG" ? c : e;
      var h = {size: a == "vertical" ? "height" : "width", position: a == "vertical" ? "top" : "left"};
      a = a == "vertical" ? c.height() : c.width();
      if (f == "show") {
        c.css(h.size, 0);
        c.css(h.position,
                a / 2)
      }
      var i = {};
      i[h.size] = f == "show" ? a : 0;
      i[h.position] = f == "show" ? 0 : a / 2;
      c.animate(i, {queue: false, duration: d.duration, easing: d.options.easing, complete: function () {
          f == "hide" && e.hide();
          b.effects.restore(e, g);
          b.effects.removeWrapper(e);
          d.callback && d.callback.apply(e[0], arguments);
          e.dequeue()
        }})
    })
  }
})(jQuery);
(function (b) {
  b.effects.drop = function (d) {
    return this.queue(function () {
      var e = b(this), g = ["position", "top", "bottom", "left", "right", "opacity"], f = b.effects.setMode(e, d.options.mode || "hide"), a = d.options.direction || "left";
      b.effects.save(e, g);
      e.show();
      b.effects.createWrapper(e);
      var c = a == "up" || a == "down" ? "top" : "left";
      a = a == "up" || a == "left" ? "pos" : "neg";
      var h = d.options.distance || (c == "top" ? e.outerHeight({margin: true}) / 2 : e.outerWidth({margin: true}) / 2);
      if (f == "show")
        e.css("opacity", 0).css(c, a == "pos" ? -h : h);
      var i = {opacity: f ==
                "show" ? 1 : 0};
      i[c] = (f == "show" ? a == "pos" ? "+=" : "-=" : a == "pos" ? "-=" : "+=") + h;
      e.animate(i, {queue: false, duration: d.duration, easing: d.options.easing, complete: function () {
          f == "hide" && e.hide();
          b.effects.restore(e, g);
          b.effects.removeWrapper(e);
          d.callback && d.callback.apply(this, arguments);
          e.dequeue()
        }})
    })
  }
})(jQuery);
(function (b) {
  b.effects.explode = function (d) {
    return this.queue(function () {
      var e = d.options.pieces ? Math.round(Math.sqrt(d.options.pieces)) : 3, g = d.options.pieces ? Math.round(Math.sqrt(d.options.pieces)) : 3;
      d.options.mode = d.options.mode == "toggle" ? b(this).is(":visible") ? "hide" : "show" : d.options.mode;
      var f = b(this).show().css("visibility", "hidden"), a = f.offset();
      a.top -= parseInt(f.css("marginTop"), 10) || 0;
      a.left -= parseInt(f.css("marginLeft"), 10) || 0;
      for (var c = f.outerWidth(true), h = f.outerHeight(true), i = 0; i < e; i++)
        for (var j =
                0; j < g; j++)
          f.clone().appendTo("body").wrap("<div></div>").css({position: "absolute", visibility: "visible", left: -j * (c / g), top: -i * (h / e)}).parent().addClass("ui-effects-explode").css({position: "absolute", overflow: "hidden", width: c / g, height: h / e, left: a.left + j * (c / g) + (d.options.mode == "show" ? (j - Math.floor(g / 2)) * (c / g) : 0), top: a.top + i * (h / e) + (d.options.mode == "show" ? (i - Math.floor(e / 2)) * (h / e) : 0), opacity: d.options.mode == "show" ? 0 : 1}).animate({left: a.left + j * (c / g) + (d.options.mode == "show" ? 0 : (j - Math.floor(g / 2)) * (c / g)), top: a.top +
                    i * (h / e) + (d.options.mode == "show" ? 0 : (i - Math.floor(e / 2)) * (h / e)), opacity: d.options.mode == "show" ? 1 : 0}, d.duration || 500);
      setTimeout(function () {
        d.options.mode == "show" ? f.css({visibility: "visible"}) : f.css({visibility: "visible"}).hide();
        d.callback && d.callback.apply(f[0]);
        f.dequeue();
        b("div.ui-effects-explode").remove()
      }, d.duration || 500)
    })
  }
})(jQuery);
(function (b) {
  b.effects.fade = function (d) {
    return this.queue(function () {
      var e = b(this), g = b.effects.setMode(e, d.options.mode || "hide");
      e.animate({opacity: g}, {queue: false, duration: d.duration, easing: d.options.easing, complete: function () {
          d.callback && d.callback.apply(this, arguments);
          e.dequeue()
        }})
    })
  }
})(jQuery);
(function (b) {
  b.effects.fold = function (d) {
    return this.queue(function () {
      var e = b(this), g = ["position", "top", "bottom", "left", "right"], f = b.effects.setMode(e, d.options.mode || "hide"), a = d.options.size || 15, c = !!d.options.horizFirst, h = d.duration ? d.duration / 2 : b.fx.speeds._default / 2;
      b.effects.save(e, g);
      e.show();
      var i = b.effects.createWrapper(e).css({overflow: "hidden"}), j = f == "show" != c, n = j ? ["width", "height"] : ["height", "width"];
      j = j ? [i.width(), i.height()] : [i.height(), i.width()];
      var q = /([0-9]+)%/.exec(a);
      if (q)
        a = parseInt(q[1],
                10) / 100 * j[f == "hide" ? 0 : 1];
      if (f == "show")
        i.css(c ? {height: 0, width: a} : {height: a, width: 0});
      c = {};
      q = {};
      c[n[0]] = f == "show" ? j[0] : a;
      q[n[1]] = f == "show" ? j[1] : 0;
      i.animate(c, h, d.options.easing).animate(q, h, d.options.easing, function () {
        f == "hide" && e.hide();
        b.effects.restore(e, g);
        b.effects.removeWrapper(e);
        d.callback && d.callback.apply(e[0], arguments);
        e.dequeue()
      })
    })
  }
})(jQuery);
(function (b) {
  b.effects.highlight = function (d) {
    return this.queue(function () {
      var e = b(this), g = ["backgroundImage", "backgroundColor", "opacity"], f = b.effects.setMode(e, d.options.mode || "show"), a = {backgroundColor: e.css("backgroundColor")};
      if (f == "hide")
        a.opacity = 0;
      b.effects.save(e, g);
      e.show().css({backgroundImage: "none", backgroundColor: d.options.color || "#ffff99"}).animate(a, {queue: false, duration: d.duration, easing: d.options.easing, complete: function () {
          f == "hide" && e.hide();
          b.effects.restore(e, g);
          f == "show" && !b.support.opacity &&
                  this.style.removeAttribute("filter");
          d.callback && d.callback.apply(this, arguments);
          e.dequeue()
        }})
    })
  }
})(jQuery);
(function (b) {
  b.effects.pulsate = function (d) {
    return this.queue(function () {
      var e = b(this), g = b.effects.setMode(e, d.options.mode || "show");
      times = (d.options.times || 5) * 2 - 1;
      duration = d.duration ? d.duration / 2 : b.fx.speeds._default / 2;
      isVisible = e.is(":visible");
      animateTo = 0;
      if (!isVisible) {
        e.css("opacity", 0).show();
        animateTo = 1
      }
      if (g == "hide" && isVisible || g == "show" && !isVisible)
        times--;
      for (g = 0; g < times; g++) {
        e.animate({opacity: animateTo}, duration, d.options.easing);
        animateTo = (animateTo + 1) % 2
      }
      e.animate({opacity: animateTo}, duration,
              d.options.easing, function () {
                animateTo == 0 && e.hide();
                d.callback && d.callback.apply(this, arguments)
              });
      e.queue("fx", function () {
        e.dequeue()
      }).dequeue()
    })
  }
})(jQuery);
(function (b) {
  b.effects.puff = function (d) {
    return this.queue(function () {
      var e = b(this), g = b.effects.setMode(e, d.options.mode || "hide"), f = parseInt(d.options.percent, 10) || 150, a = f / 100, c = {height: e.height(), width: e.width()};
      b.extend(d.options, {fade: true, mode: g, percent: g == "hide" ? f : 100, from: g == "hide" ? c : {height: c.height * a, width: c.width * a}});
      e.effect("scale", d.options, d.duration, d.callback);
      e.dequeue()
    })
  };
  b.effects.scale = function (d) {
    return this.queue(function () {
      var e = b(this), g = b.extend(true, {}, d.options), f = b.effects.setMode(e,
              d.options.mode || "effect"), a = parseInt(d.options.percent, 10) || (parseInt(d.options.percent, 10) == 0 ? 0 : f == "hide" ? 0 : 100), c = d.options.direction || "both", h = d.options.origin;
      if (f != "effect") {
        g.origin = h || ["middle", "center"];
        g.restore = true
      }
      h = {height: e.height(), width: e.width()};
      e.from = d.options.from || (f == "show" ? {height: 0, width: 0} : h);
      a = {y: c != "horizontal" ? a / 100 : 1, x: c != "vertical" ? a / 100 : 1};
      e.to = {height: h.height * a.y, width: h.width * a.x};
      if (d.options.fade) {
        if (f == "show") {
          e.from.opacity = 0;
          e.to.opacity = 1
        }
        if (f == "hide") {
          e.from.opacity =
                  1;
          e.to.opacity = 0
        }
      }
      g.from = e.from;
      g.to = e.to;
      g.mode = f;
      e.effect("size", g, d.duration, d.callback);
      e.dequeue()
    })
  };
  b.effects.size = function (d) {
    return this.queue(function () {
      var e = b(this), g = ["position", "top", "bottom", "left", "right", "width", "height", "overflow", "opacity"], f = ["position", "top", "bottom", "left", "right", "overflow", "opacity"], a = ["width", "height", "overflow"], c = ["fontSize"], h = ["borderTopWidth", "borderBottomWidth", "paddingTop", "paddingBottom"], i = ["borderLeftWidth", "borderRightWidth", "paddingLeft", "paddingRight"],
              j = b.effects.setMode(e, d.options.mode || "effect"), n = d.options.restore || false, q = d.options.scale || "both", l = d.options.origin, k = {height: e.height(), width: e.width()};
      e.from = d.options.from || k;
      e.to = d.options.to || k;
      if (l) {
        l = b.effects.getBaseline(l, k);
        e.from.top = (k.height - e.from.height) * l.y;
        e.from.left = (k.width - e.from.width) * l.x;
        e.to.top = (k.height - e.to.height) * l.y;
        e.to.left = (k.width - e.to.width) * l.x
      }
      var m = {from: {y: e.from.height / k.height, x: e.from.width / k.width}, to: {y: e.to.height / k.height, x: e.to.width / k.width}};
      if (q == "box" || q == "both") {
        if (m.from.y != m.to.y) {
          g = g.concat(h);
          e.from = b.effects.setTransition(e, h, m.from.y, e.from);
          e.to = b.effects.setTransition(e, h, m.to.y, e.to)
        }
        if (m.from.x != m.to.x) {
          g = g.concat(i);
          e.from = b.effects.setTransition(e, i, m.from.x, e.from);
          e.to = b.effects.setTransition(e, i, m.to.x, e.to)
        }
      }
      if (q == "content" || q == "both")
        if (m.from.y != m.to.y) {
          g = g.concat(c);
          e.from = b.effects.setTransition(e, c, m.from.y, e.from);
          e.to = b.effects.setTransition(e, c, m.to.y, e.to)
        }
      b.effects.save(e, n ? g : f);
      e.show();
      b.effects.createWrapper(e);
      e.css("overflow", "hidden").css(e.from);
      if (q == "content" || q == "both") {
        h = h.concat(["marginTop", "marginBottom"]).concat(c);
        i = i.concat(["marginLeft", "marginRight"]);
        a = g.concat(h).concat(i);
        e.find("*[width]").each(function () {
          child = b(this);
          n && b.effects.save(child, a);
          var o = {height: child.height(), width: child.width()};
          child.from = {height: o.height * m.from.y, width: o.width * m.from.x};
          child.to = {height: o.height * m.to.y, width: o.width * m.to.x};
          if (m.from.y != m.to.y) {
            child.from = b.effects.setTransition(child, h, m.from.y, child.from);
            child.to = b.effects.setTransition(child, h, m.to.y, child.to)
          }
          if (m.from.x != m.to.x) {
            child.from = b.effects.setTransition(child, i, m.from.x, child.from);
            child.to = b.effects.setTransition(child, i, m.to.x, child.to)
          }
          child.css(child.from);
          child.animate(child.to, d.duration, d.options.easing, function () {
            n && b.effects.restore(child, a)
          })
        })
      }
      e.animate(e.to, {queue: false, duration: d.duration, easing: d.options.easing, complete: function () {
          e.to.opacity === 0 && e.css("opacity", e.from.opacity);
          j == "hide" && e.hide();
          b.effects.restore(e,
                  n ? g : f);
          b.effects.removeWrapper(e);
          d.callback && d.callback.apply(this, arguments);
          e.dequeue()
        }})
    })
  }
})(jQuery);
(function (b) {
  b.effects.shake = function (d) {
    return this.queue(function () {
      var e = b(this), g = ["position", "top", "bottom", "left", "right"];
      b.effects.setMode(e, d.options.mode || "effect");
      var f = d.options.direction || "left", a = d.options.distance || 20, c = d.options.times || 3, h = d.duration || d.options.duration || 140;
      b.effects.save(e, g);
      e.show();
      b.effects.createWrapper(e);
      var i = f == "up" || f == "down" ? "top" : "left", j = f == "up" || f == "left" ? "pos" : "neg";
      f = {};
      var n = {}, q = {};
      f[i] = (j == "pos" ? "-=" : "+=") + a;
      n[i] = (j == "pos" ? "+=" : "-=") + a * 2;
      q[i] =
              (j == "pos" ? "-=" : "+=") + a * 2;
      e.animate(f, h, d.options.easing);
      for (a = 1; a < c; a++)
        e.animate(n, h, d.options.easing).animate(q, h, d.options.easing);
      e.animate(n, h, d.options.easing).animate(f, h / 2, d.options.easing, function () {
        b.effects.restore(e, g);
        b.effects.removeWrapper(e);
        d.callback && d.callback.apply(this, arguments)
      });
      e.queue("fx", function () {
        e.dequeue()
      });
      e.dequeue()
    })
  }
})(jQuery);
(function (b) {
  b.effects.slide = function (d) {
    return this.queue(function () {
      var e = b(this), g = ["position", "top", "bottom", "left", "right"], f = b.effects.setMode(e, d.options.mode || "show"), a = d.options.direction || "left";
      b.effects.save(e, g);
      e.show();
      b.effects.createWrapper(e).css({overflow: "hidden"});
      var c = a == "up" || a == "down" ? "top" : "left";
      a = a == "up" || a == "left" ? "pos" : "neg";
      var h = d.options.distance || (c == "top" ? e.outerHeight({margin: true}) : e.outerWidth({margin: true}));
      if (f == "show")
        e.css(c, a == "pos" ? isNaN(h) ? "-" + h : -h : h);
      var i = {};
      i[c] = (f == "show" ? a == "pos" ? "+=" : "-=" : a == "pos" ? "-=" : "+=") + h;
      e.animate(i, {queue: false, duration: d.duration, easing: d.options.easing, complete: function () {
          f == "hide" && e.hide();
          b.effects.restore(e, g);
          b.effects.removeWrapper(e);
          d.callback && d.callback.apply(this, arguments);
          e.dequeue()
        }})
    })
  }
})(jQuery);
(function (b) {
  b.effects.transfer = function (d) {
    return this.queue(function () {
      var e = b(this), g = b(d.options.to), f = g.offset();
      g = {top: f.top, left: f.left, height: g.innerHeight(), width: g.innerWidth()};
      f = e.offset();
      var a = b('<div class="ui-effects-transfer"></div>').appendTo(document.body).addClass(d.options.className).css({top: f.top, left: f.left, height: e.innerHeight(), width: e.innerWidth(), position: "absolute"}).animate(g, d.duration, d.options.easing, function () {
        a.remove();
        d.callback && d.callback.apply(e[0], arguments);
        e.dequeue()
      })
    })
  }
})(jQuery);
(function (b) {
  b.widget("ui.accordion", {options: {active: 0, animated: "slide", autoHeight: true, clearStyle: false, collapsible: false, event: "click", fillSpace: false, header: "> li > :first-child,> :not(li):even", icons: {header: "ui-icon-triangle-1-e", headerSelected: "ui-icon-triangle-1-s"}, navigation: false, navigationFilter: function () {
        return this.href.toLowerCase() === location.href.toLowerCase()
      }}, _create: function () {
      var d = this, e = d.options;
      d.running = 0;
      d.element.addClass("ui-accordion ui-widget ui-helper-reset").children("li").addClass("ui-accordion-li-fix");
      d.headers =
              d.element.find(e.header).addClass("ui-accordion-header ui-helper-reset ui-state-default ui-corner-all").bind("mouseenter.accordion", function () {
        e.disabled || b(this).addClass("ui-state-hover")
      }).bind("mouseleave.accordion", function () {
        e.disabled || b(this).removeClass("ui-state-hover")
      }).bind("focus.accordion", function () {
        e.disabled || b(this).addClass("ui-state-focus")
      }).bind("blur.accordion", function () {
        e.disabled || b(this).removeClass("ui-state-focus")
      });
      d.headers.next().addClass("ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom");
      if (e.navigation) {
        var g = d.element.find("a").filter(e.navigationFilter).eq(0);
        if (g.length) {
          var f = g.closest(".ui-accordion-header");
          d.active = f.length ? f : g.closest(".ui-accordion-content").prev()
        }
      }
      d.active = d._findActive(d.active || e.active).addClass("ui-state-default ui-state-active").toggleClass("ui-corner-all").toggleClass("ui-corner-top");
      d.active.next().addClass("ui-accordion-content-active");
      d._createIcons();
      d.resize();
      d.element.attr("role", "tablist");
      d.headers.attr("role", "tab").bind("keydown.accordion",
              function (a) {
                return d._keydown(a)
              }).next().attr("role", "tabpanel");
      d.headers.not(d.active || "").attr({"aria-expanded": "false", tabIndex: -1}).next().hide();
      d.active.length ? d.active.attr({"aria-expanded": "true", tabIndex: 0}) : d.headers.eq(0).attr("tabIndex", 0);
      b.browser.safari || d.headers.find("a").attr("tabIndex", -1);
      e.event && d.headers.bind(e.event.split(" ").join(".accordion ") + ".accordion", function (a) {
        d._clickHandler.call(d, a, this);
        a.preventDefault()
      })
    }, _createIcons: function () {
      var d = this.options;
      if (d.icons) {
        b("<span></span>").addClass("ui-icon " +
                d.icons.header).prependTo(this.headers);
        this.active.children(".ui-icon").toggleClass(d.icons.header).toggleClass(d.icons.headerSelected);
        this.element.addClass("ui-accordion-icons")
      }
    }, _destroyIcons: function () {
      this.headers.children(".ui-icon").remove();
      this.element.removeClass("ui-accordion-icons")
    }, destroy: function () {
      var d = this.options;
      this.element.removeClass("ui-accordion ui-widget ui-helper-reset").removeAttr("role");
      this.headers.unbind(".accordion").removeClass("ui-accordion-header ui-accordion-disabled ui-helper-reset ui-state-default ui-corner-all ui-state-active ui-state-disabled ui-corner-top").removeAttr("role").removeAttr("aria-expanded").removeAttr("tabIndex");
      this.headers.find("a").removeAttr("tabIndex");
      this._destroyIcons();
      var e = this.headers.next().css("display", "").removeAttr("role").removeClass("ui-helper-reset ui-widget-content ui-corner-bottom ui-accordion-content ui-accordion-content-active ui-accordion-disabled ui-state-disabled");
      if (d.autoHeight || d.fillHeight)
        e.css("height", "");
      return b.Widget.prototype.destroy.call(this)
    }, _setOption: function (d, e) {
      b.Widget.prototype._setOption.apply(this, arguments);
      d == "active" && this.activate(e);
      if (d == "icons") {
        this._destroyIcons();
        e && this._createIcons()
      }
      if (d == "disabled")
        this.headers.add(this.headers.next())[e ? "addClass" : "removeClass"]("ui-accordion-disabled ui-state-disabled")
    }, _keydown: function (d) {
      if (!(this.options.disabled || d.altKey || d.ctrlKey)) {
        var e = b.ui.keyCode, g = this.headers.length, f = this.headers.index(d.target), a = false;
        switch (d.keyCode) {
          case e.RIGHT:
          case e.DOWN:
            a = this.headers[(f + 1) % g];
            break;
          case e.LEFT:
          case e.UP:
            a = this.headers[(f - 1 + g) % g];
            break;
          case e.SPACE:
          case e.ENTER:
            this._clickHandler({target: d.target}, d.target);
            d.preventDefault()
        }
        if (a) {
          b(d.target).attr("tabIndex", -1);
          b(a).attr("tabIndex", 0);
          a.focus();
          return false
        }
        return true
      }
    }, resize: function () {
      var d = this.options, e;
      if (d.fillSpace) {
        if (b.browser.msie) {
          var g = this.element.parent().css("overflow");
          this.element.parent().css("overflow", "hidden")
        }
        e = this.element.parent().height();
        b.browser.msie && this.element.parent().css("overflow", g);
        this.headers.each(function () {
          e -= b(this).outerHeight(true)
        });
        this.headers.next().each(function () {
          b(this).height(Math.max(0, e - b(this).innerHeight() +
                  b(this).height()))
        }).css("overflow", "auto")
      } else if (d.autoHeight) {
        e = 0;
        this.headers.next().each(function () {
          e = Math.max(e, b(this).height("").height())
        }).height(e)
      }
      return this
    }, activate: function (d) {
      this.options.active = d;
      d = this._findActive(d)[0];
      this._clickHandler({target: d}, d);
      return this
    }, _findActive: function (d) {
      return d ? typeof d === "number" ? this.headers.filter(":eq(" + d + ")") : this.headers.not(this.headers.not(d)) : d === false ? b([]) : this.headers.filter(":eq(0)")
    }, _clickHandler: function (d, e) {
      var g = this.options;
      if (!g.disabled)
        if (d.target) {
          d = b(d.currentTarget || e);
          e = d[0] === this.active[0];
          g.active = g.collapsible && e ? false : this.headers.index(d);
          if (!(this.running || !g.collapsible && e)) {
            var f = this.active;
            i = d.next();
            c = this.active.next();
            h = {options: g, newHeader: e && g.collapsible ? b([]) : d, oldHeader: this.active, newContent: e && g.collapsible ? b([]) : i, oldContent: c};
            var a = this.headers.index(this.active[0]) > this.headers.index(d[0]);
            this.active = e ? b([]) : d;
            this._toggle(i, c, h, e, a);
            f.removeClass("ui-state-active ui-corner-top").addClass("ui-state-default ui-corner-all").children(".ui-icon").removeClass(g.icons.headerSelected).addClass(g.icons.header);
            if (!e) {
              d.removeClass("ui-state-default ui-corner-all").addClass("ui-state-active ui-corner-top").children(".ui-icon").removeClass(g.icons.header).addClass(g.icons.headerSelected);
              d.next().addClass("ui-accordion-content-active")
            }
          }
        } else if (g.collapsible) {
          this.active.removeClass("ui-state-active ui-corner-top").addClass("ui-state-default ui-corner-all").children(".ui-icon").removeClass(g.icons.headerSelected).addClass(g.icons.header);
          this.active.next().addClass("ui-accordion-content-active");
          var c = this.active.next(),
                  h = {options: g, newHeader: b([]), oldHeader: g.active, newContent: b([]), oldContent: c}, i = this.active = b([]);
          this._toggle(i, c, h)
        }
    }, _toggle: function (d, e, g, f, a) {
      var c = this, h = c.options;
      c.toShow = d;
      c.toHide = e;
      c.data = g;
      var i = function () {
        if (c)
          return c._completed.apply(c, arguments)
      };
      c._trigger("changestart", null, c.data);
      c.running = e.size() === 0 ? d.size() : e.size();
      if (h.animated) {
        g = {};
        g = h.collapsible && f ? {toShow: b([]), toHide: e, complete: i, down: a, autoHeight: h.autoHeight || h.fillSpace} : {toShow: d, toHide: e, complete: i, down: a, autoHeight: h.autoHeight ||
                  h.fillSpace};
        if (!h.proxied)
          h.proxied = h.animated;
        if (!h.proxiedDuration)
          h.proxiedDuration = h.duration;
        h.animated = b.isFunction(h.proxied) ? h.proxied(g) : h.proxied;
        h.duration = b.isFunction(h.proxiedDuration) ? h.proxiedDuration(g) : h.proxiedDuration;
        f = b.ui.accordion.animations;
        var j = h.duration, n = h.animated;
        if (n && !f[n] && !b.easing[n])
          n = "slide";
        f[n] || (f[n] = function (q) {
          this.slide(q, {easing: n, duration: j || 700})
        });
        f[n](g)
      } else {
        if (h.collapsible && f)
          d.toggle();
        else {
          e.hide();
          d.show()
        }
        i(true)
      }
      e.prev().attr({"aria-expanded": "false",
        tabIndex: -1}).blur();
      d.prev().attr({"aria-expanded": "true", tabIndex: 0}).focus()
    }, _completed: function (d) {
      this.running = d ? 0 : --this.running;
      if (!this.running) {
        this.options.clearStyle && this.toShow.add(this.toHide).css({height: "", overflow: ""});
        this.toHide.removeClass("ui-accordion-content-active");
        if (this.toHide.length)
          this.toHide.parent()[0].className = this.toHide.parent()[0].className;
        this._trigger("change", null, this.data)
      }
    }});
  b.extend(b.ui.accordion, {version: "1.8.10", animations: {slide: function (d, e) {
        d =
                b.extend({easing: "swing", duration: 300}, d, e);
        if (d.toHide.size())
          if (d.toShow.size()) {
            var g = d.toShow.css("overflow"), f = 0, a = {}, c = {}, h;
            e = d.toShow;
            h = e[0].style.width;
            e.width(parseInt(e.parent().width(), 10) - parseInt(e.css("paddingLeft"), 10) - parseInt(e.css("paddingRight"), 10) - (parseInt(e.css("borderLeftWidth"), 10) || 0) - (parseInt(e.css("borderRightWidth"), 10) || 0));
            b.each(["height", "paddingTop", "paddingBottom"], function (i, j) {
              c[j] = "hide";
              i = ("" + b.css(d.toShow[0], j)).match(/^([\d+-.]+)(.*)$/);
              a[j] = {value: i[1],
                unit: i[2] || "px"}
            });
            d.toShow.css({height: 0, overflow: "hidden"}).show();
            d.toHide.filter(":hidden").each(d.complete).end().filter(":visible").animate(c, {step: function (i, j) {
                if (j.prop == "height")
                  f = j.end - j.start === 0 ? 0 : (j.now - j.start) / (j.end - j.start);
                d.toShow[0].style[j.prop] = f * a[j.prop].value + a[j.prop].unit
              }, duration: d.duration, easing: d.easing, complete: function () {
                d.autoHeight || d.toShow.css("height", "");
                d.toShow.css({width: h, overflow: g});
                d.complete()
              }})
          } else
            d.toHide.animate({height: "hide", paddingTop: "hide",
              paddingBottom: "hide"}, d);
        else
          d.toShow.animate({height: "show", paddingTop: "show", paddingBottom: "show"}, d)
      }, bounceslide: function (d) {
        this.slide(d, {easing: d.down ? "easeOutBounce" : "swing", duration: d.down ? 1E3 : 200})
      }}})
})(jQuery);
(function (b) {
  var d = 0;
  b.widget("ui.autocomplete", {options: {appendTo: "body", delay: 300, minLength: 1, position: {my: "left top", at: "left bottom", collision: "none"}, source: null}, pending: 0, _create: function () {
      var e = this, g = this.element[0].ownerDocument, f;
      this.element.addClass("ui-autocomplete-input").attr("autocomplete", "off").attr({role: "textbox", "aria-autocomplete": "list", "aria-haspopup": "true"}).bind("keydown.autocomplete", function (a) {
        if (!(e.options.disabled || e.element.attr("readonly"))) {
          f = false;
          var c = b.ui.keyCode;
          switch (a.keyCode) {
            case c.PAGE_UP:
              e._move("previousPage", a);
              break;
            case c.PAGE_DOWN:
              e._move("nextPage", a);
              break;
            case c.UP:
              e._move("previous", a);
              a.preventDefault();
              break;
            case c.DOWN:
              e._move("next", a);
              a.preventDefault();
              break;
            case c.ENTER:
            case c.NUMPAD_ENTER:
              if (e.menu.active) {
                f = true;
                a.preventDefault()
              }
            case c.TAB:
              if (!e.menu.active)
                return;
              e.menu.select(a);
              break;
            case c.ESCAPE:
              e.element.val(e.term);
              e.close(a);
              break;
            default:
              clearTimeout(e.searching);
              e.searching = setTimeout(function () {
                if (e.term != e.element.val()) {
                  e.selectedItem =
                          null;
                  e.search(null, a)
                }
              }, e.options.delay);
              break
          }
        }
      }).bind("keypress.autocomplete", function (a) {
        if (f) {
          f = false;
          a.preventDefault()
        }
      }).bind("focus.autocomplete", function () {
        if (!e.options.disabled) {
          e.selectedItem = null;
          e.previous = e.element.val()
        }
      }).bind("blur.autocomplete", function (a) {
        if (!e.options.disabled) {
          clearTimeout(e.searching);
          e.closing = setTimeout(function () {
            e.close(a);
            e._change(a)
          }, 150)
        }
      });
      this._initSource();
      this.response = function () {
        return e._response.apply(e, arguments)
      };
      this.menu = b("<ul></ul>").addClass("ui-autocomplete").appendTo(b(this.options.appendTo ||
              "body", g)[0]).mousedown(function (a) {
        var c = e.menu.element[0];
        b(a.target).closest(".ui-menu-item").length || setTimeout(function () {
          b(document).one("mousedown", function (h) {
            h.target !== e.element[0] && h.target !== c && !b.ui.contains(c, h.target) && e.close()
          })
        }, 1);
        setTimeout(function () {
          clearTimeout(e.closing)
        }, 13)
      }).menu({focus: function (a, c) {
          c = c.item.data("item.autocomplete");
          false !== e._trigger("focus", a, {item: c}) && /^key/.test(a.originalEvent.type) && e.element.val(c.value)
        }, selected: function (a, c) {
          var h = c.item.data("item.autocomplete"),
                  i = e.previous;
          if (e.element[0] !== g.activeElement) {
            e.element.focus();
            e.previous = i;
            setTimeout(function () {
              e.previous = i;
              e.selectedItem = h
            }, 1)
          }
          false !== e._trigger("select", a, {item: h}) && e.element.val(h.value);
          e.term = e.element.val();
          e.close(a);
          e.selectedItem = h
        }, blur: function () {
          e.menu.element.is(":visible") && e.element.val() !== e.term && e.element.val(e.term)
        }}).zIndex(this.element.zIndex() + 1).css({top: 0, left: 0}).hide().data("menu");
      b.fn.bgiframe && this.menu.element.bgiframe()
    }, destroy: function () {
      this.element.removeClass("ui-autocomplete-input").removeAttr("autocomplete").removeAttr("role").removeAttr("aria-autocomplete").removeAttr("aria-haspopup");
      this.menu.element.remove();
      b.Widget.prototype.destroy.call(this)
    }, _setOption: function (e, g) {
      b.Widget.prototype._setOption.apply(this, arguments);
      e === "source" && this._initSource();
      if (e === "appendTo")
        this.menu.element.appendTo(b(g || "body", this.element[0].ownerDocument)[0]);
      e === "disabled" && g && this.xhr && this.xhr.abort()
    }, _initSource: function () {
      var e = this, g, f;
      if (b.isArray(this.options.source)) {
        g = this.options.source;
        this.source = function (a, c) {
          c(b.ui.autocomplete.filter(g, a.term))
        }
      } else if (typeof this.options.source ===
              "string") {
        f = this.options.source;
        this.source = function (a, c) {
          e.xhr && e.xhr.abort();
          e.xhr = b.ajax({url: f, data: a, dataType: "json", autocompleteRequest: ++d, success: function (h) {
              this.autocompleteRequest === d && c(h)
            }, error: function () {
              this.autocompleteRequest === d && c([])
            }})
        }
      } else
        this.source = this.options.source
    }, search: function (e, g) {
      e = e != null ? e : this.element.val();
      this.term = this.element.val();
      if (e.length < this.options.minLength)
        return this.close(g);
      clearTimeout(this.closing);
      if (this._trigger("search", g) !== false)
        return this._search(e)
    },
    _search: function (e) {
      this.pending++;
      this.element.addClass("ui-autocomplete-loading");
      this.source({term: e}, this.response)
    }, _response: function (e) {
      if (!this.options.disabled && e && e.length) {
        e = this._normalize(e);
        this._suggest(e);
        this._trigger("open")
      } else
        this.close();
      this.pending--;
      this.pending || this.element.removeClass("ui-autocomplete-loading")
    }, close: function (e) {
      clearTimeout(this.closing);
      if (this.menu.element.is(":visible")) {
        this.menu.element.hide();
        this.menu.deactivate();
        this._trigger("close", e)
      }
    }, _change: function (e) {
      this.previous !==
              this.element.val() && this._trigger("change", e, {item: this.selectedItem})
    }, _normalize: function (e) {
      if (e.length && e[0].label && e[0].value)
        return e;
      return b.map(e, function (g) {
        if (typeof g === "string")
          return{label: g, value: g};
        return b.extend({label: g.label || g.value, value: g.value || g.label}, g)
      })
    }, _suggest: function (e) {
      var g = this.menu.element.empty().zIndex(this.element.zIndex() + 1);
      this._renderMenu(g, e);
      this.menu.deactivate();
      this.menu.refresh();
      g.show();
      this._resizeMenu();
      g.position(b.extend({of: this.element}, this.options.position))
    },
    _resizeMenu: function () {
      var e = this.menu.element;
      e.outerWidth(Math.max(e.width("").outerWidth(), this.element.outerWidth()))
    }, _renderMenu: function (e, g) {
      var f = this;
      b.each(g, function (a, c) {
        f._renderItem(e, c)
      })
    }, _renderItem: function (e, g) {
      return b("<li></li>").data("item.autocomplete", g).append(b("<a></a>").text(g.label)).appendTo(e)
    }, _move: function (e, g) {
      if (this.menu.element.is(":visible"))
        if (this.menu.first() && /^previous/.test(e) || this.menu.last() && /^next/.test(e)) {
          this.element.val(this.term);
          this.menu.deactivate()
        } else
          this.menu[e](g);
      else
        this.search(null, g)
    }, widget: function () {
      return this.menu.element
    }});
  b.extend(b.ui.autocomplete, {escapeRegex: function (e) {
      return e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&")
    }, filter: function (e, g) {
      var f = new RegExp(b.ui.autocomplete.escapeRegex(g), "i");
      return b.grep(e, function (a) {
        return f.test(a.label || a.value || a)
      })
    }})
})(jQuery);
(function (b) {
  b.widget("ui.menu", {_create: function () {
      var d = this;
      this.element.addClass("ui-menu ui-widget ui-widget-content ui-corner-all").attr({role: "listbox", "aria-activedescendant": "ui-active-menuitem"}).click(function (e) {
        if (b(e.target).closest(".ui-menu-item a").length) {
          e.preventDefault();
          d.select(e)
        }
      });
      this.refresh()
    }, refresh: function () {
      var d = this;
      this.element.children("li:not(.ui-menu-item):has(a)").addClass("ui-menu-item").attr("role", "menuitem").children("a").addClass("ui-corner-all").attr("tabindex",
              -1).mouseenter(function (e) {
        d.activate(e, b(this).parent())
      }).mouseleave(function () {
        d.deactivate()
      })
    }, activate: function (d, e) {
      this.deactivate();
      if (this.hasScroll()) {
        var g = e.offset().top - this.element.offset().top, f = this.element.attr("scrollTop"), a = this.element.height();
        if (g < 0)
          this.element.attr("scrollTop", f + g);
        else
          g >= a && this.element.attr("scrollTop", f + g - a + e.height())
      }
      this.active = e.eq(0).children("a").addClass("ui-state-hover").attr("id", "ui-active-menuitem").end();
      this._trigger("focus", d, {item: e})
    },
    deactivate: function () {
      if (this.active) {
        this.active.children("a").removeClass("ui-state-hover").removeAttr("id");
        this._trigger("blur");
        this.active = null
      }
    }, next: function (d) {
      this.move("next", ".ui-menu-item:first", d)
    }, previous: function (d) {
      this.move("prev", ".ui-menu-item:last", d)
    }, first: function () {
      return this.active && !this.active.prevAll(".ui-menu-item").length
    }, last: function () {
      return this.active && !this.active.nextAll(".ui-menu-item").length
    }, move: function (d, e, g) {
      if (this.active) {
        d = this.active[d + "All"](".ui-menu-item").eq(0);
        d.length ? this.activate(g, d) : this.activate(g, this.element.children(e))
      } else
        this.activate(g, this.element.children(e))
    }, nextPage: function (d) {
      if (this.hasScroll())
        if (!this.active || this.last())
          this.activate(d, this.element.children(".ui-menu-item:first"));
        else {
          var e = this.active.offset().top, g = this.element.height(), f = this.element.children(".ui-menu-item").filter(function () {
            var a = b(this).offset().top - e - g + b(this).height();
            return a < 10 && a > -10
          });
          f.length || (f = this.element.children(".ui-menu-item:last"));
          this.activate(d,
                  f)
        }
      else
        this.activate(d, this.element.children(".ui-menu-item").filter(!this.active || this.last() ? ":first" : ":last"))
    }, previousPage: function (d) {
      if (this.hasScroll())
        if (!this.active || this.first())
          this.activate(d, this.element.children(".ui-menu-item:last"));
        else {
          var e = this.active.offset().top, g = this.element.height();
          result = this.element.children(".ui-menu-item").filter(function () {
            var f = b(this).offset().top - e + g - b(this).height();
            return f < 10 && f > -10
          });
          result.length || (result = this.element.children(".ui-menu-item:first"));
          this.activate(d, result)
        }
      else
        this.activate(d, this.element.children(".ui-menu-item").filter(!this.active || this.first() ? ":last" : ":first"))
    }, hasScroll: function () {
      return this.element.height() < this.element.attr("scrollHeight")
    }, select: function (d) {
      this._trigger("selected", d, {item: this.active})
    }})
})(jQuery);
(function (b) {
  var d, e = function (f) {
    b(":ui-button", f.target.form).each(function () {
      var a = b(this).data("button");
      setTimeout(function () {
        a.refresh()
      }, 1)
    })
  }, g = function (f) {
    var a = f.name, c = f.form, h = b([]);
    if (a)
      h = c ? b(c).find("[name='" + a + "']") : b("[name='" + a + "']", f.ownerDocument).filter(function () {
        return!this.form
      });
    return h
  };
  b.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",
              e);
      if (typeof this.options.disabled !== "boolean")
        this.options.disabled = this.element.attr("disabled");
      this._determineButtonType();
      this.hasTitle = !!this.buttonElement.attr("title");
      var f = this, a = this.options, c = this.type === "checkbox" || this.type === "radio", h = "ui-state-hover" + (!c ? " ui-state-active" : "");
      if (a.label === null)
        a.label = this.buttonElement.html();
      if (this.element.is(":disabled"))
        a.disabled = true;
      this.buttonElement.addClass("ui-button ui-widget ui-state-default ui-corner-all").attr("role", "button").bind("mouseenter.button",
              function () {
                if (!a.disabled) {
                  b(this).addClass("ui-state-hover");
                  this === d && b(this).addClass("ui-state-active")
                }
              }).bind("mouseleave.button", function () {
        a.disabled || b(this).removeClass(h)
      }).bind("focus.button", function () {
        b(this).addClass("ui-state-focus")
      }).bind("blur.button", function () {
        b(this).removeClass("ui-state-focus")
      });
      c && this.element.bind("change.button", function () {
        f.refresh()
      });
      if (this.type === "checkbox")
        this.buttonElement.bind("click.button", function () {
          if (a.disabled)
            return false;
          b(this).toggleClass("ui-state-active");
          f.buttonElement.attr("aria-pressed", f.element[0].checked)
        });
      else if (this.type === "radio")
        this.buttonElement.bind("click.button", function () {
          if (a.disabled)
            return false;
          b(this).addClass("ui-state-active");
          f.buttonElement.attr("aria-pressed", true);
          var i = f.element[0];
          g(i).not(i).map(function () {
            return b(this).button("widget")[0]
          }).removeClass("ui-state-active").attr("aria-pressed", false)
        });
      else {
        this.buttonElement.bind("mousedown.button", function () {
          if (a.disabled)
            return false;
          b(this).addClass("ui-state-active");
          d = this;
          b(document).one("mouseup", function () {
            d = null
          })
        }).bind("mouseup.button", function () {
          if (a.disabled)
            return false;
          b(this).removeClass("ui-state-active")
        }).bind("keydown.button", function (i) {
          if (a.disabled)
            return false;
          if (i.keyCode == b.ui.keyCode.SPACE || i.keyCode == b.ui.keyCode.ENTER)
            b(this).addClass("ui-state-active")
        }).bind("keyup.button", function () {
          b(this).removeClass("ui-state-active")
        });
        this.buttonElement.is("a") && this.buttonElement.keyup(function (i) {
          i.keyCode === b.ui.keyCode.SPACE && b(this).click()
        })
      }
      this._setOption("disabled",
              a.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") {
        this.buttonElement = this.element.parents().last().find("label[for=" + this.element.attr("id") + "]");
        this.element.addClass("ui-helper-hidden-accessible");
        var f = this.element.is(":checked");
        f && this.buttonElement.addClass("ui-state-active");
        this.buttonElement.attr("aria-pressed", f)
      } 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");
      b.Widget.prototype.destroy.call(this)
    }, _setOption: function (f, a) {
      b.Widget.prototype._setOption.apply(this, arguments);
      if (f === "disabled")
        a ? this.element.attr("disabled", true) : this.element.removeAttr("disabled");
      this._resetButton()
    }, refresh: function () {
      var f = this.element.is(":disabled");
      f !== this.options.disabled && this._setOption("disabled", f);
      if (this.type === "radio")
        g(this.element[0]).each(function () {
          b(this).is(":checked") ? b(this).button("widget").addClass("ui-state-active").attr("aria-pressed",
                  true) : b(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 f = 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"),
                a = b("<span></span>").addClass("ui-button-text").html(this.options.label).appendTo(f.empty()).text(), c = this.options.icons, h = c.primary && c.secondary, i = [];
        if (c.primary || c.secondary) {
          i.push("ui-button-text-icon" + (h ? "s" : c.primary ? "-primary" : "-secondary"));
          c.primary && f.prepend("<span class='ui-button-icon-primary ui-icon " + c.primary + "'></span>");
          c.secondary && f.append("<span class='ui-button-icon-secondary ui-icon " + c.secondary + "'></span>");
          if (!this.options.text) {
            i.push(h ? "ui-button-icons-only" : "ui-button-icon-only");
            f.removeClass("ui-button-text-icons ui-button-text-icon-primary ui-button-text-icon-secondary");
            this.hasTitle || f.attr("title", a)
          }
        } else
          i.push("ui-button-text-only");
        f.addClass(i.join(" "))
      }
    }});
  b.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 (f, a) {
      f === "disabled" && this.buttons.button("option", f, a);
      b.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 b(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 b(this).button("widget")[0]
      }).removeClass("ui-corner-left ui-corner-right").end().button("destroy");
      b.Widget.prototype.destroy.call(this)
    }})
})(jQuery);
(function (b, d) {
  function e() {
    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};
    b.extend(this._defaults, this.regional[""]);
    this.dpDiv = b('<div id="' + this._mainDivId + '" class="ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all"></div>')
  }
  function g(a, c) {
    b.extend(a, c);
    for (var h in c)
      if (c[h] ==
              null || c[h] == d)
        a[h] = c[h];
    return a
  }
  b.extend(b.ui, {datepicker: {version: "1.8.10"}});
  var f = (new Date).getTime();
  b.extend(e.prototype, {markerClassName: "hasDatepicker", log: function () {
      this.debug && console.log.apply("", arguments)
    }, _widgetDatepicker: function () {
      return this.dpDiv
    }, setDefaults: function (a) {
      g(this._defaults, a || {});
      return this
    }, _attachDatepicker: function (a, c) {
      var h = null;
      for (var i in this._defaults) {
        var j = a.getAttribute("date:" + i);
        if (j) {
          h = h || {};
          try {
            h[i] = eval(j)
          } catch (n) {
            h[i] = j
          }
        }
      }
      i = a.nodeName.toLowerCase();
      j = i == "div" || i == "span";
      if (!a.id) {
        this.uuid += 1;
        a.id = "dp" + this.uuid
      }
      var q = this._newInst(b(a), j);
      q.settings = b.extend({}, c || {}, h || {});
      if (i == "input")
        this._connectDatepicker(a, q);
      else
        j && this._inlineDatepicker(a, q)
    }, _newInst: function (a, c) {
      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: c, dpDiv: !c ? this.dpDiv : b('<div class="' + this._inlineClass + ' ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all"></div>')}
    },
    _connectDatepicker: function (a, c) {
      var h = b(a);
      c.append = b([]);
      c.trigger = b([]);
      if (!h.hasClass(this.markerClassName)) {
        this._attachments(h, c);
        h.addClass(this.markerClassName).keydown(this._doKeyDown).keypress(this._doKeyPress).keyup(this._doKeyUp).bind("setData.datepicker", function (i, j, n) {
          c.settings[j] = n
        }).bind("getData.datepicker", function (i, j) {
          return this._get(c, j)
        });
        this._autoSize(c);
        b.data(a, "datepicker", c)
      }
    }, _attachments: function (a, c) {
      var h = this._get(c, "appendText"), i = this._get(c, "isRTL");
      c.append &&
              c.append.remove();
      if (h) {
        c.append = b('<span class="' + this._appendClass + '">' + h + "</span>");
        a[i ? "before" : "after"](c.append)
      }
      a.unbind("focus", this._showDatepicker);
      c.trigger && c.trigger.remove();
      h = this._get(c, "showOn");
      if (h == "focus" || h == "both")
        a.focus(this._showDatepicker);
      if (h == "button" || h == "both") {
        h = this._get(c, "buttonText");
        var j = this._get(c, "buttonImage");
        c.trigger = b(this._get(c, "buttonImageOnly") ? b("<img/>").addClass(this._triggerClass).attr({src: j, alt: h, title: h}) : b('<button type="button"></button>').addClass(this._triggerClass).html(j ==
                "" ? h : b("<img/>").attr({src: j, alt: h, title: h})));
        a[i ? "before" : "after"](c.trigger);
        c.trigger.click(function () {
          b.datepicker._datepickerShowing && b.datepicker._lastInput == a[0] ? b.datepicker._hideDatepicker() : b.datepicker._showDatepicker(a[0]);
          return false
        })
      }
    }, _autoSize: function (a) {
      if (this._get(a, "autoSize") && !a.inline) {
        var c = new Date(2009, 11, 20), h = this._get(a, "dateFormat");
        if (h.match(/[DM]/)) {
          var i = function (j) {
            for (var n = 0, q = 0, l = 0; l < j.length; l++)
              if (j[l].length > n) {
                n = j[l].length;
                q = l
              }
            return q
          };
          c.setMonth(i(this._get(a,
                  h.match(/MM/) ? "monthNames" : "monthNamesShort")));
          c.setDate(i(this._get(a, h.match(/DD/) ? "dayNames" : "dayNamesShort")) + 20 - c.getDay())
        }
        a.input.attr("size", this._formatDate(a, c).length)
      }
    }, _inlineDatepicker: function (a, c) {
      var h = b(a);
      if (!h.hasClass(this.markerClassName)) {
        h.addClass(this.markerClassName).append(c.dpDiv).bind("setData.datepicker", function (i, j, n) {
          c.settings[j] = n
        }).bind("getData.datepicker", function (i, j) {
          return this._get(c, j)
        });
        b.data(a, "datepicker", c);
        this._setDate(c, this._getDefaultDate(c),
                true);
        this._updateDatepicker(c);
        this._updateAlternate(c);
        c.dpDiv.show()
      }
    }, _dialogDatepicker: function (a, c, h, i, j) {
      a = this._dialogInst;
      if (!a) {
        this.uuid += 1;
        this._dialogInput = b('<input type="text" id="' + ("dp" + this.uuid) + '" style="position: absolute; top: -100px; width: 0px; z-index: -10;"/>');
        this._dialogInput.keydown(this._doKeyDown);
        b("body").append(this._dialogInput);
        a = this._dialogInst = this._newInst(this._dialogInput, false);
        a.settings = {};
        b.data(this._dialogInput[0], "datepicker", a)
      }
      g(a.settings, i || {});
      c = c && c.constructor == Date ? this._formatDate(a, c) : c;
      this._dialogInput.val(c);
      this._pos = j ? j.length ? j : [j.pageX, j.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 = h;
      this._inDialog = true;
      this.dpDiv.addClass(this._dialogClass);
      this._showDatepicker(this._dialogInput[0]);
      b.blockUI && b.blockUI(this.dpDiv);
      b.data(this._dialogInput[0], "datepicker", a);
      return this
    }, _destroyDatepicker: function (a) {
      var c = b(a), h = b.data(a, "datepicker");
      if (c.hasClass(this.markerClassName)) {
        var i = a.nodeName.toLowerCase();
        b.removeData(a, "datepicker");
        if (i == "input") {
          h.append.remove();
          h.trigger.remove();
          c.removeClass(this.markerClassName).unbind("focus", this._showDatepicker).unbind("keydown", this._doKeyDown).unbind("keypress", this._doKeyPress).unbind("keyup",
                  this._doKeyUp)
        } else if (i == "div" || i == "span")
          c.removeClass(this.markerClassName).empty()
      }
    }, _enableDatepicker: function (a) {
      var c = b(a), h = b.data(a, "datepicker");
      if (c.hasClass(this.markerClassName)) {
        var i = a.nodeName.toLowerCase();
        if (i == "input") {
          a.disabled = false;
          h.trigger.filter("button").each(function () {
            this.disabled = false
          }).end().filter("img").css({opacity: "1.0", cursor: ""})
        } else if (i == "div" || i == "span")
          c.children("." + this._inlineClass).children().removeClass("ui-state-disabled");
        this._disabledInputs = b.map(this._disabledInputs,
                function (j) {
                  return j == a ? null : j
                })
      }
    }, _disableDatepicker: function (a) {
      var c = b(a), h = b.data(a, "datepicker");
      if (c.hasClass(this.markerClassName)) {
        var i = a.nodeName.toLowerCase();
        if (i == "input") {
          a.disabled = true;
          h.trigger.filter("button").each(function () {
            this.disabled = true
          }).end().filter("img").css({opacity: "0.5", cursor: "default"})
        } else if (i == "div" || i == "span")
          c.children("." + this._inlineClass).children().addClass("ui-state-disabled");
        this._disabledInputs = b.map(this._disabledInputs, function (j) {
          return j == a ? null :
                  j
        });
        this._disabledInputs[this._disabledInputs.length] = a
      }
    }, _isDisabledDatepicker: function (a) {
      if (!a)
        return false;
      for (var c = 0; c < this._disabledInputs.length; c++)
        if (this._disabledInputs[c] == a)
          return true;
      return false
    }, _getInst: function (a) {
      try {
        return b.data(a, "datepicker")
      } catch (c) {
        throw"Missing instance data for this datepicker";
      }
    }, _optionDatepicker: function (a, c, h) {
      var i = this._getInst(a);
      if (arguments.length == 2 && typeof c == "string")
        return c == "defaults" ? b.extend({}, b.datepicker._defaults) : i ? c == "all" ? b.extend({},
                i.settings) : this._get(i, c) : null;
      var j = c || {};
      if (typeof c == "string") {
        j = {};
        j[c] = h
      }
      if (i) {
        this._curInst == i && this._hideDatepicker();
        var n = this._getDateDatepicker(a, true);
        g(i.settings, j);
        this._attachments(b(a), i);
        this._autoSize(i);
        this._setDateDatepicker(a, n);
        this._updateDatepicker(i)
      }
    }, _changeDatepicker: function (a, c, h) {
      this._optionDatepicker(a, c, h)
    }, _refreshDatepicker: function (a) {
      (a = this._getInst(a)) && this._updateDatepicker(a)
    }, _setDateDatepicker: function (a, c) {
      if (a = this._getInst(a)) {
        this._setDate(a, c);
        this._updateDatepicker(a);
        this._updateAlternate(a)
      }
    }, _getDateDatepicker: function (a, c) {
      (a = this._getInst(a)) && !a.inline && this._setDateFromField(a, c);
      return a ? this._getDate(a) : null
    }, _doKeyDown: function (a) {
      var c = b.datepicker._getInst(a.target), h = true, i = c.dpDiv.is(".ui-datepicker-rtl");
      c._keyEvent = true;
      if (b.datepicker._datepickerShowing)
        switch (a.keyCode) {
          case 9:
            b.datepicker._hideDatepicker();
            h = false;
            break;
          case 13:
            h = b("td." + b.datepicker._dayOverClass + ":not(." + b.datepicker._currentClass + ")", c.dpDiv);
            h[0] ?
                    b.datepicker._selectDay(a.target, c.selectedMonth, c.selectedYear, h[0]) : b.datepicker._hideDatepicker();
            return false;
          case 27:
            b.datepicker._hideDatepicker();
            break;
          case 33:
            b.datepicker._adjustDate(a.target, a.ctrlKey ? -b.datepicker._get(c, "stepBigMonths") : -b.datepicker._get(c, "stepMonths"), "M");
            break;
          case 34:
            b.datepicker._adjustDate(a.target, a.ctrlKey ? +b.datepicker._get(c, "stepBigMonths") : +b.datepicker._get(c, "stepMonths"), "M");
            break;
          case 35:
            if (a.ctrlKey || a.metaKey)
              b.datepicker._clearDate(a.target);
            h = a.ctrlKey ||
                    a.metaKey;
            break;
          case 36:
            if (a.ctrlKey || a.metaKey)
              b.datepicker._gotoToday(a.target);
            h = a.ctrlKey || a.metaKey;
            break;
          case 37:
            if (a.ctrlKey || a.metaKey)
              b.datepicker._adjustDate(a.target, i ? +1 : -1, "D");
            h = a.ctrlKey || a.metaKey;
            if (a.originalEvent.altKey)
              b.datepicker._adjustDate(a.target, a.ctrlKey ? -b.datepicker._get(c, "stepBigMonths") : -b.datepicker._get(c, "stepMonths"), "M");
            break;
          case 38:
            if (a.ctrlKey || a.metaKey)
              b.datepicker._adjustDate(a.target, -7, "D");
            h = a.ctrlKey || a.metaKey;
            break;
          case 39:
            if (a.ctrlKey || a.metaKey)
              b.datepicker._adjustDate(a.target,
                      i ? -1 : +1, "D");
            h = a.ctrlKey || a.metaKey;
            if (a.originalEvent.altKey)
              b.datepicker._adjustDate(a.target, a.ctrlKey ? +b.datepicker._get(c, "stepBigMonths") : +b.datepicker._get(c, "stepMonths"), "M");
            break;
          case 40:
            if (a.ctrlKey || a.metaKey)
              b.datepicker._adjustDate(a.target, +7, "D");
            h = a.ctrlKey || a.metaKey;
            break;
          default:
            h = false
        }
      else if (a.keyCode == 36 && a.ctrlKey)
        b.datepicker._showDatepicker(this);
      else
        h = false;
      if (h) {
        a.preventDefault();
        a.stopPropagation()
      }
    }, _doKeyPress: function (a) {
      var c = b.datepicker._getInst(a.target);
      if (b.datepicker._get(c,
              "constrainInput")) {
        c = b.datepicker._possibleChars(b.datepicker._get(c, "dateFormat"));
        var h = String.fromCharCode(a.charCode == d ? a.keyCode : a.charCode);
        return a.ctrlKey || a.metaKey || h < " " || !c || c.indexOf(h) > -1
      }
    }, _doKeyUp: function (a) {
      a = b.datepicker._getInst(a.target);
      if (a.input.val() != a.lastVal)
        try {
          if (b.datepicker.parseDate(b.datepicker._get(a, "dateFormat"), a.input ? a.input.val() : null, b.datepicker._getFormatConfig(a))) {
            b.datepicker._setDateFromField(a);
            b.datepicker._updateAlternate(a);
            b.datepicker._updateDatepicker(a)
          }
        } catch (c) {
          b.datepicker.log(c)
        }
      return true
    },
    _showDatepicker: function (a) {
      a = a.target || a;
      if (a.nodeName.toLowerCase() != "input")
        a = b("input", a.parentNode)[0];
      if (!(b.datepicker._isDisabledDatepicker(a) || b.datepicker._lastInput == a)) {
        var c = b.datepicker._getInst(a);
        b.datepicker._curInst && b.datepicker._curInst != c && b.datepicker._curInst.dpDiv.stop(true, true);
        var h = b.datepicker._get(c, "beforeShow");
        g(c.settings, h ? h.apply(a, [a, c]) : {});
        c.lastVal = null;
        b.datepicker._lastInput = a;
        b.datepicker._setDateFromField(c);
        if (b.datepicker._inDialog)
          a.value = "";
        if (!b.datepicker._pos) {
          b.datepicker._pos =
                  b.datepicker._findPos(a);
          b.datepicker._pos[1] += a.offsetHeight
        }
        var i = false;
        b(a).parents().each(function () {
          i |= b(this).css("position") == "fixed";
          return!i
        });
        if (i && b.browser.opera) {
          b.datepicker._pos[0] -= document.documentElement.scrollLeft;
          b.datepicker._pos[1] -= document.documentElement.scrollTop
        }
        h = {left: b.datepicker._pos[0], top: b.datepicker._pos[1]};
        b.datepicker._pos = null;
        c.dpDiv.empty();
        c.dpDiv.css({position: "absolute", display: "block", top: "-1000px"});
        b.datepicker._updateDatepicker(c);
        h = b.datepicker._checkOffset(c,
                h, i);
        c.dpDiv.css({position: b.datepicker._inDialog && b.blockUI ? "static" : i ? "fixed" : "absolute", display: "none", left: h.left + "px", top: h.top + "px"});
        if (!c.inline) {
          h = b.datepicker._get(c, "showAnim");
          var j = b.datepicker._get(c, "duration"), n = function () {
            b.datepicker._datepickerShowing = true;
            var q = c.dpDiv.find("iframe.ui-datepicker-cover");
            if (q.length) {
              var l = b.datepicker._getBorders(c.dpDiv);
              q.css({left: -l[0], top: -l[1], width: c.dpDiv.outerWidth(), height: c.dpDiv.outerHeight()})
            }
          };
          c.dpDiv.zIndex(b(a).zIndex() + 1);
          b.effects &&
                  b.effects[h] ? c.dpDiv.show(h, b.datepicker._get(c, "showOptions"), j, n) : c.dpDiv[h || "show"](h ? j : null, n);
          if (!h || !j)
            n();
          c.input.is(":visible") && !c.input.is(":disabled") && c.input.focus();
          b.datepicker._curInst = c
        }
      }
    }, _updateDatepicker: function (a) {
      var c = this, h = b.datepicker._getBorders(a.dpDiv);
      a.dpDiv.empty().append(this._generateHTML(a));
      var i = a.dpDiv.find("iframe.ui-datepicker-cover");
      i.length && i.css({left: -h[0], top: -h[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 () {
                b(this).removeClass("ui-state-hover");
                this.className.indexOf("ui-datepicker-prev") != -1 && b(this).removeClass("ui-datepicker-prev-hover");
                this.className.indexOf("ui-datepicker-next") != -1 && b(this).removeClass("ui-datepicker-next-hover")
              }).bind("mouseover", function () {
        if (!c._isDisabledDatepicker(a.inline ? a.dpDiv.parent()[0] : a.input[0])) {
          b(this).parents(".ui-datepicker-calendar").find("a").removeClass("ui-state-hover");
          b(this).addClass("ui-state-hover");
          this.className.indexOf("ui-datepicker-prev") !=
                  -1 && b(this).addClass("ui-datepicker-prev-hover");
          this.className.indexOf("ui-datepicker-next") != -1 && b(this).addClass("ui-datepicker-next-hover")
        }
      }).end().find("." + this._dayOverClass + " a").trigger("mouseover").end();
      h = this._getNumberOfMonths(a);
      i = h[1];
      i > 1 ? a.dpDiv.addClass("ui-datepicker-multi-" + i).css("width", 17 * i + "em") : a.dpDiv.removeClass("ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4").width("");
      a.dpDiv[(h[0] != 1 || h[1] != 1 ? "add" : "remove") + "Class"]("ui-datepicker-multi");
      a.dpDiv[(this._get(a,
              "isRTL") ? "add" : "remove") + "Class"]("ui-datepicker-rtl");
      a == b.datepicker._curInst && b.datepicker._datepickerShowing && a.input && a.input.is(":visible") && !a.input.is(":disabled") && a.input[0] != document.activeElement && a.input.focus();
      if (a.yearshtml) {
        var j = a.yearshtml;
        setTimeout(function () {
          j === a.yearshtml && a.dpDiv.find("select.ui-datepicker-year:first").replaceWith(a.yearshtml);
          j = a.yearshtml = null
        }, 0)
      }
    }, _getBorders: function (a) {
      var c = function (h) {
        return{thin: 1, medium: 2, thick: 3}[h] || h
      };
      return[parseFloat(c(a.css("border-left-width"))),
        parseFloat(c(a.css("border-top-width")))]
    }, _checkOffset: function (a, c, h) {
      var i = a.dpDiv.outerWidth(), j = a.dpDiv.outerHeight(), n = a.input ? a.input.outerWidth() : 0, q = a.input ? a.input.outerHeight() : 0, l = document.documentElement.clientWidth + b(document).scrollLeft(), k = document.documentElement.clientHeight + b(document).scrollTop();
      c.left -= this._get(a, "isRTL") ? i - n : 0;
      c.left -= h && c.left == a.input.offset().left ? b(document).scrollLeft() : 0;
      c.top -= h && c.top == a.input.offset().top + q ? b(document).scrollTop() : 0;
      c.left -= Math.min(c.left,
              c.left + i > l && l > i ? Math.abs(c.left + i - l) : 0);
      c.top -= Math.min(c.top, c.top + j > k && k > j ? Math.abs(j + q) : 0);
      return c
    }, _findPos: function (a) {
      for (var c = this._get(this._getInst(a), "isRTL"); a && (a.type == "hidden" || a.nodeType != 1 || b.expr.filters.hidden(a)); )
        a = a[c ? "previousSibling" : "nextSibling"];
      a = b(a).offset();
      return[a.left, a.top]
    }, _hideDatepicker: function (a) {
      var c = this._curInst;
      if (!(!c || a && c != b.data(a, "datepicker")))
        if (this._datepickerShowing) {
          a = this._get(c, "showAnim");
          var h = this._get(c, "duration"), i = function () {
            b.datepicker._tidyDialog(c);
            this._curInst = null
          };
          b.effects && b.effects[a] ? c.dpDiv.hide(a, b.datepicker._get(c, "showOptions"), h, i) : c.dpDiv[a == "slideDown" ? "slideUp" : a == "fadeIn" ? "fadeOut" : "hide"](a ? h : null, i);
          a || i();
          if (a = this._get(c, "onClose"))
            a.apply(c.input ? c.input[0] : null, [c.input ? c.input.val() : "", c]);
          this._datepickerShowing = false;
          this._lastInput = null;
          if (this._inDialog) {
            this._dialogInput.css({position: "absolute", left: "0", top: "-100px"});
            if (b.blockUI) {
              b.unblockUI();
              b("body").append(this.dpDiv)
            }
          }
          this._inDialog = false
        }
    }, _tidyDialog: function (a) {
      a.dpDiv.removeClass(this._dialogClass).unbind(".ui-datepicker-calendar")
    },
    _checkExternalClick: function (a) {
      if (b.datepicker._curInst) {
        a = b(a.target);
        a[0].id != b.datepicker._mainDivId && a.parents("#" + b.datepicker._mainDivId).length == 0 && !a.hasClass(b.datepicker.markerClassName) && !a.hasClass(b.datepicker._triggerClass) && b.datepicker._datepickerShowing && !(b.datepicker._inDialog && b.blockUI) && b.datepicker._hideDatepicker()
      }
    }, _adjustDate: function (a, c, h) {
      a = b(a);
      var i = this._getInst(a[0]);
      if (!this._isDisabledDatepicker(a[0])) {
        this._adjustInstDate(i, c + (h == "M" ? this._get(i, "showCurrentAtPos") :
                0), h);
        this._updateDatepicker(i)
      }
    }, _gotoToday: function (a) {
      a = b(a);
      var c = this._getInst(a[0]);
      if (this._get(c, "gotoCurrent") && c.currentDay) {
        c.selectedDay = c.currentDay;
        c.drawMonth = c.selectedMonth = c.currentMonth;
        c.drawYear = c.selectedYear = c.currentYear
      } else {
        var h = new Date;
        c.selectedDay = h.getDate();
        c.drawMonth = c.selectedMonth = h.getMonth();
        c.drawYear = c.selectedYear = h.getFullYear()
      }
      this._notifyChange(c);
      this._adjustDate(a)
    }, _selectMonthYear: function (a, c, h) {
      a = b(a);
      var i = this._getInst(a[0]);
      i._selectingMonthYear =
              false;
      i["selected" + (h == "M" ? "Month" : "Year")] = i["draw" + (h == "M" ? "Month" : "Year")] = parseInt(c.options[c.selectedIndex].value, 10);
      this._notifyChange(i);
      this._adjustDate(a)
    }, _clickMonthYear: function (a) {
      var c = this._getInst(b(a)[0]);
      c.input && c._selectingMonthYear && setTimeout(function () {
        c.input.focus()
      }, 0);
      c._selectingMonthYear = !c._selectingMonthYear
    }, _selectDay: function (a, c, h, i) {
      var j = b(a);
      if (!(b(i).hasClass(this._unselectableClass) || this._isDisabledDatepicker(j[0]))) {
        j = this._getInst(j[0]);
        j.selectedDay = j.currentDay =
                b("a", i).html();
        j.selectedMonth = j.currentMonth = c;
        j.selectedYear = j.currentYear = h;
        this._selectDate(a, this._formatDate(j, j.currentDay, j.currentMonth, j.currentYear))
      }
    }, _clearDate: function (a) {
      a = b(a);
      this._getInst(a[0]);
      this._selectDate(a, "")
    }, _selectDate: function (a, c) {
      a = this._getInst(b(a)[0]);
      c = c != null ? c : this._formatDate(a);
      a.input && a.input.val(c);
      this._updateAlternate(a);
      var h = this._get(a, "onSelect");
      if (h)
        h.apply(a.input ? a.input[0] : null, [c, 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 c = this._get(a, "altField");
      if (c) {
        var h = this._get(a, "altFormat") || this._get(a, "dateFormat"), i = this._getDate(a), j = this.formatDate(h, i, this._getFormatConfig(a));
        b(c).each(function () {
          b(this).val(j)
        })
      }
    }, 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 c =
              a.getTime();
      a.setMonth(0);
      a.setDate(1);
      return Math.floor(Math.round((c - a) / 864E5) / 7) + 1
    }, parseDate: function (a, c, h) {
      if (a == null || c == null)
        throw"Invalid arguments";
      c = typeof c == "object" ? c.toString() : c + "";
      if (c == "")
        return null;
      var i = (h ? h.shortYearCutoff : null) || this._defaults.shortYearCutoff;
      i = typeof i != "string" ? i : (new Date).getFullYear() % 100 + parseInt(i, 10);
      for (var j = (h ? h.dayNamesShort : null) || this._defaults.dayNamesShort, n = (h ? h.dayNames : null) || this._defaults.dayNames, q = (h ? h.monthNamesShort : null) || this._defaults.monthNamesShort,
              l = (h ? h.monthNames : null) || this._defaults.monthNames, k = h = -1, m = -1, o = -1, p = false, s = function (x) {
        (x = y + 1 < a.length && a.charAt(y + 1) == x) && y++;
        return x
      }, r = function (x) {
        var C = s(x);
        x = new RegExp("^\\d{1," + (x == "@" ? 14 : x == "!" ? 20 : x == "y" && C ? 4 : x == "o" ? 3 : 2) + "}");
        x = c.substring(w).match(x);
        if (!x)
          throw"Missing number at position " + w;
        w += x[0].length;
        return parseInt(x[0], 10)
      }, u = function (x, C, J) {
        x = s(x) ? J : C;
        for (C = 0; C < x.length; C++)
          if (c.substr(w, x[C].length).toLowerCase() == x[C].toLowerCase()) {
            w += x[C].length;
            return C + 1
          }
        throw"Unknown name at position " +
                w;
      }, v = function () {
        if (c.charAt(w) != a.charAt(y))
          throw"Unexpected literal at position " + w;
        w++
      }, w = 0, y = 0; y < a.length; y++)
        if (p)
          if (a.charAt(y) == "'" && !s("'"))
            p = false;
          else
            v();
        else
          switch (a.charAt(y)) {
            case "d":
              m = r("d");
              break;
            case "D":
              u("D", j, n);
              break;
            case "o":
              o = r("o");
              break;
            case "m":
              k = r("m");
              break;
            case "M":
              k = u("M", q, l);
              break;
            case "y":
              h = r("y");
              break;
            case "@":
              var B = new Date(r("@"));
              h = B.getFullYear();
              k = B.getMonth() + 1;
              m = B.getDate();
              break;
            case "!":
              B = new Date((r("!") - this._ticksTo1970) / 1E4);
              h = B.getFullYear();
              k = B.getMonth() +
                      1;
              m = B.getDate();
              break;
            case "'":
              if (s("'"))
                v();
              else
                p = true;
              break;
            default:
              v()
          }
      if (h == -1)
        h = (new Date).getFullYear();
      else if (h < 100)
        h += (new Date).getFullYear() - (new Date).getFullYear() % 100 + (h <= i ? 0 : -100);
      if (o > -1) {
        k = 1;
        m = o;
        do {
          i = this._getDaysInMonth(h, k - 1);
          if (m <= i)
            break;
          k++;
          m -= i
        } while (1)
      }
      B = this._daylightSavingAdjust(new Date(h, k - 1, m));
      if (B.getFullYear() != h || B.getMonth() + 1 != k || B.getDate() != m)
        throw"Invalid date";
      return B
    }, 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, c, h) {
      if (!c)
        return"";
      var i = (h ? h.dayNamesShort : null) || this._defaults.dayNamesShort, j = (h ? h.dayNames : null) || this._defaults.dayNames, n = (h ? h.monthNamesShort : null) || this._defaults.monthNamesShort;
      h = (h ? h.monthNames : null) || this._defaults.monthNames;
      var q = function (s) {
        (s = p + 1 < a.length &&
                a.charAt(p + 1) == s) && p++;
        return s
      }, l = function (s, r, u) {
        r = "" + r;
        if (q(s))
          for (; r.length < u; )
            r = "0" + r;
        return r
      }, k = function (s, r, u, v) {
        return q(s) ? v[r] : u[r]
      }, m = "", o = false;
      if (c)
        for (var p = 0; p < a.length; p++)
          if (o)
            if (a.charAt(p) == "'" && !q("'"))
              o = false;
            else
              m += a.charAt(p);
          else
            switch (a.charAt(p)) {
              case "d":
                m += l("d", c.getDate(), 2);
                break;
              case "D":
                m += k("D", c.getDay(), i, j);
                break;
              case "o":
                m += l("o", (c.getTime() - (new Date(c.getFullYear(), 0, 0)).getTime()) / 864E5, 3);
                break;
              case "m":
                m += l("m", c.getMonth() + 1, 2);
                break;
              case "M":
                m += k("M",
                        c.getMonth(), n, h);
                break;
              case "y":
                m += q("y") ? c.getFullYear() : (c.getYear() % 100 < 10 ? "0" : "") + c.getYear() % 100;
                break;
              case "@":
                m += c.getTime();
                break;
              case "!":
                m += c.getTime() * 1E4 + this._ticksTo1970;
                break;
              case "'":
                if (q("'"))
                  m += "'";
                else
                  o = true;
                break;
              default:
                m += a.charAt(p)
            }
      return m
    }, _possibleChars: function (a) {
      for (var c = "", h = false, i = function (n) {
        (n = j + 1 < a.length && a.charAt(j + 1) == n) && j++;
        return n
      }, j = 0; j < a.length; j++)
        if (h)
          if (a.charAt(j) == "'" && !i("'"))
            h = false;
          else
            c += a.charAt(j);
        else
          switch (a.charAt(j)) {
            case "d":
            case "m":
            case "y":
            case "@":
              c +=
                      "0123456789";
              break;
            case "D":
            case "M":
              return null;
            case "'":
              if (i("'"))
                c += "'";
              else
                h = true;
              break;
            default:
              c += a.charAt(j)
          }
      return c
    }, _get: function (a, c) {
      return a.settings[c] !== d ? a.settings[c] : this._defaults[c]
    }, _setDateFromField: function (a, c) {
      if (a.input.val() != a.lastVal) {
        var h = this._get(a, "dateFormat"), i = a.lastVal = a.input ? a.input.val() : null, j, n;
        j = n = this._getDefaultDate(a);
        var q = this._getFormatConfig(a);
        try {
          j = this.parseDate(h, i, q) || n
        } catch (l) {
          this.log(l);
          i = c ? "" : i
        }
        a.selectedDay = j.getDate();
        a.drawMonth = a.selectedMonth =
                j.getMonth();
        a.drawYear = a.selectedYear = j.getFullYear();
        a.currentDay = i ? j.getDate() : 0;
        a.currentMonth = i ? j.getMonth() : 0;
        a.currentYear = i ? j.getFullYear() : 0;
        this._adjustInstDate(a)
      }
    }, _getDefaultDate: function (a) {
      return this._restrictMinMax(a, this._determineDate(a, this._get(a, "defaultDate"), new Date))
    }, _determineDate: function (a, c, h) {
      var i = function (n) {
        var q = new Date;
        q.setDate(q.getDate() + n);
        return q
      }, j = function (n) {
        try {
          return b.datepicker.parseDate(b.datepicker._get(a, "dateFormat"), n, b.datepicker._getFormatConfig(a))
        } catch (q) {
        }
        var l =
                (n.toLowerCase().match(/^c/) ? b.datepicker._getDate(a) : null) || new Date, k = l.getFullYear(), m = l.getMonth();
        l = l.getDate();
        for (var o = /([+-]?[0-9]+)\s*(d|D|w|W|m|M|y|Y)?/g, p = o.exec(n); p; ) {
          switch (p[2] || "d") {
            case "d":
            case "D":
              l += parseInt(p[1], 10);
              break;
            case "w":
            case "W":
              l += parseInt(p[1], 10) * 7;
              break;
            case "m":
            case "M":
              m += parseInt(p[1], 10);
              l = Math.min(l, b.datepicker._getDaysInMonth(k, m));
              break;
            case "y":
            case "Y":
              k += parseInt(p[1], 10);
              l = Math.min(l, b.datepicker._getDaysInMonth(k, m));
              break
          }
          p = o.exec(n)
        }
        return new Date(k,
                m, l)
      };
      if (c = (c = c == null || c === "" ? h : typeof c == "string" ? j(c) : typeof c == "number" ? isNaN(c) ? h : i(c) : new Date(c.getTime())) && c.toString() == "Invalid Date" ? h : c) {
        c.setHours(0);
        c.setMinutes(0);
        c.setSeconds(0);
        c.setMilliseconds(0)
      }
      return this._daylightSavingAdjust(c)
    }, _daylightSavingAdjust: function (a) {
      if (!a)
        return null;
      a.setHours(a.getHours() > 12 ? a.getHours() + 2 : 0);
      return a
    }, _setDate: function (a, c, h) {
      var i = !c, j = a.selectedMonth, n = a.selectedYear;
      c = this._restrictMinMax(a, this._determineDate(a, c, new Date));
      a.selectedDay =
              a.currentDay = c.getDate();
      a.drawMonth = a.selectedMonth = a.currentMonth = c.getMonth();
      a.drawYear = a.selectedYear = a.currentYear = c.getFullYear();
      if ((j != a.selectedMonth || n != a.selectedYear) && !h)
        this._notifyChange(a);
      this._adjustInstDate(a);
      if (a.input)
        a.input.val(i ? "" : 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 c = new Date;
      c = this._daylightSavingAdjust(new Date(c.getFullYear(),
              c.getMonth(), c.getDate()));
      var h = this._get(a, "isRTL"), i = this._get(a, "showButtonPanel"), j = this._get(a, "hideIfNoPrevNext"), n = this._get(a, "navigationAsDateFormat"), q = this._getNumberOfMonths(a), l = this._get(a, "showCurrentAtPos"), k = this._get(a, "stepMonths"), m = q[0] != 1 || q[1] != 1, o = this._daylightSavingAdjust(!a.currentDay ? new Date(9999, 9, 9) : new Date(a.currentYear, a.currentMonth, a.currentDay)), p = this._getMinMaxDate(a, "min"), s = this._getMinMaxDate(a, "max");
      l = a.drawMonth - l;
      var r = a.drawYear;
      if (l < 0) {
        l += 12;
        r--
      }
      if (s) {
        var u =
                this._daylightSavingAdjust(new Date(s.getFullYear(), s.getMonth() - q[0] * q[1] + 1, s.getDate()));
        for (u = p && u < p ? p : u; this._daylightSavingAdjust(new Date(r, l, 1)) > u; ) {
          l--;
          if (l < 0) {
            l = 11;
            r--
          }
        }
      }
      a.drawMonth = l;
      a.drawYear = r;
      u = this._get(a, "prevText");
      u = !n ? u : this.formatDate(u, this._daylightSavingAdjust(new Date(r, l - k, 1)), this._getFormatConfig(a));
      u = this._canAdjustMonth(a, -1, r, l) ? '<a class="ui-datepicker-prev ui-corner-all" onclick="DP_jQuery_' + f + ".datepicker._adjustDate('#" + a.id + "', -" + k + ", 'M');\" title=\"" + u + '"><span class="ui-icon ui-icon-circle-triangle-' +
              (h ? "e" : "w") + '">' + u + "</span></a>" : j ? "" : '<a class="ui-datepicker-prev ui-corner-all ui-state-disabled" title="' + u + '"><span class="ui-icon ui-icon-circle-triangle-' + (h ? "e" : "w") + '">' + u + "</span></a>";
      var v = this._get(a, "nextText");
      v = !n ? v : this.formatDate(v, this._daylightSavingAdjust(new Date(r, l + k, 1)), this._getFormatConfig(a));
      j = this._canAdjustMonth(a, +1, r, l) ? '<a class="ui-datepicker-next ui-corner-all" onclick="DP_jQuery_' + f + ".datepicker._adjustDate('#" + a.id + "', +" + k + ", 'M');\" title=\"" + v + '"><span class="ui-icon ui-icon-circle-triangle-' +
              (h ? "w" : "e") + '">' + v + "</span></a>" : j ? "" : '<a class="ui-datepicker-next ui-corner-all ui-state-disabled" title="' + v + '"><span class="ui-icon ui-icon-circle-triangle-' + (h ? "w" : "e") + '">' + v + "</span></a>";
      k = this._get(a, "currentText");
      v = this._get(a, "gotoCurrent") && a.currentDay ? o : c;
      k = !n ? k : this.formatDate(k, v, this._getFormatConfig(a));
      n = !a.inline ? '<button type="button" class="ui-datepicker-close ui-state-default ui-priority-primary ui-corner-all" onclick="DP_jQuery_' + f + '.datepicker._hideDatepicker();">' + this._get(a,
              "closeText") + "</button>" : "";
      i = i ? '<div class="ui-datepicker-buttonpane ui-widget-content">' + (h ? n : "") + (this._isInRange(a, v) ? '<button type="button" class="ui-datepicker-current ui-state-default ui-priority-secondary ui-corner-all" onclick="DP_jQuery_' + f + ".datepicker._gotoToday('#" + a.id + "');\">" + k + "</button>" : "") + (h ? "" : n) + "</div>" : "";
      n = parseInt(this._get(a, "firstDay"), 10);
      n = isNaN(n) ? 0 : n;
      k = this._get(a, "showWeek");
      v = this._get(a, "dayNames");
      this._get(a, "dayNamesShort");
      var w = this._get(a, "dayNamesMin"), y =
              this._get(a, "monthNames"), B = this._get(a, "monthNamesShort"), x = this._get(a, "beforeShowDay"), C = this._get(a, "showOtherMonths"), J = this._get(a, "selectOtherMonths");
      this._get(a, "calculateWeek");
      for (var M = this._getDefaultDate(a), K = "", G = 0; G < q[0]; G++) {
        for (var N = "", H = 0; H < q[1]; H++) {
          var O = this._daylightSavingAdjust(new Date(r, l, a.selectedDay)), A = " ui-corner-all", D = "";
          if (m) {
            D += '<div class="ui-datepicker-group';
            if (q[1] > 1)
              switch (H) {
                case 0:
                  D += " ui-datepicker-group-first";
                  A = " ui-corner-" + (h ? "right" : "left");
                  break;
                case q[1] -
                        1:
                  D += " ui-datepicker-group-last";
                  A = " ui-corner-" + (h ? "left" : "right");
                  break;
                default:
                  D += " ui-datepicker-group-middle";
                  A = "";
                  break
              }
            D += '">'
          }
          D += '<div class="ui-datepicker-header ui-widget-header ui-helper-clearfix' + A + '">' + (/all|left/.test(A) && G == 0 ? h ? j : u : "") + (/all|right/.test(A) && G == 0 ? h ? u : j : "") + this._generateMonthYearHeader(a, l, r, p, s, G > 0 || H > 0, y, B) + '</div><table class="ui-datepicker-calendar"><thead><tr>';
          var E = k ? '<th class="ui-datepicker-week-col">' + this._get(a, "weekHeader") + "</th>" : "";
          for (A = 0; A < 7; A++) {
            var z =
                    (A + n) % 7;
            E += "<th" + ((A + n + 6) % 7 >= 5 ? ' class="ui-datepicker-week-end"' : "") + '><span title="' + v[z] + '">' + w[z] + "</span></th>"
          }
          D += E + "</tr></thead><tbody>";
          E = this._getDaysInMonth(r, l);
          if (r == a.selectedYear && l == a.selectedMonth)
            a.selectedDay = Math.min(a.selectedDay, E);
          A = (this._getFirstDayOfMonth(r, l) - n + 7) % 7;
          E = m ? 6 : Math.ceil((A + E) / 7);
          z = this._daylightSavingAdjust(new Date(r, l, 1 - A));
          for (var P = 0; P < E; P++) {
            D += "<tr>";
            var Q = !k ? "" : '<td class="ui-datepicker-week-col">' + this._get(a, "calculateWeek")(z) + "</td>";
            for (A = 0; A < 7; A++) {
              var I =
                      x ? x.apply(a.input ? a.input[0] : null, [z]) : [true, ""], F = z.getMonth() != l, L = F && !J || !I[0] || p && z < p || s && z > s;
              Q += '<td class="' + ((A + n + 6) % 7 >= 5 ? " ui-datepicker-week-end" : "") + (F ? " ui-datepicker-other-month" : "") + (z.getTime() == O.getTime() && l == a.selectedMonth && a._keyEvent || M.getTime() == z.getTime() && M.getTime() == O.getTime() ? " " + this._dayOverClass : "") + (L ? " " + this._unselectableClass + " ui-state-disabled" : "") + (F && !C ? "" : " " + I[1] + (z.getTime() == o.getTime() ? " " + this._currentClass : "") + (z.getTime() == c.getTime() ? " ui-datepicker-today" :
                      "")) + '"' + ((!F || C) && I[2] ? ' title="' + I[2] + '"' : "") + (L ? "" : ' onclick="DP_jQuery_' + f + ".datepicker._selectDay('#" + a.id + "'," + z.getMonth() + "," + z.getFullYear() + ', this);return false;"') + ">" + (F && !C ? "&#xa0;" : L ? '<span class="ui-state-default">' + z.getDate() + "</span>" : '<a class="ui-state-default' + (z.getTime() == c.getTime() ? " ui-state-highlight" : "") + (z.getTime() == o.getTime() ? " ui-state-active" : "") + (F ? " ui-priority-secondary" : "") + '" href="#">' + z.getDate() + "</a>") + "</td>";
              z.setDate(z.getDate() + 1);
              z = this._daylightSavingAdjust(z)
            }
            D +=
                    Q + "</tr>"
          }
          l++;
          if (l > 11) {
            l = 0;
            r++
          }
          D += "</tbody></table>" + (m ? "</div>" + (q[0] > 0 && H == q[1] - 1 ? '<div class="ui-datepicker-row-break"></div>' : "") : "");
          N += D
        }
        K += N
      }
      K += i + (b.browser.msie && parseInt(b.browser.version, 10) < 7 && !a.inline ? '<iframe src="javascript:false;" class="ui-datepicker-cover" frameborder="0"></iframe>' : "");
      a._keyEvent = false;
      return K
    }, _generateMonthYearHeader: function (a, c, h, i, j, n, q, l) {
      var k = this._get(a, "changeMonth"), m = this._get(a, "changeYear"), o = this._get(a, "showMonthAfterYear"), p = '<div class="ui-datepicker-title">',
              s = "";
      if (n || !k)
        s += '<span class="ui-datepicker-month">' + q[c] + "</span>";
      else {
        q = i && i.getFullYear() == h;
        var r = j && j.getFullYear() == h;
        s += '<select class="ui-datepicker-month" onchange="DP_jQuery_' + f + ".datepicker._selectMonthYear('#" + a.id + "', this, 'M');\" onclick=\"DP_jQuery_" + f + ".datepicker._clickMonthYear('#" + a.id + "');\">";
        for (var u = 0; u < 12; u++)
          if ((!q || u >= i.getMonth()) && (!r || u <= j.getMonth()))
            s += '<option value="' + u + '"' + (u == c ? ' selected="selected"' : "") + ">" + l[u] + "</option>";
        s += "</select>"
      }
      o || (p += s + (n || !(k &&
              m) ? "&#xa0;" : ""));
      a.yearshtml = "";
      if (n || !m)
        p += '<span class="ui-datepicker-year">' + h + "</span>";
      else {
        l = this._get(a, "yearRange").split(":");
        var v = (new Date).getFullYear();
        q = function (w) {
          w = w.match(/c[+-].*/) ? h + parseInt(w.substring(1), 10) : w.match(/[+-].*/) ? v + parseInt(w, 10) : parseInt(w, 10);
          return isNaN(w) ? v : w
        };
        c = q(l[0]);
        l = Math.max(c, q(l[1] || ""));
        c = i ? Math.max(c, i.getFullYear()) : c;
        l = j ? Math.min(l, j.getFullYear()) : l;
        for (a.yearshtml += '<select class="ui-datepicker-year" onchange="DP_jQuery_' + f + ".datepicker._selectMonthYear('#" +
                a.id + "', this, 'Y');\" onclick=\"DP_jQuery_" + f + ".datepicker._clickMonthYear('#" + a.id + "');\">"; c <= l; c++)
          a.yearshtml += '<option value="' + c + '"' + (c == h ? ' selected="selected"' : "") + ">" + c + "</option>";
        a.yearshtml += "</select>";
        if (b.browser.mozilla)
          p += '<select class="ui-datepicker-year"><option value="' + h + '" selected="selected">' + h + "</option></select>";
        else {
          p += a.yearshtml;
          a.yearshtml = null
        }
      }
      p += this._get(a, "yearSuffix");
      if (o)
        p += (n || !(k && m) ? "&#xa0;" : "") + s;
      p += "</div>";
      return p
    }, _adjustInstDate: function (a, c, h) {
      var i =
              a.drawYear + (h == "Y" ? c : 0), j = a.drawMonth + (h == "M" ? c : 0);
      c = Math.min(a.selectedDay, this._getDaysInMonth(i, j)) + (h == "D" ? c : 0);
      i = this._restrictMinMax(a, this._daylightSavingAdjust(new Date(i, j, c)));
      a.selectedDay = i.getDate();
      a.drawMonth = a.selectedMonth = i.getMonth();
      a.drawYear = a.selectedYear = i.getFullYear();
      if (h == "M" || h == "Y")
        this._notifyChange(a)
    }, _restrictMinMax: function (a, c) {
      var h = this._getMinMaxDate(a, "min");
      a = this._getMinMaxDate(a, "max");
      c = h && c < h ? h : c;
      return c = a && c > a ? a : c
    }, _notifyChange: function (a) {
      var c = this._get(a,
              "onChangeMonthYear");
      if (c)
        c.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, c) {
      return this._determineDate(a, this._get(a, c + "Date"), null)
    }, _getDaysInMonth: function (a, c) {
      return 32 - this._daylightSavingAdjust(new Date(a, c, 32)).getDate()
    }, _getFirstDayOfMonth: function (a, c) {
      return(new Date(a, c, 1)).getDay()
    }, _canAdjustMonth: function (a, c, h, i) {
      var j = this._getNumberOfMonths(a);
      h = this._daylightSavingAdjust(new Date(h, i + (c < 0 ? c : j[0] * j[1]), 1));
      c < 0 && h.setDate(this._getDaysInMonth(h.getFullYear(), h.getMonth()));
      return this._isInRange(a, h)
    }, _isInRange: function (a, c) {
      var h = this._getMinMaxDate(a, "min");
      a = this._getMinMaxDate(a, "max");
      return(!h || c.getTime() >= h.getTime()) && (!a || c.getTime() <= a.getTime())
    }, _getFormatConfig: function (a) {
      var c = this._get(a, "shortYearCutoff");
      c = typeof c != "string" ? c : (new Date).getFullYear() % 100 + parseInt(c, 10);
      return{shortYearCutoff: c, dayNamesShort: this._get(a,
                "dayNamesShort"), dayNames: this._get(a, "dayNames"), monthNamesShort: this._get(a, "monthNamesShort"), monthNames: this._get(a, "monthNames")}
    }, _formatDate: function (a, c, h, i) {
      if (!c) {
        a.currentDay = a.selectedDay;
        a.currentMonth = a.selectedMonth;
        a.currentYear = a.selectedYear
      }
      c = c ? typeof c == "object" ? c : this._daylightSavingAdjust(new Date(i, h, c)) : this._daylightSavingAdjust(new Date(a.currentYear, a.currentMonth, a.currentDay));
      return this.formatDate(this._get(a, "dateFormat"), c, this._getFormatConfig(a))
    }});
  b.fn.datepicker =
          function (a) {
            if (!this.length)
              return this;
            if (!b.datepicker.initialized) {
              b(document).mousedown(b.datepicker._checkExternalClick).find("body").append(b.datepicker.dpDiv);
              b.datepicker.initialized = true
            }
            var c = Array.prototype.slice.call(arguments, 1);
            if (typeof a == "string" && (a == "isDisabled" || a == "getDate" || a == "widget"))
              return b.datepicker["_" + a + "Datepicker"].apply(b.datepicker, [this[0]].concat(c));
            if (a == "option" && arguments.length == 2 && typeof arguments[1] == "string")
              return b.datepicker["_" + a + "Datepicker"].apply(b.datepicker,
                      [this[0]].concat(c));
            return this.each(function () {
              typeof a == "string" ? b.datepicker["_" + a + "Datepicker"].apply(b.datepicker, [this].concat(c)) : b.datepicker._attachDatepicker(this, a)
            })
          };
  b.datepicker = new e;
  b.datepicker.initialized = false;
  b.datepicker.uuid = (new Date).getTime();
  b.datepicker.version = "1.8.10";
  window["DP_jQuery_" + f] = b
})(jQuery);
(function (b, d) {
  var e = {buttons: true, height: true, maxHeight: true, maxWidth: true, minHeight: true, minWidth: true, width: true}, g = {maxHeight: true, maxWidth: true, minHeight: true, minWidth: true};
  b.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 (f) {
          var a = b(this).css(f).offset().top;
          a < 0 &&
                  b(this).css("top", f.top - a)
        }}, 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 f = this, a = f.options, c = a.title || "&#160;", h = b.ui.dialog.getTitleId(f.element), i = (f.uiDialog = b("<div></div>")).appendTo(document.body).hide().addClass("ui-dialog ui-widget ui-widget-content ui-corner-all " + a.dialogClass).css({zIndex: a.zIndex}).attr("tabIndex",
              -1).css("outline", 0).keydown(function (q) {
        if (a.closeOnEscape && q.keyCode && q.keyCode === b.ui.keyCode.ESCAPE) {
          f.close(q);
          q.preventDefault()
        }
      }).attr({role: "dialog", "aria-labelledby": h}).mousedown(function (q) {
        f.moveToTop(false, q)
      });
      f.element.show().removeAttr("title").addClass("ui-dialog-content ui-widget-content").appendTo(i);
      var j = (f.uiDialogTitlebar = b("<div></div>")).addClass("ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix").prependTo(i), n = b('<a href="#"></a>').addClass("ui-dialog-titlebar-close ui-corner-all").attr("role",
              "button").hover(function () {
        n.addClass("ui-state-hover")
      }, function () {
        n.removeClass("ui-state-hover")
      }).focus(function () {
        n.addClass("ui-state-focus")
      }).blur(function () {
        n.removeClass("ui-state-focus")
      }).click(function (q) {
        f.close(q);
        return false
      }).appendTo(j);
      (f.uiDialogTitlebarCloseText = b("<span></span>")).addClass("ui-icon ui-icon-closethick").text(a.closeText).appendTo(n);
      b("<span></span>").addClass("ui-dialog-title").attr("id", h).html(c).prependTo(j);
      if (b.isFunction(a.beforeclose) && !b.isFunction(a.beforeClose))
        a.beforeClose =
                a.beforeclose;
      j.find("*").add(j).disableSelection();
      a.draggable && b.fn.draggable && f._makeDraggable();
      a.resizable && b.fn.resizable && f._makeResizable();
      f._createButtons(a.buttons);
      f._isOpen = false;
      b.fn.bgiframe && i.bgiframe()
    }, _init: function () {
      this.options.autoOpen && this.open()
    }, destroy: function () {
      var f = this;
      f.overlay && f.overlay.destroy();
      f.uiDialog.hide();
      f.element.unbind(".dialog").removeData("dialog").removeClass("ui-dialog-content ui-widget-content").hide().appendTo("body");
      f.uiDialog.remove();
      f.originalTitle &&
              f.element.attr("title", f.originalTitle);
      return f
    }, widget: function () {
      return this.uiDialog
    }, close: function (f) {
      var a = this, c, h;
      if (false !== a._trigger("beforeClose", f)) {
        a.overlay && a.overlay.destroy();
        a.uiDialog.unbind("keypress.ui-dialog");
        a._isOpen = false;
        if (a.options.hide)
          a.uiDialog.hide(a.options.hide, function () {
            a._trigger("close", f)
          });
        else {
          a.uiDialog.hide();
          a._trigger("close", f)
        }
        b.ui.dialog.overlay.resize();
        if (a.options.modal) {
          c = 0;
          b(".ui-dialog").each(function () {
            if (this !== a.uiDialog[0]) {
              h = b(this).css("z-index");
              isNaN(h) || (c = Math.max(c, h))
            }
          });
          b.ui.dialog.maxZ = c
        }
        return a
      }
    }, isOpen: function () {
      return this._isOpen
    }, moveToTop: function (f, a) {
      var c = this, h = c.options;
      if (h.modal && !f || !h.stack && !h.modal)
        return c._trigger("focus", a);
      if (h.zIndex > b.ui.dialog.maxZ)
        b.ui.dialog.maxZ = h.zIndex;
      if (c.overlay) {
        b.ui.dialog.maxZ += 1;
        c.overlay.$el.css("z-index", b.ui.dialog.overlay.maxZ = b.ui.dialog.maxZ)
      }
      f = {scrollTop: c.element.attr("scrollTop"), scrollLeft: c.element.attr("scrollLeft")};
      b.ui.dialog.maxZ += 1;
      c.uiDialog.css("z-index", b.ui.dialog.maxZ);
      c.element.attr(f);
      c._trigger("focus", a);
      return c
    }, open: function () {
      if (!this._isOpen) {
        var f = this, a = f.options, c = f.uiDialog;
        f.overlay = a.modal ? new b.ui.dialog.overlay(f) : null;
        f._size();
        f._position(a.position);
        c.show(a.show);
        f.moveToTop(true);
        a.modal && c.bind("keypress.ui-dialog", function (h) {
          if (h.keyCode === b.ui.keyCode.TAB) {
            var i = b(":tabbable", this), j = i.filter(":first");
            i = i.filter(":last");
            if (h.target === i[0] && !h.shiftKey) {
              j.focus(1);
              return false
            } else if (h.target === j[0] && h.shiftKey) {
              i.focus(1);
              return false
            }
          }
        });
        b(f.element.find(":tabbable").get().concat(c.find(".ui-dialog-buttonpane :tabbable").get().concat(c.get()))).eq(0).focus();
        f._isOpen = true;
        f._trigger("open");
        return f
      }
    }, _createButtons: function (f) {
      var a = this, c = false, h = b("<div></div>").addClass("ui-dialog-buttonpane ui-widget-content ui-helper-clearfix"), i = b("<div></div>").addClass("ui-dialog-buttonset").appendTo(h);
      a.uiDialog.find(".ui-dialog-buttonpane").remove();
      typeof f === "object" && f !== null && b.each(f, function () {
        return!(c = true)
      });
      if (c) {
        b.each(f, function (j,
                n) {
          n = b.isFunction(n) ? {click: n, text: j} : n;
          j = b('<button type="button"></button>').attr(n, true).unbind("click").click(function () {
            n.click.apply(a.element[0], arguments)
          }).appendTo(i);
          b.fn.button && j.button()
        });
        h.appendTo(a.uiDialog)
      }
    }, _makeDraggable: function () {
      function f(j) {
        return{position: j.position, offset: j.offset}
      }
      var a = this, c = a.options, h = b(document), i;
      a.uiDialog.draggable({cancel: ".ui-dialog-content, .ui-dialog-titlebar-close", handle: ".ui-dialog-titlebar", containment: "document", start: function (j, n) {
          i =
                  c.height === "auto" ? "auto" : b(this).height();
          b(this).height(b(this).height()).addClass("ui-dialog-dragging");
          a._trigger("dragStart", j, f(n))
        }, drag: function (j, n) {
          a._trigger("drag", j, f(n))
        }, stop: function (j, n) {
          c.position = [n.position.left - h.scrollLeft(), n.position.top - h.scrollTop()];
          b(this).removeClass("ui-dialog-dragging").height(i);
          a._trigger("dragStop", j, f(n));
          b.ui.dialog.overlay.resize()
        }})
    }, _makeResizable: function (f) {
      function a(j) {
        return{originalPosition: j.originalPosition, originalSize: j.originalSize,
          position: j.position, size: j.size}
      }
      f = f === d ? this.options.resizable : f;
      var c = this, h = c.options, i = c.uiDialog.css("position");
      f = typeof f === "string" ? f : "n,e,s,w,se,sw,ne,nw";
      c.uiDialog.resizable({cancel: ".ui-dialog-content", containment: "document", alsoResize: c.element, maxWidth: h.maxWidth, maxHeight: h.maxHeight, minWidth: h.minWidth, minHeight: c._minHeight(), handles: f, start: function (j, n) {
          b(this).addClass("ui-dialog-resizing");
          c._trigger("resizeStart", j, a(n))
        }, resize: function (j, n) {
          c._trigger("resize", j, a(n))
        }, stop: function (j,
                n) {
          b(this).removeClass("ui-dialog-resizing");
          h.height = b(this).height();
          h.width = b(this).width();
          c._trigger("resizeStop", j, a(n));
          b.ui.dialog.overlay.resize()
        }}).css("position", i).find(".ui-resizable-se").addClass("ui-icon ui-icon-grip-diagonal-se")
    }, _minHeight: function () {
      var f = this.options;
      return f.height === "auto" ? f.minHeight : Math.min(f.minHeight, f.height)
    }, _position: function (f) {
      var a = [], c = [0, 0], h;
      if (f) {
        if (typeof f === "string" || typeof f === "object" && "0"in f) {
          a = f.split ? f.split(" ") : [f[0], f[1]];
          if (a.length ===
                  1)
            a[1] = a[0];
          b.each(["left", "top"], function (i, j) {
            if (+a[i] === a[i]) {
              c[i] = a[i];
              a[i] = j
            }
          });
          f = {my: a.join(" "), at: a.join(" "), offset: c.join(" ")}
        }
        f = b.extend({}, b.ui.dialog.prototype.options.position, f)
      } else
        f = b.ui.dialog.prototype.options.position;
      (h = this.uiDialog.is(":visible")) || this.uiDialog.show();
      this.uiDialog.css({top: 0, left: 0}).position(b.extend({of: window}, f));
      h || this.uiDialog.hide()
    }, _setOptions: function (f) {
      var a = this, c = {}, h = false;
      b.each(f, function (i, j) {
        a._setOption(i, j);
        if (i in e)
          h = true;
        if (i in
                g)
          c[i] = j
      });
      h && this._size();
      this.uiDialog.is(":data(resizable)") && this.uiDialog.resizable("option", c)
    }, _setOption: function (f, a) {
      var c = this, h = c.uiDialog;
      switch (f) {
        case "beforeclose":
          f = "beforeClose";
          break;
        case "buttons":
          c._createButtons(a);
          break;
        case "closeText":
          c.uiDialogTitlebarCloseText.text("" + a);
          break;
        case "dialogClass":
          h.removeClass(c.options.dialogClass).addClass("ui-dialog ui-widget ui-widget-content ui-corner-all " + a);
          break;
        case "disabled":
          a ? h.addClass("ui-dialog-disabled") : h.removeClass("ui-dialog-disabled");
          break;
        case "draggable":
          var i = h.is(":data(draggable)");
          i && !a && h.draggable("destroy");
          !i && a && c._makeDraggable();
          break;
        case "position":
          c._position(a);
          break;
        case "resizable":
          (i = h.is(":data(resizable)")) && !a && h.resizable("destroy");
          i && typeof a === "string" && h.resizable("option", "handles", a);
          !i && a !== false && c._makeResizable(a);
          break;
        case "title":
          b(".ui-dialog-title", c.uiDialogTitlebar).html("" + (a || "&#160;"));
          break
      }
      b.Widget.prototype._setOption.apply(c, arguments)
    }, _size: function () {
      var f = this.options, a, c, h =
              this.uiDialog.is(":visible");
      this.element.show().css({width: "auto", minHeight: 0, height: 0});
      if (f.minWidth > f.width)
        f.width = f.minWidth;
      a = this.uiDialog.css({height: "auto", width: f.width}).height();
      c = Math.max(0, f.minHeight - a);
      if (f.height === "auto")
        if (b.support.minHeight)
          this.element.css({minHeight: c, height: "auto"});
        else {
          this.uiDialog.show();
          f = this.element.css("height", "auto").height();
          h || this.uiDialog.hide();
          this.element.height(Math.max(f, c))
        }
      else
        this.element.height(Math.max(f.height - a, 0));
      this.uiDialog.is(":data(resizable)") &&
              this.uiDialog.resizable("option", "minHeight", this._minHeight())
    }});
  b.extend(b.ui.dialog, {version: "1.8.10", uuid: 0, maxZ: 0, getTitleId: function (f) {
      f = f.attr("id");
      if (!f) {
        this.uuid += 1;
        f = this.uuid
      }
      return"ui-dialog-title-" + f
    }, overlay: function (f) {
      this.$el = b.ui.dialog.overlay.create(f)
    }});
  b.extend(b.ui.dialog.overlay, {instances: [], oldInstances: [], maxZ: 0, events: b.map("focus,mousedown,mouseup,keydown,keypress,click".split(","), function (f) {
      return f + ".dialog-overlay"
    }).join(" "), create: function (f) {
      if (this.instances.length ===
              0) {
        setTimeout(function () {
          b.ui.dialog.overlay.instances.length && b(document).bind(b.ui.dialog.overlay.events, function (c) {
            if (b(c.target).zIndex() < b.ui.dialog.overlay.maxZ)
              return false
          })
        }, 1);
        b(document).bind("keydown.dialog-overlay", function (c) {
          if (f.options.closeOnEscape && c.keyCode && c.keyCode === b.ui.keyCode.ESCAPE) {
            f.close(c);
            c.preventDefault()
          }
        });
        b(window).bind("resize.dialog-overlay", b.ui.dialog.overlay.resize)
      }
      var a = (this.oldInstances.pop() || b("<div></div>").addClass("ui-widget-overlay")).appendTo(document.body).css({width: this.width(),
        height: this.height()});
      b.fn.bgiframe && a.bgiframe();
      this.instances.push(a);
      return a
    }, destroy: function (f) {
      var a = b.inArray(f, this.instances);
      a != -1 && this.oldInstances.push(this.instances.splice(a, 1)[0]);
      this.instances.length === 0 && b([document, window]).unbind(".dialog-overlay");
      f.remove();
      var c = 0;
      b.each(this.instances, function () {
        c = Math.max(c, this.css("z-index"))
      });
      this.maxZ = c
    }, height: function () {
      var f, a;
      if (b.browser.msie && b.browser.version < 7) {
        f = Math.max(document.documentElement.scrollHeight, document.body.scrollHeight);
        a = Math.max(document.documentElement.offsetHeight, document.body.offsetHeight);
        return f < a ? b(window).height() + "px" : f + "px"
      } else
        return b(document).height() + "px"
    }, width: function () {
      var f, a;
      if (b.browser.msie && b.browser.version < 7) {
        f = Math.max(document.documentElement.scrollWidth, document.body.scrollWidth);
        a = Math.max(document.documentElement.offsetWidth, document.body.offsetWidth);
        return f < a ? b(window).width() + "px" : f + "px"
      } else
        return b(document).width() + "px"
    }, resize: function () {
      var f = b([]);
      b.each(b.ui.dialog.overlay.instances,
              function () {
                f = f.add(this)
              });
      f.css({width: 0, height: 0}).css({width: b.ui.dialog.overlay.width(), height: b.ui.dialog.overlay.height()})
    }});
  b.extend(b.ui.dialog.overlay.prototype, {destroy: function () {
      b.ui.dialog.overlay.destroy(this.$el)
    }})
})(jQuery);
(function (b) {
  b.ui = b.ui || {};
  var d = /left|center|right/, e = /top|center|bottom/, g = b.fn.position, f = b.fn.offset;
  b.fn.position = function (a) {
    if (!a || !a.of)
      return g.apply(this, arguments);
    a = b.extend({}, a);
    var c = b(a.of), h = c[0], i = (a.collision || "flip").split(" "), j = a.offset ? a.offset.split(" ") : [0, 0], n, q, l;
    if (h.nodeType === 9) {
      n = c.width();
      q = c.height();
      l = {top: 0, left: 0}
    } else if (h.setTimeout) {
      n = c.width();
      q = c.height();
      l = {top: c.scrollTop(), left: c.scrollLeft()}
    } else if (h.preventDefault) {
      a.at = "left top";
      n = q = 0;
      l = {top: a.of.pageY,
        left: a.of.pageX}
    } else {
      n = c.outerWidth();
      q = c.outerHeight();
      l = c.offset()
    }
    b.each(["my", "at"], function () {
      var k = (a[this] || "").split(" ");
      if (k.length === 1)
        k = d.test(k[0]) ? k.concat(["center"]) : e.test(k[0]) ? ["center"].concat(k) : ["center", "center"];
      k[0] = d.test(k[0]) ? k[0] : "center";
      k[1] = e.test(k[1]) ? k[1] : "center";
      a[this] = k
    });
    if (i.length === 1)
      i[1] = i[0];
    j[0] = parseInt(j[0], 10) || 0;
    if (j.length === 1)
      j[1] = j[0];
    j[1] = parseInt(j[1], 10) || 0;
    if (a.at[0] === "right")
      l.left += n;
    else if (a.at[0] === "center")
      l.left += n / 2;
    if (a.at[1] === "bottom")
      l.top +=
              q;
    else if (a.at[1] === "center")
      l.top += q / 2;
    l.left += j[0];
    l.top += j[1];
    return this.each(function () {
      var k = b(this), m = k.outerWidth(), o = k.outerHeight(), p = parseInt(b.curCSS(this, "marginLeft", true)) || 0, s = parseInt(b.curCSS(this, "marginTop", true)) || 0, r = m + p + (parseInt(b.curCSS(this, "marginRight", true)) || 0), u = o + s + (parseInt(b.curCSS(this, "marginBottom", true)) || 0), v = b.extend({}, l), w;
      if (a.my[0] === "right")
        v.left -= m;
      else if (a.my[0] === "center")
        v.left -= m / 2;
      if (a.my[1] === "bottom")
        v.top -= o;
      else if (a.my[1] === "center")
        v.top -=
                o / 2;
      v.left = Math.round(v.left);
      v.top = Math.round(v.top);
      w = {left: v.left - p, top: v.top - s};
      b.each(["left", "top"], function (y, B) {
        b.ui.position[i[y]] && b.ui.position[i[y]][B](v, {targetWidth: n, targetHeight: q, elemWidth: m, elemHeight: o, collisionPosition: w, collisionWidth: r, collisionHeight: u, offset: j, my: a.my, at: a.at})
      });
      b.fn.bgiframe && k.bgiframe();
      k.offset(b.extend(v, {using: a.using}))
    })
  };
  b.ui.position = {fit: {left: function (a, c) {
        var h = b(window);
        h = c.collisionPosition.left + c.collisionWidth - h.width() - h.scrollLeft();
        a.left =
                h > 0 ? a.left - h : Math.max(a.left - c.collisionPosition.left, a.left)
      }, top: function (a, c) {
        var h = b(window);
        h = c.collisionPosition.top + c.collisionHeight - h.height() - h.scrollTop();
        a.top = h > 0 ? a.top - h : Math.max(a.top - c.collisionPosition.top, a.top)
      }}, flip: {left: function (a, c) {
        if (c.at[0] !== "center") {
          var h = b(window);
          h = c.collisionPosition.left + c.collisionWidth - h.width() - h.scrollLeft();
          var i = c.my[0] === "left" ? -c.elemWidth : c.my[0] === "right" ? c.elemWidth : 0, j = c.at[0] === "left" ? c.targetWidth : -c.targetWidth, n = -2 * c.offset[0];
          a.left +=
                  c.collisionPosition.left < 0 ? i + j + n : h > 0 ? i + j + n : 0
        }
      }, top: function (a, c) {
        if (c.at[1] !== "center") {
          var h = b(window);
          h = c.collisionPosition.top + c.collisionHeight - h.height() - h.scrollTop();
          var i = c.my[1] === "top" ? -c.elemHeight : c.my[1] === "bottom" ? c.elemHeight : 0, j = c.at[1] === "top" ? c.targetHeight : -c.targetHeight, n = -2 * c.offset[1];
          a.top += c.collisionPosition.top < 0 ? i + j + n : h > 0 ? i + j + n : 0
        }
      }}};
  if (!b.offset.setOffset) {
    b.offset.setOffset = function (a, c) {
      if (/static/.test(b.curCSS(a, "position")))
        a.style.position = "relative";
      var h = b(a),
              i = h.offset(), j = parseInt(b.curCSS(a, "top", true), 10) || 0, n = parseInt(b.curCSS(a, "left", true), 10) || 0;
      i = {top: c.top - i.top + j, left: c.left - i.left + n};
      "using"in c ? c.using.call(a, i) : h.css(i)
    };
    b.fn.offset = function (a) {
      var c = this[0];
      if (!c || !c.ownerDocument)
        return null;
      if (a)
        return this.each(function () {
          b.offset.setOffset(this, a)
        });
      return f.call(this)
    }
  }
})(jQuery);
(function (b, d) {
  b.widget("ui.progressbar", {options: {value: 0, max: 100}, min: 0, _create: function () {
      this.element.addClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").attr({role: "progressbar", "aria-valuemin": this.min, "aria-valuemax": this.options.max, "aria-valuenow": this._value()});
      this.valueDiv = b("<div class='ui-progressbar-value ui-widget-header ui-corner-left'></div>").appendTo(this.element);
      this.oldValue = this._value();
      this._refreshValue()
    }, destroy: function () {
      this.element.removeClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").removeAttr("role").removeAttr("aria-valuemin").removeAttr("aria-valuemax").removeAttr("aria-valuenow");
      this.valueDiv.remove();
      b.Widget.prototype.destroy.apply(this, arguments)
    }, value: function (e) {
      if (e === d)
        return this._value();
      this._setOption("value", e);
      return this
    }, _setOption: function (e, g) {
      if (e === "value") {
        this.options.value = g;
        this._refreshValue();
        this._value() === this.options.max && this._trigger("complete")
      }
      b.Widget.prototype._setOption.apply(this, arguments)
    }, _value: function () {
      var e = this.options.value;
      if (typeof e !== "number")
        e = 0;
      return Math.min(this.options.max, Math.max(this.min, e))
    }, _percentage: function () {
      return 100 *
              this._value() / this.options.max
    }, _refreshValue: function () {
      var e = this.value(), g = this._percentage();
      if (this.oldValue !== e) {
        this.oldValue = e;
        this._trigger("change")
      }
      this.valueDiv.toggleClass("ui-corner-right", e === this.options.max).width(g.toFixed(0) + "%");
      this.element.attr("aria-valuenow", e)
    }});
  b.extend(b.ui.progressbar, {version: "1.8.10"})
})(jQuery);
(function (b) {
  b.widget("ui.slider", b.ui.mouse, {widgetEventPrefix: "slide", options: {animate: false, distance: 0, max: 100, min: 0, orientation: "horizontal", range: false, step: 1, value: 0, values: null}, _create: function () {
      var d = this, e = this.options;
      this._mouseSliding = this._keySliding = false;
      this._animateOff = true;
      this._handleIndex = null;
      this._detectOrientation();
      this._mouseInit();
      this.element.addClass("ui-slider ui-slider-" + this.orientation + " ui-widget ui-widget-content ui-corner-all");
      e.disabled && this.element.addClass("ui-slider-disabled ui-disabled");
      this.range = b([]);
      if (e.range) {
        if (e.range === true) {
          this.range = b("<div></div>");
          if (!e.values)
            e.values = [this._valueMin(), this._valueMin()];
          if (e.values.length && e.values.length !== 2)
            e.values = [e.values[0], e.values[0]]
        } else
          this.range = b("<div></div>");
        this.range.appendTo(this.element).addClass("ui-slider-range");
        if (e.range === "min" || e.range === "max")
          this.range.addClass("ui-slider-range-" + e.range);
        this.range.addClass("ui-widget-header")
      }
      b(".ui-slider-handle", this.element).length === 0 && b("<a href='#'></a>").appendTo(this.element).addClass("ui-slider-handle");
      if (e.values && e.values.length)
        for (; b(".ui-slider-handle", this.element).length < e.values.length; )
          b("<a href='#'></a>").appendTo(this.element).addClass("ui-slider-handle");
      this.handles = b(".ui-slider-handle", this.element).addClass("ui-state-default ui-corner-all");
      this.handle = this.handles.eq(0);
      this.handles.add(this.range).filter("a").click(function (g) {
        g.preventDefault()
      }).hover(function () {
        e.disabled || b(this).addClass("ui-state-hover")
      }, function () {
        b(this).removeClass("ui-state-hover")
      }).focus(function () {
        if (e.disabled)
          b(this).blur();
        else {
          b(".ui-slider .ui-state-focus").removeClass("ui-state-focus");
          b(this).addClass("ui-state-focus")
        }
      }).blur(function () {
        b(this).removeClass("ui-state-focus")
      });
      this.handles.each(function (g) {
        b(this).data("index.ui-slider-handle", g)
      });
      this.handles.keydown(function (g) {
        var f = true, a = b(this).data("index.ui-slider-handle"), c, h, i;
        if (!d.options.disabled) {
          switch (g.keyCode) {
            case b.ui.keyCode.HOME:
            case b.ui.keyCode.END:
            case b.ui.keyCode.PAGE_UP:
            case b.ui.keyCode.PAGE_DOWN:
            case b.ui.keyCode.UP:
            case b.ui.keyCode.RIGHT:
            case b.ui.keyCode.DOWN:
            case b.ui.keyCode.LEFT:
              f =
                      false;
              if (!d._keySliding) {
                d._keySliding = true;
                b(this).addClass("ui-state-active");
                c = d._start(g, a);
                if (c === false)
                  return
              }
              break
          }
          i = d.options.step;
          c = d.options.values && d.options.values.length ? (h = d.values(a)) : (h = d.value());
          switch (g.keyCode) {
            case b.ui.keyCode.HOME:
              h = d._valueMin();
              break;
            case b.ui.keyCode.END:
              h = d._valueMax();
              break;
            case b.ui.keyCode.PAGE_UP:
              h = d._trimAlignValue(c + (d._valueMax() - d._valueMin()) / 5);
              break;
            case b.ui.keyCode.PAGE_DOWN:
              h = d._trimAlignValue(c - (d._valueMax() - d._valueMin()) / 5);
              break;
            case b.ui.keyCode.UP:
            case b.ui.keyCode.RIGHT:
              if (c ===
                      d._valueMax())
                return;
              h = d._trimAlignValue(c + i);
              break;
            case b.ui.keyCode.DOWN:
            case b.ui.keyCode.LEFT:
              if (c === d._valueMin())
                return;
              h = d._trimAlignValue(c - i);
              break
          }
          d._slide(g, a, h);
          return f
        }
      }).keyup(function (g) {
        var f = b(this).data("index.ui-slider-handle");
        if (d._keySliding) {
          d._keySliding = false;
          d._stop(g, f);
          d._change(g, f);
          b(this).removeClass("ui-state-active")
        }
      });
      this._refreshValue();
      this._animateOff = false
    }, destroy: function () {
      this.handles.remove();
      this.range.remove();
      this.element.removeClass("ui-slider ui-slider-horizontal ui-slider-vertical ui-slider-disabled ui-widget ui-widget-content ui-corner-all").removeData("slider").unbind(".slider");
      this._mouseDestroy();
      return this
    }, _mouseCapture: function (d) {
      var e = this.options, g, f, a, c, h;
      if (e.disabled)
        return false;
      this.elementSize = {width: this.element.outerWidth(), height: this.element.outerHeight()};
      this.elementOffset = this.element.offset();
      g = this._normValueFromMouse({x: d.pageX, y: d.pageY});
      f = this._valueMax() - this._valueMin() + 1;
      c = this;
      this.handles.each(function (i) {
        var j = Math.abs(g - c.values(i));
        if (f > j) {
          f = j;
          a = b(this);
          h = i
        }
      });
      if (e.range === true && this.values(1) === e.min) {
        h += 1;
        a = b(this.handles[h])
      }
      if (this._start(d,
              h) === false)
        return false;
      this._mouseSliding = true;
      c._handleIndex = h;
      a.addClass("ui-state-active").focus();
      e = a.offset();
      this._clickOffset = !b(d.target).parents().andSelf().is(".ui-slider-handle") ? {left: 0, top: 0} : {left: d.pageX - e.left - a.width() / 2, top: d.pageY - e.top - a.height() / 2 - (parseInt(a.css("borderTopWidth"), 10) || 0) - (parseInt(a.css("borderBottomWidth"), 10) || 0) + (parseInt(a.css("marginTop"), 10) || 0)};
      this.handles.hasClass("ui-state-hover") || this._slide(d, h, g);
      return this._animateOff = true
    }, _mouseStart: function () {
      return true
    },
    _mouseDrag: function (d) {
      var e = this._normValueFromMouse({x: d.pageX, y: d.pageY});
      this._slide(d, this._handleIndex, e);
      return false
    }, _mouseStop: function (d) {
      this.handles.removeClass("ui-state-active");
      this._mouseSliding = false;
      this._stop(d, this._handleIndex);
      this._change(d, this._handleIndex);
      this._clickOffset = this._handleIndex = null;
      return this._animateOff = false
    }, _detectOrientation: function () {
      this.orientation = this.options.orientation === "vertical" ? "vertical" : "horizontal"
    }, _normValueFromMouse: function (d) {
      var e;
      if (this.orientation === "horizontal") {
        e = this.elementSize.width;
        d = d.x - this.elementOffset.left - (this._clickOffset ? this._clickOffset.left : 0)
      } else {
        e = this.elementSize.height;
        d = d.y - this.elementOffset.top - (this._clickOffset ? this._clickOffset.top : 0)
      }
      e = d / e;
      if (e > 1)
        e = 1;
      if (e < 0)
        e = 0;
      if (this.orientation === "vertical")
        e = 1 - e;
      d = this._valueMax() - this._valueMin();
      return this._trimAlignValue(this._valueMin() + e * d)
    }, _start: function (d, e) {
      var g = {handle: this.handles[e], value: this.value()};
      if (this.options.values && this.options.values.length) {
        g.value =
                this.values(e);
        g.values = this.values()
      }
      return this._trigger("start", d, g)
    }, _slide: function (d, e, g) {
      var f;
      if (this.options.values && this.options.values.length) {
        f = this.values(e ? 0 : 1);
        if (this.options.values.length === 2 && this.options.range === true && (e === 0 && g > f || e === 1 && g < f))
          g = f;
        if (g !== this.values(e)) {
          f = this.values();
          f[e] = g;
          d = this._trigger("slide", d, {handle: this.handles[e], value: g, values: f});
          this.values(e ? 0 : 1);
          d !== false && this.values(e, g, true)
        }
      } else if (g !== this.value()) {
        d = this._trigger("slide", d, {handle: this.handles[e],
          value: g});
        d !== false && this.value(g)
      }
    }, _stop: function (d, e) {
      var g = {handle: this.handles[e], value: this.value()};
      if (this.options.values && this.options.values.length) {
        g.value = this.values(e);
        g.values = this.values()
      }
      this._trigger("stop", d, g)
    }, _change: function (d, e) {
      if (!this._keySliding && !this._mouseSliding) {
        var g = {handle: this.handles[e], value: this.value()};
        if (this.options.values && this.options.values.length) {
          g.value = this.values(e);
          g.values = this.values()
        }
        this._trigger("change", d, g)
      }
    }, value: function (d) {
      if (arguments.length) {
        this.options.value =
                this._trimAlignValue(d);
        this._refreshValue();
        this._change(null, 0)
      }
      return this._value()
    }, values: function (d, e) {
      var g, f, a;
      if (arguments.length > 1) {
        this.options.values[d] = this._trimAlignValue(e);
        this._refreshValue();
        this._change(null, d)
      }
      if (arguments.length)
        if (b.isArray(arguments[0])) {
          g = this.options.values;
          f = arguments[0];
          for (a = 0; a < g.length; a += 1) {
            g[a] = this._trimAlignValue(f[a]);
            this._change(null, a)
          }
          this._refreshValue()
        } else
          return this.options.values && this.options.values.length ? this._values(d) : this.value();
      else
        return this._values()
    }, _setOption: function (d, e) {
      var g, f = 0;
      if (b.isArray(this.options.values))
        f = this.options.values.length;
      b.Widget.prototype._setOption.apply(this, arguments);
      switch (d) {
        case "disabled":
          if (e) {
            this.handles.filter(".ui-state-focus").blur();
            this.handles.removeClass("ui-state-hover");
            this.handles.attr("disabled", "disabled");
            this.element.addClass("ui-disabled")
          } else {
            this.handles.removeAttr("disabled");
            this.element.removeClass("ui-disabled")
          }
          break;
        case "orientation":
          this._detectOrientation();
          this.element.removeClass("ui-slider-horizontal ui-slider-vertical").addClass("ui-slider-" + this.orientation);
          this._refreshValue();
          break;
        case "value":
          this._animateOff = true;
          this._refreshValue();
          this._change(null, 0);
          this._animateOff = false;
          break;
        case "values":
          this._animateOff = true;
          this._refreshValue();
          for (g = 0; g < f; g += 1)
            this._change(null, g);
          this._animateOff = false;
          break
      }
    }, _value: function () {
      var d = this.options.value;
      return d = this._trimAlignValue(d)
    }, _values: function (d) {
      var e, g;
      if (arguments.length) {
        e = this.options.values[d];
        return e = this._trimAlignValue(e)
      } else {
        e = this.options.values.slice();
        for (g = 0; g < e.length; g += 1)
          e[g] = this._trimAlignValue(e[g]);
        return e
      }
    }, _trimAlignValue: function (d) {
      if (d <= this._valueMin())
        return this._valueMin();
      if (d >= this._valueMax())
        return this._valueMax();
      var e = this.options.step > 0 ? this.options.step : 1, g = (d - this._valueMin()) % e;
      alignValue = d - g;
      if (Math.abs(g) * 2 >= e)
        alignValue += g > 0 ? e : -e;
      return parseFloat(alignValue.toFixed(5))
    }, _valueMin: function () {
      return this.options.min
    }, _valueMax: function () {
      return this.options.max
    },
    _refreshValue: function () {
      var d = this.options.range, e = this.options, g = this, f = !this._animateOff ? e.animate : false, a, c = {}, h, i, j, n;
      if (this.options.values && this.options.values.length)
        this.handles.each(function (q) {
          a = (g.values(q) - g._valueMin()) / (g._valueMax() - g._valueMin()) * 100;
          c[g.orientation === "horizontal" ? "left" : "bottom"] = a + "%";
          b(this).stop(1, 1)[f ? "animate" : "css"](c, e.animate);
          if (g.options.range === true)
            if (g.orientation === "horizontal") {
              if (q === 0)
                g.range.stop(1, 1)[f ? "animate" : "css"]({left: a + "%"}, e.animate);
              if (q === 1)
                g.range[f ? "animate" : "css"]({width: a - h + "%"}, {queue: false, duration: e.animate})
            } else {
              if (q === 0)
                g.range.stop(1, 1)[f ? "animate" : "css"]({bottom: a + "%"}, e.animate);
              if (q === 1)
                g.range[f ? "animate" : "css"]({height: a - h + "%"}, {queue: false, duration: e.animate})
            }
          h = a
        });
      else {
        i = this.value();
        j = this._valueMin();
        n = this._valueMax();
        a = n !== j ? (i - j) / (n - j) * 100 : 0;
        c[g.orientation === "horizontal" ? "left" : "bottom"] = a + "%";
        this.handle.stop(1, 1)[f ? "animate" : "css"](c, e.animate);
        if (d === "min" && this.orientation === "horizontal")
          this.range.stop(1,
                  1)[f ? "animate" : "css"]({width: a + "%"}, e.animate);
        if (d === "max" && this.orientation === "horizontal")
          this.range[f ? "animate" : "css"]({width: 100 - a + "%"}, {queue: false, duration: e.animate});
        if (d === "min" && this.orientation === "vertical")
          this.range.stop(1, 1)[f ? "animate" : "css"]({height: a + "%"}, e.animate);
        if (d === "max" && this.orientation === "vertical")
          this.range[f ? "animate" : "css"]({height: 100 - a + "%"}, {queue: false, duration: e.animate})
      }
    }});
  b.extend(b.ui.slider, {version: "1.8.10"})
})(jQuery);
(function (b, d) {
  function e() {
    return++f
  }
  function g() {
    return++a
  }
  var f = 0, a = 0;
  b.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 (c, h) {
      if (c == "selected")
        this.options.collapsible &&
                h == this.options.selected || this.select(h);
      else {
        this.options[c] = h;
        this._tabify()
      }
    }, _tabId: function (c) {
      return c.title && c.title.replace(/\s/g, "_").replace(/[^\w\u00c0-\uFFFF-]/g, "") || this.options.idPrefix + e()
    }, _sanitizeSelector: function (c) {
      return c.replace(/:/g, "\\:")
    }, _cookie: function () {
      var c = this.cookie || (this.cookie = this.options.cookie.name || "ui-tabs-" + g());
      return b.cookie.apply(null, [c].concat(b.makeArray(arguments)))
    }, _ui: function (c, h) {
      return{tab: c, panel: h, index: this.anchors.index(c)}
    }, _cleanup: function () {
      this.lis.filter(".ui-state-processing").removeClass("ui-state-processing").find("span:data(label.tabs)").each(function () {
        var c =
                b(this);
        c.html(c.data("label.tabs")).removeData("label.tabs")
      })
    }, _tabify: function (c) {
      function h(r, u) {
        r.css("display", "");
        !b.support.opacity && u.opacity && r[0].style.removeAttribute("filter")
      }
      var i = this, j = this.options, n = /^#.+/;
      this.list = this.element.find("ol,ul").eq(0);
      this.lis = b(" > li:has(a[href])", this.list);
      this.anchors = this.lis.map(function () {
        return b("a", this)[0]
      });
      this.panels = b([]);
      this.anchors.each(function (r, u) {
        var v = b(u).attr("href"), w = v.split("#")[0], y;
        if (w && (w === location.toString().split("#")[0] ||
                (y = b("base")[0]) && w === y.href)) {
          v = u.hash;
          u.href = v
        }
        if (n.test(v))
          i.panels = i.panels.add(i.element.find(i._sanitizeSelector(v)));
        else if (v && v !== "#") {
          b.data(u, "href.tabs", v);
          b.data(u, "load.tabs", v.replace(/#.*$/, ""));
          v = i._tabId(u);
          u.href = "#" + v;
          u = i.element.find("#" + v);
          if (!u.length) {
            u = b(j.panelTemplate).attr("id", v).addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").insertAfter(i.panels[r - 1] || i.list);
            u.data("destroy.tabs", true)
          }
          i.panels = i.panels.add(u)
        } else
          j.disabled.push(r)
      });
      if (c) {
        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 (j.selected === d) {
          location.hash && this.anchors.each(function (r, u) {
            if (u.hash == location.hash) {
              j.selected = r;
              return false
            }
          });
          if (typeof j.selected !== "number" && j.cookie)
            j.selected = parseInt(i._cookie(), 10);
          if (typeof j.selected !== "number" && this.lis.filter(".ui-tabs-selected").length)
            j.selected =
                    this.lis.index(this.lis.filter(".ui-tabs-selected"));
          j.selected = j.selected || (this.lis.length ? 0 : -1)
        } else if (j.selected === null)
          j.selected = -1;
        j.selected = j.selected >= 0 && this.anchors[j.selected] || j.selected < 0 ? j.selected : 0;
        j.disabled = b.unique(j.disabled.concat(b.map(this.lis.filter(".ui-state-disabled"), function (r) {
          return i.lis.index(r)
        }))).sort();
        b.inArray(j.selected, j.disabled) != -1 && j.disabled.splice(b.inArray(j.selected, j.disabled), 1);
        this.panels.addClass("ui-tabs-hide");
        this.lis.removeClass("ui-tabs-selected ui-state-active");
        if (j.selected >= 0 && this.anchors.length) {
          i.element.find(i._sanitizeSelector(i.anchors[j.selected].hash)).removeClass("ui-tabs-hide");
          this.lis.eq(j.selected).addClass("ui-tabs-selected ui-state-active");
          i.element.queue("tabs", function () {
            i._trigger("show", null, i._ui(i.anchors[j.selected], i.element.find(i._sanitizeSelector(i.anchors[j.selected].hash))[0]))
          });
          this.load(j.selected)
        }
        b(window).bind("unload", function () {
          i.lis.add(i.anchors).unbind(".tabs");
          i.lis = i.anchors = i.panels = null
        })
      } else
        j.selected = this.lis.index(this.lis.filter(".ui-tabs-selected"));
      this.element[j.collapsible ? "addClass" : "removeClass"]("ui-tabs-collapsible");
      j.cookie && this._cookie(j.selected, j.cookie);
      c = 0;
      for (var q; q = this.lis[c]; c++)
        b(q)[b.inArray(c, j.disabled) != -1 && !b(q).hasClass("ui-tabs-selected") ? "addClass" : "removeClass"]("ui-state-disabled");
      j.cache === false && this.anchors.removeData("cache.tabs");
      this.lis.add(this.anchors).unbind(".tabs");
      if (j.event !== "mouseover") {
        var l = function (r, u) {
          u.is(":not(.ui-state-disabled)") && u.addClass("ui-state-" + r)
        }, k = function (r, u) {
          u.removeClass("ui-state-" +
                  r)
        };
        this.lis.bind("mouseover.tabs", function () {
          l("hover", b(this))
        });
        this.lis.bind("mouseout.tabs", function () {
          k("hover", b(this))
        });
        this.anchors.bind("focus.tabs", function () {
          l("focus", b(this).closest("li"))
        });
        this.anchors.bind("blur.tabs", function () {
          k("focus", b(this).closest("li"))
        })
      }
      var m, o;
      if (j.fx)
        if (b.isArray(j.fx)) {
          m = j.fx[0];
          o = j.fx[1]
        } else
          m = o = j.fx;
      var p = o ? function (r, u) {
        b(r).closest("li").addClass("ui-tabs-selected ui-state-active");
        u.hide().removeClass("ui-tabs-hide").animate(o, o.duration || "normal",
                function () {
                  h(u, o);
                  i._trigger("show", null, i._ui(r, u[0]))
                })
      } : function (r, u) {
        b(r).closest("li").addClass("ui-tabs-selected ui-state-active");
        u.removeClass("ui-tabs-hide");
        i._trigger("show", null, i._ui(r, u[0]))
      }, s = m ? function (r, u) {
        u.animate(m, m.duration || "normal", function () {
          i.lis.removeClass("ui-tabs-selected ui-state-active");
          u.addClass("ui-tabs-hide");
          h(u, m);
          i.element.dequeue("tabs")
        })
      } : function (r, u) {
        i.lis.removeClass("ui-tabs-selected ui-state-active");
        u.addClass("ui-tabs-hide");
        i.element.dequeue("tabs")
      };
      this.anchors.bind(j.event + ".tabs", function () {
        var r = this, u = b(r).closest("li"), v = i.panels.filter(":not(.ui-tabs-hide)"), w = i.element.find(i._sanitizeSelector(r.hash));
        if (u.hasClass("ui-tabs-selected") && !j.collapsible || u.hasClass("ui-state-disabled") || u.hasClass("ui-state-processing") || i.panels.filter(":animated").length || i._trigger("select", null, i._ui(this, w[0])) === false) {
          this.blur();
          return false
        }
        j.selected = i.anchors.index(this);
        i.abort();
        if (j.collapsible)
          if (u.hasClass("ui-tabs-selected")) {
            j.selected =
                    -1;
            j.cookie && i._cookie(j.selected, j.cookie);
            i.element.queue("tabs", function () {
              s(r, v)
            }).dequeue("tabs");
            this.blur();
            return false
          } else if (!v.length) {
            j.cookie && i._cookie(j.selected, j.cookie);
            i.element.queue("tabs", function () {
              p(r, w)
            });
            i.load(i.anchors.index(this));
            this.blur();
            return false
          }
        j.cookie && i._cookie(j.selected, j.cookie);
        if (w.length) {
          v.length && i.element.queue("tabs", function () {
            s(r, v)
          });
          i.element.queue("tabs", function () {
            p(r, w)
          });
          i.load(i.anchors.index(this))
        } else
          throw"jQuery UI Tabs: Mismatching fragment identifier.";
        b.browser.msie && this.blur()
      });
      this.anchors.bind("click.tabs", function () {
        return false
      })
    }, _getIndex: function (c) {
      if (typeof c == "string")
        c = this.anchors.index(this.anchors.filter("[href$=" + c + "]"));
      return c
    }, destroy: function () {
      var c = 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 h =
                b.data(this, "href.tabs");
        if (h)
          this.href = h;
        var i = b(this).unbind(".tabs");
        b.each(["href", "load", "cache"], function (j, n) {
          i.removeData(n + ".tabs")
        })
      });
      this.lis.unbind(".tabs").add(this.panels).each(function () {
        b.data(this, "destroy.tabs") ? b(this).remove() : b(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")
      });
      c.cookie && this._cookie(null, c.cookie);
      return this
    }, add: function (c,
            h, i) {
      if (i === d)
        i = this.anchors.length;
      var j = this, n = this.options;
      h = b(n.tabTemplate.replace(/#\{href\}/g, c).replace(/#\{label\}/g, h));
      c = !c.indexOf("#") ? c.replace("#", "") : this._tabId(b("a", h)[0]);
      h.addClass("ui-state-default ui-corner-top").data("destroy.tabs", true);
      var q = j.element.find("#" + c);
      q.length || (q = b(n.panelTemplate).attr("id", c).data("destroy.tabs", true));
      q.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide");
      if (i >= this.lis.length) {
        h.appendTo(this.list);
        q.appendTo(this.list[0].parentNode)
      } else {
        h.insertBefore(this.lis[i]);
        q.insertBefore(this.panels[i])
      }
      n.disabled = b.map(n.disabled, function (l) {
        return l >= i ? ++l : l
      });
      this._tabify();
      if (this.anchors.length == 1) {
        n.selected = 0;
        h.addClass("ui-tabs-selected ui-state-active");
        q.removeClass("ui-tabs-hide");
        this.element.queue("tabs", function () {
          j._trigger("show", null, j._ui(j.anchors[0], j.panels[0]))
        });
        this.load(0)
      }
      this._trigger("add", null, this._ui(this.anchors[i], this.panels[i]));
      return this
    }, remove: function (c) {
      c = this._getIndex(c);
      var h = this.options, i = this.lis.eq(c).remove(), j = this.panels.eq(c).remove();
      if (i.hasClass("ui-tabs-selected") && this.anchors.length > 1)
        this.select(c + (c + 1 < this.anchors.length ? 1 : -1));
      h.disabled = b.map(b.grep(h.disabled, function (n) {
        return n != c
      }), function (n) {
        return n >= c ? --n : n
      });
      this._tabify();
      this._trigger("remove", null, this._ui(i.find("a")[0], j[0]));
      return this
    }, enable: function (c) {
      c = this._getIndex(c);
      var h = this.options;
      if (b.inArray(c, h.disabled) != -1) {
        this.lis.eq(c).removeClass("ui-state-disabled");
        h.disabled = b.grep(h.disabled, function (i) {
          return i != c
        });
        this._trigger("enable", null,
                this._ui(this.anchors[c], this.panels[c]));
        return this
      }
    }, disable: function (c) {
      c = this._getIndex(c);
      var h = this.options;
      if (c != h.selected) {
        this.lis.eq(c).addClass("ui-state-disabled");
        h.disabled.push(c);
        h.disabled.sort();
        this._trigger("disable", null, this._ui(this.anchors[c], this.panels[c]))
      }
      return this
    }, select: function (c) {
      c = this._getIndex(c);
      if (c == -1)
        if (this.options.collapsible && this.options.selected != -1)
          c = this.options.selected;
        else
          return this;
      this.anchors.eq(c).trigger(this.options.event + ".tabs");
      return this
    },
    load: function (c) {
      c = this._getIndex(c);
      var h = this, i = this.options, j = this.anchors.eq(c)[0], n = b.data(j, "load.tabs");
      this.abort();
      if (!n || this.element.queue("tabs").length !== 0 && b.data(j, "cache.tabs"))
        this.element.dequeue("tabs");
      else {
        this.lis.eq(c).addClass("ui-state-processing");
        if (i.spinner) {
          var q = b("span", j);
          q.data("label.tabs", q.html()).html(i.spinner)
        }
        this.xhr = b.ajax(b.extend({}, i.ajaxOptions, {url: n, success: function (l, k) {
            h.element.find(h._sanitizeSelector(j.hash)).html(l);
            h._cleanup();
            i.cache && b.data(j,
                    "cache.tabs", true);
            h._trigger("load", null, h._ui(h.anchors[c], h.panels[c]));
            try {
              i.ajaxOptions.success(l, k)
            } catch (m) {
            }
          }, error: function (l, k) {
            h._cleanup();
            h._trigger("load", null, h._ui(h.anchors[c], h.panels[c]));
            try {
              i.ajaxOptions.error(l, k, c, j)
            } catch (m) {
            }
          }}));
        h.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 (c, h) {
      this.anchors.eq(c).removeData("cache.tabs").data("load.tabs", h);
      return this
    }, length: function () {
      return this.anchors.length
    }});
  b.extend(b.ui.tabs, {version: "1.8.10"});
  b.extend(b.ui.tabs.prototype, {rotation: null, rotate: function (c, h) {
      var i = this, j = this.options, n = i._rotate || (i._rotate = function (q) {
        clearTimeout(i.rotation);
        i.rotation = setTimeout(function () {
          var l = j.selected;
          i.select(++l < i.anchors.length ? l : 0)
        }, c);
        q && q.stopPropagation()
      });
      h = i._unrotate || (i._unrotate = !h ? function (q) {
        q.clientX &&
                i.rotate(null)
      } : function () {
        t = j.selected;
        n()
      });
      if (c) {
        this.element.bind("tabsshow", n);
        this.anchors.bind(j.event + ".tabs", h);
        n()
      } else {
        clearTimeout(i.rotation);
        this.element.unbind("tabsshow", n);
        this.anchors.unbind(j.event + ".tabs", h);
        delete this._rotate;
        delete this._unrotate
      }
      return this
    }})
})(jQuery);
