",
options: {
disabled: !1,
create: null
},
_createWidget: function(e, s) {
s = t(s || this.defaultElement || this)[0], this.element = t(s), this.uuid = i++, this.eventNamespace = "." + this.widgetName + this.uuid, this.options = t.widget.extend({}, this.options, this._getCreateOptions(), e), this.bindings = t(), this.hoverable = t(), this.focusable = t(), s !== this && (t.data(s, this.widgetFullName, this), this._on(!0, this.element, {
remove: function(t) {
t.target === s && this.destroy()
}
}), this.document = t(s.style ? s.ownerDocument : s.document || s), this.window = t(this.document[0].defaultView || this.document[0].parentWindow)), this._create(), this._trigger("create", null, this._getCreateEventData()), this._init()
},
_getCreateOptions: t.noop,
_getCreateEventData: t.noop,
_create: t.noop,
_init: t.noop,
destroy: function() {
this._destroy(), this.element.unbind(this.eventNamespace).removeData(this.widgetName).removeData(this.widgetFullName).removeData(t.camelCase(this.widgetFullName)), this.widget().unbind(this.eventNamespace).removeAttr("aria-disabled").removeClass(this.widgetFullName + "-disabled " + "ui-state-disabled"), this.bindings.unbind(this.eventNamespace), this.hoverable.removeClass("ui-state-hover"), this.focusable.removeClass("ui-state-focus")
},
_destroy: t.noop,
widget: function() {
return this.element
},
option: function(i, s) {
var o, n, r, a = i;
if (0 === arguments.length) return t.widget.extend({}, this.options);
if ("string" == typeof i)
if (a = {}, o = i.split("."), i = o.shift(), o.length) {
for (n = a[i] = t.widget.extend({}, this.options[i]), r = 0; o.length - 1 > r; r++) n[o[r]] = n[o[r]] || {}, n = n[o[r]];
if (i = o.pop(), s === e) return n[i] === e ? null : n[i];
n[i] = s
} else {
if (s === e) return this.options[i] === e ? null : this.options[i];
a[i] = s
}
return this._setOptions(a), this
},
_setOptions: function(t) {
var e;
for (e in t) this._setOption(e, t[e]);
return this
},
_setOption: function(t, e) {
return this.options[t] = e, "disabled" === t && (this.widget().toggleClass(this.widgetFullName + "-disabled ui-state-disabled", !!e).attr("aria-disabled", e), this.hoverable.removeClass("ui-state-hover"), this.focusable.removeClass("ui-state-focus")), this
},
enable: function() {
return this._setOption("disabled", !1)
},
disable: function() {
return this._setOption("disabled", !0)
},
_on: function(i, s, o) {
var n, r = this;
"boolean" != typeof i && (o = s, s = i, i = !1), o ? (s = n = t(s), this.bindings = this.bindings.add(s)) : (o = s, s = this.element, n = this.widget()), t.each(o, function(o, a) {
function l() {
return i || r.options.disabled !== !0 && !t(this).hasClass("ui-state-disabled") ? ("string" == typeof a ? r[a] : a).apply(r, arguments) : e
}
"string" != typeof a && (l.guid = a.guid = a.guid || l.guid || t.guid++);
var h = o.match(/^(\w+)\s*(.*)$/),
c = h[1] + r.eventNamespace,
p = h[2];
p ? n.delegate(p, c, l) : s.bind(c, l)
})
},
_off: function(t, e) {
e = (e || "").split(" ").join(this.eventNamespace + " ") + this.eventNamespace, t.unbind(e).undelegate(e)
},
_delay: function(t, e) {
function i() {
return ("string" == typeof t ? s[t] : t).apply(s, arguments)
}
var s = this;
return setTimeout(i, e || 0)
},
_hoverable: function(e) {
this.hoverable = this.hoverable.add(e), this._on(e, {
mouseenter: function(e) {
t(e.currentTarget).addClass("ui-state-hover")
},
mouseleave: function(e) {
t(e.currentTarget).removeClass("ui-state-hover")
}
})
},
_focusable: function(e) {
this.focusable = this.focusable.add(e), this._on(e, {
focusin: function(e) {
t(e.currentTarget).addClass("ui-state-focus")
},
focusout: function(e) {
t(e.currentTarget).removeClass("ui-state-focus")
}
})
},
_trigger: function(e, i, s) {
var o, n, r = this.options[e];
if (s = s || {}, i = t.Event(i), i.type = (e === this.widgetEventPrefix ? e : this.widgetEventPrefix + e).toLowerCase(), i.target = this.element[0], n = i.originalEvent)
for (o in n) o in i || (i[o] = n[o]);
return this.element.trigger(i, s), !(t.isFunction(r) && r.apply(this.element[0], [i].concat(s)) === !1 || i.isDefaultPrevented())
}
}, t.each({
show: "fadeIn",
hide: "fadeOut"
}, function(e, i) {
t.Widget.prototype["_" + e] = function(s, o, n) {
"string" == typeof o && (o = {
effect: o
});
var r, a = o ? o === !0 || "number" == typeof o ? i : o.effect || i : e;
o = o || {}, "number" == typeof o && (o = {
duration: o
}), r = !t.isEmptyObject(o), o.complete = n, o.delay && s.delay(o.delay), r && t.effects && t.effects.effect[a] ? s[e](o) : a !== e && s[a] ? s[a](o.duration, o.easing, n) : s.queue(function(i) {
t(this)[e](), n && n.call(s[0]), i()
})
}
})
})(jQuery);
(function(t, e) {
function i() {
return ++n
}
function s(t) {
return t.hash.length > 1 && decodeURIComponent(t.href.replace(a, "")) === decodeURIComponent(location.href.replace(a, ""))
}
var n = 0,
a = /#.*$/;
t.widget("ui.tabs", {
version: "1.10.3",
delay: 300,
options: {
active: null,
collapsible: !1,
event: "click",
heightStyle: "content",
hide: null,
show: null,
activate: null,
beforeActivate: null,
beforeLoad: null,
load: null
},
_create: function() {
var e = this,
i = this.options;
this.running = !1, this.element.addClass("ui-tabs ui-widget ui-widget-content ui-corner-all").toggleClass("ui-tabs-collapsible", i.collapsible).delegate(".ui-tabs-nav > li", "mousedown" + this.eventNamespace, function(e) {
t(this).is(".ui-state-disabled") && e.preventDefault()
}).delegate(".ui-tabs-anchor", "focus" + this.eventNamespace, function() {
t(this).closest("li").is(".ui-state-disabled") && this.blur()
}), this._processTabs(), i.active = this._initialActive(), t.isArray(i.disabled) && (i.disabled = t.unique(i.disabled.concat(t.map(this.tabs.filter(".ui-state-disabled"), function(t) {
return e.tabs.index(t)
}))).sort()), this.active = this.options.active !== !1 && this.anchors.length ? this._findActive(i.active) : t(), this._refresh(), this.active.length && this.load(i.active)
},
_initialActive: function() {
var i = this.options.active,
s = this.options.collapsible,
n = location.hash.substring(1);
return null === i && (n && this.tabs.each(function(s, a) {
return t(a).attr("aria-controls") === n ? (i = s, !1) : e
}), null === i && (i = this.tabs.index(this.tabs.filter(".ui-tabs-active"))), (null === i || -1 === i) && (i = this.tabs.length ? 0 : !1)), i !== !1 && (i = this.tabs.index(this.tabs.eq(i)), -1 === i && (i = s ? !1 : 0)), !s && i === !1 && this.anchors.length && (i = 0), i
},
_getCreateEventData: function() {
return {
tab: this.active,
panel: this.active.length ? this._getPanelForTab(this.active) : t()
}
},
_tabKeydown: function(i) {
var s = t(this.document[0].activeElement).closest("li"),
n = this.tabs.index(s),
a = !0;
if (!this._handlePageNav(i)) {
switch (i.keyCode) {
case t.ui.keyCode.RIGHT:
case t.ui.keyCode.DOWN:
n++;
break;
case t.ui.keyCode.UP:
case t.ui.keyCode.LEFT:
a = !1, n--;
break;
case t.ui.keyCode.END:
n = this.anchors.length - 1;
break;
case t.ui.keyCode.HOME:
n = 0;
break;
case t.ui.keyCode.SPACE:
return i.preventDefault(), clearTimeout(this.activating), this._activate(n), e;
case t.ui.keyCode.ENTER:
return i.preventDefault(), clearTimeout(this.activating), this._activate(n === this.options.active ? !1 : n), e;
default:
return
}
i.preventDefault(), clearTimeout(this.activating), n = this._focusNextTab(n, a), i.ctrlKey || (s.attr("aria-selected", "false"), this.tabs.eq(n).attr("aria-selected", "true"), this.activating = this._delay(function() {
this.option("active", n)
}, this.delay))
}
},
_panelKeydown: function(e) {
this._handlePageNav(e) || e.ctrlKey && e.keyCode === t.ui.keyCode.UP && (e.preventDefault(), this.active.focus())
},
_handlePageNav: function(i) {
return i.altKey && i.keyCode === t.ui.keyCode.PAGE_UP ? (this._activate(this._focusNextTab(this.options.active - 1, !1)), !0) : i.altKey && i.keyCode === t.ui.keyCode.PAGE_DOWN ? (this._activate(this._focusNextTab(this.options.active + 1, !0)), !0) : e
},
_findNextTab: function(e, i) {
function s() {
return e > n && (e = 0), 0 > e && (e = n), e
}
for (var n = this.tabs.length - 1; - 1 !== t.inArray(s(), this.options.disabled);) e = i ? e + 1 : e - 1;
return e
},
_focusNextTab: function(t, e) {
return t = this._findNextTab(t, e), this.tabs.eq(t).focus(), t
},
_setOption: function(t, i) {
return "active" === t ? (this._activate(i), e) : "disabled" === t ? (this._setupDisabled(i), e) : (this._super(t, i), "collapsible" === t && (this.element.toggleClass("ui-tabs-collapsible", i), i || this.options.active !== !1 || this._activate(0)), "event" === t && this._setupEvents(i), "heightStyle" === t && this._setupHeightStyle(i), e)
},
_tabId: function(t) {
return t.attr("aria-controls") || "ui-tabs-" + i()
},
_sanitizeSelector: function(t) {
return t ? t.replace(/[!"$%&'()*+,.\/:;<=>?@\[\]\^`{|}~]/g, "\\$&") : ""
},
refresh: function() {
var e = this.options,
i = this.tablist.children(":has(a[href])");
e.disabled = t.map(i.filter(".ui-state-disabled"), function(t) {
return i.index(t)
}), this._processTabs(), e.active !== !1 && this.anchors.length ? this.active.length && !t.contains(this.tablist[0], this.active[0]) ? this.tabs.length === e.disabled.length ? (e.active = !1, this.active = t()) : this._activate(this._findNextTab(Math.max(0, e.active - 1), !1)) : e.active = this.tabs.index(this.active) : (e.active = !1, this.active = t()), this._refresh()
},
_refresh: function() {
this._setupDisabled(this.options.disabled), this._setupEvents(this.options.event), this._setupHeightStyle(this.options.heightStyle), this.tabs.not(this.active).attr({
"aria-selected": "false",
tabIndex: -1
}), this.panels.not(this._getPanelForTab(this.active)).hide().attr({
"aria-expanded": "false",
"aria-hidden": "true"
}), this.active.length ? (this.active.addClass("ui-tabs-active ui-state-active").attr({
"aria-selected": "true",
tabIndex: 0
}), this._getPanelForTab(this.active).show().attr({
"aria-expanded": "true",
"aria-hidden": "false"
})) : this.tabs.eq(0).attr("tabIndex", 0)
},
_processTabs: function() {
var e = this;
this.tablist = this._getList().addClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all").attr("role", "tablist"), this.tabs = this.tablist.find("> li:has(a[href])").addClass("ui-state-default ui-corner-top").attr({
role: "tab",
tabIndex: -1
}), this.anchors = this.tabs.map(function() {
return t("a", this)[0]
}).addClass("ui-tabs-anchor").attr({
role: "presentation",
tabIndex: -1
}), this.panels = t(), this.anchors.each(function(i, n) {
var a, o, r, h = t(n).uniqueId().attr("id"),
l = t(n).closest("li"),
c = l.attr("aria-controls");
s(n) ? (a = n.hash, o = e.element.find(e._sanitizeSelector(a))) : (r = e._tabId(l), a = "#" + r, o = e.element.find(a), o.length || (o = e._createPanel(r), o.insertAfter(e.panels[i - 1] || e.tablist)), o.attr("aria-live", "polite")), o.length && (e.panels = e.panels.add(o)), c && l.data("ui-tabs-aria-controls", c), l.attr({
"aria-controls": a.substring(1),
"aria-labelledby": h
}), o.attr("aria-labelledby", h)
}), this.panels.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").attr("role", "tabpanel")
},
_getList: function() {
return this.element.find("ol,ul").eq(0)
},
_createPanel: function(e) {
return t("
").attr("id", e).addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").data("ui-tabs-destroy", !0)
},
_setupDisabled: function(e) {
t.isArray(e) && (e.length ? e.length === this.anchors.length && (e = !0) : e = !1);
for (var i, s = 0; i = this.tabs[s]; s++) e === !0 || -1 !== t.inArray(s, e) ? t(i).addClass("ui-state-disabled").attr("aria-disabled", "true") : t(i).removeClass("ui-state-disabled").removeAttr("aria-disabled");
this.options.disabled = e
},
_setupEvents: function(e) {
var i = {
click: function(t) {
t.preventDefault()
}
};
e && t.each(e.split(" "), function(t, e) {
i[e] = "_eventHandler"
}), this._off(this.anchors.add(this.tabs).add(this.panels)), this._on(this.anchors, i), this._on(this.tabs, {
keydown: "_tabKeydown"
}), this._on(this.panels, {
keydown: "_panelKeydown"
}), this._focusable(this.tabs), this._hoverable(this.tabs)
},
_setupHeightStyle: function(e) {
var i, s = this.element.parent();
"fill" === e ? (i = s.height(), i -= this.element.outerHeight() - this.element.height(), this.element.siblings(":visible").each(function() {
var e = t(this),
s = e.css("position");
"absolute" !== s && "fixed" !== s && (i -= e.outerHeight(!0))
}), this.element.children().not(this.panels).each(function() {
i -= t(this).outerHeight(!0)
}), this.panels.each(function() {
t(this).height(Math.max(0, i - t(this).innerHeight() + t(this).height()))
}).css("overflow", "auto")) : "auto" === e && (i = 0, this.panels.each(function() {
i = Math.max(i, t(this).height("").height())
}).height(i))
},
_eventHandler: function(e) {
var i = this.options,
s = this.active,
n = t(e.currentTarget),
a = n.closest("li"),
o = a[0] === s[0],
r = o && i.collapsible,
h = r ? t() : this._getPanelForTab(a),
l = s.length ? this._getPanelForTab(s) : t(),
c = {
oldTab: s,
oldPanel: l,
newTab: r ? t() : a,
newPanel: h
};
e.preventDefault(), a.hasClass("ui-state-disabled") || a.hasClass("ui-tabs-loading") || this.running || o && !i.collapsible || this._trigger("beforeActivate", e, c) === !1 || (i.active = r ? !1 : this.tabs.index(a), this.active = o ? t() : a, this.xhr && this.xhr.abort(), l.length || h.length || t.error("jQuery UI Tabs: Mismatching fragment identifier."), h.length && this.load(this.tabs.index(a), e), this._toggle(e, c))
},
_toggle: function(e, i) {
function s() {
a.running = !1, a._trigger("activate", e, i)
}
function n() {
i.newTab.closest("li").addClass("ui-tabs-active ui-state-active"), o.length && a.options.show ? a._show(o, a.options.show, s) : (o.show(), s())
}
var a = this,
o = i.newPanel,
r = i.oldPanel;
this.running = !0, r.length && this.options.hide ? this._hide(r, this.options.hide, function() {
i.oldTab.closest("li").removeClass("ui-tabs-active ui-state-active"), n()
}) : (i.oldTab.closest("li").removeClass("ui-tabs-active ui-state-active"), r.hide(), n()), r.attr({
"aria-expanded": "false",
"aria-hidden": "true"
}), i.oldTab.attr("aria-selected", "false"), o.length && r.length ? i.oldTab.attr("tabIndex", -1) : o.length && this.tabs.filter(function() {
return 0 === t(this).attr("tabIndex")
}).attr("tabIndex", -1), o.attr({
"aria-expanded": "true",
"aria-hidden": "false"
}), i.newTab.attr({
"aria-selected": "true",
tabIndex: 0
})
},
_activate: function(e) {
var i, s = this._findActive(e);
s[0] !== this.active[0] && (s.length || (s = this.active), i = s.find(".ui-tabs-anchor")[0], this._eventHandler({
target: i,
currentTarget: i,
preventDefault: t.noop
}))
},
_findActive: function(e) {
return e === !1 ? t() : this.tabs.eq(e)
},
_getIndex: function(t) {
return "string" == typeof t && (t = this.anchors.index(this.anchors.filter("[href$='" + t + "']"))), t
},
_destroy: function() {
this.xhr && this.xhr.abort(), this.element.removeClass("ui-tabs ui-widget ui-widget-content ui-corner-all ui-tabs-collapsible"), this.tablist.removeClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all").removeAttr("role"), this.anchors.removeClass("ui-tabs-anchor").removeAttr("role").removeAttr("tabIndex").removeUniqueId(), this.tabs.add(this.panels).each(function() {
t.data(this, "ui-tabs-destroy") ? t(this).remove() : t(this).removeClass("ui-state-default ui-state-active ui-state-disabled ui-corner-top ui-corner-bottom ui-widget-content ui-tabs-active ui-tabs-panel").removeAttr("tabIndex").removeAttr("aria-live").removeAttr("aria-busy").removeAttr("aria-selected").removeAttr("aria-labelledby").removeAttr("aria-hidden").removeAttr("aria-expanded").removeAttr("role")
}), this.tabs.each(function() {
var e = t(this),
i = e.data("ui-tabs-aria-controls");
i ? e.attr("aria-controls", i).removeData("ui-tabs-aria-controls") : e.removeAttr("aria-controls")
}), this.panels.show(), "content" !== this.options.heightStyle && this.panels.css("height", "")
},
enable: function(i) {
var s = this.options.disabled;
s !== !1 && (i === e ? s = !1 : (i = this._getIndex(i), s = t.isArray(s) ? t.map(s, function(t) {
return t !== i ? t : null
}) : t.map(this.tabs, function(t, e) {
return e !== i ? e : null
})), this._setupDisabled(s))
},
disable: function(i) {
var s = this.options.disabled;
if (s !== !0) {
if (i === e) s = !0;
else {
if (i = this._getIndex(i), -1 !== t.inArray(i, s)) return;
s = t.isArray(s) ? t.merge([i], s).sort() : [i]
}
this._setupDisabled(s)
}
},
load: function(e, i) {
e = this._getIndex(e);
var n = this,
a = this.tabs.eq(e),
o = a.find(".ui-tabs-anchor"),
r = this._getPanelForTab(a),
h = {
tab: a,
panel: r
};
s(o[0]) || (this.xhr = t.ajax(this._ajaxSettings(o, i, h)), this.xhr && "canceled" !== this.xhr.statusText && (a.addClass("ui-tabs-loading"), r.attr("aria-busy", "true"), this.xhr.success(function(t) {
setTimeout(function() {
r.html(t), n._trigger("load", i, h)
}, 1)
}).complete(function(t, e) {
setTimeout(function() {
"abort" === e && n.panels.stop(!1, !0), a.removeClass("ui-tabs-loading"), r.removeAttr("aria-busy"), t === n.xhr && delete n.xhr
}, 1)
})))
},
_ajaxSettings: function(e, i, s) {
var n = this;
return {
url: e.attr("href"),
beforeSend: function(e, a) {
return n._trigger("beforeLoad", i, t.extend({
jqXHR: e,
ajaxSettings: a
}, s))
}
}
},
_getPanelForTab: function(e) {
var i = t(e).attr("aria-controls");
return this.element.find(this._sanitizeSelector("#" + i))
}
})
})(jQuery);