Last active
May 30, 2022 15:09
-
-
Save S-codes14/f63dc66b76047ab6501c17788ff16d00 to your computer and use it in GitHub Desktop.
TweeterID
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<!DOCTYPE html> | |
<html lang="en"> | |
<head> | |
<meta charset="UTF-8"> | |
<title>TweeterID - Twitter ID and username converter</title> | |
<meta name="title" content ="TweeterID - Twitter ID and username converter" /> | |
<meta name="keywords" content="twitter API, twitter ID, twitter username, get twitter ID, get Twitter username, username from ID, twitter ID lookup, twitter, api, twitter convert, twitter converter, user, find your twitter id, tweet id, tweeter id" /> | |
<meta name="description" content="Convert any Twitter account's username or @handle into its respective Twitter ID, or convert ID to username" /> | |
<meta name="author" content="Jared Feldman and Dillon Hess" /> | |
<meta name="Copyright" content="Copyright TweeterID 2022. All Rights Reserved." /> | |
<meta property="og:title" content="TweeterID - Twitter ID and username converter" /> | |
<meta property="og:type" content="website" /> | |
<meta property="og:url" content="https://tweeterid.com" /> | |
<meta property="og:image" content="/images/logo.png" /> | |
<meta property="og:description" content="Convert any Twitter account's username or @handle into its respective Twitter ID, or convert ID to username" /> | |
<link rel="stylesheet" href="style.css"> | |
<link rel="shortcut icon" href="/images/favicon.ico" /> | |
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script> | |
<script src="//ajax.googleapis.com/ajax/libs/jqueryui/1.9.1/jquery-ui.min.js"></script> | |
<link href='//fonts.googleapis.com/css?family=Open+Sans:400,700' rel='stylesheet' type='text/css'> | |
<!-- Mobile Compatibility --> | |
<meta name="viewport" content="width=device-width, minimum-scale=1.0, maximum-scale=1.0" /> | |
<meta name="apple-mobile-web-app-capable" content="yes" /> | |
</head> | |
<body> | |
<div class="top"> | |
<div class="content"> | |
<h1>TweeterID</h1> | |
<h2>Twitter ID and username converter</h2> | |
<div class="leftColumn"> | |
<p class="instructions">Type in any Twitter ID or @handle below, and it will be | |
converted into the respective ID or username <span class="viewportNormal">on the right</span><span class="viewportMobile">below</span>:</p> | |
<form id="twitterInput" action="javascript:twitterID;"> | |
<input type="text" id="twitter" name="twitter" class="twitter" maxlength="30" /> | |
</form> | |
<div class="twitterButton" id="twitterButton"><div class="innerborder"><p>Convert</p></div></div> | |
<div class="blockAd"> | |
<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script> | |
<!-- TweeterID (Block) --> | |
<ins class="adsbygoogle" | |
style="display:inline-block;width:300px;height:250px" | |
data-ad-client="ca-pub-2723092998487179" | |
data-ad-slot="2765827484"></ins> | |
<script> | |
(adsbygoogle = window.adsbygoogle || []).push({}); | |
</script> | |
</div> | |
</div><!-- End leftColumn --> | |
<div class="rightColumn"> | |
<div class="outputSection" id="outputSection"> | |
<div class="output" id="output"></div> | |
<p class="originalOutputPrompt" id="oop">Enter a Twitter ID or @handle<br /><span class="viewportNormal">on the left</span><span class="viewportMobile">above</span><br />and it will be converted here.</p> | |
</div> | |
</div><!-- End rightColumn --> | |
<div class="spacer"></div> | |
</div><!-- End Content --> | |
</div><!-- End Top --> | |
<div class="bottom"> | |
<div class="content"> | |
<div class="foot1"> | |
<p class="title">What is a Twitter ID?</p> | |
<p>The Twitter ID is a unique value that every account on Twitter | |
has. No two people have the same ID. Although an account can | |
change its @handle, it can never change its Twitter ID. | |
</p> | |
</div> | |
<div class="foot2"> | |
<p class="title">How can you use TweeterID?</p> | |
<p>TweeterID allows you to easily look up any username (@handle) on | |
Twitter and find out what their corresponding ID is. Alternatively, | |
you can also use it to convert an ID into a username. | |
</p> | |
</div> | |
<div class="foot3"> | |
<p class="title">Twitter API with ID?</p> | |
<p>Using the TweeterID converter enables developers working with the | |
Twitter API to easily transition between the primary key usage | |
of the Twitter ID, and the publicly visible | |
username (or @handle) of an account. | |
</p> | |
</div> | |
<div class="footSpacer"></div> | |
</div><!-- End content --> | |
</div><!-- End Bottom --> | |
<script type="text/javascript" language="javascript" src="script.js"></script> | |
<!-- Start Google Analytics Tracking --> | |
<script type="text/javascript"> | |
var _gaq = _gaq || []; | |
_gaq.push(['_setAccount', 'UA-37123644-1']); | |
_gaq.push(['_trackPageview']); | |
(function() { | |
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; | |
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; | |
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); | |
})(); | |
</script> | |
<!-- End Google Analytics Tracking --> | |
</body> | |
</html> |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Lock to prevent spamming button | |
var lock = false; | |
$('#twitterButton').click(function(){ | |
$('#twitterInput').submit(); | |
}); | |
$('#twitterInput').submit(function() { | |
if (lock == false) { | |
// Obtain lock | |
lock = true; | |
var input = $('#twitter').val().toLowerCase(); | |
// Post to PHP script | |
$.ajax({ | |
url: 'https://tweeterid.com/ajax.php', | |
data: {input:input}, | |
type: 'post', | |
success: function (response) {//response is value returned from php | |
outputConversion(input, response); | |
} | |
}); | |
setTimeout(function() { | |
lock = false; | |
}, 3000); // Release lock after time | |
} | |
}); | |
var outputCount = 0; | |
function outputConversion(input, response){ | |
// Handle/Check for Error | |
if (response == "error"){ | |
response = "<span style='color:red'>Error: Not Found</span>"; | |
} | |
// Check if it is an id | |
var isID = IsNumeric(input); | |
// Add an @ for output if doesn't exist and not an ID | |
if (input.charAt(0) != "@" && isID == false) { | |
input = "@" + input; | |
} | |
if (outputCount == 0){ | |
$('#oop').fadeOut(500); | |
$('#output').html("<p style='margin-bottom:8px'>Recent ID Conversions:</p>"); | |
setTimeout(function() { | |
$('#output').fadeIn(500); | |
}, 500); // Delay the animation for half a second | |
} | |
var outputText = "<p id='"+outputCount+"' style='display:none'>"+ input +" => "+ response +"</p>"; | |
$('#output').html($('#output').html() + outputText); | |
$('#'+outputCount).fadeIn(800); | |
$('#outputSection').switchClass("outputSection","outputSectionFlash"); | |
setTimeout(function() { | |
$('#outputSection').switchClass("outputSectionFlash","outputSection"); | |
}, 500); // Delay the animation for half a second | |
outputCount++; | |
} | |
// Checks if input is ID or not... returns true if it is an ID (if it is numerical) | |
function IsNumeric(input){ | |
return (input - 0) == input && input.length > 0; | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/*! jQuery UI - v1.9.1 - 2012-10-25 | |
* http://jqueryui.com | |
* Includes: jquery.ui.core.js, jquery.ui.widget.js, jquery.ui.mouse.js, jquery.ui.draggable.js, jquery.ui.droppable.js, jquery.ui.resizable.js, jquery.ui.selectable.js, jquery.ui.sortable.js, jquery.ui.effect.js, jquery.ui.accordion.js, jquery.ui.autocomplete.js, jquery.ui.button.js, jquery.ui.datepicker.js, jquery.ui.dialog.js, jquery.ui.effect-blind.js, jquery.ui.effect-bounce.js, jquery.ui.effect-clip.js, jquery.ui.effect-drop.js, jquery.ui.effect-explode.js, jquery.ui.effect-fade.js, jquery.ui.effect-fold.js, jquery.ui.effect-highlight.js, jquery.ui.effect-pulsate.js, jquery.ui.effect-scale.js, jquery.ui.effect-shake.js, jquery.ui.effect-slide.js, jquery.ui.effect-transfer.js, jquery.ui.menu.js, jquery.ui.position.js, jquery.ui.progressbar.js, jquery.ui.slider.js, jquery.ui.spinner.js, jquery.ui.tabs.js, jquery.ui.tooltip.js | |
* Copyright 2012 jQuery Foundation and other contributors; Licensed MIT */ | |
(function(e, t) { | |
function i(t, n) { | |
var r, i, o, u = t.nodeName.toLowerCase(); | |
return "area" === u ? (r = t.parentNode, | |
i = r.name, | |
!t.href || !i || r.nodeName.toLowerCase() !== "map" ? !1 : (o = e("img[usemap=#" + i + "]")[0], | |
!!o && s(o))) : (/input|select|textarea|button|object/.test(u) ? !t.disabled : "a" === u ? t.href || n : n) && s(t) | |
} | |
function s(t) { | |
return e.expr.filters.visible(t) && !e(t).parents().andSelf().filter(function() { | |
return e.css(this, "visibility") === "hidden" | |
}).length | |
} | |
var n = 0 | |
, r = /^ui-id-\d+$/; | |
e.ui = e.ui || {}; | |
if (e.ui.version) | |
return; | |
e.extend(e.ui, { | |
version: "1.9.1", | |
keyCode: { | |
BACKSPACE: 8, | |
COMMA: 188, | |
DELETE: 46, | |
DOWN: 40, | |
END: 35, | |
ENTER: 13, | |
ESCAPE: 27, | |
HOME: 36, | |
LEFT: 37, | |
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, | |
SPACE: 32, | |
TAB: 9, | |
UP: 38 | |
} | |
}), | |
e.fn.extend({ | |
_focus: e.fn.focus, | |
focus: function(t, n) { | |
return typeof t == "number" ? this.each(function() { | |
var r = this; | |
setTimeout(function() { | |
e(r).focus(), | |
n && n.call(r) | |
}, t) | |
}) : this._focus.apply(this, arguments) | |
}, | |
scrollParent: function() { | |
var t; | |
return e.ui.ie && /(static|relative)/.test(this.css("position")) || /absolute/.test(this.css("position")) ? t = this.parents().filter(function() { | |
return /(relative|absolute|fixed)/.test(e.css(this, "position")) && /(auto|scroll)/.test(e.css(this, "overflow") + e.css(this, "overflow-y") + e.css(this, "overflow-x")) | |
}).eq(0) : t = this.parents().filter(function() { | |
return /(auto|scroll)/.test(e.css(this, "overflow") + e.css(this, "overflow-y") + e.css(this, "overflow-x")) | |
}).eq(0), | |
/fixed/.test(this.css("position")) || !t.length ? e(document) : t | |
}, | |
zIndex: function(n) { | |
if (n !== t) | |
return this.css("zIndex", n); | |
if (this.length) { | |
var r = e(this[0]), i, s; | |
while (r.length && r[0] !== document) { | |
i = r.css("position"); | |
if (i === "absolute" || i === "relative" || i === "fixed") { | |
s = parseInt(r.css("zIndex"), 10); | |
if (!isNaN(s) && s !== 0) | |
return s | |
} | |
r = r.parent() | |
} | |
} | |
return 0 | |
}, | |
uniqueId: function() { | |
return this.each(function() { | |
this.id || (this.id = "ui-id-" + ++n) | |
}) | |
}, | |
removeUniqueId: function() { | |
return this.each(function() { | |
r.test(this.id) && e(this).removeAttr("id") | |
}) | |
} | |
}), | |
e("<a>").outerWidth(1).jquery || e.each(["Width", "Height"], function(n, r) { | |
function u(t, n, r, s) { | |
return e.each(i, function() { | |
n -= parseFloat(e.css(t, "padding" + this)) || 0, | |
r && (n -= parseFloat(e.css(t, "border" + this + "Width")) || 0), | |
s && (n -= parseFloat(e.css(t, "margin" + this)) || 0) | |
}), | |
n | |
} | |
var i = r === "Width" ? ["Left", "Right"] : ["Top", "Bottom"] | |
, s = r.toLowerCase() | |
, o = { | |
innerWidth: e.fn.innerWidth, | |
innerHeight: e.fn.innerHeight, | |
outerWidth: e.fn.outerWidth, | |
outerHeight: e.fn.outerHeight | |
}; | |
e.fn["inner" + r] = function(n) { | |
return n === t ? o["inner" + r].call(this) : this.each(function() { | |
e(this).css(s, u(this, n) + "px") | |
}) | |
} | |
, | |
e.fn["outer" + r] = function(t, n) { | |
return typeof t != "number" ? o["outer" + r].call(this, t) : this.each(function() { | |
e(this).css(s, u(this, t, !0, n) + "px") | |
}) | |
} | |
}), | |
e.extend(e.expr[":"], { | |
data: e.expr.createPseudo ? e.expr.createPseudo(function(t) { | |
return function(n) { | |
return !!e.data(n, t) | |
} | |
}) : function(t, n, r) { | |
return !!e.data(t, r[3]) | |
} | |
, | |
focusable: function(t) { | |
return i(t, !isNaN(e.attr(t, "tabindex"))) | |
}, | |
tabbable: function(t) { | |
var n = e.attr(t, "tabindex") | |
, r = isNaN(n); | |
return (r || n >= 0) && i(t, !r) | |
} | |
}), | |
e(function() { | |
var t = document.body | |
, n = t.appendChild(n = document.createElement("div")); | |
n.offsetHeight, | |
e.extend(n.style, { | |
minHeight: "100px", | |
height: "auto", | |
padding: 0, | |
borderWidth: 0 | |
}), | |
e.support.minHeight = n.offsetHeight === 100, | |
e.support.selectstart = "onselectstart"in n, | |
t.removeChild(n).style.display = "none" | |
}), | |
function() { | |
var t = /msie ([\w.]+)/.exec(navigator.userAgent.toLowerCase()) || []; | |
e.ui.ie = t.length ? !0 : !1, | |
e.ui.ie6 = parseFloat(t[1], 10) === 6 | |
}(), | |
e.fn.extend({ | |
disableSelection: function() { | |
return this.bind((e.support.selectstart ? "selectstart" : "mousedown") + ".ui-disableSelection", function(e) { | |
e.preventDefault() | |
}) | |
}, | |
enableSelection: function() { | |
return this.unbind(".ui-disableSelection") | |
} | |
}), | |
e.extend(e.ui, { | |
plugin: { | |
add: function(t, n, r) { | |
var i, s = e.ui[t].prototype; | |
for (i in r) | |
s.plugins[i] = s.plugins[i] || [], | |
s.plugins[i].push([n, r[i]]) | |
}, | |
call: function(e, t, n) { | |
var r, i = e.plugins[t]; | |
if (!i || !e.element[0].parentNode || e.element[0].parentNode.nodeType === 11) | |
return; | |
for (r = 0; r < i.length; r++) | |
e.options[i[r][0]] && i[r][1].apply(e.element, n) | |
} | |
}, | |
contains: e.contains, | |
hasScroll: function(t, n) { | |
if (e(t).css("overflow") === "hidden") | |
return !1; | |
var r = n && n === "left" ? "scrollLeft" : "scrollTop" | |
, i = !1; | |
return t[r] > 0 ? !0 : (t[r] = 1, | |
i = t[r] > 0, | |
t[r] = 0, | |
i) | |
}, | |
isOverAxis: function(e, t, n) { | |
return e > t && e < t + n | |
}, | |
isOver: function(t, n, r, i, s, o) { | |
return e.ui.isOverAxis(t, r, s) && e.ui.isOverAxis(n, i, o) | |
} | |
}) | |
} | |
)(jQuery), | |
function(e, t) { | |
var n = 0 | |
, r = Array.prototype.slice | |
, i = e.cleanData; | |
e.cleanData = function(t) { | |
for (var n = 0, r; (r = t[n]) != null; n++) | |
try { | |
e(r).triggerHandler("remove") | |
} catch (s) {} | |
i(t) | |
} | |
, | |
e.widget = function(t, n, r) { | |
var i, s, o, u, a = t.split(".")[0]; | |
t = t.split(".")[1], | |
i = a + "-" + t, | |
r || (r = n, | |
n = e.Widget), | |
e.expr[":"][i.toLowerCase()] = function(t) { | |
return !!e.data(t, i) | |
} | |
, | |
e[a] = e[a] || {}, | |
s = e[a][t], | |
o = e[a][t] = function(e, t) { | |
if (!this._createWidget) | |
return new o(e,t); | |
arguments.length && this._createWidget(e, t) | |
} | |
, | |
e.extend(o, s, { | |
version: r.version, | |
_proto: e.extend({}, r), | |
_childConstructors: [] | |
}), | |
u = new n, | |
u.options = e.widget.extend({}, u.options), | |
e.each(r, function(t, i) { | |
e.isFunction(i) && (r[t] = function() { | |
var e = function() { | |
return n.prototype[t].apply(this, arguments) | |
} | |
, r = function(e) { | |
return n.prototype[t].apply(this, e) | |
}; | |
return function() { | |
var t = this._super, n = this._superApply, s; | |
return this._super = e, | |
this._superApply = r, | |
s = i.apply(this, arguments), | |
this._super = t, | |
this._superApply = n, | |
s | |
} | |
}()) | |
}), | |
o.prototype = e.widget.extend(u, { | |
widgetEventPrefix: u.widgetEventPrefix || t | |
}, r, { | |
constructor: o, | |
namespace: a, | |
widgetName: t, | |
widgetBaseClass: i, | |
widgetFullName: i | |
}), | |
s ? (e.each(s._childConstructors, function(t, n) { | |
var r = n.prototype; | |
e.widget(r.namespace + "." + r.widgetName, o, n._proto) | |
}), | |
delete s._childConstructors) : n._childConstructors.push(o), | |
e.widget.bridge(t, o) | |
} | |
, | |
e.widget.extend = function(n) { | |
var i = r.call(arguments, 1), s = 0, o = i.length, u, a; | |
for (; s < o; s++) | |
for (u in i[s]) | |
a = i[s][u], | |
i[s].hasOwnProperty(u) && a !== t && (e.isPlainObject(a) ? n[u] = e.isPlainObject(n[u]) ? e.widget.extend({}, n[u], a) : e.widget.extend({}, a) : n[u] = a); | |
return n | |
} | |
, | |
e.widget.bridge = function(n, i) { | |
var s = i.prototype.widgetFullName; | |
e.fn[n] = function(o) { | |
var u = typeof o == "string" | |
, a = r.call(arguments, 1) | |
, f = this; | |
return o = !u && a.length ? e.widget.extend.apply(null, [o].concat(a)) : o, | |
u ? this.each(function() { | |
var r, i = e.data(this, s); | |
if (!i) | |
return e.error("cannot call methods on " + n + " prior to initialization; " + "attempted to call method '" + o + "'"); | |
if (!e.isFunction(i[o]) || o.charAt(0) === "_") | |
return e.error("no such method '" + o + "' for " + n + " widget instance"); | |
r = i[o].apply(i, a); | |
if (r !== i && r !== t) | |
return f = r && r.jquery ? f.pushStack(r.get()) : r, | |
!1 | |
}) : this.each(function() { | |
var t = e.data(this, s); | |
t ? t.option(o || {})._init() : new i(o,this) | |
}), | |
f | |
} | |
} | |
, | |
e.Widget = function() {} | |
, | |
e.Widget._childConstructors = [], | |
e.Widget.prototype = { | |
widgetName: "widget", | |
widgetEventPrefix: "", | |
defaultElement: "<div>", | |
options: { | |
disabled: !1, | |
create: null | |
}, | |
_createWidget: function(t, r) { | |
r = e(r || this.defaultElement || this)[0], | |
this.element = e(r), | |
this.uuid = n++, | |
this.eventNamespace = "." + this.widgetName + this.uuid, | |
this.options = e.widget.extend({}, this.options, this._getCreateOptions(), t), | |
this.bindings = e(), | |
this.hoverable = e(), | |
this.focusable = e(), | |
r !== this && (e.data(r, this.widgetName, this), | |
e.data(r, this.widgetFullName, this), | |
this._on(this.element, { | |
remove: function(e) { | |
e.target === r && this.destroy() | |
} | |
}), | |
this.document = e(r.style ? r.ownerDocument : r.document || r), | |
this.window = e(this.document[0].defaultView || this.document[0].parentWindow)), | |
this._create(), | |
this._trigger("create", null, this._getCreateEventData()), | |
this._init() | |
}, | |
_getCreateOptions: e.noop, | |
_getCreateEventData: e.noop, | |
_create: e.noop, | |
_init: e.noop, | |
destroy: function() { | |
this._destroy(), | |
this.element.unbind(this.eventNamespace).removeData(this.widgetName).removeData(this.widgetFullName).removeData(e.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: e.noop, | |
widget: function() { | |
return this.element | |
}, | |
option: function(n, r) { | |
var i = n, s, o, u; | |
if (arguments.length === 0) | |
return e.widget.extend({}, this.options); | |
if (typeof n == "string") { | |
i = {}, | |
s = n.split("."), | |
n = s.shift(); | |
if (s.length) { | |
o = i[n] = e.widget.extend({}, this.options[n]); | |
for (u = 0; u < s.length - 1; u++) | |
o[s[u]] = o[s[u]] || {}, | |
o = o[s[u]]; | |
n = s.pop(); | |
if (r === t) | |
return o[n] === t ? null : o[n]; | |
o[n] = r | |
} else { | |
if (r === t) | |
return this.options[n] === t ? null : this.options[n]; | |
i[n] = r | |
} | |
} | |
return this._setOptions(i), | |
this | |
}, | |
_setOptions: function(e) { | |
var t; | |
for (t in e) | |
this._setOption(t, e[t]); | |
return this | |
}, | |
_setOption: function(e, t) { | |
return this.options[e] = t, | |
e === "disabled" && (this.widget().toggleClass(this.widgetFullName + "-disabled ui-state-disabled", !!t).attr("aria-disabled", t), | |
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(t, n) { | |
var r, i = this; | |
n ? (t = r = e(t), | |
this.bindings = this.bindings.add(t)) : (n = t, | |
t = this.element, | |
r = this.widget()), | |
e.each(n, function(n, s) { | |
function o() { | |
if (i.options.disabled === !0 || e(this).hasClass("ui-state-disabled")) | |
return; | |
return (typeof s == "string" ? i[s] : s).apply(i, arguments) | |
} | |
typeof s != "string" && (o.guid = s.guid = s.guid || o.guid || e.guid++); | |
var u = n.match(/^(\w+)\s*(.*)$/) | |
, a = u[1] + i.eventNamespace | |
, f = u[2]; | |
f ? r.delegate(f, a, o) : t.bind(a, o) | |
}) | |
}, | |
_off: function(e, t) { | |
t = (t || "").split(" ").join(this.eventNamespace + " ") + this.eventNamespace, | |
e.unbind(t).undelegate(t) | |
}, | |
_delay: function(e, t) { | |
function n() { | |
return (typeof e == "string" ? r[e] : e).apply(r, arguments) | |
} | |
var r = this; | |
return setTimeout(n, t || 0) | |
}, | |
_hoverable: function(t) { | |
this.hoverable = this.hoverable.add(t), | |
this._on(t, { | |
mouseenter: function(t) { | |
e(t.currentTarget).addClass("ui-state-hover") | |
}, | |
mouseleave: function(t) { | |
e(t.currentTarget).removeClass("ui-state-hover") | |
} | |
}) | |
}, | |
_focusable: function(t) { | |
this.focusable = this.focusable.add(t), | |
this._on(t, { | |
focusin: function(t) { | |
e(t.currentTarget).addClass("ui-state-focus") | |
}, | |
focusout: function(t) { | |
e(t.currentTarget).removeClass("ui-state-focus") | |
} | |
}) | |
}, | |
_trigger: function(t, n, r) { | |
var i, s, o = this.options[t]; | |
r = r || {}, | |
n = e.Event(n), | |
n.type = (t === this.widgetEventPrefix ? t : this.widgetEventPrefix + t).toLowerCase(), | |
n.target = this.element[0], | |
s = n.originalEvent; | |
if (s) | |
for (i in s) | |
i in n || (n[i] = s[i]); | |
return this.element.trigger(n, r), | |
!(e.isFunction(o) && o.apply(this.element[0], [n].concat(r)) === !1 || n.isDefaultPrevented()) | |
} | |
}, | |
e.each({ | |
show: "fadeIn", | |
hide: "fadeOut" | |
}, function(t, n) { | |
e.Widget.prototype["_" + t] = function(r, i, s) { | |
typeof i == "string" && (i = { | |
effect: i | |
}); | |
var o, u = i ? i === !0 || typeof i == "number" ? n : i.effect || n : t; | |
i = i || {}, | |
typeof i == "number" && (i = { | |
duration: i | |
}), | |
o = !e.isEmptyObject(i), | |
i.complete = s, | |
i.delay && r.delay(i.delay), | |
o && e.effects && (e.effects.effect[u] || e.uiBackCompat !== !1 && e.effects[u]) ? r[t](i) : u !== t && r[u] ? r[u](i.duration, i.easing, s) : r.queue(function(n) { | |
e(this)[t](), | |
s && s.call(r[0]), | |
n() | |
}) | |
} | |
}), | |
e.uiBackCompat !== !1 && (e.Widget.prototype._getCreateOptions = function() { | |
return e.metadata && e.metadata.get(this.element[0])[this.widgetName] | |
} | |
) | |
}(jQuery), | |
function(e, t) { | |
var n = !1; | |
e(document).mouseup(function(e) { | |
n = !1 | |
}), | |
e.widget("ui.mouse", { | |
version: "1.9.1", | |
options: { | |
cancel: "input,textarea,button,select,option", | |
distance: 1, | |
delay: 0 | |
}, | |
_mouseInit: function() { | |
var t = this; | |
this.element.bind("mousedown." + this.widgetName, function(e) { | |
return t._mouseDown(e) | |
}).bind("click." + this.widgetName, function(n) { | |
if (!0 === e.data(n.target, t.widgetName + ".preventClickEvent")) | |
return e.removeData(n.target, t.widgetName + ".preventClickEvent"), | |
n.stopImmediatePropagation(), | |
!1 | |
}), | |
this.started = !1 | |
}, | |
_mouseDestroy: function() { | |
this.element.unbind("." + this.widgetName), | |
this._mouseMoveDelegate && e(document).unbind("mousemove." + this.widgetName, this._mouseMoveDelegate).unbind("mouseup." + this.widgetName, this._mouseUpDelegate) | |
}, | |
_mouseDown: function(t) { | |
if (n) | |
return; | |
this._mouseStarted && this._mouseUp(t), | |
this._mouseDownEvent = t; | |
var r = this | |
, i = t.which === 1 | |
, s = typeof this.options.cancel == "string" && t.target.nodeName ? e(t.target).closest(this.options.cancel).length : !1; | |
if (!i || s || !this._mouseCapture(t)) | |
return !0; | |
this.mouseDelayMet = !this.options.delay, | |
this.mouseDelayMet || (this._mouseDelayTimer = setTimeout(function() { | |
r.mouseDelayMet = !0 | |
}, this.options.delay)); | |
if (this._mouseDistanceMet(t) && this._mouseDelayMet(t)) { | |
this._mouseStarted = this._mouseStart(t) !== !1; | |
if (!this._mouseStarted) | |
return t.preventDefault(), | |
!0 | |
} | |
return !0 === e.data(t.target, this.widgetName + ".preventClickEvent") && e.removeData(t.target, this.widgetName + ".preventClickEvent"), | |
this._mouseMoveDelegate = function(e) { | |
return r._mouseMove(e) | |
} | |
, | |
this._mouseUpDelegate = function(e) { | |
return r._mouseUp(e) | |
} | |
, | |
e(document).bind("mousemove." + this.widgetName, this._mouseMoveDelegate).bind("mouseup." + this.widgetName, this._mouseUpDelegate), | |
t.preventDefault(), | |
n = !0, | |
!0 | |
}, | |
_mouseMove: function(t) { | |
return !e.ui.ie || document.documentMode >= 9 || !!t.button ? this._mouseStarted ? (this._mouseDrag(t), | |
t.preventDefault()) : (this._mouseDistanceMet(t) && this._mouseDelayMet(t) && (this._mouseStarted = this._mouseStart(this._mouseDownEvent, t) !== !1, | |
this._mouseStarted ? this._mouseDrag(t) : this._mouseUp(t)), | |
!this._mouseStarted) : this._mouseUp(t) | |
}, | |
_mouseUp: function(t) { | |
return e(document).unbind("mousemove." + this.widgetName, this._mouseMoveDelegate).unbind("mouseup." + this.widgetName, this._mouseUpDelegate), | |
this._mouseStarted && (this._mouseStarted = !1, | |
t.target === this._mouseDownEvent.target && e.data(t.target, this.widgetName + ".preventClickEvent", !0), | |
this._mouseStop(t)), | |
!1 | |
}, | |
_mouseDistanceMet: function(e) { | |
return Math.max(Math.abs(this._mouseDownEvent.pageX - e.pageX), Math.abs(this._mouseDownEvent.pageY - e.pageY)) >= this.options.distance | |
}, | |
_mouseDelayMet: function(e) { | |
return this.mouseDelayMet | |
}, | |
_mouseStart: function(e) {}, | |
_mouseDrag: function(e) {}, | |
_mouseStop: function(e) {}, | |
_mouseCapture: function(e) { | |
return !0 | |
} | |
}) | |
}(jQuery), | |
function(e, t) { | |
e.widget("ui.draggable", e.ui.mouse, { | |
version: "1.9.1", | |
widgetEventPrefix: "drag", | |
options: { | |
addClasses: !0, | |
appendTo: "parent", | |
axis: !1, | |
connectToSortable: !1, | |
containment: !1, | |
cursor: "auto", | |
cursorAt: !1, | |
grid: !1, | |
handle: !1, | |
helper: "original", | |
iframeFix: !1, | |
opacity: !1, | |
refreshPositions: !1, | |
revert: !1, | |
revertDuration: 500, | |
scope: "default", | |
scroll: !0, | |
scrollSensitivity: 20, | |
scrollSpeed: 20, | |
snap: !1, | |
snapMode: "both", | |
snapTolerance: 20, | |
stack: !1, | |
zIndex: !1 | |
}, | |
_create: function() { | |
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() { | |
this.element.removeClass("ui-draggable ui-draggable-dragging ui-draggable-disabled"), | |
this._mouseDestroy() | |
}, | |
_mouseCapture: function(t) { | |
var n = this.options; | |
return this.helper || n.disabled || e(t.target).is(".ui-resizable-handle") ? !1 : (this.handle = this._getHandle(t), | |
this.handle ? (e(n.iframeFix === !0 ? "iframe" : n.iframeFix).each(function() { | |
e('<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(e(this).offset()).appendTo("body") | |
}), | |
!0) : !1) | |
}, | |
_mouseStart: function(t) { | |
var n = this.options; | |
return this.helper = this._createHelper(t), | |
this.helper.addClass("ui-draggable-dragging"), | |
this._cacheHelperProportions(), | |
e.ui.ddmanager && (e.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 | |
}, | |
e.extend(this.offset, { | |
click: { | |
left: t.pageX - this.offset.left, | |
top: t.pageY - this.offset.top | |
}, | |
parent: this._getParentOffset(), | |
relative: this._getRelativeOffset() | |
}), | |
this.originalPosition = this.position = this._generatePosition(t), | |
this.originalPageX = t.pageX, | |
this.originalPageY = t.pageY, | |
n.cursorAt && this._adjustOffsetFromHelper(n.cursorAt), | |
n.containment && this._setContainment(), | |
this._trigger("start", t) === !1 ? (this._clear(), | |
!1) : (this._cacheHelperProportions(), | |
e.ui.ddmanager && !n.dropBehaviour && e.ui.ddmanager.prepareOffsets(this, t), | |
this._mouseDrag(t, !0), | |
e.ui.ddmanager && e.ui.ddmanager.dragStart(this, t), | |
!0) | |
}, | |
_mouseDrag: function(t, n) { | |
this.position = this._generatePosition(t), | |
this.positionAbs = this._convertPositionTo("absolute"); | |
if (!n) { | |
var r = this._uiHash(); | |
if (this._trigger("drag", t, r) === !1) | |
return this._mouseUp({}), | |
!1; | |
this.position = r.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"; | |
return e.ui.ddmanager && e.ui.ddmanager.drag(this, t), | |
!1 | |
}, | |
_mouseStop: function(t) { | |
var n = !1; | |
e.ui.ddmanager && !this.options.dropBehaviour && (n = e.ui.ddmanager.drop(this, t)), | |
this.dropped && (n = this.dropped, | |
this.dropped = !1); | |
var r = this.element[0] | |
, i = !1; | |
while (r && (r = r.parentNode)) | |
r == document && (i = !0); | |
if (!i && this.options.helper === "original") | |
return !1; | |
if (this.options.revert == "invalid" && !n || this.options.revert == "valid" && n || this.options.revert === !0 || e.isFunction(this.options.revert) && this.options.revert.call(this.element, n)) { | |
var s = this; | |
e(this.helper).animate(this.originalPosition, parseInt(this.options.revertDuration, 10), function() { | |
s._trigger("stop", t) !== !1 && s._clear() | |
}) | |
} else | |
this._trigger("stop", t) !== !1 && this._clear(); | |
return !1 | |
}, | |
_mouseUp: function(t) { | |
return e("div.ui-draggable-iframeFix").each(function() { | |
this.parentNode.removeChild(this) | |
}), | |
e.ui.ddmanager && e.ui.ddmanager.dragStop(this, t), | |
e.ui.mouse.prototype._mouseUp.call(this, t) | |
}, | |
cancel: function() { | |
return this.helper.is(".ui-draggable-dragging") ? this._mouseUp({}) : this._clear(), | |
this | |
}, | |
_getHandle: function(t) { | |
var n = !this.options.handle || !e(this.options.handle, this.element).length ? !0 : !1; | |
return e(this.options.handle, this.element).find("*").andSelf().each(function() { | |
this == t.target && (n = !0) | |
}), | |
n | |
}, | |
_createHelper: function(t) { | |
var n = this.options | |
, r = e.isFunction(n.helper) ? e(n.helper.apply(this.element[0], [t])) : n.helper == "clone" ? this.element.clone().removeAttr("id") : this.element; | |
return r.parents("body").length || r.appendTo(n.appendTo == "parent" ? this.element[0].parentNode : n.appendTo), | |
r[0] != this.element[0] && !/(fixed|absolute)/.test(r.css("position")) && r.css("position", "absolute"), | |
r | |
}, | |
_adjustOffsetFromHelper: function(t) { | |
typeof t == "string" && (t = t.split(" ")), | |
e.isArray(t) && (t = { | |
left: +t[0], | |
top: +t[1] || 0 | |
}), | |
"left"in t && (this.offset.click.left = t.left + this.margins.left), | |
"right"in t && (this.offset.click.left = this.helperProportions.width - t.right + this.margins.left), | |
"top"in t && (this.offset.click.top = t.top + this.margins.top), | |
"bottom"in t && (this.offset.click.top = this.helperProportions.height - t.bottom + this.margins.top) | |
}, | |
_getParentOffset: function() { | |
this.offsetParent = this.helper.offsetParent(); | |
var t = this.offsetParent.offset(); | |
this.cssPosition == "absolute" && this.scrollParent[0] != document && e.contains(this.scrollParent[0], this.offsetParent[0]) && (t.left += this.scrollParent.scrollLeft(), | |
t.top += this.scrollParent.scrollTop()); | |
if (this.offsetParent[0] == document.body || this.offsetParent[0].tagName && this.offsetParent[0].tagName.toLowerCase() == "html" && e.ui.ie) | |
t = { | |
top: 0, | |
left: 0 | |
}; | |
return { | |
top: t.top + (parseInt(this.offsetParent.css("borderTopWidth"), 10) || 0), | |
left: t.left + (parseInt(this.offsetParent.css("borderLeftWidth"), 10) || 0) | |
} | |
}, | |
_getRelativeOffset: function() { | |
if (this.cssPosition == "relative") { | |
var e = this.element.position(); | |
return { | |
top: e.top - (parseInt(this.helper.css("top"), 10) || 0) + this.scrollParent.scrollTop(), | |
left: e.left - (parseInt(this.helper.css("left"), 10) || 0) + this.scrollParent.scrollLeft() | |
} | |
} | |
return { | |
top: 0, | |
left: 0 | |
} | |
}, | |
_cacheMargins: function() { | |
this.margins = { | |
left: parseInt(this.element.css("marginLeft"), 10) || 0, | |
top: parseInt(this.element.css("marginTop"), 10) || 0, | |
right: parseInt(this.element.css("marginRight"), 10) || 0, | |
bottom: parseInt(this.element.css("marginBottom"), 10) || 0 | |
} | |
}, | |
_cacheHelperProportions: function() { | |
this.helperProportions = { | |
width: this.helper.outerWidth(), | |
height: this.helper.outerHeight() | |
} | |
}, | |
_setContainment: function() { | |
var t = this.options; | |
t.containment == "parent" && (t.containment = this.helper[0].parentNode); | |
if (t.containment == "document" || t.containment == "window") | |
this.containment = [t.containment == "document" ? 0 : e(window).scrollLeft() - this.offset.relative.left - this.offset.parent.left, t.containment == "document" ? 0 : e(window).scrollTop() - this.offset.relative.top - this.offset.parent.top, (t.containment == "document" ? 0 : e(window).scrollLeft()) + e(t.containment == "document" ? document : window).width() - this.helperProportions.width - this.margins.left, (t.containment == "document" ? 0 : e(window).scrollTop()) + (e(t.containment == "document" ? document : window).height() || document.body.parentNode.scrollHeight) - this.helperProportions.height - this.margins.top]; | |
if (!/^(document|window|parent)$/.test(t.containment) && t.containment.constructor != Array) { | |
var n = e(t.containment) | |
, r = n[0]; | |
if (!r) | |
return; | |
var i = n.offset() | |
, s = e(r).css("overflow") != "hidden"; | |
this.containment = [(parseInt(e(r).css("borderLeftWidth"), 10) || 0) + (parseInt(e(r).css("paddingLeft"), 10) || 0), (parseInt(e(r).css("borderTopWidth"), 10) || 0) + (parseInt(e(r).css("paddingTop"), 10) || 0), (s ? Math.max(r.scrollWidth, r.offsetWidth) : r.offsetWidth) - (parseInt(e(r).css("borderLeftWidth"), 10) || 0) - (parseInt(e(r).css("paddingRight"), 10) || 0) - this.helperProportions.width - this.margins.left - this.margins.right, (s ? Math.max(r.scrollHeight, r.offsetHeight) : r.offsetHeight) - (parseInt(e(r).css("borderTopWidth"), 10) || 0) - (parseInt(e(r).css("paddingBottom"), 10) || 0) - this.helperProportions.height - this.margins.top - this.margins.bottom], | |
this.relative_container = n | |
} else | |
t.containment.constructor == Array && (this.containment = t.containment) | |
}, | |
_convertPositionTo: function(t, n) { | |
n || (n = this.position); | |
var r = t == "absolute" ? 1 : -1 | |
, i = this.options | |
, s = this.cssPosition != "absolute" || this.scrollParent[0] != document && !!e.contains(this.scrollParent[0], this.offsetParent[0]) ? this.scrollParent : this.offsetParent | |
, o = /(html|body)/i.test(s[0].tagName); | |
return { | |
top: n.top + this.offset.relative.top * r + this.offset.parent.top * r - (this.cssPosition == "fixed" ? -this.scrollParent.scrollTop() : o ? 0 : s.scrollTop()) * r, | |
left: n.left + this.offset.relative.left * r + this.offset.parent.left * r - (this.cssPosition == "fixed" ? -this.scrollParent.scrollLeft() : o ? 0 : s.scrollLeft()) * r | |
} | |
}, | |
_generatePosition: function(t) { | |
var n = this.options | |
, r = this.cssPosition != "absolute" || this.scrollParent[0] != document && !!e.contains(this.scrollParent[0], this.offsetParent[0]) ? this.scrollParent : this.offsetParent | |
, i = /(html|body)/i.test(r[0].tagName) | |
, s = t.pageX | |
, o = t.pageY; | |
if (this.originalPosition) { | |
var u; | |
if (this.containment) { | |
if (this.relative_container) { | |
var a = this.relative_container.offset(); | |
u = [this.containment[0] + a.left, this.containment[1] + a.top, this.containment[2] + a.left, this.containment[3] + a.top] | |
} else | |
u = this.containment; | |
t.pageX - this.offset.click.left < u[0] && (s = u[0] + this.offset.click.left), | |
t.pageY - this.offset.click.top < u[1] && (o = u[1] + this.offset.click.top), | |
t.pageX - this.offset.click.left > u[2] && (s = u[2] + this.offset.click.left), | |
t.pageY - this.offset.click.top > u[3] && (o = u[3] + this.offset.click.top) | |
} | |
if (n.grid) { | |
var f = n.grid[1] ? this.originalPageY + Math.round((o - this.originalPageY) / n.grid[1]) * n.grid[1] : this.originalPageY; | |
o = u ? f - this.offset.click.top < u[1] || f - this.offset.click.top > u[3] ? f - this.offset.click.top < u[1] ? f + n.grid[1] : f - n.grid[1] : f : f; | |
var l = n.grid[0] ? this.originalPageX + Math.round((s - this.originalPageX) / n.grid[0]) * n.grid[0] : this.originalPageX; | |
s = u ? l - this.offset.click.left < u[0] || l - this.offset.click.left > u[2] ? l - this.offset.click.left < u[0] ? l + n.grid[0] : l - n.grid[0] : l : l | |
} | |
} | |
return { | |
top: o - this.offset.click.top - this.offset.relative.top - this.offset.parent.top + (this.cssPosition == "fixed" ? -this.scrollParent.scrollTop() : i ? 0 : r.scrollTop()), | |
left: s - this.offset.click.left - this.offset.relative.left - this.offset.parent.left + (this.cssPosition == "fixed" ? -this.scrollParent.scrollLeft() : i ? 0 : r.scrollLeft()) | |
} | |
}, | |
_clear: function() { | |
this.helper.removeClass("ui-draggable-dragging"), | |
this.helper[0] != this.element[0] && !this.cancelHelperRemoval && this.helper.remove(), | |
this.helper = null, | |
this.cancelHelperRemoval = !1 | |
}, | |
_trigger: function(t, n, r) { | |
return r = r || this._uiHash(), | |
e.ui.plugin.call(this, t, [n, r]), | |
t == "drag" && (this.positionAbs = this._convertPositionTo("absolute")), | |
e.Widget.prototype._trigger.call(this, t, n, r) | |
}, | |
plugins: {}, | |
_uiHash: function(e) { | |
return { | |
helper: this.helper, | |
position: this.position, | |
originalPosition: this.originalPosition, | |
offset: this.positionAbs | |
} | |
} | |
}), | |
e.ui.plugin.add("draggable", "connectToSortable", { | |
start: function(t, n) { | |
var r = e(this).data("draggable") | |
, i = r.options | |
, s = e.extend({}, n, { | |
item: r.element | |
}); | |
r.sortables = [], | |
e(i.connectToSortable).each(function() { | |
var n = e.data(this, "sortable"); | |
n && !n.options.disabled && (r.sortables.push({ | |
instance: n, | |
shouldRevert: n.options.revert | |
}), | |
n.refreshPositions(), | |
n._trigger("activate", t, s)) | |
}) | |
}, | |
stop: function(t, n) { | |
var r = e(this).data("draggable") | |
, i = e.extend({}, n, { | |
item: r.element | |
}); | |
e.each(r.sortables, function() { | |
this.instance.isOver ? (this.instance.isOver = 0, | |
r.cancelHelperRemoval = !0, | |
this.instance.cancelHelperRemoval = !1, | |
this.shouldRevert && (this.instance.options.revert = !0), | |
this.instance._mouseStop(t), | |
this.instance.options.helper = this.instance.options._helper, | |
r.options.helper == "original" && this.instance.currentItem.css({ | |
top: "auto", | |
left: "auto" | |
})) : (this.instance.cancelHelperRemoval = !1, | |
this.instance._trigger("deactivate", t, i)) | |
}) | |
}, | |
drag: function(t, n) { | |
var r = e(this).data("draggable") | |
, i = this | |
, s = function(t) { | |
var n = this.offset.click.top | |
, r = this.offset.click.left | |
, i = this.positionAbs.top | |
, s = this.positionAbs.left | |
, o = t.height | |
, u = t.width | |
, a = t.top | |
, f = t.left; | |
return e.ui.isOver(i + n, s + r, a, f, o, u) | |
}; | |
e.each(r.sortables, function(s) { | |
var o = !1 | |
, u = this; | |
this.instance.positionAbs = r.positionAbs, | |
this.instance.helperProportions = r.helperProportions, | |
this.instance.offset.click = r.offset.click, | |
this.instance._intersectsWith(this.instance.containerCache) && (o = !0, | |
e.each(r.sortables, function() { | |
return this.instance.positionAbs = r.positionAbs, | |
this.instance.helperProportions = r.helperProportions, | |
this.instance.offset.click = r.offset.click, | |
this != u && this.instance._intersectsWith(this.instance.containerCache) && e.ui.contains(u.instance.element[0], this.instance.element[0]) && (o = !1), | |
o | |
})), | |
o ? (this.instance.isOver || (this.instance.isOver = 1, | |
this.instance.currentItem = e(i).clone().removeAttr("id").appendTo(this.instance.element).data("sortable-item", !0), | |
this.instance.options._helper = this.instance.options.helper, | |
this.instance.options.helper = function() { | |
return n.helper[0] | |
} | |
, | |
t.target = this.instance.currentItem[0], | |
this.instance._mouseCapture(t, !0), | |
this.instance._mouseStart(t, !0, !0), | |
this.instance.offset.click.top = r.offset.click.top, | |
this.instance.offset.click.left = r.offset.click.left, | |
this.instance.offset.parent.left -= r.offset.parent.left - this.instance.offset.parent.left, | |
this.instance.offset.parent.top -= r.offset.parent.top - this.instance.offset.parent.top, | |
r._trigger("toSortable", t), | |
r.dropped = this.instance.element, | |
r.currentItem = r.element, | |
this.instance.fromOutside = r), | |
this.instance.currentItem && this.instance._mouseDrag(t)) : this.instance.isOver && (this.instance.isOver = 0, | |
this.instance.cancelHelperRemoval = !0, | |
this.instance.options.revert = !1, | |
this.instance._trigger("out", t, this.instance._uiHash(this.instance)), | |
this.instance._mouseStop(t, !0), | |
this.instance.options.helper = this.instance.options._helper, | |
this.instance.currentItem.remove(), | |
this.instance.placeholder && this.instance.placeholder.remove(), | |
r._trigger("fromSortable", t), | |
r.dropped = !1) | |
}) | |
} | |
}), | |
e.ui.plugin.add("draggable", "cursor", { | |
start: function(t, n) { | |
var r = e("body") | |
, i = e(this).data("draggable").options; | |
r.css("cursor") && (i._cursor = r.css("cursor")), | |
r.css("cursor", i.cursor) | |
}, | |
stop: function(t, n) { | |
var r = e(this).data("draggable").options; | |
r._cursor && e("body").css("cursor", r._cursor) | |
} | |
}), | |
e.ui.plugin.add("draggable", "opacity", { | |
start: function(t, n) { | |
var r = e(n.helper) | |
, i = e(this).data("draggable").options; | |
r.css("opacity") && (i._opacity = r.css("opacity")), | |
r.css("opacity", i.opacity) | |
}, | |
stop: function(t, n) { | |
var r = e(this).data("draggable").options; | |
r._opacity && e(n.helper).css("opacity", r._opacity) | |
} | |
}), | |
e.ui.plugin.add("draggable", "scroll", { | |
start: function(t, n) { | |
var r = e(this).data("draggable"); | |
r.scrollParent[0] != document && r.scrollParent[0].tagName != "HTML" && (r.overflowOffset = r.scrollParent.offset()) | |
}, | |
drag: function(t, n) { | |
var r = e(this).data("draggable") | |
, i = r.options | |
, s = !1; | |
if (r.scrollParent[0] != document && r.scrollParent[0].tagName != "HTML") { | |
if (!i.axis || i.axis != "x") | |
r.overflowOffset.top + r.scrollParent[0].offsetHeight - t.pageY < i.scrollSensitivity ? r.scrollParent[0].scrollTop = s = r.scrollParent[0].scrollTop + i.scrollSpeed : t.pageY - r.overflowOffset.top < i.scrollSensitivity && (r.scrollParent[0].scrollTop = s = r.scrollParent[0].scrollTop - i.scrollSpeed); | |
if (!i.axis || i.axis != "y") | |
r.overflowOffset.left + r.scrollParent[0].offsetWidth - t.pageX < i.scrollSensitivity ? r.scrollParent[0].scrollLeft = s = r.scrollParent[0].scrollLeft + i.scrollSpeed : t.pageX - r.overflowOffset.left < i.scrollSensitivity && (r.scrollParent[0].scrollLeft = s = r.scrollParent[0].scrollLeft - i.scrollSpeed) | |
} else { | |
if (!i.axis || i.axis != "x") | |
t.pageY - e(document).scrollTop() < i.scrollSensitivity ? s = e(document).scrollTop(e(document).scrollTop() - i.scrollSpeed) : e(window).height() - (t.pageY - e(document).scrollTop()) < i.scrollSensitivity && (s = e(document).scrollTop(e(document).scrollTop() + i.scrollSpeed)); | |
if (!i.axis || i.axis != "y") | |
t.pageX - e(document).scrollLeft() < i.scrollSensitivity ? s = e(document).scrollLeft(e(document).scrollLeft() - i.scrollSpeed) : e(window).width() - (t.pageX - e(document).scrollLeft()) < i.scrollSensitivity && (s = e(document).scrollLeft(e(document).scrollLeft() + i.scrollSpeed)) | |
} | |
s !== !1 && e.ui.ddmanager && !i.dropBehaviour && e.ui.ddmanager.prepareOffsets(r, t) | |
} | |
}), | |
e.ui.plugin.add("draggable", "snap", { | |
start: function(t, n) { | |
var r = e(this).data("draggable") | |
, i = r.options; | |
r.snapElements = [], | |
e(i.snap.constructor != String ? i.snap.items || ":data(draggable)" : i.snap).each(function() { | |
var t = e(this) | |
, n = t.offset(); | |
this != r.element[0] && r.snapElements.push({ | |
item: this, | |
width: t.outerWidth(), | |
height: t.outerHeight(), | |
top: n.top, | |
left: n.left | |
}) | |
}) | |
}, | |
drag: function(t, n) { | |
var r = e(this).data("draggable") | |
, i = r.options | |
, s = i.snapTolerance | |
, o = n.offset.left | |
, u = o + r.helperProportions.width | |
, a = n.offset.top | |
, f = a + r.helperProportions.height; | |
for (var l = r.snapElements.length - 1; l >= 0; l--) { | |
var c = r.snapElements[l].left | |
, h = c + r.snapElements[l].width | |
, p = r.snapElements[l].top | |
, d = p + r.snapElements[l].height; | |
if (!(c - s < o && o < h + s && p - s < a && a < d + s || c - s < o && o < h + s && p - s < f && f < d + s || c - s < u && u < h + s && p - s < a && a < d + s || c - s < u && u < h + s && p - s < f && f < d + s)) { | |
r.snapElements[l].snapping && r.options.snap.release && r.options.snap.release.call(r.element, t, e.extend(r._uiHash(), { | |
snapItem: r.snapElements[l].item | |
})), | |
r.snapElements[l].snapping = !1; | |
continue | |
} | |
if (i.snapMode != "inner") { | |
var v = Math.abs(p - f) <= s | |
, m = Math.abs(d - a) <= s | |
, g = Math.abs(c - u) <= s | |
, y = Math.abs(h - o) <= s; | |
v && (n.position.top = r._convertPositionTo("relative", { | |
top: p - r.helperProportions.height, | |
left: 0 | |
}).top - r.margins.top), | |
m && (n.position.top = r._convertPositionTo("relative", { | |
top: d, | |
left: 0 | |
}).top - r.margins.top), | |
g && (n.position.left = r._convertPositionTo("relative", { | |
top: 0, | |
left: c - r.helperProportions.width | |
}).left - r.margins.left), | |
y && (n.position.left = r._convertPositionTo("relative", { | |
top: 0, | |
left: h | |
}).left - r.margins.left) | |
} | |
var b = v || m || g || y; | |
if (i.snapMode != "outer") { | |
var v = Math.abs(p - a) <= s | |
, m = Math.abs(d - f) <= s | |
, g = Math.abs(c - o) <= s | |
, y = Math.abs(h - u) <= s; | |
v && (n.position.top = r._convertPositionTo("relative", { | |
top: p, | |
left: 0 | |
}).top - r.margins.top), | |
m && (n.position.top = r._convertPositionTo("relative", { | |
top: d - r.helperProportions.height, | |
left: 0 | |
}).top - r.margins.top), | |
g && (n.position.left = r._convertPositionTo("relative", { | |
top: 0, | |
left: c | |
}).left - r.margins.left), | |
y && (n.position.left = r._convertPositionTo("relative", { | |
top: 0, | |
left: h - r.helperProportions.width | |
}).left - r.margins.left) | |
} | |
!r.snapElements[l].snapping && (v || m || g || y || b) && r.options.snap.snap && r.options.snap.snap.call(r.element, t, e.extend(r._uiHash(), { | |
snapItem: r.snapElements[l].item | |
})), | |
r.snapElements[l].snapping = v || m || g || y || b | |
} | |
} | |
}), | |
e.ui.plugin.add("draggable", "stack", { | |
start: function(t, n) { | |
var r = e(this).data("draggable").options | |
, i = e.makeArray(e(r.stack)).sort(function(t, n) { | |
return (parseInt(e(t).css("zIndex"), 10) || 0) - (parseInt(e(n).css("zIndex"), 10) || 0) | |
}); | |
if (!i.length) | |
return; | |
var s = parseInt(i[0].style.zIndex) || 0; | |
e(i).each(function(e) { | |
this.style.zIndex = s + e | |
}), | |
this[0].style.zIndex = s + i.length | |
} | |
}), | |
e.ui.plugin.add("draggable", "zIndex", { | |
start: function(t, n) { | |
var r = e(n.helper) | |
, i = e(this).data("draggable").options; | |
r.css("zIndex") && (i._zIndex = r.css("zIndex")), | |
r.css("zIndex", i.zIndex) | |
}, | |
stop: function(t, n) { | |
var r = e(this).data("draggable").options; | |
r._zIndex && e(n.helper).css("zIndex", r._zIndex) | |
} | |
}) | |
}(jQuery), | |
function(e, t) { | |
e.widget("ui.droppable", { | |
version: "1.9.1", | |
widgetEventPrefix: "drop", | |
options: { | |
accept: "*", | |
activeClass: !1, | |
addClasses: !0, | |
greedy: !1, | |
hoverClass: !1, | |
scope: "default", | |
tolerance: "intersect" | |
}, | |
_create: function() { | |
var t = this.options | |
, n = t.accept; | |
this.isover = 0, | |
this.isout = 1, | |
this.accept = e.isFunction(n) ? n : function(e) { | |
return e.is(n) | |
} | |
, | |
this.proportions = { | |
width: this.element[0].offsetWidth, | |
height: this.element[0].offsetHeight | |
}, | |
e.ui.ddmanager.droppables[t.scope] = e.ui.ddmanager.droppables[t.scope] || [], | |
e.ui.ddmanager.droppables[t.scope].push(this), | |
t.addClasses && this.element.addClass("ui-droppable") | |
}, | |
_destroy: function() { | |
var t = e.ui.ddmanager.droppables[this.options.scope]; | |
for (var n = 0; n < t.length; n++) | |
t[n] == this && t.splice(n, 1); | |
this.element.removeClass("ui-droppable ui-droppable-disabled") | |
}, | |
_setOption: function(t, n) { | |
t == "accept" && (this.accept = e.isFunction(n) ? n : function(e) { | |
return e.is(n) | |
} | |
), | |
e.Widget.prototype._setOption.apply(this, arguments) | |
}, | |
_activate: function(t) { | |
var n = e.ui.ddmanager.current; | |
this.options.activeClass && this.element.addClass(this.options.activeClass), | |
n && this._trigger("activate", t, this.ui(n)) | |
}, | |
_deactivate: function(t) { | |
var n = e.ui.ddmanager.current; | |
this.options.activeClass && this.element.removeClass(this.options.activeClass), | |
n && this._trigger("deactivate", t, this.ui(n)) | |
}, | |
_over: function(t) { | |
var n = e.ui.ddmanager.current; | |
if (!n || (n.currentItem || n.element)[0] == this.element[0]) | |
return; | |
this.accept.call(this.element[0], n.currentItem || n.element) && (this.options.hoverClass && this.element.addClass(this.options.hoverClass), | |
this._trigger("over", t, this.ui(n))) | |
}, | |
_out: function(t) { | |
var n = e.ui.ddmanager.current; | |
if (!n || (n.currentItem || n.element)[0] == this.element[0]) | |
return; | |
this.accept.call(this.element[0], n.currentItem || n.element) && (this.options.hoverClass && this.element.removeClass(this.options.hoverClass), | |
this._trigger("out", t, this.ui(n))) | |
}, | |
_drop: function(t, n) { | |
var r = n || e.ui.ddmanager.current; | |
if (!r || (r.currentItem || r.element)[0] == this.element[0]) | |
return !1; | |
var i = !1; | |
return this.element.find(":data(droppable)").not(".ui-draggable-dragging").each(function() { | |
var t = e.data(this, "droppable"); | |
if (t.options.greedy && !t.options.disabled && t.options.scope == r.options.scope && t.accept.call(t.element[0], r.currentItem || r.element) && e.ui.intersect(r, e.extend(t, { | |
offset: t.element.offset() | |
}), t.options.tolerance)) | |
return i = !0, | |
!1 | |
}), | |
i ? !1 : this.accept.call(this.element[0], r.currentItem || r.element) ? (this.options.activeClass && this.element.removeClass(this.options.activeClass), | |
this.options.hoverClass && this.element.removeClass(this.options.hoverClass), | |
this._trigger("drop", t, this.ui(r)), | |
this.element) : !1 | |
}, | |
ui: function(e) { | |
return { | |
draggable: e.currentItem || e.element, | |
helper: e.helper, | |
position: e.position, | |
offset: e.positionAbs | |
} | |
} | |
}), | |
e.ui.intersect = function(t, n, r) { | |
if (!n.offset) | |
return !1; | |
var i = (t.positionAbs || t.position.absolute).left | |
, s = i + t.helperProportions.width | |
, o = (t.positionAbs || t.position.absolute).top | |
, u = o + t.helperProportions.height | |
, a = n.offset.left | |
, f = a + n.proportions.width | |
, l = n.offset.top | |
, c = l + n.proportions.height; | |
switch (r) { | |
case "fit": | |
return a <= i && s <= f && l <= o && u <= c; | |
case "intersect": | |
return a < i + t.helperProportions.width / 2 && s - t.helperProportions.width / 2 < f && l < o + t.helperProportions.height / 2 && u - t.helperProportions.height / 2 < c; | |
case "pointer": | |
var h = (t.positionAbs || t.position.absolute).left + (t.clickOffset || t.offset.click).left | |
, p = (t.positionAbs || t.position.absolute).top + (t.clickOffset || t.offset.click).top | |
, d = e.ui.isOver(p, h, l, a, n.proportions.height, n.proportions.width); | |
return d; | |
case "touch": | |
return (o >= l && o <= c || u >= l && u <= c || o < l && u > c) && (i >= a && i <= f || s >= a && s <= f || i < a && s > f); | |
default: | |
return !1 | |
} | |
} | |
, | |
e.ui.ddmanager = { | |
current: null, | |
droppables: { | |
"default": [] | |
}, | |
prepareOffsets: function(t, n) { | |
var r = e.ui.ddmanager.droppables[t.options.scope] || [] | |
, i = n ? n.type : null | |
, s = (t.currentItem || t.element).find(":data(droppable)").andSelf(); | |
e: for (var o = 0; o < r.length; o++) { | |
if (r[o].options.disabled || t && !r[o].accept.call(r[o].element[0], t.currentItem || t.element)) | |
continue; | |
for (var u = 0; u < s.length; u++) | |
if (s[u] == r[o].element[0]) { | |
r[o].proportions.height = 0; | |
continue e | |
} | |
r[o].visible = r[o].element.css("display") != "none"; | |
if (!r[o].visible) | |
continue; | |
i == "mousedown" && r[o]._activate.call(r[o], n), | |
r[o].offset = r[o].element.offset(), | |
r[o].proportions = { | |
width: r[o].element[0].offsetWidth, | |
height: r[o].element[0].offsetHeight | |
} | |
} | |
}, | |
drop: function(t, n) { | |
var r = !1; | |
return e.each(e.ui.ddmanager.droppables[t.options.scope] || [], function() { | |
if (!this.options) | |
return; | |
!this.options.disabled && this.visible && e.ui.intersect(t, this, this.options.tolerance) && (r = this._drop.call(this, n) || r), | |
!this.options.disabled && this.visible && this.accept.call(this.element[0], t.currentItem || t.element) && (this.isout = 1, | |
this.isover = 0, | |
this._deactivate.call(this, n)) | |
}), | |
r | |
}, | |
dragStart: function(t, n) { | |
t.element.parentsUntil("body").bind("scroll.droppable", function() { | |
t.options.refreshPositions || e.ui.ddmanager.prepareOffsets(t, n) | |
}) | |
}, | |
drag: function(t, n) { | |
t.options.refreshPositions && e.ui.ddmanager.prepareOffsets(t, n), | |
e.each(e.ui.ddmanager.droppables[t.options.scope] || [], function() { | |
if (this.options.disabled || this.greedyChild || !this.visible) | |
return; | |
var r = e.ui.intersect(t, this, this.options.tolerance) | |
, i = !r && this.isover == 1 ? "isout" : r && this.isover == 0 ? "isover" : null; | |
if (!i) | |
return; | |
var s; | |
if (this.options.greedy) { | |
var o = this.options.scope | |
, u = this.element.parents(":data(droppable)").filter(function() { | |
return e.data(this, "droppable").options.scope === o | |
}); | |
u.length && (s = e.data(u[0], "droppable"), | |
s.greedyChild = i == "isover" ? 1 : 0) | |
} | |
s && i == "isover" && (s.isover = 0, | |
s.isout = 1, | |
s._out.call(s, n)), | |
this[i] = 1, | |
this[i == "isout" ? "isover" : "isout"] = 0, | |
this[i == "isover" ? "_over" : "_out"].call(this, n), | |
s && i == "isout" && (s.isout = 0, | |
s.isover = 1, | |
s._over.call(s, n)) | |
}) | |
}, | |
dragStop: function(t, n) { | |
t.element.parentsUntil("body").unbind("scroll.droppable"), | |
t.options.refreshPositions || e.ui.ddmanager.prepareOffsets(t, n) | |
} | |
} | |
}(jQuery), | |
function(e, t) { | |
e.widget("ui.resizable", e.ui.mouse, { | |
version: "1.9.1", | |
widgetEventPrefix: "resize", | |
options: { | |
alsoResize: !1, | |
animate: !1, | |
animateDuration: "slow", | |
animateEasing: "swing", | |
aspectRatio: !1, | |
autoHide: !1, | |
containment: !1, | |
ghost: !1, | |
grid: !1, | |
handles: "e,s,se", | |
helper: !1, | |
maxHeight: null, | |
maxWidth: null, | |
minHeight: 10, | |
minWidth: 10, | |
zIndex: 1e3 | |
}, | |
_create: function() { | |
var t = this | |
, n = this.options; | |
this.element.addClass("ui-resizable"), | |
e.extend(this, { | |
_aspectRatio: !!n.aspectRatio, | |
aspectRatio: n.aspectRatio, | |
originalElement: this.element, | |
_proportionallyResizeElements: [], | |
_helper: n.helper || n.ghost || n.animate ? n.helper || "ui-resizable-helper" : null | |
}), | |
this.element[0].nodeName.match(/canvas|textarea|input|select|button|img/i) && (this.element.wrap(e('<div class="ui-wrapper" style="overflow: hidden;"></div>').css({ | |
position: this.element.css("position"), | |
width: this.element.outerWidth(), | |
height: this.element.outerHeight(), | |
top: this.element.css("top"), | |
left: this.element.css("left") | |
})), | |
this.element = this.element.parent().data("resizable", this.element.data("resizable")), | |
this.elementIsWrapper = !0, | |
this.element.css({ | |
marginLeft: this.originalElement.css("marginLeft"), | |
marginTop: this.originalElement.css("marginTop"), | |
marginRight: this.originalElement.css("marginRight"), | |
marginBottom: this.originalElement.css("marginBottom") | |
}), | |
this.originalElement.css({ | |
marginLeft: 0, | |
marginTop: 0, | |
marginRight: 0, | |
marginBottom: 0 | |
}), | |
this.originalResizeStyle = this.originalElement.css("resize"), | |
this.originalElement.css("resize", "none"), | |
this._proportionallyResizeElements.push(this.originalElement.css({ | |
position: "static", | |
zoom: 1, | |
display: "block" | |
})), | |
this.originalElement.css({ | |
margin: this.originalElement.css("margin") | |
}), | |
this._proportionallyResize()), | |
this.handles = n.handles || (e(".ui-resizable-handle", this.element).length ? { | |
n: ".ui-resizable-n", | |
e: ".ui-resizable-e", | |
s: ".ui-resizable-s", | |
w: ".ui-resizable-w", | |
se: ".ui-resizable-se", | |
sw: ".ui-resizable-sw", | |
ne: ".ui-resizable-ne", | |
nw: ".ui-resizable-nw" | |
} : "e,s,se"); | |
if (this.handles.constructor == String) { | |
this.handles == "all" && (this.handles = "n,e,s,w,se,sw,ne,nw"); | |
var r = this.handles.split(","); | |
this.handles = {}; | |
for (var i = 0; i < r.length; i++) { | |
var s = e.trim(r[i]) | |
, o = "ui-resizable-" + s | |
, u = e('<div class="ui-resizable-handle ' + o + '"></div>'); | |
u.css({ | |
zIndex: n.zIndex | |
}), | |
"se" == s && u.addClass("ui-icon ui-icon-gripsmall-diagonal-se"), | |
this.handles[s] = ".ui-resizable-" + s, | |
this.element.append(u) | |
} | |
} | |
this._renderAxis = function(t) { | |
t = t || this.element; | |
for (var n in this.handles) { | |
this.handles[n].constructor == String && (this.handles[n] = e(this.handles[n], this.element).show()); | |
if (this.elementIsWrapper && this.originalElement[0].nodeName.match(/textarea|input|select|button/i)) { | |
var r = e(this.handles[n], this.element) | |
, i = 0; | |
i = /sw|ne|nw|se|n|s/.test(n) ? r.outerHeight() : r.outerWidth(); | |
var s = ["padding", /ne|nw|n/.test(n) ? "Top" : /se|sw|s/.test(n) ? "Bottom" : /^e$/.test(n) ? "Right" : "Left"].join(""); | |
t.css(s, i), | |
this._proportionallyResize() | |
} | |
if (!e(this.handles[n]).length) | |
continue | |
} | |
} | |
, | |
this._renderAxis(this.element), | |
this._handles = e(".ui-resizable-handle", this.element).disableSelection(), | |
this._handles.mouseover(function() { | |
if (!t.resizing) { | |
if (this.className) | |
var e = this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i); | |
t.axis = e && e[1] ? e[1] : "se" | |
} | |
}), | |
n.autoHide && (this._handles.hide(), | |
e(this.element).addClass("ui-resizable-autohide").mouseenter(function() { | |
if (n.disabled) | |
return; | |
e(this).removeClass("ui-resizable-autohide"), | |
t._handles.show() | |
}).mouseleave(function() { | |
if (n.disabled) | |
return; | |
t.resizing || (e(this).addClass("ui-resizable-autohide"), | |
t._handles.hide()) | |
})), | |
this._mouseInit() | |
}, | |
_destroy: function() { | |
this._mouseDestroy(); | |
var t = function(t) { | |
e(t).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").removeData("ui-resizable").unbind(".resizable").find(".ui-resizable-handle").remove() | |
}; | |
if (this.elementIsWrapper) { | |
t(this.element); | |
var n = this.element; | |
this.originalElement.css({ | |
position: n.css("position"), | |
width: n.outerWidth(), | |
height: n.outerHeight(), | |
top: n.css("top"), | |
left: n.css("left") | |
}).insertAfter(n), | |
n.remove() | |
} | |
return this.originalElement.css("resize", this.originalResizeStyle), | |
t(this.originalElement), | |
this | |
}, | |
_mouseCapture: function(t) { | |
var n = !1; | |
for (var r in this.handles) | |
e(this.handles[r])[0] == t.target && (n = !0); | |
return !this.options.disabled && n | |
}, | |
_mouseStart: function(t) { | |
var r = this.options | |
, i = this.element.position() | |
, s = this.element; | |
this.resizing = !0, | |
this.documentScroll = { | |
top: e(document).scrollTop(), | |
left: e(document).scrollLeft() | |
}, | |
(s.is(".ui-draggable") || /absolute/.test(s.css("position"))) && s.css({ | |
position: "absolute", | |
top: i.top, | |
left: i.left | |
}), | |
this._renderProxy(); | |
var o = n(this.helper.css("left")) | |
, u = n(this.helper.css("top")); | |
r.containment && (o += e(r.containment).scrollLeft() || 0, | |
u += e(r.containment).scrollTop() || 0), | |
this.offset = this.helper.offset(), | |
this.position = { | |
left: o, | |
top: u | |
}, | |
this.size = this._helper ? { | |
width: s.outerWidth(), | |
height: s.outerHeight() | |
} : { | |
width: s.width(), | |
height: s.height() | |
}, | |
this.originalSize = this._helper ? { | |
width: s.outerWidth(), | |
height: s.outerHeight() | |
} : { | |
width: s.width(), | |
height: s.height() | |
}, | |
this.originalPosition = { | |
left: o, | |
top: u | |
}, | |
this.sizeDiff = { | |
width: s.outerWidth() - s.width(), | |
height: s.outerHeight() - s.height() | |
}, | |
this.originalMousePosition = { | |
left: t.pageX, | |
top: t.pageY | |
}, | |
this.aspectRatio = typeof r.aspectRatio == "number" ? r.aspectRatio : this.originalSize.width / this.originalSize.height || 1; | |
var a = e(".ui-resizable-" + this.axis).css("cursor"); | |
return e("body").css("cursor", a == "auto" ? this.axis + "-resize" : a), | |
s.addClass("ui-resizable-resizing"), | |
this._propagate("start", t), | |
!0 | |
}, | |
_mouseDrag: function(e) { | |
var t = this.helper | |
, n = this.options | |
, r = {} | |
, i = this | |
, s = this.originalMousePosition | |
, o = this.axis | |
, u = e.pageX - s.left || 0 | |
, a = e.pageY - s.top || 0 | |
, f = this._change[o]; | |
if (!f) | |
return !1; | |
var l = f.apply(this, [e, u, a]); | |
this._updateVirtualBoundaries(e.shiftKey); | |
if (this._aspectRatio || e.shiftKey) | |
l = this._updateRatio(l, e); | |
return l = this._respectSize(l, e), | |
this._propagate("resize", e), | |
t.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(l), | |
this._trigger("resize", e, this.ui()), | |
!1 | |
}, | |
_mouseStop: function(t) { | |
this.resizing = !1; | |
var n = this.options | |
, r = this; | |
if (this._helper) { | |
var i = this._proportionallyResizeElements | |
, s = i.length && /textarea/i.test(i[0].nodeName) | |
, o = s && e.ui.hasScroll(i[0], "left") ? 0 : r.sizeDiff.height | |
, u = s ? 0 : r.sizeDiff.width | |
, a = { | |
width: r.helper.width() - u, | |
height: r.helper.height() - o | |
} | |
, f = parseInt(r.element.css("left"), 10) + (r.position.left - r.originalPosition.left) || null | |
, l = parseInt(r.element.css("top"), 10) + (r.position.top - r.originalPosition.top) || null; | |
n.animate || this.element.css(e.extend(a, { | |
top: l, | |
left: f | |
})), | |
r.helper.height(r.size.height), | |
r.helper.width(r.size.width), | |
this._helper && !n.animate && this._proportionallyResize() | |
} | |
return e("body").css("cursor", "auto"), | |
this.element.removeClass("ui-resizable-resizing"), | |
this._propagate("stop", t), | |
this._helper && this.helper.remove(), | |
!1 | |
}, | |
_updateVirtualBoundaries: function(e) { | |
var t = this.options, n, i, s, o, u; | |
u = { | |
minWidth: r(t.minWidth) ? t.minWidth : 0, | |
maxWidth: r(t.maxWidth) ? t.maxWidth : Infinity, | |
minHeight: r(t.minHeight) ? t.minHeight : 0, | |
maxHeight: r(t.maxHeight) ? t.maxHeight : Infinity | |
}; | |
if (this._aspectRatio || e) | |
n = u.minHeight * this.aspectRatio, | |
s = u.minWidth / this.aspectRatio, | |
i = u.maxHeight * this.aspectRatio, | |
o = u.maxWidth / this.aspectRatio, | |
n > u.minWidth && (u.minWidth = n), | |
s > u.minHeight && (u.minHeight = s), | |
i < u.maxWidth && (u.maxWidth = i), | |
o < u.maxHeight && (u.maxHeight = o); | |
this._vBoundaries = u | |
}, | |
_updateCache: function(e) { | |
var t = this.options; | |
this.offset = this.helper.offset(), | |
r(e.left) && (this.position.left = e.left), | |
r(e.top) && (this.position.top = e.top), | |
r(e.height) && (this.size.height = e.height), | |
r(e.width) && (this.size.width = e.width) | |
}, | |
_updateRatio: function(e, t) { | |
var n = this.options | |
, i = this.position | |
, s = this.size | |
, o = this.axis; | |
return r(e.height) ? e.width = e.height * this.aspectRatio : r(e.width) && (e.height = e.width / this.aspectRatio), | |
o == "sw" && (e.left = i.left + (s.width - e.width), | |
e.top = null), | |
o == "nw" && (e.top = i.top + (s.height - e.height), | |
e.left = i.left + (s.width - e.width)), | |
e | |
}, | |
_respectSize: function(e, t) { | |
var n = this.helper | |
, i = this._vBoundaries | |
, s = this._aspectRatio || t.shiftKey | |
, o = this.axis | |
, u = r(e.width) && i.maxWidth && i.maxWidth < e.width | |
, a = r(e.height) && i.maxHeight && i.maxHeight < e.height | |
, f = r(e.width) && i.minWidth && i.minWidth > e.width | |
, l = r(e.height) && i.minHeight && i.minHeight > e.height; | |
f && (e.width = i.minWidth), | |
l && (e.height = i.minHeight), | |
u && (e.width = i.maxWidth), | |
a && (e.height = i.maxHeight); | |
var c = this.originalPosition.left + this.originalSize.width | |
, h = this.position.top + this.size.height | |
, p = /sw|nw|w/.test(o) | |
, d = /nw|ne|n/.test(o); | |
f && p && (e.left = c - i.minWidth), | |
u && p && (e.left = c - i.maxWidth), | |
l && d && (e.top = h - i.minHeight), | |
a && d && (e.top = h - i.maxHeight); | |
var v = !e.width && !e.height; | |
return v && !e.left && e.top ? e.top = null : v && !e.top && e.left && (e.left = null), | |
e | |
}, | |
_proportionallyResize: function() { | |
var t = this.options; | |
if (!this._proportionallyResizeElements.length) | |
return; | |
var n = this.helper || this.element; | |
for (var r = 0; r < this._proportionallyResizeElements.length; r++) { | |
var i = this._proportionallyResizeElements[r]; | |
if (!this.borderDif) { | |
var s = [i.css("borderTopWidth"), i.css("borderRightWidth"), i.css("borderBottomWidth"), i.css("borderLeftWidth")] | |
, o = [i.css("paddingTop"), i.css("paddingRight"), i.css("paddingBottom"), i.css("paddingLeft")]; | |
this.borderDif = e.map(s, function(e, t) { | |
var n = parseInt(e, 10) || 0 | |
, r = parseInt(o[t], 10) || 0; | |
return n + r | |
}) | |
} | |
i.css({ | |
height: n.height() - this.borderDif[0] - this.borderDif[2] || 0, | |
width: n.width() - this.borderDif[1] - this.borderDif[3] || 0 | |
}) | |
} | |
}, | |
_renderProxy: function() { | |
var t = this.element | |
, n = this.options; | |
this.elementOffset = t.offset(); | |
if (this._helper) { | |
this.helper = this.helper || e('<div style="overflow:hidden;"></div>'); | |
var r = e.ui.ie6 ? 1 : 0 | |
, i = e.ui.ie6 ? 2 : -1; | |
this.helper.addClass(this._helper).css({ | |
width: this.element.outerWidth() + i, | |
height: this.element.outerHeight() + i, | |
position: "absolute", | |
left: this.elementOffset.left - r + "px", | |
top: this.elementOffset.top - r + "px", | |
zIndex: ++n.zIndex | |
}), | |
this.helper.appendTo("body").disableSelection() | |
} else | |
this.helper = this.element | |
}, | |
_change: { | |
e: function(e, t, n) { | |
return { | |
width: this.originalSize.width + t | |
} | |
}, | |
w: function(e, t, n) { | |
var r = this.options | |
, i = this.originalSize | |
, s = this.originalPosition; | |
return { | |
left: s.left + t, | |
width: i.width - t | |
} | |
}, | |
n: function(e, t, n) { | |
var r = this.options | |
, i = this.originalSize | |
, s = this.originalPosition; | |
return { | |
top: s.top + n, | |
height: i.height - n | |
} | |
}, | |
s: function(e, t, n) { | |
return { | |
height: this.originalSize.height + n | |
} | |
}, | |
se: function(t, n, r) { | |
return e.extend(this._change.s.apply(this, arguments), this._change.e.apply(this, [t, n, r])) | |
}, | |
sw: function(t, n, r) { | |
return e.extend(this._change.s.apply(this, arguments), this._change.w.apply(this, [t, n, r])) | |
}, | |
ne: function(t, n, r) { | |
return e.extend(this._change.n.apply(this, arguments), this._change.e.apply(this, [t, n, r])) | |
}, | |
nw: function(t, n, r) { | |
return e.extend(this._change.n.apply(this, arguments), this._change.w.apply(this, [t, n, r])) | |
} | |
}, | |
_propagate: function(t, n) { | |
e.ui.plugin.call(this, t, [n, this.ui()]), | |
t != "resize" && this._trigger(t, n, this.ui()) | |
}, | |
plugins: {}, | |
ui: function() { | |
return { | |
originalElement: this.originalElement, | |
element: this.element, | |
helper: this.helper, | |
position: this.position, | |
size: this.size, | |
originalSize: this.originalSize, | |
originalPosition: this.originalPosition | |
} | |
} | |
}), | |
e.ui.plugin.add("resizable", "alsoResize", { | |
start: function(t, n) { | |
var r = e(this).data("resizable") | |
, i = r.options | |
, s = function(t) { | |
e(t).each(function() { | |
var t = e(this); | |
t.data("resizable-alsoresize", { | |
width: parseInt(t.width(), 10), | |
height: parseInt(t.height(), 10), | |
left: parseInt(t.css("left"), 10), | |
top: parseInt(t.css("top"), 10) | |
}) | |
}) | |
}; | |
typeof i.alsoResize == "object" && !i.alsoResize.parentNode ? i.alsoResize.length ? (i.alsoResize = i.alsoResize[0], | |
s(i.alsoResize)) : e.each(i.alsoResize, function(e) { | |
s(e) | |
}) : s(i.alsoResize) | |
}, | |
resize: function(t, n) { | |
var r = e(this).data("resizable") | |
, i = r.options | |
, s = r.originalSize | |
, o = r.originalPosition | |
, u = { | |
height: r.size.height - s.height || 0, | |
width: r.size.width - s.width || 0, | |
top: r.position.top - o.top || 0, | |
left: r.position.left - o.left || 0 | |
} | |
, a = function(t, r) { | |
e(t).each(function() { | |
var t = e(this) | |
, i = e(this).data("resizable-alsoresize") | |
, s = {} | |
, o = r && r.length ? r : t.parents(n.originalElement[0]).length ? ["width", "height"] : ["width", "height", "top", "left"]; | |
e.each(o, function(e, t) { | |
var n = (i[t] || 0) + (u[t] || 0); | |
n && n >= 0 && (s[t] = n || null) | |
}), | |
t.css(s) | |
}) | |
}; | |
typeof i.alsoResize == "object" && !i.alsoResize.nodeType ? e.each(i.alsoResize, function(e, t) { | |
a(e, t) | |
}) : a(i.alsoResize) | |
}, | |
stop: function(t, n) { | |
e(this).removeData("resizable-alsoresize") | |
} | |
}), | |
e.ui.plugin.add("resizable", "animate", { | |
stop: function(t, n) { | |
var r = e(this).data("resizable") | |
, i = r.options | |
, s = r._proportionallyResizeElements | |
, o = s.length && /textarea/i.test(s[0].nodeName) | |
, u = o && e.ui.hasScroll(s[0], "left") ? 0 : r.sizeDiff.height | |
, a = o ? 0 : r.sizeDiff.width | |
, f = { | |
width: r.size.width - a, | |
height: r.size.height - u | |
} | |
, l = parseInt(r.element.css("left"), 10) + (r.position.left - r.originalPosition.left) || null | |
, c = parseInt(r.element.css("top"), 10) + (r.position.top - r.originalPosition.top) || null; | |
r.element.animate(e.extend(f, c && l ? { | |
top: c, | |
left: l | |
} : {}), { | |
duration: i.animateDuration, | |
easing: i.animateEasing, | |
step: function() { | |
var n = { | |
width: parseInt(r.element.css("width"), 10), | |
height: parseInt(r.element.css("height"), 10), | |
top: parseInt(r.element.css("top"), 10), | |
left: parseInt(r.element.css("left"), 10) | |
}; | |
s && s.length && e(s[0]).css({ | |
width: n.width, | |
height: n.height | |
}), | |
r._updateCache(n), | |
r._propagate("resize", t) | |
} | |
}) | |
} | |
}), | |
e.ui.plugin.add("resizable", "containment", { | |
start: function(t, r) { | |
var i = e(this).data("resizable") | |
, s = i.options | |
, o = i.element | |
, u = s.containment | |
, a = u instanceof e ? u.get(0) : /parent/.test(u) ? o.parent().get(0) : u; | |
if (!a) | |
return; | |
i.containerElement = e(a); | |
if (/document/.test(u) || u == document) | |
i.containerOffset = { | |
left: 0, | |
top: 0 | |
}, | |
i.containerPosition = { | |
left: 0, | |
top: 0 | |
}, | |
i.parentData = { | |
element: e(document), | |
left: 0, | |
top: 0, | |
width: e(document).width(), | |
height: e(document).height() || document.body.parentNode.scrollHeight | |
}; | |
else { | |
var f = e(a) | |
, l = []; | |
e(["Top", "Right", "Left", "Bottom"]).each(function(e, t) { | |
l[e] = n(f.css("padding" + t)) | |
}), | |
i.containerOffset = f.offset(), | |
i.containerPosition = f.position(), | |
i.containerSize = { | |
height: f.innerHeight() - l[3], | |
width: f.innerWidth() - l[1] | |
}; | |
var c = i.containerOffset | |
, h = i.containerSize.height | |
, p = i.containerSize.width | |
, d = e.ui.hasScroll(a, "left") ? a.scrollWidth : p | |
, v = e.ui.hasScroll(a) ? a.scrollHeight : h; | |
i.parentData = { | |
element: a, | |
left: c.left, | |
top: c.top, | |
width: d, | |
height: v | |
} | |
} | |
}, | |
resize: function(t, n) { | |
var r = e(this).data("resizable") | |
, i = r.options | |
, s = r.containerSize | |
, o = r.containerOffset | |
, u = r.size | |
, a = r.position | |
, f = r._aspectRatio || t.shiftKey | |
, l = { | |
top: 0, | |
left: 0 | |
} | |
, c = r.containerElement; | |
c[0] != document && /static/.test(c.css("position")) && (l = o), | |
a.left < (r._helper ? o.left : 0) && (r.size.width = r.size.width + (r._helper ? r.position.left - o.left : r.position.left - l.left), | |
f && (r.size.height = r.size.width / r.aspectRatio), | |
r.position.left = i.helper ? o.left : 0), | |
a.top < (r._helper ? o.top : 0) && (r.size.height = r.size.height + (r._helper ? r.position.top - o.top : r.position.top), | |
f && (r.size.width = r.size.height * r.aspectRatio), | |
r.position.top = r._helper ? o.top : 0), | |
r.offset.left = r.parentData.left + r.position.left, | |
r.offset.top = r.parentData.top + r.position.top; | |
var h = Math.abs((r._helper ? r.offset.left - l.left : r.offset.left - l.left) + r.sizeDiff.width) | |
, p = Math.abs((r._helper ? r.offset.top - l.top : r.offset.top - o.top) + r.sizeDiff.height) | |
, d = r.containerElement.get(0) == r.element.parent().get(0) | |
, v = /relative|absolute/.test(r.containerElement.css("position")); | |
d && v && (h -= r.parentData.left), | |
h + r.size.width >= r.parentData.width && (r.size.width = r.parentData.width - h, | |
f && (r.size.height = r.size.width / r.aspectRatio)), | |
p + r.size.height >= r.parentData.height && (r.size.height = r.parentData.height - p, | |
f && (r.size.width = r.size.height * r.aspectRatio)) | |
}, | |
stop: function(t, n) { | |
var r = e(this).data("resizable") | |
, i = r.options | |
, s = r.position | |
, o = r.containerOffset | |
, u = r.containerPosition | |
, a = r.containerElement | |
, f = e(r.helper) | |
, l = f.offset() | |
, c = f.outerWidth() - r.sizeDiff.width | |
, h = f.outerHeight() - r.sizeDiff.height; | |
r._helper && !i.animate && /relative/.test(a.css("position")) && e(this).css({ | |
left: l.left - u.left - o.left, | |
width: c, | |
height: h | |
}), | |
r._helper && !i.animate && /static/.test(a.css("position")) && e(this).css({ | |
left: l.left - u.left - o.left, | |
width: c, | |
height: h | |
}) | |
} | |
}), | |
e.ui.plugin.add("resizable", "ghost", { | |
start: function(t, n) { | |
var r = e(this).data("resizable") | |
, i = r.options | |
, s = r.size; | |
r.ghost = r.originalElement.clone(), | |
r.ghost.css({ | |
opacity: .25, | |
display: "block", | |
position: "relative", | |
height: s.height, | |
width: s.width, | |
margin: 0, | |
left: 0, | |
top: 0 | |
}).addClass("ui-resizable-ghost").addClass(typeof i.ghost == "string" ? i.ghost : ""), | |
r.ghost.appendTo(r.helper) | |
}, | |
resize: function(t, n) { | |
var r = e(this).data("resizable") | |
, i = r.options; | |
r.ghost && r.ghost.css({ | |
position: "relative", | |
height: r.size.height, | |
width: r.size.width | |
}) | |
}, | |
stop: function(t, n) { | |
var r = e(this).data("resizable") | |
, i = r.options; | |
r.ghost && r.helper && r.helper.get(0).removeChild(r.ghost.get(0)) | |
} | |
}), | |
e.ui.plugin.add("resizable", "grid", { | |
resize: function(t, n) { | |
var r = e(this).data("resizable") | |
, i = r.options | |
, s = r.size | |
, o = r.originalSize | |
, u = r.originalPosition | |
, a = r.axis | |
, f = i._aspectRatio || t.shiftKey; | |
i.grid = typeof i.grid == "number" ? [i.grid, i.grid] : i.grid; | |
var l = Math.round((s.width - o.width) / (i.grid[0] || 1)) * (i.grid[0] || 1) | |
, c = Math.round((s.height - o.height) / (i.grid[1] || 1)) * (i.grid[1] || 1); | |
/^(se|s|e)$/.test(a) ? (r.size.width = o.width + l, | |
r.size.height = o.height + c) : /^(ne)$/.test(a) ? (r.size.width = o.width + l, | |
r.size.height = o.height + c, | |
r.position.top = u.top - c) : /^(sw)$/.test(a) ? (r.size.width = o.width + l, | |
r.size.height = o.height + c, | |
r.position.left = u.left - l) : (r.size.width = o.width + l, | |
r.size.height = o.height + c, | |
r.position.top = u.top - c, | |
r.position.left = u.left - l) | |
} | |
}); | |
var n = function(e) { | |
return parseInt(e, 10) || 0 | |
} | |
, r = function(e) { | |
return !isNaN(parseInt(e, 10)) | |
} | |
}(jQuery), | |
function(e, t) { | |
e.widget("ui.selectable", e.ui.mouse, { | |
version: "1.9.1", | |
options: { | |
appendTo: "body", | |
autoRefresh: !0, | |
distance: 0, | |
filter: "*", | |
tolerance: "touch" | |
}, | |
_create: function() { | |
var t = this; | |
this.element.addClass("ui-selectable"), | |
this.dragged = !1; | |
var n; | |
this.refresh = function() { | |
n = e(t.options.filter, t.element[0]), | |
n.addClass("ui-selectee"), | |
n.each(function() { | |
var t = e(this) | |
, n = t.offset(); | |
e.data(this, "selectable-item", { | |
element: this, | |
$element: t, | |
left: n.left, | |
top: n.top, | |
right: n.left + t.outerWidth(), | |
bottom: n.top + t.outerHeight(), | |
startselected: !1, | |
selected: t.hasClass("ui-selected"), | |
selecting: t.hasClass("ui-selecting"), | |
unselecting: t.hasClass("ui-unselecting") | |
}) | |
}) | |
} | |
, | |
this.refresh(), | |
this.selectees = n.addClass("ui-selectee"), | |
this._mouseInit(), | |
this.helper = e("<div class='ui-selectable-helper'></div>") | |
}, | |
_destroy: function() { | |
this.selectees.removeClass("ui-selectee").removeData("selectable-item"), | |
this.element.removeClass("ui-selectable ui-selectable-disabled"), | |
this._mouseDestroy() | |
}, | |
_mouseStart: function(t) { | |
var n = this; | |
this.opos = [t.pageX, t.pageY]; | |
if (this.options.disabled) | |
return; | |
var r = this.options; | |
this.selectees = e(r.filter, this.element[0]), | |
this._trigger("start", t), | |
e(r.appendTo).append(this.helper), | |
this.helper.css({ | |
left: t.clientX, | |
top: t.clientY, | |
width: 0, | |
height: 0 | |
}), | |
r.autoRefresh && this.refresh(), | |
this.selectees.filter(".ui-selected").each(function() { | |
var r = e.data(this, "selectable-item"); | |
r.startselected = !0, | |
!t.metaKey && !t.ctrlKey && (r.$element.removeClass("ui-selected"), | |
r.selected = !1, | |
r.$element.addClass("ui-unselecting"), | |
r.unselecting = !0, | |
n._trigger("unselecting", t, { | |
unselecting: r.element | |
})) | |
}), | |
e(t.target).parents().andSelf().each(function() { | |
var r = e.data(this, "selectable-item"); | |
if (r) { | |
var i = !t.metaKey && !t.ctrlKey || !r.$element.hasClass("ui-selected"); | |
return r.$element.removeClass(i ? "ui-unselecting" : "ui-selected").addClass(i ? "ui-selecting" : "ui-unselecting"), | |
r.unselecting = !i, | |
r.selecting = i, | |
r.selected = i, | |
i ? n._trigger("selecting", t, { | |
selecting: r.element | |
}) : n._trigger("unselecting", t, { | |
unselecting: r.element | |
}), | |
!1 | |
} | |
}) | |
}, | |
_mouseDrag: function(t) { | |
var n = this; | |
this.dragged = !0; | |
if (this.options.disabled) | |
return; | |
var r = this.options | |
, i = this.opos[0] | |
, s = this.opos[1] | |
, o = t.pageX | |
, u = t.pageY; | |
if (i > o) { | |
var a = o; | |
o = i, | |
i = a | |
} | |
if (s > u) { | |
var a = u; | |
u = s, | |
s = a | |
} | |
return this.helper.css({ | |
left: i, | |
top: s, | |
width: o - i, | |
height: u - s | |
}), | |
this.selectees.each(function() { | |
var a = e.data(this, "selectable-item"); | |
if (!a || a.element == n.element[0]) | |
return; | |
var f = !1; | |
r.tolerance == "touch" ? f = !(a.left > o || a.right < i || a.top > u || a.bottom < s) : r.tolerance == "fit" && (f = a.left > i && a.right < o && a.top > s && a.bottom < u), | |
f ? (a.selected && (a.$element.removeClass("ui-selected"), | |
a.selected = !1), | |
a.unselecting && (a.$element.removeClass("ui-unselecting"), | |
a.unselecting = !1), | |
a.selecting || (a.$element.addClass("ui-selecting"), | |
a.selecting = !0, | |
n._trigger("selecting", t, { | |
selecting: a.element | |
}))) : (a.selecting && ((t.metaKey || t.ctrlKey) && a.startselected ? (a.$element.removeClass("ui-selecting"), | |
a.selecting = !1, | |
a.$element.addClass("ui-selected"), | |
a.selected = !0) : (a.$element.removeClass("ui-selecting"), | |
a.selecting = !1, | |
a.startselected && (a.$element.addClass("ui-unselecting"), | |
a.unselecting = !0), | |
n._trigger("unselecting", t, { | |
unselecting: a.element | |
}))), | |
a.selected && !t.metaKey && !t.ctrlKey && !a.startselected && (a.$element.removeClass("ui-selected"), | |
a.selected = !1, | |
a.$element.addClass("ui-unselecting"), | |
a.unselecting = !0, | |
n._trigger("unselecting", t, { | |
unselecting: a.element | |
}))) | |
}), | |
!1 | |
}, | |
_mouseStop: function(t) { | |
var n = this; | |
this.dragged = !1; | |
var r = this.options; | |
return e(".ui-unselecting", this.element[0]).each(function() { | |
var r = e.data(this, "selectable-item"); | |
r.$element.removeClass("ui-unselecting"), | |
r.unselecting = !1, | |
r.startselected = !1, | |
n._trigger("unselected", t, { | |
unselected: r.element | |
}) | |
}), | |
e(".ui-selecting", this.element[0]).each(function() { | |
var r = e.data(this, "selectable-item"); | |
r.$element.removeClass("ui-selecting").addClass("ui-selected"), | |
r.selecting = !1, | |
r.selected = !0, | |
r.startselected = !0, | |
n._trigger("selected", t, { | |
selected: r.element | |
}) | |
}), | |
this._trigger("stop", t), | |
this.helper.remove(), | |
!1 | |
} | |
}) | |
}(jQuery), | |
function(e, t) { | |
e.widget("ui.sortable", e.ui.mouse, { | |
version: "1.9.1", | |
widgetEventPrefix: "sort", | |
ready: !1, | |
options: { | |
appendTo: "parent", | |
axis: !1, | |
connectWith: !1, | |
containment: !1, | |
cursor: "auto", | |
cursorAt: !1, | |
dropOnEmpty: !0, | |
forcePlaceholderSize: !1, | |
forceHelperSize: !1, | |
grid: !1, | |
handle: !1, | |
helper: "original", | |
items: "> *", | |
opacity: !1, | |
placeholder: !1, | |
revert: !1, | |
scroll: !0, | |
scrollSensitivity: 20, | |
scrollSpeed: 20, | |
scope: "default", | |
tolerance: "intersect", | |
zIndex: 1e3 | |
}, | |
_create: function() { | |
var e = this.options; | |
this.containerCache = {}, | |
this.element.addClass("ui-sortable"), | |
this.refresh(), | |
this.floating = this.items.length ? e.axis === "x" || /left|right/.test(this.items[0].item.css("float")) || /inline|table-cell/.test(this.items[0].item.css("display")) : !1, | |
this.offset = this.element.offset(), | |
this._mouseInit(), | |
this.ready = !0 | |
}, | |
_destroy: function() { | |
this.element.removeClass("ui-sortable ui-sortable-disabled"), | |
this._mouseDestroy(); | |
for (var e = this.items.length - 1; e >= 0; e--) | |
this.items[e].item.removeData(this.widgetName + "-item"); | |
return this | |
}, | |
_setOption: function(t, n) { | |
t === "disabled" ? (this.options[t] = n, | |
this.widget().toggleClass("ui-sortable-disabled", !!n)) : e.Widget.prototype._setOption.apply(this, arguments) | |
}, | |
_mouseCapture: function(t, n) { | |
var r = this; | |
if (this.reverting) | |
return !1; | |
if (this.options.disabled || this.options.type == "static") | |
return !1; | |
this._refreshItems(t); | |
var i = null | |
, s = e(t.target).parents().each(function() { | |
if (e.data(this, r.widgetName + "-item") == r) | |
return i = e(this), | |
!1 | |
}); | |
e.data(t.target, r.widgetName + "-item") == r && (i = e(t.target)); | |
if (!i) | |
return !1; | |
if (this.options.handle && !n) { | |
var o = !1; | |
e(this.options.handle, i).find("*").andSelf().each(function() { | |
this == t.target && (o = !0) | |
}); | |
if (!o) | |
return !1 | |
} | |
return this.currentItem = i, | |
this._removeCurrentsFromItems(), | |
!0 | |
}, | |
_mouseStart: function(t, n, r) { | |
var i = this.options; | |
this.currentContainer = this, | |
this.refreshPositions(), | |
this.helper = this._createHelper(t), | |
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 | |
}, | |
e.extend(this.offset, { | |
click: { | |
left: t.pageX - this.offset.left, | |
top: t.pageY - this.offset.top | |
}, | |
parent: this._getParentOffset(), | |
relative: this._getRelativeOffset() | |
}), | |
this.helper.css("position", "absolute"), | |
this.cssPosition = this.helper.css("position"), | |
this.originalPosition = this._generatePosition(t), | |
this.originalPageX = t.pageX, | |
this.originalPageY = t.pageY, | |
i.cursorAt && this._adjustOffsetFromHelper(i.cursorAt), | |
this.domPosition = { | |
prev: this.currentItem.prev()[0], | |
parent: this.currentItem.parent()[0] | |
}, | |
this.helper[0] != this.currentItem[0] && this.currentItem.hide(), | |
this._createPlaceholder(), | |
i.containment && this._setContainment(), | |
i.cursor && (e("body").css("cursor") && (this._storedCursor = e("body").css("cursor")), | |
e("body").css("cursor", i.cursor)), | |
i.opacity && (this.helper.css("opacity") && (this._storedOpacity = this.helper.css("opacity")), | |
this.helper.css("opacity", i.opacity)), | |
i.zIndex && (this.helper.css("zIndex") && (this._storedZIndex = this.helper.css("zIndex")), | |
this.helper.css("zIndex", i.zIndex)), | |
this.scrollParent[0] != document && this.scrollParent[0].tagName != "HTML" && (this.overflowOffset = this.scrollParent.offset()), | |
this._trigger("start", t, this._uiHash()), | |
this._preserveHelperProportions || this._cacheHelperProportions(); | |
if (!r) | |
for (var s = this.containers.length - 1; s >= 0; s--) | |
this.containers[s]._trigger("activate", t, this._uiHash(this)); | |
return e.ui.ddmanager && (e.ui.ddmanager.current = this), | |
e.ui.ddmanager && !i.dropBehaviour && e.ui.ddmanager.prepareOffsets(this, t), | |
this.dragging = !0, | |
this.helper.addClass("ui-sortable-helper"), | |
this._mouseDrag(t), | |
!0 | |
}, | |
_mouseDrag: function(t) { | |
this.position = this._generatePosition(t), | |
this.positionAbs = this._convertPositionTo("absolute"), | |
this.lastPositionAbs || (this.lastPositionAbs = this.positionAbs); | |
if (this.options.scroll) { | |
var n = this.options | |
, r = !1; | |
this.scrollParent[0] != document && this.scrollParent[0].tagName != "HTML" ? (this.overflowOffset.top + this.scrollParent[0].offsetHeight - t.pageY < n.scrollSensitivity ? this.scrollParent[0].scrollTop = r = this.scrollParent[0].scrollTop + n.scrollSpeed : t.pageY - this.overflowOffset.top < n.scrollSensitivity && (this.scrollParent[0].scrollTop = r = this.scrollParent[0].scrollTop - n.scrollSpeed), | |
this.overflowOffset.left + this.scrollParent[0].offsetWidth - t.pageX < n.scrollSensitivity ? this.scrollParent[0].scrollLeft = r = this.scrollParent[0].scrollLeft + n.scrollSpeed : t.pageX - this.overflowOffset.left < n.scrollSensitivity && (this.scrollParent[0].scrollLeft = r = this.scrollParent[0].scrollLeft - n.scrollSpeed)) : (t.pageY - e(document).scrollTop() < n.scrollSensitivity ? r = e(document).scrollTop(e(document).scrollTop() - n.scrollSpeed) : e(window).height() - (t.pageY - e(document).scrollTop()) < n.scrollSensitivity && (r = e(document).scrollTop(e(document).scrollTop() + n.scrollSpeed)), | |
t.pageX - e(document).scrollLeft() < n.scrollSensitivity ? r = e(document).scrollLeft(e(document).scrollLeft() - n.scrollSpeed) : e(window).width() - (t.pageX - e(document).scrollLeft()) < n.scrollSensitivity && (r = e(document).scrollLeft(e(document).scrollLeft() + n.scrollSpeed))), | |
r !== !1 && e.ui.ddmanager && !n.dropBehaviour && e.ui.ddmanager.prepareOffsets(this, t) | |
} | |
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 (var i = this.items.length - 1; i >= 0; i--) { | |
var s = this.items[i] | |
, o = s.item[0] | |
, u = this._intersectsWithPointer(s); | |
if (!u) | |
continue; | |
if (s.instance !== this.currentContainer) | |
continue; | |
if (o != this.currentItem[0] && this.placeholder[u == 1 ? "next" : "prev"]()[0] != o && !e.contains(this.placeholder[0], o) && (this.options.type == "semi-dynamic" ? !e.contains(this.element[0], o) : !0)) { | |
this.direction = u == 1 ? "down" : "up"; | |
if (this.options.tolerance != "pointer" && !this._intersectsWithSides(s)) | |
break; | |
this._rearrange(t, s), | |
this._trigger("change", t, this._uiHash()); | |
break | |
} | |
} | |
return this._contactContainers(t), | |
e.ui.ddmanager && e.ui.ddmanager.drag(this, t), | |
this._trigger("sort", t, this._uiHash()), | |
this.lastPositionAbs = this.positionAbs, | |
!1 | |
}, | |
_mouseStop: function(t, n) { | |
if (!t) | |
return; | |
e.ui.ddmanager && !this.options.dropBehaviour && e.ui.ddmanager.drop(this, t); | |
if (this.options.revert) { | |
var r = this | |
, i = this.placeholder.offset(); | |
this.reverting = !0, | |
e(this.helper).animate({ | |
left: i.left - this.offset.parent.left - this.margins.left + (this.offsetParent[0] == document.body ? 0 : this.offsetParent[0].scrollLeft), | |
top: i.top - this.offset.parent.top - this.margins.top + (this.offsetParent[0] == document.body ? 0 : this.offsetParent[0].scrollTop) | |
}, parseInt(this.options.revert, 10) || 500, function() { | |
r._clear(t) | |
}) | |
} else | |
this._clear(t, n); | |
return !1 | |
}, | |
cancel: function() { | |
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 t = this.containers.length - 1; t >= 0; t--) | |
this.containers[t]._trigger("deactivate", null, this._uiHash(this)), | |
this.containers[t].containerCache.over && (this.containers[t]._trigger("out", null, this._uiHash(this)), | |
this.containers[t].containerCache.over = 0) | |
} | |
return 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(), | |
e.extend(this, { | |
helper: null, | |
dragging: !1, | |
reverting: !1, | |
_noFinalSort: null | |
}), | |
this.domPosition.prev ? e(this.domPosition.prev).after(this.currentItem) : e(this.domPosition.parent).prepend(this.currentItem)), | |
this | |
}, | |
serialize: function(t) { | |
var n = this._getItemsAsjQuery(t && t.connected) | |
, r = []; | |
return t = t || {}, | |
e(n).each(function() { | |
var n = (e(t.item || this).attr(t.attribute || "id") || "").match(t.expression || /(.+)[-=_](.+)/); | |
n && r.push((t.key || n[1] + "[]") + "=" + (t.key && t.expression ? n[1] : n[2])) | |
}), | |
!r.length && t.key && r.push(t.key + "="), | |
r.join("&") | |
}, | |
toArray: function(t) { | |
var n = this._getItemsAsjQuery(t && t.connected) | |
, r = []; | |
return t = t || {}, | |
n.each(function() { | |
r.push(e(t.item || this).attr(t.attribute || "id") || "") | |
}), | |
r | |
}, | |
_intersectsWith: function(e) { | |
var t = this.positionAbs.left | |
, n = t + this.helperProportions.width | |
, r = this.positionAbs.top | |
, i = r + this.helperProportions.height | |
, s = e.left | |
, o = s + e.width | |
, u = e.top | |
, a = u + e.height | |
, f = this.offset.click.top | |
, l = this.offset.click.left | |
, c = r + f > u && r + f < a && t + l > s && t + l < o; | |
return this.options.tolerance == "pointer" || this.options.forcePointerForContainers || this.options.tolerance != "pointer" && this.helperProportions[this.floating ? "width" : "height"] > e[this.floating ? "width" : "height"] ? c : s < t + this.helperProportions.width / 2 && n - this.helperProportions.width / 2 < o && u < r + this.helperProportions.height / 2 && i - this.helperProportions.height / 2 < a | |
}, | |
_intersectsWithPointer: function(t) { | |
var n = this.options.axis === "x" || e.ui.isOverAxis(this.positionAbs.top + this.offset.click.top, t.top, t.height) | |
, r = this.options.axis === "y" || e.ui.isOverAxis(this.positionAbs.left + this.offset.click.left, t.left, t.width) | |
, i = n && r | |
, s = this._getDragVerticalDirection() | |
, o = this._getDragHorizontalDirection(); | |
return i ? this.floating ? o && o == "right" || s == "down" ? 2 : 1 : s && (s == "down" ? 2 : 1) : !1 | |
}, | |
_intersectsWithSides: function(t) { | |
var n = e.ui.isOverAxis(this.positionAbs.top + this.offset.click.top, t.top + t.height / 2, t.height) | |
, r = e.ui.isOverAxis(this.positionAbs.left + this.offset.click.left, t.left + t.width / 2, t.width) | |
, i = this._getDragVerticalDirection() | |
, s = this._getDragHorizontalDirection(); | |
return this.floating && s ? s == "right" && r || s == "left" && !r : i && (i == "down" && n || i == "up" && !n) | |
}, | |
_getDragVerticalDirection: function() { | |
var e = this.positionAbs.top - this.lastPositionAbs.top; | |
return e != 0 && (e > 0 ? "down" : "up") | |
}, | |
_getDragHorizontalDirection: function() { | |
var e = this.positionAbs.left - this.lastPositionAbs.left; | |
return e != 0 && (e > 0 ? "right" : "left") | |
}, | |
refresh: function(e) { | |
return this._refreshItems(e), | |
this.refreshPositions(), | |
this | |
}, | |
_connectWith: function() { | |
var e = this.options; | |
return e.connectWith.constructor == String ? [e.connectWith] : e.connectWith | |
}, | |
_getItemsAsjQuery: function(t) { | |
var n = [] | |
, r = [] | |
, i = this._connectWith(); | |
if (i && t) | |
for (var s = i.length - 1; s >= 0; s--) { | |
var o = e(i[s]); | |
for (var u = o.length - 1; u >= 0; u--) { | |
var a = e.data(o[u], this.widgetName); | |
a && a != this && !a.options.disabled && r.push([e.isFunction(a.options.items) ? a.options.items.call(a.element) : e(a.options.items, a.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"), a]) | |
} | |
} | |
r.push([e.isFunction(this.options.items) ? this.options.items.call(this.element, null, { | |
options: this.options, | |
item: this.currentItem | |
}) : e(this.options.items, this.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"), this]); | |
for (var s = r.length - 1; s >= 0; s--) | |
r[s][0].each(function() { | |
n.push(this) | |
}); | |
return e(n) | |
}, | |
_removeCurrentsFromItems: function() { | |
var t = this.currentItem.find(":data(" + this.widgetName + "-item)"); | |
this.items = e.grep(this.items, function(e) { | |
for (var n = 0; n < t.length; n++) | |
if (t[n] == e.item[0]) | |
return !1; | |
return !0 | |
}) | |
}, | |
_refreshItems: function(t) { | |
this.items = [], | |
this.containers = [this]; | |
var n = this.items | |
, r = [[e.isFunction(this.options.items) ? this.options.items.call(this.element[0], t, { | |
item: this.currentItem | |
}) : e(this.options.items, this.element), this]] | |
, i = this._connectWith(); | |
if (i && this.ready) | |
for (var s = i.length - 1; s >= 0; s--) { | |
var o = e(i[s]); | |
for (var u = o.length - 1; u >= 0; u--) { | |
var a = e.data(o[u], this.widgetName); | |
a && a != this && !a.options.disabled && (r.push([e.isFunction(a.options.items) ? a.options.items.call(a.element[0], t, { | |
item: this.currentItem | |
}) : e(a.options.items, a.element), a]), | |
this.containers.push(a)) | |
} | |
} | |
for (var s = r.length - 1; s >= 0; s--) { | |
var f = r[s][1] | |
, l = r[s][0]; | |
for (var u = 0, c = l.length; u < c; u++) { | |
var h = e(l[u]); | |
h.data(this.widgetName + "-item", f), | |
n.push({ | |
item: h, | |
instance: f, | |
width: 0, | |
height: 0, | |
left: 0, | |
top: 0 | |
}) | |
} | |
} | |
}, | |
refreshPositions: function(t) { | |
this.offsetParent && this.helper && (this.offset.parent = this._getParentOffset()); | |
for (var n = this.items.length - 1; n >= 0; n--) { | |
var r = this.items[n]; | |
if (r.instance != this.currentContainer && this.currentContainer && r.item[0] != this.currentItem[0]) | |
continue; | |
var i = this.options.toleranceElement ? e(this.options.toleranceElement, r.item) : r.item; | |
t || (r.width = i.outerWidth(), | |
r.height = i.outerHeight()); | |
var s = i.offset(); | |
r.left = s.left, | |
r.top = s.top | |
} | |
if (this.options.custom && this.options.custom.refreshContainers) | |
this.options.custom.refreshContainers.call(this); | |
else | |
for (var n = this.containers.length - 1; n >= 0; n--) { | |
var s = this.containers[n].element.offset(); | |
this.containers[n].containerCache.left = s.left, | |
this.containers[n].containerCache.top = s.top, | |
this.containers[n].containerCache.width = this.containers[n].element.outerWidth(), | |
this.containers[n].containerCache.height = this.containers[n].element.outerHeight() | |
} | |
return this | |
}, | |
_createPlaceholder: function(t) { | |
t = t || this; | |
var n = t.options; | |
if (!n.placeholder || n.placeholder.constructor == String) { | |
var r = n.placeholder; | |
n.placeholder = { | |
element: function() { | |
var n = e(document.createElement(t.currentItem[0].nodeName)).addClass(r || t.currentItem[0].className + " ui-sortable-placeholder").removeClass("ui-sortable-helper")[0]; | |
return r || (n.style.visibility = "hidden"), | |
n | |
}, | |
update: function(e, i) { | |
if (r && !n.forcePlaceholderSize) | |
return; | |
i.height() || i.height(t.currentItem.innerHeight() - parseInt(t.currentItem.css("paddingTop") || 0, 10) - parseInt(t.currentItem.css("paddingBottom") || 0, 10)), | |
i.width() || i.width(t.currentItem.innerWidth() - parseInt(t.currentItem.css("paddingLeft") || 0, 10) - parseInt(t.currentItem.css("paddingRight") || 0, 10)) | |
} | |
} | |
} | |
t.placeholder = e(n.placeholder.element.call(t.element, t.currentItem)), | |
t.currentItem.after(t.placeholder), | |
n.placeholder.update(t, t.placeholder) | |
}, | |
_contactContainers: function(t) { | |
var n = null | |
, r = null; | |
for (var i = this.containers.length - 1; i >= 0; i--) { | |
if (e.contains(this.currentItem[0], this.containers[i].element[0])) | |
continue; | |
if (this._intersectsWith(this.containers[i].containerCache)) { | |
if (n && e.contains(this.containers[i].element[0], n.element[0])) | |
continue; | |
n = this.containers[i], | |
r = i | |
} else | |
this.containers[i].containerCache.over && (this.containers[i]._trigger("out", t, this._uiHash(this)), | |
this.containers[i].containerCache.over = 0) | |
} | |
if (!n) | |
return; | |
if (this.containers.length === 1) | |
this.containers[r]._trigger("over", t, this._uiHash(this)), | |
this.containers[r].containerCache.over = 1; | |
else { | |
var s = 1e4 | |
, o = null | |
, u = this.containers[r].floating ? "left" : "top" | |
, a = this.containers[r].floating ? "width" : "height" | |
, f = this.positionAbs[u] + this.offset.click[u]; | |
for (var l = this.items.length - 1; l >= 0; l--) { | |
if (!e.contains(this.containers[r].element[0], this.items[l].item[0])) | |
continue; | |
if (this.items[l].item[0] == this.currentItem[0]) | |
continue; | |
var c = this.items[l].item.offset()[u] | |
, h = !1; | |
Math.abs(c - f) > Math.abs(c + this.items[l][a] - f) && (h = !0, | |
c += this.items[l][a]), | |
Math.abs(c - f) < s && (s = Math.abs(c - f), | |
o = this.items[l], | |
this.direction = h ? "up" : "down") | |
} | |
if (!o && !this.options.dropOnEmpty) | |
return; | |
this.currentContainer = this.containers[r], | |
o ? this._rearrange(t, o, null, !0) : this._rearrange(t, null, this.containers[r].element, !0), | |
this._trigger("change", t, this._uiHash()), | |
this.containers[r]._trigger("change", t, this._uiHash(this)), | |
this.options.placeholder.update(this.currentContainer, this.placeholder), | |
this.containers[r]._trigger("over", t, this._uiHash(this)), | |
this.containers[r].containerCache.over = 1 | |
} | |
}, | |
_createHelper: function(t) { | |
var n = this.options | |
, r = e.isFunction(n.helper) ? e(n.helper.apply(this.element[0], [t, this.currentItem])) : n.helper == "clone" ? this.currentItem.clone() : this.currentItem; | |
return r.parents("body").length || e(n.appendTo != "parent" ? n.appendTo : this.currentItem[0].parentNode)[0].appendChild(r[0]), | |
r[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") | |
}), | |
(r[0].style.width == "" || n.forceHelperSize) && r.width(this.currentItem.width()), | |
(r[0].style.height == "" || n.forceHelperSize) && r.height(this.currentItem.height()), | |
r | |
}, | |
_adjustOffsetFromHelper: function(t) { | |
typeof t == "string" && (t = t.split(" ")), | |
e.isArray(t) && (t = { | |
left: +t[0], | |
top: +t[1] || 0 | |
}), | |
"left"in t && (this.offset.click.left = t.left + this.margins.left), | |
"right"in t && (this.offset.click.left = this.helperProportions.width - t.right + this.margins.left), | |
"top"in t && (this.offset.click.top = t.top + this.margins.top), | |
"bottom"in t && (this.offset.click.top = this.helperProportions.height - t.bottom + this.margins.top) | |
}, | |
_getParentOffset: function() { | |
this.offsetParent = this.helper.offsetParent(); | |
var t = this.offsetParent.offset(); | |
this.cssPosition == "absolute" && this.scrollParent[0] != document && e.contains(this.scrollParent[0], this.offsetParent[0]) && (t.left += this.scrollParent.scrollLeft(), | |
t.top += this.scrollParent.scrollTop()); | |
if (this.offsetParent[0] == document.body || this.offsetParent[0].tagName && this.offsetParent[0].tagName.toLowerCase() == "html" && e.ui.ie) | |
t = { | |
top: 0, | |
left: 0 | |
}; | |
return { | |
top: t.top + (parseInt(this.offsetParent.css("borderTopWidth"), 10) || 0), | |
left: t.left + (parseInt(this.offsetParent.css("borderLeftWidth"), 10) || 0) | |
} | |
}, | |
_getRelativeOffset: function() { | |
if (this.cssPosition == "relative") { | |
var e = this.currentItem.position(); | |
return { | |
top: e.top - (parseInt(this.helper.css("top"), 10) || 0) + this.scrollParent.scrollTop(), | |
left: e.left - (parseInt(this.helper.css("left"), 10) || 0) + this.scrollParent.scrollLeft() | |
} | |
} | |
return { | |
top: 0, | |
left: 0 | |
} | |
}, | |
_cacheMargins: function() { | |
this.margins = { | |
left: parseInt(this.currentItem.css("marginLeft"), 10) || 0, | |
top: parseInt(this.currentItem.css("marginTop"), 10) || 0 | |
} | |
}, | |
_cacheHelperProportions: function() { | |
this.helperProportions = { | |
width: this.helper.outerWidth(), | |
height: this.helper.outerHeight() | |
} | |
}, | |
_setContainment: function() { | |
var t = this.options; | |
t.containment == "parent" && (t.containment = this.helper[0].parentNode); | |
if (t.containment == "document" || t.containment == "window") | |
this.containment = [0 - this.offset.relative.left - this.offset.parent.left, 0 - this.offset.relative.top - this.offset.parent.top, e(t.containment == "document" ? document : window).width() - this.helperProportions.width - this.margins.left, (e(t.containment == "document" ? document : window).height() || document.body.parentNode.scrollHeight) - this.helperProportions.height - this.margins.top]; | |
if (!/^(document|window|parent)$/.test(t.containment)) { | |
var n = e(t.containment)[0] | |
, r = e(t.containment).offset() | |
, i = e(n).css("overflow") != "hidden"; | |
this.containment = [r.left + (parseInt(e(n).css("borderLeftWidth"), 10) || 0) + (parseInt(e(n).css("paddingLeft"), 10) || 0) - this.margins.left, r.top + (parseInt(e(n).css("borderTopWidth"), 10) || 0) + (parseInt(e(n).css("paddingTop"), 10) || 0) - this.margins.top, r.left + (i ? Math.max(n.scrollWidth, n.offsetWidth) : n.offsetWidth) - (parseInt(e(n).css("borderLeftWidth"), 10) || 0) - (parseInt(e(n).css("paddingRight"), 10) || 0) - this.helperProportions.width - this.margins.left, r.top + (i ? Math.max(n.scrollHeight, n.offsetHeight) : n.offsetHeight) - (parseInt(e(n).css("borderTopWidth"), 10) || 0) - (parseInt(e(n).css("paddingBottom"), 10) || 0) - this.helperProportions.height - this.margins.top] | |
} | |
}, | |
_convertPositionTo: function(t, n) { | |
n || (n = this.position); | |
var r = t == "absolute" ? 1 : -1 | |
, i = this.options | |
, s = this.cssPosition != "absolute" || this.scrollParent[0] != document && !!e.contains(this.scrollParent[0], this.offsetParent[0]) ? this.scrollParent : this.offsetParent | |
, o = /(html|body)/i.test(s[0].tagName); | |
return { | |
top: n.top + this.offset.relative.top * r + this.offset.parent.top * r - (this.cssPosition == "fixed" ? -this.scrollParent.scrollTop() : o ? 0 : s.scrollTop()) * r, | |
left: n.left + this.offset.relative.left * r + this.offset.parent.left * r - (this.cssPosition == "fixed" ? -this.scrollParent.scrollLeft() : o ? 0 : s.scrollLeft()) * r | |
} | |
}, | |
_generatePosition: function(t) { | |
var n = this.options | |
, r = this.cssPosition != "absolute" || this.scrollParent[0] != document && !!e.contains(this.scrollParent[0], this.offsetParent[0]) ? this.scrollParent : this.offsetParent | |
, i = /(html|body)/i.test(r[0].tagName); | |
this.cssPosition == "relative" && (this.scrollParent[0] == document || this.scrollParent[0] == this.offsetParent[0]) && (this.offset.relative = this._getRelativeOffset()); | |
var s = t.pageX | |
, o = t.pageY; | |
if (this.originalPosition) { | |
this.containment && (t.pageX - this.offset.click.left < this.containment[0] && (s = this.containment[0] + this.offset.click.left), | |
t.pageY - this.offset.click.top < this.containment[1] && (o = this.containment[1] + this.offset.click.top), | |
t.pageX - this.offset.click.left > this.containment[2] && (s = this.containment[2] + this.offset.click.left), | |
t.pageY - this.offset.click.top > this.containment[3] && (o = this.containment[3] + this.offset.click.top)); | |
if (n.grid) { | |
var u = this.originalPageY + Math.round((o - this.originalPageY) / n.grid[1]) * n.grid[1]; | |
o = this.containment ? u - this.offset.click.top < this.containment[1] || u - this.offset.click.top > this.containment[3] ? u - this.offset.click.top < this.containment[1] ? u + n.grid[1] : u - n.grid[1] : u : u; | |
var a = this.originalPageX + Math.round((s - this.originalPageX) / n.grid[0]) * n.grid[0]; | |
s = this.containment ? a - this.offset.click.left < this.containment[0] || a - this.offset.click.left > this.containment[2] ? a - this.offset.click.left < this.containment[0] ? a + n.grid[0] : a - n.grid[0] : a : a | |
} | |
} | |
return { | |
top: o - this.offset.click.top - this.offset.relative.top - this.offset.parent.top + (this.cssPosition == "fixed" ? -this.scrollParent.scrollTop() : i ? 0 : r.scrollTop()), | |
left: s - this.offset.click.left - this.offset.relative.left - this.offset.parent.left + (this.cssPosition == "fixed" ? -this.scrollParent.scrollLeft() : i ? 0 : r.scrollLeft()) | |
} | |
}, | |
_rearrange: function(e, t, n, r) { | |
n ? n[0].appendChild(this.placeholder[0]) : t.item[0].parentNode.insertBefore(this.placeholder[0], this.direction == "down" ? t.item[0] : t.item[0].nextSibling), | |
this.counter = this.counter ? ++this.counter : 1; | |
var i = this.counter; | |
this._delay(function() { | |
i == this.counter && this.refreshPositions(!r) | |
}) | |
}, | |
_clear: function(t, n) { | |
this.reverting = !1; | |
var r = []; | |
!this._noFinalSort && this.currentItem.parent().length && this.placeholder.before(this.currentItem), | |
this._noFinalSort = null; | |
if (this.helper[0] == this.currentItem[0]) { | |
for (var i in this._storedCSS) | |
if (this._storedCSS[i] == "auto" || this._storedCSS[i] == "static") | |
this._storedCSS[i] = ""; | |
this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper") | |
} else | |
this.currentItem.show(); | |
this.fromOutside && !n && r.push(function(e) { | |
this._trigger("receive", e, this._uiHash(this.fromOutside)) | |
}), | |
(this.fromOutside || this.domPosition.prev != this.currentItem.prev().not(".ui-sortable-helper")[0] || this.domPosition.parent != this.currentItem.parent()[0]) && !n && r.push(function(e) { | |
this._trigger("update", e, this._uiHash()) | |
}), | |
this !== this.currentContainer && (n || (r.push(function(e) { | |
this._trigger("remove", e, this._uiHash()) | |
}), | |
r.push(function(e) { | |
return function(t) { | |
e._trigger("receive", t, this._uiHash(this)) | |
} | |
} | |
.call(this, this.currentContainer)), | |
r.push(function(e) { | |
return function(t) { | |
e._trigger("update", t, this._uiHash(this)) | |
} | |
} | |
.call(this, this.currentContainer)))); | |
for (var i = this.containers.length - 1; i >= 0; i--) | |
n || r.push(function(e) { | |
return function(t) { | |
e._trigger("deactivate", t, this._uiHash(this)) | |
} | |
} | |
.call(this, this.containers[i])), | |
this.containers[i].containerCache.over && (r.push(function(e) { | |
return function(t) { | |
e._trigger("out", t, this._uiHash(this)) | |
} | |
} | |
.call(this, this.containers[i])), | |
this.containers[i].containerCache.over = 0); | |
this._storedCursor && e("body").css("cursor", this._storedCursor), | |
this._storedOpacity && this.helper.css("opacity", this._storedOpacity), | |
this._storedZIndex && this.helper.css("zIndex", this._storedZIndex == "auto" ? "" : this._storedZIndex), | |
this.dragging = !1; | |
if (this.cancelHelperRemoval) { | |
if (!n) { | |
this._trigger("beforeStop", t, this._uiHash()); | |
for (var i = 0; i < r.length; i++) | |
r[i].call(this, t); | |
this._trigger("stop", t, this._uiHash()) | |
} | |
return this.fromOutside = !1, | |
!1 | |
} | |
n || this._trigger("beforeStop", t, this._uiHash()), | |
this.placeholder[0].parentNode.removeChild(this.placeholder[0]), | |
this.helper[0] != this.currentItem[0] && this.helper.remove(), | |
this.helper = null; | |
if (!n) { | |
for (var i = 0; i < r.length; i++) | |
r[i].call(this, t); | |
this._trigger("stop", t, this._uiHash()) | |
} | |
return this.fromOutside = !1, | |
!0 | |
}, | |
_trigger: function() { | |
e.Widget.prototype._trigger.apply(this, arguments) === !1 && this.cancel() | |
}, | |
_uiHash: function(t) { | |
var n = t || this; | |
return { | |
helper: n.helper, | |
placeholder: n.placeholder || e([]), | |
position: n.position, | |
originalPosition: n.originalPosition, | |
offset: n.positionAbs, | |
item: n.currentItem, | |
sender: t ? t.element : null | |
} | |
} | |
}) | |
}(jQuery), | |
jQuery.effects || function(e, t) { | |
var n = e.uiBackCompat !== !1 | |
, r = "ui-effects-"; | |
e.effects = { | |
effect: {} | |
}, | |
function(t, n) { | |
function p(e, t, n) { | |
var r = a[t.type] || {}; | |
return e == null ? n || !t.def ? null : t.def : (e = r.floor ? ~~e : parseFloat(e), | |
isNaN(e) ? t.def : r.mod ? (e + r.mod) % r.mod : 0 > e ? 0 : r.max < e ? r.max : e) | |
} | |
function d(e) { | |
var n = o() | |
, r = n._rgba = []; | |
return e = e.toLowerCase(), | |
h(s, function(t, i) { | |
var s, o = i.re.exec(e), a = o && i.parse(o), f = i.space || "rgba"; | |
if (a) | |
return s = n[f](a), | |
n[u[f].cache] = s[u[f].cache], | |
r = n._rgba = s._rgba, | |
!1 | |
}), | |
r.length ? (r.join() === "0,0,0,0" && t.extend(r, c.transparent), | |
n) : c[e] | |
} | |
function v(e, t, n) { | |
return n = (n + 1) % 1, | |
n * 6 < 1 ? e + (t - e) * n * 6 : n * 2 < 1 ? t : n * 3 < 2 ? e + (t - e) * (2 / 3 - n) * 6 : e | |
} | |
var r = "backgroundColor borderBottomColor borderLeftColor borderRightColor borderTopColor color columnRuleColor outlineColor textDecorationColor textEmphasisColor".split(" "), i = /^([\-+])=\s*(\d+\.?\d*)/, s = [{ | |
re: /rgba?\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*(?:,\s*(\d+(?:\.\d+)?)\s*)?\)/, | |
parse: function(e) { | |
return [e[1], e[2], e[3], e[4]] | |
} | |
}, { | |
re: /rgba?\(\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d+(?:\.\d+)?)\s*)?\)/, | |
parse: function(e) { | |
return [e[1] * 2.55, e[2] * 2.55, e[3] * 2.55, e[4]] | |
} | |
}, { | |
re: /#([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})/, | |
parse: function(e) { | |
return [parseInt(e[1], 16), parseInt(e[2], 16), parseInt(e[3], 16)] | |
} | |
}, { | |
re: /#([a-f0-9])([a-f0-9])([a-f0-9])/, | |
parse: function(e) { | |
return [parseInt(e[1] + e[1], 16), parseInt(e[2] + e[2], 16), parseInt(e[3] + e[3], 16)] | |
} | |
}, { | |
re: /hsla?\(\s*(\d+(?:\.\d+)?)\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d+(?:\.\d+)?)\s*)?\)/, | |
space: "hsla", | |
parse: function(e) { | |
return [e[1], e[2] / 100, e[3] / 100, e[4]] | |
} | |
}], o = t.Color = function(e, n, r, i) { | |
return new t.Color.fn.parse(e,n,r,i) | |
} | |
, u = { | |
rgba: { | |
props: { | |
red: { | |
idx: 0, | |
type: "byte" | |
}, | |
green: { | |
idx: 1, | |
type: "byte" | |
}, | |
blue: { | |
idx: 2, | |
type: "byte" | |
} | |
} | |
}, | |
hsla: { | |
props: { | |
hue: { | |
idx: 0, | |
type: "degrees" | |
}, | |
saturation: { | |
idx: 1, | |
type: "percent" | |
}, | |
lightness: { | |
idx: 2, | |
type: "percent" | |
} | |
} | |
} | |
}, a = { | |
"byte": { | |
floor: !0, | |
max: 255 | |
}, | |
percent: { | |
max: 1 | |
}, | |
degrees: { | |
mod: 360, | |
floor: !0 | |
} | |
}, f = o.support = {}, l = t("<p>")[0], c, h = t.each; | |
l.style.cssText = "background-color:rgba(1,1,1,.5)", | |
f.rgba = l.style.backgroundColor.indexOf("rgba") > -1, | |
h(u, function(e, t) { | |
t.cache = "_" + e, | |
t.props.alpha = { | |
idx: 3, | |
type: "percent", | |
def: 1 | |
} | |
}), | |
o.fn = t.extend(o.prototype, { | |
parse: function(r, i, s, a) { | |
if (r === n) | |
return this._rgba = [null, null, null, null], | |
this; | |
if (r.jquery || r.nodeType) | |
r = t(r).css(i), | |
i = n; | |
var f = this | |
, l = t.type(r) | |
, v = this._rgba = []; | |
i !== n && (r = [r, i, s, a], | |
l = "array"); | |
if (l === "string") | |
return this.parse(d(r) || c._default); | |
if (l === "array") | |
return h(u.rgba.props, function(e, t) { | |
v[t.idx] = p(r[t.idx], t) | |
}), | |
this; | |
if (l === "object") | |
return r instanceof o ? h(u, function(e, t) { | |
r[t.cache] && (f[t.cache] = r[t.cache].slice()) | |
}) : h(u, function(t, n) { | |
var i = n.cache; | |
h(n.props, function(e, t) { | |
if (!f[i] && n.to) { | |
if (e === "alpha" || r[e] == null) | |
return; | |
f[i] = n.to(f._rgba) | |
} | |
f[i][t.idx] = p(r[e], t, !0) | |
}), | |
f[i] && e.inArray(null, f[i].slice(0, 3)) < 0 && (f[i][3] = 1, | |
n.from && (f._rgba = n.from(f[i]))) | |
}), | |
this | |
}, | |
is: function(e) { | |
var t = o(e) | |
, n = !0 | |
, r = this; | |
return h(u, function(e, i) { | |
var s, o = t[i.cache]; | |
return o && (s = r[i.cache] || i.to && i.to(r._rgba) || [], | |
h(i.props, function(e, t) { | |
if (o[t.idx] != null) | |
return n = o[t.idx] === s[t.idx], | |
n | |
})), | |
n | |
}), | |
n | |
}, | |
_space: function() { | |
var e = [] | |
, t = this; | |
return h(u, function(n, r) { | |
t[r.cache] && e.push(n) | |
}), | |
e.pop() | |
}, | |
transition: function(e, t) { | |
var n = o(e) | |
, r = n._space() | |
, i = u[r] | |
, s = this.alpha() === 0 ? o("transparent") : this | |
, f = s[i.cache] || i.to(s._rgba) | |
, l = f.slice(); | |
return n = n[i.cache], | |
h(i.props, function(e, r) { | |
var i = r.idx | |
, s = f[i] | |
, o = n[i] | |
, u = a[r.type] || {}; | |
if (o === null) | |
return; | |
s === null ? l[i] = o : (u.mod && (o - s > u.mod / 2 ? s += u.mod : s - o > u.mod / 2 && (s -= u.mod)), | |
l[i] = p((o - s) * t + s, r)) | |
}), | |
this[r](l) | |
}, | |
blend: function(e) { | |
if (this._rgba[3] === 1) | |
return this; | |
var n = this._rgba.slice() | |
, r = n.pop() | |
, i = o(e)._rgba; | |
return o(t.map(n, function(e, t) { | |
return (1 - r) * i[t] + r * e | |
})) | |
}, | |
toRgbaString: function() { | |
var e = "rgba(" | |
, n = t.map(this._rgba, function(e, t) { | |
return e == null ? t > 2 ? 1 : 0 : e | |
}); | |
return n[3] === 1 && (n.pop(), | |
e = "rgb("), | |
e + n.join() + ")" | |
}, | |
toHslaString: function() { | |
var e = "hsla(" | |
, n = t.map(this.hsla(), function(e, t) { | |
return e == null && (e = t > 2 ? 1 : 0), | |
t && t < 3 && (e = Math.round(e * 100) + "%"), | |
e | |
}); | |
return n[3] === 1 && (n.pop(), | |
e = "hsl("), | |
e + n.join() + ")" | |
}, | |
toHexString: function(e) { | |
var n = this._rgba.slice() | |
, r = n.pop(); | |
return e && n.push(~~(r * 255)), | |
"#" + t.map(n, function(e) { | |
return e = (e || 0).toString(16), | |
e.length === 1 ? "0" + e : e | |
}).join("") | |
}, | |
toString: function() { | |
return this._rgba[3] === 0 ? "transparent" : this.toRgbaString() | |
} | |
}), | |
o.fn.parse.prototype = o.fn, | |
u.hsla.to = function(e) { | |
if (e[0] == null || e[1] == null || e[2] == null) | |
return [null, null, null, e[3]]; | |
var t = e[0] / 255, n = e[1] / 255, r = e[2] / 255, i = e[3], s = Math.max(t, n, r), o = Math.min(t, n, r), u = s - o, a = s + o, f = a * .5, l, c; | |
return o === s ? l = 0 : t === s ? l = 60 * (n - r) / u + 360 : n === s ? l = 60 * (r - t) / u + 120 : l = 60 * (t - n) / u + 240, | |
f === 0 || f === 1 ? c = f : f <= .5 ? c = u / a : c = u / (2 - a), | |
[Math.round(l) % 360, c, f, i == null ? 1 : i] | |
} | |
, | |
u.hsla.from = function(e) { | |
if (e[0] == null || e[1] == null || e[2] == null) | |
return [null, null, null, e[3]]; | |
var t = e[0] / 360 | |
, n = e[1] | |
, r = e[2] | |
, i = e[3] | |
, s = r <= .5 ? r * (1 + n) : r + n - r * n | |
, o = 2 * r - s; | |
return [Math.round(v(o, s, t + 1 / 3) * 255), Math.round(v(o, s, t) * 255), Math.round(v(o, s, t - 1 / 3) * 255), i] | |
} | |
, | |
h(u, function(e, r) { | |
var s = r.props | |
, u = r.cache | |
, a = r.to | |
, f = r.from; | |
o.fn[e] = function(e) { | |
a && !this[u] && (this[u] = a(this._rgba)); | |
if (e === n) | |
return this[u].slice(); | |
var r, i = t.type(e), l = i === "array" || i === "object" ? e : arguments, c = this[u].slice(); | |
return h(s, function(e, t) { | |
var n = l[i === "object" ? e : t.idx]; | |
n == null && (n = c[t.idx]), | |
c[t.idx] = p(n, t) | |
}), | |
f ? (r = o(f(c)), | |
r[u] = c, | |
r) : o(c) | |
} | |
, | |
h(s, function(n, r) { | |
if (o.fn[n]) | |
return; | |
o.fn[n] = function(s) { | |
var o = t.type(s), u = n === "alpha" ? this._hsla ? "hsla" : "rgba" : e, a = this[u](), f = a[r.idx], l; | |
return o === "undefined" ? f : (o === "function" && (s = s.call(this, f), | |
o = t.type(s)), | |
s == null && r.empty ? this : (o === "string" && (l = i.exec(s), | |
l && (s = f + parseFloat(l[2]) * (l[1] === "+" ? 1 : -1))), | |
a[r.idx] = s, | |
this[u](a))) | |
} | |
}) | |
}), | |
h(r, function(e, n) { | |
t.cssHooks[n] = { | |
set: function(e, r) { | |
var i, s, u = ""; | |
if (t.type(r) !== "string" || (i = d(r))) { | |
r = o(i || r); | |
if (!f.rgba && r._rgba[3] !== 1) { | |
s = n === "backgroundColor" ? e.parentNode : e; | |
while ((u === "" || u === "transparent") && s && s.style) | |
try { | |
u = t.css(s, "backgroundColor"), | |
s = s.parentNode | |
} catch (a) {} | |
r = r.blend(u && u !== "transparent" ? u : "_default") | |
} | |
r = r.toRgbaString() | |
} | |
try { | |
e.style[n] = r | |
} catch (l) {} | |
} | |
}, | |
t.fx.step[n] = function(e) { | |
e.colorInit || (e.start = o(e.elem, n), | |
e.end = o(e.end), | |
e.colorInit = !0), | |
t.cssHooks[n].set(e.elem, e.start.transition(e.end, e.pos)) | |
} | |
}), | |
t.cssHooks.borderColor = { | |
expand: function(e) { | |
var t = {}; | |
return h(["Top", "Right", "Bottom", "Left"], function(n, r) { | |
t["border" + r + "Color"] = e | |
}), | |
t | |
} | |
}, | |
c = t.Color.names = { | |
aqua: "#00ffff", | |
black: "#000000", | |
blue: "#0000ff", | |
fuchsia: "#ff00ff", | |
gray: "#808080", | |
green: "#008000", | |
lime: "#00ff00", | |
maroon: "#800000", | |
navy: "#000080", | |
olive: "#808000", | |
purple: "#800080", | |
red: "#ff0000", | |
silver: "#c0c0c0", | |
teal: "#008080", | |
white: "#ffffff", | |
yellow: "#ffff00", | |
transparent: [null, null, null, 0], | |
_default: "#ffffff" | |
} | |
}(jQuery), | |
function() { | |
function i() { | |
var t = this.ownerDocument.defaultView ? this.ownerDocument.defaultView.getComputedStyle(this, null) : this.currentStyle, n = {}, r, i; | |
if (t && t.length && t[0] && t[t[0]]) { | |
i = t.length; | |
while (i--) | |
r = t[i], | |
typeof t[r] == "string" && (n[e.camelCase(r)] = t[r]) | |
} else | |
for (r in t) | |
typeof t[r] == "string" && (n[r] = t[r]); | |
return n | |
} | |
function s(t, n) { | |
var i = {}, s, o; | |
for (s in n) | |
o = n[s], | |
t[s] !== o && !r[s] && (e.fx.step[s] || !isNaN(parseFloat(o))) && (i[s] = o); | |
return i | |
} | |
var n = ["add", "remove", "toggle"] | |
, r = { | |
border: 1, | |
borderBottom: 1, | |
borderColor: 1, | |
borderLeft: 1, | |
borderRight: 1, | |
borderTop: 1, | |
borderWidth: 1, | |
margin: 1, | |
padding: 1 | |
}; | |
e.each(["borderLeftStyle", "borderRightStyle", "borderBottomStyle", "borderTopStyle"], function(t, n) { | |
e.fx.step[n] = function(e) { | |
if (e.end !== "none" && !e.setAttr || e.pos === 1 && !e.setAttr) | |
jQuery.style(e.elem, n, e.end), | |
e.setAttr = !0 | |
} | |
}), | |
e.effects.animateClass = function(t, r, o, u) { | |
var a = e.speed(r, o, u); | |
return this.queue(function() { | |
var r = e(this), o = r.attr("class") || "", u, f = a.children ? r.find("*").andSelf() : r; | |
f = f.map(function() { | |
var t = e(this); | |
return { | |
el: t, | |
start: i.call(this) | |
} | |
}), | |
u = function() { | |
e.each(n, function(e, n) { | |
t[n] && r[n + "Class"](t[n]) | |
}) | |
} | |
, | |
u(), | |
f = f.map(function() { | |
return this.end = i.call(this.el[0]), | |
this.diff = s(this.start, this.end), | |
this | |
}), | |
r.attr("class", o), | |
f = f.map(function() { | |
var t = this | |
, n = e.Deferred() | |
, r = jQuery.extend({}, a, { | |
queue: !1, | |
complete: function() { | |
n.resolve(t) | |
} | |
}); | |
return this.el.animate(this.diff, r), | |
n.promise() | |
}), | |
e.when.apply(e, f.get()).done(function() { | |
u(), | |
e.each(arguments, function() { | |
var t = this.el; | |
e.each(this.diff, function(e) { | |
t.css(e, "") | |
}) | |
}), | |
a.complete.call(r[0]) | |
}) | |
}) | |
} | |
, | |
e.fn.extend({ | |
_addClass: e.fn.addClass, | |
addClass: function(t, n, r, i) { | |
return n ? e.effects.animateClass.call(this, { | |
add: t | |
}, n, r, i) : this._addClass(t) | |
}, | |
_removeClass: e.fn.removeClass, | |
removeClass: function(t, n, r, i) { | |
return n ? e.effects.animateClass.call(this, { | |
remove: t | |
}, n, r, i) : this._removeClass(t) | |
}, | |
_toggleClass: e.fn.toggleClass, | |
toggleClass: function(n, r, i, s, o) { | |
return typeof r == "boolean" || r === t ? i ? e.effects.animateClass.call(this, r ? { | |
add: n | |
} : { | |
remove: n | |
}, i, s, o) : this._toggleClass(n, r) : e.effects.animateClass.call(this, { | |
toggle: n | |
}, r, i, s) | |
}, | |
switchClass: function(t, n, r, i, s) { | |
return e.effects.animateClass.call(this, { | |
add: n, | |
remove: t | |
}, r, i, s) | |
} | |
}) | |
}(), | |
function() { | |
function i(t, n, r, i) { | |
e.isPlainObject(t) && (n = t, | |
t = t.effect), | |
t = { | |
effect: t | |
}, | |
n == null && (n = {}), | |
e.isFunction(n) && (i = n, | |
r = null, | |
n = {}); | |
if (typeof n == "number" || e.fx.speeds[n]) | |
i = r, | |
r = n, | |
n = {}; | |
return e.isFunction(r) && (i = r, | |
r = null), | |
n && e.extend(t, n), | |
r = r || n.duration, | |
t.duration = e.fx.off ? 0 : typeof r == "number" ? r : r in e.fx.speeds ? e.fx.speeds[r] : e.fx.speeds._default, | |
t.complete = i || n.complete, | |
t | |
} | |
function s(t) { | |
return !t || typeof t == "number" || e.fx.speeds[t] ? !0 : typeof t == "string" && !e.effects.effect[t] ? n && e.effects[t] ? !1 : !0 : !1 | |
} | |
e.extend(e.effects, { | |
version: "1.9.1", | |
save: function(e, t) { | |
for (var n = 0; n < t.length; n++) | |
t[n] !== null && e.data(r + t[n], e[0].style[t[n]]) | |
}, | |
restore: function(e, n) { | |
var i, s; | |
for (s = 0; s < n.length; s++) | |
n[s] !== null && (i = e.data(r + n[s]), | |
i === t && (i = ""), | |
e.css(n[s], i)) | |
}, | |
setMode: function(e, t) { | |
return t === "toggle" && (t = e.is(":hidden") ? "show" : "hide"), | |
t | |
}, | |
getBaseline: function(e, t) { | |
var n, r; | |
switch (e[0]) { | |
case "top": | |
n = 0; | |
break; | |
case "middle": | |
n = .5; | |
break; | |
case "bottom": | |
n = 1; | |
break; | |
default: | |
n = e[0] / t.height | |
} | |
switch (e[1]) { | |
case "left": | |
r = 0; | |
break; | |
case "center": | |
r = .5; | |
break; | |
case "right": | |
r = 1; | |
break; | |
default: | |
r = e[1] / t.width | |
} | |
return { | |
x: r, | |
y: n | |
} | |
}, | |
createWrapper: function(t) { | |
if (t.parent().is(".ui-effects-wrapper")) | |
return t.parent(); | |
var n = { | |
width: t.outerWidth(!0), | |
height: t.outerHeight(!0), | |
"float": t.css("float") | |
} | |
, r = e("<div></div>").addClass("ui-effects-wrapper").css({ | |
fontSize: "100%", | |
background: "transparent", | |
border: "none", | |
margin: 0, | |
padding: 0 | |
}) | |
, i = { | |
width: t.width(), | |
height: t.height() | |
} | |
, s = document.activeElement; | |
try { | |
s.id | |
} catch (o) { | |
s = document.body | |
} | |
return t.wrap(r), | |
(t[0] === s || e.contains(t[0], s)) && e(s).focus(), | |
r = t.parent(), | |
t.css("position") === "static" ? (r.css({ | |
position: "relative" | |
}), | |
t.css({ | |
position: "relative" | |
})) : (e.extend(n, { | |
position: t.css("position"), | |
zIndex: t.css("z-index") | |
}), | |
e.each(["top", "left", "bottom", "right"], function(e, r) { | |
n[r] = t.css(r), | |
isNaN(parseInt(n[r], 10)) && (n[r] = "auto") | |
}), | |
t.css({ | |
position: "relative", | |
top: 0, | |
left: 0, | |
right: "auto", | |
bottom: "auto" | |
})), | |
t.css(i), | |
r.css(n).show() | |
}, | |
removeWrapper: function(t) { | |
var n = document.activeElement; | |
return t.parent().is(".ui-effects-wrapper") && (t.parent().replaceWith(t), | |
(t[0] === n || e.contains(t[0], n)) && e(n).focus()), | |
t | |
}, | |
setTransition: function(t, n, r, i) { | |
return i = i || {}, | |
e.each(n, function(e, n) { | |
var s = t.cssUnit(n); | |
s[0] > 0 && (i[n] = s[0] * r + s[1]) | |
}), | |
i | |
} | |
}), | |
e.fn.extend({ | |
effect: function() { | |
function a(n) { | |
function u() { | |
e.isFunction(i) && i.call(r[0]), | |
e.isFunction(n) && n() | |
} | |
var r = e(this) | |
, i = t.complete | |
, s = t.mode; | |
(r.is(":hidden") ? s === "hide" : s === "show") ? u() : o.call(r[0], t, u) | |
} | |
var t = i.apply(this, arguments) | |
, r = t.mode | |
, s = t.queue | |
, o = e.effects.effect[t.effect] | |
, u = !o && n && e.effects[t.effect]; | |
return e.fx.off || !o && !u ? r ? this[r](t.duration, t.complete) : this.each(function() { | |
t.complete && t.complete.call(this) | |
}) : o ? s === !1 ? this.each(a) : this.queue(s || "fx", a) : u.call(this, { | |
options: t, | |
duration: t.duration, | |
callback: t.complete, | |
mode: t.mode | |
}) | |
}, | |
_show: e.fn.show, | |
show: function(e) { | |
if (s(e)) | |
return this._show.apply(this, arguments); | |
var t = i.apply(this, arguments); | |
return t.mode = "show", | |
this.effect.call(this, t) | |
}, | |
_hide: e.fn.hide, | |
hide: function(e) { | |
if (s(e)) | |
return this._hide.apply(this, arguments); | |
var t = i.apply(this, arguments); | |
return t.mode = "hide", | |
this.effect.call(this, t) | |
}, | |
__toggle: e.fn.toggle, | |
toggle: function(t) { | |
if (s(t) || typeof t == "boolean" || e.isFunction(t)) | |
return this.__toggle.apply(this, arguments); | |
var n = i.apply(this, arguments); | |
return n.mode = "toggle", | |
this.effect.call(this, n) | |
}, | |
cssUnit: function(t) { | |
var n = this.css(t) | |
, r = []; | |
return e.each(["em", "px", "%", "pt"], function(e, t) { | |
n.indexOf(t) > 0 && (r = [parseFloat(n), t]) | |
}), | |
r | |
} | |
}) | |
}(), | |
function() { | |
var t = {}; | |
e.each(["Quad", "Cubic", "Quart", "Quint", "Expo"], function(e, n) { | |
t[n] = function(t) { | |
return Math.pow(t, e + 2) | |
} | |
}), | |
e.extend(t, { | |
Sine: function(e) { | |
return 1 - Math.cos(e * Math.PI / 2) | |
}, | |
Circ: function(e) { | |
return 1 - Math.sqrt(1 - e * e) | |
}, | |
Elastic: function(e) { | |
return e === 0 || e === 1 ? e : -Math.pow(2, 8 * (e - 1)) * Math.sin(((e - 1) * 80 - 7.5) * Math.PI / 15) | |
}, | |
Back: function(e) { | |
return e * e * (3 * e - 2) | |
}, | |
Bounce: function(e) { | |
var t, n = 4; | |
while (e < ((t = Math.pow(2, --n)) - 1) / 11) | |
; | |
return 1 / Math.pow(4, 3 - n) - 7.5625 * Math.pow((t * 3 - 2) / 22 - e, 2) | |
} | |
}), | |
e.each(t, function(t, n) { | |
e.easing["easeIn" + t] = n, | |
e.easing["easeOut" + t] = function(e) { | |
return 1 - n(1 - e) | |
} | |
, | |
e.easing["easeInOut" + t] = function(e) { | |
return e < .5 ? n(e * 2) / 2 : 1 - n(e * -2 + 2) / 2 | |
} | |
}) | |
}() | |
}(jQuery), | |
function(e, t) { | |
var n = 0 | |
, r = {} | |
, i = {}; | |
r.height = r.paddingTop = r.paddingBottom = r.borderTopWidth = r.borderBottomWidth = "hide", | |
i.height = i.paddingTop = i.paddingBottom = i.borderTopWidth = i.borderBottomWidth = "show", | |
e.widget("ui.accordion", { | |
version: "1.9.1", | |
options: { | |
active: 0, | |
animate: {}, | |
collapsible: !1, | |
event: "click", | |
header: "> li > :first-child,> :not(li):even", | |
heightStyle: "auto", | |
icons: { | |
activeHeader: "ui-icon-triangle-1-s", | |
header: "ui-icon-triangle-1-e" | |
}, | |
activate: null, | |
beforeActivate: null | |
}, | |
_create: function() { | |
var t = this.accordionId = "ui-accordion-" + (this.element.attr("id") || ++n) | |
, r = this.options; | |
this.prevShow = this.prevHide = e(), | |
this.element.addClass("ui-accordion ui-widget ui-helper-reset"), | |
this.headers = this.element.find(r.header).addClass("ui-accordion-header ui-helper-reset ui-state-default ui-corner-all"), | |
this._hoverable(this.headers), | |
this._focusable(this.headers), | |
this.headers.next().addClass("ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom").hide(), | |
!r.collapsible && (r.active === !1 || r.active == null) && (r.active = 0), | |
r.active < 0 && (r.active += this.headers.length), | |
this.active = this._findActive(r.active).addClass("ui-accordion-header-active ui-state-active").toggleClass("ui-corner-all ui-corner-top"), | |
this.active.next().addClass("ui-accordion-content-active").show(), | |
this._createIcons(), | |
this.refresh(), | |
this.element.attr("role", "tablist"), | |
this.headers.attr("role", "tab").each(function(n) { | |
var r = e(this) | |
, i = r.attr("id") | |
, s = r.next() | |
, o = s.attr("id"); | |
i || (i = t + "-header-" + n, | |
r.attr("id", i)), | |
o || (o = t + "-panel-" + n, | |
s.attr("id", o)), | |
r.attr("aria-controls", o), | |
s.attr("aria-labelledby", i) | |
}).next().attr("role", "tabpanel"), | |
this.headers.not(this.active).attr({ | |
"aria-selected": "false", | |
tabIndex: -1 | |
}).next().attr({ | |
"aria-expanded": "false", | |
"aria-hidden": "true" | |
}).hide(), | |
this.active.length ? this.active.attr({ | |
"aria-selected": "true", | |
tabIndex: 0 | |
}).next().attr({ | |
"aria-expanded": "true", | |
"aria-hidden": "false" | |
}) : this.headers.eq(0).attr("tabIndex", 0), | |
this._on(this.headers, { | |
keydown: "_keydown" | |
}), | |
this._on(this.headers.next(), { | |
keydown: "_panelKeyDown" | |
}), | |
this._setupEvents(r.event) | |
}, | |
_getCreateEventData: function() { | |
return { | |
header: this.active, | |
content: this.active.length ? this.active.next() : e() | |
} | |
}, | |
_createIcons: function() { | |
var t = this.options.icons; | |
t && (e("<span>").addClass("ui-accordion-header-icon ui-icon " + t.header).prependTo(this.headers), | |
this.active.children(".ui-accordion-header-icon").removeClass(t.header).addClass(t.activeHeader), | |
this.headers.addClass("ui-accordion-icons")) | |
}, | |
_destroyIcons: function() { | |
this.headers.removeClass("ui-accordion-icons").children(".ui-accordion-header-icon").remove() | |
}, | |
_destroy: function() { | |
var e; | |
this.element.removeClass("ui-accordion ui-widget ui-helper-reset").removeAttr("role"), | |
this.headers.removeClass("ui-accordion-header ui-accordion-header-active ui-helper-reset ui-state-default ui-corner-all ui-state-active ui-state-disabled ui-corner-top").removeAttr("role").removeAttr("aria-selected").removeAttr("aria-controls").removeAttr("tabIndex").each(function() { | |
/^ui-accordion/.test(this.id) && this.removeAttribute("id") | |
}), | |
this._destroyIcons(), | |
e = this.headers.next().css("display", "").removeAttr("role").removeAttr("aria-expanded").removeAttr("aria-hidden").removeAttr("aria-labelledby").removeClass("ui-helper-reset ui-widget-content ui-corner-bottom ui-accordion-content ui-accordion-content-active ui-state-disabled").each(function() { | |
/^ui-accordion/.test(this.id) && this.removeAttribute("id") | |
}), | |
this.options.heightStyle !== "content" && e.css("height", "") | |
}, | |
_setOption: function(e, t) { | |
if (e === "active") { | |
this._activate(t); | |
return | |
} | |
e === "event" && (this.options.event && this._off(this.headers, this.options.event), | |
this._setupEvents(t)), | |
this._super(e, t), | |
e === "collapsible" && !t && this.options.active === !1 && this._activate(0), | |
e === "icons" && (this._destroyIcons(), | |
t && this._createIcons()), | |
e === "disabled" && this.headers.add(this.headers.next()).toggleClass("ui-state-disabled", !!t) | |
}, | |
_keydown: function(t) { | |
if (t.altKey || t.ctrlKey) | |
return; | |
var n = e.ui.keyCode | |
, r = this.headers.length | |
, i = this.headers.index(t.target) | |
, s = !1; | |
switch (t.keyCode) { | |
case n.RIGHT: | |
case n.DOWN: | |
s = this.headers[(i + 1) % r]; | |
break; | |
case n.LEFT: | |
case n.UP: | |
s = this.headers[(i - 1 + r) % r]; | |
break; | |
case n.SPACE: | |
case n.ENTER: | |
this._eventHandler(t); | |
break; | |
case n.HOME: | |
s = this.headers[0]; | |
break; | |
case n.END: | |
s = this.headers[r - 1] | |
} | |
s && (e(t.target).attr("tabIndex", -1), | |
e(s).attr("tabIndex", 0), | |
s.focus(), | |
t.preventDefault()) | |
}, | |
_panelKeyDown: function(t) { | |
t.keyCode === e.ui.keyCode.UP && t.ctrlKey && e(t.currentTarget).prev().focus() | |
}, | |
refresh: function() { | |
var t, n, r = this.options.heightStyle, i = this.element.parent(); | |
r === "fill" ? (e.support.minHeight || (n = i.css("overflow"), | |
i.css("overflow", "hidden")), | |
t = i.height(), | |
this.element.siblings(":visible").each(function() { | |
var n = e(this) | |
, r = n.css("position"); | |
if (r === "absolute" || r === "fixed") | |
return; | |
t -= n.outerHeight(!0) | |
}), | |
n && i.css("overflow", n), | |
this.headers.each(function() { | |
t -= e(this).outerHeight(!0) | |
}), | |
this.headers.next().each(function() { | |
e(this).height(Math.max(0, t - e(this).innerHeight() + e(this).height())) | |
}).css("overflow", "auto")) : r === "auto" && (t = 0, | |
this.headers.next().each(function() { | |
t = Math.max(t, e(this).height("").height()) | |
}).height(t)) | |
}, | |
_activate: function(t) { | |
var n = this._findActive(t)[0]; | |
if (n === this.active[0]) | |
return; | |
n = n || this.active[0], | |
this._eventHandler({ | |
target: n, | |
currentTarget: n, | |
preventDefault: e.noop | |
}) | |
}, | |
_findActive: function(t) { | |
return typeof t == "number" ? this.headers.eq(t) : e() | |
}, | |
_setupEvents: function(t) { | |
var n = {}; | |
if (!t) | |
return; | |
e.each(t.split(" "), function(e, t) { | |
n[t] = "_eventHandler" | |
}), | |
this._on(this.headers, n) | |
}, | |
_eventHandler: function(t) { | |
var n = this.options | |
, r = this.active | |
, i = e(t.currentTarget) | |
, s = i[0] === r[0] | |
, o = s && n.collapsible | |
, u = o ? e() : i.next() | |
, a = r.next() | |
, f = { | |
oldHeader: r, | |
oldPanel: a, | |
newHeader: o ? e() : i, | |
newPanel: u | |
}; | |
t.preventDefault(); | |
if (s && !n.collapsible || this._trigger("beforeActivate", t, f) === !1) | |
return; | |
n.active = o ? !1 : this.headers.index(i), | |
this.active = s ? e() : i, | |
this._toggle(f), | |
r.removeClass("ui-accordion-header-active ui-state-active"), | |
n.icons && r.children(".ui-accordion-header-icon").removeClass(n.icons.activeHeader).addClass(n.icons.header), | |
s || (i.removeClass("ui-corner-all").addClass("ui-accordion-header-active ui-state-active ui-corner-top"), | |
n.icons && i.children(".ui-accordion-header-icon").removeClass(n.icons.header).addClass(n.icons.activeHeader), | |
i.next().addClass("ui-accordion-content-active")) | |
}, | |
_toggle: function(t) { | |
var n = t.newPanel | |
, r = this.prevShow.length ? this.prevShow : t.oldPanel; | |
this.prevShow.add(this.prevHide).stop(!0, !0), | |
this.prevShow = n, | |
this.prevHide = r, | |
this.options.animate ? this._animate(n, r, t) : (r.hide(), | |
n.show(), | |
this._toggleComplete(t)), | |
r.attr({ | |
"aria-expanded": "false", | |
"aria-hidden": "true" | |
}), | |
r.prev().attr("aria-selected", "false"), | |
n.length && r.length ? r.prev().attr("tabIndex", -1) : n.length && this.headers.filter(function() { | |
return e(this).attr("tabIndex") === 0 | |
}).attr("tabIndex", -1), | |
n.attr({ | |
"aria-expanded": "true", | |
"aria-hidden": "false" | |
}).prev().attr({ | |
"aria-selected": "true", | |
tabIndex: 0 | |
}) | |
}, | |
_animate: function(e, t, n) { | |
var s, o, u, a = this, f = 0, l = e.length && (!t.length || e.index() < t.index()), c = this.options.animate || {}, h = l && c.down || c, p = function() { | |
a._toggleComplete(n) | |
}; | |
typeof h == "number" && (u = h), | |
typeof h == "string" && (o = h), | |
o = o || h.easing || c.easing, | |
u = u || h.duration || c.duration; | |
if (!t.length) | |
return e.animate(i, u, o, p); | |
if (!e.length) | |
return t.animate(r, u, o, p); | |
s = e.show().outerHeight(), | |
t.animate(r, { | |
duration: u, | |
easing: o, | |
step: function(e, t) { | |
t.now = Math.round(e) | |
} | |
}), | |
e.hide().animate(i, { | |
duration: u, | |
easing: o, | |
complete: p, | |
step: function(e, n) { | |
n.now = Math.round(e), | |
n.prop !== "height" ? f += n.now : a.options.heightStyle !== "content" && (n.now = Math.round(s - t.outerHeight() - f), | |
f = 0) | |
} | |
}) | |
}, | |
_toggleComplete: function(e) { | |
var t = e.oldPanel; | |
t.removeClass("ui-accordion-content-active").prev().removeClass("ui-corner-top").addClass("ui-corner-all"), | |
t.length && (t.parent()[0].className = t.parent()[0].className), | |
this._trigger("activate", null, e) | |
} | |
}), | |
e.uiBackCompat !== !1 && (function(e, t) { | |
e.extend(t.options, { | |
navigation: !1, | |
navigationFilter: function() { | |
return this.href.toLowerCase() === location.href.toLowerCase() | |
} | |
}); | |
var n = t._create; | |
t._create = function() { | |
if (this.options.navigation) { | |
var t = this | |
, r = this.element.find(this.options.header) | |
, i = r.next() | |
, s = r.add(i).find("a").filter(this.options.navigationFilter)[0]; | |
s && r.add(i).each(function(n) { | |
if (e.contains(this, s)) | |
return t.options.active = Math.floor(n / 2), | |
!1 | |
}) | |
} | |
n.call(this) | |
} | |
}(jQuery, jQuery.ui.accordion.prototype), | |
function(e, t) { | |
e.extend(t.options, { | |
heightStyle: null, | |
autoHeight: !0, | |
clearStyle: !1, | |
fillSpace: !1 | |
}); | |
var n = t._create | |
, r = t._setOption; | |
e.extend(t, { | |
_create: function() { | |
this.options.heightStyle = this.options.heightStyle || this._mergeHeightStyle(), | |
n.call(this) | |
}, | |
_setOption: function(e) { | |
if (e === "autoHeight" || e === "clearStyle" || e === "fillSpace") | |
this.options.heightStyle = this._mergeHeightStyle(); | |
r.apply(this, arguments) | |
}, | |
_mergeHeightStyle: function() { | |
var e = this.options; | |
if (e.fillSpace) | |
return "fill"; | |
if (e.clearStyle) | |
return "content"; | |
if (e.autoHeight) | |
return "auto" | |
} | |
}) | |
}(jQuery, jQuery.ui.accordion.prototype), | |
function(e, t) { | |
e.extend(t.options.icons, { | |
activeHeader: null, | |
headerSelected: "ui-icon-triangle-1-s" | |
}); | |
var n = t._createIcons; | |
t._createIcons = function() { | |
this.options.icons && (this.options.icons.activeHeader = this.options.icons.activeHeader || this.options.icons.headerSelected), | |
n.call(this) | |
} | |
}(jQuery, jQuery.ui.accordion.prototype), | |
function(e, t) { | |
t.activate = t._activate; | |
var n = t._findActive; | |
t._findActive = function(e) { | |
return e === -1 && (e = !1), | |
e && typeof e != "number" && (e = this.headers.index(this.headers.filter(e)), | |
e === -1 && (e = !1)), | |
n.call(this, e) | |
} | |
}(jQuery, jQuery.ui.accordion.prototype), | |
jQuery.ui.accordion.prototype.resize = jQuery.ui.accordion.prototype.refresh, | |
function(e, t) { | |
e.extend(t.options, { | |
change: null, | |
changestart: null | |
}); | |
var n = t._trigger; | |
t._trigger = function(e, t, r) { | |
var i = n.apply(this, arguments); | |
return i ? (e === "beforeActivate" ? i = n.call(this, "changestart", t, { | |
oldHeader: r.oldHeader, | |
oldContent: r.oldPanel, | |
newHeader: r.newHeader, | |
newContent: r.newPanel | |
}) : e === "activate" && (i = n.call(this, "change", t, { | |
oldHeader: r.oldHeader, | |
oldContent: r.oldPanel, | |
newHeader: r.newHeader, | |
newContent: r.newPanel | |
})), | |
i) : !1 | |
} | |
}(jQuery, jQuery.ui.accordion.prototype), | |
function(e, t) { | |
e.extend(t.options, { | |
animate: null, | |
animated: "slide" | |
}); | |
var n = t._create; | |
t._create = function() { | |
var e = this.options; | |
e.animate === null && (e.animated ? e.animated === "slide" ? e.animate = 300 : e.animated === "bounceslide" ? e.animate = { | |
duration: 200, | |
down: { | |
easing: "easeOutBounce", | |
duration: 1e3 | |
} | |
} : e.animate = e.animated : e.animate = !1), | |
n.call(this) | |
} | |
}(jQuery, jQuery.ui.accordion.prototype)) | |
}(jQuery), | |
function(e, t) { | |
var n = 0; | |
e.widget("ui.autocomplete", { | |
version: "1.9.1", | |
defaultElement: "<input>", | |
options: { | |
appendTo: "body", | |
autoFocus: !1, | |
delay: 300, | |
minLength: 1, | |
position: { | |
my: "left top", | |
at: "left bottom", | |
collision: "none" | |
}, | |
source: null, | |
change: null, | |
close: null, | |
focus: null, | |
open: null, | |
response: null, | |
search: null, | |
select: null | |
}, | |
pending: 0, | |
_create: function() { | |
var t, n, r; | |
this.isMultiLine = this._isMultiLine(), | |
this.valueMethod = this.element[this.element.is("input,textarea") ? "val" : "text"], | |
this.isNewMenu = !0, | |
this.element.addClass("ui-autocomplete-input").attr("autocomplete", "off"), | |
this._on(this.element, { | |
keydown: function(i) { | |
if (this.element.prop("readOnly")) { | |
t = !0, | |
r = !0, | |
n = !0; | |
return | |
} | |
t = !1, | |
r = !1, | |
n = !1; | |
var s = e.ui.keyCode; | |
switch (i.keyCode) { | |
case s.PAGE_UP: | |
t = !0, | |
this._move("previousPage", i); | |
break; | |
case s.PAGE_DOWN: | |
t = !0, | |
this._move("nextPage", i); | |
break; | |
case s.UP: | |
t = !0, | |
this._keyEvent("previous", i); | |
break; | |
case s.DOWN: | |
t = !0, | |
this._keyEvent("next", i); | |
break; | |
case s.ENTER: | |
case s.NUMPAD_ENTER: | |
this.menu.active && (t = !0, | |
i.preventDefault(), | |
this.menu.select(i)); | |
break; | |
case s.TAB: | |
this.menu.active && this.menu.select(i); | |
break; | |
case s.ESCAPE: | |
this.menu.element.is(":visible") && (this._value(this.term), | |
this.close(i), | |
i.preventDefault()); | |
break; | |
default: | |
n = !0, | |
this._searchTimeout(i) | |
} | |
}, | |
keypress: function(r) { | |
if (t) { | |
t = !1, | |
r.preventDefault(); | |
return | |
} | |
if (n) | |
return; | |
var i = e.ui.keyCode; | |
switch (r.keyCode) { | |
case i.PAGE_UP: | |
this._move("previousPage", r); | |
break; | |
case i.PAGE_DOWN: | |
this._move("nextPage", r); | |
break; | |
case i.UP: | |
this._keyEvent("previous", r); | |
break; | |
case i.DOWN: | |
this._keyEvent("next", r) | |
} | |
}, | |
input: function(e) { | |
if (r) { | |
r = !1, | |
e.preventDefault(); | |
return | |
} | |
this._searchTimeout(e) | |
}, | |
focus: function() { | |
this.selectedItem = null, | |
this.previous = this._value() | |
}, | |
blur: function(e) { | |
if (this.cancelBlur) { | |
delete this.cancelBlur; | |
return | |
} | |
clearTimeout(this.searching), | |
this.close(e), | |
this._change(e) | |
} | |
}), | |
this._initSource(), | |
this.menu = e("<ul>").addClass("ui-autocomplete").appendTo(this.document.find(this.options.appendTo || "body")[0]).menu({ | |
input: e(), | |
role: null | |
}).zIndex(this.element.zIndex() + 1).hide().data("menu"), | |
this._on(this.menu.element, { | |
mousedown: function(t) { | |
t.preventDefault(), | |
this.cancelBlur = !0, | |
this._delay(function() { | |
delete this.cancelBlur | |
}); | |
var n = this.menu.element[0]; | |
e(t.target).closest(".ui-menu-item").length || this._delay(function() { | |
var t = this; | |
this.document.one("mousedown", function(r) { | |
r.target !== t.element[0] && r.target !== n && !e.contains(n, r.target) && t.close() | |
}) | |
}) | |
}, | |
menufocus: function(t, n) { | |
if (this.isNewMenu) { | |
this.isNewMenu = !1; | |
if (t.originalEvent && /^mouse/.test(t.originalEvent.type)) { | |
this.menu.blur(), | |
this.document.one("mousemove", function() { | |
e(t.target).trigger(t.originalEvent) | |
}); | |
return | |
} | |
} | |
var r = n.item.data("ui-autocomplete-item") || n.item.data("item.autocomplete"); | |
!1 !== this._trigger("focus", t, { | |
item: r | |
}) ? t.originalEvent && /^key/.test(t.originalEvent.type) && this._value(r.value) : this.liveRegion.text(r.value) | |
}, | |
menuselect: function(e, t) { | |
var n = t.item.data("ui-autocomplete-item") || t.item.data("item.autocomplete") | |
, r = this.previous; | |
this.element[0] !== this.document[0].activeElement && (this.element.focus(), | |
this.previous = r, | |
this._delay(function() { | |
this.previous = r, | |
this.selectedItem = n | |
})), | |
!1 !== this._trigger("select", e, { | |
item: n | |
}) && this._value(n.value), | |
this.term = this._value(), | |
this.close(e), | |
this.selectedItem = n | |
} | |
}), | |
this.liveRegion = e("<span>", { | |
role: "status", | |
"aria-live": "polite" | |
}).addClass("ui-helper-hidden-accessible").insertAfter(this.element), | |
e.fn.bgiframe && this.menu.element.bgiframe(), | |
this._on(this.window, { | |
beforeunload: function() { | |
this.element.removeAttr("autocomplete") | |
} | |
}) | |
}, | |
_destroy: function() { | |
clearTimeout(this.searching), | |
this.element.removeClass("ui-autocomplete-input").removeAttr("autocomplete"), | |
this.menu.element.remove(), | |
this.liveRegion.remove() | |
}, | |
_setOption: function(e, t) { | |
this._super(e, t), | |
e === "source" && this._initSource(), | |
e === "appendTo" && this.menu.element.appendTo(this.document.find(t || "body")[0]), | |
e === "disabled" && t && this.xhr && this.xhr.abort() | |
}, | |
_isMultiLine: function() { | |
return this.element.is("textarea") ? !0 : this.element.is("input") ? !1 : this.element.prop("isContentEditable") | |
}, | |
_initSource: function() { | |
var t, n, r = this; | |
e.isArray(this.options.source) ? (t = this.options.source, | |
this.source = function(n, r) { | |
r(e.ui.autocomplete.filter(t, n.term)) | |
} | |
) : typeof this.options.source == "string" ? (n = this.options.source, | |
this.source = function(t, i) { | |
r.xhr && r.xhr.abort(), | |
r.xhr = e.ajax({ | |
url: n, | |
data: t, | |
dataType: "json", | |
success: function(e) { | |
i(e) | |
}, | |
error: function() { | |
i([]) | |
} | |
}) | |
} | |
) : this.source = this.options.source | |
}, | |
_searchTimeout: function(e) { | |
clearTimeout(this.searching), | |
this.searching = this._delay(function() { | |
this.term !== this._value() && (this.selectedItem = null, | |
this.search(null, e)) | |
}, this.options.delay) | |
}, | |
search: function(e, t) { | |
e = e != null ? e : this._value(), | |
this.term = this._value(); | |
if (e.length < this.options.minLength) | |
return this.close(t); | |
if (this._trigger("search", t) === !1) | |
return; | |
return this._search(e) | |
}, | |
_search: function(e) { | |
this.pending++, | |
this.element.addClass("ui-autocomplete-loading"), | |
this.cancelSearch = !1, | |
this.source({ | |
term: e | |
}, this._response()) | |
}, | |
_response: function() { | |
var e = this | |
, t = ++n; | |
return function(r) { | |
t === n && e.__response(r), | |
e.pending--, | |
e.pending || e.element.removeClass("ui-autocomplete-loading") | |
} | |
}, | |
__response: function(e) { | |
e && (e = this._normalize(e)), | |
this._trigger("response", null, { | |
content: e | |
}), | |
!this.options.disabled && e && e.length && !this.cancelSearch ? (this._suggest(e), | |
this._trigger("open")) : this._close() | |
}, | |
close: function(e) { | |
this.cancelSearch = !0, | |
this._close(e) | |
}, | |
_close: function(e) { | |
this.menu.element.is(":visible") && (this.menu.element.hide(), | |
this.menu.blur(), | |
this.isNewMenu = !0, | |
this._trigger("close", e)) | |
}, | |
_change: function(e) { | |
this.previous !== this._value() && this._trigger("change", e, { | |
item: this.selectedItem | |
}) | |
}, | |
_normalize: function(t) { | |
return t.length && t[0].label && t[0].value ? t : e.map(t, function(t) { | |
return typeof t == "string" ? { | |
label: t, | |
value: t | |
} : e.extend({ | |
label: t.label || t.value, | |
value: t.value || t.label | |
}, t) | |
}) | |
}, | |
_suggest: function(t) { | |
var n = this.menu.element.empty().zIndex(this.element.zIndex() + 1); | |
this._renderMenu(n, t), | |
this.menu.refresh(), | |
n.show(), | |
this._resizeMenu(), | |
n.position(e.extend({ | |
of: this.element | |
}, this.options.position)), | |
this.options.autoFocus && this.menu.next() | |
}, | |
_resizeMenu: function() { | |
var e = this.menu.element; | |
e.outerWidth(Math.max(e.width("").outerWidth() + 1, this.element.outerWidth())) | |
}, | |
_renderMenu: function(t, n) { | |
var r = this; | |
e.each(n, function(e, n) { | |
r._renderItemData(t, n) | |
}) | |
}, | |
_renderItemData: function(e, t) { | |
return this._renderItem(e, t).data("ui-autocomplete-item", t) | |
}, | |
_renderItem: function(t, n) { | |
return e("<li>").append(e("<a>").text(n.label)).appendTo(t) | |
}, | |
_move: function(e, t) { | |
if (!this.menu.element.is(":visible")) { | |
this.search(null, t); | |
return | |
} | |
if (this.menu.isFirstItem() && /^previous/.test(e) || this.menu.isLastItem() && /^next/.test(e)) { | |
this._value(this.term), | |
this.menu.blur(); | |
return | |
} | |
this.menu[e](t) | |
}, | |
widget: function() { | |
return this.menu.element | |
}, | |
_value: function() { | |
return this.valueMethod.apply(this.element, arguments) | |
}, | |
_keyEvent: function(e, t) { | |
if (!this.isMultiLine || this.menu.element.is(":visible")) | |
this._move(e, t), | |
t.preventDefault() | |
} | |
}), | |
e.extend(e.ui.autocomplete, { | |
escapeRegex: function(e) { | |
return e.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g, "\\$&") | |
}, | |
filter: function(t, n) { | |
var r = new RegExp(e.ui.autocomplete.escapeRegex(n),"i"); | |
return e.grep(t, function(e) { | |
return r.test(e.label || e.value || e) | |
}) | |
} | |
}), | |
e.widget("ui.autocomplete", e.ui.autocomplete, { | |
options: { | |
messages: { | |
noResults: "No search results.", | |
results: function(e) { | |
return e + (e > 1 ? " results are" : " result is") + " available, use up and down arrow keys to navigate." | |
} | |
} | |
}, | |
__response: function(e) { | |
var t; | |
this._superApply(arguments); | |
if (this.options.disabled || this.cancelSearch) | |
return; | |
e && e.length ? t = this.options.messages.results(e.length) : t = this.options.messages.noResults, | |
this.liveRegion.text(t) | |
} | |
}) | |
}(jQuery), | |
function(e, t) { | |
var n, r, i, s, o = "ui-button ui-widget ui-state-default ui-corner-all", u = "ui-state-hover ui-state-active ", a = "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", f = function() { | |
var t = e(this).find(":ui-button"); | |
setTimeout(function() { | |
t.button("refresh") | |
}, 1) | |
}, l = function(t) { | |
var n = t.name | |
, r = t.form | |
, i = e([]); | |
return n && (r ? i = e(r).find("[name='" + n + "']") : i = e("[name='" + n + "']", t.ownerDocument).filter(function() { | |
return !this.form | |
})), | |
i | |
}; | |
e.widget("ui.button", { | |
version: "1.9.1", | |
defaultElement: "<button>", | |
options: { | |
disabled: null, | |
text: !0, | |
label: null, | |
icons: { | |
primary: null, | |
secondary: null | |
} | |
}, | |
_create: function() { | |
this.element.closest("form").unbind("reset" + this.eventNamespace).bind("reset" + this.eventNamespace, f), | |
typeof this.options.disabled != "boolean" ? this.options.disabled = !!this.element.prop("disabled") : this.element.prop("disabled", this.options.disabled), | |
this._determineButtonType(), | |
this.hasTitle = !!this.buttonElement.attr("title"); | |
var t = this | |
, u = this.options | |
, a = this.type === "checkbox" || this.type === "radio" | |
, c = "ui-state-hover" + (a ? "" : " ui-state-active") | |
, h = "ui-state-focus"; | |
u.label === null && (u.label = this.type === "input" ? this.buttonElement.val() : this.buttonElement.html()), | |
this.buttonElement.addClass(o).attr("role", "button").bind("mouseenter" + this.eventNamespace, function() { | |
if (u.disabled) | |
return; | |
e(this).addClass("ui-state-hover"), | |
this === n && e(this).addClass("ui-state-active") | |
}).bind("mouseleave" + this.eventNamespace, function() { | |
if (u.disabled) | |
return; | |
e(this).removeClass(c) | |
}).bind("click" + this.eventNamespace, function(e) { | |
u.disabled && (e.preventDefault(), | |
e.stopImmediatePropagation()) | |
}), | |
this.element.bind("focus" + this.eventNamespace, function() { | |
t.buttonElement.addClass(h) | |
}).bind("blur" + this.eventNamespace, function() { | |
t.buttonElement.removeClass(h) | |
}), | |
a && (this.element.bind("change" + this.eventNamespace, function() { | |
if (s) | |
return; | |
t.refresh() | |
}), | |
this.buttonElement.bind("mousedown" + this.eventNamespace, function(e) { | |
if (u.disabled) | |
return; | |
s = !1, | |
r = e.pageX, | |
i = e.pageY | |
}).bind("mouseup" + this.eventNamespace, function(e) { | |
if (u.disabled) | |
return; | |
if (r !== e.pageX || i !== e.pageY) | |
s = !0 | |
})), | |
this.type === "checkbox" ? this.buttonElement.bind("click" + this.eventNamespace, function() { | |
if (u.disabled || s) | |
return !1; | |
e(this).toggleClass("ui-state-active"), | |
t.buttonElement.attr("aria-pressed", t.element[0].checked) | |
}) : this.type === "radio" ? this.buttonElement.bind("click" + this.eventNamespace, function() { | |
if (u.disabled || s) | |
return !1; | |
e(this).addClass("ui-state-active"), | |
t.buttonElement.attr("aria-pressed", "true"); | |
var n = t.element[0]; | |
l(n).not(n).map(function() { | |
return e(this).button("widget")[0] | |
}).removeClass("ui-state-active").attr("aria-pressed", "false") | |
}) : (this.buttonElement.bind("mousedown" + this.eventNamespace, function() { | |
if (u.disabled) | |
return !1; | |
e(this).addClass("ui-state-active"), | |
n = this, | |
t.document.one("mouseup", function() { | |
n = null | |
}) | |
}).bind("mouseup" + this.eventNamespace, function() { | |
if (u.disabled) | |
return !1; | |
e(this).removeClass("ui-state-active") | |
}).bind("keydown" + this.eventNamespace, function(t) { | |
if (u.disabled) | |
return !1; | |
(t.keyCode === e.ui.keyCode.SPACE || t.keyCode === e.ui.keyCode.ENTER) && e(this).addClass("ui-state-active") | |
}).bind("keyup" + this.eventNamespace, function() { | |
e(this).removeClass("ui-state-active") | |
}), | |
this.buttonElement.is("a") && this.buttonElement.keyup(function(t) { | |
t.keyCode === e.ui.keyCode.SPACE && e(this).click() | |
})), | |
this._setOption("disabled", u.disabled), | |
this._resetButton() | |
}, | |
_determineButtonType: function() { | |
var e, t, n; | |
this.element.is("[type=checkbox]") ? this.type = "checkbox" : this.element.is("[type=radio]") ? this.type = "radio" : this.element.is("input") ? this.type = "input" : this.type = "button", | |
this.type === "checkbox" || this.type === "radio" ? (e = this.element.parents().last(), | |
t = "label[for='" + this.element.attr("id") + "']", | |
this.buttonElement = e.find(t), | |
this.buttonElement.length || (e = e.length ? e.siblings() : this.element.siblings(), | |
this.buttonElement = e.filter(t), | |
this.buttonElement.length || (this.buttonElement = e.find(t))), | |
this.element.addClass("ui-helper-hidden-accessible"), | |
n = this.element.is(":checked"), | |
n && this.buttonElement.addClass("ui-state-active"), | |
this.buttonElement.prop("aria-pressed", n)) : this.buttonElement = this.element | |
}, | |
widget: function() { | |
return this.buttonElement | |
}, | |
_destroy: function() { | |
this.element.removeClass("ui-helper-hidden-accessible"), | |
this.buttonElement.removeClass(o + " " + u + " " + a).removeAttr("role").removeAttr("aria-pressed").html(this.buttonElement.find(".ui-button-text").html()), | |
this.hasTitle || this.buttonElement.removeAttr("title") | |
}, | |
_setOption: function(e, t) { | |
this._super(e, t); | |
if (e === "disabled") { | |
t ? this.element.prop("disabled", !0) : this.element.prop("disabled", !1); | |
return | |
} | |
this._resetButton() | |
}, | |
refresh: function() { | |
var t = this.element.is(":disabled") || this.element.hasClass("ui-button-disabled"); | |
t !== this.options.disabled && this._setOption("disabled", t), | |
this.type === "radio" ? l(this.element[0]).each(function() { | |
e(this).is(":checked") ? e(this).button("widget").addClass("ui-state-active").attr("aria-pressed", "true") : e(this).button("widget").removeClass("ui-state-active").attr("aria-pressed", "false") | |
}) : 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); | |
return | |
} | |
var t = this.buttonElement.removeClass(a) | |
, n = e("<span></span>", this.document[0]).addClass("ui-button-text").html(this.options.label).appendTo(t.empty()).text() | |
, r = this.options.icons | |
, i = r.primary && r.secondary | |
, s = []; | |
r.primary || r.secondary ? (this.options.text && s.push("ui-button-text-icon" + (i ? "s" : r.primary ? "-primary" : "-secondary")), | |
r.primary && t.prepend("<span class='ui-button-icon-primary ui-icon " + r.primary + "'></span>"), | |
r.secondary && t.append("<span class='ui-button-icon-secondary ui-icon " + r.secondary + "'></span>"), | |
this.options.text || (s.push(i ? "ui-button-icons-only" : "ui-button-icon-only"), | |
this.hasTitle || t.attr("title", e.trim(n)))) : s.push("ui-button-text-only"), | |
t.addClass(s.join(" ")) | |
} | |
}), | |
e.widget("ui.buttonset", { | |
version: "1.9.1", | |
options: { | |
items: "button, input[type=button], input[type=submit], input[type=reset], input[type=checkbox], input[type=radio], a, :data(button)" | |
}, | |
_create: function() { | |
this.element.addClass("ui-buttonset") | |
}, | |
_init: function() { | |
this.refresh() | |
}, | |
_setOption: function(e, t) { | |
e === "disabled" && this.buttons.button("option", e, t), | |
this._super(e, t) | |
}, | |
refresh: function() { | |
var t = this.element.css("direction") === "rtl"; | |
this.buttons = this.element.find(this.options.items).filter(":ui-button").button("refresh").end().not(":ui-button").button().end().map(function() { | |
return e(this).button("widget")[0] | |
}).removeClass("ui-corner-all ui-corner-left ui-corner-right").filter(":first").addClass(t ? "ui-corner-right" : "ui-corner-left").end().filter(":last").addClass(t ? "ui-corner-left" : "ui-corner-right").end().end() | |
}, | |
_destroy: function() { | |
this.element.removeClass("ui-buttonset"), | |
this.buttons.map(function() { | |
return e(this).button("widget")[0] | |
}).removeClass("ui-corner-left ui-corner-right").end().button("destroy") | |
} | |
}) | |
}(jQuery), | |
function($, undefined) { | |
function Datepicker() { | |
this.debug = !1, | |
this._curInst = null, | |
this._keyEvent = !1, | |
this._disabledInputs = [], | |
this._datepickerShowing = !1, | |
this._inDialog = !1, | |
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: !1, | |
showMonthAfterYear: !1, | |
yearSuffix: "" | |
}, | |
this._defaults = { | |
showOn: "focus", | |
showAnim: "fadeIn", | |
showOptions: {}, | |
defaultDate: null, | |
appendText: "", | |
buttonText: "...", | |
buttonImage: "", | |
buttonImageOnly: !1, | |
hideIfNoPrevNext: !1, | |
navigationAsDateFormat: !1, | |
gotoCurrent: !1, | |
changeMonth: !1, | |
changeYear: !1, | |
yearRange: "c-10:c+10", | |
showOtherMonths: !1, | |
selectOtherMonths: !1, | |
showWeek: !1, | |
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: !0, | |
showButtonPanel: !1, | |
autoSize: !1, | |
disabled: !1 | |
}, | |
$.extend(this._defaults, this.regional[""]), | |
this.dpDiv = bindHover($('<div id="' + this._mainDivId + '" class="ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all"></div>')) | |
} | |
function bindHover(e) { | |
var t = "button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a"; | |
return e.delegate(t, "mouseout", function() { | |
$(this).removeClass("ui-state-hover"), | |
this.className.indexOf("ui-datepicker-prev") != -1 && $(this).removeClass("ui-datepicker-prev-hover"), | |
this.className.indexOf("ui-datepicker-next") != -1 && $(this).removeClass("ui-datepicker-next-hover") | |
}).delegate(t, "mouseover", function() { | |
$.datepicker._isDisabledDatepicker(instActive.inline ? e.parent()[0] : instActive.input[0]) || ($(this).parents(".ui-datepicker-calendar").find("a").removeClass("ui-state-hover"), | |
$(this).addClass("ui-state-hover"), | |
this.className.indexOf("ui-datepicker-prev") != -1 && $(this).addClass("ui-datepicker-prev-hover"), | |
this.className.indexOf("ui-datepicker-next") != -1 && $(this).addClass("ui-datepicker-next-hover")) | |
}) | |
} | |
function extendRemove(e, t) { | |
$.extend(e, t); | |
for (var n in t) | |
if (t[n] == null || t[n] == undefined) | |
e[n] = t[n]; | |
return e | |
} | |
$.extend($.ui, { | |
datepicker: { | |
version: "1.9.1" | |
} | |
}); | |
var PROP_NAME = "datepicker", dpuuid = (new Date).getTime(), instActive; | |
$.extend(Datepicker.prototype, { | |
markerClassName: "hasDatepicker", | |
maxRows: 4, | |
log: function() { | |
this.debug && console.log.apply("", arguments) | |
}, | |
_widgetDatepicker: function() { | |
return this.dpDiv | |
}, | |
setDefaults: function(e) { | |
return extendRemove(this._defaults, e || {}), | |
this | |
}, | |
_attachDatepicker: function(target, settings) { | |
var inlineSettings = null; | |
for (var attrName in this._defaults) { | |
var attrValue = target.getAttribute("date:" + attrName); | |
if (attrValue) { | |
inlineSettings = inlineSettings || {}; | |
try { | |
inlineSettings[attrName] = eval(attrValue) | |
} catch (err) { | |
inlineSettings[attrName] = attrValue | |
} | |
} | |
} | |
var nodeName = target.nodeName.toLowerCase() | |
, inline = nodeName == "div" || nodeName == "span"; | |
target.id || (this.uuid += 1, | |
target.id = "dp" + this.uuid); | |
var inst = this._newInst($(target), inline); | |
inst.settings = $.extend({}, settings || {}, inlineSettings || {}), | |
nodeName == "input" ? this._connectDatepicker(target, inst) : inline && this._inlineDatepicker(target, inst) | |
}, | |
_newInst: function(e, t) { | |
var n = e[0].id.replace(/([^A-Za-z0-9_-])/g, "\\\\$1"); | |
return { | |
id: n, | |
input: e, | |
selectedDay: 0, | |
selectedMonth: 0, | |
selectedYear: 0, | |
drawMonth: 0, | |
drawYear: 0, | |
inline: t, | |
dpDiv: t ? bindHover($('<div class="' + this._inlineClass + ' ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all"></div>')) : this.dpDiv | |
} | |
}, | |
_connectDatepicker: function(e, t) { | |
var n = $(e); | |
t.append = $([]), | |
t.trigger = $([]); | |
if (n.hasClass(this.markerClassName)) | |
return; | |
this._attachments(n, t), | |
n.addClass(this.markerClassName).keydown(this._doKeyDown).keypress(this._doKeyPress).keyup(this._doKeyUp).bind("setData.datepicker", function(e, n, r) { | |
t.settings[n] = r | |
}).bind("getData.datepicker", function(e, n) { | |
return this._get(t, n) | |
}), | |
this._autoSize(t), | |
$.data(e, PROP_NAME, t), | |
t.settings.disabled && this._disableDatepicker(e) | |
}, | |
_attachments: function(e, t) { | |
var n = this._get(t, "appendText") | |
, r = this._get(t, "isRTL"); | |
t.append && t.append.remove(), | |
n && (t.append = $('<span class="' + this._appendClass + '">' + n + "</span>"), | |
e[r ? "before" : "after"](t.append)), | |
e.unbind("focus", this._showDatepicker), | |
t.trigger && t.trigger.remove(); | |
var i = this._get(t, "showOn"); | |
(i == "focus" || i == "both") && e.focus(this._showDatepicker); | |
if (i == "button" || i == "both") { | |
var s = this._get(t, "buttonText") | |
, o = this._get(t, "buttonImage"); | |
t.trigger = $(this._get(t, "buttonImageOnly") ? $("<img/>").addClass(this._triggerClass).attr({ | |
src: o, | |
alt: s, | |
title: s | |
}) : $('<button type="button"></button>').addClass(this._triggerClass).html(o == "" ? s : $("<img/>").attr({ | |
src: o, | |
alt: s, | |
title: s | |
}))), | |
e[r ? "before" : "after"](t.trigger), | |
t.trigger.click(function() { | |
return $.datepicker._datepickerShowing && $.datepicker._lastInput == e[0] ? $.datepicker._hideDatepicker() : $.datepicker._datepickerShowing && $.datepicker._lastInput != e[0] ? ($.datepicker._hideDatepicker(), | |
$.datepicker._showDatepicker(e[0])) : $.datepicker._showDatepicker(e[0]), | |
!1 | |
}) | |
} | |
}, | |
_autoSize: function(e) { | |
if (this._get(e, "autoSize") && !e.inline) { | |
var t = new Date(2009,11,20) | |
, n = this._get(e, "dateFormat"); | |
if (n.match(/[DM]/)) { | |
var r = function(e) { | |
var t = 0 | |
, n = 0; | |
for (var r = 0; r < e.length; r++) | |
e[r].length > t && (t = e[r].length, | |
n = r); | |
return n | |
}; | |
t.setMonth(r(this._get(e, n.match(/MM/) ? "monthNames" : "monthNamesShort"))), | |
t.setDate(r(this._get(e, n.match(/DD/) ? "dayNames" : "dayNamesShort")) + 20 - t.getDay()) | |
} | |
e.input.attr("size", this._formatDate(e, t).length) | |
} | |
}, | |
_inlineDatepicker: function(e, t) { | |
var n = $(e); | |
if (n.hasClass(this.markerClassName)) | |
return; | |
n.addClass(this.markerClassName).append(t.dpDiv).bind("setData.datepicker", function(e, n, r) { | |
t.settings[n] = r | |
}).bind("getData.datepicker", function(e, n) { | |
return this._get(t, n) | |
}), | |
$.data(e, PROP_NAME, t), | |
this._setDate(t, this._getDefaultDate(t), !0), | |
this._updateDatepicker(t), | |
this._updateAlternate(t), | |
t.settings.disabled && this._disableDatepicker(e), | |
t.dpDiv.css("display", "block") | |
}, | |
_dialogDatepicker: function(e, t, n, r, i) { | |
var s = this._dialogInst; | |
if (!s) { | |
this.uuid += 1; | |
var o = "dp" + this.uuid; | |
this._dialogInput = $('<input type="text" id="' + o + '" style="position: absolute; top: -100px; width: 0px;"/>'), | |
this._dialogInput.keydown(this._doKeyDown), | |
$("body").append(this._dialogInput), | |
s = this._dialogInst = this._newInst(this._dialogInput, !1), | |
s.settings = {}, | |
$.data(this._dialogInput[0], PROP_NAME, s) | |
} | |
extendRemove(s.settings, r || {}), | |
t = t && t.constructor == Date ? this._formatDate(s, t) : t, | |
this._dialogInput.val(t), | |
this._pos = i ? i.length ? i : [i.pageX, i.pageY] : null; | |
if (!this._pos) { | |
var u = document.documentElement.clientWidth | |
, a = document.documentElement.clientHeight | |
, f = document.documentElement.scrollLeft || document.body.scrollLeft | |
, l = document.documentElement.scrollTop || document.body.scrollTop; | |
this._pos = [u / 2 - 100 + f, a / 2 - 150 + l] | |
} | |
return this._dialogInput.css("left", this._pos[0] + 20 + "px").css("top", this._pos[1] + "px"), | |
s.settings.onSelect = n, | |
this._inDialog = !0, | |
this.dpDiv.addClass(this._dialogClass), | |
this._showDatepicker(this._dialogInput[0]), | |
$.blockUI && $.blockUI(this.dpDiv), | |
$.data(this._dialogInput[0], PROP_NAME, s), | |
this | |
}, | |
_destroyDatepicker: function(e) { | |
var t = $(e) | |
, n = $.data(e, PROP_NAME); | |
if (!t.hasClass(this.markerClassName)) | |
return; | |
var r = e.nodeName.toLowerCase(); | |
$.removeData(e, PROP_NAME), | |
r == "input" ? (n.append.remove(), | |
n.trigger.remove(), | |
t.removeClass(this.markerClassName).unbind("focus", this._showDatepicker).unbind("keydown", this._doKeyDown).unbind("keypress", this._doKeyPress).unbind("keyup", this._doKeyUp)) : (r == "div" || r == "span") && t.removeClass(this.markerClassName).empty() | |
}, | |
_enableDatepicker: function(e) { | |
var t = $(e) | |
, n = $.data(e, PROP_NAME); | |
if (!t.hasClass(this.markerClassName)) | |
return; | |
var r = e.nodeName.toLowerCase(); | |
if (r == "input") | |
e.disabled = !1, | |
n.trigger.filter("button").each(function() { | |
this.disabled = !1 | |
}).end().filter("img").css({ | |
opacity: "1.0", | |
cursor: "" | |
}); | |
else if (r == "div" || r == "span") { | |
var i = t.children("." + this._inlineClass); | |
i.children().removeClass("ui-state-disabled"), | |
i.find("select.ui-datepicker-month, select.ui-datepicker-year").prop("disabled", !1) | |
} | |
this._disabledInputs = $.map(this._disabledInputs, function(t) { | |
return t == e ? null : t | |
}) | |
}, | |
_disableDatepicker: function(e) { | |
var t = $(e) | |
, n = $.data(e, PROP_NAME); | |
if (!t.hasClass(this.markerClassName)) | |
return; | |
var r = e.nodeName.toLowerCase(); | |
if (r == "input") | |
e.disabled = !0, | |
n.trigger.filter("button").each(function() { | |
this.disabled = !0 | |
}).end().filter("img").css({ | |
opacity: "0.5", | |
cursor: "default" | |
}); | |
else if (r == "div" || r == "span") { | |
var i = t.children("." + this._inlineClass); | |
i.children().addClass("ui-state-disabled"), | |
i.find("select.ui-datepicker-month, select.ui-datepicker-year").prop("disabled", !0) | |
} | |
this._disabledInputs = $.map(this._disabledInputs, function(t) { | |
return t == e ? null : t | |
}), | |
this._disabledInputs[this._disabledInputs.length] = e | |
}, | |
_isDisabledDatepicker: function(e) { | |
if (!e) | |
return !1; | |
for (var t = 0; t < this._disabledInputs.length; t++) | |
if (this._disabledInputs[t] == e) | |
return !0; | |
return !1 | |
}, | |
_getInst: function(e) { | |
try { | |
return $.data(e, PROP_NAME) | |
} catch (t) { | |
throw "Missing instance data for this datepicker" | |
} | |
}, | |
_optionDatepicker: function(e, t, n) { | |
var r = this._getInst(e); | |
if (arguments.length == 2 && typeof t == "string") | |
return t == "defaults" ? $.extend({}, $.datepicker._defaults) : r ? t == "all" ? $.extend({}, r.settings) : this._get(r, t) : null; | |
var i = t || {}; | |
typeof t == "string" && (i = {}, | |
i[t] = n); | |
if (r) { | |
this._curInst == r && this._hideDatepicker(); | |
var s = this._getDateDatepicker(e, !0) | |
, o = this._getMinMaxDate(r, "min") | |
, u = this._getMinMaxDate(r, "max"); | |
extendRemove(r.settings, i), | |
o !== null && i.dateFormat !== undefined && i.minDate === undefined && (r.settings.minDate = this._formatDate(r, o)), | |
u !== null && i.dateFormat !== undefined && i.maxDate === undefined && (r.settings.maxDate = this._formatDate(r, u)), | |
this._attachments($(e), r), | |
this._autoSize(r), | |
this._setDate(r, s), | |
this._updateAlternate(r), | |
this._updateDatepicker(r) | |
} | |
}, | |
_changeDatepicker: function(e, t, n) { | |
this._optionDatepicker(e, t, n) | |
}, | |
_refreshDatepicker: function(e) { | |
var t = this._getInst(e); | |
t && this._updateDatepicker(t) | |
}, | |
_setDateDatepicker: function(e, t) { | |
var n = this._getInst(e); | |
n && (this._setDate(n, t), | |
this._updateDatepicker(n), | |
this._updateAlternate(n)) | |
}, | |
_getDateDatepicker: function(e, t) { | |
var n = this._getInst(e); | |
return n && !n.inline && this._setDateFromField(n, t), | |
n ? this._getDate(n) : null | |
}, | |
_doKeyDown: function(e) { | |
var t = $.datepicker._getInst(e.target) | |
, n = !0 | |
, r = t.dpDiv.is(".ui-datepicker-rtl"); | |
t._keyEvent = !0; | |
if ($.datepicker._datepickerShowing) | |
switch (e.keyCode) { | |
case 9: | |
$.datepicker._hideDatepicker(), | |
n = !1; | |
break; | |
case 13: | |
var i = $("td." + $.datepicker._dayOverClass + ":not(." + $.datepicker._currentClass + ")", t.dpDiv); | |
i[0] && $.datepicker._selectDay(e.target, t.selectedMonth, t.selectedYear, i[0]); | |
var s = $.datepicker._get(t, "onSelect"); | |
if (s) { | |
var o = $.datepicker._formatDate(t); | |
s.apply(t.input ? t.input[0] : null, [o, t]) | |
} else | |
$.datepicker._hideDatepicker(); | |
return !1; | |
case 27: | |
$.datepicker._hideDatepicker(); | |
break; | |
case 33: | |
$.datepicker._adjustDate(e.target, e.ctrlKey ? -$.datepicker._get(t, "stepBigMonths") : -$.datepicker._get(t, "stepMonths"), "M"); | |
break; | |
case 34: | |
$.datepicker._adjustDate(e.target, e.ctrlKey ? +$.datepicker._get(t, "stepBigMonths") : +$.datepicker._get(t, "stepMonths"), "M"); | |
break; | |
case 35: | |
(e.ctrlKey || e.metaKey) && $.datepicker._clearDate(e.target), | |
n = e.ctrlKey || e.metaKey; | |
break; | |
case 36: | |
(e.ctrlKey || e.metaKey) && $.datepicker._gotoToday(e.target), | |
n = e.ctrlKey || e.metaKey; | |
break; | |
case 37: | |
(e.ctrlKey || e.metaKey) && $.datepicker._adjustDate(e.target, r ? 1 : -1, "D"), | |
n = e.ctrlKey || e.metaKey, | |
e.originalEvent.altKey && $.datepicker._adjustDate(e.target, e.ctrlKey ? -$.datepicker._get(t, "stepBigMonths") : -$.datepicker._get(t, "stepMonths"), "M"); | |
break; | |
case 38: | |
(e.ctrlKey || e.metaKey) && $.datepicker._adjustDate(e.target, -7, "D"), | |
n = e.ctrlKey || e.metaKey; | |
break; | |
case 39: | |
(e.ctrlKey || e.metaKey) && $.datepicker._adjustDate(e.target, r ? -1 : 1, "D"), | |
n = e.ctrlKey || e.metaKey, | |
e.originalEvent.altKey && $.datepicker._adjustDate(e.target, e.ctrlKey ? +$.datepicker._get(t, "stepBigMonths") : +$.datepicker._get(t, "stepMonths"), "M"); | |
break; | |
case 40: | |
(e.ctrlKey || e.metaKey) && $.datepicker._adjustDate(e.target, 7, "D"), | |
n = e.ctrlKey || e.metaKey; | |
break; | |
default: | |
n = !1 | |
} | |
else | |
e.keyCode == 36 && e.ctrlKey ? $.datepicker._showDatepicker(this) : n = !1; | |
n && (e.preventDefault(), | |
e.stopPropagation()) | |
}, | |
_doKeyPress: function(e) { | |
var t = $.datepicker._getInst(e.target); | |
if ($.datepicker._get(t, "constrainInput")) { | |
var n = $.datepicker._possibleChars($.datepicker._get(t, "dateFormat")) | |
, r = String.fromCharCode(e.charCode == undefined ? e.keyCode : e.charCode); | |
return e.ctrlKey || e.metaKey || r < " " || !n || n.indexOf(r) > -1 | |
} | |
}, | |
_doKeyUp: function(e) { | |
var t = $.datepicker._getInst(e.target); | |
if (t.input.val() != t.lastVal) | |
try { | |
var n = $.datepicker.parseDate($.datepicker._get(t, "dateFormat"), t.input ? t.input.val() : null, $.datepicker._getFormatConfig(t)); | |
n && ($.datepicker._setDateFromField(t), | |
$.datepicker._updateAlternate(t), | |
$.datepicker._updateDatepicker(t)) | |
} catch (r) { | |
$.datepicker.log(r) | |
} | |
return !0 | |
}, | |
_showDatepicker: function(e) { | |
e = e.target || e, | |
e.nodeName.toLowerCase() != "input" && (e = $("input", e.parentNode)[0]); | |
if ($.datepicker._isDisabledDatepicker(e) || $.datepicker._lastInput == e) | |
return; | |
var t = $.datepicker._getInst(e); | |
$.datepicker._curInst && $.datepicker._curInst != t && ($.datepicker._curInst.dpDiv.stop(!0, !0), | |
t && $.datepicker._datepickerShowing && $.datepicker._hideDatepicker($.datepicker._curInst.input[0])); | |
var n = $.datepicker._get(t, "beforeShow") | |
, r = n ? n.apply(e, [e, t]) : {}; | |
if (r === !1) | |
return; | |
extendRemove(t.settings, r), | |
t.lastVal = null, | |
$.datepicker._lastInput = e, | |
$.datepicker._setDateFromField(t), | |
$.datepicker._inDialog && (e.value = ""), | |
$.datepicker._pos || ($.datepicker._pos = $.datepicker._findPos(e), | |
$.datepicker._pos[1] += e.offsetHeight); | |
var i = !1; | |
$(e).parents().each(function() { | |
return i |= $(this).css("position") == "fixed", | |
!i | |
}); | |
var s = { | |
left: $.datepicker._pos[0], | |
top: $.datepicker._pos[1] | |
}; | |
$.datepicker._pos = null, | |
t.dpDiv.empty(), | |
t.dpDiv.css({ | |
position: "absolute", | |
display: "block", | |
top: "-1000px" | |
}), | |
$.datepicker._updateDatepicker(t), | |
s = $.datepicker._checkOffset(t, s, i), | |
t.dpDiv.css({ | |
position: $.datepicker._inDialog && $.blockUI ? "static" : i ? "fixed" : "absolute", | |
display: "none", | |
left: s.left + "px", | |
top: s.top + "px" | |
}); | |
if (!t.inline) { | |
var o = $.datepicker._get(t, "showAnim") | |
, u = $.datepicker._get(t, "duration") | |
, a = function() { | |
var e = t.dpDiv.find("iframe.ui-datepicker-cover"); | |
if (!!e.length) { | |
var n = $.datepicker._getBorders(t.dpDiv); | |
e.css({ | |
left: -n[0], | |
top: -n[1], | |
width: t.dpDiv.outerWidth(), | |
height: t.dpDiv.outerHeight() | |
}) | |
} | |
}; | |
t.dpDiv.zIndex($(e).zIndex() + 1), | |
$.datepicker._datepickerShowing = !0, | |
$.effects && ($.effects.effect[o] || $.effects[o]) ? t.dpDiv.show(o, $.datepicker._get(t, "showOptions"), u, a) : t.dpDiv[o || "show"](o ? u : null, a), | |
(!o || !u) && a(), | |
t.input.is(":visible") && !t.input.is(":disabled") && t.input.focus(), | |
$.datepicker._curInst = t | |
} | |
}, | |
_updateDatepicker: function(e) { | |
this.maxRows = 4; | |
var t = $.datepicker._getBorders(e.dpDiv); | |
instActive = e, | |
e.dpDiv.empty().append(this._generateHTML(e)), | |
this._attachHandlers(e); | |
var n = e.dpDiv.find("iframe.ui-datepicker-cover"); | |
!n.length || n.css({ | |
left: -t[0], | |
top: -t[1], | |
width: e.dpDiv.outerWidth(), | |
height: e.dpDiv.outerHeight() | |
}), | |
e.dpDiv.find("." + this._dayOverClass + " a").mouseover(); | |
var r = this._getNumberOfMonths(e) | |
, i = r[1] | |
, s = 17; | |
e.dpDiv.removeClass("ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4").width(""), | |
i > 1 && e.dpDiv.addClass("ui-datepicker-multi-" + i).css("width", s * i + "em"), | |
e.dpDiv[(r[0] != 1 || r[1] != 1 ? "add" : "remove") + "Class"]("ui-datepicker-multi"), | |
e.dpDiv[(this._get(e, "isRTL") ? "add" : "remove") + "Class"]("ui-datepicker-rtl"), | |
e == $.datepicker._curInst && $.datepicker._datepickerShowing && e.input && e.input.is(":visible") && !e.input.is(":disabled") && e.input[0] != document.activeElement && e.input.focus(); | |
if (e.yearshtml) { | |
var o = e.yearshtml; | |
setTimeout(function() { | |
o === e.yearshtml && e.yearshtml && e.dpDiv.find("select.ui-datepicker-year:first").replaceWith(e.yearshtml), | |
o = e.yearshtml = null | |
}, 0) | |
} | |
}, | |
_getBorders: function(e) { | |
var t = function(e) { | |
return { | |
thin: 1, | |
medium: 2, | |
thick: 3 | |
}[e] || e | |
}; | |
return [parseFloat(t(e.css("border-left-width"))), parseFloat(t(e.css("border-top-width")))] | |
}, | |
_checkOffset: function(e, t, n) { | |
var r = e.dpDiv.outerWidth() | |
, i = e.dpDiv.outerHeight() | |
, s = e.input ? e.input.outerWidth() : 0 | |
, o = e.input ? e.input.outerHeight() : 0 | |
, u = document.documentElement.clientWidth + (n ? 0 : $(document).scrollLeft()) | |
, a = document.documentElement.clientHeight + (n ? 0 : $(document).scrollTop()); | |
return t.left -= this._get(e, "isRTL") ? r - s : 0, | |
t.left -= n && t.left == e.input.offset().left ? $(document).scrollLeft() : 0, | |
t.top -= n && t.top == e.input.offset().top + o ? $(document).scrollTop() : 0, | |
t.left -= Math.min(t.left, t.left + r > u && u > r ? Math.abs(t.left + r - u) : 0), | |
t.top -= Math.min(t.top, t.top + i > a && a > i ? Math.abs(i + o) : 0), | |
t | |
}, | |
_findPos: function(e) { | |
var t = this._getInst(e) | |
, n = this._get(t, "isRTL"); | |
while (e && (e.type == "hidden" || e.nodeType != 1 || $.expr.filters.hidden(e))) | |
e = e[n ? "previousSibling" : "nextSibling"]; | |
var r = $(e).offset(); | |
return [r.left, r.top] | |
}, | |
_hideDatepicker: function(e) { | |
var t = this._curInst; | |
if (!t || e && t != $.data(e, PROP_NAME)) | |
return; | |
if (this._datepickerShowing) { | |
var n = this._get(t, "showAnim") | |
, r = this._get(t, "duration") | |
, i = function() { | |
$.datepicker._tidyDialog(t) | |
}; | |
$.effects && ($.effects.effect[n] || $.effects[n]) ? t.dpDiv.hide(n, $.datepicker._get(t, "showOptions"), r, i) : t.dpDiv[n == "slideDown" ? "slideUp" : n == "fadeIn" ? "fadeOut" : "hide"](n ? r : null, i), | |
n || i(), | |
this._datepickerShowing = !1; | |
var s = this._get(t, "onClose"); | |
s && s.apply(t.input ? t.input[0] : null, [t.input ? t.input.val() : "", t]), | |
this._lastInput = null, | |
this._inDialog && (this._dialogInput.css({ | |
position: "absolute", | |
left: "0", | |
top: "-100px" | |
}), | |
$.blockUI && ($.unblockUI(), | |
$("body").append(this.dpDiv))), | |
this._inDialog = !1 | |
} | |
}, | |
_tidyDialog: function(e) { | |
e.dpDiv.removeClass(this._dialogClass).unbind(".ui-datepicker-calendar") | |
}, | |
_checkExternalClick: function(e) { | |
if (!$.datepicker._curInst) | |
return; | |
var t = $(e.target) | |
, n = $.datepicker._getInst(t[0]); | |
(t[0].id != $.datepicker._mainDivId && t.parents("#" + $.datepicker._mainDivId).length == 0 && !t.hasClass($.datepicker.markerClassName) && !t.closest("." + $.datepicker._triggerClass).length && $.datepicker._datepickerShowing && (!$.datepicker._inDialog || !$.blockUI) || t.hasClass($.datepicker.markerClassName) && $.datepicker._curInst != n) && $.datepicker._hideDatepicker() | |
}, | |
_adjustDate: function(e, t, n) { | |
var r = $(e) | |
, i = this._getInst(r[0]); | |
if (this._isDisabledDatepicker(r[0])) | |
return; | |
this._adjustInstDate(i, t + (n == "M" ? this._get(i, "showCurrentAtPos") : 0), n), | |
this._updateDatepicker(i) | |
}, | |
_gotoToday: function(e) { | |
var t = $(e) | |
, n = this._getInst(t[0]); | |
if (this._get(n, "gotoCurrent") && n.currentDay) | |
n.selectedDay = n.currentDay, | |
n.drawMonth = n.selectedMonth = n.currentMonth, | |
n.drawYear = n.selectedYear = n.currentYear; | |
else { | |
var r = new Date; | |
n.selectedDay = r.getDate(), | |
n.drawMonth = n.selectedMonth = r.getMonth(), | |
n.drawYear = n.selectedYear = r.getFullYear() | |
} | |
this._notifyChange(n), | |
this._adjustDate(t) | |
}, | |
_selectMonthYear: function(e, t, n) { | |
var r = $(e) | |
, i = this._getInst(r[0]); | |
i["selected" + (n == "M" ? "Month" : "Year")] = i["draw" + (n == "M" ? "Month" : "Year")] = parseInt(t.options[t.selectedIndex].value, 10), | |
this._notifyChange(i), | |
this._adjustDate(r) | |
}, | |
_selectDay: function(e, t, n, r) { | |
var i = $(e); | |
if ($(r).hasClass(this._unselectableClass) || this._isDisabledDatepicker(i[0])) | |
return; | |
var s = this._getInst(i[0]); | |
s.selectedDay = s.currentDay = $("a", r).html(), | |
s.selectedMonth = s.currentMonth = t, | |
s.selectedYear = s.currentYear = n, | |
this._selectDate(e, this._formatDate(s, s.currentDay, s.currentMonth, s.currentYear)) | |
}, | |
_clearDate: function(e) { | |
var t = $(e) | |
, n = this._getInst(t[0]); | |
this._selectDate(t, "") | |
}, | |
_selectDate: function(e, t) { | |
var n = $(e) | |
, r = this._getInst(n[0]); | |
t = t != null ? t : this._formatDate(r), | |
r.input && r.input.val(t), | |
this._updateAlternate(r); | |
var i = this._get(r, "onSelect"); | |
i ? i.apply(r.input ? r.input[0] : null, [t, r]) : r.input && r.input.trigger("change"), | |
r.inline ? this._updateDatepicker(r) : (this._hideDatepicker(), | |
this._lastInput = r.input[0], | |
typeof r.input[0] != "object" && r.input.focus(), | |
this._lastInput = null) | |
}, | |
_updateAlternate: function(e) { | |
var t = this._get(e, "altField"); | |
if (t) { | |
var n = this._get(e, "altFormat") || this._get(e, "dateFormat") | |
, r = this._getDate(e) | |
, i = this.formatDate(n, r, this._getFormatConfig(e)); | |
$(t).each(function() { | |
$(this).val(i) | |
}) | |
} | |
}, | |
noWeekends: function(e) { | |
var t = e.getDay(); | |
return [t > 0 && t < 6, ""] | |
}, | |
iso8601Week: function(e) { | |
var t = new Date(e.getTime()); | |
t.setDate(t.getDate() + 4 - (t.getDay() || 7)); | |
var n = t.getTime(); | |
return t.setMonth(0), | |
t.setDate(1), | |
Math.floor(Math.round((n - t) / 864e5) / 7) + 1 | |
}, | |
parseDate: function(e, t, n) { | |
if (e == null || t == null) | |
throw "Invalid arguments"; | |
t = typeof t == "object" ? t.toString() : t + ""; | |
if (t == "") | |
return null; | |
var r = (n ? n.shortYearCutoff : null) || this._defaults.shortYearCutoff; | |
r = typeof r != "string" ? r : (new Date).getFullYear() % 100 + parseInt(r, 10); | |
var i = (n ? n.dayNamesShort : null) || this._defaults.dayNamesShort | |
, s = (n ? n.dayNames : null) || this._defaults.dayNames | |
, o = (n ? n.monthNamesShort : null) || this._defaults.monthNamesShort | |
, u = (n ? n.monthNames : null) || this._defaults.monthNames | |
, a = -1 | |
, f = -1 | |
, l = -1 | |
, c = -1 | |
, h = !1 | |
, p = function(t) { | |
var n = y + 1 < e.length && e.charAt(y + 1) == t; | |
return n && y++, | |
n | |
} | |
, d = function(e) { | |
var n = p(e) | |
, r = e == "@" ? 14 : e == "!" ? 20 : e == "y" && n ? 4 : e == "o" ? 3 : 2 | |
, i = new RegExp("^\\d{1," + r + "}") | |
, s = t.substring(g).match(i); | |
if (!s) | |
throw "Missing number at position " + g; | |
return g += s[0].length, | |
parseInt(s[0], 10) | |
} | |
, v = function(e, n, r) { | |
var i = $.map(p(e) ? r : n, function(e, t) { | |
return [[t, e]] | |
}).sort(function(e, t) { | |
return -(e[1].length - t[1].length) | |
}) | |
, s = -1; | |
$.each(i, function(e, n) { | |
var r = n[1]; | |
if (t.substr(g, r.length).toLowerCase() == r.toLowerCase()) | |
return s = n[0], | |
g += r.length, | |
!1 | |
}); | |
if (s != -1) | |
return s + 1; | |
throw "Unknown name at position " + g | |
} | |
, m = function() { | |
if (t.charAt(g) != e.charAt(y)) | |
throw "Unexpected literal at position " + g; | |
g++ | |
} | |
, g = 0; | |
for (var y = 0; y < e.length; y++) | |
if (h) | |
e.charAt(y) == "'" && !p("'") ? h = !1 : m(); | |
else | |
switch (e.charAt(y)) { | |
case "d": | |
l = d("d"); | |
break; | |
case "D": | |
v("D", i, s); | |
break; | |
case "o": | |
c = d("o"); | |
break; | |
case "m": | |
f = d("m"); | |
break; | |
case "M": | |
f = v("M", o, u); | |
break; | |
case "y": | |
a = d("y"); | |
break; | |
case "@": | |
var b = new Date(d("@")); | |
a = b.getFullYear(), | |
f = b.getMonth() + 1, | |
l = b.getDate(); | |
break; | |
case "!": | |
var b = new Date((d("!") - this._ticksTo1970) / 1e4); | |
a = b.getFullYear(), | |
f = b.getMonth() + 1, | |
l = b.getDate(); | |
break; | |
case "'": | |
p("'") ? m() : h = !0; | |
break; | |
default: | |
m() | |
} | |
if (g < t.length) { | |
var w = t.substr(g); | |
if (!/^\s+/.test(w)) | |
throw "Extra/unparsed characters found in date: " + w | |
} | |
a == -1 ? a = (new Date).getFullYear() : a < 100 && (a += (new Date).getFullYear() - (new Date).getFullYear() % 100 + (a <= r ? 0 : -100)); | |
if (c > -1) { | |
f = 1, | |
l = c; | |
do { | |
var E = this._getDaysInMonth(a, f - 1); | |
if (l <= E) | |
break; | |
f++, | |
l -= E | |
} while (!0) | |
} | |
var b = this._daylightSavingAdjust(new Date(a,f - 1,l)); | |
if (b.getFullYear() != a || b.getMonth() + 1 != f || b.getDate() != l) | |
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(e, t, n) { | |
if (!t) | |
return ""; | |
var r = (n ? n.dayNamesShort : null) || this._defaults.dayNamesShort | |
, i = (n ? n.dayNames : null) || this._defaults.dayNames | |
, s = (n ? n.monthNamesShort : null) || this._defaults.monthNamesShort | |
, o = (n ? n.monthNames : null) || this._defaults.monthNames | |
, u = function(t) { | |
var n = h + 1 < e.length && e.charAt(h + 1) == t; | |
return n && h++, | |
n | |
} | |
, a = function(e, t, n) { | |
var r = "" + t; | |
if (u(e)) | |
while (r.length < n) | |
r = "0" + r; | |
return r | |
} | |
, f = function(e, t, n, r) { | |
return u(e) ? r[t] : n[t] | |
} | |
, l = "" | |
, c = !1; | |
if (t) | |
for (var h = 0; h < e.length; h++) | |
if (c) | |
e.charAt(h) == "'" && !u("'") ? c = !1 : l += e.charAt(h); | |
else | |
switch (e.charAt(h)) { | |
case "d": | |
l += a("d", t.getDate(), 2); | |
break; | |
case "D": | |
l += f("D", t.getDay(), r, i); | |
break; | |
case "o": | |
l += a("o", Math.round(((new Date(t.getFullYear(),t.getMonth(),t.getDate())).getTime() - (new Date(t.getFullYear(),0,0)).getTime()) / 864e5), 3); | |
break; | |
case "m": | |
l += a("m", t.getMonth() + 1, 2); | |
break; | |
case "M": | |
l += f("M", t.getMonth(), s, o); | |
break; | |
case "y": | |
l += u("y") ? t.getFullYear() : (t.getYear() % 100 < 10 ? "0" : "") + t.getYear() % 100; | |
break; | |
case "@": | |
l += t.getTime(); | |
break; | |
case "!": | |
l += t.getTime() * 1e4 + this._ticksTo1970; | |
break; | |
case "'": | |
u("'") ? l += "'" : c = !0; | |
break; | |
default: | |
l += e.charAt(h) | |
} | |
return l | |
}, | |
_possibleChars: function(e) { | |
var t = "" | |
, n = !1 | |
, r = function(t) { | |
var n = i + 1 < e.length && e.charAt(i + 1) == t; | |
return n && i++, | |
n | |
}; | |
for (var i = 0; i < e.length; i++) | |
if (n) | |
e.charAt(i) == "'" && !r("'") ? n = !1 : t += e.charAt(i); | |
else | |
switch (e.charAt(i)) { | |
case "d": | |
case "m": | |
case "y": | |
case "@": | |
t += "0123456789"; | |
break; | |
case "D": | |
case "M": | |
return null; | |
case "'": | |
r("'") ? t += "'" : n = !0; | |
break; | |
default: | |
t += e.charAt(i) | |
} | |
return t | |
}, | |
_get: function(e, t) { | |
return e.settings[t] !== undefined ? e.settings[t] : this._defaults[t] | |
}, | |
_setDateFromField: function(e, t) { | |
if (e.input.val() == e.lastVal) | |
return; | |
var n = this._get(e, "dateFormat"), r = e.lastVal = e.input ? e.input.val() : null, i, s; | |
i = s = this._getDefaultDate(e); | |
var o = this._getFormatConfig(e); | |
try { | |
i = this.parseDate(n, r, o) || s | |
} catch (u) { | |
this.log(u), | |
r = t ? "" : r | |
} | |
e.selectedDay = i.getDate(), | |
e.drawMonth = e.selectedMonth = i.getMonth(), | |
e.drawYear = e.selectedYear = i.getFullYear(), | |
e.currentDay = r ? i.getDate() : 0, | |
e.currentMonth = r ? i.getMonth() : 0, | |
e.currentYear = r ? i.getFullYear() : 0, | |
this._adjustInstDate(e) | |
}, | |
_getDefaultDate: function(e) { | |
return this._restrictMinMax(e, this._determineDate(e, this._get(e, "defaultDate"), new Date)) | |
}, | |
_determineDate: function(e, t, n) { | |
var r = function(e) { | |
var t = new Date; | |
return t.setDate(t.getDate() + e), | |
t | |
} | |
, i = function(t) { | |
try { | |
return $.datepicker.parseDate($.datepicker._get(e, "dateFormat"), t, $.datepicker._getFormatConfig(e)) | |
} catch (n) {} | |
var r = (t.toLowerCase().match(/^c/) ? $.datepicker._getDate(e) : null) || new Date | |
, i = r.getFullYear() | |
, s = r.getMonth() | |
, o = r.getDate() | |
, u = /([+-]?[0-9]+)\s*(d|D|w|W|m|M|y|Y)?/g | |
, a = u.exec(t); | |
while (a) { | |
switch (a[2] || "d") { | |
case "d": | |
case "D": | |
o += parseInt(a[1], 10); | |
break; | |
case "w": | |
case "W": | |
o += parseInt(a[1], 10) * 7; | |
break; | |
case "m": | |
case "M": | |
s += parseInt(a[1], 10), | |
o = Math.min(o, $.datepicker._getDaysInMonth(i, s)); | |
break; | |
case "y": | |
case "Y": | |
i += parseInt(a[1], 10), | |
o = Math.min(o, $.datepicker._getDaysInMonth(i, s)) | |
} | |
a = u.exec(t) | |
} | |
return new Date(i,s,o) | |
} | |
, s = t == null || t === "" ? n : typeof t == "string" ? i(t) : typeof t == "number" ? isNaN(t) ? n : r(t) : new Date(t.getTime()); | |
return s = s && s.toString() == "Invalid Date" ? n : s, | |
s && (s.setHours(0), | |
s.setMinutes(0), | |
s.setSeconds(0), | |
s.setMilliseconds(0)), | |
this._daylightSavingAdjust(s) | |
}, | |
_daylightSavingAdjust: function(e) { | |
return e ? (e.setHours(e.getHours() > 12 ? e.getHours() + 2 : 0), | |
e) : null | |
}, | |
_setDate: function(e, t, n) { | |
var r = !t | |
, i = e.selectedMonth | |
, s = e.selectedYear | |
, o = this._restrictMinMax(e, this._determineDate(e, t, new Date)); | |
e.selectedDay = e.currentDay = o.getDate(), | |
e.drawMonth = e.selectedMonth = e.currentMonth = o.getMonth(), | |
e.drawYear = e.selectedYear = e.currentYear = o.getFullYear(), | |
(i != e.selectedMonth || s != e.selectedYear) && !n && this._notifyChange(e), | |
this._adjustInstDate(e), | |
e.input && e.input.val(r ? "" : this._formatDate(e)) | |
}, | |
_getDate: function(e) { | |
var t = !e.currentYear || e.input && e.input.val() == "" ? null : this._daylightSavingAdjust(new Date(e.currentYear,e.currentMonth,e.currentDay)); | |
return t | |
}, | |
_attachHandlers: function(e) { | |
var t = this._get(e, "stepMonths") | |
, n = "#" + e.id.replace(/\\\\/g, "\\"); | |
e.dpDiv.find("[data-handler]").map(function() { | |
var e = { | |
prev: function() { | |
window["DP_jQuery_" + dpuuid].datepicker._adjustDate(n, -t, "M") | |
}, | |
next: function() { | |
window["DP_jQuery_" + dpuuid].datepicker._adjustDate(n, +t, "M") | |
}, | |
hide: function() { | |
window["DP_jQuery_" + dpuuid].datepicker._hideDatepicker() | |
}, | |
today: function() { | |
window["DP_jQuery_" + dpuuid].datepicker._gotoToday(n) | |
}, | |
selectDay: function() { | |
return window["DP_jQuery_" + dpuuid].datepicker._selectDay(n, +this.getAttribute("data-month"), +this.getAttribute("data-year"), this), | |
!1 | |
}, | |
selectMonth: function() { | |
return window["DP_jQuery_" + dpuuid].datepicker._selectMonthYear(n, this, "M"), | |
!1 | |
}, | |
selectYear: function() { | |
return window["DP_jQuery_" + dpuuid].datepicker._selectMonthYear(n, this, "Y"), | |
!1 | |
} | |
}; | |
$(this).bind(this.getAttribute("data-event"), e[this.getAttribute("data-handler")]) | |
}) | |
}, | |
_generateHTML: function(e) { | |
var t = new Date; | |
t = this._daylightSavingAdjust(new Date(t.getFullYear(),t.getMonth(),t.getDate())); | |
var n = this._get(e, "isRTL") | |
, r = this._get(e, "showButtonPanel") | |
, i = this._get(e, "hideIfNoPrevNext") | |
, s = this._get(e, "navigationAsDateFormat") | |
, o = this._getNumberOfMonths(e) | |
, u = this._get(e, "showCurrentAtPos") | |
, a = this._get(e, "stepMonths") | |
, f = o[0] != 1 || o[1] != 1 | |
, l = this._daylightSavingAdjust(e.currentDay ? new Date(e.currentYear,e.currentMonth,e.currentDay) : new Date(9999,9,9)) | |
, c = this._getMinMaxDate(e, "min") | |
, h = this._getMinMaxDate(e, "max") | |
, p = e.drawMonth - u | |
, d = e.drawYear; | |
p < 0 && (p += 12, | |
d--); | |
if (h) { | |
var v = this._daylightSavingAdjust(new Date(h.getFullYear(),h.getMonth() - o[0] * o[1] + 1,h.getDate())); | |
v = c && v < c ? c : v; | |
while (this._daylightSavingAdjust(new Date(d,p,1)) > v) | |
p--, | |
p < 0 && (p = 11, | |
d--) | |
} | |
e.drawMonth = p, | |
e.drawYear = d; | |
var m = this._get(e, "prevText"); | |
m = s ? this.formatDate(m, this._daylightSavingAdjust(new Date(d,p - a,1)), this._getFormatConfig(e)) : m; | |
var g = this._canAdjustMonth(e, -1, d, p) ? '<a class="ui-datepicker-prev ui-corner-all" data-handler="prev" data-event="click" title="' + m + '"><span class="ui-icon ui-icon-circle-triangle-' + (n ? "e" : "w") + '">' + m + "</span></a>" : i ? "" : '<a class="ui-datepicker-prev ui-corner-all ui-state-disabled" title="' + m + '"><span class="ui-icon ui-icon-circle-triangle-' + (n ? "e" : "w") + '">' + m + "</span></a>" | |
, y = this._get(e, "nextText"); | |
y = s ? this.formatDate(y, this._daylightSavingAdjust(new Date(d,p + a,1)), this._getFormatConfig(e)) : y; | |
var b = this._canAdjustMonth(e, 1, d, p) ? '<a class="ui-datepicker-next ui-corner-all" data-handler="next" data-event="click" title="' + y + '"><span class="ui-icon ui-icon-circle-triangle-' + (n ? "w" : "e") + '">' + y + "</span></a>" : i ? "" : '<a class="ui-datepicker-next ui-corner-all ui-state-disabled" title="' + y + '"><span class="ui-icon ui-icon-circle-triangle-' + (n ? "w" : "e") + '">' + y + "</span></a>" | |
, w = this._get(e, "currentText") | |
, E = this._get(e, "gotoCurrent") && e.currentDay ? l : t; | |
w = s ? this.formatDate(w, E, this._getFormatConfig(e)) : w; | |
var S = e.inline ? "" : '<button type="button" class="ui-datepicker-close ui-state-default ui-priority-primary ui-corner-all" data-handler="hide" data-event="click">' + this._get(e, "closeText") + "</button>" | |
, x = r ? '<div class="ui-datepicker-buttonpane ui-widget-content">' + (n ? S : "") + (this._isInRange(e, E) ? '<button type="button" class="ui-datepicker-current ui-state-default ui-priority-secondary ui-corner-all" data-handler="today" data-event="click">' + w + "</button>" : "") + (n ? "" : S) + "</div>" : "" | |
, T = parseInt(this._get(e, "firstDay"), 10); | |
T = isNaN(T) ? 0 : T; | |
var N = this._get(e, "showWeek") | |
, C = this._get(e, "dayNames") | |
, k = this._get(e, "dayNamesShort") | |
, L = this._get(e, "dayNamesMin") | |
, A = this._get(e, "monthNames") | |
, O = this._get(e, "monthNamesShort") | |
, M = this._get(e, "beforeShowDay") | |
, _ = this._get(e, "showOtherMonths") | |
, D = this._get(e, "selectOtherMonths") | |
, P = this._get(e, "calculateWeek") || this.iso8601Week | |
, H = this._getDefaultDate(e) | |
, B = ""; | |
for (var j = 0; j < o[0]; j++) { | |
var F = ""; | |
this.maxRows = 4; | |
for (var I = 0; I < o[1]; I++) { | |
var q = this._daylightSavingAdjust(new Date(d,p,e.selectedDay)) | |
, R = " ui-corner-all" | |
, U = ""; | |
if (f) { | |
U += '<div class="ui-datepicker-group'; | |
if (o[1] > 1) | |
switch (I) { | |
case 0: | |
U += " ui-datepicker-group-first", | |
R = " ui-corner-" + (n ? "right" : "left"); | |
break; | |
case o[1] - 1: | |
U += " ui-datepicker-group-last", | |
R = " ui-corner-" + (n ? "left" : "right"); | |
break; | |
default: | |
U += " ui-datepicker-group-middle", | |
R = "" | |
} | |
U += '">' | |
} | |
U += '<div class="ui-datepicker-header ui-widget-header ui-helper-clearfix' + R + '">' + (/all|left/.test(R) && j == 0 ? n ? b : g : "") + (/all|right/.test(R) && j == 0 ? n ? g : b : "") + this._generateMonthYearHeader(e, p, d, c, h, j > 0 || I > 0, A, O) + '</div><table class="ui-datepicker-calendar"><thead>' + "<tr>"; | |
var z = N ? '<th class="ui-datepicker-week-col">' + this._get(e, "weekHeader") + "</th>" : ""; | |
for (var W = 0; W < 7; W++) { | |
var X = (W + T) % 7; | |
z += "<th" + ((W + T + 6) % 7 >= 5 ? ' class="ui-datepicker-week-end"' : "") + ">" + '<span title="' + C[X] + '">' + L[X] + "</span></th>" | |
} | |
U += z + "</tr></thead><tbody>"; | |
var V = this._getDaysInMonth(d, p); | |
d == e.selectedYear && p == e.selectedMonth && (e.selectedDay = Math.min(e.selectedDay, V)); | |
var J = (this._getFirstDayOfMonth(d, p) - T + 7) % 7 | |
, K = Math.ceil((J + V) / 7) | |
, Q = f ? this.maxRows > K ? this.maxRows : K : K; | |
this.maxRows = Q; | |
var G = this._daylightSavingAdjust(new Date(d,p,1 - J)); | |
for (var Y = 0; Y < Q; Y++) { | |
U += "<tr>"; | |
var Z = N ? '<td class="ui-datepicker-week-col">' + this._get(e, "calculateWeek")(G) + "</td>" : ""; | |
for (var W = 0; W < 7; W++) { | |
var et = M ? M.apply(e.input ? e.input[0] : null, [G]) : [!0, ""] | |
, tt = G.getMonth() != p | |
, nt = tt && !D || !et[0] || c && G < c || h && G > h; | |
Z += '<td class="' + ((W + T + 6) % 7 >= 5 ? " ui-datepicker-week-end" : "") + (tt ? " ui-datepicker-other-month" : "") + (G.getTime() == q.getTime() && p == e.selectedMonth && e._keyEvent || H.getTime() == G.getTime() && H.getTime() == q.getTime() ? " " + this._dayOverClass : "") + (nt ? " " + this._unselectableClass + " ui-state-disabled" : "") + (tt && !_ ? "" : " " + et[1] + (G.getTime() == l.getTime() ? " " + this._currentClass : "") + (G.getTime() == t.getTime() ? " ui-datepicker-today" : "")) + '"' + ((!tt || _) && et[2] ? ' title="' + et[2] + '"' : "") + (nt ? "" : ' data-handler="selectDay" data-event="click" data-month="' + G.getMonth() + '" data-year="' + G.getFullYear() + '"') + ">" + (tt && !_ ? " " : nt ? '<span class="ui-state-default">' + G.getDate() + "</span>" : '<a class="ui-state-default' + (G.getTime() == t.getTime() ? " ui-state-highlight" : "") + (G.getTime() == l.getTime() ? " ui-state-active" : "") + (tt ? " ui-priority-secondary" : "") + '" href="#">' + G.getDate() + "</a>") + "</td>", | |
G.setDate(G.getDate() + 1), | |
G = this._daylightSavingAdjust(G) | |
} | |
U += Z + "</tr>" | |
} | |
p++, | |
p > 11 && (p = 0, | |
d++), | |
U += "</tbody></table>" + (f ? "</div>" + (o[0] > 0 && I == o[1] - 1 ? '<div class="ui-datepicker-row-break"></div>' : "") : ""), | |
F += U | |
} | |
B += F | |
} | |
return B += x + ($.ui.ie6 && !e.inline ? '<iframe src="javascript:false;" class="ui-datepicker-cover" frameborder="0"></iframe>' : ""), | |
e._keyEvent = !1, | |
B | |
}, | |
_generateMonthYearHeader: function(e, t, n, r, i, s, o, u) { | |
var a = this._get(e, "changeMonth") | |
, f = this._get(e, "changeYear") | |
, l = this._get(e, "showMonthAfterYear") | |
, c = '<div class="ui-datepicker-title">' | |
, h = ""; | |
if (s || !a) | |
h += '<span class="ui-datepicker-month">' + o[t] + "</span>"; | |
else { | |
var p = r && r.getFullYear() == n | |
, d = i && i.getFullYear() == n; | |
h += '<select class="ui-datepicker-month" data-handler="selectMonth" data-event="change">'; | |
for (var v = 0; v < 12; v++) | |
(!p || v >= r.getMonth()) && (!d || v <= i.getMonth()) && (h += '<option value="' + v + '"' + (v == t ? ' selected="selected"' : "") + ">" + u[v] + "</option>"); | |
h += "</select>" | |
} | |
l || (c += h + (s || !a || !f ? " " : "")); | |
if (!e.yearshtml) { | |
e.yearshtml = ""; | |
if (s || !f) | |
c += '<span class="ui-datepicker-year">' + n + "</span>"; | |
else { | |
var m = this._get(e, "yearRange").split(":") | |
, g = (new Date).getFullYear() | |
, y = function(e) { | |
var t = e.match(/c[+-].*/) ? n + parseInt(e.substring(1), 10) : e.match(/[+-].*/) ? g + parseInt(e, 10) : parseInt(e, 10); | |
return isNaN(t) ? g : t | |
} | |
, b = y(m[0]) | |
, w = Math.max(b, y(m[1] || "")); | |
b = r ? Math.max(b, r.getFullYear()) : b, | |
w = i ? Math.min(w, i.getFullYear()) : w, | |
e.yearshtml += '<select class="ui-datepicker-year" data-handler="selectYear" data-event="change">'; | |
for (; b <= w; b++) | |
e.yearshtml += '<option value="' + b + '"' + (b == n ? ' selected="selected"' : "") + ">" + b + "</option>"; | |
e.yearshtml += "</select>", | |
c += e.yearshtml, | |
e.yearshtml = null | |
} | |
} | |
return c += this._get(e, "yearSuffix"), | |
l && (c += (s || !a || !f ? " " : "") + h), | |
c += "</div>", | |
c | |
}, | |
_adjustInstDate: function(e, t, n) { | |
var r = e.drawYear + (n == "Y" ? t : 0) | |
, i = e.drawMonth + (n == "M" ? t : 0) | |
, s = Math.min(e.selectedDay, this._getDaysInMonth(r, i)) + (n == "D" ? t : 0) | |
, o = this._restrictMinMax(e, this._daylightSavingAdjust(new Date(r,i,s))); | |
e.selectedDay = o.getDate(), | |
e.drawMonth = e.selectedMonth = o.getMonth(), | |
e.drawYear = e.selectedYear = o.getFullYear(), | |
(n == "M" || n == "Y") && this._notifyChange(e) | |
}, | |
_restrictMinMax: function(e, t) { | |
var n = this._getMinMaxDate(e, "min") | |
, r = this._getMinMaxDate(e, "max") | |
, i = n && t < n ? n : t; | |
return i = r && i > r ? r : i, | |
i | |
}, | |
_notifyChange: function(e) { | |
var t = this._get(e, "onChangeMonthYear"); | |
t && t.apply(e.input ? e.input[0] : null, [e.selectedYear, e.selectedMonth + 1, e]) | |
}, | |
_getNumberOfMonths: function(e) { | |
var t = this._get(e, "numberOfMonths"); | |
return t == null ? [1, 1] : typeof t == "number" ? [1, t] : t | |
}, | |
_getMinMaxDate: function(e, t) { | |
return this._determineDate(e, this._get(e, t + "Date"), null) | |
}, | |
_getDaysInMonth: function(e, t) { | |
return 32 - this._daylightSavingAdjust(new Date(e,t,32)).getDate() | |
}, | |
_getFirstDayOfMonth: function(e, t) { | |
return (new Date(e,t,1)).getDay() | |
}, | |
_canAdjustMonth: function(e, t, n, r) { | |
var i = this._getNumberOfMonths(e) | |
, s = this._daylightSavingAdjust(new Date(n,r + (t < 0 ? t : i[0] * i[1]),1)); | |
return t < 0 && s.setDate(this._getDaysInMonth(s.getFullYear(), s.getMonth())), | |
this._isInRange(e, s) | |
}, | |
_isInRange: function(e, t) { | |
var n = this._getMinMaxDate(e, "min") | |
, r = this._getMinMaxDate(e, "max"); | |
return (!n || t.getTime() >= n.getTime()) && (!r || t.getTime() <= r.getTime()) | |
}, | |
_getFormatConfig: function(e) { | |
var t = this._get(e, "shortYearCutoff"); | |
return t = typeof t != "string" ? t : (new Date).getFullYear() % 100 + parseInt(t, 10), | |
{ | |
shortYearCutoff: t, | |
dayNamesShort: this._get(e, "dayNamesShort"), | |
dayNames: this._get(e, "dayNames"), | |
monthNamesShort: this._get(e, "monthNamesShort"), | |
monthNames: this._get(e, "monthNames") | |
} | |
}, | |
_formatDate: function(e, t, n, r) { | |
t || (e.currentDay = e.selectedDay, | |
e.currentMonth = e.selectedMonth, | |
e.currentYear = e.selectedYear); | |
var i = t ? typeof t == "object" ? t : this._daylightSavingAdjust(new Date(r,n,t)) : this._daylightSavingAdjust(new Date(e.currentYear,e.currentMonth,e.currentDay)); | |
return this.formatDate(this._get(e, "dateFormat"), i, this._getFormatConfig(e)) | |
} | |
}), | |
$.fn.datepicker = function(e) { | |
if (!this.length) | |
return this; | |
$.datepicker.initialized || ($(document).mousedown($.datepicker._checkExternalClick).find(document.body).append($.datepicker.dpDiv), | |
$.datepicker.initialized = !0); | |
var t = Array.prototype.slice.call(arguments, 1); | |
return typeof e != "string" || e != "isDisabled" && e != "getDate" && e != "widget" ? e == "option" && arguments.length == 2 && typeof arguments[1] == "string" ? $.datepicker["_" + e + "Datepicker"].apply($.datepicker, [this[0]].concat(t)) : this.each(function() { | |
typeof e == "string" ? $.datepicker["_" + e + "Datepicker"].apply($.datepicker, [this].concat(t)) : $.datepicker._attachDatepicker(this, e) | |
}) : $.datepicker["_" + e + "Datepicker"].apply($.datepicker, [this[0]].concat(t)) | |
} | |
, | |
$.datepicker = new Datepicker, | |
$.datepicker.initialized = !1, | |
$.datepicker.uuid = (new Date).getTime(), | |
$.datepicker.version = "1.9.1", | |
window["DP_jQuery_" + dpuuid] = $ | |
}(jQuery), | |
function(e, t) { | |
var n = "ui-dialog ui-widget ui-widget-content ui-corner-all " | |
, r = { | |
buttons: !0, | |
height: !0, | |
maxHeight: !0, | |
maxWidth: !0, | |
minHeight: !0, | |
minWidth: !0, | |
width: !0 | |
} | |
, i = { | |
maxHeight: !0, | |
maxWidth: !0, | |
minHeight: !0, | |
minWidth: !0 | |
}; | |
e.widget("ui.dialog", { | |
version: "1.9.1", | |
options: { | |
autoOpen: !0, | |
buttons: {}, | |
closeOnEscape: !0, | |
closeText: "close", | |
dialogClass: "", | |
draggable: !0, | |
hide: null, | |
height: "auto", | |
maxHeight: !1, | |
maxWidth: !1, | |
minHeight: 150, | |
minWidth: 150, | |
modal: !1, | |
position: { | |
my: "center", | |
at: "center", | |
of: window, | |
collision: "fit", | |
using: function(t) { | |
var n = e(this).css(t).offset().top; | |
n < 0 && e(this).css("top", t.top - n) | |
} | |
}, | |
resizable: !0, | |
show: null, | |
stack: !0, | |
title: "", | |
width: 300, | |
zIndex: 1e3 | |
}, | |
_create: function() { | |
this.originalTitle = this.element.attr("title"), | |
typeof this.originalTitle != "string" && (this.originalTitle = ""), | |
this.oldPosition = { | |
parent: this.element.parent(), | |
index: this.element.parent().children().index(this.element) | |
}, | |
this.options.title = this.options.title || this.originalTitle; | |
var t = this, r = this.options, i = r.title || " ", s, o, u, a, f; | |
s = (this.uiDialog = e("<div>")).addClass(n + r.dialogClass).css({ | |
display: "none", | |
outline: 0, | |
zIndex: r.zIndex | |
}).attr("tabIndex", -1).keydown(function(n) { | |
r.closeOnEscape && !n.isDefaultPrevented() && n.keyCode && n.keyCode === e.ui.keyCode.ESCAPE && (t.close(n), | |
n.preventDefault()) | |
}).mousedown(function(e) { | |
t.moveToTop(!1, e) | |
}).appendTo("body"), | |
this.element.show().removeAttr("title").addClass("ui-dialog-content ui-widget-content").appendTo(s), | |
o = (this.uiDialogTitlebar = e("<div>")).addClass("ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix").bind("mousedown", function() { | |
s.focus() | |
}).prependTo(s), | |
u = e("<a href='#'></a>").addClass("ui-dialog-titlebar-close ui-corner-all").attr("role", "button").click(function(e) { | |
e.preventDefault(), | |
t.close(e) | |
}).appendTo(o), | |
(this.uiDialogTitlebarCloseText = e("<span>")).addClass("ui-icon ui-icon-closethick").text(r.closeText).appendTo(u), | |
a = e("<span>").uniqueId().addClass("ui-dialog-title").html(i).prependTo(o), | |
f = (this.uiDialogButtonPane = e("<div>")).addClass("ui-dialog-buttonpane ui-widget-content ui-helper-clearfix"), | |
(this.uiButtonSet = e("<div>")).addClass("ui-dialog-buttonset").appendTo(f), | |
s.attr({ | |
role: "dialog", | |
"aria-labelledby": a.attr("id") | |
}), | |
o.find("*").add(o).disableSelection(), | |
this._hoverable(u), | |
this._focusable(u), | |
r.draggable && e.fn.draggable && this._makeDraggable(), | |
r.resizable && e.fn.resizable && this._makeResizable(), | |
this._createButtons(r.buttons), | |
this._isOpen = !1, | |
e.fn.bgiframe && s.bgiframe(), | |
this._on(s, { | |
keydown: function(t) { | |
if (!r.modal || t.keyCode !== e.ui.keyCode.TAB) | |
return; | |
var n = e(":tabbable", s) | |
, i = n.filter(":first") | |
, o = n.filter(":last"); | |
if (t.target === o[0] && !t.shiftKey) | |
return i.focus(1), | |
!1; | |
if (t.target === i[0] && t.shiftKey) | |
return o.focus(1), | |
!1 | |
} | |
}) | |
}, | |
_init: function() { | |
this.options.autoOpen && this.open() | |
}, | |
_destroy: function() { | |
var e, t = this.oldPosition; | |
this.overlay && this.overlay.destroy(), | |
this.uiDialog.hide(), | |
this.element.removeClass("ui-dialog-content ui-widget-content").hide().appendTo("body"), | |
this.uiDialog.remove(), | |
this.originalTitle && this.element.attr("title", this.originalTitle), | |
e = t.parent.children().eq(t.index), | |
e.length && e[0] !== this.element[0] ? e.before(this.element) : t.parent.append(this.element) | |
}, | |
widget: function() { | |
return this.uiDialog | |
}, | |
close: function(t) { | |
var n = this, r, i; | |
if (!this._isOpen) | |
return; | |
if (!1 === this._trigger("beforeClose", t)) | |
return; | |
return this._isOpen = !1, | |
this.overlay && this.overlay.destroy(), | |
this.options.hide ? this._hide(this.uiDialog, this.options.hide, function() { | |
n._trigger("close", t) | |
}) : (this.uiDialog.hide(), | |
this._trigger("close", t)), | |
e.ui.dialog.overlay.resize(), | |
this.options.modal && (r = 0, | |
e(".ui-dialog").each(function() { | |
this !== n.uiDialog[0] && (i = e(this).css("z-index"), | |
isNaN(i) || (r = Math.max(r, i))) | |
}), | |
e.ui.dialog.maxZ = r), | |
this | |
}, | |
isOpen: function() { | |
return this._isOpen | |
}, | |
moveToTop: function(t, n) { | |
var r = this.options, i; | |
return r.modal && !t || !r.stack && !r.modal ? this._trigger("focus", n) : (r.zIndex > e.ui.dialog.maxZ && (e.ui.dialog.maxZ = r.zIndex), | |
this.overlay && (e.ui.dialog.maxZ += 1, | |
e.ui.dialog.overlay.maxZ = e.ui.dialog.maxZ, | |
this.overlay.$el.css("z-index", e.ui.dialog.overlay.maxZ)), | |
i = { | |
scrollTop: this.element.scrollTop(), | |
scrollLeft: this.element.scrollLeft() | |
}, | |
e.ui.dialog.maxZ += 1, | |
this.uiDialog.css("z-index", e.ui.dialog.maxZ), | |
this.element.attr(i), | |
this._trigger("focus", n), | |
this) | |
}, | |
open: function() { | |
if (this._isOpen) | |
return; | |
var t, n = this.options, r = this.uiDialog; | |
return this._size(), | |
this._position(n.position), | |
r.show(n.show), | |
this.overlay = n.modal ? new e.ui.dialog.overlay(this) : null, | |
this.moveToTop(!0), | |
t = this.element.find(":tabbable"), | |
t.length || (t = this.uiDialogButtonPane.find(":tabbable"), | |
t.length || (t = r)), | |
t.eq(0).focus(), | |
this._isOpen = !0, | |
this._trigger("open"), | |
this | |
}, | |
_createButtons: function(t) { | |
var n = this | |
, r = !1; | |
this.uiDialogButtonPane.remove(), | |
this.uiButtonSet.empty(), | |
typeof t == "object" && t !== null && e.each(t, function() { | |
return !(r = !0) | |
}), | |
r ? (e.each(t, function(t, r) { | |
r = e.isFunction(r) ? { | |
click: r, | |
text: t | |
} : r; | |
var i = e("<button type='button'></button>").attr(r, !0).unbind("click").click(function() { | |
r.click.apply(n.element[0], arguments) | |
}).appendTo(n.uiButtonSet); | |
e.fn.button && i.button() | |
}), | |
this.uiDialog.addClass("ui-dialog-buttons"), | |
this.uiDialogButtonPane.appendTo(this.uiDialog)) : this.uiDialog.removeClass("ui-dialog-buttons") | |
}, | |
_makeDraggable: function() { | |
function r(e) { | |
return { | |
position: e.position, | |
offset: e.offset | |
} | |
} | |
var t = this | |
, n = this.options; | |
this.uiDialog.draggable({ | |
cancel: ".ui-dialog-content, .ui-dialog-titlebar-close", | |
handle: ".ui-dialog-titlebar", | |
containment: "document", | |
start: function(n, i) { | |
e(this).addClass("ui-dialog-dragging"), | |
t._trigger("dragStart", n, r(i)) | |
}, | |
drag: function(e, n) { | |
t._trigger("drag", e, r(n)) | |
}, | |
stop: function(i, s) { | |
n.position = [s.position.left - t.document.scrollLeft(), s.position.top - t.document.scrollTop()], | |
e(this).removeClass("ui-dialog-dragging"), | |
t._trigger("dragStop", i, r(s)), | |
e.ui.dialog.overlay.resize() | |
} | |
}) | |
}, | |
_makeResizable: function(n) { | |
function u(e) { | |
return { | |
originalPosition: e.originalPosition, | |
originalSize: e.originalSize, | |
position: e.position, | |
size: e.size | |
} | |
} | |
n = n === t ? this.options.resizable : n; | |
var r = this | |
, i = this.options | |
, s = this.uiDialog.css("position") | |
, o = typeof n == "string" ? n : "n,e,s,w,se,sw,ne,nw"; | |
this.uiDialog.resizable({ | |
cancel: ".ui-dialog-content", | |
containment: "document", | |
alsoResize: this.element, | |
maxWidth: i.maxWidth, | |
maxHeight: i.maxHeight, | |
minWidth: i.minWidth, | |
minHeight: this._minHeight(), | |
handles: o, | |
start: function(t, n) { | |
e(this).addClass("ui-dialog-resizing"), | |
r._trigger("resizeStart", t, u(n)) | |
}, | |
resize: function(e, t) { | |
r._trigger("resize", e, u(t)) | |
}, | |
stop: function(t, n) { | |
e(this).removeClass("ui-dialog-resizing"), | |
i.height = e(this).height(), | |
i.width = e(this).width(), | |
r._trigger("resizeStop", t, u(n)), | |
e.ui.dialog.overlay.resize() | |
} | |
}).css("position", s).find(".ui-resizable-se").addClass("ui-icon ui-icon-grip-diagonal-se") | |
}, | |
_minHeight: function() { | |
var e = this.options; | |
return e.height === "auto" ? e.minHeight : Math.min(e.minHeight, e.height) | |
}, | |
_position: function(t) { | |
var n = [], r = [0, 0], i; | |
if (t) { | |
if (typeof t == "string" || typeof t == "object" && "0"in t) | |
n = t.split ? t.split(" ") : [t[0], t[1]], | |
n.length === 1 && (n[1] = n[0]), | |
e.each(["left", "top"], function(e, t) { | |
+n[e] === n[e] && (r[e] = n[e], | |
n[e] = t) | |
}), | |
t = { | |
my: n[0] + (r[0] < 0 ? r[0] : "+" + r[0]) + " " + n[1] + (r[1] < 0 ? r[1] : "+" + r[1]), | |
at: n.join(" ") | |
}; | |
t = e.extend({}, e.ui.dialog.prototype.options.position, t) | |
} else | |
t = e.ui.dialog.prototype.options.position; | |
i = this.uiDialog.is(":visible"), | |
i || this.uiDialog.show(), | |
this.uiDialog.position(t), | |
i || this.uiDialog.hide() | |
}, | |
_setOptions: function(t) { | |
var n = this | |
, s = {} | |
, o = !1; | |
e.each(t, function(e, t) { | |
n._setOption(e, t), | |
e in r && (o = !0), | |
e in i && (s[e] = t) | |
}), | |
o && this._size(), | |
this.uiDialog.is(":data(resizable)") && this.uiDialog.resizable("option", s) | |
}, | |
_setOption: function(t, r) { | |
var i, s, o = this.uiDialog; | |
switch (t) { | |
case "buttons": | |
this._createButtons(r); | |
break; | |
case "closeText": | |
this.uiDialogTitlebarCloseText.text("" + r); | |
break; | |
case "dialogClass": | |
o.removeClass(this.options.dialogClass).addClass(n + r); | |
break; | |
case "disabled": | |
r ? o.addClass("ui-dialog-disabled") : o.removeClass("ui-dialog-disabled"); | |
break; | |
case "draggable": | |
i = o.is(":data(draggable)"), | |
i && !r && o.draggable("destroy"), | |
!i && r && this._makeDraggable(); | |
break; | |
case "position": | |
this._position(r); | |
break; | |
case "resizable": | |
s = o.is(":data(resizable)"), | |
s && !r && o.resizable("destroy"), | |
s && typeof r == "string" && o.resizable("option", "handles", r), | |
!s && r !== !1 && this._makeResizable(r); | |
break; | |
case "title": | |
e(".ui-dialog-title", this.uiDialogTitlebar).html("" + (r || " ")) | |
} | |
this._super(t, r) | |
}, | |
_size: function() { | |
var t, n, r, i = this.options, s = this.uiDialog.is(":visible"); | |
this.element.show().css({ | |
width: "auto", | |
minHeight: 0, | |
height: 0 | |
}), | |
i.minWidth > i.width && (i.width = i.minWidth), | |
t = this.uiDialog.css({ | |
height: "auto", | |
width: i.width | |
}).outerHeight(), | |
n = Math.max(0, i.minHeight - t), | |
i.height === "auto" ? e.support.minHeight ? this.element.css({ | |
minHeight: n, | |
height: "auto" | |
}) : (this.uiDialog.show(), | |
r = this.element.css("height", "auto").height(), | |
s || this.uiDialog.hide(), | |
this.element.height(Math.max(r, n))) : this.element.height(Math.max(i.height - t, 0)), | |
this.uiDialog.is(":data(resizable)") && this.uiDialog.resizable("option", "minHeight", this._minHeight()) | |
} | |
}), | |
e.extend(e.ui.dialog, { | |
uuid: 0, | |
maxZ: 0, | |
getTitleId: function(e) { | |
var t = e.attr("id"); | |
return t || (this.uuid += 1, | |
t = this.uuid), | |
"ui-dialog-title-" + t | |
}, | |
overlay: function(t) { | |
this.$el = e.ui.dialog.overlay.create(t) | |
} | |
}), | |
e.extend(e.ui.dialog.overlay, { | |
instances: [], | |
oldInstances: [], | |
maxZ: 0, | |
events: e.map("focus,mousedown,mouseup,keydown,keypress,click".split(","), function(e) { | |
return e + ".dialog-overlay" | |
}).join(" "), | |
create: function(t) { | |
this.instances.length === 0 && (setTimeout(function() { | |
e.ui.dialog.overlay.instances.length && e(document).bind(e.ui.dialog.overlay.events, function(t) { | |
if (e(t.target).zIndex() < e.ui.dialog.overlay.maxZ) | |
return !1 | |
}) | |
}, 1), | |
e(window).bind("resize.dialog-overlay", e.ui.dialog.overlay.resize)); | |
var n = this.oldInstances.pop() || e("<div>").addClass("ui-widget-overlay"); | |
return e(document).bind("keydown.dialog-overlay", function(r) { | |
var i = e.ui.dialog.overlay.instances; | |
i.length !== 0 && i[i.length - 1] === n && t.options.closeOnEscape && !r.isDefaultPrevented() && r.keyCode && r.keyCode === e.ui.keyCode.ESCAPE && (t.close(r), | |
r.preventDefault()) | |
}), | |
n.appendTo(document.body).css({ | |
width: this.width(), | |
height: this.height() | |
}), | |
e.fn.bgiframe && n.bgiframe(), | |
this.instances.push(n), | |
n | |
}, | |
destroy: function(t) { | |
var n = e.inArray(t, this.instances) | |
, r = 0; | |
n !== -1 && this.oldInstances.push(this.instances.splice(n, 1)[0]), | |
this.instances.length === 0 && e([document, window]).unbind(".dialog-overlay"), | |
t.height(0).width(0).remove(), | |
e.each(this.instances, function() { | |
r = Math.max(r, this.css("z-index")) | |
}), | |
this.maxZ = r | |
}, | |
height: function() { | |
var t, n; | |
return e.ui.ie ? (t = Math.max(document.documentElement.scrollHeight, document.body.scrollHeight), | |
n = Math.max(document.documentElement.offsetHeight, document.body.offsetHeight), | |
t < n ? e(window).height() + "px" : t + "px") : e(document).height() + "px" | |
}, | |
width: function() { | |
var t, n; | |
return e.ui.ie ? (t = Math.max(document.documentElement.scrollWidth, document.body.scrollWidth), | |
n = Math.max(document.documentElement.offsetWidth, document.body.offsetWidth), | |
t < n ? e(window).width() + "px" : t + "px") : e(document).width() + "px" | |
}, | |
resize: function() { | |
var t = e([]); | |
e.each(e.ui.dialog.overlay.instances, function() { | |
t = t.add(this) | |
}), | |
t.css({ | |
width: 0, | |
height: 0 | |
}).css({ | |
width: e.ui.dialog.overlay.width(), | |
height: e.ui.dialog.overlay.height() | |
}) | |
} | |
}), | |
e.extend(e.ui.dialog.overlay.prototype, { | |
destroy: function() { | |
e.ui.dialog.overlay.destroy(this.$el) | |
} | |
}) | |
}(jQuery), | |
function(e, t) { | |
var n = /up|down|vertical/ | |
, r = /up|left|vertical|horizontal/; | |
e.effects.effect.blind = function(t, i) { | |
var s = e(this), o = ["position", "top", "bottom", "left", "right", "height", "width"], u = e.effects.setMode(s, t.mode || "hide"), a = t.direction || "up", f = n.test(a), l = f ? "height" : "width", c = f ? "top" : "left", h = r.test(a), p = {}, d = u === "show", v, m, g; | |
s.parent().is(".ui-effects-wrapper") ? e.effects.save(s.parent(), o) : e.effects.save(s, o), | |
s.show(), | |
v = e.effects.createWrapper(s).css({ | |
overflow: "hidden" | |
}), | |
m = v[l](), | |
g = parseFloat(v.css(c)) || 0, | |
p[l] = d ? m : 0, | |
h || (s.css(f ? "bottom" : "right", 0).css(f ? "top" : "left", "auto").css({ | |
position: "absolute" | |
}), | |
p[c] = d ? g : m + g), | |
d && (v.css(l, 0), | |
h || v.css(c, g + m)), | |
v.animate(p, { | |
duration: t.duration, | |
easing: t.easing, | |
queue: !1, | |
complete: function() { | |
u === "hide" && s.hide(), | |
e.effects.restore(s, o), | |
e.effects.removeWrapper(s), | |
i() | |
} | |
}) | |
} | |
}(jQuery), | |
function(e, t) { | |
e.effects.effect.bounce = function(t, n) { | |
var r = e(this), i = ["position", "top", "bottom", "left", "right", "height", "width"], s = e.effects.setMode(r, t.mode || "effect"), o = s === "hide", u = s === "show", a = t.direction || "up", f = t.distance, l = t.times || 5, c = l * 2 + (u || o ? 1 : 0), h = t.duration / c, p = t.easing, d = a === "up" || a === "down" ? "top" : "left", v = a === "up" || a === "left", m, g, y, b = r.queue(), w = b.length; | |
(u || o) && i.push("opacity"), | |
e.effects.save(r, i), | |
r.show(), | |
e.effects.createWrapper(r), | |
f || (f = r[d === "top" ? "outerHeight" : "outerWidth"]() / 3), | |
u && (y = { | |
opacity: 1 | |
}, | |
y[d] = 0, | |
r.css("opacity", 0).css(d, v ? -f * 2 : f * 2).animate(y, h, p)), | |
o && (f /= Math.pow(2, l - 1)), | |
y = {}, | |
y[d] = 0; | |
for (m = 0; m < l; m++) | |
g = {}, | |
g[d] = (v ? "-=" : "+=") + f, | |
r.animate(g, h, p).animate(y, h, p), | |
f = o ? f * 2 : f / 2; | |
o && (g = { | |
opacity: 0 | |
}, | |
g[d] = (v ? "-=" : "+=") + f, | |
r.animate(g, h, p)), | |
r.queue(function() { | |
o && r.hide(), | |
e.effects.restore(r, i), | |
e.effects.removeWrapper(r), | |
n() | |
}), | |
w > 1 && b.splice.apply(b, [1, 0].concat(b.splice(w, c + 1))), | |
r.dequeue() | |
} | |
}(jQuery), | |
function(e, t) { | |
e.effects.effect.clip = function(t, n) { | |
var r = e(this), i = ["position", "top", "bottom", "left", "right", "height", "width"], s = e.effects.setMode(r, t.mode || "hide"), o = s === "show", u = t.direction || "vertical", a = u === "vertical", f = a ? "height" : "width", l = a ? "top" : "left", c = {}, h, p, d; | |
e.effects.save(r, i), | |
r.show(), | |
h = e.effects.createWrapper(r).css({ | |
overflow: "hidden" | |
}), | |
p = r[0].tagName === "IMG" ? h : r, | |
d = p[f](), | |
o && (p.css(f, 0), | |
p.css(l, d / 2)), | |
c[f] = o ? d : 0, | |
c[l] = o ? 0 : d / 2, | |
p.animate(c, { | |
queue: !1, | |
duration: t.duration, | |
easing: t.easing, | |
complete: function() { | |
o || r.hide(), | |
e.effects.restore(r, i), | |
e.effects.removeWrapper(r), | |
n() | |
} | |
}) | |
} | |
}(jQuery), | |
function(e, t) { | |
e.effects.effect.drop = function(t, n) { | |
var r = e(this), i = ["position", "top", "bottom", "left", "right", "opacity", "height", "width"], s = e.effects.setMode(r, t.mode || "hide"), o = s === "show", u = t.direction || "left", a = u === "up" || u === "down" ? "top" : "left", f = u === "up" || u === "left" ? "pos" : "neg", l = { | |
opacity: o ? 1 : 0 | |
}, c; | |
e.effects.save(r, i), | |
r.show(), | |
e.effects.createWrapper(r), | |
c = t.distance || r[a === "top" ? "outerHeight" : "outerWidth"](!0) / 2, | |
o && r.css("opacity", 0).css(a, f === "pos" ? -c : c), | |
l[a] = (o ? f === "pos" ? "+=" : "-=" : f === "pos" ? "-=" : "+=") + c, | |
r.animate(l, { | |
queue: !1, | |
duration: t.duration, | |
easing: t.easing, | |
complete: function() { | |
s === "hide" && r.hide(), | |
e.effects.restore(r, i), | |
e.effects.removeWrapper(r), | |
n() | |
} | |
}) | |
} | |
}(jQuery), | |
function(e, t) { | |
e.effects.effect.explode = function(t, n) { | |
function y() { | |
c.push(this), | |
c.length === r * i && b() | |
} | |
function b() { | |
s.css({ | |
visibility: "visible" | |
}), | |
e(c).remove(), | |
u || s.hide(), | |
n() | |
} | |
var r = t.pieces ? Math.round(Math.sqrt(t.pieces)) : 3, i = r, s = e(this), o = e.effects.setMode(s, t.mode || "hide"), u = o === "show", a = s.show().css("visibility", "hidden").offset(), f = Math.ceil(s.outerWidth() / i), l = Math.ceil(s.outerHeight() / r), c = [], h, p, d, v, m, g; | |
for (h = 0; h < r; h++) { | |
v = a.top + h * l, | |
g = h - (r - 1) / 2; | |
for (p = 0; p < i; p++) | |
d = a.left + p * f, | |
m = p - (i - 1) / 2, | |
s.clone().appendTo("body").wrap("<div></div>").css({ | |
position: "absolute", | |
visibility: "visible", | |
left: -p * f, | |
top: -h * l | |
}).parent().addClass("ui-effects-explode").css({ | |
position: "absolute", | |
overflow: "hidden", | |
width: f, | |
height: l, | |
left: d + (u ? m * f : 0), | |
top: v + (u ? g * l : 0), | |
opacity: u ? 0 : 1 | |
}).animate({ | |
left: d + (u ? 0 : m * f), | |
top: v + (u ? 0 : g * l), | |
opacity: u ? 1 : 0 | |
}, t.duration || 500, t.easing, y) | |
} | |
} | |
}(jQuery), | |
function(e, t) { | |
e.effects.effect.fade = function(t, n) { | |
var r = e(this) | |
, i = e.effects.setMode(r, t.mode || "toggle"); | |
r.animate({ | |
opacity: i | |
}, { | |
queue: !1, | |
duration: t.duration, | |
easing: t.easing, | |
complete: n | |
}) | |
} | |
}(jQuery), | |
function(e, t) { | |
e.effects.effect.fold = function(t, n) { | |
var r = e(this), i = ["position", "top", "bottom", "left", "right", "height", "width"], s = e.effects.setMode(r, t.mode || "hide"), o = s === "show", u = s === "hide", a = t.size || 15, f = /([0-9]+)%/.exec(a), l = !!t.horizFirst, c = o !== l, h = c ? ["width", "height"] : ["height", "width"], p = t.duration / 2, d, v, m = {}, g = {}; | |
e.effects.save(r, i), | |
r.show(), | |
d = e.effects.createWrapper(r).css({ | |
overflow: "hidden" | |
}), | |
v = c ? [d.width(), d.height()] : [d.height(), d.width()], | |
f && (a = parseInt(f[1], 10) / 100 * v[u ? 0 : 1]), | |
o && d.css(l ? { | |
height: 0, | |
width: a | |
} : { | |
height: a, | |
width: 0 | |
}), | |
m[h[0]] = o ? v[0] : a, | |
g[h[1]] = o ? v[1] : 0, | |
d.animate(m, p, t.easing).animate(g, p, t.easing, function() { | |
u && r.hide(), | |
e.effects.restore(r, i), | |
e.effects.removeWrapper(r), | |
n() | |
}) | |
} | |
}(jQuery), | |
function(e, t) { | |
e.effects.effect.highlight = function(t, n) { | |
var r = e(this) | |
, i = ["backgroundImage", "backgroundColor", "opacity"] | |
, s = e.effects.setMode(r, t.mode || "show") | |
, o = { | |
backgroundColor: r.css("backgroundColor") | |
}; | |
s === "hide" && (o.opacity = 0), | |
e.effects.save(r, i), | |
r.show().css({ | |
backgroundImage: "none", | |
backgroundColor: t.color || "#ffff99" | |
}).animate(o, { | |
queue: !1, | |
duration: t.duration, | |
easing: t.easing, | |
complete: function() { | |
s === "hide" && r.hide(), | |
e.effects.restore(r, i), | |
n() | |
} | |
}) | |
} | |
}(jQuery), | |
function(e, t) { | |
e.effects.effect.pulsate = function(t, n) { | |
var r = e(this), i = e.effects.setMode(r, t.mode || "show"), s = i === "show", o = i === "hide", u = s || i === "hide", a = (t.times || 5) * 2 + (u ? 1 : 0), f = t.duration / a, l = 0, c = r.queue(), h = c.length, p; | |
if (s || !r.is(":visible")) | |
r.css("opacity", 0).show(), | |
l = 1; | |
for (p = 1; p < a; p++) | |
r.animate({ | |
opacity: l | |
}, f, t.easing), | |
l = 1 - l; | |
r.animate({ | |
opacity: l | |
}, f, t.easing), | |
r.queue(function() { | |
o && r.hide(), | |
n() | |
}), | |
h > 1 && c.splice.apply(c, [1, 0].concat(c.splice(h, a + 1))), | |
r.dequeue() | |
} | |
}(jQuery), | |
function(e, t) { | |
e.effects.effect.puff = function(t, n) { | |
var r = e(this) | |
, i = e.effects.setMode(r, t.mode || "hide") | |
, s = i === "hide" | |
, o = parseInt(t.percent, 10) || 150 | |
, u = o / 100 | |
, a = { | |
height: r.height(), | |
width: r.width() | |
}; | |
e.extend(t, { | |
effect: "scale", | |
queue: !1, | |
fade: !0, | |
mode: i, | |
complete: n, | |
percent: s ? o : 100, | |
from: s ? a : { | |
height: a.height * u, | |
width: a.width * u | |
} | |
}), | |
r.effect(t) | |
} | |
, | |
e.effects.effect.scale = function(t, n) { | |
var r = e(this) | |
, i = e.extend(!0, {}, t) | |
, s = e.effects.setMode(r, t.mode || "effect") | |
, o = parseInt(t.percent, 10) || (parseInt(t.percent, 10) === 0 ? 0 : s === "hide" ? 0 : 100) | |
, u = t.direction || "both" | |
, a = t.origin | |
, f = { | |
height: r.height(), | |
width: r.width(), | |
outerHeight: r.outerHeight(), | |
outerWidth: r.outerWidth() | |
} | |
, l = { | |
y: u !== "horizontal" ? o / 100 : 1, | |
x: u !== "vertical" ? o / 100 : 1 | |
}; | |
i.effect = "size", | |
i.queue = !1, | |
i.complete = n, | |
s !== "effect" && (i.origin = a || ["middle", "center"], | |
i.restore = !0), | |
i.from = t.from || (s === "show" ? { | |
height: 0, | |
width: 0 | |
} : f), | |
i.to = { | |
height: f.height * l.y, | |
width: f.width * l.x, | |
outerHeight: f.outerHeight * l.y, | |
outerWidth: f.outerWidth * l.x | |
}, | |
i.fade && (s === "show" && (i.from.opacity = 0, | |
i.to.opacity = 1), | |
s === "hide" && (i.from.opacity = 1, | |
i.to.opacity = 0)), | |
r.effect(i) | |
} | |
, | |
e.effects.effect.size = function(t, n) { | |
var r, i, s, o = e(this), u = ["position", "top", "bottom", "left", "right", "width", "height", "overflow", "opacity"], a = ["position", "top", "bottom", "left", "right", "overflow", "opacity"], f = ["width", "height", "overflow"], l = ["fontSize"], c = ["borderTopWidth", "borderBottomWidth", "paddingTop", "paddingBottom"], h = ["borderLeftWidth", "borderRightWidth", "paddingLeft", "paddingRight"], p = e.effects.setMode(o, t.mode || "effect"), d = t.restore || p !== "effect", v = t.scale || "both", m = t.origin || ["middle", "center"], g = o.css("position"), y = d ? u : a, b = { | |
height: 0, | |
width: 0 | |
}; | |
p === "show" && o.show(), | |
r = { | |
height: o.height(), | |
width: o.width(), | |
outerHeight: o.outerHeight(), | |
outerWidth: o.outerWidth() | |
}, | |
t.mode === "toggle" && p === "show" ? (o.from = t.to || b, | |
o.to = t.from || r) : (o.from = t.from || (p === "show" ? b : r), | |
o.to = t.to || (p === "hide" ? b : r)), | |
s = { | |
from: { | |
y: o.from.height / r.height, | |
x: o.from.width / r.width | |
}, | |
to: { | |
y: o.to.height / r.height, | |
x: o.to.width / r.width | |
} | |
}; | |
if (v === "box" || v === "both") | |
s.from.y !== s.to.y && (y = y.concat(c), | |
o.from = e.effects.setTransition(o, c, s.from.y, o.from), | |
o.to = e.effects.setTransition(o, c, s.to.y, o.to)), | |
s.from.x !== s.to.x && (y = y.concat(h), | |
o.from = e.effects.setTransition(o, h, s.from.x, o.from), | |
o.to = e.effects.setTransition(o, h, s.to.x, o.to)); | |
(v === "content" || v === "both") && s.from.y !== s.to.y && (y = y.concat(l).concat(f), | |
o.from = e.effects.setTransition(o, l, s.from.y, o.from), | |
o.to = e.effects.setTransition(o, l, s.to.y, o.to)), | |
e.effects.save(o, y), | |
o.show(), | |
e.effects.createWrapper(o), | |
o.css("overflow", "hidden").css(o.from), | |
m && (i = e.effects.getBaseline(m, r), | |
o.from.top = (r.outerHeight - o.outerHeight()) * i.y, | |
o.from.left = (r.outerWidth - o.outerWidth()) * i.x, | |
o.to.top = (r.outerHeight - o.to.outerHeight) * i.y, | |
o.to.left = (r.outerWidth - o.to.outerWidth) * i.x), | |
o.css(o.from); | |
if (v === "content" || v === "both") | |
c = c.concat(["marginTop", "marginBottom"]).concat(l), | |
h = h.concat(["marginLeft", "marginRight"]), | |
f = u.concat(c).concat(h), | |
o.find("*[width]").each(function() { | |
var n = e(this) | |
, r = { | |
height: n.height(), | |
width: n.width() | |
}; | |
d && e.effects.save(n, f), | |
n.from = { | |
height: r.height * s.from.y, | |
width: r.width * s.from.x | |
}, | |
n.to = { | |
height: r.height * s.to.y, | |
width: r.width * s.to.x | |
}, | |
s.from.y !== s.to.y && (n.from = e.effects.setTransition(n, c, s.from.y, n.from), | |
n.to = e.effects.setTransition(n, c, s.to.y, n.to)), | |
s.from.x !== s.to.x && (n.from = e.effects.setTransition(n, h, s.from.x, n.from), | |
n.to = e.effects.setTransition(n, h, s.to.x, n.to)), | |
n.css(n.from), | |
n.animate(n.to, t.duration, t.easing, function() { | |
d && e.effects.restore(n, f) | |
}) | |
}); | |
o.animate(o.to, { | |
queue: !1, | |
duration: t.duration, | |
easing: t.easing, | |
complete: function() { | |
o.to.opacity === 0 && o.css("opacity", o.from.opacity), | |
p === "hide" && o.hide(), | |
e.effects.restore(o, y), | |
d || (g === "static" ? o.css({ | |
position: "relative", | |
top: o.to.top, | |
left: o.to.left | |
}) : e.each(["top", "left"], function(e, t) { | |
o.css(t, function(t, n) { | |
var r = parseInt(n, 10) | |
, i = e ? o.to.left : o.to.top; | |
return n === "auto" ? i + "px" : r + i + "px" | |
}) | |
})), | |
e.effects.removeWrapper(o), | |
n() | |
} | |
}) | |
} | |
}(jQuery), | |
function(e, t) { | |
e.effects.effect.shake = function(t, n) { | |
var r = e(this), i = ["position", "top", "bottom", "left", "right", "height", "width"], s = e.effects.setMode(r, t.mode || "effect"), o = t.direction || "left", u = t.distance || 20, a = t.times || 3, f = a * 2 + 1, l = Math.round(t.duration / f), c = o === "up" || o === "down" ? "top" : "left", h = o === "up" || o === "left", p = {}, d = {}, v = {}, m, g = r.queue(), y = g.length; | |
e.effects.save(r, i), | |
r.show(), | |
e.effects.createWrapper(r), | |
p[c] = (h ? "-=" : "+=") + u, | |
d[c] = (h ? "+=" : "-=") + u * 2, | |
v[c] = (h ? "-=" : "+=") + u * 2, | |
r.animate(p, l, t.easing); | |
for (m = 1; m < a; m++) | |
r.animate(d, l, t.easing).animate(v, l, t.easing); | |
r.animate(d, l, t.easing).animate(p, l / 2, t.easing).queue(function() { | |
s === "hide" && r.hide(), | |
e.effects.restore(r, i), | |
e.effects.removeWrapper(r), | |
n() | |
}), | |
y > 1 && g.splice.apply(g, [1, 0].concat(g.splice(y, f + 1))), | |
r.dequeue() | |
} | |
}(jQuery), | |
function(e, t) { | |
e.effects.effect.slide = function(t, n) { | |
var r = e(this), i = ["position", "top", "bottom", "left", "right", "width", "height"], s = e.effects.setMode(r, t.mode || "show"), o = s === "show", u = t.direction || "left", a = u === "up" || u === "down" ? "top" : "left", f = u === "up" || u === "left", l, c = {}; | |
e.effects.save(r, i), | |
r.show(), | |
l = t.distance || r[a === "top" ? "outerHeight" : "outerWidth"](!0), | |
e.effects.createWrapper(r).css({ | |
overflow: "hidden" | |
}), | |
o && r.css(a, f ? isNaN(l) ? "-" + l : -l : l), | |
c[a] = (o ? f ? "+=" : "-=" : f ? "-=" : "+=") + l, | |
r.animate(c, { | |
queue: !1, | |
duration: t.duration, | |
easing: t.easing, | |
complete: function() { | |
s === "hide" && r.hide(), | |
e.effects.restore(r, i), | |
e.effects.removeWrapper(r), | |
n() | |
} | |
}) | |
} | |
}(jQuery), | |
function(e, t) { | |
e.effects.effect.transfer = function(t, n) { | |
var r = e(this) | |
, i = e(t.to) | |
, s = i.css("position") === "fixed" | |
, o = e("body") | |
, u = s ? o.scrollTop() : 0 | |
, a = s ? o.scrollLeft() : 0 | |
, f = i.offset() | |
, l = { | |
top: f.top - u, | |
left: f.left - a, | |
height: i.innerHeight(), | |
width: i.innerWidth() | |
} | |
, c = r.offset() | |
, h = e('<div class="ui-effects-transfer"></div>').appendTo(document.body).addClass(t.className).css({ | |
top: c.top - u, | |
left: c.left - a, | |
height: r.innerHeight(), | |
width: r.innerWidth(), | |
position: s ? "fixed" : "absolute" | |
}).animate(l, t.duration, t.easing, function() { | |
h.remove(), | |
n() | |
}) | |
} | |
}(jQuery), | |
function(e, t) { | |
var n = !1; | |
e.widget("ui.menu", { | |
version: "1.9.1", | |
defaultElement: "<ul>", | |
delay: 300, | |
options: { | |
icons: { | |
submenu: "ui-icon-carat-1-e" | |
}, | |
menus: "ul", | |
position: { | |
my: "left top", | |
at: "right top" | |
}, | |
role: "menu", | |
blur: null, | |
focus: null, | |
select: null | |
}, | |
_create: function() { | |
this.activeMenu = this.element, | |
this.element.uniqueId().addClass("ui-menu ui-widget ui-widget-content ui-corner-all").toggleClass("ui-menu-icons", !!this.element.find(".ui-icon").length).attr({ | |
role: this.options.role, | |
tabIndex: 0 | |
}).bind("click" + this.eventNamespace, e.proxy(function(e) { | |
this.options.disabled && e.preventDefault() | |
}, this)), | |
this.options.disabled && this.element.addClass("ui-state-disabled").attr("aria-disabled", "true"), | |
this._on({ | |
"mousedown .ui-menu-item > a": function(e) { | |
e.preventDefault() | |
}, | |
"click .ui-state-disabled > a": function(e) { | |
e.preventDefault() | |
}, | |
"click .ui-menu-item:has(a)": function(t) { | |
var r = e(t.target).closest(".ui-menu-item"); | |
!n && r.not(".ui-state-disabled").length && (n = !0, | |
this.select(t), | |
r.has(".ui-menu").length ? this.expand(t) : this.element.is(":focus") || (this.element.trigger("focus", [!0]), | |
this.active && this.active.parents(".ui-menu").length === 1 && clearTimeout(this.timer))) | |
}, | |
"mouseenter .ui-menu-item": function(t) { | |
var n = e(t.currentTarget); | |
n.siblings().children(".ui-state-active").removeClass("ui-state-active"), | |
this.focus(t, n) | |
}, | |
mouseleave: "collapseAll", | |
"mouseleave .ui-menu": "collapseAll", | |
focus: function(e, t) { | |
var n = this.active || this.element.children(".ui-menu-item").eq(0); | |
t || this.focus(e, n) | |
}, | |
blur: function(t) { | |
this._delay(function() { | |
e.contains(this.element[0], this.document[0].activeElement) || this.collapseAll(t) | |
}) | |
}, | |
keydown: "_keydown" | |
}), | |
this.refresh(), | |
this._on(this.document, { | |
click: function(t) { | |
e(t.target).closest(".ui-menu").length || this.collapseAll(t), | |
n = !1 | |
} | |
}) | |
}, | |
_destroy: function() { | |
this.element.removeAttr("aria-activedescendant").find(".ui-menu").andSelf().removeClass("ui-menu ui-widget ui-widget-content ui-corner-all ui-menu-icons").removeAttr("role").removeAttr("tabIndex").removeAttr("aria-labelledby").removeAttr("aria-expanded").removeAttr("aria-hidden").removeAttr("aria-disabled").removeUniqueId().show(), | |
this.element.find(".ui-menu-item").removeClass("ui-menu-item").removeAttr("role").removeAttr("aria-disabled").children("a").removeUniqueId().removeClass("ui-corner-all ui-state-hover").removeAttr("tabIndex").removeAttr("role").removeAttr("aria-haspopup").children().each(function() { | |
var t = e(this); | |
t.data("ui-menu-submenu-carat") && t.remove() | |
}), | |
this.element.find(".ui-menu-divider").removeClass("ui-menu-divider ui-widget-content") | |
}, | |
_keydown: function(t) { | |
function a(e) { | |
return e.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g, "\\$&") | |
} | |
var n, r, i, s, o, u = !0; | |
switch (t.keyCode) { | |
case e.ui.keyCode.PAGE_UP: | |
this.previousPage(t); | |
break; | |
case e.ui.keyCode.PAGE_DOWN: | |
this.nextPage(t); | |
break; | |
case e.ui.keyCode.HOME: | |
this._move("first", "first", t); | |
break; | |
case e.ui.keyCode.END: | |
this._move("last", "last", t); | |
break; | |
case e.ui.keyCode.UP: | |
this.previous(t); | |
break; | |
case e.ui.keyCode.DOWN: | |
this.next(t); | |
break; | |
case e.ui.keyCode.LEFT: | |
this.collapse(t); | |
break; | |
case e.ui.keyCode.RIGHT: | |
this.active && !this.active.is(".ui-state-disabled") && this.expand(t); | |
break; | |
case e.ui.keyCode.ENTER: | |
case e.ui.keyCode.SPACE: | |
this._activate(t); | |
break; | |
case e.ui.keyCode.ESCAPE: | |
this.collapse(t); | |
break; | |
default: | |
u = !1, | |
r = this.previousFilter || "", | |
i = String.fromCharCode(t.keyCode), | |
s = !1, | |
clearTimeout(this.filterTimer), | |
i === r ? s = !0 : i = r + i, | |
o = new RegExp("^" + a(i),"i"), | |
n = this.activeMenu.children(".ui-menu-item").filter(function() { | |
return o.test(e(this).children("a").text()) | |
}), | |
n = s && n.index(this.active.next()) !== -1 ? this.active.nextAll(".ui-menu-item") : n, | |
n.length || (i = String.fromCharCode(t.keyCode), | |
o = new RegExp("^" + a(i),"i"), | |
n = this.activeMenu.children(".ui-menu-item").filter(function() { | |
return o.test(e(this).children("a").text()) | |
})), | |
n.length ? (this.focus(t, n), | |
n.length > 1 ? (this.previousFilter = i, | |
this.filterTimer = this._delay(function() { | |
delete this.previousFilter | |
}, 1e3)) : delete this.previousFilter) : delete this.previousFilter | |
} | |
u && t.preventDefault() | |
}, | |
_activate: function(e) { | |
this.active.is(".ui-state-disabled") || (this.active.children("a[aria-haspopup='true']").length ? this.expand(e) : this.select(e)) | |
}, | |
refresh: function() { | |
var t, n = this.options.icons.submenu, r = this.element.find(this.options.menus + ":not(.ui-menu)").addClass("ui-menu ui-widget ui-widget-content ui-corner-all").hide().attr({ | |
role: this.options.role, | |
"aria-hidden": "true", | |
"aria-expanded": "false" | |
}); | |
t = r.add(this.element), | |
t.children(":not(.ui-menu-item):has(a)").addClass("ui-menu-item").attr("role", "presentation").children("a").uniqueId().addClass("ui-corner-all").attr({ | |
tabIndex: -1, | |
role: this._itemRole() | |
}), | |
t.children(":not(.ui-menu-item)").each(function() { | |
var t = e(this); | |
/[^\-—–\s]/.test(t.text()) || t.addClass("ui-widget-content ui-menu-divider") | |
}), | |
t.children(".ui-state-disabled").attr("aria-disabled", "true"), | |
r.each(function() { | |
var t = e(this) | |
, r = t.prev("a") | |
, i = e("<span>").addClass("ui-menu-icon ui-icon " + n).data("ui-menu-submenu-carat", !0); | |
r.attr("aria-haspopup", "true").prepend(i), | |
t.attr("aria-labelledby", r.attr("id")) | |
}), | |
this.active && !e.contains(this.element[0], this.active[0]) && this.blur() | |
}, | |
_itemRole: function() { | |
return { | |
menu: "menuitem", | |
listbox: "option" | |
}[this.options.role] | |
}, | |
focus: function(e, t) { | |
var n, r; | |
this.blur(e, e && e.type === "focus"), | |
this._scrollIntoView(t), | |
this.active = t.first(), | |
r = this.active.children("a").addClass("ui-state-focus"), | |
this.options.role && this.element.attr("aria-activedescendant", r.attr("id")), | |
this.active.parent().closest(".ui-menu-item").children("a:first").addClass("ui-state-active"), | |
e && e.type === "keydown" ? this._close() : this.timer = this._delay(function() { | |
this._close() | |
}, this.delay), | |
n = t.children(".ui-menu"), | |
n.length && /^mouse/.test(e.type) && this._startOpening(n), | |
this.activeMenu = t.parent(), | |
this._trigger("focus", e, { | |
item: t | |
}) | |
}, | |
_scrollIntoView: function(t) { | |
var n, r, i, s, o, u; | |
this._hasScroll() && (n = parseFloat(e.css(this.activeMenu[0], "borderTopWidth")) || 0, | |
r = parseFloat(e.css(this.activeMenu[0], "paddingTop")) || 0, | |
i = t.offset().top - this.activeMenu.offset().top - n - r, | |
s = this.activeMenu.scrollTop(), | |
o = this.activeMenu.height(), | |
u = t.height(), | |
i < 0 ? this.activeMenu.scrollTop(s + i) : i + u > o && this.activeMenu.scrollTop(s + i - o + u)) | |
}, | |
blur: function(e, t) { | |
t || clearTimeout(this.timer); | |
if (!this.active) | |
return; | |
this.active.children("a").removeClass("ui-state-focus"), | |
this.active = null, | |
this._trigger("blur", e, { | |
item: this.active | |
}) | |
}, | |
_startOpening: function(e) { | |
clearTimeout(this.timer); | |
if (e.attr("aria-hidden") !== "true") | |
return; | |
this.timer = this._delay(function() { | |
this._close(), | |
this._open(e) | |
}, this.delay) | |
}, | |
_open: function(t) { | |
var n = e.extend({ | |
of: this.active | |
}, this.options.position); | |
clearTimeout(this.timer), | |
this.element.find(".ui-menu").not(t.parents(".ui-menu")).hide().attr("aria-hidden", "true"), | |
t.show().removeAttr("aria-hidden").attr("aria-expanded", "true").position(n) | |
}, | |
collapseAll: function(t, n) { | |
clearTimeout(this.timer), | |
this.timer = this._delay(function() { | |
var r = n ? this.element : e(t && t.target).closest(this.element.find(".ui-menu")); | |
r.length || (r = this.element), | |
this._close(r), | |
this.blur(t), | |
this.activeMenu = r | |
}, this.delay) | |
}, | |
_close: function(e) { | |
e || (e = this.active ? this.active.parent() : this.element), | |
e.find(".ui-menu").hide().attr("aria-hidden", "true").attr("aria-expanded", "false").end().find("a.ui-state-active").removeClass("ui-state-active") | |
}, | |
collapse: function(e) { | |
var t = this.active && this.active.parent().closest(".ui-menu-item", this.element); | |
t && t.length && (this._close(), | |
this.focus(e, t)) | |
}, | |
expand: function(e) { | |
var t = this.active && this.active.children(".ui-menu ").children(".ui-menu-item").first(); | |
t && t.length && (this._open(t.parent()), | |
this._delay(function() { | |
this.focus(e, t) | |
})) | |
}, | |
next: function(e) { | |
this._move("next", "first", e) | |
}, | |
previous: function(e) { | |
this._move("prev", "last", e) | |
}, | |
isFirstItem: function() { | |
return this.active && !this.active.prevAll(".ui-menu-item").length | |
}, | |
isLastItem: function() { | |
return this.active && !this.active.nextAll(".ui-menu-item").length | |
}, | |
_move: function(e, t, n) { | |
var r; | |
this.active && (e === "first" || e === "last" ? r = this.active[e === "first" ? "prevAll" : "nextAll"](".ui-menu-item").eq(-1) : r = this.active[e + "All"](".ui-menu-item").eq(0)); | |
if (!r || !r.length || !this.active) | |
r = this.activeMenu.children(".ui-menu-item")[t](); | |
this.focus(n, r) | |
}, | |
nextPage: function(t) { | |
var n, r, i; | |
if (!this.active) { | |
this.next(t); | |
return | |
} | |
if (this.isLastItem()) | |
return; | |
this._hasScroll() ? (r = this.active.offset().top, | |
i = this.element.height(), | |
this.active.nextAll(".ui-menu-item").each(function() { | |
return n = e(this), | |
n.offset().top - r - i < 0 | |
}), | |
this.focus(t, n)) : this.focus(t, this.activeMenu.children(".ui-menu-item")[this.active ? "last" : "first"]()) | |
}, | |
previousPage: function(t) { | |
var n, r, i; | |
if (!this.active) { | |
this.next(t); | |
return | |
} | |
if (this.isFirstItem()) | |
return; | |
this._hasScroll() ? (r = this.active.offset().top, | |
i = this.element.height(), | |
this.active.prevAll(".ui-menu-item").each(function() { | |
return n = e(this), | |
n.offset().top - r + i > 0 | |
}), | |
this.focus(t, n)) : this.focus(t, this.activeMenu.children(".ui-menu-item").first()) | |
}, | |
_hasScroll: function() { | |
return this.element.outerHeight() < this.element.prop("scrollHeight") | |
}, | |
select: function(t) { | |
this.active = this.active || e(t.target).closest(".ui-menu-item"); | |
var n = { | |
item: this.active | |
}; | |
this.active.has(".ui-menu").length || this.collapseAll(t, !0), | |
this._trigger("select", t, n) | |
} | |
}) | |
}(jQuery), | |
function(e, t) { | |
function h(e, t, n) { | |
return [parseInt(e[0], 10) * (l.test(e[0]) ? t / 100 : 1), parseInt(e[1], 10) * (l.test(e[1]) ? n / 100 : 1)] | |
} | |
function p(t, n) { | |
return parseInt(e.css(t, n), 10) || 0 | |
} | |
e.ui = e.ui || {}; | |
var n, r = Math.max, i = Math.abs, s = Math.round, o = /left|center|right/, u = /top|center|bottom/, a = /[\+\-]\d+%?/, f = /^\w+/, l = /%$/, c = e.fn.position; | |
e.position = { | |
scrollbarWidth: function() { | |
if (n !== t) | |
return n; | |
var r, i, s = e("<div style='display:block;width:50px;height:50px;overflow:hidden;'><div style='height:100px;width:auto;'></div></div>"), o = s.children()[0]; | |
return e("body").append(s), | |
r = o.offsetWidth, | |
s.css("overflow", "scroll"), | |
i = o.offsetWidth, | |
r === i && (i = s[0].clientWidth), | |
s.remove(), | |
n = r - i | |
}, | |
getScrollInfo: function(t) { | |
var n = t.isWindow ? "" : t.element.css("overflow-x") | |
, r = t.isWindow ? "" : t.element.css("overflow-y") | |
, i = n === "scroll" || n === "auto" && t.width < t.element[0].scrollWidth | |
, s = r === "scroll" || r === "auto" && t.height < t.element[0].scrollHeight; | |
return { | |
width: i ? e.position.scrollbarWidth() : 0, | |
height: s ? e.position.scrollbarWidth() : 0 | |
} | |
}, | |
getWithinInfo: function(t) { | |
var n = e(t || window) | |
, r = e.isWindow(n[0]); | |
return { | |
element: n, | |
isWindow: r, | |
offset: n.offset() || { | |
left: 0, | |
top: 0 | |
}, | |
scrollLeft: n.scrollLeft(), | |
scrollTop: n.scrollTop(), | |
width: r ? n.width() : n.outerWidth(), | |
height: r ? n.height() : n.outerHeight() | |
} | |
} | |
}, | |
e.fn.position = function(t) { | |
if (!t || !t.of) | |
return c.apply(this, arguments); | |
t = e.extend({}, t); | |
var n, l, d, v, m, g = e(t.of), y = e.position.getWithinInfo(t.within), b = e.position.getScrollInfo(y), w = g[0], E = (t.collision || "flip").split(" "), S = {}; | |
return w.nodeType === 9 ? (l = g.width(), | |
d = g.height(), | |
v = { | |
top: 0, | |
left: 0 | |
}) : e.isWindow(w) ? (l = g.width(), | |
d = g.height(), | |
v = { | |
top: g.scrollTop(), | |
left: g.scrollLeft() | |
}) : w.preventDefault ? (t.at = "left top", | |
l = d = 0, | |
v = { | |
top: w.pageY, | |
left: w.pageX | |
}) : (l = g.outerWidth(), | |
d = g.outerHeight(), | |
v = g.offset()), | |
m = e.extend({}, v), | |
e.each(["my", "at"], function() { | |
var e = (t[this] || "").split(" "), n, r; | |
e.length === 1 && (e = o.test(e[0]) ? e.concat(["center"]) : u.test(e[0]) ? ["center"].concat(e) : ["center", "center"]), | |
e[0] = o.test(e[0]) ? e[0] : "center", | |
e[1] = u.test(e[1]) ? e[1] : "center", | |
n = a.exec(e[0]), | |
r = a.exec(e[1]), | |
S[this] = [n ? n[0] : 0, r ? r[0] : 0], | |
t[this] = [f.exec(e[0])[0], f.exec(e[1])[0]] | |
}), | |
E.length === 1 && (E[1] = E[0]), | |
t.at[0] === "right" ? m.left += l : t.at[0] === "center" && (m.left += l / 2), | |
t.at[1] === "bottom" ? m.top += d : t.at[1] === "center" && (m.top += d / 2), | |
n = h(S.at, l, d), | |
m.left += n[0], | |
m.top += n[1], | |
this.each(function() { | |
var o, u, a = e(this), f = a.outerWidth(), c = a.outerHeight(), w = p(this, "marginLeft"), x = p(this, "marginTop"), T = f + w + p(this, "marginRight") + b.width, N = c + x + p(this, "marginBottom") + b.height, C = e.extend({}, m), k = h(S.my, a.outerWidth(), a.outerHeight()); | |
t.my[0] === "right" ? C.left -= f : t.my[0] === "center" && (C.left -= f / 2), | |
t.my[1] === "bottom" ? C.top -= c : t.my[1] === "center" && (C.top -= c / 2), | |
C.left += k[0], | |
C.top += k[1], | |
e.support.offsetFractions || (C.left = s(C.left), | |
C.top = s(C.top)), | |
o = { | |
marginLeft: w, | |
marginTop: x | |
}, | |
e.each(["left", "top"], function(r, i) { | |
e.ui.position[E[r]] && e.ui.position[E[r]][i](C, { | |
targetWidth: l, | |
targetHeight: d, | |
elemWidth: f, | |
elemHeight: c, | |
collisionPosition: o, | |
collisionWidth: T, | |
collisionHeight: N, | |
offset: [n[0] + k[0], n[1] + k[1]], | |
my: t.my, | |
at: t.at, | |
within: y, | |
elem: a | |
}) | |
}), | |
e.fn.bgiframe && a.bgiframe(), | |
t.using && (u = function(e) { | |
var n = v.left - C.left | |
, s = n + l - f | |
, o = v.top - C.top | |
, u = o + d - c | |
, h = { | |
target: { | |
element: g, | |
left: v.left, | |
top: v.top, | |
width: l, | |
height: d | |
}, | |
element: { | |
element: a, | |
left: C.left, | |
top: C.top, | |
width: f, | |
height: c | |
}, | |
horizontal: s < 0 ? "left" : n > 0 ? "right" : "center", | |
vertical: u < 0 ? "top" : o > 0 ? "bottom" : "middle" | |
}; | |
l < f && i(n + s) < l && (h.horizontal = "center"), | |
d < c && i(o + u) < d && (h.vertical = "middle"), | |
r(i(n), i(s)) > r(i(o), i(u)) ? h.important = "horizontal" : h.important = "vertical", | |
t.using.call(this, e, h) | |
} | |
), | |
a.offset(e.extend(C, { | |
using: u | |
})) | |
}) | |
} | |
, | |
e.ui.position = { | |
fit: { | |
left: function(e, t) { | |
var n = t.within, i = n.isWindow ? n.scrollLeft : n.offset.left, s = n.width, o = e.left - t.collisionPosition.marginLeft, u = i - o, a = o + t.collisionWidth - s - i, f; | |
t.collisionWidth > s ? u > 0 && a <= 0 ? (f = e.left + u + t.collisionWidth - s - i, | |
e.left += u - f) : a > 0 && u <= 0 ? e.left = i : u > a ? e.left = i + s - t.collisionWidth : e.left = i : u > 0 ? e.left += u : a > 0 ? e.left -= a : e.left = r(e.left - o, e.left) | |
}, | |
top: function(e, t) { | |
var n = t.within, i = n.isWindow ? n.scrollTop : n.offset.top, s = t.within.height, o = e.top - t.collisionPosition.marginTop, u = i - o, a = o + t.collisionHeight - s - i, f; | |
t.collisionHeight > s ? u > 0 && a <= 0 ? (f = e.top + u + t.collisionHeight - s - i, | |
e.top += u - f) : a > 0 && u <= 0 ? e.top = i : u > a ? e.top = i + s - t.collisionHeight : e.top = i : u > 0 ? e.top += u : a > 0 ? e.top -= a : e.top = r(e.top - o, e.top) | |
} | |
}, | |
flip: { | |
left: function(e, t) { | |
var n = t.within, r = n.offset.left + n.scrollLeft, s = n.width, o = n.isWindow ? n.scrollLeft : n.offset.left, u = e.left - t.collisionPosition.marginLeft, a = u - o, f = u + t.collisionWidth - s - o, l = t.my[0] === "left" ? -t.elemWidth : t.my[0] === "right" ? t.elemWidth : 0, c = t.at[0] === "left" ? t.targetWidth : t.at[0] === "right" ? -t.targetWidth : 0, h = -2 * t.offset[0], p, d; | |
if (a < 0) { | |
p = e.left + l + c + h + t.collisionWidth - s - r; | |
if (p < 0 || p < i(a)) | |
e.left += l + c + h | |
} else if (f > 0) { | |
d = e.left - t.collisionPosition.marginLeft + l + c + h - o; | |
if (d > 0 || i(d) < f) | |
e.left += l + c + h | |
} | |
}, | |
top: function(e, t) { | |
var n = t.within, r = n.offset.top + n.scrollTop, s = n.height, o = n.isWindow ? n.scrollTop : n.offset.top, u = e.top - t.collisionPosition.marginTop, a = u - o, f = u + t.collisionHeight - s - o, l = t.my[1] === "top", c = l ? -t.elemHeight : t.my[1] === "bottom" ? t.elemHeight : 0, h = t.at[1] === "top" ? t.targetHeight : t.at[1] === "bottom" ? -t.targetHeight : 0, p = -2 * t.offset[1], d, v; | |
a < 0 ? (v = e.top + c + h + p + t.collisionHeight - s - r, | |
e.top + c + h + p > a && (v < 0 || v < i(a)) && (e.top += c + h + p)) : f > 0 && (d = e.top - t.collisionPosition.marginTop + c + h + p - o, | |
e.top + c + h + p > f && (d > 0 || i(d) < f) && (e.top += c + h + p)) | |
} | |
}, | |
flipfit: { | |
left: function() { | |
e.ui.position.flip.left.apply(this, arguments), | |
e.ui.position.fit.left.apply(this, arguments) | |
}, | |
top: function() { | |
e.ui.position.flip.top.apply(this, arguments), | |
e.ui.position.fit.top.apply(this, arguments) | |
} | |
} | |
}, | |
function() { | |
var t, n, r, i, s, o = document.getElementsByTagName("body")[0], u = document.createElement("div"); | |
t = document.createElement(o ? "div" : "body"), | |
r = { | |
visibility: "hidden", | |
width: 0, | |
height: 0, | |
border: 0, | |
margin: 0, | |
background: "none" | |
}, | |
o && e.extend(r, { | |
position: "absolute", | |
left: "-1000px", | |
top: "-1000px" | |
}); | |
for (s in r) | |
t.style[s] = r[s]; | |
t.appendChild(u), | |
n = o || document.documentElement, | |
n.insertBefore(t, n.firstChild), | |
u.style.cssText = "position: absolute; left: 10.7432222px;", | |
i = e(u).offset().left, | |
e.support.offsetFractions = i > 10 && i < 11, | |
t.innerHTML = "", | |
n.removeChild(t) | |
}(), | |
e.uiBackCompat !== !1 && function(e) { | |
var n = e.fn.position; | |
e.fn.position = function(r) { | |
if (!r || !r.offset) | |
return n.call(this, r); | |
var i = r.offset.split(" ") | |
, s = r.at.split(" "); | |
return i.length === 1 && (i[1] = i[0]), | |
/^\d/.test(i[0]) && (i[0] = "+" + i[0]), | |
/^\d/.test(i[1]) && (i[1] = "+" + i[1]), | |
s.length === 1 && (/left|center|right/.test(s[0]) ? s[1] = "center" : (s[1] = s[0], | |
s[0] = "center")), | |
n.call(this, e.extend(r, { | |
at: s[0] + i[0] + " " + s[1] + i[1], | |
offset: t | |
})) | |
} | |
}(jQuery) | |
}(jQuery), | |
function(e, t) { | |
e.widget("ui.progressbar", { | |
version: "1.9.1", | |
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 = e("<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() | |
}, | |
value: function(e) { | |
return e === t ? this._value() : (this._setOption("value", e), | |
this) | |
}, | |
_setOption: function(e, t) { | |
e === "value" && (this.options.value = t, | |
this._refreshValue(), | |
this._value() === this.options.max && this._trigger("complete")), | |
this._super(e, t) | |
}, | |
_value: function() { | |
var e = this.options.value; | |
return typeof e != "number" && (e = 0), | |
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() | |
, t = this._percentage(); | |
this.oldValue !== e && (this.oldValue = e, | |
this._trigger("change")), | |
this.valueDiv.toggle(e > this.min).toggleClass("ui-corner-right", e === this.options.max).width(t.toFixed(0) + "%"), | |
this.element.attr("aria-valuenow", e) | |
} | |
}) | |
}(jQuery), | |
function(e, t) { | |
var n = 5; | |
e.widget("ui.slider", e.ui.mouse, { | |
version: "1.9.1", | |
widgetEventPrefix: "slide", | |
options: { | |
animate: !1, | |
distance: 0, | |
max: 100, | |
min: 0, | |
orientation: "horizontal", | |
range: !1, | |
step: 1, | |
value: 0, | |
values: null | |
}, | |
_create: function() { | |
var t, r, i = this.options, s = this.element.find(".ui-slider-handle").addClass("ui-state-default ui-corner-all"), o = "<a class='ui-slider-handle ui-state-default ui-corner-all' href='#'></a>", u = []; | |
this._keySliding = !1, | |
this._mouseSliding = !1, | |
this._animateOff = !0, | |
this._handleIndex = null, | |
this._detectOrientation(), | |
this._mouseInit(), | |
this.element.addClass("ui-slider ui-slider-" + this.orientation + " ui-widget" + " ui-widget-content" + " ui-corner-all" + (i.disabled ? " ui-slider-disabled ui-disabled" : "")), | |
this.range = e([]), | |
i.range && (i.range === !0 && (i.values || (i.values = [this._valueMin(), this._valueMin()]), | |
i.values.length && i.values.length !== 2 && (i.values = [i.values[0], i.values[0]])), | |
this.range = e("<div></div>").appendTo(this.element).addClass("ui-slider-range ui-widget-header" + (i.range === "min" || i.range === "max" ? " ui-slider-range-" + i.range : ""))), | |
r = i.values && i.values.length || 1; | |
for (t = s.length; t < r; t++) | |
u.push(o); | |
this.handles = s.add(e(u.join("")).appendTo(this.element)), | |
this.handle = this.handles.eq(0), | |
this.handles.add(this.range).filter("a").click(function(e) { | |
e.preventDefault() | |
}).mouseenter(function() { | |
i.disabled || e(this).addClass("ui-state-hover") | |
}).mouseleave(function() { | |
e(this).removeClass("ui-state-hover") | |
}).focus(function() { | |
i.disabled ? e(this).blur() : (e(".ui-slider .ui-state-focus").removeClass("ui-state-focus"), | |
e(this).addClass("ui-state-focus")) | |
}).blur(function() { | |
e(this).removeClass("ui-state-focus") | |
}), | |
this.handles.each(function(t) { | |
e(this).data("ui-slider-handle-index", t) | |
}), | |
this._on(this.handles, { | |
keydown: function(t) { | |
var r, i, s, o, u = e(t.target).data("ui-slider-handle-index"); | |
switch (t.keyCode) { | |
case e.ui.keyCode.HOME: | |
case e.ui.keyCode.END: | |
case e.ui.keyCode.PAGE_UP: | |
case e.ui.keyCode.PAGE_DOWN: | |
case e.ui.keyCode.UP: | |
case e.ui.keyCode.RIGHT: | |
case e.ui.keyCode.DOWN: | |
case e.ui.keyCode.LEFT: | |
t.preventDefault(); | |
if (!this._keySliding) { | |
this._keySliding = !0, | |
e(t.target).addClass("ui-state-active"), | |
r = this._start(t, u); | |
if (r === !1) | |
return | |
} | |
} | |
o = this.options.step, | |
this.options.values && this.options.values.length ? i = s = this.values(u) : i = s = this.value(); | |
switch (t.keyCode) { | |
case e.ui.keyCode.HOME: | |
s = this._valueMin(); | |
break; | |
case e.ui.keyCode.END: | |
s = this._valueMax(); | |
break; | |
case e.ui.keyCode.PAGE_UP: | |
s = this._trimAlignValue(i + (this._valueMax() - this._valueMin()) / n); | |
break; | |
case e.ui.keyCode.PAGE_DOWN: | |
s = this._trimAlignValue(i - (this._valueMax() - this._valueMin()) / n); | |
break; | |
case e.ui.keyCode.UP: | |
case e.ui.keyCode.RIGHT: | |
if (i === this._valueMax()) | |
return; | |
s = this._trimAlignValue(i + o); | |
break; | |
case e.ui.keyCode.DOWN: | |
case e.ui.keyCode.LEFT: | |
if (i === this._valueMin()) | |
return; | |
s = this._trimAlignValue(i - o) | |
} | |
this._slide(t, u, s) | |
}, | |
keyup: function(t) { | |
var n = e(t.target).data("ui-slider-handle-index"); | |
this._keySliding && (this._keySliding = !1, | |
this._stop(t, n), | |
this._change(t, n), | |
e(t.target).removeClass("ui-state-active")) | |
} | |
}), | |
this._refreshValue(), | |
this._animateOff = !1 | |
}, | |
_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"), | |
this._mouseDestroy() | |
}, | |
_mouseCapture: function(t) { | |
var n, r, i, s, o, u, a, f, l = this, c = this.options; | |
return c.disabled ? !1 : (this.elementSize = { | |
width: this.element.outerWidth(), | |
height: this.element.outerHeight() | |
}, | |
this.elementOffset = this.element.offset(), | |
n = { | |
x: t.pageX, | |
y: t.pageY | |
}, | |
r = this._normValueFromMouse(n), | |
i = this._valueMax() - this._valueMin() + 1, | |
this.handles.each(function(t) { | |
var n = Math.abs(r - l.values(t)); | |
i > n && (i = n, | |
s = e(this), | |
o = t) | |
}), | |
c.range === !0 && this.values(1) === c.min && (o += 1, | |
s = e(this.handles[o])), | |
u = this._start(t, o), | |
u === !1 ? !1 : (this._mouseSliding = !0, | |
this._handleIndex = o, | |
s.addClass("ui-state-active").focus(), | |
a = s.offset(), | |
f = !e(t.target).parents().andSelf().is(".ui-slider-handle"), | |
this._clickOffset = f ? { | |
left: 0, | |
top: 0 | |
} : { | |
left: t.pageX - a.left - s.width() / 2, | |
top: t.pageY - a.top - s.height() / 2 - (parseInt(s.css("borderTopWidth"), 10) || 0) - (parseInt(s.css("borderBottomWidth"), 10) || 0) + (parseInt(s.css("marginTop"), 10) || 0) | |
}, | |
this.handles.hasClass("ui-state-hover") || this._slide(t, o, r), | |
this._animateOff = !0, | |
!0)) | |
}, | |
_mouseStart: function() { | |
return !0 | |
}, | |
_mouseDrag: function(e) { | |
var t = { | |
x: e.pageX, | |
y: e.pageY | |
} | |
, n = this._normValueFromMouse(t); | |
return this._slide(e, this._handleIndex, n), | |
!1 | |
}, | |
_mouseStop: function(e) { | |
return this.handles.removeClass("ui-state-active"), | |
this._mouseSliding = !1, | |
this._stop(e, this._handleIndex), | |
this._change(e, this._handleIndex), | |
this._handleIndex = null, | |
this._clickOffset = null, | |
this._animateOff = !1, | |
!1 | |
}, | |
_detectOrientation: function() { | |
this.orientation = this.options.orientation === "vertical" ? "vertical" : "horizontal" | |
}, | |
_normValueFromMouse: function(e) { | |
var t, n, r, i, s; | |
return this.orientation === "horizontal" ? (t = this.elementSize.width, | |
n = e.x - this.elementOffset.left - (this._clickOffset ? this._clickOffset.left : 0)) : (t = this.elementSize.height, | |
n = e.y - this.elementOffset.top - (this._clickOffset ? this._clickOffset.top : 0)), | |
r = n / t, | |
r > 1 && (r = 1), | |
r < 0 && (r = 0), | |
this.orientation === "vertical" && (r = 1 - r), | |
i = this._valueMax() - this._valueMin(), | |
s = this._valueMin() + r * i, | |
this._trimAlignValue(s) | |
}, | |
_start: function(e, t) { | |
var n = { | |
handle: this.handles[t], | |
value: this.value() | |
}; | |
return this.options.values && this.options.values.length && (n.value = this.values(t), | |
n.values = this.values()), | |
this._trigger("start", e, n) | |
}, | |
_slide: function(e, t, n) { | |
var r, i, s; | |
this.options.values && this.options.values.length ? (r = this.values(t ? 0 : 1), | |
this.options.values.length === 2 && this.options.range === !0 && (t === 0 && n > r || t === 1 && n < r) && (n = r), | |
n !== this.values(t) && (i = this.values(), | |
i[t] = n, | |
s = this._trigger("slide", e, { | |
handle: this.handles[t], | |
value: n, | |
values: i | |
}), | |
r = this.values(t ? 0 : 1), | |
s !== !1 && this.values(t, n, !0))) : n !== this.value() && (s = this._trigger("slide", e, { | |
handle: this.handles[t], | |
value: n | |
}), | |
s !== !1 && this.value(n)) | |
}, | |
_stop: function(e, t) { | |
var n = { | |
handle: this.handles[t], | |
value: this.value() | |
}; | |
this.options.values && this.options.values.length && (n.value = this.values(t), | |
n.values = this.values()), | |
this._trigger("stop", e, n) | |
}, | |
_change: function(e, t) { | |
if (!this._keySliding && !this._mouseSliding) { | |
var n = { | |
handle: this.handles[t], | |
value: this.value() | |
}; | |
this.options.values && this.options.values.length && (n.value = this.values(t), | |
n.values = this.values()), | |
this._trigger("change", e, n) | |
} | |
}, | |
value: function(e) { | |
if (arguments.length) { | |
this.options.value = this._trimAlignValue(e), | |
this._refreshValue(), | |
this._change(null, 0); | |
return | |
} | |
return this._value() | |
}, | |
values: function(t, n) { | |
var r, i, s; | |
if (arguments.length > 1) { | |
this.options.values[t] = this._trimAlignValue(n), | |
this._refreshValue(), | |
this._change(null, t); | |
return | |
} | |
if (!arguments.length) | |
return this._values(); | |
if (!e.isArray(arguments[0])) | |
return this.options.values && this.options.values.length ? this._values(t) : this.value(); | |
r = this.options.values, | |
i = arguments[0]; | |
for (s = 0; s < r.length; s += 1) | |
r[s] = this._trimAlignValue(i[s]), | |
this._change(null, s); | |
this._refreshValue() | |
}, | |
_setOption: function(t, n) { | |
var r, i = 0; | |
e.isArray(this.options.values) && (i = this.options.values.length), | |
e.Widget.prototype._setOption.apply(this, arguments); | |
switch (t) { | |
case "disabled": | |
n ? (this.handles.filter(".ui-state-focus").blur(), | |
this.handles.removeClass("ui-state-hover"), | |
this.handles.prop("disabled", !0), | |
this.element.addClass("ui-disabled")) : (this.handles.prop("disabled", !1), | |
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 = !0, | |
this._refreshValue(), | |
this._change(null, 0), | |
this._animateOff = !1; | |
break; | |
case "values": | |
this._animateOff = !0, | |
this._refreshValue(); | |
for (r = 0; r < i; r += 1) | |
this._change(null, r); | |
this._animateOff = !1; | |
break; | |
case "min": | |
case "max": | |
this._animateOff = !0, | |
this._refreshValue(), | |
this._animateOff = !1 | |
} | |
}, | |
_value: function() { | |
var e = this.options.value; | |
return e = this._trimAlignValue(e), | |
e | |
}, | |
_values: function(e) { | |
var t, n, r; | |
if (arguments.length) | |
return t = this.options.values[e], | |
t = this._trimAlignValue(t), | |
t; | |
n = this.options.values.slice(); | |
for (r = 0; r < n.length; r += 1) | |
n[r] = this._trimAlignValue(n[r]); | |
return n | |
}, | |
_trimAlignValue: function(e) { | |
if (e <= this._valueMin()) | |
return this._valueMin(); | |
if (e >= this._valueMax()) | |
return this._valueMax(); | |
var t = this.options.step > 0 ? this.options.step : 1 | |
, n = (e - this._valueMin()) % t | |
, r = e - n; | |
return Math.abs(n) * 2 >= t && (r += n > 0 ? t : -t), | |
parseFloat(r.toFixed(5)) | |
}, | |
_valueMin: function() { | |
return this.options.min | |
}, | |
_valueMax: function() { | |
return this.options.max | |
}, | |
_refreshValue: function() { | |
var t, n, r, i, s, o = this.options.range, u = this.options, a = this, f = this._animateOff ? !1 : u.animate, l = {}; | |
this.options.values && this.options.values.length ? this.handles.each(function(r) { | |
n = (a.values(r) - a._valueMin()) / (a._valueMax() - a._valueMin()) * 100, | |
l[a.orientation === "horizontal" ? "left" : "bottom"] = n + "%", | |
e(this).stop(1, 1)[f ? "animate" : "css"](l, u.animate), | |
a.options.range === !0 && (a.orientation === "horizontal" ? (r === 0 && a.range.stop(1, 1)[f ? "animate" : "css"]({ | |
left: n + "%" | |
}, u.animate), | |
r === 1 && a.range[f ? "animate" : "css"]({ | |
width: n - t + "%" | |
}, { | |
queue: !1, | |
duration: u.animate | |
})) : (r === 0 && a.range.stop(1, 1)[f ? "animate" : "css"]({ | |
bottom: n + "%" | |
}, u.animate), | |
r === 1 && a.range[f ? "animate" : "css"]({ | |
height: n - t + "%" | |
}, { | |
queue: !1, | |
duration: u.animate | |
}))), | |
t = n | |
}) : (r = this.value(), | |
i = this._valueMin(), | |
s = this._valueMax(), | |
n = s !== i ? (r - i) / (s - i) * 100 : 0, | |
l[this.orientation === "horizontal" ? "left" : "bottom"] = n + "%", | |
this.handle.stop(1, 1)[f ? "animate" : "css"](l, u.animate), | |
o === "min" && this.orientation === "horizontal" && this.range.stop(1, 1)[f ? "animate" : "css"]({ | |
width: n + "%" | |
}, u.animate), | |
o === "max" && this.orientation === "horizontal" && this.range[f ? "animate" : "css"]({ | |
width: 100 - n + "%" | |
}, { | |
queue: !1, | |
duration: u.animate | |
}), | |
o === "min" && this.orientation === "vertical" && this.range.stop(1, 1)[f ? "animate" : "css"]({ | |
height: n + "%" | |
}, u.animate), | |
o === "max" && this.orientation === "vertical" && this.range[f ? "animate" : "css"]({ | |
height: 100 - n + "%" | |
}, { | |
queue: !1, | |
duration: u.animate | |
})) | |
} | |
}) | |
}(jQuery), | |
function(e) { | |
function t(e) { | |
return function() { | |
var t = this.element.val(); | |
e.apply(this, arguments), | |
this._refresh(), | |
t !== this.element.val() && this._trigger("change") | |
} | |
} | |
e.widget("ui.spinner", { | |
version: "1.9.1", | |
defaultElement: "<input>", | |
widgetEventPrefix: "spin", | |
options: { | |
culture: null, | |
icons: { | |
down: "ui-icon-triangle-1-s", | |
up: "ui-icon-triangle-1-n" | |
}, | |
incremental: !0, | |
max: null, | |
min: null, | |
numberFormat: null, | |
page: 10, | |
step: 1, | |
change: null, | |
spin: null, | |
start: null, | |
stop: null | |
}, | |
_create: function() { | |
this._setOption("max", this.options.max), | |
this._setOption("min", this.options.min), | |
this._setOption("step", this.options.step), | |
this._value(this.element.val(), !0), | |
this._draw(), | |
this._on(this._events), | |
this._refresh(), | |
this._on(this.window, { | |
beforeunload: function() { | |
this.element.removeAttr("autocomplete") | |
} | |
}) | |
}, | |
_getCreateOptions: function() { | |
var t = {} | |
, n = this.element; | |
return e.each(["min", "max", "step"], function(e, r) { | |
var i = n.attr(r); | |
i !== undefined && i.length && (t[r] = i) | |
}), | |
t | |
}, | |
_events: { | |
keydown: function(e) { | |
this._start(e) && this._keydown(e) && e.preventDefault() | |
}, | |
keyup: "_stop", | |
focus: function() { | |
this.previous = this.element.val() | |
}, | |
blur: function(e) { | |
if (this.cancelBlur) { | |
delete this.cancelBlur; | |
return | |
} | |
this._refresh(), | |
this.previous !== this.element.val() && this._trigger("change", e) | |
}, | |
mousewheel: function(e, t) { | |
if (!t) | |
return; | |
if (!this.spinning && !this._start(e)) | |
return !1; | |
this._spin((t > 0 ? 1 : -1) * this.options.step, e), | |
clearTimeout(this.mousewheelTimer), | |
this.mousewheelTimer = this._delay(function() { | |
this.spinning && this._stop(e) | |
}, 100), | |
e.preventDefault() | |
}, | |
"mousedown .ui-spinner-button": function(t) { | |
function r() { | |
var e = this.element[0] === this.document[0].activeElement; | |
e || (this.element.focus(), | |
this.previous = n, | |
this._delay(function() { | |
this.previous = n | |
})) | |
} | |
var n; | |
n = this.element[0] === this.document[0].activeElement ? this.previous : this.element.val(), | |
t.preventDefault(), | |
r.call(this), | |
this.cancelBlur = !0, | |
this._delay(function() { | |
delete this.cancelBlur, | |
r.call(this) | |
}); | |
if (this._start(t) === !1) | |
return; | |
this._repeat(null, e(t.currentTarget).hasClass("ui-spinner-up") ? 1 : -1, t) | |
}, | |
"mouseup .ui-spinner-button": "_stop", | |
"mouseenter .ui-spinner-button": function(t) { | |
if (!e(t.currentTarget).hasClass("ui-state-active")) | |
return; | |
if (this._start(t) === !1) | |
return !1; | |
this._repeat(null, e(t.currentTarget).hasClass("ui-spinner-up") ? 1 : -1, t) | |
}, | |
"mouseleave .ui-spinner-button": "_stop" | |
}, | |
_draw: function() { | |
var e = this.uiSpinner = this.element.addClass("ui-spinner-input").attr("autocomplete", "off").wrap(this._uiSpinnerHtml()).parent().append(this._buttonHtml()); | |
this.element.attr("role", "spinbutton"), | |
this.buttons = e.find(".ui-spinner-button").attr("tabIndex", -1).button().removeClass("ui-corner-all"), | |
this.buttons.height() > Math.ceil(e.height() * .5) && e.height() > 0 && e.height(e.height()), | |
this.options.disabled && this.disable() | |
}, | |
_keydown: function(t) { | |
var n = this.options | |
, r = e.ui.keyCode; | |
switch (t.keyCode) { | |
case r.UP: | |
return this._repeat(null, 1, t), | |
!0; | |
case r.DOWN: | |
return this._repeat(null, -1, t), | |
!0; | |
case r.PAGE_UP: | |
return this._repeat(null, n.page, t), | |
!0; | |
case r.PAGE_DOWN: | |
return this._repeat(null, -n.page, t), | |
!0 | |
} | |
return !1 | |
}, | |
_uiSpinnerHtml: function() { | |
return "<span class='ui-spinner ui-widget ui-widget-content ui-corner-all'></span>" | |
}, | |
_buttonHtml: function() { | |
return "<a class='ui-spinner-button ui-spinner-up ui-corner-tr'><span class='ui-icon " + this.options.icons.up + "'>▲</span>" + "</a>" + "<a class='ui-spinner-button ui-spinner-down ui-corner-br'>" + "<span class='ui-icon " + this.options.icons.down + "'>▼</span>" + "</a>" | |
}, | |
_start: function(e) { | |
return !this.spinning && this._trigger("start", e) === !1 ? !1 : (this.counter || (this.counter = 1), | |
this.spinning = !0, | |
!0) | |
}, | |
_repeat: function(e, t, n) { | |
e = e || 500, | |
clearTimeout(this.timer), | |
this.timer = this._delay(function() { | |
this._repeat(40, t, n) | |
}, e), | |
this._spin(t * this.options.step, n) | |
}, | |
_spin: function(e, t) { | |
var n = this.value() || 0; | |
this.counter || (this.counter = 1), | |
n = this._adjustValue(n + e * this._increment(this.counter)); | |
if (!this.spinning || this._trigger("spin", t, { | |
value: n | |
}) !== !1) | |
this._value(n), | |
this.counter++ | |
}, | |
_increment: function(t) { | |
var n = this.options.incremental; | |
return n ? e.isFunction(n) ? n(t) : Math.floor(t * t * t / 5e4 - t * t / 500 + 17 * t / 200 + 1) : 1 | |
}, | |
_precision: function() { | |
var e = this._precisionOf(this.options.step); | |
return this.options.min !== null && (e = Math.max(e, this._precisionOf(this.options.min))), | |
e | |
}, | |
_precisionOf: function(e) { | |
var t = e.toString() | |
, n = t.indexOf("."); | |
return n === -1 ? 0 : t.length - n - 1 | |
}, | |
_adjustValue: function(e) { | |
var t, n, r = this.options; | |
return t = r.min !== null ? r.min : 0, | |
n = e - t, | |
n = Math.round(n / r.step) * r.step, | |
e = t + n, | |
e = parseFloat(e.toFixed(this._precision())), | |
r.max !== null && e > r.max ? r.max : r.min !== null && e < r.min ? r.min : e | |
}, | |
_stop: function(e) { | |
if (!this.spinning) | |
return; | |
clearTimeout(this.timer), | |
clearTimeout(this.mousewheelTimer), | |
this.counter = 0, | |
this.spinning = !1, | |
this._trigger("stop", e) | |
}, | |
_setOption: function(e, t) { | |
if (e === "culture" || e === "numberFormat") { | |
var n = this._parse(this.element.val()); | |
this.options[e] = t, | |
this.element.val(this._format(n)); | |
return | |
} | |
(e === "max" || e === "min" || e === "step") && typeof t == "string" && (t = this._parse(t)), | |
this._super(e, t), | |
e === "disabled" && (t ? (this.element.prop("disabled", !0), | |
this.buttons.button("disable")) : (this.element.prop("disabled", !1), | |
this.buttons.button("enable"))) | |
}, | |
_setOptions: t(function(e) { | |
this._super(e), | |
this._value(this.element.val()) | |
}), | |
_parse: function(e) { | |
return typeof e == "string" && e !== "" && (e = window.Globalize && this.options.numberFormat ? Globalize.parseFloat(e, 10, this.options.culture) : +e), | |
e === "" || isNaN(e) ? null : e | |
}, | |
_format: function(e) { | |
return e === "" ? "" : window.Globalize && this.options.numberFormat ? Globalize.format(e, this.options.numberFormat, this.options.culture) : e | |
}, | |
_refresh: function() { | |
this.element.attr({ | |
"aria-valuemin": this.options.min, | |
"aria-valuemax": this.options.max, | |
"aria-valuenow": this._parse(this.element.val()) | |
}) | |
}, | |
_value: function(e, t) { | |
var n; | |
e !== "" && (n = this._parse(e), | |
n !== null && (t || (n = this._adjustValue(n)), | |
e = this._format(n))), | |
this.element.val(e), | |
this._refresh() | |
}, | |
_destroy: function() { | |
this.element.removeClass("ui-spinner-input").prop("disabled", !1).removeAttr("autocomplete").removeAttr("role").removeAttr("aria-valuemin").removeAttr("aria-valuemax").removeAttr("aria-valuenow"), | |
this.uiSpinner.replaceWith(this.element) | |
}, | |
stepUp: t(function(e) { | |
this._stepUp(e) | |
}), | |
_stepUp: function(e) { | |
this._spin((e || 1) * this.options.step) | |
}, | |
stepDown: t(function(e) { | |
this._stepDown(e) | |
}), | |
_stepDown: function(e) { | |
this._spin((e || 1) * -this.options.step) | |
}, | |
pageUp: t(function(e) { | |
this._stepUp((e || 1) * this.options.page) | |
}), | |
pageDown: t(function(e) { | |
this._stepDown((e || 1) * this.options.page) | |
}), | |
value: function(e) { | |
if (!arguments.length) | |
return this._parse(this.element.val()); | |
t(this._value).call(this, e) | |
}, | |
widget: function() { | |
return this.uiSpinner | |
} | |
}) | |
}(jQuery), | |
function(e, t) { | |
function i() { | |
return ++n | |
} | |
function s(e) { | |
return e.hash.length > 1 && e.href.replace(r, "") === location.href.replace(r, "") | |
} | |
var n = 0 | |
, r = /#.*$/; | |
e.widget("ui.tabs", { | |
version: "1.9.1", | |
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 t = this | |
, n = this.options | |
, r = n.active | |
, i = location.hash.substring(1); | |
this.running = !1, | |
this.element.addClass("ui-tabs ui-widget ui-widget-content ui-corner-all").toggleClass("ui-tabs-collapsible", n.collapsible).delegate(".ui-tabs-nav > li", "mousedown" + this.eventNamespace, function(t) { | |
e(this).is(".ui-state-disabled") && t.preventDefault() | |
}).delegate(".ui-tabs-anchor", "focus" + this.eventNamespace, function() { | |
e(this).closest("li").is(".ui-state-disabled") && this.blur() | |
}), | |
this._processTabs(); | |
if (r === null) { | |
i && this.tabs.each(function(t, n) { | |
if (e(n).attr("aria-controls") === i) | |
return r = t, | |
!1 | |
}), | |
r === null && (r = this.tabs.index(this.tabs.filter(".ui-tabs-active"))); | |
if (r === null || r === -1) | |
r = this.tabs.length ? 0 : !1 | |
} | |
r !== !1 && (r = this.tabs.index(this.tabs.eq(r)), | |
r === -1 && (r = n.collapsible ? !1 : 0)), | |
n.active = r, | |
!n.collapsible && n.active === !1 && this.anchors.length && (n.active = 0), | |
e.isArray(n.disabled) && (n.disabled = e.unique(n.disabled.concat(e.map(this.tabs.filter(".ui-state-disabled"), function(e) { | |
return t.tabs.index(e) | |
}))).sort()), | |
this.options.active !== !1 && this.anchors.length ? this.active = this._findActive(this.options.active) : this.active = e(), | |
this._refresh(), | |
this.active.length && this.load(n.active) | |
}, | |
_getCreateEventData: function() { | |
return { | |
tab: this.active, | |
panel: this.active.length ? this._getPanelForTab(this.active) : e() | |
} | |
}, | |
_tabKeydown: function(t) { | |
var n = e(this.document[0].activeElement).closest("li") | |
, r = this.tabs.index(n) | |
, i = !0; | |
if (this._handlePageNav(t)) | |
return; | |
switch (t.keyCode) { | |
case e.ui.keyCode.RIGHT: | |
case e.ui.keyCode.DOWN: | |
r++; | |
break; | |
case e.ui.keyCode.UP: | |
case e.ui.keyCode.LEFT: | |
i = !1, | |
r--; | |
break; | |
case e.ui.keyCode.END: | |
r = this.anchors.length - 1; | |
break; | |
case e.ui.keyCode.HOME: | |
r = 0; | |
break; | |
case e.ui.keyCode.SPACE: | |
t.preventDefault(), | |
clearTimeout(this.activating), | |
this._activate(r); | |
return; | |
case e.ui.keyCode.ENTER: | |
t.preventDefault(), | |
clearTimeout(this.activating), | |
this._activate(r === this.options.active ? !1 : r); | |
return; | |
default: | |
return | |
} | |
t.preventDefault(), | |
clearTimeout(this.activating), | |
r = this._focusNextTab(r, i), | |
t.ctrlKey || (n.attr("aria-selected", "false"), | |
this.tabs.eq(r).attr("aria-selected", "true"), | |
this.activating = this._delay(function() { | |
this.option("active", r) | |
}, this.delay)) | |
}, | |
_panelKeydown: function(t) { | |
if (this._handlePageNav(t)) | |
return; | |
t.ctrlKey && t.keyCode === e.ui.keyCode.UP && (t.preventDefault(), | |
this.active.focus()) | |
}, | |
_handlePageNav: function(t) { | |
if (t.altKey && t.keyCode === e.ui.keyCode.PAGE_UP) | |
return this._activate(this._focusNextTab(this.options.active - 1, !1)), | |
!0; | |
if (t.altKey && t.keyCode === e.ui.keyCode.PAGE_DOWN) | |
return this._activate(this._focusNextTab(this.options.active + 1, !0)), | |
!0 | |
}, | |
_findNextTab: function(t, n) { | |
function i() { | |
return t > r && (t = 0), | |
t < 0 && (t = r), | |
t | |
} | |
var r = this.tabs.length - 1; | |
while (e.inArray(i(), this.options.disabled) !== -1) | |
t = n ? t + 1 : t - 1; | |
return t | |
}, | |
_focusNextTab: function(e, t) { | |
return e = this._findNextTab(e, t), | |
this.tabs.eq(e).focus(), | |
e | |
}, | |
_setOption: function(e, t) { | |
if (e === "active") { | |
this._activate(t); | |
return | |
} | |
if (e === "disabled") { | |
this._setupDisabled(t); | |
return | |
} | |
this._super(e, t), | |
e === "collapsible" && (this.element.toggleClass("ui-tabs-collapsible", t), | |
!t && this.options.active === !1 && this._activate(0)), | |
e === "event" && this._setupEvents(t), | |
e === "heightStyle" && this._setupHeightStyle(t) | |
}, | |
_tabId: function(e) { | |
return e.attr("aria-controls") || "ui-tabs-" + i() | |
}, | |
_sanitizeSelector: function(e) { | |
return e ? e.replace(/[!"$%&'()*+,.\/:;<=>?@\[\]\^`{|}~]/g, "\\$&") : "" | |
}, | |
refresh: function() { | |
var t = this.options | |
, n = this.tablist.children(":has(a[href])"); | |
t.disabled = e.map(n.filter(".ui-state-disabled"), function(e) { | |
return n.index(e) | |
}), | |
this._processTabs(), | |
t.active === !1 || !this.anchors.length ? (t.active = !1, | |
this.active = e()) : this.active.length && !e.contains(this.tablist[0], this.active[0]) ? this.tabs.length === t.disabled.length ? (t.active = !1, | |
this.active = e()) : this._activate(this._findNextTab(Math.max(0, t.active - 1), !1)) : t.active = this.tabs.index(this.active), | |
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 t = 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 e("a", this)[0] | |
}).addClass("ui-tabs-anchor").attr({ | |
role: "presentation", | |
tabIndex: -1 | |
}), | |
this.panels = e(), | |
this.anchors.each(function(n, r) { | |
var i, o, u, a = e(r).uniqueId().attr("id"), f = e(r).closest("li"), l = f.attr("aria-controls"); | |
s(r) ? (i = r.hash, | |
o = t.element.find(t._sanitizeSelector(i))) : (u = t._tabId(f), | |
i = "#" + u, | |
o = t.element.find(i), | |
o.length || (o = t._createPanel(u), | |
o.insertAfter(t.panels[n - 1] || t.tablist)), | |
o.attr("aria-live", "polite")), | |
o.length && (t.panels = t.panels.add(o)), | |
l && f.data("ui-tabs-aria-controls", l), | |
f.attr({ | |
"aria-controls": i.substring(1), | |
"aria-labelledby": a | |
}), | |
o.attr("aria-labelledby", a) | |
}), | |
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(t) { | |
return e("<div>").attr("id", t).addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").data("ui-tabs-destroy", !0) | |
}, | |
_setupDisabled: function(t) { | |
e.isArray(t) && (t.length ? t.length === this.anchors.length && (t = !0) : t = !1); | |
for (var n = 0, r; r = this.tabs[n]; n++) | |
t === !0 || e.inArray(n, t) !== -1 ? e(r).addClass("ui-state-disabled").attr("aria-disabled", "true") : e(r).removeClass("ui-state-disabled").removeAttr("aria-disabled"); | |
this.options.disabled = t | |
}, | |
_setupEvents: function(t) { | |
var n = { | |
click: function(e) { | |
e.preventDefault() | |
} | |
}; | |
t && e.each(t.split(" "), function(e, t) { | |
n[t] = "_eventHandler" | |
}), | |
this._off(this.anchors.add(this.tabs).add(this.panels)), | |
this._on(this.anchors, n), | |
this._on(this.tabs, { | |
keydown: "_tabKeydown" | |
}), | |
this._on(this.panels, { | |
keydown: "_panelKeydown" | |
}), | |
this._focusable(this.tabs), | |
this._hoverable(this.tabs) | |
}, | |
_setupHeightStyle: function(t) { | |
var n, r, i = this.element.parent(); | |
t === "fill" ? (e.support.minHeight || (r = i.css("overflow"), | |
i.css("overflow", "hidden")), | |
n = i.height(), | |
this.element.siblings(":visible").each(function() { | |
var t = e(this) | |
, r = t.css("position"); | |
if (r === "absolute" || r === "fixed") | |
return; | |
n -= t.outerHeight(!0) | |
}), | |
r && i.css("overflow", r), | |
this.element.children().not(this.panels).each(function() { | |
n -= e(this).outerHeight(!0) | |
}), | |
this.panels.each(function() { | |
e(this).height(Math.max(0, n - e(this).innerHeight() + e(this).height())) | |
}).css("overflow", "auto")) : t === "auto" && (n = 0, | |
this.panels.each(function() { | |
n = Math.max(n, e(this).height("").height()) | |
}).height(n)) | |
}, | |
_eventHandler: function(t) { | |
var n = this.options | |
, r = this.active | |
, i = e(t.currentTarget) | |
, s = i.closest("li") | |
, o = s[0] === r[0] | |
, u = o && n.collapsible | |
, a = u ? e() : this._getPanelForTab(s) | |
, f = r.length ? this._getPanelForTab(r) : e() | |
, l = { | |
oldTab: r, | |
oldPanel: f, | |
newTab: u ? e() : s, | |
newPanel: a | |
}; | |
t.preventDefault(); | |
if (s.hasClass("ui-state-disabled") || s.hasClass("ui-tabs-loading") || this.running || o && !n.collapsible || this._trigger("beforeActivate", t, l) === !1) | |
return; | |
n.active = u ? !1 : this.tabs.index(s), | |
this.active = o ? e() : s, | |
this.xhr && this.xhr.abort(), | |
!f.length && !a.length && e.error("jQuery UI Tabs: Mismatching fragment identifier."), | |
a.length && this.load(this.tabs.index(s), t), | |
this._toggle(t, l) | |
}, | |
_toggle: function(t, n) { | |
function o() { | |
r.running = !1, | |
r._trigger("activate", t, n) | |
} | |
function u() { | |
n.newTab.closest("li").addClass("ui-tabs-active ui-state-active"), | |
i.length && r.options.show ? r._show(i, r.options.show, o) : (i.show(), | |
o()) | |
} | |
var r = this | |
, i = n.newPanel | |
, s = n.oldPanel; | |
this.running = !0, | |
s.length && this.options.hide ? this._hide(s, this.options.hide, function() { | |
n.oldTab.closest("li").removeClass("ui-tabs-active ui-state-active"), | |
u() | |
}) : (n.oldTab.closest("li").removeClass("ui-tabs-active ui-state-active"), | |
s.hide(), | |
u()), | |
s.attr({ | |
"aria-expanded": "false", | |
"aria-hidden": "true" | |
}), | |
n.oldTab.attr("aria-selected", "false"), | |
i.length && s.length ? n.oldTab.attr("tabIndex", -1) : i.length && this.tabs.filter(function() { | |
return e(this).attr("tabIndex") === 0 | |
}).attr("tabIndex", -1), | |
i.attr({ | |
"aria-expanded": "true", | |
"aria-hidden": "false" | |
}), | |
n.newTab.attr({ | |
"aria-selected": "true", | |
tabIndex: 0 | |
}) | |
}, | |
_activate: function(t) { | |
var n, r = this._findActive(t); | |
if (r[0] === this.active[0]) | |
return; | |
r.length || (r = this.active), | |
n = r.find(".ui-tabs-anchor")[0], | |
this._eventHandler({ | |
target: n, | |
currentTarget: n, | |
preventDefault: e.noop | |
}) | |
}, | |
_findActive: function(t) { | |
return t === !1 ? e() : this.tabs.eq(t) | |
}, | |
_getIndex: function(e) { | |
return typeof e == "string" && (e = this.anchors.index(this.anchors.filter("[href$='" + e + "']"))), | |
e | |
}, | |
_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").removeData("href.tabs").removeData("load.tabs").removeUniqueId(), | |
this.tabs.add(this.panels).each(function() { | |
e.data(this, "ui-tabs-destroy") ? e(this).remove() : e(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 t = e(this) | |
, n = t.data("ui-tabs-aria-controls"); | |
n ? t.attr("aria-controls", n) : t.removeAttr("aria-controls") | |
}), | |
this.options.heightStyle !== "content" && this.panels.css("height", "") | |
}, | |
enable: function(n) { | |
var r = this.options.disabled; | |
if (r === !1) | |
return; | |
n === t ? r = !1 : (n = this._getIndex(n), | |
e.isArray(r) ? r = e.map(r, function(e) { | |
return e !== n ? e : null | |
}) : r = e.map(this.tabs, function(e, t) { | |
return t !== n ? t : null | |
})), | |
this._setupDisabled(r) | |
}, | |
disable: function(n) { | |
var r = this.options.disabled; | |
if (r === !0) | |
return; | |
if (n === t) | |
r = !0; | |
else { | |
n = this._getIndex(n); | |
if (e.inArray(n, r) !== -1) | |
return; | |
e.isArray(r) ? r = e.merge([n], r).sort() : r = [n] | |
} | |
this._setupDisabled(r) | |
}, | |
load: function(t, n) { | |
t = this._getIndex(t); | |
var r = this | |
, i = this.tabs.eq(t) | |
, o = i.find(".ui-tabs-anchor") | |
, u = this._getPanelForTab(i) | |
, a = { | |
tab: i, | |
panel: u | |
}; | |
if (s(o[0])) | |
return; | |
this.xhr = e.ajax(this._ajaxSettings(o, n, a)), | |
this.xhr && this.xhr.statusText !== "canceled" && (i.addClass("ui-tabs-loading"), | |
u.attr("aria-busy", "true"), | |
this.xhr.success(function(e) { | |
setTimeout(function() { | |
u.html(e), | |
r._trigger("load", n, a) | |
}, 1) | |
}).complete(function(e, t) { | |
setTimeout(function() { | |
t === "abort" && r.panels.stop(!1, !0), | |
i.removeClass("ui-tabs-loading"), | |
u.removeAttr("aria-busy"), | |
e === r.xhr && delete r.xhr | |
}, 1) | |
})) | |
}, | |
_ajaxSettings: function(t, n, r) { | |
var i = this; | |
return { | |
url: t.attr("href"), | |
beforeSend: function(t, s) { | |
return i._trigger("beforeLoad", n, e.extend({ | |
jqXHR: t, | |
ajaxSettings: s | |
}, r)) | |
} | |
} | |
}, | |
_getPanelForTab: function(t) { | |
var n = e(t).attr("aria-controls"); | |
return this.element.find(this._sanitizeSelector("#" + n)) | |
} | |
}), | |
e.uiBackCompat !== !1 && (e.ui.tabs.prototype._ui = function(e, t) { | |
return { | |
tab: e, | |
panel: t, | |
index: this.anchors.index(e) | |
} | |
} | |
, | |
e.widget("ui.tabs", e.ui.tabs, { | |
url: function(e, t) { | |
this.anchors.eq(e).attr("href", t) | |
} | |
}), | |
e.widget("ui.tabs", e.ui.tabs, { | |
options: { | |
ajaxOptions: null, | |
cache: !1 | |
}, | |
_create: function() { | |
this._super(); | |
var t = this; | |
this._on({ | |
tabsbeforeload: function(n, r) { | |
if (e.data(r.tab[0], "cache.tabs")) { | |
n.preventDefault(); | |
return | |
} | |
r.jqXHR.success(function() { | |
t.options.cache && e.data(r.tab[0], "cache.tabs", !0) | |
}) | |
} | |
}) | |
}, | |
_ajaxSettings: function(t, n, r) { | |
var i = this.options.ajaxOptions; | |
return e.extend({}, i, { | |
error: function(e, t) { | |
try { | |
i.error(e, t, r.tab.closest("li").index(), r.tab[0]) | |
} catch (n) {} | |
} | |
}, this._superApply(arguments)) | |
}, | |
_setOption: function(e, t) { | |
e === "cache" && t === !1 && this.anchors.removeData("cache.tabs"), | |
this._super(e, t) | |
}, | |
_destroy: function() { | |
this.anchors.removeData("cache.tabs"), | |
this._super() | |
}, | |
url: function(e) { | |
this.anchors.eq(e).removeData("cache.tabs"), | |
this._superApply(arguments) | |
} | |
}), | |
e.widget("ui.tabs", e.ui.tabs, { | |
abort: function() { | |
this.xhr && this.xhr.abort() | |
} | |
}), | |
e.widget("ui.tabs", e.ui.tabs, { | |
options: { | |
spinner: "<em>Loading…</em>" | |
}, | |
_create: function() { | |
this._super(), | |
this._on({ | |
tabsbeforeload: function(e, t) { | |
if (e.target !== this.element[0] || !this.options.spinner) | |
return; | |
var n = t.tab.find("span") | |
, r = n.html(); | |
n.html(this.options.spinner), | |
t.jqXHR.complete(function() { | |
n.html(r) | |
}) | |
} | |
}) | |
} | |
}), | |
e.widget("ui.tabs", e.ui.tabs, { | |
options: { | |
enable: null, | |
disable: null | |
}, | |
enable: function(t) { | |
var n = this.options, r; | |
if (t && n.disabled === !0 || e.isArray(n.disabled) && e.inArray(t, n.disabled) !== -1) | |
r = !0; | |
this._superApply(arguments), | |
r && this._trigger("enable", null, this._ui(this.anchors[t], this.panels[t])) | |
}, | |
disable: function(t) { | |
var n = this.options, r; | |
if (t && n.disabled === !1 || e.isArray(n.disabled) && e.inArray(t, n.disabled) === -1) | |
r = !0; | |
this._superApply(arguments), | |
r && this._trigger("disable", null, this._ui(this.anchors[t], this.panels[t])) | |
} | |
}), | |
e.widget("ui.tabs", e.ui.tabs, { | |
options: { | |
add: null, | |
remove: null, | |
tabTemplate: "<li><a href='#{href}'><span>#{label}</span></a></li>" | |
}, | |
add: function(n, r, i) { | |
i === t && (i = this.anchors.length); | |
var s, o, u = this.options, a = e(u.tabTemplate.replace(/#\{href\}/g, n).replace(/#\{label\}/g, r)), f = n.indexOf("#") ? this._tabId(a) : n.replace("#", ""); | |
return a.addClass("ui-state-default ui-corner-top").data("ui-tabs-destroy", !0), | |
a.attr("aria-controls", f), | |
s = i >= this.tabs.length, | |
o = this.element.find("#" + f), | |
o.length || (o = this._createPanel(f), | |
s ? i > 0 ? o.insertAfter(this.panels.eq(-1)) : o.appendTo(this.element) : o.insertBefore(this.panels[i])), | |
o.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").hide(), | |
s ? a.appendTo(this.tablist) : a.insertBefore(this.tabs[i]), | |
u.disabled = e.map(u.disabled, function(e) { | |
return e >= i ? ++e : e | |
}), | |
this.refresh(), | |
this.tabs.length === 1 && u.active === !1 && this.option("active", 0), | |
this._trigger("add", null, this._ui(this.anchors[i], this.panels[i])), | |
this | |
}, | |
remove: function(t) { | |
t = this._getIndex(t); | |
var n = this.options | |
, r = this.tabs.eq(t).remove() | |
, i = this._getPanelForTab(r).remove(); | |
return r.hasClass("ui-tabs-active") && this.anchors.length > 2 && this._activate(t + (t + 1 < this.anchors.length ? 1 : -1)), | |
n.disabled = e.map(e.grep(n.disabled, function(e) { | |
return e !== t | |
}), function(e) { | |
return e >= t ? --e : e | |
}), | |
this.refresh(), | |
this._trigger("remove", null, this._ui(r.find("a")[0], i[0])), | |
this | |
} | |
}), | |
e.widget("ui.tabs", e.ui.tabs, { | |
length: function() { | |
return this.anchors.length | |
} | |
}), | |
e.widget("ui.tabs", e.ui.tabs, { | |
options: { | |
idPrefix: "ui-tabs-" | |
}, | |
_tabId: function(t) { | |
var n = t.is("li") ? t.find("a[href]") : t; | |
return n = n[0], | |
e(n).closest("li").attr("aria-controls") || n.title && n.title.replace(/\s/g, "_").replace(/[^\w\u00c0-\uFFFF\-]/g, "") || this.options.idPrefix + i() | |
} | |
}), | |
e.widget("ui.tabs", e.ui.tabs, { | |
options: { | |
panelTemplate: "<div></div>" | |
}, | |
_createPanel: function(t) { | |
return e(this.options.panelTemplate).attr("id", t).addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").data("ui-tabs-destroy", !0) | |
} | |
}), | |
e.widget("ui.tabs", e.ui.tabs, { | |
_create: function() { | |
var e = this.options; | |
e.active === null && e.selected !== t && (e.active = e.selected === -1 ? !1 : e.selected), | |
this._super(), | |
e.selected = e.active, | |
e.selected === !1 && (e.selected = -1) | |
}, | |
_setOption: function(e, t) { | |
if (e !== "selected") | |
return this._super(e, t); | |
var n = this.options; | |
this._super("active", t === -1 ? !1 : t), | |
n.selected = n.active, | |
n.selected === !1 && (n.selected = -1) | |
}, | |
_eventHandler: function() { | |
this._superApply(arguments), | |
this.options.selected = this.options.active, | |
this.options.selected === !1 && (this.options.selected = -1) | |
} | |
}), | |
e.widget("ui.tabs", e.ui.tabs, { | |
options: { | |
show: null, | |
select: null | |
}, | |
_create: function() { | |
this._super(), | |
this.options.active !== !1 && this._trigger("show", null, this._ui(this.active.find(".ui-tabs-anchor")[0], this._getPanelForTab(this.active)[0])) | |
}, | |
_trigger: function(e, t, n) { | |
var r = this._superApply(arguments); | |
return r ? (e === "beforeActivate" && n.newTab.length ? r = this._super("select", t, { | |
tab: n.newTab.find(".ui-tabs-anchor")[0], | |
panel: n.newPanel[0], | |
index: n.newTab.closest("li").index() | |
}) : e === "activate" && n.newTab.length && (r = this._super("show", t, { | |
tab: n.newTab.find(".ui-tabs-anchor")[0], | |
panel: n.newPanel[0], | |
index: n.newTab.closest("li").index() | |
})), | |
r) : !1 | |
} | |
}), | |
e.widget("ui.tabs", e.ui.tabs, { | |
select: function(e) { | |
e = this._getIndex(e); | |
if (e === -1) { | |
if (!this.options.collapsible || this.options.selected === -1) | |
return; | |
e = this.options.selected | |
} | |
this.anchors.eq(e).trigger(this.options.event + this.eventNamespace) | |
} | |
}), | |
function() { | |
var t = 0; | |
e.widget("ui.tabs", e.ui.tabs, { | |
options: { | |
cookie: null | |
}, | |
_create: function() { | |
var e = this.options, t; | |
e.active == null && e.cookie && (t = parseInt(this._cookie(), 10), | |
t === -1 && (t = !1), | |
e.active = t), | |
this._super() | |
}, | |
_cookie: function(n) { | |
var r = [this.cookie || (this.cookie = this.options.cookie.name || "ui-tabs-" + ++t)]; | |
return arguments.length && (r.push(n === !1 ? -1 : n), | |
r.push(this.options.cookie)), | |
e.cookie.apply(null, r) | |
}, | |
_refresh: function() { | |
this._super(), | |
this.options.cookie && this._cookie(this.options.active, this.options.cookie) | |
}, | |
_eventHandler: function() { | |
this._superApply(arguments), | |
this.options.cookie && this._cookie(this.options.active, this.options.cookie) | |
}, | |
_destroy: function() { | |
this._super(), | |
this.options.cookie && this._cookie(null, this.options.cookie) | |
} | |
}) | |
}(), | |
e.widget("ui.tabs", e.ui.tabs, { | |
_trigger: function(t, n, r) { | |
var i = e.extend({}, r); | |
return t === "load" && (i.panel = i.panel[0], | |
i.tab = i.tab.find(".ui-tabs-anchor")[0]), | |
this._super(t, n, i) | |
} | |
}), | |
e.widget("ui.tabs", e.ui.tabs, { | |
options: { | |
fx: null | |
}, | |
_getFx: function() { | |
var t, n, r = this.options.fx; | |
return r && (e.isArray(r) ? (t = r[0], | |
n = r[1]) : t = n = r), | |
r ? { | |
show: n, | |
hide: t | |
} : null | |
}, | |
_toggle: function(e, t) { | |
function o() { | |
n.running = !1, | |
n._trigger("activate", e, t) | |
} | |
function u() { | |
t.newTab.closest("li").addClass("ui-tabs-active ui-state-active"), | |
r.length && s.show ? r.animate(s.show, s.show.duration, function() { | |
o() | |
}) : (r.show(), | |
o()) | |
} | |
var n = this | |
, r = t.newPanel | |
, i = t.oldPanel | |
, s = this._getFx(); | |
if (!s) | |
return this._super(e, t); | |
n.running = !0, | |
i.length && s.hide ? i.animate(s.hide, s.hide.duration, function() { | |
t.oldTab.closest("li").removeClass("ui-tabs-active ui-state-active"), | |
u() | |
}) : (t.oldTab.closest("li").removeClass("ui-tabs-active ui-state-active"), | |
i.hide(), | |
u()) | |
} | |
})) | |
}(jQuery), | |
function(e) { | |
function n(t, n) { | |
var r = (t.attr("aria-describedby") || "").split(/\s+/); | |
r.push(n), | |
t.data("ui-tooltip-id", n).attr("aria-describedby", e.trim(r.join(" "))) | |
} | |
function r(t) { | |
var n = t.data("ui-tooltip-id") | |
, r = (t.attr("aria-describedby") || "").split(/\s+/) | |
, i = e.inArray(n, r); | |
i !== -1 && r.splice(i, 1), | |
t.removeData("ui-tooltip-id"), | |
r = e.trim(r.join(" ")), | |
r ? t.attr("aria-describedby", r) : t.removeAttr("aria-describedby") | |
} | |
var t = 0; | |
e.widget("ui.tooltip", { | |
version: "1.9.1", | |
options: { | |
content: function() { | |
return e(this).attr("title") | |
}, | |
hide: !0, | |
items: "[title]:not([disabled])", | |
position: { | |
my: "left top+15", | |
at: "left bottom", | |
collision: "flipfit flipfit" | |
}, | |
show: !0, | |
tooltipClass: null, | |
track: !1, | |
close: null, | |
open: null | |
}, | |
_create: function() { | |
this._on({ | |
mouseover: "open", | |
focusin: "open" | |
}), | |
this.tooltips = {}, | |
this.parents = {}, | |
this.options.disabled && this._disable() | |
}, | |
_setOption: function(t, n) { | |
var r = this; | |
if (t === "disabled") { | |
this[n ? "_disable" : "_enable"](), | |
this.options[t] = n; | |
return | |
} | |
this._super(t, n), | |
t === "content" && e.each(this.tooltips, function(e, t) { | |
r._updateContent(t) | |
}) | |
}, | |
_disable: function() { | |
var t = this; | |
e.each(this.tooltips, function(n, r) { | |
var i = e.Event("blur"); | |
i.target = i.currentTarget = r[0], | |
t.close(i, !0) | |
}), | |
this.element.find(this.options.items).andSelf().each(function() { | |
var t = e(this); | |
t.is("[title]") && t.data("ui-tooltip-title", t.attr("title")).attr("title", "") | |
}) | |
}, | |
_enable: function() { | |
this.element.find(this.options.items).andSelf().each(function() { | |
var t = e(this); | |
t.data("ui-tooltip-title") && t.attr("title", t.data("ui-tooltip-title")) | |
}) | |
}, | |
open: function(t) { | |
var n = this | |
, r = e(t ? t.target : this.element).closest(this.options.items); | |
if (!r.length) | |
return; | |
if (this.options.track && r.data("ui-tooltip-id")) { | |
this._find(r).position(e.extend({ | |
of: r | |
}, this.options.position)), | |
this._off(this.document, "mousemove"); | |
return | |
} | |
r.attr("title") && r.data("ui-tooltip-title", r.attr("title")), | |
r.data("tooltip-open", !0), | |
t && t.type === "mouseover" && r.parents().each(function() { | |
var t; | |
e(this).data("tooltip-open") && (t = e.Event("blur"), | |
t.target = t.currentTarget = this, | |
n.close(t, !0)), | |
this.title && (e(this).uniqueId(), | |
n.parents[this.id] = { | |
element: this, | |
title: this.title | |
}, | |
this.title = "") | |
}), | |
this._updateContent(r, t) | |
}, | |
_updateContent: function(e, t) { | |
var n, r = this.options.content, i = this; | |
if (typeof r == "string") | |
return this._open(t, e, r); | |
n = r.call(e[0], function(n) { | |
if (!e.data("tooltip-open")) | |
return; | |
i._delay(function() { | |
this._open(t, e, n) | |
}) | |
}), | |
n && this._open(t, e, n) | |
}, | |
_open: function(t, r, i) { | |
function f(e) { | |
a.of = e; | |
if (s.is(":hidden")) | |
return; | |
s.position(a) | |
} | |
var s, o, u, a = e.extend({}, this.options.position); | |
if (!i) | |
return; | |
s = this._find(r); | |
if (s.length) { | |
s.find(".ui-tooltip-content").html(i); | |
return | |
} | |
r.is("[title]") && (t && t.type === "mouseover" ? r.attr("title", "") : r.removeAttr("title")), | |
s = this._tooltip(r), | |
n(r, s.attr("id")), | |
s.find(".ui-tooltip-content").html(i), | |
this.options.track && t && /^mouse/.test(t.originalEvent.type) ? (this._on(this.document, { | |
mousemove: f | |
}), | |
f(t)) : s.position(e.extend({ | |
of: r | |
}, this.options.position)), | |
s.hide(), | |
this._show(s, this.options.show), | |
this.options.show && this.options.show.delay && (u = setInterval(function() { | |
s.is(":visible") && (f(a.of), | |
clearInterval(u)) | |
}, e.fx.interval)), | |
this._trigger("open", t, { | |
tooltip: s | |
}), | |
o = { | |
keyup: function(t) { | |
if (t.keyCode === e.ui.keyCode.ESCAPE) { | |
var n = e.Event(t); | |
n.currentTarget = r[0], | |
this.close(n, !0) | |
} | |
}, | |
remove: function() { | |
this._removeTooltip(s) | |
} | |
}; | |
if (!t || t.type === "mouseover") | |
o.mouseleave = "close"; | |
if (!t || t.type === "focusin") | |
o.focusout = "close"; | |
this._on(r, o) | |
}, | |
close: function(t) { | |
var n = this | |
, i = e(t ? t.currentTarget : this.element) | |
, s = this._find(i); | |
if (this.closing) | |
return; | |
i.data("ui-tooltip-title") && i.attr("title", i.data("ui-tooltip-title")), | |
r(i), | |
s.stop(!0), | |
this._hide(s, this.options.hide, function() { | |
n._removeTooltip(e(this)) | |
}), | |
i.removeData("tooltip-open"), | |
this._off(i, "mouseleave focusout keyup"), | |
i[0] !== this.element[0] && this._off(i, "remove"), | |
this._off(this.document, "mousemove"), | |
t && t.type === "mouseleave" && e.each(this.parents, function(e, t) { | |
t.element.title = t.title, | |
delete n.parents[e] | |
}), | |
this.closing = !0, | |
this._trigger("close", t, { | |
tooltip: s | |
}), | |
this.closing = !1 | |
}, | |
_tooltip: function(n) { | |
var r = "ui-tooltip-" + t++ | |
, i = e("<div>").attr({ | |
id: r, | |
role: "tooltip" | |
}).addClass("ui-tooltip ui-widget ui-corner-all ui-widget-content " + (this.options.tooltipClass || "")); | |
return e("<div>").addClass("ui-tooltip-content").appendTo(i), | |
i.appendTo(this.document[0].body), | |
e.fn.bgiframe && i.bgiframe(), | |
this.tooltips[r] = n, | |
i | |
}, | |
_find: function(t) { | |
var n = t.data("ui-tooltip-id"); | |
return n ? e("#" + n) : e() | |
}, | |
_removeTooltip: function(e) { | |
e.remove(), | |
delete this.tooltips[e.attr("id")] | |
}, | |
_destroy: function() { | |
var t = this; | |
e.each(this.tooltips, function(n, r) { | |
var i = e.Event("blur"); | |
i.target = i.currentTarget = r[0], | |
t.close(i, !0), | |
e("#" + n).remove(), | |
r.data("ui-tooltip-title") && (r.attr("title", r.data("ui-tooltip-title")), | |
r.removeData("ui-tooltip-title")) | |
}) | |
} | |
}) | |
}(jQuery); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/*! jQuery v1.8.2 jquery.com | jquery.org/license */ | |
(function(a, b) { | |
function G(a) { | |
var b = F[a] = {}; | |
return p.each(a.split(s), function(a, c) { | |
b[c] = !0 | |
}), | |
b | |
} | |
function J(a, c, d) { | |
if (d === b && a.nodeType === 1) { | |
var e = "data-" + c.replace(I, "-$1").toLowerCase(); | |
d = a.getAttribute(e); | |
if (typeof d == "string") { | |
try { | |
d = d === "true" ? !0 : d === "false" ? !1 : d === "null" ? null : +d + "" === d ? +d : H.test(d) ? p.parseJSON(d) : d | |
} catch (f) {} | |
p.data(a, c, d) | |
} else | |
d = b | |
} | |
return d | |
} | |
function K(a) { | |
var b; | |
for (b in a) { | |
if (b === "data" && p.isEmptyObject(a[b])) | |
continue; | |
if (b !== "toJSON") | |
return !1 | |
} | |
return !0 | |
} | |
function ba() { | |
return !1 | |
} | |
function bb() { | |
return !0 | |
} | |
function bh(a) { | |
return !a || !a.parentNode || a.parentNode.nodeType === 11 | |
} | |
function bi(a, b) { | |
do | |
a = a[b]; | |
while (a && a.nodeType !== 1); | |
return a | |
} | |
function bj(a, b, c) { | |
b = b || 0; | |
if (p.isFunction(b)) | |
return p.grep(a, function(a, d) { | |
var e = !!b.call(a, d, a); | |
return e === c | |
}); | |
if (b.nodeType) | |
return p.grep(a, function(a, d) { | |
return a === b === c | |
}); | |
if (typeof b == "string") { | |
var d = p.grep(a, function(a) { | |
return a.nodeType === 1 | |
}); | |
if (be.test(b)) | |
return p.filter(b, d, !c); | |
b = p.filter(b, d) | |
} | |
return p.grep(a, function(a, d) { | |
return p.inArray(a, b) >= 0 === c | |
}) | |
} | |
function bk(a) { | |
var b = bl.split("|") | |
, c = a.createDocumentFragment(); | |
if (c.createElement) | |
while (b.length) | |
c.createElement(b.pop()); | |
return c | |
} | |
function bC(a, b) { | |
return a.getElementsByTagName(b)[0] || a.appendChild(a.ownerDocument.createElement(b)) | |
} | |
function bD(a, b) { | |
if (b.nodeType !== 1 || !p.hasData(a)) | |
return; | |
var c, d, e, f = p._data(a), g = p._data(b, f), h = f.events; | |
if (h) { | |
delete g.handle, | |
g.events = {}; | |
for (c in h) | |
for (d = 0, | |
e = h[c].length; d < e; d++) | |
p.event.add(b, c, h[c][d]) | |
} | |
g.data && (g.data = p.extend({}, g.data)) | |
} | |
function bE(a, b) { | |
var c; | |
if (b.nodeType !== 1) | |
return; | |
b.clearAttributes && b.clearAttributes(), | |
b.mergeAttributes && b.mergeAttributes(a), | |
c = b.nodeName.toLowerCase(), | |
c === "object" ? (b.parentNode && (b.outerHTML = a.outerHTML), | |
p.support.html5Clone && a.innerHTML && !p.trim(b.innerHTML) && (b.innerHTML = a.innerHTML)) : c === "input" && bv.test(a.type) ? (b.defaultChecked = b.checked = a.checked, | |
b.value !== a.value && (b.value = a.value)) : c === "option" ? b.selected = a.defaultSelected : c === "input" || c === "textarea" ? b.defaultValue = a.defaultValue : c === "script" && b.text !== a.text && (b.text = a.text), | |
b.removeAttribute(p.expando) | |
} | |
function bF(a) { | |
return typeof a.getElementsByTagName != "undefined" ? a.getElementsByTagName("*") : typeof a.querySelectorAll != "undefined" ? a.querySelectorAll("*") : [] | |
} | |
function bG(a) { | |
bv.test(a.type) && (a.defaultChecked = a.checked) | |
} | |
function bY(a, b) { | |
if (b in a) | |
return b; | |
var c = b.charAt(0).toUpperCase() + b.slice(1) | |
, d = b | |
, e = bW.length; | |
while (e--) { | |
b = bW[e] + c; | |
if (b in a) | |
return b | |
} | |
return d | |
} | |
function bZ(a, b) { | |
return a = b || a, | |
p.css(a, "display") === "none" || !p.contains(a.ownerDocument, a) | |
} | |
function b$(a, b) { | |
var c, d, e = [], f = 0, g = a.length; | |
for (; f < g; f++) { | |
c = a[f]; | |
if (!c.style) | |
continue; | |
e[f] = p._data(c, "olddisplay"), | |
b ? (!e[f] && c.style.display === "none" && (c.style.display = ""), | |
c.style.display === "" && bZ(c) && (e[f] = p._data(c, "olddisplay", cc(c.nodeName)))) : (d = bH(c, "display"), | |
!e[f] && d !== "none" && p._data(c, "olddisplay", d)) | |
} | |
for (f = 0; f < g; f++) { | |
c = a[f]; | |
if (!c.style) | |
continue; | |
if (!b || c.style.display === "none" || c.style.display === "") | |
c.style.display = b ? e[f] || "" : "none" | |
} | |
return a | |
} | |
function b_(a, b, c) { | |
var d = bP.exec(b); | |
return d ? Math.max(0, d[1] - (c || 0)) + (d[2] || "px") : b | |
} | |
function ca(a, b, c, d) { | |
var e = c === (d ? "border" : "content") ? 4 : b === "width" ? 1 : 0 | |
, f = 0; | |
for (; e < 4; e += 2) | |
c === "margin" && (f += p.css(a, c + bV[e], !0)), | |
d ? (c === "content" && (f -= parseFloat(bH(a, "padding" + bV[e])) || 0), | |
c !== "margin" && (f -= parseFloat(bH(a, "border" + bV[e] + "Width")) || 0)) : (f += parseFloat(bH(a, "padding" + bV[e])) || 0, | |
c !== "padding" && (f += parseFloat(bH(a, "border" + bV[e] + "Width")) || 0)); | |
return f | |
} | |
function cb(a, b, c) { | |
var d = b === "width" ? a.offsetWidth : a.offsetHeight | |
, e = !0 | |
, f = p.support.boxSizing && p.css(a, "boxSizing") === "border-box"; | |
if (d <= 0 || d == null) { | |
d = bH(a, b); | |
if (d < 0 || d == null) | |
d = a.style[b]; | |
if (bQ.test(d)) | |
return d; | |
e = f && (p.support.boxSizingReliable || d === a.style[b]), | |
d = parseFloat(d) || 0 | |
} | |
return d + ca(a, b, c || (f ? "border" : "content"), e) + "px" | |
} | |
function cc(a) { | |
if (bS[a]) | |
return bS[a]; | |
var b = p("<" + a + ">").appendTo(e.body) | |
, c = b.css("display"); | |
b.remove(); | |
if (c === "none" || c === "") { | |
bI = e.body.appendChild(bI || p.extend(e.createElement("iframe"), { | |
frameBorder: 0, | |
width: 0, | |
height: 0 | |
})); | |
if (!bJ || !bI.createElement) | |
bJ = (bI.contentWindow || bI.contentDocument).document, | |
bJ.write("<!doctype html><html><body>"), | |
bJ.close(); | |
b = bJ.body.appendChild(bJ.createElement(a)), | |
c = bH(b, "display"), | |
e.body.removeChild(bI) | |
} | |
return bS[a] = c, | |
c | |
} | |
function ci(a, b, c, d) { | |
var e; | |
if (p.isArray(b)) | |
p.each(b, function(b, e) { | |
c || ce.test(a) ? d(a, e) : ci(a + "[" + (typeof e == "object" ? b : "") + "]", e, c, d) | |
}); | |
else if (!c && p.type(b) === "object") | |
for (e in b) | |
ci(a + "[" + e + "]", b[e], c, d); | |
else | |
d(a, b) | |
} | |
function cz(a) { | |
return function(b, c) { | |
typeof b != "string" && (c = b, | |
b = "*"); | |
var d, e, f, g = b.toLowerCase().split(s), h = 0, i = g.length; | |
if (p.isFunction(c)) | |
for (; h < i; h++) | |
d = g[h], | |
f = /^\+/.test(d), | |
f && (d = d.substr(1) || "*"), | |
e = a[d] = a[d] || [], | |
e[f ? "unshift" : "push"](c) | |
} | |
} | |
function cA(a, c, d, e, f, g) { | |
f = f || c.dataTypes[0], | |
g = g || {}, | |
g[f] = !0; | |
var h, i = a[f], j = 0, k = i ? i.length : 0, l = a === cv; | |
for (; j < k && (l || !h); j++) | |
h = i[j](c, d, e), | |
typeof h == "string" && (!l || g[h] ? h = b : (c.dataTypes.unshift(h), | |
h = cA(a, c, d, e, h, g))); | |
return (l || !h) && !g["*"] && (h = cA(a, c, d, e, "*", g)), | |
h | |
} | |
function cB(a, c) { | |
var d, e, f = p.ajaxSettings.flatOptions || {}; | |
for (d in c) | |
c[d] !== b && ((f[d] ? a : e || (e = {}))[d] = c[d]); | |
e && p.extend(!0, a, e) | |
} | |
function cC(a, c, d) { | |
var e, f, g, h, i = a.contents, j = a.dataTypes, k = a.responseFields; | |
for (f in k) | |
f in d && (c[k[f]] = d[f]); | |
while (j[0] === "*") | |
j.shift(), | |
e === b && (e = a.mimeType || c.getResponseHeader("content-type")); | |
if (e) | |
for (f in i) | |
if (i[f] && i[f].test(e)) { | |
j.unshift(f); | |
break | |
} | |
if (j[0]in d) | |
g = j[0]; | |
else { | |
for (f in d) { | |
if (!j[0] || a.converters[f + " " + j[0]]) { | |
g = f; | |
break | |
} | |
h || (h = f) | |
} | |
g = g || h | |
} | |
if (g) | |
return g !== j[0] && j.unshift(g), | |
d[g] | |
} | |
function cD(a, b) { | |
var c, d, e, f, g = a.dataTypes.slice(), h = g[0], i = {}, j = 0; | |
a.dataFilter && (b = a.dataFilter(b, a.dataType)); | |
if (g[1]) | |
for (c in a.converters) | |
i[c.toLowerCase()] = a.converters[c]; | |
for (; e = g[++j]; ) | |
if (e !== "*") { | |
if (h !== "*" && h !== e) { | |
c = i[h + " " + e] || i["* " + e]; | |
if (!c) | |
for (d in i) { | |
f = d.split(" "); | |
if (f[1] === e) { | |
c = i[h + " " + f[0]] || i["* " + f[0]]; | |
if (c) { | |
c === !0 ? c = i[d] : i[d] !== !0 && (e = f[0], | |
g.splice(j--, 0, e)); | |
break | |
} | |
} | |
} | |
if (c !== !0) | |
if (c && a["throws"]) | |
b = c(b); | |
else | |
try { | |
b = c(b) | |
} catch (k) { | |
return { | |
state: "parsererror", | |
error: c ? k : "No conversion from " + h + " to " + e | |
} | |
} | |
} | |
h = e | |
} | |
return { | |
state: "success", | |
data: b | |
} | |
} | |
function cL() { | |
try { | |
return new a.XMLHttpRequest | |
} catch (b) {} | |
} | |
function cM() { | |
try { | |
return new a.ActiveXObject("Microsoft.XMLHTTP") | |
} catch (b) {} | |
} | |
function cU() { | |
return setTimeout(function() { | |
cN = b | |
}, 0), | |
cN = p.now() | |
} | |
function cV(a, b) { | |
p.each(b, function(b, c) { | |
var d = (cT[b] || []).concat(cT["*"]) | |
, e = 0 | |
, f = d.length; | |
for (; e < f; e++) | |
if (d[e].call(a, b, c)) | |
return | |
}) | |
} | |
function cW(a, b, c) { | |
var d, e = 0, f = 0, g = cS.length, h = p.Deferred().always(function() { | |
delete i.elem | |
}), i = function() { | |
var b = cN || cU() | |
, c = Math.max(0, j.startTime + j.duration - b) | |
, d = 1 - (c / j.duration || 0) | |
, e = 0 | |
, f = j.tweens.length; | |
for (; e < f; e++) | |
j.tweens[e].run(d); | |
return h.notifyWith(a, [j, d, c]), | |
d < 1 && f ? c : (h.resolveWith(a, [j]), | |
!1) | |
}, j = h.promise({ | |
elem: a, | |
props: p.extend({}, b), | |
opts: p.extend(!0, { | |
specialEasing: {} | |
}, c), | |
originalProperties: b, | |
originalOptions: c, | |
startTime: cN || cU(), | |
duration: c.duration, | |
tweens: [], | |
createTween: function(b, c, d) { | |
var e = p.Tween(a, j.opts, b, c, j.opts.specialEasing[b] || j.opts.easing); | |
return j.tweens.push(e), | |
e | |
}, | |
stop: function(b) { | |
var c = 0 | |
, d = b ? j.tweens.length : 0; | |
for (; c < d; c++) | |
j.tweens[c].run(1); | |
return b ? h.resolveWith(a, [j, b]) : h.rejectWith(a, [j, b]), | |
this | |
} | |
}), k = j.props; | |
cX(k, j.opts.specialEasing); | |
for (; e < g; e++) { | |
d = cS[e].call(j, a, k, j.opts); | |
if (d) | |
return d | |
} | |
return cV(j, k), | |
p.isFunction(j.opts.start) && j.opts.start.call(a, j), | |
p.fx.timer(p.extend(i, { | |
anim: j, | |
queue: j.opts.queue, | |
elem: a | |
})), | |
j.progress(j.opts.progress).done(j.opts.done, j.opts.complete).fail(j.opts.fail).always(j.opts.always) | |
} | |
function cX(a, b) { | |
var c, d, e, f, g; | |
for (c in a) { | |
d = p.camelCase(c), | |
e = b[d], | |
f = a[c], | |
p.isArray(f) && (e = f[1], | |
f = a[c] = f[0]), | |
c !== d && (a[d] = f, | |
delete a[c]), | |
g = p.cssHooks[d]; | |
if (g && "expand"in g) { | |
f = g.expand(f), | |
delete a[d]; | |
for (c in f) | |
c in a || (a[c] = f[c], | |
b[c] = e) | |
} else | |
b[d] = e | |
} | |
} | |
function cY(a, b, c) { | |
var d, e, f, g, h, i, j, k, l = this, m = a.style, n = {}, o = [], q = a.nodeType && bZ(a); | |
c.queue || (j = p._queueHooks(a, "fx"), | |
j.unqueued == null && (j.unqueued = 0, | |
k = j.empty.fire, | |
j.empty.fire = function() { | |
j.unqueued || k() | |
} | |
), | |
j.unqueued++, | |
l.always(function() { | |
l.always(function() { | |
j.unqueued--, | |
p.queue(a, "fx").length || j.empty.fire() | |
}) | |
})), | |
a.nodeType === 1 && ("height"in b || "width"in b) && (c.overflow = [m.overflow, m.overflowX, m.overflowY], | |
p.css(a, "display") === "inline" && p.css(a, "float") === "none" && (!p.support.inlineBlockNeedsLayout || cc(a.nodeName) === "inline" ? m.display = "inline-block" : m.zoom = 1)), | |
c.overflow && (m.overflow = "hidden", | |
p.support.shrinkWrapBlocks || l.done(function() { | |
m.overflow = c.overflow[0], | |
m.overflowX = c.overflow[1], | |
m.overflowY = c.overflow[2] | |
})); | |
for (d in b) { | |
f = b[d]; | |
if (cP.exec(f)) { | |
delete b[d]; | |
if (f === (q ? "hide" : "show")) | |
continue; | |
o.push(d) | |
} | |
} | |
g = o.length; | |
if (g) { | |
h = p._data(a, "fxshow") || p._data(a, "fxshow", {}), | |
q ? p(a).show() : l.done(function() { | |
p(a).hide() | |
}), | |
l.done(function() { | |
var b; | |
p.removeData(a, "fxshow", !0); | |
for (b in n) | |
p.style(a, b, n[b]) | |
}); | |
for (d = 0; d < g; d++) | |
e = o[d], | |
i = l.createTween(e, q ? h[e] : 0), | |
n[e] = h[e] || p.style(a, e), | |
e in h || (h[e] = i.start, | |
q && (i.end = i.start, | |
i.start = e === "width" || e === "height" ? 1 : 0)) | |
} | |
} | |
function cZ(a, b, c, d, e) { | |
return new cZ.prototype.init(a,b,c,d,e) | |
} | |
function c$(a, b) { | |
var c, d = { | |
height: a | |
}, e = 0; | |
b = b ? 1 : 0; | |
for (; e < 4; e += 2 - b) | |
c = bV[e], | |
d["margin" + c] = d["padding" + c] = a; | |
return b && (d.opacity = d.width = a), | |
d | |
} | |
function da(a) { | |
return p.isWindow(a) ? a : a.nodeType === 9 ? a.defaultView || a.parentWindow : !1 | |
} | |
var c, d, e = a.document, f = a.location, g = a.navigator, h = a.jQuery, i = a.$, j = Array.prototype.push, k = Array.prototype.slice, l = Array.prototype.indexOf, m = Object.prototype.toString, n = Object.prototype.hasOwnProperty, o = String.prototype.trim, p = function(a, b) { | |
return new p.fn.init(a,b,c) | |
}, q = /[\-+]?(?:\d*\.|)\d+(?:[eE][\-+]?\d+|)/.source, r = /\S/, s = /\s+/, t = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, u = /^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/, v = /^<(\w+)\s*\/?>(?:<\/\1>|)$/, w = /^[\],:{}\s]*$/, x = /(?:^|:|,)(?:\s*\[)+/g, y = /\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g, z = /"[^"\\\r\n]*"|true|false|null|-?(?:\d\d*\.|)\d+(?:[eE][\-+]?\d+|)/g, A = /^-ms-/, B = /-([\da-z])/gi, C = function(a, b) { | |
return (b + "").toUpperCase() | |
}, D = function() { | |
e.addEventListener ? (e.removeEventListener("DOMContentLoaded", D, !1), | |
p.ready()) : e.readyState === "complete" && (e.detachEvent("onreadystatechange", D), | |
p.ready()) | |
}, E = {}; | |
p.fn = p.prototype = { | |
constructor: p, | |
init: function(a, c, d) { | |
var f, g, h, i; | |
if (!a) | |
return this; | |
if (a.nodeType) | |
return this.context = this[0] = a, | |
this.length = 1, | |
this; | |
if (typeof a == "string") { | |
a.charAt(0) === "<" && a.charAt(a.length - 1) === ">" && a.length >= 3 ? f = [null, a, null] : f = u.exec(a); | |
if (f && (f[1] || !c)) { | |
if (f[1]) | |
return c = c instanceof p ? c[0] : c, | |
i = c && c.nodeType ? c.ownerDocument || c : e, | |
a = p.parseHTML(f[1], i, !0), | |
v.test(f[1]) && p.isPlainObject(c) && this.attr.call(a, c, !0), | |
p.merge(this, a); | |
g = e.getElementById(f[2]); | |
if (g && g.parentNode) { | |
if (g.id !== f[2]) | |
return d.find(a); | |
this.length = 1, | |
this[0] = g | |
} | |
return this.context = e, | |
this.selector = a, | |
this | |
} | |
return !c || c.jquery ? (c || d).find(a) : this.constructor(c).find(a) | |
} | |
return p.isFunction(a) ? d.ready(a) : (a.selector !== b && (this.selector = a.selector, | |
this.context = a.context), | |
p.makeArray(a, this)) | |
}, | |
selector: "", | |
jquery: "1.8.2", | |
length: 0, | |
size: function() { | |
return this.length | |
}, | |
toArray: function() { | |
return k.call(this) | |
}, | |
get: function(a) { | |
return a == null ? this.toArray() : a < 0 ? this[this.length + a] : this[a] | |
}, | |
pushStack: function(a, b, c) { | |
var d = p.merge(this.constructor(), a); | |
return d.prevObject = this, | |
d.context = this.context, | |
b === "find" ? d.selector = this.selector + (this.selector ? " " : "") + c : b && (d.selector = this.selector + "." + b + "(" + c + ")"), | |
d | |
}, | |
each: function(a, b) { | |
return p.each(this, a, b) | |
}, | |
ready: function(a) { | |
return p.ready.promise().done(a), | |
this | |
}, | |
eq: function(a) { | |
return a = +a, | |
a === -1 ? this.slice(a) : this.slice(a, a + 1) | |
}, | |
first: function() { | |
return this.eq(0) | |
}, | |
last: function() { | |
return this.eq(-1) | |
}, | |
slice: function() { | |
return this.pushStack(k.apply(this, arguments), "slice", k.call(arguments).join(",")) | |
}, | |
map: function(a) { | |
return this.pushStack(p.map(this, function(b, c) { | |
return a.call(b, c, b) | |
})) | |
}, | |
end: function() { | |
return this.prevObject || this.constructor(null) | |
}, | |
push: j, | |
sort: [].sort, | |
splice: [].splice | |
}, | |
p.fn.init.prototype = p.fn, | |
p.extend = p.fn.extend = function() { | |
var a, c, d, e, f, g, h = arguments[0] || {}, i = 1, j = arguments.length, k = !1; | |
typeof h == "boolean" && (k = h, | |
h = arguments[1] || {}, | |
i = 2), | |
typeof h != "object" && !p.isFunction(h) && (h = {}), | |
j === i && (h = this, | |
--i); | |
for (; i < j; i++) | |
if ((a = arguments[i]) != null) | |
for (c in a) { | |
d = h[c], | |
e = a[c]; | |
if (h === e) | |
continue; | |
k && e && (p.isPlainObject(e) || (f = p.isArray(e))) ? (f ? (f = !1, | |
g = d && p.isArray(d) ? d : []) : g = d && p.isPlainObject(d) ? d : {}, | |
h[c] = p.extend(k, g, e)) : e !== b && (h[c] = e) | |
} | |
return h | |
} | |
, | |
p.extend({ | |
noConflict: function(b) { | |
return a.$ === p && (a.$ = i), | |
b && a.jQuery === p && (a.jQuery = h), | |
p | |
}, | |
isReady: !1, | |
readyWait: 1, | |
holdReady: function(a) { | |
a ? p.readyWait++ : p.ready(!0) | |
}, | |
ready: function(a) { | |
if (a === !0 ? --p.readyWait : p.isReady) | |
return; | |
if (!e.body) | |
return setTimeout(p.ready, 1); | |
p.isReady = !0; | |
if (a !== !0 && --p.readyWait > 0) | |
return; | |
d.resolveWith(e, [p]), | |
p.fn.trigger && p(e).trigger("ready").off("ready") | |
}, | |
isFunction: function(a) { | |
return p.type(a) === "function" | |
}, | |
isArray: Array.isArray || function(a) { | |
return p.type(a) === "array" | |
} | |
, | |
isWindow: function(a) { | |
return a != null && a == a.window | |
}, | |
isNumeric: function(a) { | |
return !isNaN(parseFloat(a)) && isFinite(a) | |
}, | |
type: function(a) { | |
return a == null ? String(a) : E[m.call(a)] || "object" | |
}, | |
isPlainObject: function(a) { | |
if (!a || p.type(a) !== "object" || a.nodeType || p.isWindow(a)) | |
return !1; | |
try { | |
if (a.constructor && !n.call(a, "constructor") && !n.call(a.constructor.prototype, "isPrototypeOf")) | |
return !1 | |
} catch (c) { | |
return !1 | |
} | |
var d; | |
for (d in a) | |
; | |
return d === b || n.call(a, d) | |
}, | |
isEmptyObject: function(a) { | |
var b; | |
for (b in a) | |
return !1; | |
return !0 | |
}, | |
error: function(a) { | |
throw new Error(a) | |
}, | |
parseHTML: function(a, b, c) { | |
var d; | |
return !a || typeof a != "string" ? null : (typeof b == "boolean" && (c = b, | |
b = 0), | |
b = b || e, | |
(d = v.exec(a)) ? [b.createElement(d[1])] : (d = p.buildFragment([a], b, c ? null : []), | |
p.merge([], (d.cacheable ? p.clone(d.fragment) : d.fragment).childNodes))) | |
}, | |
parseJSON: function(b) { | |
if (!b || typeof b != "string") | |
return null; | |
b = p.trim(b); | |
if (a.JSON && a.JSON.parse) | |
return a.JSON.parse(b); | |
if (w.test(b.replace(y, "@").replace(z, "]").replace(x, ""))) | |
return (new Function("return " + b))(); | |
p.error("Invalid JSON: " + b) | |
}, | |
parseXML: function(c) { | |
var d, e; | |
if (!c || typeof c != "string") | |
return null; | |
try { | |
a.DOMParser ? (e = new DOMParser, | |
d = e.parseFromString(c, "text/xml")) : (d = new ActiveXObject("Microsoft.XMLDOM"), | |
d.async = "false", | |
d.loadXML(c)) | |
} catch (f) { | |
d = b | |
} | |
return (!d || !d.documentElement || d.getElementsByTagName("parsererror").length) && p.error("Invalid XML: " + c), | |
d | |
}, | |
noop: function() {}, | |
globalEval: function(b) { | |
b && r.test(b) && (a.execScript || function(b) { | |
a.eval.call(a, b) | |
} | |
)(b) | |
}, | |
camelCase: function(a) { | |
return a.replace(A, "ms-").replace(B, C) | |
}, | |
nodeName: function(a, b) { | |
return a.nodeName && a.nodeName.toLowerCase() === b.toLowerCase() | |
}, | |
each: function(a, c, d) { | |
var e, f = 0, g = a.length, h = g === b || p.isFunction(a); | |
if (d) { | |
if (h) { | |
for (e in a) | |
if (c.apply(a[e], d) === !1) | |
break | |
} else | |
for (; f < g; ) | |
if (c.apply(a[f++], d) === !1) | |
break | |
} else if (h) { | |
for (e in a) | |
if (c.call(a[e], e, a[e]) === !1) | |
break | |
} else | |
for (; f < g; ) | |
if (c.call(a[f], f, a[f++]) === !1) | |
break; | |
return a | |
}, | |
trim: o && !o.call(" ") ? function(a) { | |
return a == null ? "" : o.call(a) | |
} | |
: function(a) { | |
return a == null ? "" : (a + "").replace(t, "") | |
} | |
, | |
makeArray: function(a, b) { | |
var c, d = b || []; | |
return a != null && (c = p.type(a), | |
a.length == null || c === "string" || c === "function" || c === "regexp" || p.isWindow(a) ? j.call(d, a) : p.merge(d, a)), | |
d | |
}, | |
inArray: function(a, b, c) { | |
var d; | |
if (b) { | |
if (l) | |
return l.call(b, a, c); | |
d = b.length, | |
c = c ? c < 0 ? Math.max(0, d + c) : c : 0; | |
for (; c < d; c++) | |
if (c in b && b[c] === a) | |
return c | |
} | |
return -1 | |
}, | |
merge: function(a, c) { | |
var d = c.length | |
, e = a.length | |
, f = 0; | |
if (typeof d == "number") | |
for (; f < d; f++) | |
a[e++] = c[f]; | |
else | |
while (c[f] !== b) | |
a[e++] = c[f++]; | |
return a.length = e, | |
a | |
}, | |
grep: function(a, b, c) { | |
var d, e = [], f = 0, g = a.length; | |
c = !!c; | |
for (; f < g; f++) | |
d = !!b(a[f], f), | |
c !== d && e.push(a[f]); | |
return e | |
}, | |
map: function(a, c, d) { | |
var e, f, g = [], h = 0, i = a.length, j = a instanceof p || i !== b && typeof i == "number" && (i > 0 && a[0] && a[i - 1] || i === 0 || p.isArray(a)); | |
if (j) | |
for (; h < i; h++) | |
e = c(a[h], h, d), | |
e != null && (g[g.length] = e); | |
else | |
for (f in a) | |
e = c(a[f], f, d), | |
e != null && (g[g.length] = e); | |
return g.concat.apply([], g) | |
}, | |
guid: 1, | |
proxy: function(a, c) { | |
var d, e, f; | |
return typeof c == "string" && (d = a[c], | |
c = a, | |
a = d), | |
p.isFunction(a) ? (e = k.call(arguments, 2), | |
f = function() { | |
return a.apply(c, e.concat(k.call(arguments))) | |
} | |
, | |
f.guid = a.guid = a.guid || p.guid++, | |
f) : b | |
}, | |
access: function(a, c, d, e, f, g, h) { | |
var i, j = d == null, k = 0, l = a.length; | |
if (d && typeof d == "object") { | |
for (k in d) | |
p.access(a, c, k, d[k], 1, g, e); | |
f = 1 | |
} else if (e !== b) { | |
i = h === b && p.isFunction(e), | |
j && (i ? (i = c, | |
c = function(a, b, c) { | |
return i.call(p(a), c) | |
} | |
) : (c.call(a, e), | |
c = null)); | |
if (c) | |
for (; k < l; k++) | |
c(a[k], d, i ? e.call(a[k], k, c(a[k], d)) : e, h); | |
f = 1 | |
} | |
return f ? a : j ? c.call(a) : l ? c(a[0], d) : g | |
}, | |
now: function() { | |
return (new Date).getTime() | |
} | |
}), | |
p.ready.promise = function(b) { | |
if (!d) { | |
d = p.Deferred(); | |
if (e.readyState === "complete") | |
setTimeout(p.ready, 1); | |
else if (e.addEventListener) | |
e.addEventListener("DOMContentLoaded", D, !1), | |
a.addEventListener("load", p.ready, !1); | |
else { | |
e.attachEvent("onreadystatechange", D), | |
a.attachEvent("onload", p.ready); | |
var c = !1; | |
try { | |
c = a.frameElement == null && e.documentElement | |
} catch (f) {} | |
c && c.doScroll && function g() { | |
if (!p.isReady) { | |
try { | |
c.doScroll("left") | |
} catch (a) { | |
return setTimeout(g, 50) | |
} | |
p.ready() | |
} | |
}() | |
} | |
} | |
return d.promise(b) | |
} | |
, | |
p.each("Boolean Number String Function Array Date RegExp Object".split(" "), function(a, b) { | |
E["[object " + b + "]"] = b.toLowerCase() | |
}), | |
c = p(e); | |
var F = {}; | |
p.Callbacks = function(a) { | |
a = typeof a == "string" ? F[a] || G(a) : p.extend({}, a); | |
var c, d, e, f, g, h, i = [], j = !a.once && [], k = function(b) { | |
c = a.memory && b, | |
d = !0, | |
h = f || 0, | |
f = 0, | |
g = i.length, | |
e = !0; | |
for (; i && h < g; h++) | |
if (i[h].apply(b[0], b[1]) === !1 && a.stopOnFalse) { | |
c = !1; | |
break | |
} | |
e = !1, | |
i && (j ? j.length && k(j.shift()) : c ? i = [] : l.disable()) | |
}, l = { | |
add: function() { | |
if (i) { | |
var b = i.length; | |
(function d(b) { | |
p.each(b, function(b, c) { | |
var e = p.type(c); | |
e === "function" && (!a.unique || !l.has(c)) ? i.push(c) : c && c.length && e !== "string" && d(c) | |
}) | |
} | |
)(arguments), | |
e ? g = i.length : c && (f = b, | |
k(c)) | |
} | |
return this | |
}, | |
remove: function() { | |
return i && p.each(arguments, function(a, b) { | |
var c; | |
while ((c = p.inArray(b, i, c)) > -1) | |
i.splice(c, 1), | |
e && (c <= g && g--, | |
c <= h && h--) | |
}), | |
this | |
}, | |
has: function(a) { | |
return p.inArray(a, i) > -1 | |
}, | |
empty: function() { | |
return i = [], | |
this | |
}, | |
disable: function() { | |
return i = j = c = b, | |
this | |
}, | |
disabled: function() { | |
return !i | |
}, | |
lock: function() { | |
return j = b, | |
c || l.disable(), | |
this | |
}, | |
locked: function() { | |
return !j | |
}, | |
fireWith: function(a, b) { | |
return b = b || [], | |
b = [a, b.slice ? b.slice() : b], | |
i && (!d || j) && (e ? j.push(b) : k(b)), | |
this | |
}, | |
fire: function() { | |
return l.fireWith(this, arguments), | |
this | |
}, | |
fired: function() { | |
return !!d | |
} | |
}; | |
return l | |
} | |
, | |
p.extend({ | |
Deferred: function(a) { | |
var b = [["resolve", "done", p.Callbacks("once memory"), "resolved"], ["reject", "fail", p.Callbacks("once memory"), "rejected"], ["notify", "progress", p.Callbacks("memory")]] | |
, c = "pending" | |
, d = { | |
state: function() { | |
return c | |
}, | |
always: function() { | |
return e.done(arguments).fail(arguments), | |
this | |
}, | |
then: function() { | |
var a = arguments; | |
return p.Deferred(function(c) { | |
p.each(b, function(b, d) { | |
var f = d[0] | |
, g = a[b]; | |
e[d[1]](p.isFunction(g) ? function() { | |
var a = g.apply(this, arguments); | |
a && p.isFunction(a.promise) ? a.promise().done(c.resolve).fail(c.reject).progress(c.notify) : c[f + "With"](this === e ? c : this, [a]) | |
} | |
: c[f]) | |
}), | |
a = null | |
}).promise() | |
}, | |
promise: function(a) { | |
return a != null ? p.extend(a, d) : d | |
} | |
} | |
, e = {}; | |
return d.pipe = d.then, | |
p.each(b, function(a, f) { | |
var g = f[2] | |
, h = f[3]; | |
d[f[1]] = g.add, | |
h && g.add(function() { | |
c = h | |
}, b[a ^ 1][2].disable, b[2][2].lock), | |
e[f[0]] = g.fire, | |
e[f[0] + "With"] = g.fireWith | |
}), | |
d.promise(e), | |
a && a.call(e, e), | |
e | |
}, | |
when: function(a) { | |
var b = 0, c = k.call(arguments), d = c.length, e = d !== 1 || a && p.isFunction(a.promise) ? d : 0, f = e === 1 ? a : p.Deferred(), g = function(a, b, c) { | |
return function(d) { | |
b[a] = this, | |
c[a] = arguments.length > 1 ? k.call(arguments) : d, | |
c === h ? f.notifyWith(b, c) : --e || f.resolveWith(b, c) | |
} | |
}, h, i, j; | |
if (d > 1) { | |
h = new Array(d), | |
i = new Array(d), | |
j = new Array(d); | |
for (; b < d; b++) | |
c[b] && p.isFunction(c[b].promise) ? c[b].promise().done(g(b, j, c)).fail(f.reject).progress(g(b, i, h)) : --e | |
} | |
return e || f.resolveWith(j, c), | |
f.promise() | |
} | |
}), | |
p.support = function() { | |
var b, c, d, f, g, h, i, j, k, l, m, n = e.createElement("div"); | |
n.setAttribute("className", "t"), | |
n.innerHTML = " <link/><table></table><a href='/a'>a</a><input type='checkbox'/>", | |
c = n.getElementsByTagName("*"), | |
d = n.getElementsByTagName("a")[0], | |
d.style.cssText = "top:1px;float:left;opacity:.5"; | |
if (!c || !c.length) | |
return {}; | |
f = e.createElement("select"), | |
g = f.appendChild(e.createElement("option")), | |
h = n.getElementsByTagName("input")[0], | |
b = { | |
leadingWhitespace: n.firstChild.nodeType === 3, | |
tbody: !n.getElementsByTagName("tbody").length, | |
htmlSerialize: !!n.getElementsByTagName("link").length, | |
style: /top/.test(d.getAttribute("style")), | |
hrefNormalized: d.getAttribute("href") === "/a", | |
opacity: /^0.5/.test(d.style.opacity), | |
cssFloat: !!d.style.cssFloat, | |
checkOn: h.value === "on", | |
optSelected: g.selected, | |
getSetAttribute: n.className !== "t", | |
enctype: !!e.createElement("form").enctype, | |
html5Clone: e.createElement("nav").cloneNode(!0).outerHTML !== "<:nav></:nav>", | |
boxModel: e.compatMode === "CSS1Compat", | |
submitBubbles: !0, | |
changeBubbles: !0, | |
focusinBubbles: !1, | |
deleteExpando: !0, | |
noCloneEvent: !0, | |
inlineBlockNeedsLayout: !1, | |
shrinkWrapBlocks: !1, | |
reliableMarginRight: !0, | |
boxSizingReliable: !0, | |
pixelPosition: !1 | |
}, | |
h.checked = !0, | |
b.noCloneChecked = h.cloneNode(!0).checked, | |
f.disabled = !0, | |
b.optDisabled = !g.disabled; | |
try { | |
delete n.test | |
} catch (o) { | |
b.deleteExpando = !1 | |
} | |
!n.addEventListener && n.attachEvent && n.fireEvent && (n.attachEvent("onclick", m = function() { | |
b.noCloneEvent = !1 | |
} | |
), | |
n.cloneNode(!0).fireEvent("onclick"), | |
n.detachEvent("onclick", m)), | |
h = e.createElement("input"), | |
h.value = "t", | |
h.setAttribute("type", "radio"), | |
b.radioValue = h.value === "t", | |
h.setAttribute("checked", "checked"), | |
h.setAttribute("name", "t"), | |
n.appendChild(h), | |
i = e.createDocumentFragment(), | |
i.appendChild(n.lastChild), | |
b.checkClone = i.cloneNode(!0).cloneNode(!0).lastChild.checked, | |
b.appendChecked = h.checked, | |
i.removeChild(h), | |
i.appendChild(n); | |
if (n.attachEvent) | |
for (k in { | |
submit: !0, | |
change: !0, | |
focusin: !0 | |
}) | |
j = "on" + k, | |
l = j in n, | |
l || (n.setAttribute(j, "return;"), | |
l = typeof n[j] == "function"), | |
b[k + "Bubbles"] = l; | |
return p(function() { | |
var c, d, f, g, h = "padding:0;margin:0;border:0;display:block;overflow:hidden;", i = e.getElementsByTagName("body")[0]; | |
if (!i) | |
return; | |
c = e.createElement("div"), | |
c.style.cssText = "visibility:hidden;border:0;width:0;height:0;position:static;top:0;margin-top:1px", | |
i.insertBefore(c, i.firstChild), | |
d = e.createElement("div"), | |
c.appendChild(d), | |
d.innerHTML = "<table><tr><td></td><td>t</td></tr></table>", | |
f = d.getElementsByTagName("td"), | |
f[0].style.cssText = "padding:0;margin:0;border:0;display:none", | |
l = f[0].offsetHeight === 0, | |
f[0].style.display = "", | |
f[1].style.display = "none", | |
b.reliableHiddenOffsets = l && f[0].offsetHeight === 0, | |
d.innerHTML = "", | |
d.style.cssText = "box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;", | |
b.boxSizing = d.offsetWidth === 4, | |
b.doesNotIncludeMarginInBodyOffset = i.offsetTop !== 1, | |
a.getComputedStyle && (b.pixelPosition = (a.getComputedStyle(d, null) || {}).top !== "1%", | |
b.boxSizingReliable = (a.getComputedStyle(d, null) || { | |
width: "4px" | |
}).width === "4px", | |
g = e.createElement("div"), | |
g.style.cssText = d.style.cssText = h, | |
g.style.marginRight = g.style.width = "0", | |
d.style.width = "1px", | |
d.appendChild(g), | |
b.reliableMarginRight = !parseFloat((a.getComputedStyle(g, null) || {}).marginRight)), | |
typeof d.style.zoom != "undefined" && (d.innerHTML = "", | |
d.style.cssText = h + "width:1px;padding:1px;display:inline;zoom:1", | |
b.inlineBlockNeedsLayout = d.offsetWidth === 3, | |
d.style.display = "block", | |
d.style.overflow = "visible", | |
d.innerHTML = "<div></div>", | |
d.firstChild.style.width = "5px", | |
b.shrinkWrapBlocks = d.offsetWidth !== 3, | |
c.style.zoom = 1), | |
i.removeChild(c), | |
c = d = f = g = null | |
}), | |
i.removeChild(n), | |
c = d = f = g = h = i = n = null, | |
b | |
}(); | |
var H = /(?:\{[\s\S]*\}|\[[\s\S]*\])$/ | |
, I = /([A-Z])/g; | |
p.extend({ | |
cache: {}, | |
deletedIds: [], | |
uuid: 0, | |
expando: "jQuery" + (p.fn.jquery + Math.random()).replace(/\D/g, ""), | |
noData: { | |
embed: !0, | |
object: "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000", | |
applet: !0 | |
}, | |
hasData: function(a) { | |
return a = a.nodeType ? p.cache[a[p.expando]] : a[p.expando], | |
!!a && !K(a) | |
}, | |
data: function(a, c, d, e) { | |
if (!p.acceptData(a)) | |
return; | |
var f, g, h = p.expando, i = typeof c == "string", j = a.nodeType, k = j ? p.cache : a, l = j ? a[h] : a[h] && h; | |
if ((!l || !k[l] || !e && !k[l].data) && i && d === b) | |
return; | |
l || (j ? a[h] = l = p.deletedIds.pop() || p.guid++ : l = h), | |
k[l] || (k[l] = {}, | |
j || (k[l].toJSON = p.noop)); | |
if (typeof c == "object" || typeof c == "function") | |
e ? k[l] = p.extend(k[l], c) : k[l].data = p.extend(k[l].data, c); | |
return f = k[l], | |
e || (f.data || (f.data = {}), | |
f = f.data), | |
d !== b && (f[p.camelCase(c)] = d), | |
i ? (g = f[c], | |
g == null && (g = f[p.camelCase(c)])) : g = f, | |
g | |
}, | |
removeData: function(a, b, c) { | |
if (!p.acceptData(a)) | |
return; | |
var d, e, f, g = a.nodeType, h = g ? p.cache : a, i = g ? a[p.expando] : p.expando; | |
if (!h[i]) | |
return; | |
if (b) { | |
d = c ? h[i] : h[i].data; | |
if (d) { | |
p.isArray(b) || (b in d ? b = [b] : (b = p.camelCase(b), | |
b in d ? b = [b] : b = b.split(" "))); | |
for (e = 0, | |
f = b.length; e < f; e++) | |
delete d[b[e]]; | |
if (!(c ? K : p.isEmptyObject)(d)) | |
return | |
} | |
} | |
if (!c) { | |
delete h[i].data; | |
if (!K(h[i])) | |
return | |
} | |
g ? p.cleanData([a], !0) : p.support.deleteExpando || h != h.window ? delete h[i] : h[i] = null | |
}, | |
_data: function(a, b, c) { | |
return p.data(a, b, c, !0) | |
}, | |
acceptData: function(a) { | |
var b = a.nodeName && p.noData[a.nodeName.toLowerCase()]; | |
return !b || b !== !0 && a.getAttribute("classid") === b | |
} | |
}), | |
p.fn.extend({ | |
data: function(a, c) { | |
var d, e, f, g, h, i = this[0], j = 0, k = null; | |
if (a === b) { | |
if (this.length) { | |
k = p.data(i); | |
if (i.nodeType === 1 && !p._data(i, "parsedAttrs")) { | |
f = i.attributes; | |
for (h = f.length; j < h; j++) | |
g = f[j].name, | |
g.indexOf("data-") || (g = p.camelCase(g.substring(5)), | |
J(i, g, k[g])); | |
p._data(i, "parsedAttrs", !0) | |
} | |
} | |
return k | |
} | |
return typeof a == "object" ? this.each(function() { | |
p.data(this, a) | |
}) : (d = a.split(".", 2), | |
d[1] = d[1] ? "." + d[1] : "", | |
e = d[1] + "!", | |
p.access(this, function(c) { | |
if (c === b) | |
return k = this.triggerHandler("getData" + e, [d[0]]), | |
k === b && i && (k = p.data(i, a), | |
k = J(i, a, k)), | |
k === b && d[1] ? this.data(d[0]) : k; | |
d[1] = c, | |
this.each(function() { | |
var b = p(this); | |
b.triggerHandler("setData" + e, d), | |
p.data(this, a, c), | |
b.triggerHandler("changeData" + e, d) | |
}) | |
}, null, c, arguments.length > 1, null, !1)) | |
}, | |
removeData: function(a) { | |
return this.each(function() { | |
p.removeData(this, a) | |
}) | |
} | |
}), | |
p.extend({ | |
queue: function(a, b, c) { | |
var d; | |
if (a) | |
return b = (b || "fx") + "queue", | |
d = p._data(a, b), | |
c && (!d || p.isArray(c) ? d = p._data(a, b, p.makeArray(c)) : d.push(c)), | |
d || [] | |
}, | |
dequeue: function(a, b) { | |
b = b || "fx"; | |
var c = p.queue(a, b) | |
, d = c.length | |
, e = c.shift() | |
, f = p._queueHooks(a, b) | |
, g = function() { | |
p.dequeue(a, b) | |
}; | |
e === "inprogress" && (e = c.shift(), | |
d--), | |
e && (b === "fx" && c.unshift("inprogress"), | |
delete f.stop, | |
e.call(a, g, f)), | |
!d && f && f.empty.fire() | |
}, | |
_queueHooks: function(a, b) { | |
var c = b + "queueHooks"; | |
return p._data(a, c) || p._data(a, c, { | |
empty: p.Callbacks("once memory").add(function() { | |
p.removeData(a, b + "queue", !0), | |
p.removeData(a, c, !0) | |
}) | |
}) | |
} | |
}), | |
p.fn.extend({ | |
queue: function(a, c) { | |
var d = 2; | |
return typeof a != "string" && (c = a, | |
a = "fx", | |
d--), | |
arguments.length < d ? p.queue(this[0], a) : c === b ? this : this.each(function() { | |
var b = p.queue(this, a, c); | |
p._queueHooks(this, a), | |
a === "fx" && b[0] !== "inprogress" && p.dequeue(this, a) | |
}) | |
}, | |
dequeue: function(a) { | |
return this.each(function() { | |
p.dequeue(this, a) | |
}) | |
}, | |
delay: function(a, b) { | |
return a = p.fx ? p.fx.speeds[a] || a : a, | |
b = b || "fx", | |
this.queue(b, function(b, c) { | |
var d = setTimeout(b, a); | |
c.stop = function() { | |
clearTimeout(d) | |
} | |
}) | |
}, | |
clearQueue: function(a) { | |
return this.queue(a || "fx", []) | |
}, | |
promise: function(a, c) { | |
var d, e = 1, f = p.Deferred(), g = this, h = this.length, i = function() { | |
--e || f.resolveWith(g, [g]) | |
}; | |
typeof a != "string" && (c = a, | |
a = b), | |
a = a || "fx"; | |
while (h--) | |
d = p._data(g[h], a + "queueHooks"), | |
d && d.empty && (e++, | |
d.empty.add(i)); | |
return i(), | |
f.promise(c) | |
} | |
}); | |
var L, M, N, O = /[\t\r\n]/g, P = /\r/g, Q = /^(?:button|input)$/i, R = /^(?:button|input|object|select|textarea)$/i, S = /^a(?:rea|)$/i, T = /^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i, U = p.support.getSetAttribute; | |
p.fn.extend({ | |
attr: function(a, b) { | |
return p.access(this, p.attr, a, b, arguments.length > 1) | |
}, | |
removeAttr: function(a) { | |
return this.each(function() { | |
p.removeAttr(this, a) | |
}) | |
}, | |
prop: function(a, b) { | |
return p.access(this, p.prop, a, b, arguments.length > 1) | |
}, | |
removeProp: function(a) { | |
return a = p.propFix[a] || a, | |
this.each(function() { | |
try { | |
this[a] = b, | |
delete this[a] | |
} catch (c) {} | |
}) | |
}, | |
addClass: function(a) { | |
var b, c, d, e, f, g, h; | |
if (p.isFunction(a)) | |
return this.each(function(b) { | |
p(this).addClass(a.call(this, b, this.className)) | |
}); | |
if (a && typeof a == "string") { | |
b = a.split(s); | |
for (c = 0, | |
d = this.length; c < d; c++) { | |
e = this[c]; | |
if (e.nodeType === 1) | |
if (!e.className && b.length === 1) | |
e.className = a; | |
else { | |
f = " " + e.className + " "; | |
for (g = 0, | |
h = b.length; g < h; g++) | |
f.indexOf(" " + b[g] + " ") < 0 && (f += b[g] + " "); | |
e.className = p.trim(f) | |
} | |
} | |
} | |
return this | |
}, | |
removeClass: function(a) { | |
var c, d, e, f, g, h, i; | |
if (p.isFunction(a)) | |
return this.each(function(b) { | |
p(this).removeClass(a.call(this, b, this.className)) | |
}); | |
if (a && typeof a == "string" || a === b) { | |
c = (a || "").split(s); | |
for (h = 0, | |
i = this.length; h < i; h++) { | |
e = this[h]; | |
if (e.nodeType === 1 && e.className) { | |
d = (" " + e.className + " ").replace(O, " "); | |
for (f = 0, | |
g = c.length; f < g; f++) | |
while (d.indexOf(" " + c[f] + " ") >= 0) | |
d = d.replace(" " + c[f] + " ", " "); | |
e.className = a ? p.trim(d) : "" | |
} | |
} | |
} | |
return this | |
}, | |
toggleClass: function(a, b) { | |
var c = typeof a | |
, d = typeof b == "boolean"; | |
return p.isFunction(a) ? this.each(function(c) { | |
p(this).toggleClass(a.call(this, c, this.className, b), b) | |
}) : this.each(function() { | |
if (c === "string") { | |
var e, f = 0, g = p(this), h = b, i = a.split(s); | |
while (e = i[f++]) | |
h = d ? h : !g.hasClass(e), | |
g[h ? "addClass" : "removeClass"](e) | |
} else if (c === "undefined" || c === "boolean") | |
this.className && p._data(this, "__className__", this.className), | |
this.className = this.className || a === !1 ? "" : p._data(this, "__className__") || "" | |
}) | |
}, | |
hasClass: function(a) { | |
var b = " " + a + " " | |
, c = 0 | |
, d = this.length; | |
for (; c < d; c++) | |
if (this[c].nodeType === 1 && (" " + this[c].className + " ").replace(O, " ").indexOf(b) >= 0) | |
return !0; | |
return !1 | |
}, | |
val: function(a) { | |
var c, d, e, f = this[0]; | |
if (!arguments.length) { | |
if (f) | |
return c = p.valHooks[f.type] || p.valHooks[f.nodeName.toLowerCase()], | |
c && "get"in c && (d = c.get(f, "value")) !== b ? d : (d = f.value, | |
typeof d == "string" ? d.replace(P, "") : d == null ? "" : d); | |
return | |
} | |
return e = p.isFunction(a), | |
this.each(function(d) { | |
var f, g = p(this); | |
if (this.nodeType !== 1) | |
return; | |
e ? f = a.call(this, d, g.val()) : f = a, | |
f == null ? f = "" : typeof f == "number" ? f += "" : p.isArray(f) && (f = p.map(f, function(a) { | |
return a == null ? "" : a + "" | |
})), | |
c = p.valHooks[this.type] || p.valHooks[this.nodeName.toLowerCase()]; | |
if (!c || !("set"in c) || c.set(this, f, "value") === b) | |
this.value = f | |
}) | |
} | |
}), | |
p.extend({ | |
valHooks: { | |
option: { | |
get: function(a) { | |
var b = a.attributes.value; | |
return !b || b.specified ? a.value : a.text | |
} | |
}, | |
select: { | |
get: function(a) { | |
var b, c, d, e, f = a.selectedIndex, g = [], h = a.options, i = a.type === "select-one"; | |
if (f < 0) | |
return null; | |
c = i ? f : 0, | |
d = i ? f + 1 : h.length; | |
for (; c < d; c++) { | |
e = h[c]; | |
if (e.selected && (p.support.optDisabled ? !e.disabled : e.getAttribute("disabled") === null) && (!e.parentNode.disabled || !p.nodeName(e.parentNode, "optgroup"))) { | |
b = p(e).val(); | |
if (i) | |
return b; | |
g.push(b) | |
} | |
} | |
return i && !g.length && h.length ? p(h[f]).val() : g | |
}, | |
set: function(a, b) { | |
var c = p.makeArray(b); | |
return p(a).find("option").each(function() { | |
this.selected = p.inArray(p(this).val(), c) >= 0 | |
}), | |
c.length || (a.selectedIndex = -1), | |
c | |
} | |
} | |
}, | |
attrFn: {}, | |
attr: function(a, c, d, e) { | |
var f, g, h, i = a.nodeType; | |
if (!a || i === 3 || i === 8 || i === 2) | |
return; | |
if (e && p.isFunction(p.fn[c])) | |
return p(a)[c](d); | |
if (typeof a.getAttribute == "undefined") | |
return p.prop(a, c, d); | |
h = i !== 1 || !p.isXMLDoc(a), | |
h && (c = c.toLowerCase(), | |
g = p.attrHooks[c] || (T.test(c) ? M : L)); | |
if (d !== b) { | |
if (d === null) { | |
p.removeAttr(a, c); | |
return | |
} | |
return g && "set"in g && h && (f = g.set(a, d, c)) !== b ? f : (a.setAttribute(c, d + ""), | |
d) | |
} | |
return g && "get"in g && h && (f = g.get(a, c)) !== null ? f : (f = a.getAttribute(c), | |
f === null ? b : f) | |
}, | |
removeAttr: function(a, b) { | |
var c, d, e, f, g = 0; | |
if (b && a.nodeType === 1) { | |
d = b.split(s); | |
for (; g < d.length; g++) | |
e = d[g], | |
e && (c = p.propFix[e] || e, | |
f = T.test(e), | |
f || p.attr(a, e, ""), | |
a.removeAttribute(U ? e : c), | |
f && c in a && (a[c] = !1)) | |
} | |
}, | |
attrHooks: { | |
type: { | |
set: function(a, b) { | |
if (Q.test(a.nodeName) && a.parentNode) | |
p.error("type property can't be changed"); | |
else if (!p.support.radioValue && b === "radio" && p.nodeName(a, "input")) { | |
var c = a.value; | |
return a.setAttribute("type", b), | |
c && (a.value = c), | |
b | |
} | |
} | |
}, | |
value: { | |
get: function(a, b) { | |
return L && p.nodeName(a, "button") ? L.get(a, b) : b in a ? a.value : null | |
}, | |
set: function(a, b, c) { | |
if (L && p.nodeName(a, "button")) | |
return L.set(a, b, c); | |
a.value = b | |
} | |
} | |
}, | |
propFix: { | |
tabindex: "tabIndex", | |
readonly: "readOnly", | |
"for": "htmlFor", | |
"class": "className", | |
maxlength: "maxLength", | |
cellspacing: "cellSpacing", | |
cellpadding: "cellPadding", | |
rowspan: "rowSpan", | |
colspan: "colSpan", | |
usemap: "useMap", | |
frameborder: "frameBorder", | |
contenteditable: "contentEditable" | |
}, | |
prop: function(a, c, d) { | |
var e, f, g, h = a.nodeType; | |
if (!a || h === 3 || h === 8 || h === 2) | |
return; | |
return g = h !== 1 || !p.isXMLDoc(a), | |
g && (c = p.propFix[c] || c, | |
f = p.propHooks[c]), | |
d !== b ? f && "set"in f && (e = f.set(a, d, c)) !== b ? e : a[c] = d : f && "get"in f && (e = f.get(a, c)) !== null ? e : a[c] | |
}, | |
propHooks: { | |
tabIndex: { | |
get: function(a) { | |
var c = a.getAttributeNode("tabindex"); | |
return c && c.specified ? parseInt(c.value, 10) : R.test(a.nodeName) || S.test(a.nodeName) && a.href ? 0 : b | |
} | |
} | |
} | |
}), | |
M = { | |
get: function(a, c) { | |
var d, e = p.prop(a, c); | |
return e === !0 || typeof e != "boolean" && (d = a.getAttributeNode(c)) && d.nodeValue !== !1 ? c.toLowerCase() : b | |
}, | |
set: function(a, b, c) { | |
var d; | |
return b === !1 ? p.removeAttr(a, c) : (d = p.propFix[c] || c, | |
d in a && (a[d] = !0), | |
a.setAttribute(c, c.toLowerCase())), | |
c | |
} | |
}, | |
U || (N = { | |
name: !0, | |
id: !0, | |
coords: !0 | |
}, | |
L = p.valHooks.button = { | |
get: function(a, c) { | |
var d; | |
return d = a.getAttributeNode(c), | |
d && (N[c] ? d.value !== "" : d.specified) ? d.value : b | |
}, | |
set: function(a, b, c) { | |
var d = a.getAttributeNode(c); | |
return d || (d = e.createAttribute(c), | |
a.setAttributeNode(d)), | |
d.value = b + "" | |
} | |
}, | |
p.each(["width", "height"], function(a, b) { | |
p.attrHooks[b] = p.extend(p.attrHooks[b], { | |
set: function(a, c) { | |
if (c === "") | |
return a.setAttribute(b, "auto"), | |
c | |
} | |
}) | |
}), | |
p.attrHooks.contenteditable = { | |
get: L.get, | |
set: function(a, b, c) { | |
b === "" && (b = "false"), | |
L.set(a, b, c) | |
} | |
}), | |
p.support.hrefNormalized || p.each(["href", "src", "width", "height"], function(a, c) { | |
p.attrHooks[c] = p.extend(p.attrHooks[c], { | |
get: function(a) { | |
var d = a.getAttribute(c, 2); | |
return d === null ? b : d | |
} | |
}) | |
}), | |
p.support.style || (p.attrHooks.style = { | |
get: function(a) { | |
return a.style.cssText.toLowerCase() || b | |
}, | |
set: function(a, b) { | |
return a.style.cssText = b + "" | |
} | |
}), | |
p.support.optSelected || (p.propHooks.selected = p.extend(p.propHooks.selected, { | |
get: function(a) { | |
var b = a.parentNode; | |
return b && (b.selectedIndex, | |
b.parentNode && b.parentNode.selectedIndex), | |
null | |
} | |
})), | |
p.support.enctype || (p.propFix.enctype = "encoding"), | |
p.support.checkOn || p.each(["radio", "checkbox"], function() { | |
p.valHooks[this] = { | |
get: function(a) { | |
return a.getAttribute("value") === null ? "on" : a.value | |
} | |
} | |
}), | |
p.each(["radio", "checkbox"], function() { | |
p.valHooks[this] = p.extend(p.valHooks[this], { | |
set: function(a, b) { | |
if (p.isArray(b)) | |
return a.checked = p.inArray(p(a).val(), b) >= 0 | |
} | |
}) | |
}); | |
var V = /^(?:textarea|input|select)$/i | |
, W = /^([^\.]*|)(?:\.(.+)|)$/ | |
, X = /(?:^|\s)hover(\.\S+|)\b/ | |
, Y = /^key/ | |
, Z = /^(?:mouse|contextmenu)|click/ | |
, $ = /^(?:focusinfocus|focusoutblur)$/ | |
, _ = function(a) { | |
return p.event.special.hover ? a : a.replace(X, "mouseenter$1 mouseleave$1") | |
}; | |
p.event = { | |
add: function(a, c, d, e, f) { | |
var g, h, i, j, k, l, m, n, o, q, r; | |
if (a.nodeType === 3 || a.nodeType === 8 || !c || !d || !(g = p._data(a))) | |
return; | |
d.handler && (o = d, | |
d = o.handler, | |
f = o.selector), | |
d.guid || (d.guid = p.guid++), | |
i = g.events, | |
i || (g.events = i = {}), | |
h = g.handle, | |
h || (g.handle = h = function(a) { | |
return typeof p != "undefined" && (!a || p.event.triggered !== a.type) ? p.event.dispatch.apply(h.elem, arguments) : b | |
} | |
, | |
h.elem = a), | |
c = p.trim(_(c)).split(" "); | |
for (j = 0; j < c.length; j++) { | |
k = W.exec(c[j]) || [], | |
l = k[1], | |
m = (k[2] || "").split(".").sort(), | |
r = p.event.special[l] || {}, | |
l = (f ? r.delegateType : r.bindType) || l, | |
r = p.event.special[l] || {}, | |
n = p.extend({ | |
type: l, | |
origType: k[1], | |
data: e, | |
handler: d, | |
guid: d.guid, | |
selector: f, | |
needsContext: f && p.expr.match.needsContext.test(f), | |
namespace: m.join(".") | |
}, o), | |
q = i[l]; | |
if (!q) { | |
q = i[l] = [], | |
q.delegateCount = 0; | |
if (!r.setup || r.setup.call(a, e, m, h) === !1) | |
a.addEventListener ? a.addEventListener(l, h, !1) : a.attachEvent && a.attachEvent("on" + l, h) | |
} | |
r.add && (r.add.call(a, n), | |
n.handler.guid || (n.handler.guid = d.guid)), | |
f ? q.splice(q.delegateCount++, 0, n) : q.push(n), | |
p.event.global[l] = !0 | |
} | |
a = null | |
}, | |
global: {}, | |
remove: function(a, b, c, d, e) { | |
var f, g, h, i, j, k, l, m, n, o, q, r = p.hasData(a) && p._data(a); | |
if (!r || !(m = r.events)) | |
return; | |
b = p.trim(_(b || "")).split(" "); | |
for (f = 0; f < b.length; f++) { | |
g = W.exec(b[f]) || [], | |
h = i = g[1], | |
j = g[2]; | |
if (!h) { | |
for (h in m) | |
p.event.remove(a, h + b[f], c, d, !0); | |
continue | |
} | |
n = p.event.special[h] || {}, | |
h = (d ? n.delegateType : n.bindType) || h, | |
o = m[h] || [], | |
k = o.length, | |
j = j ? new RegExp("(^|\\.)" + j.split(".").sort().join("\\.(?:.*\\.|)") + "(\\.|$)") : null; | |
for (l = 0; l < o.length; l++) | |
q = o[l], | |
(e || i === q.origType) && (!c || c.guid === q.guid) && (!j || j.test(q.namespace)) && (!d || d === q.selector || d === "**" && q.selector) && (o.splice(l--, 1), | |
q.selector && o.delegateCount--, | |
n.remove && n.remove.call(a, q)); | |
o.length === 0 && k !== o.length && ((!n.teardown || n.teardown.call(a, j, r.handle) === !1) && p.removeEvent(a, h, r.handle), | |
delete m[h]) | |
} | |
p.isEmptyObject(m) && (delete r.handle, | |
p.removeData(a, "events", !0)) | |
}, | |
customEvent: { | |
getData: !0, | |
setData: !0, | |
changeData: !0 | |
}, | |
trigger: function(c, d, f, g) { | |
if (!f || f.nodeType !== 3 && f.nodeType !== 8) { | |
var h, i, j, k, l, m, n, o, q, r, s = c.type || c, t = []; | |
if ($.test(s + p.event.triggered)) | |
return; | |
s.indexOf("!") >= 0 && (s = s.slice(0, -1), | |
i = !0), | |
s.indexOf(".") >= 0 && (t = s.split("."), | |
s = t.shift(), | |
t.sort()); | |
if ((!f || p.event.customEvent[s]) && !p.event.global[s]) | |
return; | |
c = typeof c == "object" ? c[p.expando] ? c : new p.Event(s,c) : new p.Event(s), | |
c.type = s, | |
c.isTrigger = !0, | |
c.exclusive = i, | |
c.namespace = t.join("."), | |
c.namespace_re = c.namespace ? new RegExp("(^|\\.)" + t.join("\\.(?:.*\\.|)") + "(\\.|$)") : null, | |
m = s.indexOf(":") < 0 ? "on" + s : ""; | |
if (!f) { | |
h = p.cache; | |
for (j in h) | |
h[j].events && h[j].events[s] && p.event.trigger(c, d, h[j].handle.elem, !0); | |
return | |
} | |
c.result = b, | |
c.target || (c.target = f), | |
d = d != null ? p.makeArray(d) : [], | |
d.unshift(c), | |
n = p.event.special[s] || {}; | |
if (n.trigger && n.trigger.apply(f, d) === !1) | |
return; | |
q = [[f, n.bindType || s]]; | |
if (!g && !n.noBubble && !p.isWindow(f)) { | |
r = n.delegateType || s, | |
k = $.test(r + s) ? f : f.parentNode; | |
for (l = f; k; k = k.parentNode) | |
q.push([k, r]), | |
l = k; | |
l === (f.ownerDocument || e) && q.push([l.defaultView || l.parentWindow || a, r]) | |
} | |
for (j = 0; j < q.length && !c.isPropagationStopped(); j++) | |
k = q[j][0], | |
c.type = q[j][1], | |
o = (p._data(k, "events") || {})[c.type] && p._data(k, "handle"), | |
o && o.apply(k, d), | |
o = m && k[m], | |
o && p.acceptData(k) && o.apply && o.apply(k, d) === !1 && c.preventDefault(); | |
return c.type = s, | |
!g && !c.isDefaultPrevented() && (!n._default || n._default.apply(f.ownerDocument, d) === !1) && (s !== "click" || !p.nodeName(f, "a")) && p.acceptData(f) && m && f[s] && (s !== "focus" && s !== "blur" || c.target.offsetWidth !== 0) && !p.isWindow(f) && (l = f[m], | |
l && (f[m] = null), | |
p.event.triggered = s, | |
f[s](), | |
p.event.triggered = b, | |
l && (f[m] = l)), | |
c.result | |
} | |
return | |
}, | |
dispatch: function(c) { | |
c = p.event.fix(c || a.event); | |
var d, e, f, g, h, i, j, l, m, n, o = (p._data(this, "events") || {})[c.type] || [], q = o.delegateCount, r = k.call(arguments), s = !c.exclusive && !c.namespace, t = p.event.special[c.type] || {}, u = []; | |
r[0] = c, | |
c.delegateTarget = this; | |
if (t.preDispatch && t.preDispatch.call(this, c) === !1) | |
return; | |
if (q && (!c.button || c.type !== "click")) | |
for (f = c.target; f != this; f = f.parentNode || this) | |
if (f.disabled !== !0 || c.type !== "click") { | |
h = {}, | |
j = []; | |
for (d = 0; d < q; d++) | |
l = o[d], | |
m = l.selector, | |
h[m] === b && (h[m] = l.needsContext ? p(m, this).index(f) >= 0 : p.find(m, this, null, [f]).length), | |
h[m] && j.push(l); | |
j.length && u.push({ | |
elem: f, | |
matches: j | |
}) | |
} | |
o.length > q && u.push({ | |
elem: this, | |
matches: o.slice(q) | |
}); | |
for (d = 0; d < u.length && !c.isPropagationStopped(); d++) { | |
i = u[d], | |
c.currentTarget = i.elem; | |
for (e = 0; e < i.matches.length && !c.isImmediatePropagationStopped(); e++) { | |
l = i.matches[e]; | |
if (s || !c.namespace && !l.namespace || c.namespace_re && c.namespace_re.test(l.namespace)) | |
c.data = l.data, | |
c.handleObj = l, | |
g = ((p.event.special[l.origType] || {}).handle || l.handler).apply(i.elem, r), | |
g !== b && (c.result = g, | |
g === !1 && (c.preventDefault(), | |
c.stopPropagation())) | |
} | |
} | |
return t.postDispatch && t.postDispatch.call(this, c), | |
c.result | |
}, | |
props: "attrChange attrName relatedNode srcElement altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "), | |
fixHooks: {}, | |
keyHooks: { | |
props: "char charCode key keyCode".split(" "), | |
filter: function(a, b) { | |
return a.which == null && (a.which = b.charCode != null ? b.charCode : b.keyCode), | |
a | |
} | |
}, | |
mouseHooks: { | |
props: "button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "), | |
filter: function(a, c) { | |
var d, f, g, h = c.button, i = c.fromElement; | |
return a.pageX == null && c.clientX != null && (d = a.target.ownerDocument || e, | |
f = d.documentElement, | |
g = d.body, | |
a.pageX = c.clientX + (f && f.scrollLeft || g && g.scrollLeft || 0) - (f && f.clientLeft || g && g.clientLeft || 0), | |
a.pageY = c.clientY + (f && f.scrollTop || g && g.scrollTop || 0) - (f && f.clientTop || g && g.clientTop || 0)), | |
!a.relatedTarget && i && (a.relatedTarget = i === a.target ? c.toElement : i), | |
!a.which && h !== b && (a.which = h & 1 ? 1 : h & 2 ? 3 : h & 4 ? 2 : 0), | |
a | |
} | |
}, | |
fix: function(a) { | |
if (a[p.expando]) | |
return a; | |
var b, c, d = a, f = p.event.fixHooks[a.type] || {}, g = f.props ? this.props.concat(f.props) : this.props; | |
a = p.Event(d); | |
for (b = g.length; b; ) | |
c = g[--b], | |
a[c] = d[c]; | |
return a.target || (a.target = d.srcElement || e), | |
a.target.nodeType === 3 && (a.target = a.target.parentNode), | |
a.metaKey = !!a.metaKey, | |
f.filter ? f.filter(a, d) : a | |
}, | |
special: { | |
load: { | |
noBubble: !0 | |
}, | |
focus: { | |
delegateType: "focusin" | |
}, | |
blur: { | |
delegateType: "focusout" | |
}, | |
beforeunload: { | |
setup: function(a, b, c) { | |
p.isWindow(this) && (this.onbeforeunload = c) | |
}, | |
teardown: function(a, b) { | |
this.onbeforeunload === b && (this.onbeforeunload = null) | |
} | |
} | |
}, | |
simulate: function(a, b, c, d) { | |
var e = p.extend(new p.Event, c, { | |
type: a, | |
isSimulated: !0, | |
originalEvent: {} | |
}); | |
d ? p.event.trigger(e, null, b) : p.event.dispatch.call(b, e), | |
e.isDefaultPrevented() && c.preventDefault() | |
} | |
}, | |
p.event.handle = p.event.dispatch, | |
p.removeEvent = e.removeEventListener ? function(a, b, c) { | |
a.removeEventListener && a.removeEventListener(b, c, !1) | |
} | |
: function(a, b, c) { | |
var d = "on" + b; | |
a.detachEvent && (typeof a[d] == "undefined" && (a[d] = null), | |
a.detachEvent(d, c)) | |
} | |
, | |
p.Event = function(a, b) { | |
if (this instanceof p.Event) | |
a && a.type ? (this.originalEvent = a, | |
this.type = a.type, | |
this.isDefaultPrevented = a.defaultPrevented || a.returnValue === !1 || a.getPreventDefault && a.getPreventDefault() ? bb : ba) : this.type = a, | |
b && p.extend(this, b), | |
this.timeStamp = a && a.timeStamp || p.now(), | |
this[p.expando] = !0; | |
else | |
return new p.Event(a,b) | |
} | |
, | |
p.Event.prototype = { | |
preventDefault: function() { | |
this.isDefaultPrevented = bb; | |
var a = this.originalEvent; | |
if (!a) | |
return; | |
a.preventDefault ? a.preventDefault() : a.returnValue = !1 | |
}, | |
stopPropagation: function() { | |
this.isPropagationStopped = bb; | |
var a = this.originalEvent; | |
if (!a) | |
return; | |
a.stopPropagation && a.stopPropagation(), | |
a.cancelBubble = !0 | |
}, | |
stopImmediatePropagation: function() { | |
this.isImmediatePropagationStopped = bb, | |
this.stopPropagation() | |
}, | |
isDefaultPrevented: ba, | |
isPropagationStopped: ba, | |
isImmediatePropagationStopped: ba | |
}, | |
p.each({ | |
mouseenter: "mouseover", | |
mouseleave: "mouseout" | |
}, function(a, b) { | |
p.event.special[a] = { | |
delegateType: b, | |
bindType: b, | |
handle: function(a) { | |
var c, d = this, e = a.relatedTarget, f = a.handleObj, g = f.selector; | |
if (!e || e !== d && !p.contains(d, e)) | |
a.type = f.origType, | |
c = f.handler.apply(this, arguments), | |
a.type = b; | |
return c | |
} | |
} | |
}), | |
p.support.submitBubbles || (p.event.special.submit = { | |
setup: function() { | |
if (p.nodeName(this, "form")) | |
return !1; | |
p.event.add(this, "click._submit keypress._submit", function(a) { | |
var c = a.target | |
, d = p.nodeName(c, "input") || p.nodeName(c, "button") ? c.form : b; | |
d && !p._data(d, "_submit_attached") && (p.event.add(d, "submit._submit", function(a) { | |
a._submit_bubble = !0 | |
}), | |
p._data(d, "_submit_attached", !0)) | |
}) | |
}, | |
postDispatch: function(a) { | |
a._submit_bubble && (delete a._submit_bubble, | |
this.parentNode && !a.isTrigger && p.event.simulate("submit", this.parentNode, a, !0)) | |
}, | |
teardown: function() { | |
if (p.nodeName(this, "form")) | |
return !1; | |
p.event.remove(this, "._submit") | |
} | |
}), | |
p.support.changeBubbles || (p.event.special.change = { | |
setup: function() { | |
if (V.test(this.nodeName)) { | |
if (this.type === "checkbox" || this.type === "radio") | |
p.event.add(this, "propertychange._change", function(a) { | |
a.originalEvent.propertyName === "checked" && (this._just_changed = !0) | |
}), | |
p.event.add(this, "click._change", function(a) { | |
this._just_changed && !a.isTrigger && (this._just_changed = !1), | |
p.event.simulate("change", this, a, !0) | |
}); | |
return !1 | |
} | |
p.event.add(this, "beforeactivate._change", function(a) { | |
var b = a.target; | |
V.test(b.nodeName) && !p._data(b, "_change_attached") && (p.event.add(b, "change._change", function(a) { | |
this.parentNode && !a.isSimulated && !a.isTrigger && p.event.simulate("change", this.parentNode, a, !0) | |
}), | |
p._data(b, "_change_attached", !0)) | |
}) | |
}, | |
handle: function(a) { | |
var b = a.target; | |
if (this !== b || a.isSimulated || a.isTrigger || b.type !== "radio" && b.type !== "checkbox") | |
return a.handleObj.handler.apply(this, arguments) | |
}, | |
teardown: function() { | |
return p.event.remove(this, "._change"), | |
!V.test(this.nodeName) | |
} | |
}), | |
p.support.focusinBubbles || p.each({ | |
focus: "focusin", | |
blur: "focusout" | |
}, function(a, b) { | |
var c = 0 | |
, d = function(a) { | |
p.event.simulate(b, a.target, p.event.fix(a), !0) | |
}; | |
p.event.special[b] = { | |
setup: function() { | |
c++ === 0 && e.addEventListener(a, d, !0) | |
}, | |
teardown: function() { | |
--c === 0 && e.removeEventListener(a, d, !0) | |
} | |
} | |
}), | |
p.fn.extend({ | |
on: function(a, c, d, e, f) { | |
var g, h; | |
if (typeof a == "object") { | |
typeof c != "string" && (d = d || c, | |
c = b); | |
for (h in a) | |
this.on(h, c, d, a[h], f); | |
return this | |
} | |
d == null && e == null ? (e = c, | |
d = c = b) : e == null && (typeof c == "string" ? (e = d, | |
d = b) : (e = d, | |
d = c, | |
c = b)); | |
if (e === !1) | |
e = ba; | |
else if (!e) | |
return this; | |
return f === 1 && (g = e, | |
e = function(a) { | |
return p().off(a), | |
g.apply(this, arguments) | |
} | |
, | |
e.guid = g.guid || (g.guid = p.guid++)), | |
this.each(function() { | |
p.event.add(this, a, e, d, c) | |
}) | |
}, | |
one: function(a, b, c, d) { | |
return this.on(a, b, c, d, 1) | |
}, | |
off: function(a, c, d) { | |
var e, f; | |
if (a && a.preventDefault && a.handleObj) | |
return e = a.handleObj, | |
p(a.delegateTarget).off(e.namespace ? e.origType + "." + e.namespace : e.origType, e.selector, e.handler), | |
this; | |
if (typeof a == "object") { | |
for (f in a) | |
this.off(f, c, a[f]); | |
return this | |
} | |
if (c === !1 || typeof c == "function") | |
d = c, | |
c = b; | |
return d === !1 && (d = ba), | |
this.each(function() { | |
p.event.remove(this, a, d, c) | |
}) | |
}, | |
bind: function(a, b, c) { | |
return this.on(a, null, b, c) | |
}, | |
unbind: function(a, b) { | |
return this.off(a, null, b) | |
}, | |
live: function(a, b, c) { | |
return p(this.context).on(a, this.selector, b, c), | |
this | |
}, | |
die: function(a, b) { | |
return p(this.context).off(a, this.selector || "**", b), | |
this | |
}, | |
delegate: function(a, b, c, d) { | |
return this.on(b, a, c, d) | |
}, | |
undelegate: function(a, b, c) { | |
return arguments.length === 1 ? this.off(a, "**") : this.off(b, a || "**", c) | |
}, | |
trigger: function(a, b) { | |
return this.each(function() { | |
p.event.trigger(a, b, this) | |
}) | |
}, | |
triggerHandler: function(a, b) { | |
if (this[0]) | |
return p.event.trigger(a, b, this[0], !0) | |
}, | |
toggle: function(a) { | |
var b = arguments | |
, c = a.guid || p.guid++ | |
, d = 0 | |
, e = function(c) { | |
var e = (p._data(this, "lastToggle" + a.guid) || 0) % d; | |
return p._data(this, "lastToggle" + a.guid, e + 1), | |
c.preventDefault(), | |
b[e].apply(this, arguments) || !1 | |
}; | |
e.guid = c; | |
while (d < b.length) | |
b[d++].guid = c; | |
return this.click(e) | |
}, | |
hover: function(a, b) { | |
return this.mouseenter(a).mouseleave(b || a) | |
} | |
}), | |
p.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "), function(a, b) { | |
p.fn[b] = function(a, c) { | |
return c == null && (c = a, | |
a = null), | |
arguments.length > 0 ? this.on(b, null, a, c) : this.trigger(b) | |
} | |
, | |
Y.test(b) && (p.event.fixHooks[b] = p.event.keyHooks), | |
Z.test(b) && (p.event.fixHooks[b] = p.event.mouseHooks) | |
}), | |
function(a, b) { | |
function bc(a, b, c, d) { | |
c = c || [], | |
b = b || r; | |
var e, f, i, j, k = b.nodeType; | |
if (!a || typeof a != "string") | |
return c; | |
if (k !== 1 && k !== 9) | |
return []; | |
i = g(b); | |
if (!i && !d) | |
if (e = P.exec(a)) | |
if (j = e[1]) { | |
if (k === 9) { | |
f = b.getElementById(j); | |
if (!f || !f.parentNode) | |
return c; | |
if (f.id === j) | |
return c.push(f), | |
c | |
} else if (b.ownerDocument && (f = b.ownerDocument.getElementById(j)) && h(b, f) && f.id === j) | |
return c.push(f), | |
c | |
} else { | |
if (e[2]) | |
return w.apply(c, x.call(b.getElementsByTagName(a), 0)), | |
c; | |
if ((j = e[3]) && _ && b.getElementsByClassName) | |
return w.apply(c, x.call(b.getElementsByClassName(j), 0)), | |
c | |
} | |
return bp(a.replace(L, "$1"), b, c, d, i) | |
} | |
function bd(a) { | |
return function(b) { | |
var c = b.nodeName.toLowerCase(); | |
return c === "input" && b.type === a | |
} | |
} | |
function be(a) { | |
return function(b) { | |
var c = b.nodeName.toLowerCase(); | |
return (c === "input" || c === "button") && b.type === a | |
} | |
} | |
function bf(a) { | |
return z(function(b) { | |
return b = +b, | |
z(function(c, d) { | |
var e, f = a([], c.length, b), g = f.length; | |
while (g--) | |
c[e = f[g]] && (c[e] = !(d[e] = c[e])) | |
}) | |
}) | |
} | |
function bg(a, b, c) { | |
if (a === b) | |
return c; | |
var d = a.nextSibling; | |
while (d) { | |
if (d === b) | |
return -1; | |
d = d.nextSibling | |
} | |
return 1 | |
} | |
function bh(a, b) { | |
var c, d, f, g, h, i, j, k = C[o][a]; | |
if (k) | |
return b ? 0 : k.slice(0); | |
h = a, | |
i = [], | |
j = e.preFilter; | |
while (h) { | |
if (!c || (d = M.exec(h))) | |
d && (h = h.slice(d[0].length)), | |
i.push(f = []); | |
c = !1; | |
if (d = N.exec(h)) | |
f.push(c = new q(d.shift())), | |
h = h.slice(c.length), | |
c.type = d[0].replace(L, " "); | |
for (g in e.filter) | |
(d = W[g].exec(h)) && (!j[g] || (d = j[g](d, r, !0))) && (f.push(c = new q(d.shift())), | |
h = h.slice(c.length), | |
c.type = g, | |
c.matches = d); | |
if (!c) | |
break | |
} | |
return b ? h.length : h ? bc.error(a) : C(a, i).slice(0) | |
} | |
function bi(a, b, d) { | |
var e = b.dir | |
, f = d && b.dir === "parentNode" | |
, g = u++; | |
return b.first ? function(b, c, d) { | |
while (b = b[e]) | |
if (f || b.nodeType === 1) | |
return a(b, c, d) | |
} | |
: function(b, d, h) { | |
if (!h) { | |
var i, j = t + " " + g + " ", k = j + c; | |
while (b = b[e]) | |
if (f || b.nodeType === 1) { | |
if ((i = b[o]) === k) | |
return b.sizset; | |
if (typeof i == "string" && i.indexOf(j) === 0) { | |
if (b.sizset) | |
return b | |
} else { | |
b[o] = k; | |
if (a(b, d, h)) | |
return b.sizset = !0, | |
b; | |
b.sizset = !1 | |
} | |
} | |
} else | |
while (b = b[e]) | |
if (f || b.nodeType === 1) | |
if (a(b, d, h)) | |
return b | |
} | |
} | |
function bj(a) { | |
return a.length > 1 ? function(b, c, d) { | |
var e = a.length; | |
while (e--) | |
if (!a[e](b, c, d)) | |
return !1; | |
return !0 | |
} | |
: a[0] | |
} | |
function bk(a, b, c, d, e) { | |
var f, g = [], h = 0, i = a.length, j = b != null; | |
for (; h < i; h++) | |
if (f = a[h]) | |
if (!c || c(f, d, e)) | |
g.push(f), | |
j && b.push(h); | |
return g | |
} | |
function bl(a, b, c, d, e, f) { | |
return d && !d[o] && (d = bl(d)), | |
e && !e[o] && (e = bl(e, f)), | |
z(function(f, g, h, i) { | |
if (f && e) | |
return; | |
var j, k, l, m = [], n = [], o = g.length, p = f || bo(b || "*", h.nodeType ? [h] : h, [], f), q = a && (f || !b) ? bk(p, m, a, h, i) : p, r = c ? e || (f ? a : o || d) ? [] : g : q; | |
c && c(q, r, h, i); | |
if (d) { | |
l = bk(r, n), | |
d(l, [], h, i), | |
j = l.length; | |
while (j--) | |
if (k = l[j]) | |
r[n[j]] = !(q[n[j]] = k) | |
} | |
if (f) { | |
j = a && r.length; | |
while (j--) | |
if (k = r[j]) | |
f[m[j]] = !(g[m[j]] = k) | |
} else | |
r = bk(r === g ? r.splice(o, r.length) : r), | |
e ? e(null, g, r, i) : w.apply(g, r) | |
}) | |
} | |
function bm(a) { | |
var b, c, d, f = a.length, g = e.relative[a[0].type], h = g || e.relative[" "], i = g ? 1 : 0, j = bi(function(a) { | |
return a === b | |
}, h, !0), k = bi(function(a) { | |
return y.call(b, a) > -1 | |
}, h, !0), m = [function(a, c, d) { | |
return !g && (d || c !== l) || ((b = c).nodeType ? j(a, c, d) : k(a, c, d)) | |
} | |
]; | |
for (; i < f; i++) | |
if (c = e.relative[a[i].type]) | |
m = [bi(bj(m), c)]; | |
else { | |
c = e.filter[a[i].type].apply(null, a[i].matches); | |
if (c[o]) { | |
d = ++i; | |
for (; d < f; d++) | |
if (e.relative[a[d].type]) | |
break; | |
return bl(i > 1 && bj(m), i > 1 && a.slice(0, i - 1).join("").replace(L, "$1"), c, i < d && bm(a.slice(i, d)), d < f && bm(a = a.slice(d)), d < f && a.join("")) | |
} | |
m.push(c) | |
} | |
return bj(m) | |
} | |
function bn(a, b) { | |
var d = b.length > 0 | |
, f = a.length > 0 | |
, g = function(h, i, j, k, m) { | |
var n, o, p, q = [], s = 0, u = "0", x = h && [], y = m != null, z = l, A = h || f && e.find.TAG("*", m && i.parentNode || i), B = t += z == null ? 1 : Math.E; | |
y && (l = i !== r && i, | |
c = g.el); | |
for (; (n = A[u]) != null; u++) { | |
if (f && n) { | |
for (o = 0; p = a[o]; o++) | |
if (p(n, i, j)) { | |
k.push(n); | |
break | |
} | |
y && (t = B, | |
c = ++g.el) | |
} | |
d && ((n = !p && n) && s--, | |
h && x.push(n)) | |
} | |
s += u; | |
if (d && u !== s) { | |
for (o = 0; p = b[o]; o++) | |
p(x, q, i, j); | |
if (h) { | |
if (s > 0) | |
while (u--) | |
!x[u] && !q[u] && (q[u] = v.call(k)); | |
q = bk(q) | |
} | |
w.apply(k, q), | |
y && !h && q.length > 0 && s + b.length > 1 && bc.uniqueSort(k) | |
} | |
return y && (t = B, | |
l = z), | |
x | |
}; | |
return g.el = 0, | |
d ? z(g) : g | |
} | |
function bo(a, b, c, d) { | |
var e = 0 | |
, f = b.length; | |
for (; e < f; e++) | |
bc(a, b[e], c, d); | |
return c | |
} | |
function bp(a, b, c, d, f) { | |
var g, h, j, k, l, m = bh(a), n = m.length; | |
if (!d && m.length === 1) { | |
h = m[0] = m[0].slice(0); | |
if (h.length > 2 && (j = h[0]).type === "ID" && b.nodeType === 9 && !f && e.relative[h[1].type]) { | |
b = e.find.ID(j.matches[0].replace(V, ""), b, f)[0]; | |
if (!b) | |
return c; | |
a = a.slice(h.shift().length) | |
} | |
for (g = W.POS.test(a) ? -1 : h.length - 1; g >= 0; g--) { | |
j = h[g]; | |
if (e.relative[k = j.type]) | |
break; | |
if (l = e.find[k]) | |
if (d = l(j.matches[0].replace(V, ""), R.test(h[0].type) && b.parentNode || b, f)) { | |
h.splice(g, 1), | |
a = d.length && h.join(""); | |
if (!a) | |
return w.apply(c, x.call(d, 0)), | |
c; | |
break | |
} | |
} | |
} | |
return i(a, m)(d, b, f, c, R.test(a)), | |
c | |
} | |
function bq() {} | |
var c, d, e, f, g, h, i, j, k, l, m = !0, n = "undefined", o = ("sizcache" + Math.random()).replace(".", ""), q = String, r = a.document, s = r.documentElement, t = 0, u = 0, v = [].pop, w = [].push, x = [].slice, y = [].indexOf || function(a) { | |
var b = 0 | |
, c = this.length; | |
for (; b < c; b++) | |
if (this[b] === a) | |
return b; | |
return -1 | |
} | |
, z = function(a, b) { | |
return a[o] = b == null || b, | |
a | |
}, A = function() { | |
var a = {} | |
, b = []; | |
return z(function(c, d) { | |
return b.push(c) > e.cacheLength && delete a[b.shift()], | |
a[c] = d | |
}, a) | |
}, B = A(), C = A(), D = A(), E = "[\\x20\\t\\r\\n\\f]", F = "(?:\\\\.|[-\\w]|[^\\x00-\\xa0])+", G = F.replace("w", "w#"), H = "([*^$|!~]?=)", I = "\\[" + E + "*(" + F + ")" + E + "*(?:" + H + E + "*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|(" + G + ")|)|)" + E + "*\\]", J = ":(" + F + ")(?:\\((?:(['\"])((?:\\\\.|[^\\\\])*?)\\2|([^()[\\]]*|(?:(?:" + I + ")|[^:]|\\\\.)*|.*))\\)|)", K = ":(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + E + "*((?:-\\d)?\\d*)" + E + "*\\)|)(?=[^-]|$)", L = new RegExp("^" + E + "+|((?:^|[^\\\\])(?:\\\\.)*)" + E + "+$","g"), M = new RegExp("^" + E + "*," + E + "*"), N = new RegExp("^" + E + "*([\\x20\\t\\r\\n\\f>+~])" + E + "*"), O = new RegExp(J), P = /^(?:#([\w\-]+)|(\w+)|\.([\w\-]+))$/, Q = /^:not/, R = /[\x20\t\r\n\f]*[+~]/, S = /:not\($/, T = /h\d/i, U = /input|select|textarea|button/i, V = /\\(?!\\)/g, W = { | |
ID: new RegExp("^#(" + F + ")"), | |
CLASS: new RegExp("^\\.(" + F + ")"), | |
NAME: new RegExp("^\\[name=['\"]?(" + F + ")['\"]?\\]"), | |
TAG: new RegExp("^(" + F.replace("w", "w*") + ")"), | |
ATTR: new RegExp("^" + I), | |
PSEUDO: new RegExp("^" + J), | |
POS: new RegExp(K,"i"), | |
CHILD: new RegExp("^:(only|nth|first|last)-child(?:\\(" + E + "*(even|odd|(([+-]|)(\\d*)n|)" + E + "*(?:([+-]|)" + E + "*(\\d+)|))" + E + "*\\)|)","i"), | |
needsContext: new RegExp("^" + E + "*[>+~]|" + K,"i") | |
}, X = function(a) { | |
var b = r.createElement("div"); | |
try { | |
return a(b) | |
} catch (c) { | |
return !1 | |
} finally { | |
b = null | |
} | |
}, Y = X(function(a) { | |
return a.appendChild(r.createComment("")), | |
!a.getElementsByTagName("*").length | |
}), Z = X(function(a) { | |
return a.innerHTML = "<a href='#'></a>", | |
a.firstChild && typeof a.firstChild.getAttribute !== n && a.firstChild.getAttribute("href") === "#" | |
}), $ = X(function(a) { | |
a.innerHTML = "<select></select>"; | |
var b = typeof a.lastChild.getAttribute("multiple"); | |
return b !== "boolean" && b !== "string" | |
}), _ = X(function(a) { | |
return a.innerHTML = "<div class='hidden e'></div><div class='hidden'></div>", | |
!a.getElementsByClassName || !a.getElementsByClassName("e").length ? !1 : (a.lastChild.className = "e", | |
a.getElementsByClassName("e").length === 2) | |
}), ba = X(function(a) { | |
a.id = o + 0, | |
a.innerHTML = "<a name='" + o + "'></a><div name='" + o + "'></div>", | |
s.insertBefore(a, s.firstChild); | |
var b = r.getElementsByName && r.getElementsByName(o).length === 2 + r.getElementsByName(o + 0).length; | |
return d = !r.getElementById(o), | |
s.removeChild(a), | |
b | |
}); | |
try { | |
x.call(s.childNodes, 0)[0].nodeType | |
} catch (bb) { | |
x = function(a) { | |
var b, c = []; | |
for (; b = this[a]; a++) | |
c.push(b); | |
return c | |
} | |
} | |
bc.matches = function(a, b) { | |
return bc(a, null, null, b) | |
} | |
, | |
bc.matchesSelector = function(a, b) { | |
return bc(b, null, null, [a]).length > 0 | |
} | |
, | |
f = bc.getText = function(a) { | |
var b, c = "", d = 0, e = a.nodeType; | |
if (e) { | |
if (e === 1 || e === 9 || e === 11) { | |
if (typeof a.textContent == "string") | |
return a.textContent; | |
for (a = a.firstChild; a; a = a.nextSibling) | |
c += f(a) | |
} else if (e === 3 || e === 4) | |
return a.nodeValue | |
} else | |
for (; b = a[d]; d++) | |
c += f(b); | |
return c | |
} | |
, | |
g = bc.isXML = function(a) { | |
var b = a && (a.ownerDocument || a).documentElement; | |
return b ? b.nodeName !== "HTML" : !1 | |
} | |
, | |
h = bc.contains = s.contains ? function(a, b) { | |
var c = a.nodeType === 9 ? a.documentElement : a | |
, d = b && b.parentNode; | |
return a === d || !!(d && d.nodeType === 1 && c.contains && c.contains(d)) | |
} | |
: s.compareDocumentPosition ? function(a, b) { | |
return b && !!(a.compareDocumentPosition(b) & 16) | |
} | |
: function(a, b) { | |
while (b = b.parentNode) | |
if (b === a) | |
return !0; | |
return !1 | |
} | |
, | |
bc.attr = function(a, b) { | |
var c, d = g(a); | |
return d || (b = b.toLowerCase()), | |
(c = e.attrHandle[b]) ? c(a) : d || $ ? a.getAttribute(b) : (c = a.getAttributeNode(b), | |
c ? typeof a[b] == "boolean" ? a[b] ? b : null : c.specified ? c.value : null : null) | |
} | |
, | |
e = bc.selectors = { | |
cacheLength: 50, | |
createPseudo: z, | |
match: W, | |
attrHandle: Z ? {} : { | |
href: function(a) { | |
return a.getAttribute("href", 2) | |
}, | |
type: function(a) { | |
return a.getAttribute("type") | |
} | |
}, | |
find: { | |
ID: d ? function(a, b, c) { | |
if (typeof b.getElementById !== n && !c) { | |
var d = b.getElementById(a); | |
return d && d.parentNode ? [d] : [] | |
} | |
} | |
: function(a, c, d) { | |
if (typeof c.getElementById !== n && !d) { | |
var e = c.getElementById(a); | |
return e ? e.id === a || typeof e.getAttributeNode !== n && e.getAttributeNode("id").value === a ? [e] : b : [] | |
} | |
} | |
, | |
TAG: Y ? function(a, b) { | |
if (typeof b.getElementsByTagName !== n) | |
return b.getElementsByTagName(a) | |
} | |
: function(a, b) { | |
var c = b.getElementsByTagName(a); | |
if (a === "*") { | |
var d, e = [], f = 0; | |
for (; d = c[f]; f++) | |
d.nodeType === 1 && e.push(d); | |
return e | |
} | |
return c | |
} | |
, | |
NAME: ba && function(a, b) { | |
if (typeof b.getElementsByName !== n) | |
return b.getElementsByName(name) | |
} | |
, | |
CLASS: _ && function(a, b, c) { | |
if (typeof b.getElementsByClassName !== n && !c) | |
return b.getElementsByClassName(a) | |
} | |
}, | |
relative: { | |
">": { | |
dir: "parentNode", | |
first: !0 | |
}, | |
" ": { | |
dir: "parentNode" | |
}, | |
"+": { | |
dir: "previousSibling", | |
first: !0 | |
}, | |
"~": { | |
dir: "previousSibling" | |
} | |
}, | |
preFilter: { | |
ATTR: function(a) { | |
return a[1] = a[1].replace(V, ""), | |
a[3] = (a[4] || a[5] || "").replace(V, ""), | |
a[2] === "~=" && (a[3] = " " + a[3] + " "), | |
a.slice(0, 4) | |
}, | |
CHILD: function(a) { | |
return a[1] = a[1].toLowerCase(), | |
a[1] === "nth" ? (a[2] || bc.error(a[0]), | |
a[3] = +(a[3] ? a[4] + (a[5] || 1) : 2 * (a[2] === "even" || a[2] === "odd")), | |
a[4] = +(a[6] + a[7] || a[2] === "odd")) : a[2] && bc.error(a[0]), | |
a | |
}, | |
PSEUDO: function(a) { | |
var b, c; | |
if (W.CHILD.test(a[0])) | |
return null; | |
if (a[3]) | |
a[2] = a[3]; | |
else if (b = a[4]) | |
O.test(b) && (c = bh(b, !0)) && (c = b.indexOf(")", b.length - c) - b.length) && (b = b.slice(0, c), | |
a[0] = a[0].slice(0, c)), | |
a[2] = b; | |
return a.slice(0, 3) | |
} | |
}, | |
filter: { | |
ID: d ? function(a) { | |
return a = a.replace(V, ""), | |
function(b) { | |
return b.getAttribute("id") === a | |
} | |
} | |
: function(a) { | |
return a = a.replace(V, ""), | |
function(b) { | |
var c = typeof b.getAttributeNode !== n && b.getAttributeNode("id"); | |
return c && c.value === a | |
} | |
} | |
, | |
TAG: function(a) { | |
return a === "*" ? function() { | |
return !0 | |
} | |
: (a = a.replace(V, "").toLowerCase(), | |
function(b) { | |
return b.nodeName && b.nodeName.toLowerCase() === a | |
} | |
) | |
}, | |
CLASS: function(a) { | |
var b = B[o][a]; | |
return b || (b = B(a, new RegExp("(^|" + E + ")" + a + "(" + E + "|$)"))), | |
function(a) { | |
return b.test(a.className || typeof a.getAttribute !== n && a.getAttribute("class") || "") | |
} | |
}, | |
ATTR: function(a, b, c) { | |
return function(d, e) { | |
var f = bc.attr(d, a); | |
return f == null ? b === "!=" : b ? (f += "", | |
b === "=" ? f === c : b === "!=" ? f !== c : b === "^=" ? c && f.indexOf(c) === 0 : b === "*=" ? c && f.indexOf(c) > -1 : b === "$=" ? c && f.substr(f.length - c.length) === c : b === "~=" ? (" " + f + " ").indexOf(c) > -1 : b === "|=" ? f === c || f.substr(0, c.length + 1) === c + "-" : !1) : !0 | |
} | |
}, | |
CHILD: function(a, b, c, d) { | |
return a === "nth" ? function(a) { | |
var b, e, f = a.parentNode; | |
if (c === 1 && d === 0) | |
return !0; | |
if (f) { | |
e = 0; | |
for (b = f.firstChild; b; b = b.nextSibling) | |
if (b.nodeType === 1) { | |
e++; | |
if (a === b) | |
break | |
} | |
} | |
return e -= d, | |
e === c || e % c === 0 && e / c >= 0 | |
} | |
: function(b) { | |
var c = b; | |
switch (a) { | |
case "only": | |
case "first": | |
while (c = c.previousSibling) | |
if (c.nodeType === 1) | |
return !1; | |
if (a === "first") | |
return !0; | |
c = b; | |
case "last": | |
while (c = c.nextSibling) | |
if (c.nodeType === 1) | |
return !1; | |
return !0 | |
} | |
} | |
}, | |
PSEUDO: function(a, b) { | |
var c, d = e.pseudos[a] || e.setFilters[a.toLowerCase()] || bc.error("unsupported pseudo: " + a); | |
return d[o] ? d(b) : d.length > 1 ? (c = [a, a, "", b], | |
e.setFilters.hasOwnProperty(a.toLowerCase()) ? z(function(a, c) { | |
var e, f = d(a, b), g = f.length; | |
while (g--) | |
e = y.call(a, f[g]), | |
a[e] = !(c[e] = f[g]) | |
}) : function(a) { | |
return d(a, 0, c) | |
} | |
) : d | |
} | |
}, | |
pseudos: { | |
not: z(function(a) { | |
var b = [] | |
, c = [] | |
, d = i(a.replace(L, "$1")); | |
return d[o] ? z(function(a, b, c, e) { | |
var f, g = d(a, null, e, []), h = a.length; | |
while (h--) | |
if (f = g[h]) | |
a[h] = !(b[h] = f) | |
}) : function(a, e, f) { | |
return b[0] = a, | |
d(b, null, f, c), | |
!c.pop() | |
} | |
}), | |
has: z(function(a) { | |
return function(b) { | |
return bc(a, b).length > 0 | |
} | |
}), | |
contains: z(function(a) { | |
return function(b) { | |
return (b.textContent || b.innerText || f(b)).indexOf(a) > -1 | |
} | |
}), | |
enabled: function(a) { | |
return a.disabled === !1 | |
}, | |
disabled: function(a) { | |
return a.disabled === !0 | |
}, | |
checked: function(a) { | |
var b = a.nodeName.toLowerCase(); | |
return b === "input" && !!a.checked || b === "option" && !!a.selected | |
}, | |
selected: function(a) { | |
return a.parentNode && a.parentNode.selectedIndex, | |
a.selected === !0 | |
}, | |
parent: function(a) { | |
return !e.pseudos.empty(a) | |
}, | |
empty: function(a) { | |
var b; | |
a = a.firstChild; | |
while (a) { | |
if (a.nodeName > "@" || (b = a.nodeType) === 3 || b === 4) | |
return !1; | |
a = a.nextSibling | |
} | |
return !0 | |
}, | |
header: function(a) { | |
return T.test(a.nodeName) | |
}, | |
text: function(a) { | |
var b, c; | |
return a.nodeName.toLowerCase() === "input" && (b = a.type) === "text" && ((c = a.getAttribute("type")) == null || c.toLowerCase() === b) | |
}, | |
radio: bd("radio"), | |
checkbox: bd("checkbox"), | |
file: bd("file"), | |
password: bd("password"), | |
image: bd("image"), | |
submit: be("submit"), | |
reset: be("reset"), | |
button: function(a) { | |
var b = a.nodeName.toLowerCase(); | |
return b === "input" && a.type === "button" || b === "button" | |
}, | |
input: function(a) { | |
return U.test(a.nodeName) | |
}, | |
focus: function(a) { | |
var b = a.ownerDocument; | |
return a === b.activeElement && (!b.hasFocus || b.hasFocus()) && (!!a.type || !!a.href) | |
}, | |
active: function(a) { | |
return a === a.ownerDocument.activeElement | |
}, | |
first: bf(function(a, b, c) { | |
return [0] | |
}), | |
last: bf(function(a, b, c) { | |
return [b - 1] | |
}), | |
eq: bf(function(a, b, c) { | |
return [c < 0 ? c + b : c] | |
}), | |
even: bf(function(a, b, c) { | |
for (var d = 0; d < b; d += 2) | |
a.push(d); | |
return a | |
}), | |
odd: bf(function(a, b, c) { | |
for (var d = 1; d < b; d += 2) | |
a.push(d); | |
return a | |
}), | |
lt: bf(function(a, b, c) { | |
for (var d = c < 0 ? c + b : c; --d >= 0; ) | |
a.push(d); | |
return a | |
}), | |
gt: bf(function(a, b, c) { | |
for (var d = c < 0 ? c + b : c; ++d < b; ) | |
a.push(d); | |
return a | |
}) | |
} | |
}, | |
j = s.compareDocumentPosition ? function(a, b) { | |
return a === b ? (k = !0, | |
0) : (!a.compareDocumentPosition || !b.compareDocumentPosition ? a.compareDocumentPosition : a.compareDocumentPosition(b) & 4) ? -1 : 1 | |
} | |
: function(a, b) { | |
if (a === b) | |
return k = !0, | |
0; | |
if (a.sourceIndex && b.sourceIndex) | |
return a.sourceIndex - b.sourceIndex; | |
var c, d, e = [], f = [], g = a.parentNode, h = b.parentNode, i = g; | |
if (g === h) | |
return bg(a, b); | |
if (!g) | |
return -1; | |
if (!h) | |
return 1; | |
while (i) | |
e.unshift(i), | |
i = i.parentNode; | |
i = h; | |
while (i) | |
f.unshift(i), | |
i = i.parentNode; | |
c = e.length, | |
d = f.length; | |
for (var j = 0; j < c && j < d; j++) | |
if (e[j] !== f[j]) | |
return bg(e[j], f[j]); | |
return j === c ? bg(a, f[j], -1) : bg(e[j], b, 1) | |
} | |
, | |
[0, 0].sort(j), | |
m = !k, | |
bc.uniqueSort = function(a) { | |
var b, c = 1; | |
k = m, | |
a.sort(j); | |
if (k) | |
for (; b = a[c]; c++) | |
b === a[c - 1] && a.splice(c--, 1); | |
return a | |
} | |
, | |
bc.error = function(a) { | |
throw new Error("Syntax error, unrecognized expression: " + a) | |
} | |
, | |
i = bc.compile = function(a, b) { | |
var c, d = [], e = [], f = D[o][a]; | |
if (!f) { | |
b || (b = bh(a)), | |
c = b.length; | |
while (c--) | |
f = bm(b[c]), | |
f[o] ? d.push(f) : e.push(f); | |
f = D(a, bn(e, d)) | |
} | |
return f | |
} | |
, | |
r.querySelectorAll && function() { | |
var a, b = bp, c = /'|\\/g, d = /\=[\x20\t\r\n\f]*([^'"\]]*)[\x20\t\r\n\f]*\]/g, e = [":focus"], f = [":active", ":focus"], h = s.matchesSelector || s.mozMatchesSelector || s.webkitMatchesSelector || s.oMatchesSelector || s.msMatchesSelector; | |
X(function(a) { | |
a.innerHTML = "<select><option selected=''></option></select>", | |
a.querySelectorAll("[selected]").length || e.push("\\[" + E + "*(?:checked|disabled|ismap|multiple|readonly|selected|value)"), | |
a.querySelectorAll(":checked").length || e.push(":checked") | |
}), | |
X(function(a) { | |
a.innerHTML = "<p test=''></p>", | |
a.querySelectorAll("[test^='']").length && e.push("[*^$]=" + E + "*(?:\"\"|'')"), | |
a.innerHTML = "<input type='hidden'/>", | |
a.querySelectorAll(":enabled").length || e.push(":enabled", ":disabled") | |
}), | |
e = new RegExp(e.join("|")), | |
bp = function(a, d, f, g, h) { | |
if (!g && !h && (!e || !e.test(a))) { | |
var i, j, k = !0, l = o, m = d, n = d.nodeType === 9 && a; | |
if (d.nodeType === 1 && d.nodeName.toLowerCase() !== "object") { | |
i = bh(a), | |
(k = d.getAttribute("id")) ? l = k.replace(c, "\\$&") : d.setAttribute("id", l), | |
l = "[id='" + l + "'] ", | |
j = i.length; | |
while (j--) | |
i[j] = l + i[j].join(""); | |
m = R.test(a) && d.parentNode || d, | |
n = i.join(",") | |
} | |
if (n) | |
try { | |
return w.apply(f, x.call(m.querySelectorAll(n), 0)), | |
f | |
} catch (p) {} finally { | |
k || d.removeAttribute("id") | |
} | |
} | |
return b(a, d, f, g, h) | |
} | |
, | |
h && (X(function(b) { | |
a = h.call(b, "div"); | |
try { | |
h.call(b, "[test!='']:sizzle"), | |
f.push("!=", J) | |
} catch (c) {} | |
}), | |
f = new RegExp(f.join("|")), | |
bc.matchesSelector = function(b, c) { | |
c = c.replace(d, "='$1']"); | |
if (!g(b) && !f.test(c) && (!e || !e.test(c))) | |
try { | |
var i = h.call(b, c); | |
if (i || a || b.document && b.document.nodeType !== 11) | |
return i | |
} catch (j) {} | |
return bc(c, null, null, [b]).length > 0 | |
} | |
) | |
}(), | |
e.pseudos.nth = e.pseudos.eq, | |
e.filters = bq.prototype = e.pseudos, | |
e.setFilters = new bq, | |
bc.attr = p.attr, | |
p.find = bc, | |
p.expr = bc.selectors, | |
p.expr[":"] = p.expr.pseudos, | |
p.unique = bc.uniqueSort, | |
p.text = bc.getText, | |
p.isXMLDoc = bc.isXML, | |
p.contains = bc.contains | |
}(a); | |
var bc = /Until$/ | |
, bd = /^(?:parents|prev(?:Until|All))/ | |
, be = /^.[^:#\[\.,]*$/ | |
, bf = p.expr.match.needsContext | |
, bg = { | |
children: !0, | |
contents: !0, | |
next: !0, | |
prev: !0 | |
}; | |
p.fn.extend({ | |
find: function(a) { | |
var b, c, d, e, f, g, h = this; | |
if (typeof a != "string") | |
return p(a).filter(function() { | |
for (b = 0, | |
c = h.length; b < c; b++) | |
if (p.contains(h[b], this)) | |
return !0 | |
}); | |
g = this.pushStack("", "find", a); | |
for (b = 0, | |
c = this.length; b < c; b++) { | |
d = g.length, | |
p.find(a, this[b], g); | |
if (b > 0) | |
for (e = d; e < g.length; e++) | |
for (f = 0; f < d; f++) | |
if (g[f] === g[e]) { | |
g.splice(e--, 1); | |
break | |
} | |
} | |
return g | |
}, | |
has: function(a) { | |
var b, c = p(a, this), d = c.length; | |
return this.filter(function() { | |
for (b = 0; b < d; b++) | |
if (p.contains(this, c[b])) | |
return !0 | |
}) | |
}, | |
not: function(a) { | |
return this.pushStack(bj(this, a, !1), "not", a) | |
}, | |
filter: function(a) { | |
return this.pushStack(bj(this, a, !0), "filter", a) | |
}, | |
is: function(a) { | |
return !!a && (typeof a == "string" ? bf.test(a) ? p(a, this.context).index(this[0]) >= 0 : p.filter(a, this).length > 0 : this.filter(a).length > 0) | |
}, | |
closest: function(a, b) { | |
var c, d = 0, e = this.length, f = [], g = bf.test(a) || typeof a != "string" ? p(a, b || this.context) : 0; | |
for (; d < e; d++) { | |
c = this[d]; | |
while (c && c.ownerDocument && c !== b && c.nodeType !== 11) { | |
if (g ? g.index(c) > -1 : p.find.matchesSelector(c, a)) { | |
f.push(c); | |
break | |
} | |
c = c.parentNode | |
} | |
} | |
return f = f.length > 1 ? p.unique(f) : f, | |
this.pushStack(f, "closest", a) | |
}, | |
index: function(a) { | |
return a ? typeof a == "string" ? p.inArray(this[0], p(a)) : p.inArray(a.jquery ? a[0] : a, this) : this[0] && this[0].parentNode ? this.prevAll().length : -1 | |
}, | |
add: function(a, b) { | |
var c = typeof a == "string" ? p(a, b) : p.makeArray(a && a.nodeType ? [a] : a) | |
, d = p.merge(this.get(), c); | |
return this.pushStack(bh(c[0]) || bh(d[0]) ? d : p.unique(d)) | |
}, | |
addBack: function(a) { | |
return this.add(a == null ? this.prevObject : this.prevObject.filter(a)) | |
} | |
}), | |
p.fn.andSelf = p.fn.addBack, | |
p.each({ | |
parent: function(a) { | |
var b = a.parentNode; | |
return b && b.nodeType !== 11 ? b : null | |
}, | |
parents: function(a) { | |
return p.dir(a, "parentNode") | |
}, | |
parentsUntil: function(a, b, c) { | |
return p.dir(a, "parentNode", c) | |
}, | |
next: function(a) { | |
return bi(a, "nextSibling") | |
}, | |
prev: function(a) { | |
return bi(a, "previousSibling") | |
}, | |
nextAll: function(a) { | |
return p.dir(a, "nextSibling") | |
}, | |
prevAll: function(a) { | |
return p.dir(a, "previousSibling") | |
}, | |
nextUntil: function(a, b, c) { | |
return p.dir(a, "nextSibling", c) | |
}, | |
prevUntil: function(a, b, c) { | |
return p.dir(a, "previousSibling", c) | |
}, | |
siblings: function(a) { | |
return p.sibling((a.parentNode || {}).firstChild, a) | |
}, | |
children: function(a) { | |
return p.sibling(a.firstChild) | |
}, | |
contents: function(a) { | |
return p.nodeName(a, "iframe") ? a.contentDocument || a.contentWindow.document : p.merge([], a.childNodes) | |
} | |
}, function(a, b) { | |
p.fn[a] = function(c, d) { | |
var e = p.map(this, b, c); | |
return bc.test(a) || (d = c), | |
d && typeof d == "string" && (e = p.filter(d, e)), | |
e = this.length > 1 && !bg[a] ? p.unique(e) : e, | |
this.length > 1 && bd.test(a) && (e = e.reverse()), | |
this.pushStack(e, a, k.call(arguments).join(",")) | |
} | |
}), | |
p.extend({ | |
filter: function(a, b, c) { | |
return c && (a = ":not(" + a + ")"), | |
b.length === 1 ? p.find.matchesSelector(b[0], a) ? [b[0]] : [] : p.find.matches(a, b) | |
}, | |
dir: function(a, c, d) { | |
var e = [] | |
, f = a[c]; | |
while (f && f.nodeType !== 9 && (d === b || f.nodeType !== 1 || !p(f).is(d))) | |
f.nodeType === 1 && e.push(f), | |
f = f[c]; | |
return e | |
}, | |
sibling: function(a, b) { | |
var c = []; | |
for (; a; a = a.nextSibling) | |
a.nodeType === 1 && a !== b && c.push(a); | |
return c | |
} | |
}); | |
var bl = "abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video" | |
, bm = / jQuery\d+="(?:null|\d+)"/g | |
, bn = /^\s+/ | |
, bo = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi | |
, bp = /<([\w:]+)/ | |
, bq = /<tbody/i | |
, br = /<|&#?\w+;/ | |
, bs = /<(?:script|style|link)/i | |
, bt = /<(?:script|object|embed|option|style)/i | |
, bu = new RegExp("<(?:" + bl + ")[\\s/>]","i") | |
, bv = /^(?:checkbox|radio)$/ | |
, bw = /checked\s*(?:[^=]|=\s*.checked.)/i | |
, bx = /\/(java|ecma)script/i | |
, by = /^\s*<!(?:\[CDATA\[|\-\-)|[\]\-]{2}>\s*$/g | |
, bz = { | |
option: [1, "<select multiple='multiple'>", "</select>"], | |
legend: [1, "<fieldset>", "</fieldset>"], | |
thead: [1, "<table>", "</table>"], | |
tr: [2, "<table><tbody>", "</tbody></table>"], | |
td: [3, "<table><tbody><tr>", "</tr></tbody></table>"], | |
col: [2, "<table><tbody></tbody><colgroup>", "</colgroup></table>"], | |
area: [1, "<map>", "</map>"], | |
_default: [0, "", ""] | |
} | |
, bA = bk(e) | |
, bB = bA.appendChild(e.createElement("div")); | |
bz.optgroup = bz.option, | |
bz.tbody = bz.tfoot = bz.colgroup = bz.caption = bz.thead, | |
bz.th = bz.td, | |
p.support.htmlSerialize || (bz._default = [1, "X<div>", "</div>"]), | |
p.fn.extend({ | |
text: function(a) { | |
return p.access(this, function(a) { | |
return a === b ? p.text(this) : this.empty().append((this[0] && this[0].ownerDocument || e).createTextNode(a)) | |
}, null, a, arguments.length) | |
}, | |
wrapAll: function(a) { | |
if (p.isFunction(a)) | |
return this.each(function(b) { | |
p(this).wrapAll(a.call(this, b)) | |
}); | |
if (this[0]) { | |
var b = p(a, this[0].ownerDocument).eq(0).clone(!0); | |
this[0].parentNode && b.insertBefore(this[0]), | |
b.map(function() { | |
var a = this; | |
while (a.firstChild && a.firstChild.nodeType === 1) | |
a = a.firstChild; | |
return a | |
}).append(this) | |
} | |
return this | |
}, | |
wrapInner: function(a) { | |
return p.isFunction(a) ? this.each(function(b) { | |
p(this).wrapInner(a.call(this, b)) | |
}) : this.each(function() { | |
var b = p(this) | |
, c = b.contents(); | |
c.length ? c.wrapAll(a) : b.append(a) | |
}) | |
}, | |
wrap: function(a) { | |
var b = p.isFunction(a); | |
return this.each(function(c) { | |
p(this).wrapAll(b ? a.call(this, c) : a) | |
}) | |
}, | |
unwrap: function() { | |
return this.parent().each(function() { | |
p.nodeName(this, "body") || p(this).replaceWith(this.childNodes) | |
}).end() | |
}, | |
append: function() { | |
return this.domManip(arguments, !0, function(a) { | |
(this.nodeType === 1 || this.nodeType === 11) && this.appendChild(a) | |
}) | |
}, | |
prepend: function() { | |
return this.domManip(arguments, !0, function(a) { | |
(this.nodeType === 1 || this.nodeType === 11) && this.insertBefore(a, this.firstChild) | |
}) | |
}, | |
before: function() { | |
if (!bh(this[0])) | |
return this.domManip(arguments, !1, function(a) { | |
this.parentNode.insertBefore(a, this) | |
}); | |
if (arguments.length) { | |
var a = p.clean(arguments); | |
return this.pushStack(p.merge(a, this), "before", this.selector) | |
} | |
}, | |
after: function() { | |
if (!bh(this[0])) | |
return this.domManip(arguments, !1, function(a) { | |
this.parentNode.insertBefore(a, this.nextSibling) | |
}); | |
if (arguments.length) { | |
var a = p.clean(arguments); | |
return this.pushStack(p.merge(this, a), "after", this.selector) | |
} | |
}, | |
remove: function(a, b) { | |
var c, d = 0; | |
for (; (c = this[d]) != null; d++) | |
if (!a || p.filter(a, [c]).length) | |
!b && c.nodeType === 1 && (p.cleanData(c.getElementsByTagName("*")), | |
p.cleanData([c])), | |
c.parentNode && c.parentNode.removeChild(c); | |
return this | |
}, | |
empty: function() { | |
var a, b = 0; | |
for (; (a = this[b]) != null; b++) { | |
a.nodeType === 1 && p.cleanData(a.getElementsByTagName("*")); | |
while (a.firstChild) | |
a.removeChild(a.firstChild) | |
} | |
return this | |
}, | |
clone: function(a, b) { | |
return a = a == null ? !1 : a, | |
b = b == null ? a : b, | |
this.map(function() { | |
return p.clone(this, a, b) | |
}) | |
}, | |
html: function(a) { | |
return p.access(this, function(a) { | |
var c = this[0] || {} | |
, d = 0 | |
, e = this.length; | |
if (a === b) | |
return c.nodeType === 1 ? c.innerHTML.replace(bm, "") : b; | |
if (typeof a == "string" && !bs.test(a) && (p.support.htmlSerialize || !bu.test(a)) && (p.support.leadingWhitespace || !bn.test(a)) && !bz[(bp.exec(a) || ["", ""])[1].toLowerCase()]) { | |
a = a.replace(bo, "<$1></$2>"); | |
try { | |
for (; d < e; d++) | |
c = this[d] || {}, | |
c.nodeType === 1 && (p.cleanData(c.getElementsByTagName("*")), | |
c.innerHTML = a); | |
c = 0 | |
} catch (f) {} | |
} | |
c && this.empty().append(a) | |
}, null, a, arguments.length) | |
}, | |
replaceWith: function(a) { | |
return bh(this[0]) ? this.length ? this.pushStack(p(p.isFunction(a) ? a() : a), "replaceWith", a) : this : p.isFunction(a) ? this.each(function(b) { | |
var c = p(this) | |
, d = c.html(); | |
c.replaceWith(a.call(this, b, d)) | |
}) : (typeof a != "string" && (a = p(a).detach()), | |
this.each(function() { | |
var b = this.nextSibling | |
, c = this.parentNode; | |
p(this).remove(), | |
b ? p(b).before(a) : p(c).append(a) | |
})) | |
}, | |
detach: function(a) { | |
return this.remove(a, !0) | |
}, | |
domManip: function(a, c, d) { | |
a = [].concat.apply([], a); | |
var e, f, g, h, i = 0, j = a[0], k = [], l = this.length; | |
if (!p.support.checkClone && l > 1 && typeof j == "string" && bw.test(j)) | |
return this.each(function() { | |
p(this).domManip(a, c, d) | |
}); | |
if (p.isFunction(j)) | |
return this.each(function(e) { | |
var f = p(this); | |
a[0] = j.call(this, e, c ? f.html() : b), | |
f.domManip(a, c, d) | |
}); | |
if (this[0]) { | |
e = p.buildFragment(a, this, k), | |
g = e.fragment, | |
f = g.firstChild, | |
g.childNodes.length === 1 && (g = f); | |
if (f) { | |
c = c && p.nodeName(f, "tr"); | |
for (h = e.cacheable || l - 1; i < l; i++) | |
d.call(c && p.nodeName(this[i], "table") ? bC(this[i], "tbody") : this[i], i === h ? g : p.clone(g, !0, !0)) | |
} | |
g = f = null, | |
k.length && p.each(k, function(a, b) { | |
b.src ? p.ajax ? p.ajax({ | |
url: b.src, | |
type: "GET", | |
dataType: "script", | |
async: !1, | |
global: !1, | |
"throws": !0 | |
}) : p.error("no ajax") : p.globalEval((b.text || b.textContent || b.innerHTML || "").replace(by, "")), | |
b.parentNode && b.parentNode.removeChild(b) | |
}) | |
} | |
return this | |
} | |
}), | |
p.buildFragment = function(a, c, d) { | |
var f, g, h, i = a[0]; | |
return c = c || e, | |
c = !c.nodeType && c[0] || c, | |
c = c.ownerDocument || c, | |
a.length === 1 && typeof i == "string" && i.length < 512 && c === e && i.charAt(0) === "<" && !bt.test(i) && (p.support.checkClone || !bw.test(i)) && (p.support.html5Clone || !bu.test(i)) && (g = !0, | |
f = p.fragments[i], | |
h = f !== b), | |
f || (f = c.createDocumentFragment(), | |
p.clean(a, c, f, d), | |
g && (p.fragments[i] = h && f)), | |
{ | |
fragment: f, | |
cacheable: g | |
} | |
} | |
, | |
p.fragments = {}, | |
p.each({ | |
appendTo: "append", | |
prependTo: "prepend", | |
insertBefore: "before", | |
insertAfter: "after", | |
replaceAll: "replaceWith" | |
}, function(a, b) { | |
p.fn[a] = function(c) { | |
var d, e = 0, f = [], g = p(c), h = g.length, i = this.length === 1 && this[0].parentNode; | |
if ((i == null || i && i.nodeType === 11 && i.childNodes.length === 1) && h === 1) | |
return g[b](this[0]), | |
this; | |
for (; e < h; e++) | |
d = (e > 0 ? this.clone(!0) : this).get(), | |
p(g[e])[b](d), | |
f = f.concat(d); | |
return this.pushStack(f, a, g.selector) | |
} | |
}), | |
p.extend({ | |
clone: function(a, b, c) { | |
var d, e, f, g; | |
p.support.html5Clone || p.isXMLDoc(a) || !bu.test("<" + a.nodeName + ">") ? g = a.cloneNode(!0) : (bB.innerHTML = a.outerHTML, | |
bB.removeChild(g = bB.firstChild)); | |
if ((!p.support.noCloneEvent || !p.support.noCloneChecked) && (a.nodeType === 1 || a.nodeType === 11) && !p.isXMLDoc(a)) { | |
bE(a, g), | |
d = bF(a), | |
e = bF(g); | |
for (f = 0; d[f]; ++f) | |
e[f] && bE(d[f], e[f]) | |
} | |
if (b) { | |
bD(a, g); | |
if (c) { | |
d = bF(a), | |
e = bF(g); | |
for (f = 0; d[f]; ++f) | |
bD(d[f], e[f]) | |
} | |
} | |
return d = e = null, | |
g | |
}, | |
clean: function(a, b, c, d) { | |
var f, g, h, i, j, k, l, m, n, o, q, r, s = b === e && bA, t = []; | |
if (!b || typeof b.createDocumentFragment == "undefined") | |
b = e; | |
for (f = 0; (h = a[f]) != null; f++) { | |
typeof h == "number" && (h += ""); | |
if (!h) | |
continue; | |
if (typeof h == "string") | |
if (!br.test(h)) | |
h = b.createTextNode(h); | |
else { | |
s = s || bk(b), | |
l = b.createElement("div"), | |
s.appendChild(l), | |
h = h.replace(bo, "<$1></$2>"), | |
i = (bp.exec(h) || ["", ""])[1].toLowerCase(), | |
j = bz[i] || bz._default, | |
k = j[0], | |
l.innerHTML = j[1] + h + j[2]; | |
while (k--) | |
l = l.lastChild; | |
if (!p.support.tbody) { | |
m = bq.test(h), | |
n = i === "table" && !m ? l.firstChild && l.firstChild.childNodes : j[1] === "<table>" && !m ? l.childNodes : []; | |
for (g = n.length - 1; g >= 0; --g) | |
p.nodeName(n[g], "tbody") && !n[g].childNodes.length && n[g].parentNode.removeChild(n[g]) | |
} | |
!p.support.leadingWhitespace && bn.test(h) && l.insertBefore(b.createTextNode(bn.exec(h)[0]), l.firstChild), | |
h = l.childNodes, | |
l.parentNode.removeChild(l) | |
} | |
h.nodeType ? t.push(h) : p.merge(t, h) | |
} | |
l && (h = l = s = null); | |
if (!p.support.appendChecked) | |
for (f = 0; (h = t[f]) != null; f++) | |
p.nodeName(h, "input") ? bG(h) : typeof h.getElementsByTagName != "undefined" && p.grep(h.getElementsByTagName("input"), bG); | |
if (c) { | |
q = function(a) { | |
if (!a.type || bx.test(a.type)) | |
return d ? d.push(a.parentNode ? a.parentNode.removeChild(a) : a) : c.appendChild(a) | |
} | |
; | |
for (f = 0; (h = t[f]) != null; f++) | |
if (!p.nodeName(h, "script") || !q(h)) | |
c.appendChild(h), | |
typeof h.getElementsByTagName != "undefined" && (r = p.grep(p.merge([], h.getElementsByTagName("script")), q), | |
t.splice.apply(t, [f + 1, 0].concat(r)), | |
f += r.length) | |
} | |
return t | |
}, | |
cleanData: function(a, b) { | |
var c, d, e, f, g = 0, h = p.expando, i = p.cache, j = p.support.deleteExpando, k = p.event.special; | |
for (; (e = a[g]) != null; g++) | |
if (b || p.acceptData(e)) { | |
d = e[h], | |
c = d && i[d]; | |
if (c) { | |
if (c.events) | |
for (f in c.events) | |
k[f] ? p.event.remove(e, f) : p.removeEvent(e, f, c.handle); | |
i[d] && (delete i[d], | |
j ? delete e[h] : e.removeAttribute ? e.removeAttribute(h) : e[h] = null, | |
p.deletedIds.push(d)) | |
} | |
} | |
} | |
}), | |
function() { | |
var a, b; | |
p.uaMatch = function(a) { | |
a = a.toLowerCase(); | |
var b = /(chrome)[ \/]([\w.]+)/.exec(a) || /(webkit)[ \/]([\w.]+)/.exec(a) || /(opera)(?:.*version|)[ \/]([\w.]+)/.exec(a) || /(msie) ([\w.]+)/.exec(a) || a.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec(a) || []; | |
return { | |
browser: b[1] || "", | |
version: b[2] || "0" | |
} | |
} | |
, | |
a = p.uaMatch(g.userAgent), | |
b = {}, | |
a.browser && (b[a.browser] = !0, | |
b.version = a.version), | |
b.chrome ? b.webkit = !0 : b.webkit && (b.safari = !0), | |
p.browser = b, | |
p.sub = function() { | |
function a(b, c) { | |
return new a.fn.init(b,c) | |
} | |
p.extend(!0, a, this), | |
a.superclass = this, | |
a.fn = a.prototype = this(), | |
a.fn.constructor = a, | |
a.sub = this.sub, | |
a.fn.init = function c(c, d) { | |
return d && d instanceof p && !(d instanceof a) && (d = a(d)), | |
p.fn.init.call(this, c, d, b) | |
} | |
, | |
a.fn.init.prototype = a.fn; | |
var b = a(e); | |
return a | |
} | |
}(); | |
var bH, bI, bJ, bK = /alpha\([^)]*\)/i, bL = /opacity=([^)]*)/, bM = /^(top|right|bottom|left)$/, bN = /^(none|table(?!-c[ea]).+)/, bO = /^margin/, bP = new RegExp("^(" + q + ")(.*)$","i"), bQ = new RegExp("^(" + q + ")(?!px)[a-z%]+$","i"), bR = new RegExp("^([-+])=(" + q + ")","i"), bS = {}, bT = { | |
position: "absolute", | |
visibility: "hidden", | |
display: "block" | |
}, bU = { | |
letterSpacing: 0, | |
fontWeight: 400 | |
}, bV = ["Top", "Right", "Bottom", "Left"], bW = ["Webkit", "O", "Moz", "ms"], bX = p.fn.toggle; | |
p.fn.extend({ | |
css: function(a, c) { | |
return p.access(this, function(a, c, d) { | |
return d !== b ? p.style(a, c, d) : p.css(a, c) | |
}, a, c, arguments.length > 1) | |
}, | |
show: function() { | |
return b$(this, !0) | |
}, | |
hide: function() { | |
return b$(this) | |
}, | |
toggle: function(a, b) { | |
var c = typeof a == "boolean"; | |
return p.isFunction(a) && p.isFunction(b) ? bX.apply(this, arguments) : this.each(function() { | |
(c ? a : bZ(this)) ? p(this).show() : p(this).hide() | |
}) | |
} | |
}), | |
p.extend({ | |
cssHooks: { | |
opacity: { | |
get: function(a, b) { | |
if (b) { | |
var c = bH(a, "opacity"); | |
return c === "" ? "1" : c | |
} | |
} | |
} | |
}, | |
cssNumber: { | |
fillOpacity: !0, | |
fontWeight: !0, | |
lineHeight: !0, | |
opacity: !0, | |
orphans: !0, | |
widows: !0, | |
zIndex: !0, | |
zoom: !0 | |
}, | |
cssProps: { | |
"float": p.support.cssFloat ? "cssFloat" : "styleFloat" | |
}, | |
style: function(a, c, d, e) { | |
if (!a || a.nodeType === 3 || a.nodeType === 8 || !a.style) | |
return; | |
var f, g, h, i = p.camelCase(c), j = a.style; | |
c = p.cssProps[i] || (p.cssProps[i] = bY(j, i)), | |
h = p.cssHooks[c] || p.cssHooks[i]; | |
if (d === b) | |
return h && "get"in h && (f = h.get(a, !1, e)) !== b ? f : j[c]; | |
g = typeof d, | |
g === "string" && (f = bR.exec(d)) && (d = (f[1] + 1) * f[2] + parseFloat(p.css(a, c)), | |
g = "number"); | |
if (d == null || g === "number" && isNaN(d)) | |
return; | |
g === "number" && !p.cssNumber[i] && (d += "px"); | |
if (!h || !("set"in h) || (d = h.set(a, d, e)) !== b) | |
try { | |
j[c] = d | |
} catch (k) {} | |
}, | |
css: function(a, c, d, e) { | |
var f, g, h, i = p.camelCase(c); | |
return c = p.cssProps[i] || (p.cssProps[i] = bY(a.style, i)), | |
h = p.cssHooks[c] || p.cssHooks[i], | |
h && "get"in h && (f = h.get(a, !0, e)), | |
f === b && (f = bH(a, c)), | |
f === "normal" && c in bU && (f = bU[c]), | |
d || e !== b ? (g = parseFloat(f), | |
d || p.isNumeric(g) ? g || 0 : f) : f | |
}, | |
swap: function(a, b, c) { | |
var d, e, f = {}; | |
for (e in b) | |
f[e] = a.style[e], | |
a.style[e] = b[e]; | |
d = c.call(a); | |
for (e in b) | |
a.style[e] = f[e]; | |
return d | |
} | |
}), | |
a.getComputedStyle ? bH = function(b, c) { | |
var d, e, f, g, h = a.getComputedStyle(b, null), i = b.style; | |
return h && (d = h[c], | |
d === "" && !p.contains(b.ownerDocument, b) && (d = p.style(b, c)), | |
bQ.test(d) && bO.test(c) && (e = i.width, | |
f = i.minWidth, | |
g = i.maxWidth, | |
i.minWidth = i.maxWidth = i.width = d, | |
d = h.width, | |
i.width = e, | |
i.minWidth = f, | |
i.maxWidth = g)), | |
d | |
} | |
: e.documentElement.currentStyle && (bH = function(a, b) { | |
var c, d, e = a.currentStyle && a.currentStyle[b], f = a.style; | |
return e == null && f && f[b] && (e = f[b]), | |
bQ.test(e) && !bM.test(b) && (c = f.left, | |
d = a.runtimeStyle && a.runtimeStyle.left, | |
d && (a.runtimeStyle.left = a.currentStyle.left), | |
f.left = b === "fontSize" ? "1em" : e, | |
e = f.pixelLeft + "px", | |
f.left = c, | |
d && (a.runtimeStyle.left = d)), | |
e === "" ? "auto" : e | |
} | |
), | |
p.each(["height", "width"], function(a, b) { | |
p.cssHooks[b] = { | |
get: function(a, c, d) { | |
if (c) | |
return a.offsetWidth === 0 && bN.test(bH(a, "display")) ? p.swap(a, bT, function() { | |
return cb(a, b, d) | |
}) : cb(a, b, d) | |
}, | |
set: function(a, c, d) { | |
return b_(a, c, d ? ca(a, b, d, p.support.boxSizing && p.css(a, "boxSizing") === "border-box") : 0) | |
} | |
} | |
}), | |
p.support.opacity || (p.cssHooks.opacity = { | |
get: function(a, b) { | |
return bL.test((b && a.currentStyle ? a.currentStyle.filter : a.style.filter) || "") ? .01 * parseFloat(RegExp.$1) + "" : b ? "1" : "" | |
}, | |
set: function(a, b) { | |
var c = a.style | |
, d = a.currentStyle | |
, e = p.isNumeric(b) ? "alpha(opacity=" + b * 100 + ")" : "" | |
, f = d && d.filter || c.filter || ""; | |
c.zoom = 1; | |
if (b >= 1 && p.trim(f.replace(bK, "")) === "" && c.removeAttribute) { | |
c.removeAttribute("filter"); | |
if (d && !d.filter) | |
return | |
} | |
c.filter = bK.test(f) ? f.replace(bK, e) : f + " " + e | |
} | |
}), | |
p(function() { | |
p.support.reliableMarginRight || (p.cssHooks.marginRight = { | |
get: function(a, b) { | |
return p.swap(a, { | |
display: "inline-block" | |
}, function() { | |
if (b) | |
return bH(a, "marginRight") | |
}) | |
} | |
}), | |
!p.support.pixelPosition && p.fn.position && p.each(["top", "left"], function(a, b) { | |
p.cssHooks[b] = { | |
get: function(a, c) { | |
if (c) { | |
var d = bH(a, b); | |
return bQ.test(d) ? p(a).position()[b] + "px" : d | |
} | |
} | |
} | |
}) | |
}), | |
p.expr && p.expr.filters && (p.expr.filters.hidden = function(a) { | |
return a.offsetWidth === 0 && a.offsetHeight === 0 || !p.support.reliableHiddenOffsets && (a.style && a.style.display || bH(a, "display")) === "none" | |
} | |
, | |
p.expr.filters.visible = function(a) { | |
return !p.expr.filters.hidden(a) | |
} | |
), | |
p.each({ | |
margin: "", | |
padding: "", | |
border: "Width" | |
}, function(a, b) { | |
p.cssHooks[a + b] = { | |
expand: function(c) { | |
var d, e = typeof c == "string" ? c.split(" ") : [c], f = {}; | |
for (d = 0; d < 4; d++) | |
f[a + bV[d] + b] = e[d] || e[d - 2] || e[0]; | |
return f | |
} | |
}, | |
bO.test(a) || (p.cssHooks[a + b].set = b_) | |
}); | |
var cd = /%20/g | |
, ce = /\[\]$/ | |
, cf = /\r?\n/g | |
, cg = /^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i | |
, ch = /^(?:select|textarea)/i; | |
p.fn.extend({ | |
serialize: function() { | |
return p.param(this.serializeArray()) | |
}, | |
serializeArray: function() { | |
return this.map(function() { | |
return this.elements ? p.makeArray(this.elements) : this | |
}).filter(function() { | |
return this.name && !this.disabled && (this.checked || ch.test(this.nodeName) || cg.test(this.type)) | |
}).map(function(a, b) { | |
var c = p(this).val(); | |
return c == null ? null : p.isArray(c) ? p.map(c, function(a, c) { | |
return { | |
name: b.name, | |
value: a.replace(cf, "\r\n") | |
} | |
}) : { | |
name: b.name, | |
value: c.replace(cf, "\r\n") | |
} | |
}).get() | |
} | |
}), | |
p.param = function(a, c) { | |
var d, e = [], f = function(a, b) { | |
b = p.isFunction(b) ? b() : b == null ? "" : b, | |
e[e.length] = encodeURIComponent(a) + "=" + encodeURIComponent(b) | |
}; | |
c === b && (c = p.ajaxSettings && p.ajaxSettings.traditional); | |
if (p.isArray(a) || a.jquery && !p.isPlainObject(a)) | |
p.each(a, function() { | |
f(this.name, this.value) | |
}); | |
else | |
for (d in a) | |
ci(d, a[d], c, f); | |
return e.join("&").replace(cd, "+") | |
} | |
; | |
var cj, ck, cl = /#.*$/, cm = /^(.*?):[ \t]*([^\r\n]*)\r?$/mg, cn = /^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/, co = /^(?:GET|HEAD)$/, cp = /^\/\//, cq = /\?/, cr = /<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi, cs = /([?&])_=[^&]*/, ct = /^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/, cu = p.fn.load, cv = {}, cw = {}, cx = ["*/"] + ["*"]; | |
try { | |
ck = f.href | |
} catch (cy) { | |
ck = e.createElement("a"), | |
ck.href = "", | |
ck = ck.href | |
} | |
cj = ct.exec(ck.toLowerCase()) || [], | |
p.fn.load = function(a, c, d) { | |
if (typeof a != "string" && cu) | |
return cu.apply(this, arguments); | |
if (!this.length) | |
return this; | |
var e, f, g, h = this, i = a.indexOf(" "); | |
return i >= 0 && (e = a.slice(i, a.length), | |
a = a.slice(0, i)), | |
p.isFunction(c) ? (d = c, | |
c = b) : c && typeof c == "object" && (f = "POST"), | |
p.ajax({ | |
url: a, | |
type: f, | |
dataType: "html", | |
data: c, | |
complete: function(a, b) { | |
d && h.each(d, g || [a.responseText, b, a]) | |
} | |
}).done(function(a) { | |
g = arguments, | |
h.html(e ? p("<div>").append(a.replace(cr, "")).find(e) : a) | |
}), | |
this | |
} | |
, | |
p.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "), function(a, b) { | |
p.fn[b] = function(a) { | |
return this.on(b, a) | |
} | |
}), | |
p.each(["get", "post"], function(a, c) { | |
p[c] = function(a, d, e, f) { | |
return p.isFunction(d) && (f = f || e, | |
e = d, | |
d = b), | |
p.ajax({ | |
type: c, | |
url: a, | |
data: d, | |
success: e, | |
dataType: f | |
}) | |
} | |
}), | |
p.extend({ | |
getScript: function(a, c) { | |
return p.get(a, b, c, "script") | |
}, | |
getJSON: function(a, b, c) { | |
return p.get(a, b, c, "json") | |
}, | |
ajaxSetup: function(a, b) { | |
return b ? cB(a, p.ajaxSettings) : (b = a, | |
a = p.ajaxSettings), | |
cB(a, b), | |
a | |
}, | |
ajaxSettings: { | |
url: ck, | |
isLocal: cn.test(cj[1]), | |
global: !0, | |
type: "GET", | |
contentType: "application/x-www-form-urlencoded; charset=UTF-8", | |
processData: !0, | |
async: !0, | |
accepts: { | |
xml: "application/xml, text/xml", | |
html: "text/html", | |
text: "text/plain", | |
json: "application/json, text/javascript", | |
"*": cx | |
}, | |
contents: { | |
xml: /xml/, | |
html: /html/, | |
json: /json/ | |
}, | |
responseFields: { | |
xml: "responseXML", | |
text: "responseText" | |
}, | |
converters: { | |
"* text": a.String, | |
"text html": !0, | |
"text json": p.parseJSON, | |
"text xml": p.parseXML | |
}, | |
flatOptions: { | |
context: !0, | |
url: !0 | |
} | |
}, | |
ajaxPrefilter: cz(cv), | |
ajaxTransport: cz(cw), | |
ajax: function(a, c) { | |
function y(a, c, f, i) { | |
var k, s, t, u, w, y = c; | |
if (v === 2) | |
return; | |
v = 2, | |
h && clearTimeout(h), | |
g = b, | |
e = i || "", | |
x.readyState = a > 0 ? 4 : 0, | |
f && (u = cC(l, x, f)); | |
if (a >= 200 && a < 300 || a === 304) | |
l.ifModified && (w = x.getResponseHeader("Last-Modified"), | |
w && (p.lastModified[d] = w), | |
w = x.getResponseHeader("Etag"), | |
w && (p.etag[d] = w)), | |
a === 304 ? (y = "notmodified", | |
k = !0) : (k = cD(l, u), | |
y = k.state, | |
s = k.data, | |
t = k.error, | |
k = !t); | |
else { | |
t = y; | |
if (!y || a) | |
y = "error", | |
a < 0 && (a = 0) | |
} | |
x.status = a, | |
x.statusText = (c || y) + "", | |
k ? o.resolveWith(m, [s, y, x]) : o.rejectWith(m, [x, y, t]), | |
x.statusCode(r), | |
r = b, | |
j && n.trigger("ajax" + (k ? "Success" : "Error"), [x, l, k ? s : t]), | |
q.fireWith(m, [x, y]), | |
j && (n.trigger("ajaxComplete", [x, l]), | |
--p.active || p.event.trigger("ajaxStop")) | |
} | |
typeof a == "object" && (c = a, | |
a = b), | |
c = c || {}; | |
var d, e, f, g, h, i, j, k, l = p.ajaxSetup({}, c), m = l.context || l, n = m !== l && (m.nodeType || m instanceof p) ? p(m) : p.event, o = p.Deferred(), q = p.Callbacks("once memory"), r = l.statusCode || {}, t = {}, u = {}, v = 0, w = "canceled", x = { | |
readyState: 0, | |
setRequestHeader: function(a, b) { | |
if (!v) { | |
var c = a.toLowerCase(); | |
a = u[c] = u[c] || a, | |
t[a] = b | |
} | |
return this | |
}, | |
getAllResponseHeaders: function() { | |
return v === 2 ? e : null | |
}, | |
getResponseHeader: function(a) { | |
var c; | |
if (v === 2) { | |
if (!f) { | |
f = {}; | |
while (c = cm.exec(e)) | |
f[c[1].toLowerCase()] = c[2] | |
} | |
c = f[a.toLowerCase()] | |
} | |
return c === b ? null : c | |
}, | |
overrideMimeType: function(a) { | |
return v || (l.mimeType = a), | |
this | |
}, | |
abort: function(a) { | |
return a = a || w, | |
g && g.abort(a), | |
y(0, a), | |
this | |
} | |
}; | |
o.promise(x), | |
x.success = x.done, | |
x.error = x.fail, | |
x.complete = q.add, | |
x.statusCode = function(a) { | |
if (a) { | |
var b; | |
if (v < 2) | |
for (b in a) | |
r[b] = [r[b], a[b]]; | |
else | |
b = a[x.status], | |
x.always(b) | |
} | |
return this | |
} | |
, | |
l.url = ((a || l.url) + "").replace(cl, "").replace(cp, cj[1] + "//"), | |
l.dataTypes = p.trim(l.dataType || "*").toLowerCase().split(s), | |
l.crossDomain == null && (i = ct.exec(l.url.toLowerCase()) || !1, | |
l.crossDomain = i && i.join(":") + (i[3] ? "" : i[1] === "http:" ? 80 : 443) !== cj.join(":") + (cj[3] ? "" : cj[1] === "http:" ? 80 : 443)), | |
l.data && l.processData && typeof l.data != "string" && (l.data = p.param(l.data, l.traditional)), | |
cA(cv, l, c, x); | |
if (v === 2) | |
return x; | |
j = l.global, | |
l.type = l.type.toUpperCase(), | |
l.hasContent = !co.test(l.type), | |
j && p.active++ === 0 && p.event.trigger("ajaxStart"); | |
if (!l.hasContent) { | |
l.data && (l.url += (cq.test(l.url) ? "&" : "?") + l.data, | |
delete l.data), | |
d = l.url; | |
if (l.cache === !1) { | |
var z = p.now() | |
, A = l.url.replace(cs, "$1_=" + z); | |
l.url = A + (A === l.url ? (cq.test(l.url) ? "&" : "?") + "_=" + z : "") | |
} | |
} | |
(l.data && l.hasContent && l.contentType !== !1 || c.contentType) && x.setRequestHeader("Content-Type", l.contentType), | |
l.ifModified && (d = d || l.url, | |
p.lastModified[d] && x.setRequestHeader("If-Modified-Since", p.lastModified[d]), | |
p.etag[d] && x.setRequestHeader("If-None-Match", p.etag[d])), | |
x.setRequestHeader("Accept", l.dataTypes[0] && l.accepts[l.dataTypes[0]] ? l.accepts[l.dataTypes[0]] + (l.dataTypes[0] !== "*" ? ", " + cx + "; q=0.01" : "") : l.accepts["*"]); | |
for (k in l.headers) | |
x.setRequestHeader(k, l.headers[k]); | |
if (!l.beforeSend || l.beforeSend.call(m, x, l) !== !1 && v !== 2) { | |
w = "abort"; | |
for (k in { | |
success: 1, | |
error: 1, | |
complete: 1 | |
}) | |
x[k](l[k]); | |
g = cA(cw, l, c, x); | |
if (!g) | |
y(-1, "No Transport"); | |
else { | |
x.readyState = 1, | |
j && n.trigger("ajaxSend", [x, l]), | |
l.async && l.timeout > 0 && (h = setTimeout(function() { | |
x.abort("timeout") | |
}, l.timeout)); | |
try { | |
v = 1, | |
g.send(t, y) | |
} catch (B) { | |
if (v < 2) | |
y(-1, B); | |
else | |
throw B | |
} | |
} | |
return x | |
} | |
return x.abort() | |
}, | |
active: 0, | |
lastModified: {}, | |
etag: {} | |
}); | |
var cE = [] | |
, cF = /\?/ | |
, cG = /(=)\?(?=&|$)|\?\?/ | |
, cH = p.now(); | |
p.ajaxSetup({ | |
jsonp: "callback", | |
jsonpCallback: function() { | |
var a = cE.pop() || p.expando + "_" + cH++; | |
return this[a] = !0, | |
a | |
} | |
}), | |
p.ajaxPrefilter("json jsonp", function(c, d, e) { | |
var f, g, h, i = c.data, j = c.url, k = c.jsonp !== !1, l = k && cG.test(j), m = k && !l && typeof i == "string" && !(c.contentType || "").indexOf("application/x-www-form-urlencoded") && cG.test(i); | |
if (c.dataTypes[0] === "jsonp" || l || m) | |
return f = c.jsonpCallback = p.isFunction(c.jsonpCallback) ? c.jsonpCallback() : c.jsonpCallback, | |
g = a[f], | |
l ? c.url = j.replace(cG, "$1" + f) : m ? c.data = i.replace(cG, "$1" + f) : k && (c.url += (cF.test(j) ? "&" : "?") + c.jsonp + "=" + f), | |
c.converters["script json"] = function() { | |
return h || p.error(f + " was not called"), | |
h[0] | |
} | |
, | |
c.dataTypes[0] = "json", | |
a[f] = function() { | |
h = arguments | |
} | |
, | |
e.always(function() { | |
a[f] = g, | |
c[f] && (c.jsonpCallback = d.jsonpCallback, | |
cE.push(f)), | |
h && p.isFunction(g) && g(h[0]), | |
h = g = b | |
}), | |
"script" | |
}), | |
p.ajaxSetup({ | |
accepts: { | |
script: "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript" | |
}, | |
contents: { | |
script: /javascript|ecmascript/ | |
}, | |
converters: { | |
"text script": function(a) { | |
return p.globalEval(a), | |
a | |
} | |
} | |
}), | |
p.ajaxPrefilter("script", function(a) { | |
a.cache === b && (a.cache = !1), | |
a.crossDomain && (a.type = "GET", | |
a.global = !1) | |
}), | |
p.ajaxTransport("script", function(a) { | |
if (a.crossDomain) { | |
var c, d = e.head || e.getElementsByTagName("head")[0] || e.documentElement; | |
return { | |
send: function(f, g) { | |
c = e.createElement("script"), | |
c.async = "async", | |
a.scriptCharset && (c.charset = a.scriptCharset), | |
c.src = a.url, | |
c.onload = c.onreadystatechange = function(a, e) { | |
if (e || !c.readyState || /loaded|complete/.test(c.readyState)) | |
c.onload = c.onreadystatechange = null, | |
d && c.parentNode && d.removeChild(c), | |
c = b, | |
e || g(200, "success") | |
} | |
, | |
d.insertBefore(c, d.firstChild) | |
}, | |
abort: function() { | |
c && c.onload(0, 1) | |
} | |
} | |
} | |
}); | |
var cI, cJ = a.ActiveXObject ? function() { | |
for (var a in cI) | |
cI[a](0, 1) | |
} | |
: !1, cK = 0; | |
p.ajaxSettings.xhr = a.ActiveXObject ? function() { | |
return !this.isLocal && cL() || cM() | |
} | |
: cL, | |
function(a) { | |
p.extend(p.support, { | |
ajax: !!a, | |
cors: !!a && "withCredentials"in a | |
}) | |
}(p.ajaxSettings.xhr()), | |
p.support.ajax && p.ajaxTransport(function(c) { | |
if (!c.crossDomain || p.support.cors) { | |
var d; | |
return { | |
send: function(e, f) { | |
var g, h, i = c.xhr(); | |
c.username ? i.open(c.type, c.url, c.async, c.username, c.password) : i.open(c.type, c.url, c.async); | |
if (c.xhrFields) | |
for (h in c.xhrFields) | |
i[h] = c.xhrFields[h]; | |
c.mimeType && i.overrideMimeType && i.overrideMimeType(c.mimeType), | |
!c.crossDomain && !e["X-Requested-With"] && (e["X-Requested-With"] = "XMLHttpRequest"); | |
try { | |
for (h in e) | |
i.setRequestHeader(h, e[h]) | |
} catch (j) {} | |
i.send(c.hasContent && c.data || null), | |
d = function(a, e) { | |
var h, j, k, l, m; | |
try { | |
if (d && (e || i.readyState === 4)) { | |
d = b, | |
g && (i.onreadystatechange = p.noop, | |
cJ && delete cI[g]); | |
if (e) | |
i.readyState !== 4 && i.abort(); | |
else { | |
h = i.status, | |
k = i.getAllResponseHeaders(), | |
l = {}, | |
m = i.responseXML, | |
m && m.documentElement && (l.xml = m); | |
try { | |
l.text = i.responseText | |
} catch (a) {} | |
try { | |
j = i.statusText | |
} catch (n) { | |
j = "" | |
} | |
!h && c.isLocal && !c.crossDomain ? h = l.text ? 200 : 404 : h === 1223 && (h = 204) | |
} | |
} | |
} catch (o) { | |
e || f(-1, o) | |
} | |
l && f(h, j, l, k) | |
} | |
, | |
c.async ? i.readyState === 4 ? setTimeout(d, 0) : (g = ++cK, | |
cJ && (cI || (cI = {}, | |
p(a).unload(cJ)), | |
cI[g] = d), | |
i.onreadystatechange = d) : d() | |
}, | |
abort: function() { | |
d && d(0, 1) | |
} | |
} | |
} | |
}); | |
var cN, cO, cP = /^(?:toggle|show|hide)$/, cQ = new RegExp("^(?:([-+])=|)(" + q + ")([a-z%]*)$","i"), cR = /queueHooks$/, cS = [cY], cT = { | |
"*": [function(a, b) { | |
var c, d, e = this.createTween(a, b), f = cQ.exec(b), g = e.cur(), h = +g || 0, i = 1, j = 20; | |
if (f) { | |
c = +f[2], | |
d = f[3] || (p.cssNumber[a] ? "" : "px"); | |
if (d !== "px" && h) { | |
h = p.css(e.elem, a, !0) || c || 1; | |
do | |
i = i || ".5", | |
h = h / i, | |
p.style(e.elem, a, h + d); | |
while (i !== (i = e.cur() / g) && i !== 1 && --j) | |
} | |
e.unit = d, | |
e.start = h, | |
e.end = f[1] ? h + (f[1] + 1) * c : c | |
} | |
return e | |
} | |
] | |
}; | |
p.Animation = p.extend(cW, { | |
tweener: function(a, b) { | |
p.isFunction(a) ? (b = a, | |
a = ["*"]) : a = a.split(" "); | |
var c, d = 0, e = a.length; | |
for (; d < e; d++) | |
c = a[d], | |
cT[c] = cT[c] || [], | |
cT[c].unshift(b) | |
}, | |
prefilter: function(a, b) { | |
b ? cS.unshift(a) : cS.push(a) | |
} | |
}), | |
p.Tween = cZ, | |
cZ.prototype = { | |
constructor: cZ, | |
init: function(a, b, c, d, e, f) { | |
this.elem = a, | |
this.prop = c, | |
this.easing = e || "swing", | |
this.options = b, | |
this.start = this.now = this.cur(), | |
this.end = d, | |
this.unit = f || (p.cssNumber[c] ? "" : "px") | |
}, | |
cur: function() { | |
var a = cZ.propHooks[this.prop]; | |
return a && a.get ? a.get(this) : cZ.propHooks._default.get(this) | |
}, | |
run: function(a) { | |
var b, c = cZ.propHooks[this.prop]; | |
return this.options.duration ? this.pos = b = p.easing[this.easing](a, this.options.duration * a, 0, 1, this.options.duration) : this.pos = b = a, | |
this.now = (this.end - this.start) * b + this.start, | |
this.options.step && this.options.step.call(this.elem, this.now, this), | |
c && c.set ? c.set(this) : cZ.propHooks._default.set(this), | |
this | |
} | |
}, | |
cZ.prototype.init.prototype = cZ.prototype, | |
cZ.propHooks = { | |
_default: { | |
get: function(a) { | |
var b; | |
return a.elem[a.prop] == null || !!a.elem.style && a.elem.style[a.prop] != null ? (b = p.css(a.elem, a.prop, !1, ""), | |
!b || b === "auto" ? 0 : b) : a.elem[a.prop] | |
}, | |
set: function(a) { | |
p.fx.step[a.prop] ? p.fx.step[a.prop](a) : a.elem.style && (a.elem.style[p.cssProps[a.prop]] != null || p.cssHooks[a.prop]) ? p.style(a.elem, a.prop, a.now + a.unit) : a.elem[a.prop] = a.now | |
} | |
} | |
}, | |
cZ.propHooks.scrollTop = cZ.propHooks.scrollLeft = { | |
set: function(a) { | |
a.elem.nodeType && a.elem.parentNode && (a.elem[a.prop] = a.now) | |
} | |
}, | |
p.each(["toggle", "show", "hide"], function(a, b) { | |
var c = p.fn[b]; | |
p.fn[b] = function(d, e, f) { | |
return d == null || typeof d == "boolean" || !a && p.isFunction(d) && p.isFunction(e) ? c.apply(this, arguments) : this.animate(c$(b, !0), d, e, f) | |
} | |
}), | |
p.fn.extend({ | |
fadeTo: function(a, b, c, d) { | |
return this.filter(bZ).css("opacity", 0).show().end().animate({ | |
opacity: b | |
}, a, c, d) | |
}, | |
animate: function(a, b, c, d) { | |
var e = p.isEmptyObject(a) | |
, f = p.speed(b, c, d) | |
, g = function() { | |
var b = cW(this, p.extend({}, a), f); | |
e && b.stop(!0) | |
}; | |
return e || f.queue === !1 ? this.each(g) : this.queue(f.queue, g) | |
}, | |
stop: function(a, c, d) { | |
var e = function(a) { | |
var b = a.stop; | |
delete a.stop, | |
b(d) | |
}; | |
return typeof a != "string" && (d = c, | |
c = a, | |
a = b), | |
c && a !== !1 && this.queue(a || "fx", []), | |
this.each(function() { | |
var b = !0 | |
, c = a != null && a + "queueHooks" | |
, f = p.timers | |
, g = p._data(this); | |
if (c) | |
g[c] && g[c].stop && e(g[c]); | |
else | |
for (c in g) | |
g[c] && g[c].stop && cR.test(c) && e(g[c]); | |
for (c = f.length; c--; ) | |
f[c].elem === this && (a == null || f[c].queue === a) && (f[c].anim.stop(d), | |
b = !1, | |
f.splice(c, 1)); | |
(b || !d) && p.dequeue(this, a) | |
}) | |
} | |
}), | |
p.each({ | |
slideDown: c$("show"), | |
slideUp: c$("hide"), | |
slideToggle: c$("toggle"), | |
fadeIn: { | |
opacity: "show" | |
}, | |
fadeOut: { | |
opacity: "hide" | |
}, | |
fadeToggle: { | |
opacity: "toggle" | |
} | |
}, function(a, b) { | |
p.fn[a] = function(a, c, d) { | |
return this.animate(b, a, c, d) | |
} | |
}), | |
p.speed = function(a, b, c) { | |
var d = a && typeof a == "object" ? p.extend({}, a) : { | |
complete: c || !c && b || p.isFunction(a) && a, | |
duration: a, | |
easing: c && b || b && !p.isFunction(b) && b | |
}; | |
d.duration = p.fx.off ? 0 : typeof d.duration == "number" ? d.duration : d.duration in p.fx.speeds ? p.fx.speeds[d.duration] : p.fx.speeds._default; | |
if (d.queue == null || d.queue === !0) | |
d.queue = "fx"; | |
return d.old = d.complete, | |
d.complete = function() { | |
p.isFunction(d.old) && d.old.call(this), | |
d.queue && p.dequeue(this, d.queue) | |
} | |
, | |
d | |
} | |
, | |
p.easing = { | |
linear: function(a) { | |
return a | |
}, | |
swing: function(a) { | |
return .5 - Math.cos(a * Math.PI) / 2 | |
} | |
}, | |
p.timers = [], | |
p.fx = cZ.prototype.init, | |
p.fx.tick = function() { | |
var a, b = p.timers, c = 0; | |
for (; c < b.length; c++) | |
a = b[c], | |
!a() && b[c] === a && b.splice(c--, 1); | |
b.length || p.fx.stop() | |
} | |
, | |
p.fx.timer = function(a) { | |
a() && p.timers.push(a) && !cO && (cO = setInterval(p.fx.tick, p.fx.interval)) | |
} | |
, | |
p.fx.interval = 13, | |
p.fx.stop = function() { | |
clearInterval(cO), | |
cO = null | |
} | |
, | |
p.fx.speeds = { | |
slow: 600, | |
fast: 200, | |
_default: 400 | |
}, | |
p.fx.step = {}, | |
p.expr && p.expr.filters && (p.expr.filters.animated = function(a) { | |
return p.grep(p.timers, function(b) { | |
return a === b.elem | |
}).length | |
} | |
); | |
var c_ = /^(?:body|html)$/i; | |
p.fn.offset = function(a) { | |
if (arguments.length) | |
return a === b ? this : this.each(function(b) { | |
p.offset.setOffset(this, a, b) | |
}); | |
var c, d, e, f, g, h, i, j = { | |
top: 0, | |
left: 0 | |
}, k = this[0], l = k && k.ownerDocument; | |
if (!l) | |
return; | |
return (d = l.body) === k ? p.offset.bodyOffset(k) : (c = l.documentElement, | |
p.contains(c, k) ? (typeof k.getBoundingClientRect != "undefined" && (j = k.getBoundingClientRect()), | |
e = da(l), | |
f = c.clientTop || d.clientTop || 0, | |
g = c.clientLeft || d.clientLeft || 0, | |
h = e.pageYOffset || c.scrollTop, | |
i = e.pageXOffset || c.scrollLeft, | |
{ | |
top: j.top + h - f, | |
left: j.left + i - g | |
}) : j) | |
} | |
, | |
p.offset = { | |
bodyOffset: function(a) { | |
var b = a.offsetTop | |
, c = a.offsetLeft; | |
return p.support.doesNotIncludeMarginInBodyOffset && (b += parseFloat(p.css(a, "marginTop")) || 0, | |
c += parseFloat(p.css(a, "marginLeft")) || 0), | |
{ | |
top: b, | |
left: c | |
} | |
}, | |
setOffset: function(a, b, c) { | |
var d = p.css(a, "position"); | |
d === "static" && (a.style.position = "relative"); | |
var e = p(a), f = e.offset(), g = p.css(a, "top"), h = p.css(a, "left"), i = (d === "absolute" || d === "fixed") && p.inArray("auto", [g, h]) > -1, j = {}, k = {}, l, m; | |
i ? (k = e.position(), | |
l = k.top, | |
m = k.left) : (l = parseFloat(g) || 0, | |
m = parseFloat(h) || 0), | |
p.isFunction(b) && (b = b.call(a, c, f)), | |
b.top != null && (j.top = b.top - f.top + l), | |
b.left != null && (j.left = b.left - f.left + m), | |
"using"in b ? b.using.call(a, j) : e.css(j) | |
} | |
}, | |
p.fn.extend({ | |
position: function() { | |
if (!this[0]) | |
return; | |
var a = this[0] | |
, b = this.offsetParent() | |
, c = this.offset() | |
, d = c_.test(b[0].nodeName) ? { | |
top: 0, | |
left: 0 | |
} : b.offset(); | |
return c.top -= parseFloat(p.css(a, "marginTop")) || 0, | |
c.left -= parseFloat(p.css(a, "marginLeft")) || 0, | |
d.top += parseFloat(p.css(b[0], "borderTopWidth")) || 0, | |
d.left += parseFloat(p.css(b[0], "borderLeftWidth")) || 0, | |
{ | |
top: c.top - d.top, | |
left: c.left - d.left | |
} | |
}, | |
offsetParent: function() { | |
return this.map(function() { | |
var a = this.offsetParent || e.body; | |
while (a && !c_.test(a.nodeName) && p.css(a, "position") === "static") | |
a = a.offsetParent; | |
return a || e.body | |
}) | |
} | |
}), | |
p.each({ | |
scrollLeft: "pageXOffset", | |
scrollTop: "pageYOffset" | |
}, function(a, c) { | |
var d = /Y/.test(c); | |
p.fn[a] = function(e) { | |
return p.access(this, function(a, e, f) { | |
var g = da(a); | |
if (f === b) | |
return g ? c in g ? g[c] : g.document.documentElement[e] : a[e]; | |
g ? g.scrollTo(d ? p(g).scrollLeft() : f, d ? f : p(g).scrollTop()) : a[e] = f | |
}, a, e, arguments.length, null) | |
} | |
}), | |
p.each({ | |
Height: "height", | |
Width: "width" | |
}, function(a, c) { | |
p.each({ | |
padding: "inner" + a, | |
content: c, | |
"": "outer" + a | |
}, function(d, e) { | |
p.fn[e] = function(e, f) { | |
var g = arguments.length && (d || typeof e != "boolean") | |
, h = d || (e === !0 || f === !0 ? "margin" : "border"); | |
return p.access(this, function(c, d, e) { | |
var f; | |
return p.isWindow(c) ? c.document.documentElement["client" + a] : c.nodeType === 9 ? (f = c.documentElement, | |
Math.max(c.body["scroll" + a], f["scroll" + a], c.body["offset" + a], f["offset" + a], f["client" + a])) : e === b ? p.css(c, d, e, h) : p.style(c, d, e, h) | |
}, c, g ? e : b, g, null) | |
} | |
}) | |
}), | |
a.jQuery = a.$ = p, | |
typeof define == "function" && define.amd && define.amd.jQuery && define("jquery", [], function() { | |
return p | |
}) | |
} | |
)(window); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment