mirror of
https://github.com/swc-project/swc.git
synced 2024-12-30 17:15:11 +03:00
b02e189d07
swc_ecma_codegen: - Fix codegen of `U+0028` and `U+0029`. swc_ecma_minifier: - Implement MVP. swc_ecma_transforms_base: - `fixer`: Handle seq/await in rhs of for-of.
11957 lines
387 KiB
JavaScript
11957 lines
387 KiB
JavaScript
/*!
|
||
* jQuery JavaScript Library v1.9.1
|
||
* http://jquery.com/
|
||
*
|
||
* Includes Sizzle.js
|
||
* http://sizzlejs.com/
|
||
*
|
||
* Copyright 2005, 2012 jQuery Foundation, Inc. and other contributors
|
||
* Released under the MIT license
|
||
* http://jquery.org/license
|
||
*
|
||
* Date: 2013-2-4
|
||
*/
|
||
!(function (
|
||
window, undefined
|
||
) {
|
||
var readyList,
|
||
rootjQuery,
|
||
document = window.document,
|
||
location = window.location,
|
||
_jQuery = window.jQuery,
|
||
_$ = window.$,
|
||
class2type = {
|
||
},
|
||
core_deletedIds = [],
|
||
core_concat = core_deletedIds.concat,
|
||
core_push = core_deletedIds.push,
|
||
core_slice = core_deletedIds.slice,
|
||
core_indexOf = core_deletedIds.indexOf,
|
||
core_toString = class2type.toString,
|
||
core_hasOwn = class2type.hasOwnProperty,
|
||
core_trim = "1.9.1".trim,
|
||
jQuery = function (
|
||
selector, context
|
||
) {
|
||
return new jQuery.fn.init(
|
||
selector,
|
||
context,
|
||
rootjQuery
|
||
);
|
||
},
|
||
core_pnum = /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,
|
||
core_rnotwhite = /\S+/g,
|
||
rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,
|
||
rquickExpr = /^(?:(<[\w\W]+>)[^>]*|#([\w-]*))$/,
|
||
rsingleTag = /^<(\w+)\s*\/?>(?:<\/\1>|)$/,
|
||
rvalidchars = /^[\],:{}\s]*$/,
|
||
rvalidbraces = /(?:^|:|,)(?:\s*\[)+/g,
|
||
rvalidescape = /\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g,
|
||
rvalidtokens = /"[^"\\\r\n]*"|true|false|null|-?(?:\d+\.|)\d+(?:[eE][+-]?\d+|)/g,
|
||
rmsPrefix = /^-ms-/,
|
||
rdashAlpha = /-([\da-z])/gi,
|
||
fcamelCase = function (
|
||
all, letter
|
||
) {
|
||
return letter.toUpperCase(
|
||
);
|
||
},
|
||
completed = function (
|
||
event
|
||
) {
|
||
(document.addEventListener ||
|
||
"load" === event.type ||
|
||
"complete" === document.readyState) &&
|
||
(detach(
|
||
), jQuery.ready(
|
||
));
|
||
},
|
||
detach = function (
|
||
) {
|
||
document.addEventListener
|
||
? (document.removeEventListener(
|
||
"DOMContentLoaded",
|
||
completed,
|
||
!1
|
||
),
|
||
window.removeEventListener(
|
||
"load",
|
||
completed,
|
||
!1
|
||
))
|
||
: (document.detachEvent(
|
||
"onreadystatechange",
|
||
completed
|
||
),
|
||
window.detachEvent(
|
||
"onload",
|
||
completed
|
||
));
|
||
};
|
||
function isArraylike(
|
||
obj
|
||
) {
|
||
var length = obj.length,
|
||
type = jQuery.type(
|
||
obj
|
||
);
|
||
return (
|
||
!jQuery.isWindow(
|
||
obj
|
||
) &&
|
||
(!(1 !== obj.nodeType || !length) ||
|
||
"array" === type ||
|
||
("function" !== type &&
|
||
(0 === length ||
|
||
("number" == typeof length && length > 0 && length - 1 in obj))))
|
||
);
|
||
}
|
||
(jQuery.fn = jQuery.prototype = {
|
||
jquery: "1.9.1",
|
||
constructor: jQuery,
|
||
init: function (
|
||
selector, context, rootjQuery
|
||
) {
|
||
var match, elem;
|
||
if (!selector) return this;
|
||
if ("string" == typeof selector) {
|
||
if (
|
||
!(match =
|
||
"<" === selector.charAt(
|
||
0
|
||
) &&
|
||
">" === selector.charAt(
|
||
selector.length - 1
|
||
) &&
|
||
selector.length >= 3
|
||
? [null, selector, null,]
|
||
: rquickExpr.exec(
|
||
selector
|
||
)) ||
|
||
(!match[1] && context)
|
||
)
|
||
return !context || context.jquery
|
||
? (context || rootjQuery).find(
|
||
selector
|
||
)
|
||
: this.constructor(
|
||
context
|
||
).find(
|
||
selector
|
||
);
|
||
if (match[1]) {
|
||
if (
|
||
((context = context instanceof jQuery ? context[0] : context),
|
||
jQuery.merge(
|
||
this,
|
||
jQuery.parseHTML(
|
||
match[1],
|
||
context && context.nodeType
|
||
? context.ownerDocument || context
|
||
: document,
|
||
!0,
|
||
),
|
||
),
|
||
rsingleTag.test(
|
||
match[1]
|
||
) && jQuery.isPlainObject(
|
||
context
|
||
))
|
||
)
|
||
for (match in context)
|
||
jQuery.isFunction(
|
||
this[match]
|
||
)
|
||
? this[match](
|
||
context[match]
|
||
)
|
||
: this.attr(
|
||
match,
|
||
context[match]
|
||
);
|
||
return this;
|
||
}
|
||
if ((elem = document.getElementById(
|
||
match[2]
|
||
)) && elem.parentNode) {
|
||
if (elem.id !== match[2]) return rootjQuery.find(
|
||
selector
|
||
);
|
||
(this.length = 1), (this[0] = elem);
|
||
}
|
||
return (this.context = document), (this.selector = selector), this;
|
||
}
|
||
return selector.nodeType
|
||
? ((this.context = this[0] = selector), (this.length = 1), this)
|
||
: jQuery.isFunction(
|
||
selector
|
||
)
|
||
? rootjQuery.ready(
|
||
selector
|
||
)
|
||
: (undefined !== selector.selector &&
|
||
((this.selector = selector.selector),
|
||
(this.context = selector.context)),
|
||
jQuery.makeArray(
|
||
selector,
|
||
this
|
||
));
|
||
},
|
||
selector: "",
|
||
length: 0,
|
||
size: function (
|
||
) {
|
||
return this.length;
|
||
},
|
||
toArray: function (
|
||
) {
|
||
return core_slice.call(
|
||
this
|
||
);
|
||
},
|
||
get: function (
|
||
num
|
||
) {
|
||
return null == num
|
||
? this.toArray(
|
||
)
|
||
: num < 0
|
||
? this[this.length + num]
|
||
: this[num];
|
||
},
|
||
pushStack: function (
|
||
elems
|
||
) {
|
||
var ret = jQuery.merge(
|
||
this.constructor(
|
||
),
|
||
elems
|
||
);
|
||
return (ret.prevObject = this), (ret.context = this.context), ret;
|
||
},
|
||
each: function (
|
||
callback, args
|
||
) {
|
||
return jQuery.each(
|
||
this,
|
||
callback,
|
||
args
|
||
);
|
||
},
|
||
ready: function (
|
||
fn
|
||
) {
|
||
return jQuery.ready.promise(
|
||
).done(
|
||
fn
|
||
), this;
|
||
},
|
||
slice: function (
|
||
) {
|
||
return this.pushStack(
|
||
core_slice.apply(
|
||
this,
|
||
arguments
|
||
)
|
||
);
|
||
},
|
||
first: function (
|
||
) {
|
||
return this.eq(
|
||
0
|
||
);
|
||
},
|
||
last: function (
|
||
) {
|
||
return this.eq(
|
||
-1
|
||
);
|
||
},
|
||
eq: function (
|
||
i
|
||
) {
|
||
var len = this.length,
|
||
j = +i + (i < 0 ? len : 0);
|
||
return this.pushStack(
|
||
j >= 0 && j < len ? [this[j],] : []
|
||
);
|
||
},
|
||
map: function (
|
||
callback
|
||
) {
|
||
return this.pushStack(
|
||
jQuery.map(
|
||
this,
|
||
function (
|
||
elem, i
|
||
) {
|
||
return callback.call(
|
||
elem,
|
||
i,
|
||
elem
|
||
);
|
||
}
|
||
),
|
||
);
|
||
},
|
||
end: function (
|
||
) {
|
||
return this.prevObject || this.constructor(
|
||
null
|
||
);
|
||
},
|
||
push: core_push,
|
||
sort: [].sort,
|
||
splice: [].splice,
|
||
}),
|
||
(jQuery.fn.init.prototype = jQuery.fn),
|
||
(jQuery.extend = jQuery.fn.extend = function (
|
||
) {
|
||
var src,
|
||
copyIsArray,
|
||
copy,
|
||
name,
|
||
options,
|
||
clone,
|
||
target = arguments[0] || {
|
||
},
|
||
i = 1,
|
||
length = arguments.length,
|
||
deep = !1;
|
||
for (
|
||
"boolean" == typeof target &&
|
||
((deep = target), (target = arguments[1] || {
|
||
}), (i = 2)),
|
||
"object" == typeof target ||
|
||
jQuery.isFunction(
|
||
target
|
||
) ||
|
||
(target = {
|
||
}),
|
||
length === i && ((target = this), --i);
|
||
i < length;
|
||
i++
|
||
)
|
||
if (null != (options = arguments[i]))
|
||
for (name in options)
|
||
(src = target[name]),
|
||
target !== (copy = options[name]) &&
|
||
(deep &&
|
||
copy &&
|
||
(jQuery.isPlainObject(
|
||
copy
|
||
) ||
|
||
(copyIsArray = jQuery.isArray(
|
||
copy
|
||
)))
|
||
? (copyIsArray
|
||
? ((copyIsArray = !1),
|
||
(clone = src && jQuery.isArray(
|
||
src
|
||
)
|
||
? src
|
||
: []))
|
||
: (clone = src && jQuery.isPlainObject(
|
||
src
|
||
)
|
||
? src
|
||
: {
|
||
}),
|
||
(target[name] = jQuery.extend(
|
||
deep,
|
||
clone,
|
||
copy
|
||
)))
|
||
: undefined !== copy && (target[name] = copy));
|
||
return target;
|
||
}),
|
||
jQuery.extend(
|
||
{
|
||
noConflict: function (
|
||
deep
|
||
) {
|
||
return (
|
||
window.$ === jQuery && (window.$ = _$),
|
||
deep && window.jQuery === jQuery && (window.jQuery = _jQuery),
|
||
jQuery
|
||
);
|
||
},
|
||
isReady: !1,
|
||
readyWait: 1,
|
||
holdReady: function (
|
||
hold
|
||
) {
|
||
hold
|
||
? jQuery.readyWait++
|
||
: jQuery.ready(
|
||
!0
|
||
);
|
||
},
|
||
ready: function (
|
||
wait
|
||
) {
|
||
if (!(!0 === wait ? --jQuery.readyWait : jQuery.isReady)) {
|
||
if (!document.body) return setTimeout(
|
||
jQuery.ready
|
||
);
|
||
(jQuery.isReady = !0),
|
||
(!0 !== wait && --jQuery.readyWait > 0) ||
|
||
(readyList.resolveWith(
|
||
document,
|
||
[jQuery,]
|
||
),
|
||
jQuery.fn.trigger &&
|
||
jQuery(
|
||
document
|
||
).trigger(
|
||
"ready"
|
||
).off(
|
||
"ready"
|
||
));
|
||
}
|
||
},
|
||
isFunction: function (
|
||
obj
|
||
) {
|
||
return "function" === jQuery.type(
|
||
obj
|
||
);
|
||
},
|
||
isArray:
|
||
Array.isArray ||
|
||
function (
|
||
obj
|
||
) {
|
||
return "array" === jQuery.type(
|
||
obj
|
||
);
|
||
},
|
||
isWindow: function (
|
||
obj
|
||
) {
|
||
return null != obj && obj == obj.window;
|
||
},
|
||
isNumeric: function (
|
||
obj
|
||
) {
|
||
return !isNaN(
|
||
parseFloat(
|
||
obj
|
||
)
|
||
) && isFinite(
|
||
obj
|
||
);
|
||
},
|
||
type: function (
|
||
obj
|
||
) {
|
||
return null == obj
|
||
? String(
|
||
obj
|
||
)
|
||
: "object" == typeof obj || "function" == typeof obj
|
||
? class2type[core_toString.call(
|
||
obj
|
||
)] || "object"
|
||
: typeof obj;
|
||
},
|
||
isPlainObject: function (
|
||
obj
|
||
) {
|
||
if (
|
||
!obj ||
|
||
"object" !== jQuery.type(
|
||
obj
|
||
) ||
|
||
obj.nodeType ||
|
||
jQuery.isWindow(
|
||
obj
|
||
)
|
||
)
|
||
return !1;
|
||
try {
|
||
if (
|
||
obj.constructor &&
|
||
!core_hasOwn.call(
|
||
obj,
|
||
"constructor"
|
||
) &&
|
||
!core_hasOwn.call(
|
||
obj.constructor.prototype,
|
||
"isPrototypeOf"
|
||
)
|
||
)
|
||
return !1;
|
||
} catch (e) {
|
||
return !1;
|
||
}
|
||
var key;
|
||
for (key in obj);
|
||
return undefined === key || core_hasOwn.call(
|
||
obj,
|
||
key
|
||
);
|
||
},
|
||
isEmptyObject: function (
|
||
obj
|
||
) {
|
||
var name;
|
||
for (name in obj) return !1;
|
||
return !0;
|
||
},
|
||
error: function (
|
||
msg
|
||
) {
|
||
throw new Error(
|
||
msg
|
||
);
|
||
},
|
||
parseHTML: function (
|
||
data, context, keepScripts
|
||
) {
|
||
if (!data || "string" != typeof data) return null;
|
||
"boolean" == typeof context &&
|
||
((keepScripts = context), (context = !1)),
|
||
(context = context || document);
|
||
var parsed = rsingleTag.exec(
|
||
data
|
||
),
|
||
scripts = !keepScripts && [];
|
||
return parsed
|
||
? [context.createElement(
|
||
parsed[1]
|
||
),]
|
||
: ((parsed = jQuery.buildFragment(
|
||
[data,],
|
||
context,
|
||
scripts
|
||
)),
|
||
scripts && jQuery(
|
||
scripts
|
||
).remove(
|
||
),
|
||
jQuery.merge(
|
||
[],
|
||
parsed.childNodes
|
||
));
|
||
},
|
||
parseJSON: function (
|
||
data
|
||
) {
|
||
return window.JSON && window.JSON.parse
|
||
? window.JSON.parse(
|
||
data
|
||
)
|
||
: null === data
|
||
? data
|
||
: "string" == typeof data &&
|
||
(data = jQuery.trim(
|
||
data
|
||
)) &&
|
||
rvalidchars.test(
|
||
data
|
||
.replace(
|
||
rvalidescape,
|
||
"@"
|
||
)
|
||
.replace(
|
||
rvalidtokens,
|
||
"]"
|
||
)
|
||
.replace(
|
||
rvalidbraces,
|
||
""
|
||
),
|
||
)
|
||
? new Function(
|
||
"return " + data
|
||
)(
|
||
)
|
||
: void jQuery.error(
|
||
"Invalid JSON: " + data
|
||
);
|
||
},
|
||
parseXML: function (
|
||
data
|
||
) {
|
||
var xml;
|
||
if (!data || "string" != typeof data) return null;
|
||
try {
|
||
window.DOMParser
|
||
? (xml = new DOMParser(
|
||
).parseFromString(
|
||
data,
|
||
"text/xml"
|
||
))
|
||
: (((xml = new ActiveXObject(
|
||
"Microsoft.XMLDOM"
|
||
)).async = "false"),
|
||
xml.loadXML(
|
||
data
|
||
));
|
||
} catch (e) {
|
||
xml = undefined;
|
||
}
|
||
return (
|
||
(xml &&
|
||
xml.documentElement &&
|
||
!xml.getElementsByTagName(
|
||
"parsererror"
|
||
).length) ||
|
||
jQuery.error(
|
||
"Invalid XML: " + data
|
||
),
|
||
xml
|
||
);
|
||
},
|
||
noop: function (
|
||
) {},
|
||
globalEval: function (
|
||
data
|
||
) {
|
||
data &&
|
||
jQuery.trim(
|
||
data
|
||
) &&
|
||
(
|
||
window.execScript ||
|
||
function (
|
||
data
|
||
) {
|
||
window.eval.call(
|
||
window,
|
||
data
|
||
);
|
||
}
|
||
)(
|
||
data
|
||
);
|
||
},
|
||
camelCase: function (
|
||
string
|
||
) {
|
||
return string.replace(
|
||
rmsPrefix,
|
||
"ms-"
|
||
).replace(
|
||
rdashAlpha,
|
||
fcamelCase
|
||
);
|
||
},
|
||
nodeName: function (
|
||
elem, name
|
||
) {
|
||
return (
|
||
elem.nodeName && elem.nodeName.toLowerCase(
|
||
) === name.toLowerCase(
|
||
)
|
||
);
|
||
},
|
||
each: function (
|
||
obj, callback, args
|
||
) {
|
||
var i = 0,
|
||
length = obj.length,
|
||
isArray = isArraylike(
|
||
obj
|
||
);
|
||
if (args) {
|
||
if (isArray)
|
||
for (; i < length && !1 !== callback.apply(
|
||
obj[i],
|
||
args
|
||
); i++);
|
||
else for (i in obj) if (!1 === callback.apply(
|
||
obj[i],
|
||
args
|
||
)) break;
|
||
} else if (isArray)
|
||
for (; i < length && !1 !== callback.call(
|
||
obj[i],
|
||
i,
|
||
obj[i]
|
||
); i++);
|
||
else for (i in obj) if (!1 === callback.call(
|
||
obj[i],
|
||
i,
|
||
obj[i]
|
||
)) break;
|
||
return obj;
|
||
},
|
||
trim:
|
||
core_trim && !core_trim.call(
|
||
"\ufeff "
|
||
)
|
||
? function (
|
||
text
|
||
) {
|
||
return null == text
|
||
? ""
|
||
: core_trim.call(
|
||
text
|
||
);
|
||
}
|
||
: function (
|
||
text
|
||
) {
|
||
return null == text
|
||
? ""
|
||
: (text + "").replace(
|
||
rtrim,
|
||
""
|
||
);
|
||
},
|
||
makeArray: function (
|
||
arr, results
|
||
) {
|
||
var ret = results || [];
|
||
return (
|
||
null != arr &&
|
||
(isArraylike(
|
||
Object(
|
||
arr
|
||
)
|
||
)
|
||
? jQuery.merge(
|
||
ret,
|
||
"string" == typeof arr ? [arr,] : arr
|
||
)
|
||
: core_push.call(
|
||
ret,
|
||
arr
|
||
)),
|
||
ret
|
||
);
|
||
},
|
||
inArray: function (
|
||
elem, arr, i
|
||
) {
|
||
var len;
|
||
if (arr) {
|
||
if (core_indexOf) return core_indexOf.call(
|
||
arr,
|
||
elem,
|
||
i
|
||
);
|
||
for (
|
||
len = arr.length, i = i
|
||
? (i < 0
|
||
? Math.max(
|
||
0,
|
||
len + i
|
||
)
|
||
: i)
|
||
: 0;
|
||
i < len;
|
||
i++
|
||
)
|
||
if (i in arr && arr[i] === elem) return i;
|
||
}
|
||
return -1;
|
||
},
|
||
merge: function (
|
||
first, second
|
||
) {
|
||
var l = second.length,
|
||
i = first.length,
|
||
j = 0;
|
||
if ("number" == typeof l) for (; j < l; j++) first[i++] = second[j];
|
||
else for (; undefined !== second[j]; ) first[i++] = second[j++];
|
||
return (first.length = i), first;
|
||
},
|
||
grep: function (
|
||
elems, callback, inv
|
||
) {
|
||
var ret = [],
|
||
i = 0,
|
||
length = elems.length;
|
||
for (inv = !!inv; i < length; i++)
|
||
inv !== !!callback(
|
||
elems[i],
|
||
i
|
||
) && ret.push(
|
||
elems[i]
|
||
);
|
||
return ret;
|
||
},
|
||
map: function (
|
||
elems, callback, arg
|
||
) {
|
||
var value,
|
||
i = 0,
|
||
length = elems.length,
|
||
ret = [];
|
||
if (isArraylike(
|
||
elems
|
||
))
|
||
for (; i < length; i++)
|
||
null != (value = callback(
|
||
elems[i],
|
||
i,
|
||
arg
|
||
)) &&
|
||
(ret[ret.length] = value);
|
||
else
|
||
for (i in elems)
|
||
null != (value = callback(
|
||
elems[i],
|
||
i,
|
||
arg
|
||
)) &&
|
||
(ret[ret.length] = value);
|
||
return core_concat.apply(
|
||
[],
|
||
ret
|
||
);
|
||
},
|
||
guid: 1,
|
||
proxy: function (
|
||
fn, context
|
||
) {
|
||
var args, proxy, tmp;
|
||
if (
|
||
("string" == typeof context &&
|
||
((tmp = fn[context]), (context = fn), (fn = tmp)),
|
||
jQuery.isFunction(
|
||
fn
|
||
))
|
||
)
|
||
return (
|
||
(args = core_slice.call(
|
||
arguments,
|
||
2
|
||
)),
|
||
((proxy = function (
|
||
) {
|
||
return fn.apply(
|
||
context || this,
|
||
args.concat(
|
||
core_slice.call(
|
||
arguments
|
||
)
|
||
),
|
||
);
|
||
}).guid = fn.guid = fn.guid || jQuery.guid++),
|
||
proxy
|
||
);
|
||
},
|
||
access: function (
|
||
elems, fn, key, value, chainable, emptyGet, raw
|
||
) {
|
||
var i = 0,
|
||
length = elems.length,
|
||
bulk = null == key;
|
||
if ("object" === jQuery.type(
|
||
key
|
||
))
|
||
for (i in ((chainable = !0), key))
|
||
jQuery.access(
|
||
elems,
|
||
fn,
|
||
i,
|
||
key[i],
|
||
!0,
|
||
emptyGet,
|
||
raw
|
||
);
|
||
else if (
|
||
undefined !== value &&
|
||
((chainable = !0),
|
||
jQuery.isFunction(
|
||
value
|
||
) || (raw = !0),
|
||
bulk &&
|
||
(raw
|
||
? (fn.call(
|
||
elems,
|
||
value
|
||
), (fn = null))
|
||
: ((bulk = fn),
|
||
(fn = function (
|
||
elem, key, value
|
||
) {
|
||
return bulk.call(
|
||
jQuery(
|
||
elem
|
||
),
|
||
value
|
||
);
|
||
}))),
|
||
fn)
|
||
)
|
||
for (; i < length; i++)
|
||
fn(
|
||
elems[i],
|
||
key,
|
||
raw
|
||
? value
|
||
: value.call(
|
||
elems[i],
|
||
i,
|
||
fn(
|
||
elems[i],
|
||
key
|
||
)
|
||
),
|
||
);
|
||
return chainable
|
||
? elems
|
||
: bulk
|
||
? fn.call(
|
||
elems
|
||
)
|
||
: length
|
||
? fn(
|
||
elems[0],
|
||
key
|
||
)
|
||
: emptyGet;
|
||
},
|
||
now: function (
|
||
) {
|
||
return new Date(
|
||
).getTime(
|
||
);
|
||
},
|
||
}
|
||
),
|
||
(jQuery.ready.promise = function (
|
||
obj
|
||
) {
|
||
if (!readyList)
|
||
if (
|
||
((readyList = jQuery.Deferred(
|
||
)), "complete" === document.readyState)
|
||
)
|
||
setTimeout(
|
||
jQuery.ready
|
||
);
|
||
else if (document.addEventListener)
|
||
document.addEventListener(
|
||
"DOMContentLoaded",
|
||
completed,
|
||
!1
|
||
),
|
||
window.addEventListener(
|
||
"load",
|
||
completed,
|
||
!1
|
||
);
|
||
else {
|
||
document.attachEvent(
|
||
"onreadystatechange",
|
||
completed
|
||
),
|
||
window.attachEvent(
|
||
"onload",
|
||
completed
|
||
);
|
||
var top = !1;
|
||
try {
|
||
top = null == window.frameElement && document.documentElement;
|
||
} catch (e) {}
|
||
top &&
|
||
top.doScroll &&
|
||
(function doScrollCheck(
|
||
) {
|
||
if (!jQuery.isReady) {
|
||
try {
|
||
top.doScroll(
|
||
"left"
|
||
);
|
||
} catch (e) {
|
||
return setTimeout(
|
||
doScrollCheck,
|
||
50
|
||
);
|
||
}
|
||
detach(
|
||
), jQuery.ready(
|
||
);
|
||
}
|
||
})(
|
||
);
|
||
}
|
||
return readyList.promise(
|
||
obj
|
||
);
|
||
}),
|
||
jQuery.each(
|
||
"Boolean Number String Function Array Date RegExp Object Error".split(
|
||
" ",
|
||
),
|
||
function (
|
||
i, name
|
||
) {
|
||
class2type["[object " + name + "]"] = name.toLowerCase(
|
||
);
|
||
},
|
||
),
|
||
(rootjQuery = jQuery(
|
||
document
|
||
));
|
||
var optionsCache = {
|
||
};
|
||
(jQuery.Callbacks = function (
|
||
options
|
||
) {
|
||
options =
|
||
"string" == typeof options
|
||
? optionsCache[options] ||
|
||
(function (
|
||
options
|
||
) {
|
||
var object = (optionsCache[options] = {
|
||
});
|
||
return (
|
||
jQuery.each(
|
||
options.match(
|
||
core_rnotwhite
|
||
) || [],
|
||
function (
|
||
_, flag
|
||
) {
|
||
object[flag] = !0;
|
||
},
|
||
),
|
||
object
|
||
);
|
||
})(
|
||
options
|
||
)
|
||
: jQuery.extend(
|
||
{
|
||
},
|
||
options
|
||
);
|
||
var firing,
|
||
memory,
|
||
fired,
|
||
firingLength,
|
||
firingIndex,
|
||
firingStart,
|
||
list = [],
|
||
stack = !options.once && [],
|
||
fire = function (
|
||
data
|
||
) {
|
||
for (
|
||
memory = options.memory && data,
|
||
fired = !0,
|
||
firingIndex = firingStart || 0,
|
||
firingStart = 0,
|
||
firingLength = list.length,
|
||
firing = !0;
|
||
list && firingIndex < firingLength;
|
||
firingIndex++
|
||
)
|
||
if (
|
||
!1 === list[firingIndex].apply(
|
||
data[0],
|
||
data[1]
|
||
) &&
|
||
options.stopOnFalse
|
||
) {
|
||
memory = !1;
|
||
break;
|
||
}
|
||
(firing = !1),
|
||
list &&
|
||
(stack
|
||
? stack.length && fire(
|
||
stack.shift(
|
||
)
|
||
)
|
||
: memory
|
||
? (list = [])
|
||
: self.disable(
|
||
));
|
||
},
|
||
self = {
|
||
add: function (
|
||
) {
|
||
if (list) {
|
||
var start = list.length;
|
||
!(function add(
|
||
args
|
||
) {
|
||
jQuery.each(
|
||
args,
|
||
function (
|
||
_, arg
|
||
) {
|
||
var type = jQuery.type(
|
||
arg
|
||
);
|
||
"function" === type
|
||
? (options.unique && self.has(
|
||
arg
|
||
)) || list.push(
|
||
arg
|
||
)
|
||
: arg && arg.length && "string" !== type && add(
|
||
arg
|
||
);
|
||
}
|
||
);
|
||
})(
|
||
arguments
|
||
),
|
||
firing
|
||
? (firingLength = list.length)
|
||
: memory && ((firingStart = start), fire(
|
||
memory
|
||
));
|
||
}
|
||
return this;
|
||
},
|
||
remove: function (
|
||
) {
|
||
return (
|
||
list &&
|
||
jQuery.each(
|
||
arguments,
|
||
function (
|
||
_, arg
|
||
) {
|
||
for (
|
||
var index;
|
||
(index = jQuery.inArray(
|
||
arg,
|
||
list,
|
||
index
|
||
)) > -1;
|
||
|
||
)
|
||
list.splice(
|
||
index,
|
||
1
|
||
),
|
||
firing &&
|
||
(index <= firingLength && firingLength--,
|
||
index <= firingIndex && firingIndex--);
|
||
}
|
||
),
|
||
this
|
||
);
|
||
},
|
||
has: function (
|
||
fn
|
||
) {
|
||
return fn
|
||
? jQuery.inArray(
|
||
fn,
|
||
list
|
||
) > -1
|
||
: !(!list || !list.length);
|
||
},
|
||
empty: function (
|
||
) {
|
||
return (list = []), this;
|
||
},
|
||
disable: function (
|
||
) {
|
||
return (list = stack = memory = undefined), this;
|
||
},
|
||
disabled: function (
|
||
) {
|
||
return !list;
|
||
},
|
||
lock: function (
|
||
) {
|
||
return (stack = undefined), memory || self.disable(
|
||
), this;
|
||
},
|
||
locked: function (
|
||
) {
|
||
return !stack;
|
||
},
|
||
fireWith: function (
|
||
context, args
|
||
) {
|
||
return (
|
||
(args = [context, (args = args || []).slice
|
||
? args.slice(
|
||
)
|
||
: args,]),
|
||
!list ||
|
||
(fired && !stack) ||
|
||
(firing
|
||
? stack.push(
|
||
args
|
||
)
|
||
: fire(
|
||
args
|
||
)),
|
||
this
|
||
);
|
||
},
|
||
fire: function (
|
||
) {
|
||
return self.fireWith(
|
||
this,
|
||
arguments
|
||
), this;
|
||
},
|
||
fired: function (
|
||
) {
|
||
return !!fired;
|
||
},
|
||
};
|
||
return self;
|
||
}),
|
||
jQuery.extend(
|
||
{
|
||
Deferred: function (
|
||
func
|
||
) {
|
||
var tuples = [
|
||
["resolve", "done", jQuery.Callbacks(
|
||
"once memory"
|
||
), "resolved",],
|
||
["reject", "fail", jQuery.Callbacks(
|
||
"once memory"
|
||
), "rejected",],
|
||
["notify", "progress", jQuery.Callbacks(
|
||
"memory"
|
||
),],
|
||
],
|
||
state = "pending",
|
||
promise = {
|
||
state: function (
|
||
) {
|
||
return state;
|
||
},
|
||
always: function (
|
||
) {
|
||
return deferred.done(
|
||
arguments
|
||
).fail(
|
||
arguments
|
||
), this;
|
||
},
|
||
then: function (
|
||
) {
|
||
var fns = arguments;
|
||
return jQuery
|
||
.Deferred(
|
||
function (
|
||
newDefer
|
||
) {
|
||
jQuery.each(
|
||
tuples,
|
||
function (
|
||
i, tuple
|
||
) {
|
||
var action = tuple[0],
|
||
fn = jQuery.isFunction(
|
||
fns[i]
|
||
) && fns[i];
|
||
deferred[tuple[1]](
|
||
function (
|
||
) {
|
||
var returned = fn && fn.apply(
|
||
this,
|
||
arguments
|
||
);
|
||
returned && jQuery.isFunction(
|
||
returned.promise
|
||
)
|
||
? returned
|
||
.promise(
|
||
)
|
||
.done(
|
||
newDefer.resolve
|
||
)
|
||
.fail(
|
||
newDefer.reject
|
||
)
|
||
.progress(
|
||
newDefer.notify
|
||
)
|
||
: newDefer[action + "With"](
|
||
this === promise
|
||
? newDefer.promise(
|
||
)
|
||
: this,
|
||
fn ? [returned,] : arguments,
|
||
);
|
||
}
|
||
);
|
||
}
|
||
),
|
||
(fns = null);
|
||
}
|
||
)
|
||
.promise(
|
||
);
|
||
},
|
||
promise: function (
|
||
obj
|
||
) {
|
||
return null != obj
|
||
? jQuery.extend(
|
||
obj,
|
||
promise
|
||
)
|
||
: promise;
|
||
},
|
||
},
|
||
deferred = {
|
||
};
|
||
return (
|
||
(promise.pipe = promise.then),
|
||
jQuery.each(
|
||
tuples,
|
||
function (
|
||
i, tuple
|
||
) {
|
||
var list = tuple[2],
|
||
stateString = tuple[3];
|
||
(promise[tuple[1]] = list.add),
|
||
stateString &&
|
||
list.add(
|
||
function (
|
||
) {
|
||
state = stateString;
|
||
},
|
||
tuples[1 ^ i][2].disable,
|
||
tuples[2][2].lock,
|
||
),
|
||
(deferred[tuple[0]] = function (
|
||
) {
|
||
return (
|
||
deferred[tuple[0] + "With"](
|
||
this === deferred ? promise : this,
|
||
arguments,
|
||
),
|
||
this
|
||
);
|
||
}),
|
||
(deferred[tuple[0] + "With"] = list.fireWith);
|
||
}
|
||
),
|
||
promise.promise(
|
||
deferred
|
||
),
|
||
func && func.call(
|
||
deferred,
|
||
deferred
|
||
),
|
||
deferred
|
||
);
|
||
},
|
||
when: function (
|
||
subordinate
|
||
) {
|
||
var progressValues,
|
||
progressContexts,
|
||
resolveContexts,
|
||
i = 0,
|
||
resolveValues = core_slice.call(
|
||
arguments
|
||
),
|
||
length = resolveValues.length,
|
||
remaining =
|
||
1 !== length ||
|
||
(subordinate && jQuery.isFunction(
|
||
subordinate.promise
|
||
))
|
||
? length
|
||
: 0,
|
||
deferred = 1 === remaining
|
||
? subordinate
|
||
: jQuery.Deferred(
|
||
),
|
||
updateFunc = function (
|
||
i, contexts, values
|
||
) {
|
||
return function (
|
||
value
|
||
) {
|
||
(contexts[i] = this),
|
||
(values[i] =
|
||
arguments.length > 1
|
||
? core_slice.call(
|
||
arguments
|
||
)
|
||
: value),
|
||
values === progressValues
|
||
? deferred.notifyWith(
|
||
contexts,
|
||
values
|
||
)
|
||
: --remaining || deferred.resolveWith(
|
||
contexts,
|
||
values
|
||
);
|
||
};
|
||
};
|
||
if (length > 1)
|
||
for (
|
||
progressValues = new Array(
|
||
length
|
||
),
|
||
progressContexts = new Array(
|
||
length
|
||
),
|
||
resolveContexts = new Array(
|
||
length
|
||
);
|
||
i < length;
|
||
i++
|
||
)
|
||
resolveValues[i] && jQuery.isFunction(
|
||
resolveValues[i].promise
|
||
)
|
||
? resolveValues[i]
|
||
.promise(
|
||
)
|
||
.done(
|
||
updateFunc(
|
||
i,
|
||
resolveContexts,
|
||
resolveValues
|
||
)
|
||
)
|
||
.fail(
|
||
deferred.reject
|
||
)
|
||
.progress(
|
||
updateFunc(
|
||
i,
|
||
progressContexts,
|
||
progressValues
|
||
)
|
||
)
|
||
: --remaining;
|
||
return (
|
||
remaining || deferred.resolveWith(
|
||
resolveContexts,
|
||
resolveValues
|
||
),
|
||
deferred.promise(
|
||
)
|
||
);
|
||
},
|
||
}
|
||
),
|
||
(jQuery.support = (function (
|
||
) {
|
||
var support,
|
||
all,
|
||
a,
|
||
input,
|
||
select,
|
||
fragment,
|
||
opt,
|
||
eventName,
|
||
isSupported,
|
||
i,
|
||
div = document.createElement(
|
||
"div"
|
||
);
|
||
if (
|
||
(div.setAttribute(
|
||
"className",
|
||
"t"
|
||
),
|
||
(div.innerHTML =
|
||
" <link/><table></table><a href='/a'>a</a><input type='checkbox'/>"),
|
||
(all = div.getElementsByTagName(
|
||
"*"
|
||
)),
|
||
(a = div.getElementsByTagName(
|
||
"a"
|
||
)[0]),
|
||
!all || !a || !all.length)
|
||
)
|
||
return {
|
||
};
|
||
(opt = (select = document.createElement(
|
||
"select"
|
||
)).appendChild(
|
||
document.createElement(
|
||
"option"
|
||
),
|
||
)),
|
||
(input = div.getElementsByTagName(
|
||
"input"
|
||
)[0]),
|
||
(a.style.cssText = "top:1px;float:left;opacity:.5"),
|
||
(support = {
|
||
getSetAttribute: "t" !== div.className,
|
||
leadingWhitespace: 3 === div.firstChild.nodeType,
|
||
tbody: !div.getElementsByTagName(
|
||
"tbody"
|
||
).length,
|
||
htmlSerialize: !!div.getElementsByTagName(
|
||
"link"
|
||
).length,
|
||
style: /top/.test(
|
||
a.getAttribute(
|
||
"style"
|
||
)
|
||
),
|
||
hrefNormalized: "/a" === a.getAttribute(
|
||
"href"
|
||
),
|
||
opacity: /^0.5/.test(
|
||
a.style.opacity
|
||
),
|
||
cssFloat: !!a.style.cssFloat,
|
||
checkOn: !!input.value,
|
||
optSelected: opt.selected,
|
||
enctype: !!document.createElement(
|
||
"form"
|
||
).enctype,
|
||
html5Clone:
|
||
"<:nav></:nav>" !==
|
||
document.createElement(
|
||
"nav"
|
||
).cloneNode(
|
||
!0
|
||
).outerHTML,
|
||
boxModel: "CSS1Compat" === document.compatMode,
|
||
deleteExpando: !0,
|
||
noCloneEvent: !0,
|
||
inlineBlockNeedsLayout: !1,
|
||
shrinkWrapBlocks: !1,
|
||
reliableMarginRight: !0,
|
||
boxSizingReliable: !0,
|
||
pixelPosition: !1,
|
||
}),
|
||
(input.checked = !0),
|
||
(support.noCloneChecked = input.cloneNode(
|
||
!0
|
||
).checked),
|
||
(select.disabled = !0),
|
||
(support.optDisabled = !opt.disabled);
|
||
try {
|
||
delete div.test;
|
||
} catch (e) {
|
||
support.deleteExpando = !1;
|
||
}
|
||
for (i in ((input = document.createElement(
|
||
"input"
|
||
)).setAttribute(
|
||
"value",
|
||
"",
|
||
),
|
||
(support.input = "" === input.getAttribute(
|
||
"value"
|
||
)),
|
||
(input.value = "t"),
|
||
input.setAttribute(
|
||
"type",
|
||
"radio"
|
||
),
|
||
(support.radioValue = "t" === input.value),
|
||
input.setAttribute(
|
||
"checked",
|
||
"t"
|
||
),
|
||
input.setAttribute(
|
||
"name",
|
||
"t"
|
||
),
|
||
(fragment = document.createDocumentFragment(
|
||
)).appendChild(
|
||
input
|
||
),
|
||
(support.appendChecked = input.checked),
|
||
(support.checkClone = fragment
|
||
.cloneNode(
|
||
!0
|
||
)
|
||
.cloneNode(
|
||
!0
|
||
).lastChild.checked),
|
||
div.attachEvent &&
|
||
(div.attachEvent(
|
||
"onclick",
|
||
function (
|
||
) {
|
||
support.noCloneEvent = !1;
|
||
}
|
||
),
|
||
div.cloneNode(
|
||
!0
|
||
).click(
|
||
)),
|
||
{
|
||
submit: !0,
|
||
change: !0,
|
||
focusin: !0,
|
||
}))
|
||
div.setAttribute(
|
||
(eventName = "on" + i),
|
||
"t"
|
||
),
|
||
(support[i + "Bubbles"] =
|
||
eventName in window || !1 === div.attributes[eventName].expando);
|
||
return (
|
||
(div.style.backgroundClip = "content-box"),
|
||
(div.cloneNode(
|
||
!0
|
||
).style.backgroundClip = ""),
|
||
(support.clearCloneStyle = "content-box" === div.style.backgroundClip),
|
||
jQuery(
|
||
function (
|
||
) {
|
||
var container,
|
||
marginDiv,
|
||
tds,
|
||
divReset =
|
||
"padding:0;margin:0;border:0;display:block;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;",
|
||
body = document.getElementsByTagName(
|
||
"body"
|
||
)[0];
|
||
body &&
|
||
(((container = document.createElement(
|
||
"div"
|
||
)).style.cssText =
|
||
"border:0;width:0;height:0;position:absolute;top:0;left:-9999px;margin-top:1px"),
|
||
body.appendChild(
|
||
container
|
||
).appendChild(
|
||
div
|
||
),
|
||
(div.innerHTML = "<table><tr><td></td><td>t</td></tr></table>"),
|
||
((tds = div.getElementsByTagName(
|
||
"td"
|
||
))[0].style.cssText =
|
||
"padding:0;margin:0;border:0;display:none"),
|
||
(isSupported = 0 === tds[0].offsetHeight),
|
||
(tds[0].style.display = ""),
|
||
(tds[1].style.display = "none"),
|
||
(support.reliableHiddenOffsets =
|
||
isSupported && 0 === tds[0].offsetHeight),
|
||
(div.innerHTML = ""),
|
||
(div.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%;"),
|
||
(support.boxSizing = 4 === div.offsetWidth),
|
||
(support.doesNotIncludeMarginInBodyOffset = 1 !== body.offsetTop),
|
||
window.getComputedStyle &&
|
||
((support.pixelPosition =
|
||
"1%" !== (window.getComputedStyle(
|
||
div,
|
||
null
|
||
) || {
|
||
}).top),
|
||
(support.boxSizingReliable =
|
||
"4px" ===
|
||
(window.getComputedStyle(
|
||
div,
|
||
null
|
||
) || {
|
||
width: "4px",
|
||
}).width),
|
||
((marginDiv = div.appendChild(
|
||
document.createElement(
|
||
"div"
|
||
),
|
||
)).style.cssText = div.style.cssText = divReset),
|
||
(marginDiv.style.marginRight = marginDiv.style.width = "0"),
|
||
(div.style.width = "1px"),
|
||
(support.reliableMarginRight = !parseFloat(
|
||
(window.getComputedStyle(
|
||
marginDiv,
|
||
null
|
||
) || {
|
||
}).marginRight,
|
||
))),
|
||
void 0 !== div.style.zoom &&
|
||
((div.innerHTML = ""),
|
||
(div.style.cssText =
|
||
divReset + "width:1px;padding:1px;display:inline;zoom:1"),
|
||
(support.inlineBlockNeedsLayout = 3 === div.offsetWidth),
|
||
(div.style.display = "block"),
|
||
(div.innerHTML = "<div></div>"),
|
||
(div.firstChild.style.width = "5px"),
|
||
(support.shrinkWrapBlocks = 3 !== div.offsetWidth),
|
||
support.inlineBlockNeedsLayout && (body.style.zoom = 1)),
|
||
body.removeChild(
|
||
container
|
||
),
|
||
(container = div = tds = marginDiv = null));
|
||
}
|
||
),
|
||
(all = select = fragment = opt = a = input = null),
|
||
support
|
||
);
|
||
})(
|
||
));
|
||
var rbrace = /(?:\{[\s\S]*\}|\[[\s\S]*\])$/,
|
||
rmultiDash = /([A-Z])/g;
|
||
function internalData(
|
||
elem, name, data, pvt
|
||
) {
|
||
if (jQuery.acceptData(
|
||
elem
|
||
)) {
|
||
var thisCache,
|
||
ret,
|
||
internalKey = jQuery.expando,
|
||
getByName = "string" == typeof name,
|
||
isNode = elem.nodeType,
|
||
cache = isNode ? jQuery.cache : elem,
|
||
id = isNode ? elem[internalKey] : elem[internalKey] && internalKey;
|
||
if (
|
||
(id && cache[id] && (pvt || cache[id].data)) ||
|
||
!getByName ||
|
||
undefined !== data
|
||
)
|
||
return (
|
||
id ||
|
||
(isNode
|
||
? (elem[internalKey] = id =
|
||
core_deletedIds.pop(
|
||
) || jQuery.guid++)
|
||
: (id = internalKey)),
|
||
cache[id] ||
|
||
((cache[id] = {
|
||
}), isNode || (cache[id].toJSON = jQuery.noop)),
|
||
("object" != typeof name && "function" != typeof name) ||
|
||
(pvt
|
||
? (cache[id] = jQuery.extend(
|
||
cache[id],
|
||
name
|
||
))
|
||
: (cache[id].data = jQuery.extend(
|
||
cache[id].data,
|
||
name
|
||
))),
|
||
(thisCache = cache[id]),
|
||
pvt ||
|
||
(thisCache.data || (thisCache.data = {
|
||
}),
|
||
(thisCache = thisCache.data)),
|
||
undefined !== data && (thisCache[jQuery.camelCase(
|
||
name
|
||
)] = data),
|
||
getByName
|
||
? null == (ret = thisCache[name]) &&
|
||
(ret = thisCache[jQuery.camelCase(
|
||
name
|
||
)])
|
||
: (ret = thisCache),
|
||
ret
|
||
);
|
||
}
|
||
}
|
||
function internalRemoveData(
|
||
elem, name, pvt
|
||
) {
|
||
if (jQuery.acceptData(
|
||
elem
|
||
)) {
|
||
var i,
|
||
l,
|
||
thisCache,
|
||
isNode = elem.nodeType,
|
||
cache = isNode ? jQuery.cache : elem,
|
||
id = isNode ? elem[jQuery.expando] : jQuery.expando;
|
||
if (cache[id]) {
|
||
if (name && (thisCache = pvt ? cache[id] : cache[id].data)) {
|
||
for (
|
||
i = 0,
|
||
l = (name = jQuery.isArray(
|
||
name
|
||
)
|
||
? name.concat(
|
||
jQuery.map(
|
||
name,
|
||
jQuery.camelCase
|
||
)
|
||
)
|
||
: (name in thisCache) ||
|
||
((name = jQuery.camelCase(
|
||
name
|
||
)) in thisCache)
|
||
? [name,]
|
||
: name.split(
|
||
" "
|
||
)).length;
|
||
i < l;
|
||
i++
|
||
)
|
||
delete thisCache[name[i]];
|
||
if (!(pvt ? isEmptyDataObject : jQuery.isEmptyObject)(
|
||
thisCache
|
||
))
|
||
return;
|
||
}
|
||
(pvt || (delete cache[id].data, isEmptyDataObject(
|
||
cache[id]
|
||
))) &&
|
||
(isNode
|
||
? jQuery.cleanData(
|
||
[elem,],
|
||
!0
|
||
)
|
||
: jQuery.support.deleteExpando || cache != cache.window
|
||
? delete cache[id]
|
||
: (cache[id] = null));
|
||
}
|
||
}
|
||
}
|
||
function dataAttr(
|
||
elem, key, data
|
||
) {
|
||
if (undefined === data && 1 === elem.nodeType) {
|
||
var name = "data-" + key.replace(
|
||
rmultiDash,
|
||
"-$1"
|
||
).toLowerCase(
|
||
);
|
||
if ("string" == typeof (data = elem.getAttribute(
|
||
name
|
||
))) {
|
||
try {
|
||
data =
|
||
"true" === data ||
|
||
("false" !== data &&
|
||
("null" === data
|
||
? null
|
||
: +data + "" === data
|
||
? +data
|
||
: rbrace.test(
|
||
data
|
||
)
|
||
? jQuery.parseJSON(
|
||
data
|
||
)
|
||
: data));
|
||
} catch (e) {}
|
||
jQuery.data(
|
||
elem,
|
||
key,
|
||
data
|
||
);
|
||
} else data = undefined;
|
||
}
|
||
return data;
|
||
}
|
||
function isEmptyDataObject(
|
||
obj
|
||
) {
|
||
var name;
|
||
for (name in obj)
|
||
if (
|
||
("data" !== name || !jQuery.isEmptyObject(
|
||
obj[name]
|
||
)) &&
|
||
"toJSON" !== name
|
||
)
|
||
return !1;
|
||
return !0;
|
||
}
|
||
jQuery.extend(
|
||
{
|
||
cache: {
|
||
},
|
||
expando: "jQuery" + ("1.9.1" + Math.random(
|
||
)).replace(
|
||
/\D/g,
|
||
""
|
||
),
|
||
noData: {
|
||
embed: !0,
|
||
object: "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",
|
||
applet: !0,
|
||
},
|
||
hasData: function (
|
||
elem
|
||
) {
|
||
return (
|
||
!!(elem = elem.nodeType
|
||
? jQuery.cache[elem[jQuery.expando]]
|
||
: elem[jQuery.expando]) && !isEmptyDataObject(
|
||
elem
|
||
)
|
||
);
|
||
},
|
||
data: function (
|
||
elem, name, data
|
||
) {
|
||
return internalData(
|
||
elem,
|
||
name,
|
||
data
|
||
);
|
||
},
|
||
removeData: function (
|
||
elem, name
|
||
) {
|
||
return internalRemoveData(
|
||
elem,
|
||
name
|
||
);
|
||
},
|
||
_data: function (
|
||
elem, name, data
|
||
) {
|
||
return internalData(
|
||
elem,
|
||
name,
|
||
data,
|
||
!0
|
||
);
|
||
},
|
||
_removeData: function (
|
||
elem, name
|
||
) {
|
||
return internalRemoveData(
|
||
elem,
|
||
name,
|
||
!0
|
||
);
|
||
},
|
||
acceptData: function (
|
||
elem
|
||
) {
|
||
if (elem.nodeType && 1 !== elem.nodeType && 9 !== elem.nodeType)
|
||
return !1;
|
||
var noData = elem.nodeName && jQuery.noData[elem.nodeName.toLowerCase(
|
||
)];
|
||
return (
|
||
!noData || (!0 !== noData && elem.getAttribute(
|
||
"classid"
|
||
) === noData)
|
||
);
|
||
},
|
||
}
|
||
),
|
||
jQuery.fn.extend(
|
||
{
|
||
data: function (
|
||
key, value
|
||
) {
|
||
var attrs,
|
||
name,
|
||
elem = this[0],
|
||
i = 0,
|
||
data = null;
|
||
if (undefined === key) {
|
||
if (
|
||
this.length &&
|
||
((data = jQuery.data(
|
||
elem
|
||
)),
|
||
1 === elem.nodeType && !jQuery._data(
|
||
elem,
|
||
"parsedAttrs"
|
||
))
|
||
) {
|
||
for (attrs = elem.attributes; i < attrs.length; i++)
|
||
(name = attrs[i].name).indexOf(
|
||
"data-"
|
||
) ||
|
||
((name = jQuery.camelCase(
|
||
name.slice(
|
||
5
|
||
)
|
||
)),
|
||
dataAttr(
|
||
elem,
|
||
name,
|
||
data[name]
|
||
));
|
||
jQuery._data(
|
||
elem,
|
||
"parsedAttrs",
|
||
!0
|
||
);
|
||
}
|
||
return data;
|
||
}
|
||
return "object" == typeof key
|
||
? this.each(
|
||
function (
|
||
) {
|
||
jQuery.data(
|
||
this,
|
||
key
|
||
);
|
||
}
|
||
)
|
||
: jQuery.access(
|
||
this,
|
||
function (
|
||
value
|
||
) {
|
||
if (undefined === value)
|
||
return elem
|
||
? dataAttr(
|
||
elem,
|
||
key,
|
||
jQuery.data(
|
||
elem,
|
||
key
|
||
)
|
||
)
|
||
: null;
|
||
this.each(
|
||
function (
|
||
) {
|
||
jQuery.data(
|
||
this,
|
||
key,
|
||
value
|
||
);
|
||
}
|
||
);
|
||
},
|
||
null,
|
||
value,
|
||
arguments.length > 1,
|
||
null,
|
||
!0,
|
||
);
|
||
},
|
||
removeData: function (
|
||
key
|
||
) {
|
||
return this.each(
|
||
function (
|
||
) {
|
||
jQuery.removeData(
|
||
this,
|
||
key
|
||
);
|
||
}
|
||
);
|
||
},
|
||
}
|
||
),
|
||
jQuery.extend(
|
||
{
|
||
queue: function (
|
||
elem, type, data
|
||
) {
|
||
var queue;
|
||
if (elem)
|
||
return (
|
||
(type = (type || "fx") + "queue"),
|
||
(queue = jQuery._data(
|
||
elem,
|
||
type
|
||
)),
|
||
data &&
|
||
(!queue || jQuery.isArray(
|
||
data
|
||
)
|
||
? (queue = jQuery._data(
|
||
elem,
|
||
type,
|
||
jQuery.makeArray(
|
||
data
|
||
)
|
||
))
|
||
: queue.push(
|
||
data
|
||
)),
|
||
queue || []
|
||
);
|
||
},
|
||
dequeue: function (
|
||
elem, type
|
||
) {
|
||
type = type || "fx";
|
||
var queue = jQuery.queue(
|
||
elem,
|
||
type
|
||
),
|
||
startLength = queue.length,
|
||
fn = queue.shift(
|
||
),
|
||
hooks = jQuery._queueHooks(
|
||
elem,
|
||
type
|
||
);
|
||
"inprogress" === fn && ((fn = queue.shift(
|
||
)), startLength--),
|
||
(hooks.cur = fn),
|
||
fn &&
|
||
("fx" === type && queue.unshift(
|
||
"inprogress"
|
||
),
|
||
delete hooks.stop,
|
||
fn.call(
|
||
elem,
|
||
function (
|
||
) {
|
||
jQuery.dequeue(
|
||
elem,
|
||
type
|
||
);
|
||
},
|
||
hooks,
|
||
)),
|
||
!startLength && hooks && hooks.empty.fire(
|
||
);
|
||
},
|
||
_queueHooks: function (
|
||
elem, type
|
||
) {
|
||
var key = type + "queueHooks";
|
||
return (
|
||
jQuery._data(
|
||
elem,
|
||
key
|
||
) ||
|
||
jQuery._data(
|
||
elem,
|
||
key,
|
||
{
|
||
empty: jQuery.Callbacks(
|
||
"once memory"
|
||
).add(
|
||
function (
|
||
) {
|
||
jQuery._removeData(
|
||
elem,
|
||
type + "queue"
|
||
),
|
||
jQuery._removeData(
|
||
elem,
|
||
key
|
||
);
|
||
}
|
||
),
|
||
}
|
||
)
|
||
);
|
||
},
|
||
}
|
||
),
|
||
jQuery.fn.extend(
|
||
{
|
||
queue: function (
|
||
type, data
|
||
) {
|
||
var setter = 2;
|
||
return (
|
||
"string" != typeof type && ((data = type), (type = "fx"), setter--),
|
||
arguments.length < setter
|
||
? jQuery.queue(
|
||
this[0],
|
||
type
|
||
)
|
||
: undefined === data
|
||
? this
|
||
: this.each(
|
||
function (
|
||
) {
|
||
var queue = jQuery.queue(
|
||
this,
|
||
type,
|
||
data
|
||
);
|
||
jQuery._queueHooks(
|
||
this,
|
||
type
|
||
),
|
||
"fx" === type &&
|
||
"inprogress" !== queue[0] &&
|
||
jQuery.dequeue(
|
||
this,
|
||
type
|
||
);
|
||
}
|
||
)
|
||
);
|
||
},
|
||
dequeue: function (
|
||
type
|
||
) {
|
||
return this.each(
|
||
function (
|
||
) {
|
||
jQuery.dequeue(
|
||
this,
|
||
type
|
||
);
|
||
}
|
||
);
|
||
},
|
||
delay: function (
|
||
time, type
|
||
) {
|
||
return (
|
||
(time = (jQuery.fx && jQuery.fx.speeds[time]) || time),
|
||
(type = type || "fx"),
|
||
this.queue(
|
||
type,
|
||
function (
|
||
next, hooks
|
||
) {
|
||
var timeout = setTimeout(
|
||
next,
|
||
time
|
||
);
|
||
hooks.stop = function (
|
||
) {
|
||
clearTimeout(
|
||
timeout
|
||
);
|
||
};
|
||
}
|
||
)
|
||
);
|
||
},
|
||
clearQueue: function (
|
||
type
|
||
) {
|
||
return this.queue(
|
||
type || "fx",
|
||
[]
|
||
);
|
||
},
|
||
promise: function (
|
||
type, obj
|
||
) {
|
||
var tmp,
|
||
count = 1,
|
||
defer = jQuery.Deferred(
|
||
),
|
||
elements = this,
|
||
i = this.length,
|
||
resolve = function (
|
||
) {
|
||
--count || defer.resolveWith(
|
||
elements,
|
||
[elements,]
|
||
);
|
||
};
|
||
for (
|
||
"string" != typeof type && ((obj = type), (type = undefined)),
|
||
type = type || "fx";
|
||
i--;
|
||
|
||
)
|
||
(tmp = jQuery._data(
|
||
elements[i],
|
||
type + "queueHooks"
|
||
)) &&
|
||
tmp.empty &&
|
||
(count++, tmp.empty.add(
|
||
resolve
|
||
));
|
||
return resolve(
|
||
), defer.promise(
|
||
obj
|
||
);
|
||
},
|
||
}
|
||
);
|
||
var nodeHook,
|
||
boolHook,
|
||
rclass = /[\t\r\n]/g,
|
||
rreturn = /\r/g,
|
||
rfocusable = /^(?:input|select|textarea|button|object)$/i,
|
||
rclickable = /^(?:a|area)$/i,
|
||
rboolean = /^(?:checked|selected|autofocus|autoplay|async|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped)$/i,
|
||
ruseDefault = /^(?:checked|selected)$/i,
|
||
getSetAttribute = jQuery.support.getSetAttribute,
|
||
getSetInput = jQuery.support.input;
|
||
jQuery.fn.extend(
|
||
{
|
||
attr: function (
|
||
name, value
|
||
) {
|
||
return jQuery.access(
|
||
this,
|
||
jQuery.attr,
|
||
name,
|
||
value,
|
||
arguments.length > 1,
|
||
);
|
||
},
|
||
removeAttr: function (
|
||
name
|
||
) {
|
||
return this.each(
|
||
function (
|
||
) {
|
||
jQuery.removeAttr(
|
||
this,
|
||
name
|
||
);
|
||
}
|
||
);
|
||
},
|
||
prop: function (
|
||
name, value
|
||
) {
|
||
return jQuery.access(
|
||
this,
|
||
jQuery.prop,
|
||
name,
|
||
value,
|
||
arguments.length > 1,
|
||
);
|
||
},
|
||
removeProp: function (
|
||
name
|
||
) {
|
||
return (
|
||
(name = jQuery.propFix[name] || name),
|
||
this.each(
|
||
function (
|
||
) {
|
||
try {
|
||
(this[name] = undefined), delete this[name];
|
||
} catch (e) {}
|
||
}
|
||
)
|
||
);
|
||
},
|
||
addClass: function (
|
||
value
|
||
) {
|
||
var classes,
|
||
elem,
|
||
cur,
|
||
clazz,
|
||
j,
|
||
i = 0,
|
||
len = this.length,
|
||
proceed = "string" == typeof value && value;
|
||
if (jQuery.isFunction(
|
||
value
|
||
))
|
||
return this.each(
|
||
function (
|
||
j
|
||
) {
|
||
jQuery(
|
||
this
|
||
).addClass(
|
||
value.call(
|
||
this,
|
||
j,
|
||
this.className
|
||
)
|
||
);
|
||
}
|
||
);
|
||
if (proceed)
|
||
for (classes = (value || "").match(
|
||
core_rnotwhite
|
||
) || []; i < len; i++)
|
||
if (
|
||
(cur =
|
||
1 === (elem = this[i]).nodeType &&
|
||
(elem.className
|
||
? (" " + elem.className + " ").replace(
|
||
rclass,
|
||
" "
|
||
)
|
||
: " "))
|
||
) {
|
||
for (j = 0; (clazz = classes[j++]); )
|
||
cur.indexOf(
|
||
" " + clazz + " "
|
||
) < 0 && (cur += clazz + " ");
|
||
elem.className = jQuery.trim(
|
||
cur
|
||
);
|
||
}
|
||
return this;
|
||
},
|
||
removeClass: function (
|
||
value
|
||
) {
|
||
var classes,
|
||
elem,
|
||
cur,
|
||
clazz,
|
||
j,
|
||
i = 0,
|
||
len = this.length,
|
||
proceed = 0 === arguments.length || ("string" == typeof value && value);
|
||
if (jQuery.isFunction(
|
||
value
|
||
))
|
||
return this.each(
|
||
function (
|
||
j
|
||
) {
|
||
jQuery(
|
||
this
|
||
).removeClass(
|
||
value.call(
|
||
this,
|
||
j,
|
||
this.className
|
||
)
|
||
);
|
||
}
|
||
);
|
||
if (proceed)
|
||
for (classes = (value || "").match(
|
||
core_rnotwhite
|
||
) || []; i < len; i++)
|
||
if (
|
||
(cur =
|
||
1 === (elem = this[i]).nodeType &&
|
||
(elem.className
|
||
? (" " + elem.className + " ").replace(
|
||
rclass,
|
||
" "
|
||
)
|
||
: ""))
|
||
) {
|
||
for (j = 0; (clazz = classes[j++]); )
|
||
for (; cur.indexOf(
|
||
" " + clazz + " "
|
||
) >= 0; )
|
||
cur = cur.replace(
|
||
" " + clazz + " ",
|
||
" "
|
||
);
|
||
elem.className = value
|
||
? jQuery.trim(
|
||
cur
|
||
)
|
||
: "";
|
||
}
|
||
return this;
|
||
},
|
||
toggleClass: function (
|
||
value, stateVal
|
||
) {
|
||
var type = typeof value,
|
||
isBool = "boolean" == typeof stateVal;
|
||
return jQuery.isFunction(
|
||
value
|
||
)
|
||
? this.each(
|
||
function (
|
||
i
|
||
) {
|
||
jQuery(
|
||
this
|
||
).toggleClass(
|
||
value.call(
|
||
this,
|
||
i,
|
||
this.className,
|
||
stateVal
|
||
),
|
||
stateVal,
|
||
);
|
||
}
|
||
)
|
||
: this.each(
|
||
function (
|
||
) {
|
||
if ("string" === type)
|
||
for (
|
||
var className,
|
||
i = 0,
|
||
self = jQuery(
|
||
this
|
||
),
|
||
state = stateVal,
|
||
classNames = value.match(
|
||
core_rnotwhite
|
||
) || [];
|
||
(className = classNames[i++]);
|
||
|
||
)
|
||
(state = isBool
|
||
? state
|
||
: !self.hasClass(
|
||
className
|
||
)),
|
||
self[state ? "addClass" : "removeClass"](
|
||
className
|
||
);
|
||
else
|
||
("undefined" !== type && "boolean" !== type) ||
|
||
(this.className &&
|
||
jQuery._data(
|
||
this,
|
||
"__className__",
|
||
this.className
|
||
),
|
||
(this.className =
|
||
this.className || !1 === value
|
||
? ""
|
||
: jQuery._data(
|
||
this,
|
||
"__className__"
|
||
) || ""));
|
||
}
|
||
);
|
||
},
|
||
hasClass: function (
|
||
selector
|
||
) {
|
||
for (
|
||
var className = " " + selector + " ", i = 0, l = this.length;
|
||
i < l;
|
||
i++
|
||
)
|
||
if (
|
||
1 === this[i].nodeType &&
|
||
(" " + this[i].className + " ")
|
||
.replace(
|
||
rclass,
|
||
" "
|
||
)
|
||
.indexOf(
|
||
className
|
||
) >= 0
|
||
)
|
||
return !0;
|
||
return !1;
|
||
},
|
||
val: function (
|
||
value
|
||
) {
|
||
var ret,
|
||
hooks,
|
||
isFunction,
|
||
elem = this[0];
|
||
return arguments.length
|
||
? ((isFunction = jQuery.isFunction(
|
||
value
|
||
)),
|
||
this.each(
|
||
function (
|
||
i
|
||
) {
|
||
var val,
|
||
self = jQuery(
|
||
this
|
||
);
|
||
1 === this.nodeType &&
|
||
(null ==
|
||
(val = isFunction
|
||
? value.call(
|
||
this,
|
||
i,
|
||
self.val(
|
||
)
|
||
)
|
||
: value)
|
||
? (val = "")
|
||
: "number" == typeof val
|
||
? (val += "")
|
||
: jQuery.isArray(
|
||
val
|
||
) &&
|
||
(val = jQuery.map(
|
||
val,
|
||
function (
|
||
value
|
||
) {
|
||
return null == value ? "" : value + "";
|
||
}
|
||
)),
|
||
((hooks =
|
||
jQuery.valHooks[this.type] ||
|
||
jQuery.valHooks[this.nodeName.toLowerCase(
|
||
)]) &&
|
||
"set" in hooks &&
|
||
undefined !== hooks.set(
|
||
this,
|
||
val,
|
||
"value"
|
||
)) ||
|
||
(this.value = val));
|
||
}
|
||
))
|
||
: elem
|
||
? (hooks =
|
||
jQuery.valHooks[elem.type] ||
|
||
jQuery.valHooks[elem.nodeName.toLowerCase(
|
||
)]) &&
|
||
"get" in hooks &&
|
||
undefined !== (ret = hooks.get(
|
||
elem,
|
||
"value"
|
||
))
|
||
? ret
|
||
: "string" == typeof (ret = elem.value)
|
||
? ret.replace(
|
||
rreturn,
|
||
""
|
||
)
|
||
: null == ret
|
||
? ""
|
||
: ret
|
||
: void 0;
|
||
},
|
||
}
|
||
),
|
||
jQuery.extend(
|
||
{
|
||
valHooks: {
|
||
option: {
|
||
get: function (
|
||
elem
|
||
) {
|
||
var val = elem.attributes.value;
|
||
return !val || val.specified ? elem.value : elem.text;
|
||
},
|
||
},
|
||
select: {
|
||
get: function (
|
||
elem
|
||
) {
|
||
for (
|
||
var value,
|
||
option,
|
||
options = elem.options,
|
||
index = elem.selectedIndex,
|
||
one = "select-one" === elem.type || index < 0,
|
||
values = one ? null : [],
|
||
max = one ? index + 1 : options.length,
|
||
i = index < 0 ? max : one ? index : 0;
|
||
i < max;
|
||
i++
|
||
)
|
||
if (
|
||
((option = options[i]).selected || i === index) &&
|
||
(jQuery.support.optDisabled
|
||
? !option.disabled
|
||
: null === option.getAttribute(
|
||
"disabled"
|
||
)) &&
|
||
(!option.parentNode.disabled ||
|
||
!jQuery.nodeName(
|
||
option.parentNode,
|
||
"optgroup"
|
||
))
|
||
) {
|
||
if (((value = jQuery(
|
||
option
|
||
).val(
|
||
)), one)) return value;
|
||
values.push(
|
||
value
|
||
);
|
||
}
|
||
return values;
|
||
},
|
||
set: function (
|
||
elem, value
|
||
) {
|
||
var values = jQuery.makeArray(
|
||
value
|
||
);
|
||
return (
|
||
jQuery(
|
||
elem
|
||
)
|
||
.find(
|
||
"option"
|
||
)
|
||
.each(
|
||
function (
|
||
) {
|
||
this.selected =
|
||
jQuery.inArray(
|
||
jQuery(
|
||
this
|
||
).val(
|
||
),
|
||
values
|
||
) >= 0;
|
||
}
|
||
),
|
||
values.length || (elem.selectedIndex = -1),
|
||
values
|
||
);
|
||
},
|
||
},
|
||
},
|
||
attr: function (
|
||
elem, name, value
|
||
) {
|
||
var hooks,
|
||
notxml,
|
||
ret,
|
||
nType = elem.nodeType;
|
||
if (elem && 3 !== nType && 8 !== nType && 2 !== nType)
|
||
return void 0 === elem.getAttribute
|
||
? jQuery.prop(
|
||
elem,
|
||
name,
|
||
value
|
||
)
|
||
: ((notxml = 1 !== nType || !jQuery.isXMLDoc(
|
||
elem
|
||
)) &&
|
||
((name = name.toLowerCase(
|
||
)),
|
||
(hooks =
|
||
jQuery.attrHooks[name] ||
|
||
(rboolean.test(
|
||
name
|
||
)
|
||
? boolHook
|
||
: nodeHook))),
|
||
undefined === value
|
||
? hooks &&
|
||
notxml &&
|
||
"get" in hooks &&
|
||
null !== (ret = hooks.get(
|
||
elem,
|
||
name
|
||
))
|
||
? ret
|
||
: (void 0 !== elem.getAttribute &&
|
||
(ret = elem.getAttribute(
|
||
name
|
||
)),
|
||
null == ret ? undefined : ret)
|
||
: null !== value
|
||
? hooks &&
|
||
notxml &&
|
||
"set" in hooks &&
|
||
undefined !== (ret = hooks.set(
|
||
elem,
|
||
value,
|
||
name
|
||
))
|
||
? ret
|
||
: (elem.setAttribute(
|
||
name,
|
||
value + ""
|
||
), value)
|
||
: void jQuery.removeAttr(
|
||
elem,
|
||
name
|
||
));
|
||
},
|
||
removeAttr: function (
|
||
elem, value
|
||
) {
|
||
var name,
|
||
propName,
|
||
i = 0,
|
||
attrNames = value && value.match(
|
||
core_rnotwhite
|
||
);
|
||
if (attrNames && 1 === elem.nodeType)
|
||
for (; (name = attrNames[i++]); )
|
||
(propName = jQuery.propFix[name] || name),
|
||
rboolean.test(
|
||
name
|
||
)
|
||
? !getSetAttribute && ruseDefault.test(
|
||
name
|
||
)
|
||
? (elem[jQuery.camelCase(
|
||
"default-" + name
|
||
)] = elem[
|
||
propName
|
||
] = !1)
|
||
: (elem[propName] = !1)
|
||
: jQuery.attr(
|
||
elem,
|
||
name,
|
||
""
|
||
),
|
||
elem.removeAttribute(
|
||
getSetAttribute ? name : propName
|
||
);
|
||
},
|
||
attrHooks: {
|
||
type: {
|
||
set: function (
|
||
elem, value
|
||
) {
|
||
if (
|
||
!jQuery.support.radioValue &&
|
||
"radio" === value &&
|
||
jQuery.nodeName(
|
||
elem,
|
||
"input"
|
||
)
|
||
) {
|
||
var val = elem.value;
|
||
return (
|
||
elem.setAttribute(
|
||
"type",
|
||
value
|
||
),
|
||
val && (elem.value = val),
|
||
value
|
||
);
|
||
}
|
||
},
|
||
},
|
||
},
|
||
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 (
|
||
elem, name, value
|
||
) {
|
||
var ret,
|
||
hooks,
|
||
nType = elem.nodeType;
|
||
if (elem && 3 !== nType && 8 !== nType && 2 !== nType)
|
||
return (
|
||
(1 !== nType || !jQuery.isXMLDoc(
|
||
elem
|
||
)) &&
|
||
((name = jQuery.propFix[name] || name),
|
||
(hooks = jQuery.propHooks[name])),
|
||
undefined !== value
|
||
? hooks &&
|
||
"set" in hooks &&
|
||
undefined !== (ret = hooks.set(
|
||
elem,
|
||
value,
|
||
name
|
||
))
|
||
? ret
|
||
: (elem[name] = value)
|
||
: hooks &&
|
||
"get" in hooks &&
|
||
null !== (ret = hooks.get(
|
||
elem,
|
||
name
|
||
))
|
||
? ret
|
||
: elem[name]
|
||
);
|
||
},
|
||
propHooks: {
|
||
tabIndex: {
|
||
get: function (
|
||
elem
|
||
) {
|
||
var attributeNode = elem.getAttributeNode(
|
||
"tabindex"
|
||
);
|
||
return attributeNode && attributeNode.specified
|
||
? parseInt(
|
||
attributeNode.value,
|
||
10
|
||
)
|
||
: rfocusable.test(
|
||
elem.nodeName
|
||
) ||
|
||
(rclickable.test(
|
||
elem.nodeName
|
||
) && elem.href)
|
||
? 0
|
||
: undefined;
|
||
},
|
||
},
|
||
},
|
||
}
|
||
),
|
||
(boolHook = {
|
||
get: function (
|
||
elem, name
|
||
) {
|
||
var prop = jQuery.prop(
|
||
elem,
|
||
name
|
||
),
|
||
attr = "boolean" == typeof prop && elem.getAttribute(
|
||
name
|
||
),
|
||
detail =
|
||
"boolean" == typeof prop
|
||
? getSetInput && getSetAttribute
|
||
? null != attr
|
||
: ruseDefault.test(
|
||
name
|
||
)
|
||
? elem[jQuery.camelCase(
|
||
"default-" + name
|
||
)]
|
||
: !!attr
|
||
: elem.getAttributeNode(
|
||
name
|
||
);
|
||
return detail && !1 !== detail.value
|
||
? name.toLowerCase(
|
||
)
|
||
: undefined;
|
||
},
|
||
set: function (
|
||
elem, value, name
|
||
) {
|
||
return (
|
||
!1 === value
|
||
? jQuery.removeAttr(
|
||
elem,
|
||
name
|
||
)
|
||
: (getSetInput && getSetAttribute) || !ruseDefault.test(
|
||
name
|
||
)
|
||
? elem.setAttribute(
|
||
(!getSetAttribute && jQuery.propFix[name]) || name,
|
||
name,
|
||
)
|
||
: (elem[jQuery.camelCase(
|
||
"default-" + name
|
||
)] = elem[name] = !0),
|
||
name
|
||
);
|
||
},
|
||
}),
|
||
(getSetInput && getSetAttribute) ||
|
||
(jQuery.attrHooks.value = {
|
||
get: function (
|
||
elem, name
|
||
) {
|
||
var ret = elem.getAttributeNode(
|
||
name
|
||
);
|
||
return jQuery.nodeName(
|
||
elem,
|
||
"input"
|
||
)
|
||
? elem.defaultValue
|
||
: ret && ret.specified
|
||
? ret.value
|
||
: undefined;
|
||
},
|
||
set: function (
|
||
elem, value, name
|
||
) {
|
||
if (!jQuery.nodeName(
|
||
elem,
|
||
"input"
|
||
))
|
||
return nodeHook && nodeHook.set(
|
||
elem,
|
||
value,
|
||
name
|
||
);
|
||
elem.defaultValue = value;
|
||
},
|
||
}),
|
||
getSetAttribute ||
|
||
((nodeHook = jQuery.valHooks.button = {
|
||
get: function (
|
||
elem, name
|
||
) {
|
||
var ret = elem.getAttributeNode(
|
||
name
|
||
);
|
||
return ret &&
|
||
("id" === name || "name" === name || "coords" === name
|
||
? "" !== ret.value
|
||
: ret.specified)
|
||
? ret.value
|
||
: undefined;
|
||
},
|
||
set: function (
|
||
elem, value, name
|
||
) {
|
||
var ret = elem.getAttributeNode(
|
||
name
|
||
);
|
||
return (
|
||
ret ||
|
||
elem.setAttributeNode(
|
||
(ret = elem.ownerDocument.createAttribute(
|
||
name
|
||
)),
|
||
),
|
||
(ret.value = value += ""),
|
||
"value" === name || value === elem.getAttribute(
|
||
name
|
||
)
|
||
? value
|
||
: undefined
|
||
);
|
||
},
|
||
}),
|
||
(jQuery.attrHooks.contenteditable = {
|
||
get: nodeHook.get,
|
||
set: function (
|
||
elem, value, name
|
||
) {
|
||
nodeHook.set(
|
||
elem,
|
||
"" !== value && value,
|
||
name
|
||
);
|
||
},
|
||
}),
|
||
jQuery.each(
|
||
["width", "height",],
|
||
function (
|
||
i, name
|
||
) {
|
||
jQuery.attrHooks[name] = jQuery.extend(
|
||
jQuery.attrHooks[name],
|
||
{
|
||
set: function (
|
||
elem, value
|
||
) {
|
||
if ("" === value) return elem.setAttribute(
|
||
name,
|
||
"auto"
|
||
), value;
|
||
},
|
||
}
|
||
);
|
||
}
|
||
)),
|
||
jQuery.support.hrefNormalized ||
|
||
(jQuery.each(
|
||
["href", "src", "width", "height",],
|
||
function (
|
||
i, name
|
||
) {
|
||
jQuery.attrHooks[name] = jQuery.extend(
|
||
jQuery.attrHooks[name],
|
||
{
|
||
get: function (
|
||
elem
|
||
) {
|
||
var ret = elem.getAttribute(
|
||
name,
|
||
2
|
||
);
|
||
return null == ret ? undefined : ret;
|
||
},
|
||
}
|
||
);
|
||
}
|
||
),
|
||
jQuery.each(
|
||
["href", "src",],
|
||
function (
|
||
i, name
|
||
) {
|
||
jQuery.propHooks[name] = {
|
||
get: function (
|
||
elem
|
||
) {
|
||
return elem.getAttribute(
|
||
name,
|
||
4
|
||
);
|
||
},
|
||
};
|
||
}
|
||
)),
|
||
jQuery.support.style ||
|
||
(jQuery.attrHooks.style = {
|
||
get: function (
|
||
elem
|
||
) {
|
||
return elem.style.cssText || undefined;
|
||
},
|
||
set: function (
|
||
elem, value
|
||
) {
|
||
return (elem.style.cssText = value + "");
|
||
},
|
||
}),
|
||
jQuery.support.optSelected ||
|
||
(jQuery.propHooks.selected = jQuery.extend(
|
||
jQuery.propHooks.selected,
|
||
{
|
||
get: function (
|
||
elem
|
||
) {
|
||
var parent = elem.parentNode;
|
||
return (
|
||
parent &&
|
||
(parent.selectedIndex,
|
||
parent.parentNode && parent.parentNode.selectedIndex),
|
||
null
|
||
);
|
||
},
|
||
}
|
||
)),
|
||
jQuery.support.enctype || (jQuery.propFix.enctype = "encoding"),
|
||
jQuery.support.checkOn ||
|
||
jQuery.each(
|
||
["radio", "checkbox",],
|
||
function (
|
||
) {
|
||
jQuery.valHooks[this] = {
|
||
get: function (
|
||
elem
|
||
) {
|
||
return null === elem.getAttribute(
|
||
"value"
|
||
)
|
||
? "on"
|
||
: elem.value;
|
||
},
|
||
};
|
||
}
|
||
),
|
||
jQuery.each(
|
||
["radio", "checkbox",],
|
||
function (
|
||
) {
|
||
jQuery.valHooks[this] = jQuery.extend(
|
||
jQuery.valHooks[this],
|
||
{
|
||
set: function (
|
||
elem, value
|
||
) {
|
||
if (jQuery.isArray(
|
||
value
|
||
))
|
||
return (elem.checked =
|
||
jQuery.inArray(
|
||
jQuery(
|
||
elem
|
||
).val(
|
||
),
|
||
value
|
||
) >= 0);
|
||
},
|
||
}
|
||
);
|
||
}
|
||
);
|
||
var rformElems = /^(?:input|select|textarea)$/i,
|
||
rkeyEvent = /^key/,
|
||
rmouseEvent = /^(?:mouse|contextmenu)|click/,
|
||
rfocusMorph = /^(?:focusinfocus|focusoutblur)$/,
|
||
rtypenamespace = /^([^.]*)(?:\.(.+)|)$/;
|
||
function returnTrue(
|
||
) {
|
||
return !0;
|
||
}
|
||
function returnFalse(
|
||
) {
|
||
return !1;
|
||
}
|
||
(jQuery.event = {
|
||
global: {
|
||
},
|
||
add: function (
|
||
elem, types, handler, data, selector
|
||
) {
|
||
var tmp,
|
||
events,
|
||
t,
|
||
handleObjIn,
|
||
special,
|
||
eventHandle,
|
||
handleObj,
|
||
handlers,
|
||
type,
|
||
namespaces,
|
||
origType,
|
||
elemData = jQuery._data(
|
||
elem
|
||
);
|
||
if (elemData) {
|
||
for (
|
||
handler.handler &&
|
||
((handler = (handleObjIn = handler).handler),
|
||
(selector = handleObjIn.selector)),
|
||
handler.guid || (handler.guid = jQuery.guid++),
|
||
(events = elemData.events) || (events = elemData.events = {
|
||
}),
|
||
(eventHandle = elemData.handle) ||
|
||
((eventHandle = elemData.handle = function (
|
||
e
|
||
) {
|
||
return void 0 === jQuery ||
|
||
(e && jQuery.event.triggered === e.type)
|
||
? undefined
|
||
: jQuery.event.dispatch.apply(
|
||
eventHandle.elem,
|
||
arguments
|
||
);
|
||
}).elem = elem),
|
||
t = (types = (types || "").match(
|
||
core_rnotwhite
|
||
) || ["",]).length;
|
||
t--;
|
||
|
||
)
|
||
(type = origType = (tmp = rtypenamespace.exec(
|
||
types[t]
|
||
) || [])[1]),
|
||
(namespaces = (tmp[2] || "").split(
|
||
"."
|
||
).sort(
|
||
)),
|
||
(special = jQuery.event.special[type] || {
|
||
}),
|
||
(type =
|
||
(selector ? special.delegateType : special.bindType) || type),
|
||
(special = jQuery.event.special[type] || {
|
||
}),
|
||
(handleObj = jQuery.extend(
|
||
{
|
||
type: type,
|
||
origType: origType,
|
||
data: data,
|
||
handler: handler,
|
||
guid: handler.guid,
|
||
selector: selector,
|
||
needsContext:
|
||
selector && jQuery.expr.match.needsContext.test(
|
||
selector
|
||
),
|
||
namespace: namespaces.join(
|
||
"."
|
||
),
|
||
},
|
||
handleObjIn,
|
||
)),
|
||
(handlers = events[type]) ||
|
||
(((handlers = events[type] = []).delegateCount = 0),
|
||
(special.setup &&
|
||
!1 !==
|
||
special.setup.call(
|
||
elem,
|
||
data,
|
||
namespaces,
|
||
eventHandle
|
||
)) ||
|
||
(elem.addEventListener
|
||
? elem.addEventListener(
|
||
type,
|
||
eventHandle,
|
||
!1
|
||
)
|
||
: elem.attachEvent &&
|
||
elem.attachEvent(
|
||
"on" + type,
|
||
eventHandle
|
||
))),
|
||
special.add &&
|
||
(special.add.call(
|
||
elem,
|
||
handleObj
|
||
),
|
||
handleObj.handler.guid ||
|
||
(handleObj.handler.guid = handler.guid)),
|
||
selector
|
||
? handlers.splice(
|
||
handlers.delegateCount++,
|
||
0,
|
||
handleObj
|
||
)
|
||
: handlers.push(
|
||
handleObj
|
||
),
|
||
(jQuery.event.global[type] = !0);
|
||
elem = null;
|
||
}
|
||
},
|
||
remove: function (
|
||
elem, types, handler, selector, mappedTypes
|
||
) {
|
||
var j,
|
||
handleObj,
|
||
tmp,
|
||
origCount,
|
||
t,
|
||
events,
|
||
special,
|
||
handlers,
|
||
type,
|
||
namespaces,
|
||
origType,
|
||
elemData = jQuery.hasData(
|
||
elem
|
||
) && jQuery._data(
|
||
elem
|
||
);
|
||
if (elemData && (events = elemData.events)) {
|
||
for (
|
||
t = (types = (types || "").match(
|
||
core_rnotwhite
|
||
) || ["",]).length;
|
||
t--;
|
||
|
||
)
|
||
if (
|
||
((type = origType = (tmp = rtypenamespace.exec(
|
||
types[t]
|
||
) || [])[1]),
|
||
(namespaces = (tmp[2] || "").split(
|
||
"."
|
||
).sort(
|
||
)),
|
||
type)
|
||
) {
|
||
for (
|
||
special = jQuery.event.special[type] || {
|
||
},
|
||
handlers =
|
||
events[
|
||
(type =
|
||
(selector ? special.delegateType : special.bindType) ||
|
||
type)
|
||
] || [],
|
||
tmp =
|
||
tmp[2] &&
|
||
new RegExp(
|
||
"(^|\\.)" + namespaces.join(
|
||
"\\.(?:.*\\.|)"
|
||
) + "(\\.|$)",
|
||
),
|
||
origCount = j = handlers.length;
|
||
j--;
|
||
|
||
)
|
||
(handleObj = handlers[j]),
|
||
(!mappedTypes && origType !== handleObj.origType) ||
|
||
(handler && handler.guid !== handleObj.guid) ||
|
||
(tmp && !tmp.test(
|
||
handleObj.namespace
|
||
)) ||
|
||
(selector &&
|
||
selector !== handleObj.selector &&
|
||
("**" !== selector || !handleObj.selector)) ||
|
||
(handlers.splice(
|
||
j,
|
||
1
|
||
),
|
||
handleObj.selector && handlers.delegateCount--,
|
||
special.remove && special.remove.call(
|
||
elem,
|
||
handleObj
|
||
));
|
||
origCount &&
|
||
!handlers.length &&
|
||
((special.teardown &&
|
||
!1 !==
|
||
special.teardown.call(
|
||
elem,
|
||
namespaces,
|
||
elemData.handle
|
||
)) ||
|
||
jQuery.removeEvent(
|
||
elem,
|
||
type,
|
||
elemData.handle
|
||
),
|
||
delete events[type]);
|
||
} else
|
||
for (type in events)
|
||
jQuery.event.remove(
|
||
elem,
|
||
type + types[t],
|
||
handler,
|
||
selector,
|
||
!0
|
||
);
|
||
jQuery.isEmptyObject(
|
||
events
|
||
) &&
|
||
(delete elemData.handle, jQuery._removeData(
|
||
elem,
|
||
"events"
|
||
));
|
||
}
|
||
},
|
||
trigger: function (
|
||
event, data, elem, onlyHandlers
|
||
) {
|
||
var handle,
|
||
ontype,
|
||
cur,
|
||
bubbleType,
|
||
special,
|
||
tmp,
|
||
i,
|
||
eventPath = [elem || document,],
|
||
type = core_hasOwn.call(
|
||
event,
|
||
"type"
|
||
)
|
||
? event.type
|
||
: event,
|
||
namespaces = core_hasOwn.call(
|
||
event,
|
||
"namespace"
|
||
)
|
||
? event.namespace.split(
|
||
"."
|
||
)
|
||
: [];
|
||
if (
|
||
((cur = tmp = elem = elem || document),
|
||
3 !== elem.nodeType &&
|
||
8 !== elem.nodeType &&
|
||
!rfocusMorph.test(
|
||
type + jQuery.event.triggered
|
||
) &&
|
||
(type.indexOf(
|
||
"."
|
||
) >= 0 &&
|
||
((namespaces = type.split(
|
||
"."
|
||
)),
|
||
(type = namespaces.shift(
|
||
)),
|
||
namespaces.sort(
|
||
)),
|
||
(ontype = type.indexOf(
|
||
":"
|
||
) < 0 && "on" + type),
|
||
((event = event[jQuery.expando]
|
||
? event
|
||
: new jQuery.Event(
|
||
type,
|
||
"object" == typeof event && event,
|
||
)).isTrigger = !0),
|
||
(event.namespace = namespaces.join(
|
||
"."
|
||
)),
|
||
(event.namespace_re = event.namespace
|
||
? new RegExp(
|
||
"(^|\\.)" + namespaces.join(
|
||
"\\.(?:.*\\.|)"
|
||
) + "(\\.|$)",
|
||
)
|
||
: null),
|
||
(event.result = undefined),
|
||
event.target || (event.target = elem),
|
||
(data = null == data
|
||
? [event,]
|
||
: jQuery.makeArray(
|
||
data,
|
||
[event,]
|
||
)),
|
||
(special = jQuery.event.special[type] || {
|
||
}),
|
||
onlyHandlers ||
|
||
!special.trigger ||
|
||
!1 !== special.trigger.apply(
|
||
elem,
|
||
data
|
||
)))
|
||
) {
|
||
if (!onlyHandlers && !special.noBubble && !jQuery.isWindow(
|
||
elem
|
||
)) {
|
||
for (
|
||
bubbleType = special.delegateType || type,
|
||
rfocusMorph.test(
|
||
bubbleType + type
|
||
) || (cur = cur.parentNode);
|
||
cur;
|
||
cur = cur.parentNode
|
||
)
|
||
eventPath.push(
|
||
cur
|
||
), (tmp = cur);
|
||
tmp === (elem.ownerDocument || document) &&
|
||
eventPath.push(
|
||
tmp.defaultView || tmp.parentWindow || window
|
||
);
|
||
}
|
||
for (i = 0; (cur = eventPath[i++]) && !event.isPropagationStopped(
|
||
); )
|
||
(event.type = i > 1 ? bubbleType : special.bindType || type),
|
||
(handle =
|
||
(jQuery._data(
|
||
cur,
|
||
"events"
|
||
) || {
|
||
})[event.type] &&
|
||
jQuery._data(
|
||
cur,
|
||
"handle"
|
||
)) && handle.apply(
|
||
cur,
|
||
data
|
||
),
|
||
(handle = ontype && cur[ontype]) &&
|
||
jQuery.acceptData(
|
||
cur
|
||
) &&
|
||
handle.apply &&
|
||
!1 === handle.apply(
|
||
cur,
|
||
data
|
||
) &&
|
||
event.preventDefault(
|
||
);
|
||
if (
|
||
((event.type = type),
|
||
!onlyHandlers &&
|
||
!event.isDefaultPrevented(
|
||
) &&
|
||
(!special._default ||
|
||
!1 === special._default.apply(
|
||
elem.ownerDocument,
|
||
data
|
||
)) &&
|
||
("click" !== type || !jQuery.nodeName(
|
||
elem,
|
||
"a"
|
||
)) &&
|
||
jQuery.acceptData(
|
||
elem
|
||
) &&
|
||
ontype &&
|
||
elem[type] &&
|
||
!jQuery.isWindow(
|
||
elem
|
||
))
|
||
) {
|
||
(tmp = elem[ontype]) && (elem[ontype] = null),
|
||
(jQuery.event.triggered = type);
|
||
try {
|
||
elem[type](
|
||
);
|
||
} catch (e) {}
|
||
(jQuery.event.triggered = undefined), tmp && (elem[ontype] = tmp);
|
||
}
|
||
return event.result;
|
||
}
|
||
},
|
||
dispatch: function (
|
||
event
|
||
) {
|
||
event = jQuery.event.fix(
|
||
event
|
||
);
|
||
var i,
|
||
ret,
|
||
handleObj,
|
||
matched,
|
||
j,
|
||
handlerQueue = [],
|
||
args = core_slice.call(
|
||
arguments
|
||
),
|
||
handlers = (jQuery._data(
|
||
this,
|
||
"events"
|
||
) || {
|
||
})[event.type] || [],
|
||
special = jQuery.event.special[event.type] || {
|
||
};
|
||
if (
|
||
((args[0] = event),
|
||
(event.delegateTarget = this),
|
||
!special.preDispatch || !1 !== special.preDispatch.call(
|
||
this,
|
||
event
|
||
))
|
||
) {
|
||
for (
|
||
handlerQueue = jQuery.event.handlers.call(
|
||
this,
|
||
event,
|
||
handlers
|
||
),
|
||
i = 0;
|
||
(matched = handlerQueue[i++]) && !event.isPropagationStopped(
|
||
);
|
||
|
||
)
|
||
for (
|
||
event.currentTarget = matched.elem, j = 0;
|
||
(handleObj = matched.handlers[j++]) &&
|
||
!event.isImmediatePropagationStopped(
|
||
);
|
||
|
||
)
|
||
(event.namespace_re &&
|
||
!event.namespace_re.test(
|
||
handleObj.namespace
|
||
)) ||
|
||
((event.handleObj = handleObj),
|
||
(event.data = handleObj.data),
|
||
undefined !==
|
||
(ret = (
|
||
(jQuery.event.special[handleObj.origType] || {
|
||
}).handle ||
|
||
handleObj.handler
|
||
).apply(
|
||
matched.elem,
|
||
args
|
||
)) &&
|
||
!1 === (event.result = ret) &&
|
||
(event.preventDefault(
|
||
), event.stopPropagation(
|
||
)));
|
||
return (
|
||
special.postDispatch && special.postDispatch.call(
|
||
this,
|
||
event
|
||
),
|
||
event.result
|
||
);
|
||
}
|
||
},
|
||
handlers: function (
|
||
event, handlers
|
||
) {
|
||
var sel,
|
||
handleObj,
|
||
matches,
|
||
i,
|
||
handlerQueue = [],
|
||
delegateCount = handlers.delegateCount,
|
||
cur = event.target;
|
||
if (
|
||
delegateCount &&
|
||
cur.nodeType &&
|
||
(!event.button || "click" !== event.type)
|
||
)
|
||
for (; cur != this; cur = cur.parentNode || this)
|
||
if (
|
||
1 === cur.nodeType &&
|
||
(!0 !== cur.disabled || "click" !== event.type)
|
||
) {
|
||
for (matches = [], i = 0; i < delegateCount; i++)
|
||
undefined ===
|
||
matches[(sel = (handleObj = handlers[i]).selector + " ")] &&
|
||
(matches[sel] = handleObj.needsContext
|
||
? jQuery(
|
||
sel,
|
||
this
|
||
).index(
|
||
cur
|
||
) >= 0
|
||
: jQuery.find(
|
||
sel,
|
||
this,
|
||
null,
|
||
[cur,]
|
||
).length),
|
||
matches[sel] && matches.push(
|
||
handleObj
|
||
);
|
||
matches.length &&
|
||
handlerQueue.push(
|
||
{
|
||
elem: cur,
|
||
handlers: matches,
|
||
}
|
||
);
|
||
}
|
||
return (
|
||
delegateCount < handlers.length &&
|
||
handlerQueue.push(
|
||
{
|
||
elem: this,
|
||
handlers: handlers.slice(
|
||
delegateCount
|
||
),
|
||
}
|
||
),
|
||
handlerQueue
|
||
);
|
||
},
|
||
fix: function (
|
||
event
|
||
) {
|
||
if (event[jQuery.expando]) return event;
|
||
var i,
|
||
prop,
|
||
copy,
|
||
type = event.type,
|
||
originalEvent = event,
|
||
fixHook = this.fixHooks[type];
|
||
for (
|
||
fixHook ||
|
||
(this.fixHooks[type] = fixHook = rmouseEvent.test(
|
||
type
|
||
)
|
||
? this.mouseHooks
|
||
: rkeyEvent.test(
|
||
type
|
||
)
|
||
? this.keyHooks
|
||
: {
|
||
}),
|
||
copy = fixHook.props
|
||
? this.props.concat(
|
||
fixHook.props
|
||
)
|
||
: this.props,
|
||
event = new jQuery.Event(
|
||
originalEvent
|
||
),
|
||
i = copy.length;
|
||
i--;
|
||
|
||
)
|
||
event[(prop = copy[i])] = originalEvent[prop];
|
||
return (
|
||
event.target || (event.target = originalEvent.srcElement || document),
|
||
3 === event.target.nodeType && (event.target = event.target.parentNode),
|
||
(event.metaKey = !!event.metaKey),
|
||
fixHook.filter
|
||
? fixHook.filter(
|
||
event,
|
||
originalEvent
|
||
)
|
||
: event
|
||
);
|
||
},
|
||
props: "altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(
|
||
" ",
|
||
),
|
||
fixHooks: {
|
||
},
|
||
keyHooks: {
|
||
props: "char charCode key keyCode".split(
|
||
" "
|
||
),
|
||
filter: function (
|
||
event, original
|
||
) {
|
||
return (
|
||
null == event.which &&
|
||
(event.which =
|
||
null != original.charCode ? original.charCode : original.keyCode),
|
||
event
|
||
);
|
||
},
|
||
},
|
||
mouseHooks: {
|
||
props: "button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(
|
||
" ",
|
||
),
|
||
filter: function (
|
||
event, original
|
||
) {
|
||
var body,
|
||
eventDoc,
|
||
doc,
|
||
button = original.button,
|
||
fromElement = original.fromElement;
|
||
return (
|
||
null == event.pageX &&
|
||
null != original.clientX &&
|
||
((doc = (eventDoc = event.target.ownerDocument || document)
|
||
.documentElement),
|
||
(body = eventDoc.body),
|
||
(event.pageX =
|
||
original.clientX +
|
||
((doc && doc.scrollLeft) || (body && body.scrollLeft) || 0) -
|
||
((doc && doc.clientLeft) || (body && body.clientLeft) || 0)),
|
||
(event.pageY =
|
||
original.clientY +
|
||
((doc && doc.scrollTop) || (body && body.scrollTop) || 0) -
|
||
((doc && doc.clientTop) || (body && body.clientTop) || 0))),
|
||
!event.relatedTarget &&
|
||
fromElement &&
|
||
(event.relatedTarget =
|
||
fromElement === event.target ? original.toElement : fromElement),
|
||
event.which ||
|
||
undefined === button ||
|
||
(event.which =
|
||
1 & button ? 1 : 2 & button ? 3 : 4 & button ? 2 : 0),
|
||
event
|
||
);
|
||
},
|
||
},
|
||
special: {
|
||
load: {
|
||
noBubble: !0,
|
||
},
|
||
click: {
|
||
trigger: function (
|
||
) {
|
||
if (
|
||
jQuery.nodeName(
|
||
this,
|
||
"input"
|
||
) &&
|
||
"checkbox" === this.type &&
|
||
this.click
|
||
)
|
||
return this.click(
|
||
), !1;
|
||
},
|
||
},
|
||
focus: {
|
||
trigger: function (
|
||
) {
|
||
if (this !== document.activeElement && this.focus)
|
||
try {
|
||
return this.focus(
|
||
), !1;
|
||
} catch (e) {}
|
||
},
|
||
delegateType: "focusin",
|
||
},
|
||
blur: {
|
||
trigger: function (
|
||
) {
|
||
if (this === document.activeElement && this.blur)
|
||
return this.blur(
|
||
), !1;
|
||
},
|
||
delegateType: "focusout",
|
||
},
|
||
beforeunload: {
|
||
postDispatch: function (
|
||
event
|
||
) {
|
||
undefined !== event.result &&
|
||
(event.originalEvent.returnValue = event.result);
|
||
},
|
||
},
|
||
},
|
||
simulate: function (
|
||
type, elem, event, bubble
|
||
) {
|
||
var e = jQuery.extend(
|
||
new jQuery.Event(
|
||
),
|
||
event,
|
||
{
|
||
type: type,
|
||
isSimulated: !0,
|
||
originalEvent: {
|
||
},
|
||
}
|
||
);
|
||
bubble
|
||
? jQuery.event.trigger(
|
||
e,
|
||
null,
|
||
elem
|
||
)
|
||
: jQuery.event.dispatch.call(
|
||
elem,
|
||
e
|
||
),
|
||
e.isDefaultPrevented(
|
||
) && event.preventDefault(
|
||
);
|
||
},
|
||
}),
|
||
(jQuery.removeEvent = document.removeEventListener
|
||
? function (
|
||
elem, type, handle
|
||
) {
|
||
elem.removeEventListener &&
|
||
elem.removeEventListener(
|
||
type,
|
||
handle,
|
||
!1
|
||
);
|
||
}
|
||
: function (
|
||
elem, type, handle
|
||
) {
|
||
var name = "on" + type;
|
||
elem.detachEvent &&
|
||
(void 0 === elem[name] && (elem[name] = null),
|
||
elem.detachEvent(
|
||
name,
|
||
handle
|
||
));
|
||
}),
|
||
(jQuery.Event = function (
|
||
src, props
|
||
) {
|
||
if (!(this instanceof jQuery.Event)) return new jQuery.Event(
|
||
src,
|
||
props
|
||
);
|
||
src && src.type
|
||
? ((this.originalEvent = src),
|
||
(this.type = src.type),
|
||
(this.isDefaultPrevented =
|
||
src.defaultPrevented ||
|
||
!1 === src.returnValue ||
|
||
(src.getPreventDefault && src.getPreventDefault(
|
||
))
|
||
? returnTrue
|
||
: returnFalse))
|
||
: (this.type = src),
|
||
props && jQuery.extend(
|
||
this,
|
||
props
|
||
),
|
||
(this.timeStamp = (src && src.timeStamp) || jQuery.now(
|
||
)),
|
||
(this[jQuery.expando] = !0);
|
||
}),
|
||
(jQuery.Event.prototype = {
|
||
isDefaultPrevented: returnFalse,
|
||
isPropagationStopped: returnFalse,
|
||
isImmediatePropagationStopped: returnFalse,
|
||
preventDefault: function (
|
||
) {
|
||
var e = this.originalEvent;
|
||
(this.isDefaultPrevented = returnTrue),
|
||
e && (e.preventDefault
|
||
? e.preventDefault(
|
||
)
|
||
: (e.returnValue = !1));
|
||
},
|
||
stopPropagation: function (
|
||
) {
|
||
var e = this.originalEvent;
|
||
(this.isPropagationStopped = returnTrue),
|
||
e &&
|
||
(e.stopPropagation && e.stopPropagation(
|
||
), (e.cancelBubble = !0));
|
||
},
|
||
stopImmediatePropagation: function (
|
||
) {
|
||
(this.isImmediatePropagationStopped = returnTrue),
|
||
this.stopPropagation(
|
||
);
|
||
},
|
||
}),
|
||
jQuery.each(
|
||
{
|
||
mouseenter: "mouseover",
|
||
mouseleave: "mouseout",
|
||
},
|
||
function (
|
||
orig, fix
|
||
) {
|
||
jQuery.event.special[orig] = {
|
||
delegateType: fix,
|
||
bindType: fix,
|
||
handle: function (
|
||
event
|
||
) {
|
||
var ret,
|
||
target = this,
|
||
related = event.relatedTarget,
|
||
handleObj = event.handleObj;
|
||
return (
|
||
(related &&
|
||
(related === target || jQuery.contains(
|
||
target,
|
||
related
|
||
))) ||
|
||
((event.type = handleObj.origType),
|
||
(ret = handleObj.handler.apply(
|
||
this,
|
||
arguments
|
||
)),
|
||
(event.type = fix)),
|
||
ret
|
||
);
|
||
},
|
||
};
|
||
},
|
||
),
|
||
jQuery.support.submitBubbles ||
|
||
(jQuery.event.special.submit = {
|
||
setup: function (
|
||
) {
|
||
if (jQuery.nodeName(
|
||
this,
|
||
"form"
|
||
)) return !1;
|
||
jQuery.event.add(
|
||
this,
|
||
"click._submit keypress._submit",
|
||
function (
|
||
e
|
||
) {
|
||
var elem = e.target,
|
||
form =
|
||
jQuery.nodeName(
|
||
elem,
|
||
"input"
|
||
) ||
|
||
jQuery.nodeName(
|
||
elem,
|
||
"button"
|
||
)
|
||
? elem.form
|
||
: undefined;
|
||
form &&
|
||
!jQuery._data(
|
||
form,
|
||
"submitBubbles"
|
||
) &&
|
||
(jQuery.event.add(
|
||
form,
|
||
"submit._submit",
|
||
function (
|
||
event
|
||
) {
|
||
event._submit_bubble = !0;
|
||
}
|
||
),
|
||
jQuery._data(
|
||
form,
|
||
"submitBubbles",
|
||
!0
|
||
));
|
||
},
|
||
);
|
||
},
|
||
postDispatch: function (
|
||
event
|
||
) {
|
||
event._submit_bubble &&
|
||
(delete event._submit_bubble,
|
||
this.parentNode &&
|
||
!event.isTrigger &&
|
||
jQuery.event.simulate(
|
||
"submit",
|
||
this.parentNode,
|
||
event,
|
||
!0
|
||
));
|
||
},
|
||
teardown: function (
|
||
) {
|
||
if (jQuery.nodeName(
|
||
this,
|
||
"form"
|
||
)) return !1;
|
||
jQuery.event.remove(
|
||
this,
|
||
"._submit"
|
||
);
|
||
},
|
||
}),
|
||
jQuery.support.changeBubbles ||
|
||
(jQuery.event.special.change = {
|
||
setup: function (
|
||
) {
|
||
if (rformElems.test(
|
||
this.nodeName
|
||
))
|
||
return (
|
||
("checkbox" !== this.type && "radio" !== this.type) ||
|
||
(jQuery.event.add(
|
||
this,
|
||
"propertychange._change",
|
||
function (
|
||
event
|
||
) {
|
||
"checked" === event.originalEvent.propertyName &&
|
||
(this._just_changed = !0);
|
||
},
|
||
),
|
||
jQuery.event.add(
|
||
this,
|
||
"click._change",
|
||
function (
|
||
event
|
||
) {
|
||
this._just_changed &&
|
||
!event.isTrigger &&
|
||
(this._just_changed = !1),
|
||
jQuery.event.simulate(
|
||
"change",
|
||
this,
|
||
event,
|
||
!0
|
||
);
|
||
}
|
||
)),
|
||
!1
|
||
);
|
||
jQuery.event.add(
|
||
this,
|
||
"beforeactivate._change",
|
||
function (
|
||
e
|
||
) {
|
||
var elem = e.target;
|
||
rformElems.test(
|
||
elem.nodeName
|
||
) &&
|
||
!jQuery._data(
|
||
elem,
|
||
"changeBubbles"
|
||
) &&
|
||
(jQuery.event.add(
|
||
elem,
|
||
"change._change",
|
||
function (
|
||
event
|
||
) {
|
||
!this.parentNode ||
|
||
event.isSimulated ||
|
||
event.isTrigger ||
|
||
jQuery.event.simulate(
|
||
"change",
|
||
this.parentNode,
|
||
event,
|
||
!0
|
||
);
|
||
}
|
||
),
|
||
jQuery._data(
|
||
elem,
|
||
"changeBubbles",
|
||
!0
|
||
));
|
||
}
|
||
);
|
||
},
|
||
handle: function (
|
||
event
|
||
) {
|
||
var elem = event.target;
|
||
if (
|
||
this !== elem ||
|
||
event.isSimulated ||
|
||
event.isTrigger ||
|
||
("radio" !== elem.type && "checkbox" !== elem.type)
|
||
)
|
||
return event.handleObj.handler.apply(
|
||
this,
|
||
arguments
|
||
);
|
||
},
|
||
teardown: function (
|
||
) {
|
||
return (
|
||
jQuery.event.remove(
|
||
this,
|
||
"._change"
|
||
),
|
||
!rformElems.test(
|
||
this.nodeName
|
||
)
|
||
);
|
||
},
|
||
}),
|
||
jQuery.support.focusinBubbles ||
|
||
jQuery.each(
|
||
{
|
||
focus: "focusin",
|
||
blur: "focusout",
|
||
},
|
||
function (
|
||
orig, fix
|
||
) {
|
||
var attaches = 0,
|
||
handler = function (
|
||
event
|
||
) {
|
||
jQuery.event.simulate(
|
||
fix,
|
||
event.target,
|
||
jQuery.event.fix(
|
||
event
|
||
),
|
||
!0,
|
||
);
|
||
};
|
||
jQuery.event.special[fix] = {
|
||
setup: function (
|
||
) {
|
||
0 == attaches++ && document.addEventListener(
|
||
orig,
|
||
handler,
|
||
!0
|
||
);
|
||
},
|
||
teardown: function (
|
||
) {
|
||
0 == --attaches && document.removeEventListener(
|
||
orig,
|
||
handler,
|
||
!0
|
||
);
|
||
},
|
||
};
|
||
}
|
||
),
|
||
jQuery.fn.extend(
|
||
{
|
||
on: function (
|
||
types, selector, data, fn, one
|
||
) {
|
||
var type, origFn;
|
||
if ("object" == typeof types) {
|
||
for (type in ("string" != typeof selector &&
|
||
((data = data || selector), (selector = undefined)),
|
||
types))
|
||
this.on(
|
||
type,
|
||
selector,
|
||
data,
|
||
types[type],
|
||
one
|
||
);
|
||
return this;
|
||
}
|
||
if (
|
||
(null == data && null == fn
|
||
? ((fn = selector), (data = selector = undefined))
|
||
: null == fn &&
|
||
("string" == typeof selector
|
||
? ((fn = data), (data = undefined))
|
||
: ((fn = data), (data = selector), (selector = undefined))),
|
||
!1 === fn)
|
||
)
|
||
fn = returnFalse;
|
||
else if (!fn) return this;
|
||
return (
|
||
1 === one &&
|
||
((origFn = fn),
|
||
((fn = function (
|
||
event
|
||
) {
|
||
return jQuery(
|
||
).off(
|
||
event
|
||
), origFn.apply(
|
||
this,
|
||
arguments
|
||
);
|
||
}).guid = origFn.guid || (origFn.guid = jQuery.guid++))),
|
||
this.each(
|
||
function (
|
||
) {
|
||
jQuery.event.add(
|
||
this,
|
||
types,
|
||
fn,
|
||
data,
|
||
selector
|
||
);
|
||
}
|
||
)
|
||
);
|
||
},
|
||
one: function (
|
||
types, selector, data, fn
|
||
) {
|
||
return this.on(
|
||
types,
|
||
selector,
|
||
data,
|
||
fn,
|
||
1
|
||
);
|
||
},
|
||
off: function (
|
||
types, selector, fn
|
||
) {
|
||
var handleObj, type;
|
||
if (types && types.preventDefault && types.handleObj)
|
||
return (
|
||
(handleObj = types.handleObj),
|
||
jQuery(
|
||
types.delegateTarget
|
||
).off(
|
||
handleObj.namespace
|
||
? handleObj.origType + "." + handleObj.namespace
|
||
: handleObj.origType,
|
||
handleObj.selector,
|
||
handleObj.handler,
|
||
),
|
||
this
|
||
);
|
||
if ("object" == typeof types) {
|
||
for (type in types) this.off(
|
||
type,
|
||
selector,
|
||
types[type]
|
||
);
|
||
return this;
|
||
}
|
||
return (
|
||
(!1 !== selector && "function" != typeof selector) ||
|
||
((fn = selector), (selector = undefined)),
|
||
!1 === fn && (fn = returnFalse),
|
||
this.each(
|
||
function (
|
||
) {
|
||
jQuery.event.remove(
|
||
this,
|
||
types,
|
||
fn,
|
||
selector
|
||
);
|
||
}
|
||
)
|
||
);
|
||
},
|
||
bind: function (
|
||
types, data, fn
|
||
) {
|
||
return this.on(
|
||
types,
|
||
null,
|
||
data,
|
||
fn
|
||
);
|
||
},
|
||
unbind: function (
|
||
types, fn
|
||
) {
|
||
return this.off(
|
||
types,
|
||
null,
|
||
fn
|
||
);
|
||
},
|
||
delegate: function (
|
||
selector, types, data, fn
|
||
) {
|
||
return this.on(
|
||
types,
|
||
selector,
|
||
data,
|
||
fn
|
||
);
|
||
},
|
||
undelegate: function (
|
||
selector, types, fn
|
||
) {
|
||
return 1 === arguments.length
|
||
? this.off(
|
||
selector,
|
||
"**"
|
||
)
|
||
: this.off(
|
||
types,
|
||
selector || "**",
|
||
fn
|
||
);
|
||
},
|
||
trigger: function (
|
||
type, data
|
||
) {
|
||
return this.each(
|
||
function (
|
||
) {
|
||
jQuery.event.trigger(
|
||
type,
|
||
data,
|
||
this
|
||
);
|
||
}
|
||
);
|
||
},
|
||
triggerHandler: function (
|
||
type, data
|
||
) {
|
||
var elem = this[0];
|
||
if (elem) return jQuery.event.trigger(
|
||
type,
|
||
data,
|
||
elem,
|
||
!0
|
||
);
|
||
},
|
||
}
|
||
),
|
||
/*!
|
||
* Sizzle CSS Selector Engine
|
||
* Copyright 2012 jQuery Foundation and other contributors
|
||
* Released under the MIT license
|
||
* http://sizzlejs.com/
|
||
*/
|
||
(function (
|
||
window, undefined
|
||
) {
|
||
var i,
|
||
cachedruns,
|
||
Expr,
|
||
getText,
|
||
isXML,
|
||
compile,
|
||
hasDuplicate,
|
||
outermostContext,
|
||
setDocument,
|
||
document,
|
||
docElem,
|
||
documentIsXML,
|
||
rbuggyQSA,
|
||
rbuggyMatches,
|
||
matches,
|
||
contains,
|
||
sortOrder,
|
||
expando = "sizzle" + -new Date(
|
||
),
|
||
preferredDoc = window.document,
|
||
support = {
|
||
},
|
||
dirruns = 0,
|
||
done = 0,
|
||
classCache = createCache(
|
||
),
|
||
tokenCache = createCache(
|
||
),
|
||
compilerCache = createCache(
|
||
),
|
||
arr = [],
|
||
pop = arr.pop,
|
||
push = arr.push,
|
||
slice = arr.slice,
|
||
indexOf =
|
||
arr.indexOf ||
|
||
function (
|
||
elem
|
||
) {
|
||
for (var i = 0, len = this.length; i < len; i++)
|
||
if (this[i] === elem) return i;
|
||
return -1;
|
||
},
|
||
whitespace = "[\\x20\\t\\r\\n\\f]",
|
||
characterEncoding = "(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",
|
||
identifier = characterEncoding.replace(
|
||
"w",
|
||
"w#"
|
||
),
|
||
attributes =
|
||
"\\[[\\x20\\t\\r\\n\\f]*(" +
|
||
characterEncoding +
|
||
")" +
|
||
whitespace +
|
||
"*(?:([*^$|!~]?=)" +
|
||
whitespace +
|
||
"*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|(" +
|
||
identifier +
|
||
")|)|)" +
|
||
whitespace +
|
||
"*\\]",
|
||
pseudos =
|
||
":(" +
|
||
characterEncoding +
|
||
")(?:\\(((['\"])((?:\\\\.|[^\\\\])*?)\\3|((?:\\\\.|[^\\\\()[\\]]|" +
|
||
attributes.replace(
|
||
3,
|
||
8
|
||
) +
|
||
")*)|.*)\\)|)",
|
||
rtrim = new RegExp(
|
||
"^[\\x20\\t\\r\\n\\f]+|((?:^|[^\\\\])(?:\\\\.)*)[\\x20\\t\\r\\n\\f]+$",
|
||
"g",
|
||
),
|
||
rcomma = new RegExp(
|
||
"^[\\x20\\t\\r\\n\\f]*,[\\x20\\t\\r\\n\\f]*"
|
||
),
|
||
rcombinators = new RegExp(
|
||
"^[\\x20\\t\\r\\n\\f]*([\\x20\\t\\r\\n\\f>+~])[\\x20\\t\\r\\n\\f]*",
|
||
),
|
||
rpseudo = new RegExp(
|
||
pseudos
|
||
),
|
||
ridentifier = new RegExp(
|
||
"^" + identifier + "$"
|
||
),
|
||
matchExpr = {
|
||
ID: new RegExp(
|
||
"^#(" + characterEncoding + ")"
|
||
),
|
||
CLASS: new RegExp(
|
||
"^\\.(" + characterEncoding + ")"
|
||
),
|
||
NAME: new RegExp(
|
||
"^\\[name=['\"]?(" + characterEncoding + ")['\"]?\\]",
|
||
),
|
||
TAG: new RegExp(
|
||
"^(" + characterEncoding.replace(
|
||
"w",
|
||
"w*"
|
||
) + ")"
|
||
),
|
||
ATTR: new RegExp(
|
||
"^" + attributes
|
||
),
|
||
PSEUDO: new RegExp(
|
||
"^" + pseudos
|
||
),
|
||
CHILD: new RegExp(
|
||
"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\([\\x20\\t\\r\\n\\f]*(even|odd|(([+-]|)(\\d*)n|)[\\x20\\t\\r\\n\\f]*(?:([+-]|)[\\x20\\t\\r\\n\\f]*(\\d+)|))[\\x20\\t\\r\\n\\f]*\\)|)",
|
||
"i",
|
||
),
|
||
needsContext: new RegExp(
|
||
"^[\\x20\\t\\r\\n\\f]*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\([\\x20\\t\\r\\n\\f]*((?:-\\d)?\\d*)[\\x20\\t\\r\\n\\f]*\\)|)(?=[^-]|$)",
|
||
"i",
|
||
),
|
||
},
|
||
rsibling = /[\x20\t\r\n\f]*[+~]/,
|
||
rnative = /^[^{]+\{\s*\[native code/,
|
||
rquickExpr = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,
|
||
rinputs = /^(?:input|select|textarea|button)$/i,
|
||
rheader = /^h\d$/i,
|
||
rescape = /'|\\/g,
|
||
rattributeQuotes = /\=[\x20\t\r\n\f]*([^'"\]]*)[\x20\t\r\n\f]*\]/g,
|
||
runescape = /\\([\da-fA-F]{1,6}[\x20\t\r\n\f]?|.)/g,
|
||
funescape = function (
|
||
_, escaped
|
||
) {
|
||
var high = "0x" + escaped - 65536;
|
||
return high != high
|
||
? escaped
|
||
: high < 0
|
||
? String.fromCharCode(
|
||
high + 65536
|
||
)
|
||
: String.fromCharCode(
|
||
(high >> 10) | 55296,
|
||
(1023 & high) | 56320
|
||
);
|
||
};
|
||
try {
|
||
slice.call(
|
||
preferredDoc.documentElement.childNodes,
|
||
0
|
||
)[0].nodeType;
|
||
} catch (e) {
|
||
slice = function (
|
||
i
|
||
) {
|
||
for (var elem, results = []; (elem = this[i++]); ) results.push(
|
||
elem
|
||
);
|
||
return results;
|
||
};
|
||
}
|
||
function isNative(
|
||
fn
|
||
) {
|
||
return rnative.test(
|
||
fn + ""
|
||
);
|
||
}
|
||
function createCache(
|
||
) {
|
||
var cache,
|
||
keys = [];
|
||
return (cache = function (
|
||
key, value
|
||
) {
|
||
return (
|
||
keys.push(
|
||
(key += " ")
|
||
) > Expr.cacheLength &&
|
||
delete cache[keys.shift(
|
||
)],
|
||
(cache[key] = value)
|
||
);
|
||
});
|
||
}
|
||
function markFunction(
|
||
fn
|
||
) {
|
||
return (fn[expando] = !0), fn;
|
||
}
|
||
function assert(
|
||
fn
|
||
) {
|
||
var div = document.createElement(
|
||
"div"
|
||
);
|
||
try {
|
||
return fn(
|
||
div
|
||
);
|
||
} catch (e) {
|
||
return !1;
|
||
} finally {
|
||
div = null;
|
||
}
|
||
}
|
||
function Sizzle(
|
||
selector, context, results, seed
|
||
) {
|
||
var match,
|
||
elem,
|
||
m,
|
||
nodeType,
|
||
i,
|
||
groups,
|
||
old,
|
||
nid,
|
||
newContext,
|
||
newSelector;
|
||
if (
|
||
((context ? context.ownerDocument || context : preferredDoc) !==
|
||
document && setDocument(
|
||
context
|
||
),
|
||
(results = results || []),
|
||
!selector || "string" != typeof selector)
|
||
)
|
||
return results;
|
||
if (
|
||
1 !== (nodeType = (context = context || document).nodeType) &&
|
||
9 !== nodeType
|
||
)
|
||
return [];
|
||
if (!documentIsXML && !seed) {
|
||
if ((match = rquickExpr.exec(
|
||
selector
|
||
)))
|
||
if ((m = match[1])) {
|
||
if (9 === nodeType) {
|
||
if (!(elem = context.getElementById(
|
||
m
|
||
)) || !elem.parentNode)
|
||
return results;
|
||
if (elem.id === m) return results.push(
|
||
elem
|
||
), results;
|
||
} else if (
|
||
context.ownerDocument &&
|
||
(elem = context.ownerDocument.getElementById(
|
||
m
|
||
)) &&
|
||
contains(
|
||
context,
|
||
elem
|
||
) &&
|
||
elem.id === m
|
||
)
|
||
return results.push(
|
||
elem
|
||
), results;
|
||
} else {
|
||
if (match[2])
|
||
return (
|
||
push.apply(
|
||
results,
|
||
slice.call(
|
||
context.getElementsByTagName(
|
||
selector
|
||
),
|
||
0
|
||
),
|
||
),
|
||
results
|
||
);
|
||
if (
|
||
(m = match[3]) &&
|
||
support.getByClassName &&
|
||
context.getElementsByClassName
|
||
)
|
||
return (
|
||
push.apply(
|
||
results,
|
||
slice.call(
|
||
context.getElementsByClassName(
|
||
m
|
||
),
|
||
0
|
||
),
|
||
),
|
||
results
|
||
);
|
||
}
|
||
if (support.qsa && !rbuggyQSA.test(
|
||
selector
|
||
)) {
|
||
if (
|
||
((old = !0),
|
||
(nid = expando),
|
||
(newContext = context),
|
||
(newSelector = 9 === nodeType && selector),
|
||
1 === nodeType && "object" !== context.nodeName.toLowerCase(
|
||
))
|
||
) {
|
||
for (
|
||
groups = tokenize(
|
||
selector
|
||
),
|
||
(old = context.getAttribute(
|
||
"id"
|
||
))
|
||
? (nid = old.replace(
|
||
rescape,
|
||
"\\$&"
|
||
))
|
||
: context.setAttribute(
|
||
"id",
|
||
nid
|
||
),
|
||
nid = "[id='" + nid + "'] ",
|
||
i = groups.length;
|
||
i--;
|
||
|
||
)
|
||
groups[i] = nid + toSelector(
|
||
groups[i]
|
||
);
|
||
(newContext =
|
||
(rsibling.test(
|
||
selector
|
||
) && context.parentNode) || context),
|
||
(newSelector = groups.join(
|
||
","
|
||
));
|
||
}
|
||
if (newSelector)
|
||
try {
|
||
return (
|
||
push.apply(
|
||
results,
|
||
slice.call(
|
||
newContext.querySelectorAll(
|
||
newSelector
|
||
),
|
||
0
|
||
),
|
||
),
|
||
results
|
||
);
|
||
} catch (qsaError) {
|
||
} finally {
|
||
old || context.removeAttribute(
|
||
"id"
|
||
);
|
||
}
|
||
}
|
||
}
|
||
return (function (
|
||
selector, context, results, seed
|
||
) {
|
||
var i,
|
||
tokens,
|
||
token,
|
||
type,
|
||
find,
|
||
match = tokenize(
|
||
selector
|
||
);
|
||
if (!seed && 1 === match.length) {
|
||
if (
|
||
(tokens = match[0] = match[0].slice(
|
||
0
|
||
)).length > 2 &&
|
||
"ID" === (token = tokens[0]).type &&
|
||
9 === context.nodeType &&
|
||
!documentIsXML &&
|
||
Expr.relative[tokens[1].type]
|
||
) {
|
||
if (
|
||
!(context = Expr.find.ID(
|
||
token.matches[0].replace(
|
||
runescape,
|
||
funescape
|
||
),
|
||
context,
|
||
)[0])
|
||
)
|
||
return results;
|
||
selector = selector.slice(
|
||
tokens.shift(
|
||
).value.length
|
||
);
|
||
}
|
||
for (
|
||
i = matchExpr.needsContext.test(
|
||
selector
|
||
)
|
||
? 0
|
||
: tokens.length;
|
||
i-- && ((token = tokens[i]), !Expr.relative[(type = token.type)]);
|
||
|
||
)
|
||
if (
|
||
(find = Expr.find[type]) &&
|
||
(seed = find(
|
||
token.matches[0].replace(
|
||
runescape,
|
||
funescape
|
||
),
|
||
(rsibling.test(
|
||
tokens[0].type
|
||
) && context.parentNode) ||
|
||
context,
|
||
))
|
||
) {
|
||
if (
|
||
(tokens.splice(
|
||
i,
|
||
1
|
||
),
|
||
!(selector = seed.length && toSelector(
|
||
tokens
|
||
)))
|
||
)
|
||
return push.apply(
|
||
results,
|
||
slice.call(
|
||
seed,
|
||
0
|
||
)
|
||
), results;
|
||
break;
|
||
}
|
||
}
|
||
return (
|
||
compile(
|
||
selector,
|
||
match
|
||
)(
|
||
seed,
|
||
context,
|
||
documentIsXML,
|
||
results,
|
||
rsibling.test(
|
||
selector
|
||
),
|
||
),
|
||
results
|
||
);
|
||
})(
|
||
selector.replace(
|
||
rtrim,
|
||
"$1"
|
||
),
|
||
context,
|
||
results,
|
||
seed
|
||
);
|
||
}
|
||
function siblingCheck(
|
||
a, b
|
||
) {
|
||
var cur = b && a,
|
||
diff =
|
||
cur &&
|
||
(~b.sourceIndex || -2147483648) - (~a.sourceIndex || -2147483648);
|
||
if (diff) return diff;
|
||
if (cur) for (; (cur = cur.nextSibling); ) if (cur === b) return -1;
|
||
return a ? 1 : -1;
|
||
}
|
||
function createInputPseudo(
|
||
type
|
||
) {
|
||
return function (
|
||
elem
|
||
) {
|
||
return "input" === elem.nodeName.toLowerCase(
|
||
) && elem.type === type;
|
||
};
|
||
}
|
||
function createButtonPseudo(
|
||
type
|
||
) {
|
||
return function (
|
||
elem
|
||
) {
|
||
var name = elem.nodeName.toLowerCase(
|
||
);
|
||
return ("input" === name || "button" === name) && elem.type === type;
|
||
};
|
||
}
|
||
function createPositionalPseudo(
|
||
fn
|
||
) {
|
||
return markFunction(
|
||
function (
|
||
argument
|
||
) {
|
||
return (
|
||
(argument = +argument),
|
||
markFunction(
|
||
function (
|
||
seed, matches
|
||
) {
|
||
for (
|
||
var j,
|
||
matchIndexes = fn(
|
||
[],
|
||
seed.length,
|
||
argument
|
||
),
|
||
i = matchIndexes.length;
|
||
i--;
|
||
|
||
)
|
||
seed[(j = matchIndexes[i])] &&
|
||
(seed[j] = !(matches[j] = seed[j]));
|
||
}
|
||
)
|
||
);
|
||
}
|
||
);
|
||
}
|
||
for (i in ((isXML = Sizzle.isXML = function (
|
||
elem
|
||
) {
|
||
var documentElement =
|
||
elem && (elem.ownerDocument || elem).documentElement;
|
||
return !!documentElement && "HTML" !== documentElement.nodeName;
|
||
}),
|
||
(setDocument = Sizzle.setDocument = function (
|
||
node
|
||
) {
|
||
var doc = node ? node.ownerDocument || node : preferredDoc;
|
||
return doc !== document && 9 === doc.nodeType && doc.documentElement
|
||
? ((document = doc),
|
||
(docElem = doc.documentElement),
|
||
(documentIsXML = isXML(
|
||
doc
|
||
)),
|
||
(support.tagNameNoComments = assert(
|
||
function (
|
||
div
|
||
) {
|
||
return (
|
||
div.appendChild(
|
||
doc.createComment(
|
||
""
|
||
)
|
||
),
|
||
!div.getElementsByTagName(
|
||
"*"
|
||
).length
|
||
);
|
||
}
|
||
)),
|
||
(support.attributes = assert(
|
||
function (
|
||
div
|
||
) {
|
||
div.innerHTML = "<select></select>";
|
||
var type = typeof div.lastChild.getAttribute(
|
||
"multiple"
|
||
);
|
||
return "boolean" !== type && "string" !== type;
|
||
}
|
||
)),
|
||
(support.getByClassName = assert(
|
||
function (
|
||
div
|
||
) {
|
||
return (
|
||
(div.innerHTML =
|
||
"<div class='hidden e'></div><div class='hidden'></div>"),
|
||
!(
|
||
!div.getElementsByClassName ||
|
||
!div.getElementsByClassName(
|
||
"e"
|
||
).length
|
||
) &&
|
||
((div.lastChild.className = "e"),
|
||
2 === div.getElementsByClassName(
|
||
"e"
|
||
).length)
|
||
);
|
||
}
|
||
)),
|
||
(support.getByName = assert(
|
||
function (
|
||
div
|
||
) {
|
||
(div.id = expando + 0),
|
||
(div.innerHTML =
|
||
"<a name='" +
|
||
expando +
|
||
"'></a><div name='" +
|
||
expando +
|
||
"'></div>"),
|
||
docElem.insertBefore(
|
||
div,
|
||
docElem.firstChild
|
||
);
|
||
var pass =
|
||
doc.getElementsByName &&
|
||
doc.getElementsByName(
|
||
expando
|
||
).length ===
|
||
2 + doc.getElementsByName(
|
||
expando + 0
|
||
).length;
|
||
return (
|
||
(support.getIdNotName = !doc.getElementById(
|
||
expando
|
||
)),
|
||
docElem.removeChild(
|
||
div
|
||
),
|
||
pass
|
||
);
|
||
}
|
||
)),
|
||
(Expr.attrHandle = assert(
|
||
function (
|
||
div
|
||
) {
|
||
return (
|
||
(div.innerHTML = "<a href='#'></a>"),
|
||
div.firstChild &&
|
||
void 0 !== div.firstChild.getAttribute &&
|
||
"#" === div.firstChild.getAttribute(
|
||
"href"
|
||
)
|
||
);
|
||
}
|
||
)
|
||
? {
|
||
}
|
||
: {
|
||
href: function (
|
||
elem
|
||
) {
|
||
return elem.getAttribute(
|
||
"href",
|
||
2
|
||
);
|
||
},
|
||
type: function (
|
||
elem
|
||
) {
|
||
return elem.getAttribute(
|
||
"type"
|
||
);
|
||
},
|
||
}),
|
||
support.getIdNotName
|
||
? ((Expr.find.ID = function (
|
||
id, context
|
||
) {
|
||
if (void 0 !== context.getElementById && !documentIsXML) {
|
||
var m = context.getElementById(
|
||
id
|
||
);
|
||
return m && m.parentNode ? [m,] : [];
|
||
}
|
||
}),
|
||
(Expr.filter.ID = function (
|
||
id
|
||
) {
|
||
var attrId = id.replace(
|
||
runescape,
|
||
funescape
|
||
);
|
||
return function (
|
||
elem
|
||
) {
|
||
return elem.getAttribute(
|
||
"id"
|
||
) === attrId;
|
||
};
|
||
}))
|
||
: ((Expr.find.ID = function (
|
||
id, context
|
||
) {
|
||
if (void 0 !== context.getElementById && !documentIsXML) {
|
||
var m = context.getElementById(
|
||
id
|
||
);
|
||
return m
|
||
? m.id === id ||
|
||
(void 0 !== m.getAttributeNode &&
|
||
m.getAttributeNode(
|
||
"id"
|
||
).value === id)
|
||
? [m,]
|
||
: undefined
|
||
: [];
|
||
}
|
||
}),
|
||
(Expr.filter.ID = function (
|
||
id
|
||
) {
|
||
var attrId = id.replace(
|
||
runescape,
|
||
funescape
|
||
);
|
||
return function (
|
||
elem
|
||
) {
|
||
var node =
|
||
void 0 !== elem.getAttributeNode &&
|
||
elem.getAttributeNode(
|
||
"id"
|
||
);
|
||
return node && node.value === attrId;
|
||
};
|
||
})),
|
||
(Expr.find.TAG = support.tagNameNoComments
|
||
? function (
|
||
tag, context
|
||
) {
|
||
if (void 0 !== context.getElementsByTagName)
|
||
return context.getElementsByTagName(
|
||
tag
|
||
);
|
||
}
|
||
: function (
|
||
tag, context
|
||
) {
|
||
var elem,
|
||
tmp = [],
|
||
i = 0,
|
||
results = context.getElementsByTagName(
|
||
tag
|
||
);
|
||
if ("*" === tag) {
|
||
for (; (elem = results[i++]); )
|
||
1 === elem.nodeType && tmp.push(
|
||
elem
|
||
);
|
||
return tmp;
|
||
}
|
||
return results;
|
||
}),
|
||
(Expr.find.NAME =
|
||
support.getByName &&
|
||
function (
|
||
tag, context
|
||
) {
|
||
if (void 0 !== context.getElementsByName)
|
||
return context.getElementsByName(
|
||
name
|
||
);
|
||
}),
|
||
(Expr.find.CLASS =
|
||
support.getByClassName &&
|
||
function (
|
||
className, context
|
||
) {
|
||
if (void 0 !== context.getElementsByClassName && !documentIsXML)
|
||
return context.getElementsByClassName(
|
||
className
|
||
);
|
||
}),
|
||
(rbuggyMatches = []),
|
||
(rbuggyQSA = [":focus",]),
|
||
(support.qsa = isNative(
|
||
doc.querySelectorAll
|
||
)) &&
|
||
(assert(
|
||
function (
|
||
div
|
||
) {
|
||
(div.innerHTML =
|
||
"<select><option selected=''></option></select>"),
|
||
div.querySelectorAll(
|
||
"[selected]"
|
||
).length ||
|
||
rbuggyQSA.push(
|
||
"\\[[\\x20\\t\\r\\n\\f]*(?:checked|disabled|ismap|multiple|readonly|selected|value)",
|
||
),
|
||
div.querySelectorAll(
|
||
":checked"
|
||
).length ||
|
||
rbuggyQSA.push(
|
||
":checked"
|
||
);
|
||
}
|
||
),
|
||
assert(
|
||
function (
|
||
div
|
||
) {
|
||
(div.innerHTML = "<input type='hidden' i=''/>"),
|
||
div.querySelectorAll(
|
||
"[i^='']"
|
||
).length &&
|
||
rbuggyQSA.push(
|
||
"[*^$]=[\\x20\\t\\r\\n\\f]*(?:\"\"|'')"
|
||
),
|
||
div.querySelectorAll(
|
||
":enabled"
|
||
).length ||
|
||
rbuggyQSA.push(
|
||
":enabled",
|
||
":disabled"
|
||
),
|
||
div.querySelectorAll(
|
||
"*,:x"
|
||
),
|
||
rbuggyQSA.push(
|
||
",.*:"
|
||
);
|
||
}
|
||
)),
|
||
(support.matchesSelector = isNative(
|
||
(matches =
|
||
docElem.matchesSelector ||
|
||
docElem.mozMatchesSelector ||
|
||
docElem.webkitMatchesSelector ||
|
||
docElem.oMatchesSelector ||
|
||
docElem.msMatchesSelector),
|
||
)) &&
|
||
assert(
|
||
function (
|
||
div
|
||
) {
|
||
(support.disconnectedMatch = matches.call(
|
||
div,
|
||
"div"
|
||
)),
|
||
matches.call(
|
||
div,
|
||
"[s!='']:x"
|
||
),
|
||
rbuggyMatches.push(
|
||
"!=",
|
||
pseudos
|
||
);
|
||
}
|
||
),
|
||
(rbuggyQSA = new RegExp(
|
||
rbuggyQSA.join(
|
||
"|"
|
||
)
|
||
)),
|
||
(rbuggyMatches = new RegExp(
|
||
rbuggyMatches.join(
|
||
"|"
|
||
)
|
||
)),
|
||
(contains =
|
||
isNative(
|
||
docElem.contains
|
||
) || docElem.compareDocumentPosition
|
||
? function (
|
||
a, b
|
||
) {
|
||
var adown = 9 === a.nodeType ? a.documentElement : a,
|
||
bup = b && b.parentNode;
|
||
return (
|
||
a === bup ||
|
||
!(
|
||
!bup ||
|
||
1 !== bup.nodeType ||
|
||
!(adown.contains
|
||
? adown.contains(
|
||
bup
|
||
)
|
||
: a.compareDocumentPosition &&
|
||
16 & a.compareDocumentPosition(
|
||
bup
|
||
))
|
||
)
|
||
);
|
||
}
|
||
: function (
|
||
a, b
|
||
) {
|
||
if (b) for (; (b = b.parentNode); ) if (b === a) return !0;
|
||
return !1;
|
||
}),
|
||
(sortOrder = docElem.compareDocumentPosition
|
||
? function (
|
||
a, b
|
||
) {
|
||
var compare;
|
||
return a === b
|
||
? ((hasDuplicate = !0), 0)
|
||
: (compare =
|
||
b.compareDocumentPosition &&
|
||
a.compareDocumentPosition &&
|
||
a.compareDocumentPosition(
|
||
b
|
||
))
|
||
? 1 & compare ||
|
||
(a.parentNode && 11 === a.parentNode.nodeType)
|
||
? a === doc || contains(
|
||
preferredDoc,
|
||
a
|
||
)
|
||
? -1
|
||
: b === doc || contains(
|
||
preferredDoc,
|
||
b
|
||
)
|
||
? 1
|
||
: 0
|
||
: 4 & compare
|
||
? -1
|
||
: 1
|
||
: a.compareDocumentPosition
|
||
? -1
|
||
: 1;
|
||
}
|
||
: function (
|
||
a, b
|
||
) {
|
||
var cur,
|
||
i = 0,
|
||
aup = a.parentNode,
|
||
bup = b.parentNode,
|
||
ap = [a,],
|
||
bp = [b,];
|
||
if (a === b) return (hasDuplicate = !0), 0;
|
||
if (!aup || !bup)
|
||
return a === doc
|
||
? -1
|
||
: b === doc
|
||
? 1
|
||
: aup
|
||
? -1
|
||
: bup
|
||
? 1
|
||
: 0;
|
||
if (aup === bup) return siblingCheck(
|
||
a,
|
||
b
|
||
);
|
||
for (cur = a; (cur = cur.parentNode); ) ap.unshift(
|
||
cur
|
||
);
|
||
for (cur = b; (cur = cur.parentNode); ) bp.unshift(
|
||
cur
|
||
);
|
||
for (; ap[i] === bp[i]; ) i++;
|
||
return i
|
||
? siblingCheck(
|
||
ap[i],
|
||
bp[i]
|
||
)
|
||
: ap[i] === preferredDoc
|
||
? -1
|
||
: bp[i] === preferredDoc
|
||
? 1
|
||
: 0;
|
||
}),
|
||
(hasDuplicate = !1),
|
||
[0, 0,].sort(
|
||
sortOrder
|
||
),
|
||
(support.detectDuplicates = hasDuplicate),
|
||
document)
|
||
: document;
|
||
}),
|
||
(Sizzle.matches = function (
|
||
expr, elements
|
||
) {
|
||
return Sizzle(
|
||
expr,
|
||
null,
|
||
null,
|
||
elements
|
||
);
|
||
}),
|
||
(Sizzle.matchesSelector = function (
|
||
elem, expr
|
||
) {
|
||
if (
|
||
((elem.ownerDocument || elem) !== document && setDocument(
|
||
elem
|
||
),
|
||
(expr = expr.replace(
|
||
rattributeQuotes,
|
||
"='$1']"
|
||
)),
|
||
support.matchesSelector &&
|
||
!documentIsXML &&
|
||
(!rbuggyMatches || !rbuggyMatches.test(
|
||
expr
|
||
)) &&
|
||
!rbuggyQSA.test(
|
||
expr
|
||
))
|
||
)
|
||
try {
|
||
var ret = matches.call(
|
||
elem,
|
||
expr
|
||
);
|
||
if (
|
||
ret ||
|
||
support.disconnectedMatch ||
|
||
(elem.document && 11 !== elem.document.nodeType)
|
||
)
|
||
return ret;
|
||
} catch (e) {}
|
||
return Sizzle(
|
||
expr,
|
||
document,
|
||
null,
|
||
[elem,]
|
||
).length > 0;
|
||
}),
|
||
(Sizzle.contains = function (
|
||
context, elem
|
||
) {
|
||
return (
|
||
(context.ownerDocument || context) !== document &&
|
||
setDocument(
|
||
context
|
||
),
|
||
contains(
|
||
context,
|
||
elem
|
||
)
|
||
);
|
||
}),
|
||
(Sizzle.attr = function (
|
||
elem, name
|
||
) {
|
||
var val;
|
||
return (
|
||
(elem.ownerDocument || elem) !== document && setDocument(
|
||
elem
|
||
),
|
||
documentIsXML || (name = name.toLowerCase(
|
||
)),
|
||
(val = Expr.attrHandle[name])
|
||
? val(
|
||
elem
|
||
)
|
||
: documentIsXML || support.attributes
|
||
? elem.getAttribute(
|
||
name
|
||
)
|
||
: ((val = elem.getAttributeNode(
|
||
name
|
||
)) ||
|
||
elem.getAttribute(
|
||
name
|
||
)) &&
|
||
!0 === elem[name]
|
||
? name
|
||
: val && val.specified
|
||
? val.value
|
||
: null
|
||
);
|
||
}),
|
||
(Sizzle.error = function (
|
||
msg
|
||
) {
|
||
throw new Error(
|
||
"Syntax error, unrecognized expression: " + msg
|
||
);
|
||
}),
|
||
(Sizzle.uniqueSort = function (
|
||
results
|
||
) {
|
||
var elem,
|
||
duplicates = [],
|
||
i = 1,
|
||
j = 0;
|
||
if (
|
||
((hasDuplicate = !support.detectDuplicates),
|
||
results.sort(
|
||
sortOrder
|
||
),
|
||
hasDuplicate)
|
||
) {
|
||
for (; (elem = results[i]); i++)
|
||
elem === results[i - 1] && (j = duplicates.push(
|
||
i
|
||
));
|
||
for (; j--; ) results.splice(
|
||
duplicates[j],
|
||
1
|
||
);
|
||
}
|
||
return results;
|
||
}),
|
||
(getText = Sizzle.getText = function (
|
||
elem
|
||
) {
|
||
var node,
|
||
ret = "",
|
||
i = 0,
|
||
nodeType = elem.nodeType;
|
||
if (nodeType) {
|
||
if (1 === nodeType || 9 === nodeType || 11 === nodeType) {
|
||
if ("string" == typeof elem.textContent) return elem.textContent;
|
||
for (elem = elem.firstChild; elem; elem = elem.nextSibling)
|
||
ret += getText(
|
||
elem
|
||
);
|
||
} else if (3 === nodeType || 4 === nodeType) return elem.nodeValue;
|
||
} else for (; (node = elem[i]); i++) ret += getText(
|
||
node
|
||
);
|
||
return ret;
|
||
}),
|
||
(Expr = Sizzle.selectors = {
|
||
cacheLength: 50,
|
||
createPseudo: markFunction,
|
||
match: matchExpr,
|
||
find: {
|
||
},
|
||
relative: {
|
||
">": {
|
||
dir: "parentNode",
|
||
first: !0,
|
||
},
|
||
" ": {
|
||
dir: "parentNode",
|
||
},
|
||
"+": {
|
||
dir: "previousSibling",
|
||
first: !0,
|
||
},
|
||
"~": {
|
||
dir: "previousSibling",
|
||
},
|
||
},
|
||
preFilter: {
|
||
ATTR: function (
|
||
match
|
||
) {
|
||
return (
|
||
(match[1] = match[1].replace(
|
||
runescape,
|
||
funescape
|
||
)),
|
||
(match[3] = (match[4] || match[5] || "").replace(
|
||
runescape,
|
||
funescape,
|
||
)),
|
||
"~=" === match[2] && (match[3] = " " + match[3] + " "),
|
||
match.slice(
|
||
0,
|
||
4
|
||
)
|
||
);
|
||
},
|
||
CHILD: function (
|
||
match
|
||
) {
|
||
return (
|
||
(match[1] = match[1].toLowerCase(
|
||
)),
|
||
"nth" === match[1].slice(
|
||
0,
|
||
3
|
||
)
|
||
? (match[3] || Sizzle.error(
|
||
match[0]
|
||
),
|
||
(match[4] = +(match[4]
|
||
? match[5] + (match[6] || 1)
|
||
: 2 * ("even" === match[3] || "odd" === match[3]))),
|
||
(match[5] = +(match[7] + match[8] || "odd" === match[3])))
|
||
: match[3] && Sizzle.error(
|
||
match[0]
|
||
),
|
||
match
|
||
);
|
||
},
|
||
PSEUDO: function (
|
||
match
|
||
) {
|
||
var excess,
|
||
unquoted = !match[5] && match[2];
|
||
return matchExpr.CHILD.test(
|
||
match[0]
|
||
)
|
||
? null
|
||
: (match[4]
|
||
? (match[2] = match[4])
|
||
: unquoted &&
|
||
rpseudo.test(
|
||
unquoted
|
||
) &&
|
||
(excess = tokenize(
|
||
unquoted,
|
||
!0
|
||
)) &&
|
||
(excess =
|
||
unquoted.indexOf(
|
||
")",
|
||
unquoted.length - excess
|
||
) -
|
||
unquoted.length) &&
|
||
((match[0] = match[0].slice(
|
||
0,
|
||
excess
|
||
)),
|
||
(match[2] = unquoted.slice(
|
||
0,
|
||
excess
|
||
))),
|
||
match.slice(
|
||
0,
|
||
3
|
||
));
|
||
},
|
||
},
|
||
filter: {
|
||
TAG: function (
|
||
nodeName
|
||
) {
|
||
return "*" === nodeName
|
||
? function (
|
||
) {
|
||
return !0;
|
||
}
|
||
: ((nodeName = nodeName
|
||
.replace(
|
||
runescape,
|
||
funescape
|
||
)
|
||
.toLowerCase(
|
||
)),
|
||
function (
|
||
elem
|
||
) {
|
||
return (
|
||
elem.nodeName && elem.nodeName.toLowerCase(
|
||
) === nodeName
|
||
);
|
||
});
|
||
},
|
||
CLASS: function (
|
||
className
|
||
) {
|
||
var pattern = classCache[className + " "];
|
||
return (
|
||
pattern ||
|
||
((pattern = new RegExp(
|
||
"(^|[\\x20\\t\\r\\n\\f])" +
|
||
className +
|
||
"(" +
|
||
whitespace +
|
||
"|$)",
|
||
)) &&
|
||
classCache(
|
||
className,
|
||
function (
|
||
elem
|
||
) {
|
||
return pattern.test(
|
||
elem.className ||
|
||
(void 0 !== elem.getAttribute &&
|
||
elem.getAttribute(
|
||
"class"
|
||
)) ||
|
||
"",
|
||
);
|
||
}
|
||
))
|
||
);
|
||
},
|
||
ATTR: function (
|
||
name, operator, check
|
||
) {
|
||
return function (
|
||
elem
|
||
) {
|
||
var result = Sizzle.attr(
|
||
elem,
|
||
name
|
||
);
|
||
return null == result
|
||
? "!=" === operator
|
||
: !operator ||
|
||
((result += ""),
|
||
"=" === operator
|
||
? result === check
|
||
: "!=" === operator
|
||
? result !== check
|
||
: "^=" === operator
|
||
? check && 0 === result.indexOf(
|
||
check
|
||
)
|
||
: "*=" === operator
|
||
? check && result.indexOf(
|
||
check
|
||
) > -1
|
||
: "$=" === operator
|
||
? check && result.slice(
|
||
-check.length
|
||
) === check
|
||
: "~=" === operator
|
||
? (" " + result + " ").indexOf(
|
||
check
|
||
) > -1
|
||
: "|=" === operator &&
|
||
(result === check ||
|
||
result.slice(
|
||
0,
|
||
check.length + 1
|
||
) === check + "-"));
|
||
};
|
||
},
|
||
CHILD: function (
|
||
type, what, argument, first, last
|
||
) {
|
||
var simple = "nth" !== type.slice(
|
||
0,
|
||
3
|
||
),
|
||
forward = "last" !== type.slice(
|
||
-4
|
||
),
|
||
ofType = "of-type" === what;
|
||
return 1 === first && 0 === last
|
||
? function (
|
||
elem
|
||
) {
|
||
return !!elem.parentNode;
|
||
}
|
||
: function (
|
||
elem, context, xml
|
||
) {
|
||
var cache,
|
||
outerCache,
|
||
node,
|
||
diff,
|
||
nodeIndex,
|
||
start,
|
||
dir =
|
||
simple !== forward ? "nextSibling" : "previousSibling",
|
||
parent = elem.parentNode,
|
||
name = ofType && elem.nodeName.toLowerCase(
|
||
),
|
||
useCache = !xml && !ofType;
|
||
if (parent) {
|
||
if (simple) {
|
||
for (; dir; ) {
|
||
for (node = elem; (node = node[dir]); )
|
||
if (
|
||
ofType
|
||
? node.nodeName.toLowerCase(
|
||
) === name
|
||
: 1 === node.nodeType
|
||
)
|
||
return !1;
|
||
start = dir =
|
||
"only" === type && !start && "nextSibling";
|
||
}
|
||
return !0;
|
||
}
|
||
if (
|
||
((start = [
|
||
forward ? parent.firstChild : parent.lastChild,
|
||
]),
|
||
forward && useCache)
|
||
) {
|
||
for (
|
||
nodeIndex =
|
||
(cache =
|
||
(outerCache =
|
||
parent[expando] || (parent[expando] = {
|
||
}))[
|
||
type
|
||
] || [])[0] === dirruns && cache[1],
|
||
diff = cache[0] === dirruns && cache[2],
|
||
node = nodeIndex && parent.childNodes[nodeIndex];
|
||
(node =
|
||
(++nodeIndex && node && node[dir]) ||
|
||
(diff = nodeIndex = 0) ||
|
||
start.pop(
|
||
));
|
||
|
||
)
|
||
if (1 === node.nodeType && ++diff && node === elem) {
|
||
outerCache[type] = [dirruns, nodeIndex, diff,];
|
||
break;
|
||
}
|
||
} else if (
|
||
useCache &&
|
||
(cache = (elem[expando] || (elem[expando] = {
|
||
}))[type]) &&
|
||
cache[0] === dirruns
|
||
)
|
||
diff = cache[1];
|
||
else
|
||
for (
|
||
;
|
||
(node =
|
||
(++nodeIndex && node && node[dir]) ||
|
||
(diff = nodeIndex = 0) ||
|
||
start.pop(
|
||
)) &&
|
||
((ofType
|
||
? node.nodeName.toLowerCase(
|
||
) !== name
|
||
: 1 !== node.nodeType) ||
|
||
!++diff ||
|
||
(useCache &&
|
||
((node[expando] || (node[expando] = {
|
||
}))[type] = [
|
||
dirruns,
|
||
diff,
|
||
]),
|
||
node !== elem));
|
||
|
||
);
|
||
return (
|
||
(diff -= last) === first ||
|
||
(diff % first == 0 && diff / first >= 0)
|
||
);
|
||
}
|
||
};
|
||
},
|
||
PSEUDO: function (
|
||
pseudo, argument
|
||
) {
|
||
var args,
|
||
fn =
|
||
Expr.pseudos[pseudo] ||
|
||
Expr.setFilters[pseudo.toLowerCase(
|
||
)] ||
|
||
Sizzle.error(
|
||
"unsupported pseudo: " + pseudo
|
||
);
|
||
return fn[expando]
|
||
? fn(
|
||
argument
|
||
)
|
||
: fn.length > 1
|
||
? ((args = [pseudo, pseudo, "", argument,]),
|
||
Expr.setFilters.hasOwnProperty(
|
||
pseudo.toLowerCase(
|
||
)
|
||
)
|
||
? markFunction(
|
||
function (
|
||
seed, matches
|
||
) {
|
||
for (
|
||
var idx,
|
||
matched = fn(
|
||
seed,
|
||
argument
|
||
),
|
||
i = matched.length;
|
||
i--;
|
||
|
||
)
|
||
seed[
|
||
(idx = indexOf.call(
|
||
seed,
|
||
matched[i]
|
||
))
|
||
] = !(matches[idx] = matched[i]);
|
||
}
|
||
)
|
||
: function (
|
||
elem
|
||
) {
|
||
return fn(
|
||
elem,
|
||
0,
|
||
args
|
||
);
|
||
})
|
||
: fn;
|
||
},
|
||
},
|
||
pseudos: {
|
||
not: markFunction(
|
||
function (
|
||
selector
|
||
) {
|
||
var input = [],
|
||
results = [],
|
||
matcher = compile(
|
||
selector.replace(
|
||
rtrim,
|
||
"$1"
|
||
)
|
||
);
|
||
return matcher[expando]
|
||
? markFunction(
|
||
function (
|
||
seed, matches, context, xml
|
||
) {
|
||
for (
|
||
var elem,
|
||
unmatched = matcher(
|
||
seed,
|
||
null,
|
||
xml,
|
||
[]
|
||
),
|
||
i = seed.length;
|
||
i--;
|
||
|
||
)
|
||
(elem = unmatched[i]) && (seed[i] = !(matches[i] = elem));
|
||
}
|
||
)
|
||
: function (
|
||
elem, context, xml
|
||
) {
|
||
return (
|
||
(input[0] = elem),
|
||
matcher(
|
||
input,
|
||
null,
|
||
xml,
|
||
results
|
||
),
|
||
!results.pop(
|
||
)
|
||
);
|
||
};
|
||
}
|
||
),
|
||
has: markFunction(
|
||
function (
|
||
selector
|
||
) {
|
||
return function (
|
||
elem
|
||
) {
|
||
return Sizzle(
|
||
selector,
|
||
elem
|
||
).length > 0;
|
||
};
|
||
}
|
||
),
|
||
contains: markFunction(
|
||
function (
|
||
text
|
||
) {
|
||
return function (
|
||
elem
|
||
) {
|
||
return (
|
||
(elem.textContent || elem.innerText || getText(
|
||
elem
|
||
)).indexOf(
|
||
text,
|
||
) > -1
|
||
);
|
||
};
|
||
}
|
||
),
|
||
lang: markFunction(
|
||
function (
|
||
lang
|
||
) {
|
||
return (
|
||
ridentifier.test(
|
||
lang || ""
|
||
) ||
|
||
Sizzle.error(
|
||
"unsupported lang: " + lang
|
||
),
|
||
(lang = lang.replace(
|
||
runescape,
|
||
funescape
|
||
).toLowerCase(
|
||
)),
|
||
function (
|
||
elem
|
||
) {
|
||
var elemLang;
|
||
do {
|
||
if (
|
||
(elemLang = documentIsXML
|
||
? elem.getAttribute(
|
||
"xml:lang"
|
||
) ||
|
||
elem.getAttribute(
|
||
"lang"
|
||
)
|
||
: elem.lang)
|
||
)
|
||
return (
|
||
(elemLang = elemLang.toLowerCase(
|
||
)) === lang ||
|
||
0 === elemLang.indexOf(
|
||
lang + "-"
|
||
)
|
||
);
|
||
} while ((elem = elem.parentNode) && 1 === elem.nodeType);
|
||
return !1;
|
||
}
|
||
);
|
||
}
|
||
),
|
||
target: function (
|
||
elem
|
||
) {
|
||
var hash = window.location && window.location.hash;
|
||
return hash && hash.slice(
|
||
1
|
||
) === elem.id;
|
||
},
|
||
root: function (
|
||
elem
|
||
) {
|
||
return elem === docElem;
|
||
},
|
||
focus: function (
|
||
elem
|
||
) {
|
||
return (
|
||
elem === document.activeElement &&
|
||
(!document.hasFocus || document.hasFocus(
|
||
)) &&
|
||
!!(elem.type || elem.href || ~elem.tabIndex)
|
||
);
|
||
},
|
||
enabled: function (
|
||
elem
|
||
) {
|
||
return !1 === elem.disabled;
|
||
},
|
||
disabled: function (
|
||
elem
|
||
) {
|
||
return !0 === elem.disabled;
|
||
},
|
||
checked: function (
|
||
elem
|
||
) {
|
||
var nodeName = elem.nodeName.toLowerCase(
|
||
);
|
||
return (
|
||
("input" === nodeName && !!elem.checked) ||
|
||
("option" === nodeName && !!elem.selected)
|
||
);
|
||
},
|
||
selected: function (
|
||
elem
|
||
) {
|
||
return (
|
||
elem.parentNode && elem.parentNode.selectedIndex,
|
||
!0 === elem.selected
|
||
);
|
||
},
|
||
empty: function (
|
||
elem
|
||
) {
|
||
for (elem = elem.firstChild; elem; elem = elem.nextSibling)
|
||
if (
|
||
elem.nodeName > "@" ||
|
||
3 === elem.nodeType ||
|
||
4 === elem.nodeType
|
||
)
|
||
return !1;
|
||
return !0;
|
||
},
|
||
parent: function (
|
||
elem
|
||
) {
|
||
return !Expr.pseudos.empty(
|
||
elem
|
||
);
|
||
},
|
||
header: function (
|
||
elem
|
||
) {
|
||
return rheader.test(
|
||
elem.nodeName
|
||
);
|
||
},
|
||
input: function (
|
||
elem
|
||
) {
|
||
return rinputs.test(
|
||
elem.nodeName
|
||
);
|
||
},
|
||
button: function (
|
||
elem
|
||
) {
|
||
var name = elem.nodeName.toLowerCase(
|
||
);
|
||
return (
|
||
("input" === name && "button" === elem.type) || "button" === name
|
||
);
|
||
},
|
||
text: function (
|
||
elem
|
||
) {
|
||
var attr;
|
||
return (
|
||
"input" === elem.nodeName.toLowerCase(
|
||
) &&
|
||
"text" === elem.type &&
|
||
(null == (attr = elem.getAttribute(
|
||
"type"
|
||
)) ||
|
||
attr.toLowerCase(
|
||
) === elem.type)
|
||
);
|
||
},
|
||
first: createPositionalPseudo(
|
||
function (
|
||
) {
|
||
return [0,];
|
||
}
|
||
),
|
||
last: createPositionalPseudo(
|
||
function (
|
||
matchIndexes, length
|
||
) {
|
||
return [length - 1,];
|
||
}
|
||
),
|
||
eq: createPositionalPseudo(
|
||
function (
|
||
matchIndexes, length, argument
|
||
) {
|
||
return [argument < 0 ? argument + length : argument,];
|
||
}
|
||
),
|
||
even: createPositionalPseudo(
|
||
function (
|
||
matchIndexes, length
|
||
) {
|
||
for (var i = 0; i < length; i += 2) matchIndexes.push(
|
||
i
|
||
);
|
||
return matchIndexes;
|
||
}
|
||
),
|
||
odd: createPositionalPseudo(
|
||
function (
|
||
matchIndexes, length
|
||
) {
|
||
for (var i = 1; i < length; i += 2) matchIndexes.push(
|
||
i
|
||
);
|
||
return matchIndexes;
|
||
}
|
||
),
|
||
lt: createPositionalPseudo(
|
||
function (
|
||
matchIndexes, length, argument
|
||
) {
|
||
for (
|
||
var i = argument < 0 ? argument + length : argument;
|
||
--i >= 0;
|
||
|
||
)
|
||
matchIndexes.push(
|
||
i
|
||
);
|
||
return matchIndexes;
|
||
}
|
||
),
|
||
gt: createPositionalPseudo(
|
||
function (
|
||
matchIndexes, length, argument
|
||
) {
|
||
for (
|
||
var i = argument < 0 ? argument + length : argument;
|
||
++i < length;
|
||
|
||
)
|
||
matchIndexes.push(
|
||
i
|
||
);
|
||
return matchIndexes;
|
||
}
|
||
),
|
||
},
|
||
}),
|
||
{
|
||
radio: !0,
|
||
checkbox: !0,
|
||
file: !0,
|
||
password: !0,
|
||
image: !0,
|
||
}))
|
||
Expr.pseudos[i] = createInputPseudo(
|
||
i
|
||
);
|
||
for (i in {
|
||
submit: !0,
|
||
reset: !0,
|
||
})
|
||
Expr.pseudos[i] = createButtonPseudo(
|
||
i
|
||
);
|
||
function tokenize(
|
||
selector, parseOnly
|
||
) {
|
||
var matched,
|
||
match,
|
||
tokens,
|
||
type,
|
||
soFar,
|
||
groups,
|
||
preFilters,
|
||
cached = tokenCache[selector + " "];
|
||
if (cached) return parseOnly
|
||
? 0
|
||
: cached.slice(
|
||
0
|
||
);
|
||
for (
|
||
soFar = selector, groups = [], preFilters = Expr.preFilter;
|
||
soFar;
|
||
|
||
) {
|
||
for (type in ((matched && !(match = rcomma.exec(
|
||
soFar
|
||
))) ||
|
||
(match && (soFar = soFar.slice(
|
||
match[0].length
|
||
) || soFar),
|
||
groups.push(
|
||
(tokens = [])
|
||
)),
|
||
(matched = !1),
|
||
(match = rcombinators.exec(
|
||
soFar
|
||
)) &&
|
||
((matched = match.shift(
|
||
)),
|
||
tokens.push(
|
||
{
|
||
value: matched,
|
||
type: match[0].replace(
|
||
rtrim,
|
||
" "
|
||
),
|
||
}
|
||
),
|
||
(soFar = soFar.slice(
|
||
matched.length
|
||
))),
|
||
Expr.filter))
|
||
!(match = matchExpr[type].exec(
|
||
soFar
|
||
)) ||
|
||
(preFilters[type] && !(match = preFilters[type](
|
||
match
|
||
))) ||
|
||
((matched = match.shift(
|
||
)),
|
||
tokens.push(
|
||
{
|
||
value: matched,
|
||
type: type,
|
||
matches: match,
|
||
}
|
||
),
|
||
(soFar = soFar.slice(
|
||
matched.length
|
||
)));
|
||
if (!matched) break;
|
||
}
|
||
return parseOnly
|
||
? soFar.length
|
||
: soFar
|
||
? Sizzle.error(
|
||
selector
|
||
)
|
||
: tokenCache(
|
||
selector,
|
||
groups
|
||
).slice(
|
||
0
|
||
);
|
||
}
|
||
function toSelector(
|
||
tokens
|
||
) {
|
||
for (var i = 0, len = tokens.length, selector = ""; i < len; i++)
|
||
selector += tokens[i].value;
|
||
return selector;
|
||
}
|
||
function addCombinator(
|
||
matcher, combinator, base
|
||
) {
|
||
var dir = combinator.dir,
|
||
checkNonElements = base && "parentNode" === dir,
|
||
doneName = done++;
|
||
return combinator.first
|
||
? function (
|
||
elem, context, xml
|
||
) {
|
||
for (; (elem = elem[dir]); )
|
||
if (1 === elem.nodeType || checkNonElements)
|
||
return matcher(
|
||
elem,
|
||
context,
|
||
xml
|
||
);
|
||
}
|
||
: function (
|
||
elem, context, xml
|
||
) {
|
||
var data,
|
||
cache,
|
||
outerCache,
|
||
dirkey = dirruns + " " + doneName;
|
||
if (xml) {
|
||
for (; (elem = elem[dir]); )
|
||
if (
|
||
(1 === elem.nodeType || checkNonElements) &&
|
||
matcher(
|
||
elem,
|
||
context,
|
||
xml
|
||
)
|
||
)
|
||
return !0;
|
||
} else
|
||
for (; (elem = elem[dir]); )
|
||
if (1 === elem.nodeType || checkNonElements)
|
||
if (
|
||
(cache = (outerCache =
|
||
elem[expando] || (elem[expando] = {
|
||
}))[dir]) &&
|
||
cache[0] === dirkey
|
||
) {
|
||
if (!0 === (data = cache[1]) || data === cachedruns)
|
||
return !0 === data;
|
||
} else if (
|
||
(((cache = outerCache[dir] = [dirkey,])[1] =
|
||
matcher(
|
||
elem,
|
||
context,
|
||
xml
|
||
) || cachedruns),
|
||
!0 === cache[1])
|
||
)
|
||
return !0;
|
||
};
|
||
}
|
||
function elementMatcher(
|
||
matchers
|
||
) {
|
||
return matchers.length > 1
|
||
? function (
|
||
elem, context, xml
|
||
) {
|
||
for (var i = matchers.length; i--; )
|
||
if (!matchers[i](
|
||
elem,
|
||
context,
|
||
xml
|
||
)) return !1;
|
||
return !0;
|
||
}
|
||
: matchers[0];
|
||
}
|
||
function condense(
|
||
unmatched, map, filter, context, xml
|
||
) {
|
||
for (
|
||
var elem,
|
||
newUnmatched = [],
|
||
i = 0,
|
||
len = unmatched.length,
|
||
mapped = null != map;
|
||
i < len;
|
||
i++
|
||
)
|
||
(elem = unmatched[i]) &&
|
||
((filter && !filter(
|
||
elem,
|
||
context,
|
||
xml
|
||
)) ||
|
||
(newUnmatched.push(
|
||
elem
|
||
), mapped && map.push(
|
||
i
|
||
)));
|
||
return newUnmatched;
|
||
}
|
||
function setMatcher(
|
||
preFilter,
|
||
selector,
|
||
matcher,
|
||
postFilter,
|
||
postFinder,
|
||
postSelector,
|
||
) {
|
||
return (
|
||
postFilter &&
|
||
!postFilter[expando] &&
|
||
(postFilter = setMatcher(
|
||
postFilter
|
||
)),
|
||
postFinder &&
|
||
!postFinder[expando] &&
|
||
(postFinder = setMatcher(
|
||
postFinder,
|
||
postSelector
|
||
)),
|
||
markFunction(
|
||
function (
|
||
seed, results, context, xml
|
||
) {
|
||
var temp,
|
||
i,
|
||
elem,
|
||
preMap = [],
|
||
postMap = [],
|
||
preexisting = results.length,
|
||
elems =
|
||
seed ||
|
||
(function (
|
||
selector, contexts, results
|
||
) {
|
||
for (var i = 0, len = contexts.length; i < len; i++)
|
||
Sizzle(
|
||
selector,
|
||
contexts[i],
|
||
results
|
||
);
|
||
return results;
|
||
})(
|
||
selector || "*",
|
||
context.nodeType ? [context,] : context,
|
||
[]
|
||
),
|
||
matcherIn =
|
||
!preFilter || (!seed && selector)
|
||
? elems
|
||
: condense(
|
||
elems,
|
||
preMap,
|
||
preFilter,
|
||
context,
|
||
xml
|
||
),
|
||
matcherOut = matcher
|
||
? postFinder || (seed ? preFilter : preexisting || postFilter)
|
||
? []
|
||
: results
|
||
: matcherIn;
|
||
if (
|
||
(matcher && matcher(
|
||
matcherIn,
|
||
matcherOut,
|
||
context,
|
||
xml
|
||
),
|
||
postFilter)
|
||
)
|
||
for (
|
||
temp = condense(
|
||
matcherOut,
|
||
postMap
|
||
),
|
||
postFilter(
|
||
temp,
|
||
[],
|
||
context,
|
||
xml
|
||
),
|
||
i = temp.length;
|
||
i--;
|
||
|
||
)
|
||
(elem = temp[i]) &&
|
||
(matcherOut[postMap[i]] = !(matcherIn[postMap[i]] = elem));
|
||
if (seed) {
|
||
if (postFinder || preFilter) {
|
||
if (postFinder) {
|
||
for (temp = [], i = matcherOut.length; i--; )
|
||
(elem = matcherOut[i]) && temp.push(
|
||
(matcherIn[i] = elem)
|
||
);
|
||
postFinder(
|
||
null, (
|
||
matcherOut = []),
|
||
temp,
|
||
xml
|
||
);
|
||
}
|
||
for (i = matcherOut.length; i--; )
|
||
(elem = matcherOut[i]) &&
|
||
(temp = postFinder
|
||
? indexOf.call(
|
||
seed,
|
||
elem
|
||
)
|
||
: preMap[i]) >
|
||
-1 &&
|
||
(seed[temp] = !(results[temp] = elem));
|
||
}
|
||
} else (matcherOut = condense(
|
||
matcherOut === results
|
||
? matcherOut.splice(
|
||
preexisting,
|
||
matcherOut.length
|
||
)
|
||
: matcherOut
|
||
)), postFinder
|
||
? postFinder(
|
||
null,
|
||
results,
|
||
matcherOut,
|
||
xml
|
||
)
|
||
: push.apply(
|
||
results,
|
||
matcherOut
|
||
);
|
||
}
|
||
)
|
||
);
|
||
}
|
||
function matcherFromTokens(
|
||
tokens
|
||
) {
|
||
for (
|
||
var checkContext,
|
||
matcher,
|
||
j,
|
||
len = tokens.length,
|
||
leadingRelative = Expr.relative[tokens[0].type],
|
||
implicitRelative = leadingRelative || Expr.relative[" "],
|
||
i = leadingRelative ? 1 : 0,
|
||
matchContext = addCombinator(
|
||
function (
|
||
elem
|
||
) {
|
||
return elem === checkContext;
|
||
},
|
||
implicitRelative,
|
||
!0,
|
||
),
|
||
matchAnyContext = addCombinator(
|
||
function (
|
||
elem
|
||
) {
|
||
return indexOf.call(
|
||
checkContext,
|
||
elem
|
||
) > -1;
|
||
},
|
||
implicitRelative,
|
||
!0,
|
||
),
|
||
matchers = [
|
||
function (
|
||
elem, context, xml
|
||
) {
|
||
return (
|
||
(!leadingRelative && (xml || context !== outermostContext)) ||
|
||
((checkContext = context).nodeType
|
||
? matchContext(
|
||
elem,
|
||
context,
|
||
xml
|
||
)
|
||
: matchAnyContext(
|
||
elem,
|
||
context,
|
||
xml
|
||
))
|
||
);
|
||
},
|
||
];
|
||
i < len;
|
||
i++
|
||
)
|
||
if ((matcher = Expr.relative[tokens[i].type]))
|
||
matchers = [addCombinator(
|
||
elementMatcher(
|
||
matchers
|
||
),
|
||
matcher
|
||
),];
|
||
else {
|
||
if (
|
||
(matcher = Expr.filter[tokens[i].type].apply(
|
||
null,
|
||
tokens[i].matches,
|
||
))[expando]
|
||
) {
|
||
for (j = ++i; j < len && !Expr.relative[tokens[j].type]; j++);
|
||
return setMatcher(
|
||
i > 1 && elementMatcher(
|
||
matchers
|
||
),
|
||
i > 1 &&
|
||
toSelector(
|
||
tokens.slice(
|
||
0,
|
||
i - 1
|
||
)
|
||
).replace(
|
||
rtrim,
|
||
"$1"
|
||
),
|
||
matcher,
|
||
i < j && matcherFromTokens(
|
||
tokens.slice(
|
||
i,
|
||
j
|
||
)
|
||
),
|
||
j < len && matcherFromTokens(
|
||
(tokens = tokens.slice(
|
||
j
|
||
))
|
||
),
|
||
j < len && toSelector(
|
||
tokens
|
||
),
|
||
);
|
||
}
|
||
matchers.push(
|
||
matcher
|
||
);
|
||
}
|
||
return elementMatcher(
|
||
matchers
|
||
);
|
||
}
|
||
function setFilters(
|
||
) {}
|
||
(compile = Sizzle.compile = function (
|
||
selector, group
|
||
) {
|
||
var i,
|
||
setMatchers = [],
|
||
elementMatchers = [],
|
||
cached = compilerCache[selector + " "];
|
||
if (!cached) {
|
||
for (group || (group = tokenize(
|
||
selector
|
||
)), i = group.length; i--; )
|
||
(cached = matcherFromTokens(
|
||
group[i]
|
||
))[expando]
|
||
? setMatchers.push(
|
||
cached
|
||
)
|
||
: elementMatchers.push(
|
||
cached
|
||
);
|
||
cached = compilerCache(
|
||
selector,
|
||
(function (
|
||
elementMatchers, setMatchers
|
||
) {
|
||
var matcherCachedRuns = 0,
|
||
bySet = setMatchers.length > 0,
|
||
byElement = elementMatchers.length > 0,
|
||
superMatcher = function (
|
||
seed,
|
||
context,
|
||
xml,
|
||
results,
|
||
expandContext,
|
||
) {
|
||
var elem,
|
||
j,
|
||
matcher,
|
||
setMatched = [],
|
||
matchedCount = 0,
|
||
i = "0",
|
||
unmatched = seed && [],
|
||
outermost = null != expandContext,
|
||
contextBackup = outermostContext,
|
||
elems =
|
||
seed ||
|
||
(byElement &&
|
||
Expr.find.TAG(
|
||
"*",
|
||
(expandContext && context.parentNode) || context,
|
||
)),
|
||
dirrunsUnique = (dirruns +=
|
||
null == contextBackup
|
||
? 1
|
||
: Math.random(
|
||
) || 0.1);
|
||
for (
|
||
outermost &&
|
||
((outermostContext = context !== document && context),
|
||
(cachedruns = matcherCachedRuns));
|
||
null != (elem = elems[i]);
|
||
i++
|
||
) {
|
||
if (byElement && elem) {
|
||
for (j = 0; (matcher = elementMatchers[j++]); )
|
||
if (matcher(
|
||
elem,
|
||
context,
|
||
xml
|
||
)) {
|
||
results.push(
|
||
elem
|
||
);
|
||
break;
|
||
}
|
||
outermost &&
|
||
((dirruns = dirrunsUnique),
|
||
(cachedruns = ++matcherCachedRuns));
|
||
}
|
||
bySet &&
|
||
((elem = !matcher && elem) && matchedCount--,
|
||
seed && unmatched.push(
|
||
elem
|
||
));
|
||
}
|
||
if (((matchedCount += i), bySet && i !== matchedCount)) {
|
||
for (j = 0; (matcher = setMatchers[j++]); )
|
||
matcher(
|
||
unmatched,
|
||
setMatched,
|
||
context,
|
||
xml
|
||
);
|
||
if (seed) {
|
||
if (matchedCount > 0)
|
||
for (; i--; )
|
||
unmatched[i] ||
|
||
setMatched[i] ||
|
||
(setMatched[i] = pop.call(
|
||
results
|
||
));
|
||
setMatched = condense(
|
||
setMatched
|
||
);
|
||
}
|
||
push.apply(
|
||
results,
|
||
setMatched
|
||
),
|
||
outermost &&
|
||
!seed &&
|
||
setMatched.length > 0 &&
|
||
matchedCount + setMatchers.length > 1 &&
|
||
Sizzle.uniqueSort(
|
||
results
|
||
);
|
||
}
|
||
return (
|
||
outermost &&
|
||
((dirruns = dirrunsUnique),
|
||
(outermostContext = contextBackup)),
|
||
unmatched
|
||
);
|
||
};
|
||
return bySet
|
||
? markFunction(
|
||
superMatcher
|
||
)
|
||
: superMatcher;
|
||
})(
|
||
elementMatchers,
|
||
setMatchers
|
||
),
|
||
);
|
||
}
|
||
return cached;
|
||
}),
|
||
(Expr.pseudos.nth = Expr.pseudos.eq),
|
||
(Expr.filters = setFilters.prototype = Expr.pseudos),
|
||
(Expr.setFilters = new setFilters(
|
||
)),
|
||
setDocument(
|
||
),
|
||
(Sizzle.attr = jQuery.attr),
|
||
(jQuery.find = Sizzle),
|
||
(jQuery.expr = Sizzle.selectors),
|
||
(jQuery.expr[":"] = jQuery.expr.pseudos),
|
||
(jQuery.unique = Sizzle.uniqueSort),
|
||
(jQuery.text = Sizzle.getText),
|
||
(jQuery.isXMLDoc = Sizzle.isXML),
|
||
(jQuery.contains = Sizzle.contains);
|
||
})(
|
||
window
|
||
);
|
||
var runtil = /Until$/,
|
||
rparentsprev = /^(?:parents|prev(?:Until|All))/,
|
||
isSimple = /^.[^:#\[\.,]*$/,
|
||
rneedsContext = jQuery.expr.match.needsContext,
|
||
guaranteedUnique = {
|
||
children: !0,
|
||
contents: !0,
|
||
next: !0,
|
||
prev: !0,
|
||
};
|
||
function sibling(
|
||
cur, dir
|
||
) {
|
||
do {
|
||
cur = cur[dir];
|
||
} while (cur && 1 !== cur.nodeType);
|
||
return cur;
|
||
}
|
||
function winnow(
|
||
elements, qualifier, keep
|
||
) {
|
||
if (((qualifier = qualifier || 0), jQuery.isFunction(
|
||
qualifier
|
||
)))
|
||
return jQuery.grep(
|
||
elements,
|
||
function (
|
||
elem, i
|
||
) {
|
||
return !!qualifier.call(
|
||
elem,
|
||
i,
|
||
elem
|
||
) === keep;
|
||
}
|
||
);
|
||
if (qualifier.nodeType)
|
||
return jQuery.grep(
|
||
elements,
|
||
function (
|
||
elem
|
||
) {
|
||
return (elem === qualifier) === keep;
|
||
}
|
||
);
|
||
if ("string" == typeof qualifier) {
|
||
var filtered = jQuery.grep(
|
||
elements,
|
||
function (
|
||
elem
|
||
) {
|
||
return 1 === elem.nodeType;
|
||
}
|
||
);
|
||
if (isSimple.test(
|
||
qualifier
|
||
))
|
||
return jQuery.filter(
|
||
qualifier,
|
||
filtered,
|
||
!keep
|
||
);
|
||
qualifier = jQuery.filter(
|
||
qualifier,
|
||
filtered
|
||
);
|
||
}
|
||
return jQuery.grep(
|
||
elements,
|
||
function (
|
||
elem
|
||
) {
|
||
return jQuery.inArray(
|
||
elem,
|
||
qualifier
|
||
) >= 0 === keep;
|
||
}
|
||
);
|
||
}
|
||
function createSafeFragment(
|
||
document
|
||
) {
|
||
var list = nodeNames.split(
|
||
"|"
|
||
),
|
||
safeFrag = document.createDocumentFragment(
|
||
);
|
||
if (safeFrag.createElement)
|
||
for (; list.length; ) safeFrag.createElement(
|
||
list.pop(
|
||
)
|
||
);
|
||
return safeFrag;
|
||
}
|
||
jQuery.fn.extend(
|
||
{
|
||
find: function (
|
||
selector
|
||
) {
|
||
var i,
|
||
ret,
|
||
self,
|
||
len = this.length;
|
||
if ("string" != typeof selector)
|
||
return (
|
||
(self = this),
|
||
this.pushStack(
|
||
jQuery(
|
||
selector
|
||
).filter(
|
||
function (
|
||
) {
|
||
for (i = 0; i < len; i++)
|
||
if (jQuery.contains(
|
||
self[i],
|
||
this
|
||
)) return !0;
|
||
}
|
||
),
|
||
)
|
||
);
|
||
for (ret = [], i = 0; i < len; i++) jQuery.find(
|
||
selector,
|
||
this[i],
|
||
ret
|
||
);
|
||
return (
|
||
((ret = this.pushStack(
|
||
len > 1
|
||
? jQuery.unique(
|
||
ret
|
||
)
|
||
: ret
|
||
)).selector =
|
||
(this.selector ? this.selector + " " : "") + selector),
|
||
ret
|
||
);
|
||
},
|
||
has: function (
|
||
target
|
||
) {
|
||
var i,
|
||
targets = jQuery(
|
||
target,
|
||
this
|
||
),
|
||
len = targets.length;
|
||
return this.filter(
|
||
function (
|
||
) {
|
||
for (i = 0; i < len; i++)
|
||
if (jQuery.contains(
|
||
this,
|
||
targets[i]
|
||
)) return !0;
|
||
}
|
||
);
|
||
},
|
||
not: function (
|
||
selector
|
||
) {
|
||
return this.pushStack(
|
||
winnow(
|
||
this,
|
||
selector,
|
||
!1
|
||
)
|
||
);
|
||
},
|
||
filter: function (
|
||
selector
|
||
) {
|
||
return this.pushStack(
|
||
winnow(
|
||
this,
|
||
selector,
|
||
!0
|
||
)
|
||
);
|
||
},
|
||
is: function (
|
||
selector
|
||
) {
|
||
return (
|
||
!!selector &&
|
||
("string" == typeof selector
|
||
? rneedsContext.test(
|
||
selector
|
||
)
|
||
? jQuery(
|
||
selector,
|
||
this.context
|
||
).index(
|
||
this[0]
|
||
) >= 0
|
||
: jQuery.filter(
|
||
selector,
|
||
this
|
||
).length > 0
|
||
: this.filter(
|
||
selector
|
||
).length > 0)
|
||
);
|
||
},
|
||
closest: function (
|
||
selectors, context
|
||
) {
|
||
for (
|
||
var cur,
|
||
i = 0,
|
||
l = this.length,
|
||
ret = [],
|
||
pos =
|
||
rneedsContext.test(
|
||
selectors
|
||
) || "string" != typeof selectors
|
||
? jQuery(
|
||
selectors,
|
||
context || this.context
|
||
)
|
||
: 0;
|
||
i < l;
|
||
i++
|
||
)
|
||
for (
|
||
cur = this[i];
|
||
cur && cur.ownerDocument && cur !== context && 11 !== cur.nodeType;
|
||
|
||
) {
|
||
if (
|
||
pos
|
||
? pos.index(
|
||
cur
|
||
) > -1
|
||
: jQuery.find.matchesSelector(
|
||
cur,
|
||
selectors
|
||
)
|
||
) {
|
||
ret.push(
|
||
cur
|
||
);
|
||
break;
|
||
}
|
||
cur = cur.parentNode;
|
||
}
|
||
return this.pushStack(
|
||
ret.length > 1
|
||
? jQuery.unique(
|
||
ret
|
||
)
|
||
: ret
|
||
);
|
||
},
|
||
index: function (
|
||
elem
|
||
) {
|
||
return elem
|
||
? "string" == typeof elem
|
||
? jQuery.inArray(
|
||
this[0],
|
||
jQuery(
|
||
elem
|
||
)
|
||
)
|
||
: jQuery.inArray(
|
||
elem.jquery ? elem[0] : elem,
|
||
this
|
||
)
|
||
: this[0] && this[0].parentNode
|
||
? this.first(
|
||
).prevAll(
|
||
).length
|
||
: -1;
|
||
},
|
||
add: function (
|
||
selector, context
|
||
) {
|
||
var set =
|
||
"string" == typeof selector
|
||
? jQuery(
|
||
selector,
|
||
context
|
||
)
|
||
: jQuery.makeArray(
|
||
selector && selector.nodeType ? [selector,] : selector,
|
||
),
|
||
all = jQuery.merge(
|
||
this.get(
|
||
),
|
||
set
|
||
);
|
||
return this.pushStack(
|
||
jQuery.unique(
|
||
all
|
||
)
|
||
);
|
||
},
|
||
addBack: function (
|
||
selector
|
||
) {
|
||
return this.add(
|
||
null == selector
|
||
? this.prevObject
|
||
: this.prevObject.filter(
|
||
selector
|
||
),
|
||
);
|
||
},
|
||
}
|
||
),
|
||
(jQuery.fn.andSelf = jQuery.fn.addBack),
|
||
jQuery.each(
|
||
{
|
||
parent: function (
|
||
elem
|
||
) {
|
||
var parent = elem.parentNode;
|
||
return parent && 11 !== parent.nodeType ? parent : null;
|
||
},
|
||
parents: function (
|
||
elem
|
||
) {
|
||
return jQuery.dir(
|
||
elem,
|
||
"parentNode"
|
||
);
|
||
},
|
||
parentsUntil: function (
|
||
elem, i, until
|
||
) {
|
||
return jQuery.dir(
|
||
elem,
|
||
"parentNode",
|
||
until
|
||
);
|
||
},
|
||
next: function (
|
||
elem
|
||
) {
|
||
return sibling(
|
||
elem,
|
||
"nextSibling"
|
||
);
|
||
},
|
||
prev: function (
|
||
elem
|
||
) {
|
||
return sibling(
|
||
elem,
|
||
"previousSibling"
|
||
);
|
||
},
|
||
nextAll: function (
|
||
elem
|
||
) {
|
||
return jQuery.dir(
|
||
elem,
|
||
"nextSibling"
|
||
);
|
||
},
|
||
prevAll: function (
|
||
elem
|
||
) {
|
||
return jQuery.dir(
|
||
elem,
|
||
"previousSibling"
|
||
);
|
||
},
|
||
nextUntil: function (
|
||
elem, i, until
|
||
) {
|
||
return jQuery.dir(
|
||
elem,
|
||
"nextSibling",
|
||
until
|
||
);
|
||
},
|
||
prevUntil: function (
|
||
elem, i, until
|
||
) {
|
||
return jQuery.dir(
|
||
elem,
|
||
"previousSibling",
|
||
until
|
||
);
|
||
},
|
||
siblings: function (
|
||
elem
|
||
) {
|
||
return jQuery.sibling(
|
||
(elem.parentNode || {
|
||
}).firstChild,
|
||
elem
|
||
);
|
||
},
|
||
children: function (
|
||
elem
|
||
) {
|
||
return jQuery.sibling(
|
||
elem.firstChild
|
||
);
|
||
},
|
||
contents: function (
|
||
elem
|
||
) {
|
||
return jQuery.nodeName(
|
||
elem,
|
||
"iframe"
|
||
)
|
||
? elem.contentDocument || elem.contentWindow.document
|
||
: jQuery.merge(
|
||
[],
|
||
elem.childNodes
|
||
);
|
||
},
|
||
},
|
||
function (
|
||
name, fn
|
||
) {
|
||
jQuery.fn[name] = function (
|
||
until, selector
|
||
) {
|
||
var ret = jQuery.map(
|
||
this,
|
||
fn,
|
||
until
|
||
);
|
||
return (
|
||
runtil.test(
|
||
name
|
||
) || (selector = until),
|
||
selector &&
|
||
"string" == typeof selector &&
|
||
(ret = jQuery.filter(
|
||
selector,
|
||
ret
|
||
)),
|
||
(ret =
|
||
this.length > 1 && !guaranteedUnique[name]
|
||
? jQuery.unique(
|
||
ret
|
||
)
|
||
: ret),
|
||
this.length > 1 && rparentsprev.test(
|
||
name
|
||
) && (ret = ret.reverse(
|
||
)),
|
||
this.pushStack(
|
||
ret
|
||
)
|
||
);
|
||
};
|
||
},
|
||
),
|
||
jQuery.extend(
|
||
{
|
||
filter: function (
|
||
expr, elems, not
|
||
) {
|
||
return (
|
||
not && (expr = ":not(" + expr + ")"),
|
||
1 === elems.length
|
||
? jQuery.find.matchesSelector(
|
||
elems[0],
|
||
expr
|
||
)
|
||
? [elems[0],]
|
||
: []
|
||
: jQuery.find.matches(
|
||
expr,
|
||
elems
|
||
)
|
||
);
|
||
},
|
||
dir: function (
|
||
elem, dir, until
|
||
) {
|
||
for (
|
||
var matched = [], cur = elem[dir];
|
||
cur &&
|
||
9 !== cur.nodeType &&
|
||
(undefined === until || 1 !== cur.nodeType || !jQuery(
|
||
cur
|
||
).is(
|
||
until
|
||
));
|
||
|
||
)
|
||
1 === cur.nodeType && matched.push(
|
||
cur
|
||
), (cur = cur[dir]);
|
||
return matched;
|
||
},
|
||
sibling: function (
|
||
n, elem
|
||
) {
|
||
for (var r = []; n; n = n.nextSibling)
|
||
1 === n.nodeType && n !== elem && r.push(
|
||
n
|
||
);
|
||
return r;
|
||
},
|
||
}
|
||
);
|
||
var nodeNames =
|
||
"abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",
|
||
rinlinejQuery = / jQuery\d+="(?:null|\d+)"/g,
|
||
rnoshimcache = new RegExp(
|
||
"<(?:" + nodeNames + ")[\\s/>]",
|
||
"i"
|
||
),
|
||
rleadingWhitespace = /^\s+/,
|
||
rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,
|
||
rtagName = /<([\w:]+)/,
|
||
rtbody = /<tbody/i,
|
||
rhtml = /<|&#?\w+;/,
|
||
rnoInnerhtml = /<(?:script|style|link)/i,
|
||
manipulation_rcheckableType = /^(?:checkbox|radio)$/i,
|
||
rchecked = /checked\s*(?:[^=]|=\s*.checked.)/i,
|
||
rscriptType = /^$|\/(?:java|ecma)script/i,
|
||
rscriptTypeMasked = /^true\/(.*)/,
|
||
rcleanScript = /^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,
|
||
wrapMap = {
|
||
option: [1, "<select multiple='multiple'>", "</select>",],
|
||
legend: [1, "<fieldset>", "</fieldset>",],
|
||
area: [1, "<map>", "</map>",],
|
||
param: [1, "<object>", "</object>",],
|
||
thead: [1, "<table>", "</table>",],
|
||
tr: [2, "<table><tbody>", "</tbody></table>",],
|
||
col: [2, "<table><tbody></tbody><colgroup>", "</colgroup></table>",],
|
||
td: [3, "<table><tbody><tr>", "</tr></tbody></table>",],
|
||
_default: jQuery.support.htmlSerialize
|
||
? [0, "", "",]
|
||
: [1, "X<div>", "</div>",],
|
||
},
|
||
fragmentDiv = createSafeFragment(
|
||
document
|
||
).appendChild(
|
||
document.createElement(
|
||
"div"
|
||
),
|
||
);
|
||
function disableScript(
|
||
elem
|
||
) {
|
||
var attr = elem.getAttributeNode(
|
||
"type"
|
||
);
|
||
return (elem.type = (attr && attr.specified) + "/" + elem.type), elem;
|
||
}
|
||
function restoreScript(
|
||
elem
|
||
) {
|
||
var match = rscriptTypeMasked.exec(
|
||
elem.type
|
||
);
|
||
return match
|
||
? (elem.type = match[1])
|
||
: elem.removeAttribute(
|
||
"type"
|
||
), elem;
|
||
}
|
||
function setGlobalEval(
|
||
elems, refElements
|
||
) {
|
||
for (var elem, i = 0; null != (elem = elems[i]); i++)
|
||
jQuery._data(
|
||
elem,
|
||
"globalEval",
|
||
!refElements || jQuery._data(
|
||
refElements[i],
|
||
"globalEval"
|
||
),
|
||
);
|
||
}
|
||
function cloneCopyEvent(
|
||
src, dest
|
||
) {
|
||
if (1 === dest.nodeType && jQuery.hasData(
|
||
src
|
||
)) {
|
||
var type,
|
||
i,
|
||
l,
|
||
oldData = jQuery._data(
|
||
src
|
||
),
|
||
curData = jQuery._data(
|
||
dest,
|
||
oldData
|
||
),
|
||
events = oldData.events;
|
||
if (events)
|
||
for (type in (delete curData.handle, (curData.events = {
|
||
}), events))
|
||
for (i = 0, l = events[type].length; i < l; i++)
|
||
jQuery.event.add(
|
||
dest,
|
||
type,
|
||
events[type][i]
|
||
);
|
||
curData.data && (curData.data = jQuery.extend(
|
||
{
|
||
},
|
||
curData.data
|
||
));
|
||
}
|
||
}
|
||
function fixCloneNodeIssues(
|
||
src, dest
|
||
) {
|
||
var nodeName, e, data;
|
||
if (1 === dest.nodeType) {
|
||
if (
|
||
((nodeName = dest.nodeName.toLowerCase(
|
||
)),
|
||
!jQuery.support.noCloneEvent && dest[jQuery.expando])
|
||
) {
|
||
for (e in (data = jQuery._data(
|
||
dest
|
||
)).events)
|
||
jQuery.removeEvent(
|
||
dest,
|
||
e,
|
||
data.handle
|
||
);
|
||
dest.removeAttribute(
|
||
jQuery.expando
|
||
);
|
||
}
|
||
"script" === nodeName && dest.text !== src.text
|
||
? ((disableScript(
|
||
dest
|
||
).text = src.text), restoreScript(
|
||
dest
|
||
))
|
||
: "object" === nodeName
|
||
? (dest.parentNode && (dest.outerHTML = src.outerHTML),
|
||
jQuery.support.html5Clone &&
|
||
src.innerHTML &&
|
||
!jQuery.trim(
|
||
dest.innerHTML
|
||
) &&
|
||
(dest.innerHTML = src.innerHTML))
|
||
: "input" === nodeName && manipulation_rcheckableType.test(
|
||
src.type
|
||
)
|
||
? ((dest.defaultChecked = dest.checked = src.checked),
|
||
dest.value !== src.value && (dest.value = src.value))
|
||
: "option" === nodeName
|
||
? (dest.defaultSelected = dest.selected = src.defaultSelected)
|
||
: ("input" !== nodeName && "textarea" !== nodeName) ||
|
||
(dest.defaultValue = src.defaultValue);
|
||
}
|
||
}
|
||
function getAll(
|
||
context, tag
|
||
) {
|
||
var elems,
|
||
elem,
|
||
i = 0,
|
||
found =
|
||
void 0 !== context.getElementsByTagName
|
||
? context.getElementsByTagName(
|
||
tag || "*"
|
||
)
|
||
: void 0 !== context.querySelectorAll
|
||
? context.querySelectorAll(
|
||
tag || "*"
|
||
)
|
||
: undefined;
|
||
if (!found)
|
||
for (
|
||
found = [], elems = context.childNodes || context;
|
||
null != (elem = elems[i]);
|
||
i++
|
||
)
|
||
!tag || jQuery.nodeName(
|
||
elem,
|
||
tag
|
||
)
|
||
? found.push(
|
||
elem
|
||
)
|
||
: jQuery.merge(
|
||
found,
|
||
getAll(
|
||
elem,
|
||
tag
|
||
)
|
||
);
|
||
return undefined === tag || (tag && jQuery.nodeName(
|
||
context,
|
||
tag
|
||
))
|
||
? jQuery.merge(
|
||
[context,],
|
||
found
|
||
)
|
||
: found;
|
||
}
|
||
function fixDefaultChecked(
|
||
elem
|
||
) {
|
||
manipulation_rcheckableType.test(
|
||
elem.type
|
||
) &&
|
||
(elem.defaultChecked = elem.checked);
|
||
}
|
||
(wrapMap.optgroup = wrapMap.option),
|
||
(wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption =
|
||
wrapMap.thead),
|
||
(wrapMap.th = wrapMap.td),
|
||
jQuery.fn.extend(
|
||
{
|
||
text: function (
|
||
value
|
||
) {
|
||
return jQuery.access(
|
||
this,
|
||
function (
|
||
value
|
||
) {
|
||
return undefined === value
|
||
? jQuery.text(
|
||
this
|
||
)
|
||
: this.empty(
|
||
).append(
|
||
(
|
||
(this[0] && this[0].ownerDocument) ||
|
||
document
|
||
).createTextNode(
|
||
value
|
||
),
|
||
);
|
||
},
|
||
null,
|
||
value,
|
||
arguments.length,
|
||
);
|
||
},
|
||
wrapAll: function (
|
||
html
|
||
) {
|
||
if (jQuery.isFunction(
|
||
html
|
||
))
|
||
return this.each(
|
||
function (
|
||
i
|
||
) {
|
||
jQuery(
|
||
this
|
||
).wrapAll(
|
||
html.call(
|
||
this,
|
||
i
|
||
)
|
||
);
|
||
}
|
||
);
|
||
if (this[0]) {
|
||
var wrap = jQuery(
|
||
html,
|
||
this[0].ownerDocument
|
||
).eq(
|
||
0
|
||
).clone(
|
||
!0
|
||
);
|
||
this[0].parentNode && wrap.insertBefore(
|
||
this[0]
|
||
),
|
||
wrap
|
||
.map(
|
||
function (
|
||
) {
|
||
for (
|
||
var elem = this;
|
||
elem.firstChild && 1 === elem.firstChild.nodeType;
|
||
|
||
)
|
||
elem = elem.firstChild;
|
||
return elem;
|
||
}
|
||
)
|
||
.append(
|
||
this
|
||
);
|
||
}
|
||
return this;
|
||
},
|
||
wrapInner: function (
|
||
html
|
||
) {
|
||
return jQuery.isFunction(
|
||
html
|
||
)
|
||
? this.each(
|
||
function (
|
||
i
|
||
) {
|
||
jQuery(
|
||
this
|
||
).wrapInner(
|
||
html.call(
|
||
this,
|
||
i
|
||
)
|
||
);
|
||
}
|
||
)
|
||
: this.each(
|
||
function (
|
||
) {
|
||
var self = jQuery(
|
||
this
|
||
),
|
||
contents = self.contents(
|
||
);
|
||
contents.length
|
||
? contents.wrapAll(
|
||
html
|
||
)
|
||
: self.append(
|
||
html
|
||
);
|
||
}
|
||
);
|
||
},
|
||
wrap: function (
|
||
html
|
||
) {
|
||
var isFunction = jQuery.isFunction(
|
||
html
|
||
);
|
||
return this.each(
|
||
function (
|
||
i
|
||
) {
|
||
jQuery(
|
||
this
|
||
).wrapAll(
|
||
isFunction
|
||
? html.call(
|
||
this,
|
||
i
|
||
)
|
||
: html
|
||
);
|
||
}
|
||
);
|
||
},
|
||
unwrap: function (
|
||
) {
|
||
return this.parent(
|
||
)
|
||
.each(
|
||
function (
|
||
) {
|
||
jQuery.nodeName(
|
||
this,
|
||
"body"
|
||
) ||
|
||
jQuery(
|
||
this
|
||
).replaceWith(
|
||
this.childNodes
|
||
);
|
||
}
|
||
)
|
||
.end(
|
||
);
|
||
},
|
||
append: function (
|
||
) {
|
||
return this.domManip(
|
||
arguments,
|
||
!0,
|
||
function (
|
||
elem
|
||
) {
|
||
(1 !== this.nodeType &&
|
||
11 !== this.nodeType &&
|
||
9 !== this.nodeType) ||
|
||
this.appendChild(
|
||
elem
|
||
);
|
||
}
|
||
);
|
||
},
|
||
prepend: function (
|
||
) {
|
||
return this.domManip(
|
||
arguments,
|
||
!0,
|
||
function (
|
||
elem
|
||
) {
|
||
(1 !== this.nodeType &&
|
||
11 !== this.nodeType &&
|
||
9 !== this.nodeType) ||
|
||
this.insertBefore(
|
||
elem,
|
||
this.firstChild
|
||
);
|
||
}
|
||
);
|
||
},
|
||
before: function (
|
||
) {
|
||
return this.domManip(
|
||
arguments,
|
||
!1,
|
||
function (
|
||
elem
|
||
) {
|
||
this.parentNode && this.parentNode.insertBefore(
|
||
elem,
|
||
this
|
||
);
|
||
}
|
||
);
|
||
},
|
||
after: function (
|
||
) {
|
||
return this.domManip(
|
||
arguments,
|
||
!1,
|
||
function (
|
||
elem
|
||
) {
|
||
this.parentNode &&
|
||
this.parentNode.insertBefore(
|
||
elem,
|
||
this.nextSibling
|
||
);
|
||
}
|
||
);
|
||
},
|
||
remove: function (
|
||
selector, keepData
|
||
) {
|
||
for (var elem, i = 0; null != (elem = this[i]); i++)
|
||
(!selector || jQuery.filter(
|
||
selector,
|
||
[elem,]
|
||
).length > 0) &&
|
||
(keepData || 1 !== elem.nodeType || jQuery.cleanData(
|
||
getAll(
|
||
elem
|
||
)
|
||
),
|
||
elem.parentNode &&
|
||
(keepData &&
|
||
jQuery.contains(
|
||
elem.ownerDocument,
|
||
elem
|
||
) &&
|
||
setGlobalEval(
|
||
getAll(
|
||
elem,
|
||
"script"
|
||
)
|
||
),
|
||
elem.parentNode.removeChild(
|
||
elem
|
||
)));
|
||
return this;
|
||
},
|
||
empty: function (
|
||
) {
|
||
for (var elem, i = 0; null != (elem = this[i]); i++) {
|
||
for (
|
||
1 === elem.nodeType && jQuery.cleanData(
|
||
getAll(
|
||
elem,
|
||
!1
|
||
)
|
||
);
|
||
elem.firstChild;
|
||
|
||
)
|
||
elem.removeChild(
|
||
elem.firstChild
|
||
);
|
||
elem.options &&
|
||
jQuery.nodeName(
|
||
elem,
|
||
"select"
|
||
) &&
|
||
(elem.options.length = 0);
|
||
}
|
||
return this;
|
||
},
|
||
clone: function (
|
||
dataAndEvents, deepDataAndEvents
|
||
) {
|
||
return (
|
||
(dataAndEvents = null != dataAndEvents && dataAndEvents),
|
||
(deepDataAndEvents =
|
||
null == deepDataAndEvents ? dataAndEvents : deepDataAndEvents),
|
||
this.map(
|
||
function (
|
||
) {
|
||
return jQuery.clone(
|
||
this,
|
||
dataAndEvents,
|
||
deepDataAndEvents
|
||
);
|
||
}
|
||
)
|
||
);
|
||
},
|
||
html: function (
|
||
value
|
||
) {
|
||
return jQuery.access(
|
||
this,
|
||
function (
|
||
value
|
||
) {
|
||
var elem = this[0] || {
|
||
},
|
||
i = 0,
|
||
l = this.length;
|
||
if (undefined === value)
|
||
return 1 === elem.nodeType
|
||
? elem.innerHTML.replace(
|
||
rinlinejQuery,
|
||
""
|
||
)
|
||
: undefined;
|
||
if (
|
||
"string" == typeof value &&
|
||
!rnoInnerhtml.test(
|
||
value
|
||
) &&
|
||
(jQuery.support.htmlSerialize || !rnoshimcache.test(
|
||
value
|
||
)) &&
|
||
(jQuery.support.leadingWhitespace ||
|
||
!rleadingWhitespace.test(
|
||
value
|
||
)) &&
|
||
!wrapMap[(rtagName.exec(
|
||
value
|
||
) || ["", "",])[1].toLowerCase(
|
||
)]
|
||
) {
|
||
value = value.replace(
|
||
rxhtmlTag,
|
||
"<$1></$2>"
|
||
);
|
||
try {
|
||
for (; i < l; i++)
|
||
1 === (elem = this[i] || {
|
||
}).nodeType &&
|
||
(jQuery.cleanData(
|
||
getAll(
|
||
elem,
|
||
!1
|
||
)
|
||
),
|
||
(elem.innerHTML = value));
|
||
elem = 0;
|
||
} catch (e) {}
|
||
}
|
||
elem && this.empty(
|
||
).append(
|
||
value
|
||
);
|
||
},
|
||
null,
|
||
value,
|
||
arguments.length,
|
||
);
|
||
},
|
||
replaceWith: function (
|
||
value
|
||
) {
|
||
return (
|
||
jQuery.isFunction(
|
||
value
|
||
) ||
|
||
"string" == typeof value ||
|
||
(value = jQuery(
|
||
value
|
||
).not(
|
||
this
|
||
).detach(
|
||
)),
|
||
this.domManip(
|
||
[value,],
|
||
!0,
|
||
function (
|
||
elem
|
||
) {
|
||
var next = this.nextSibling,
|
||
parent = this.parentNode;
|
||
parent && (jQuery(
|
||
this
|
||
).remove(
|
||
), parent.insertBefore(
|
||
elem,
|
||
next
|
||
));
|
||
}
|
||
)
|
||
);
|
||
},
|
||
detach: function (
|
||
selector
|
||
) {
|
||
return this.remove(
|
||
selector,
|
||
!0
|
||
);
|
||
},
|
||
domManip: function (
|
||
args, table, callback
|
||
) {
|
||
args = core_concat.apply(
|
||
[],
|
||
args
|
||
);
|
||
var first,
|
||
node,
|
||
hasScripts,
|
||
scripts,
|
||
doc,
|
||
fragment,
|
||
elem,
|
||
tag,
|
||
i = 0,
|
||
l = this.length,
|
||
set = this,
|
||
iNoClone = l - 1,
|
||
value = args[0],
|
||
isFunction = jQuery.isFunction(
|
||
value
|
||
);
|
||
if (
|
||
isFunction ||
|
||
(!(l <= 1 || "string" != typeof value || jQuery.support.checkClone) &&
|
||
rchecked.test(
|
||
value
|
||
))
|
||
)
|
||
return this.each(
|
||
function (
|
||
index
|
||
) {
|
||
var self = set.eq(
|
||
index
|
||
);
|
||
isFunction &&
|
||
(args[0] = value.call(
|
||
this,
|
||
index,
|
||
table
|
||
? self.html(
|
||
)
|
||
: undefined,
|
||
)),
|
||
self.domManip(
|
||
args,
|
||
table,
|
||
callback
|
||
);
|
||
}
|
||
);
|
||
if (
|
||
l &&
|
||
((first = (fragment = jQuery.buildFragment(
|
||
args,
|
||
this[0].ownerDocument,
|
||
!1,
|
||
this,
|
||
)).firstChild),
|
||
1 === fragment.childNodes.length && (fragment = first),
|
||
first)
|
||
) {
|
||
for (
|
||
table = table && jQuery.nodeName(
|
||
first,
|
||
"tr"
|
||
),
|
||
hasScripts = (scripts = jQuery.map(
|
||
getAll(
|
||
fragment,
|
||
"script"
|
||
),
|
||
disableScript,
|
||
)).length;
|
||
i < l;
|
||
i++
|
||
)
|
||
(node = fragment),
|
||
i !== iNoClone &&
|
||
((node = jQuery.clone(
|
||
node,
|
||
!0,
|
||
!0
|
||
)),
|
||
hasScripts && jQuery.merge(
|
||
scripts,
|
||
getAll(
|
||
node,
|
||
"script"
|
||
)
|
||
)),
|
||
callback.call(
|
||
table && jQuery.nodeName(
|
||
this[i],
|
||
"table"
|
||
)
|
||
? ((elem = this[i]),
|
||
(tag = "tbody"),
|
||
elem.getElementsByTagName(
|
||
tag
|
||
)[0] ||
|
||
elem.appendChild(
|
||
elem.ownerDocument.createElement(
|
||
tag
|
||
)
|
||
))
|
||
: this[i],
|
||
node,
|
||
i,
|
||
);
|
||
if (hasScripts)
|
||
for (
|
||
doc = scripts[scripts.length - 1].ownerDocument,
|
||
jQuery.map(
|
||
scripts,
|
||
restoreScript
|
||
),
|
||
i = 0;
|
||
i < hasScripts;
|
||
i++
|
||
)
|
||
(node = scripts[i]),
|
||
rscriptType.test(
|
||
node.type || ""
|
||
) &&
|
||
!jQuery._data(
|
||
node,
|
||
"globalEval"
|
||
) &&
|
||
jQuery.contains(
|
||
doc,
|
||
node
|
||
) &&
|
||
(node.src
|
||
? jQuery.ajax(
|
||
{
|
||
url: node.src,
|
||
type: "GET",
|
||
dataType: "script",
|
||
async: !1,
|
||
global: !1,
|
||
throws: !0,
|
||
}
|
||
)
|
||
: jQuery.globalEval(
|
||
(
|
||
node.text ||
|
||
node.textContent ||
|
||
node.innerHTML ||
|
||
""
|
||
).replace(
|
||
rcleanScript,
|
||
""
|
||
),
|
||
));
|
||
fragment = first = null;
|
||
}
|
||
return this;
|
||
},
|
||
}
|
||
),
|
||
jQuery.each(
|
||
{
|
||
appendTo: "append",
|
||
prependTo: "prepend",
|
||
insertBefore: "before",
|
||
insertAfter: "after",
|
||
replaceAll: "replaceWith",
|
||
},
|
||
function (
|
||
name, original
|
||
) {
|
||
jQuery.fn[name] = function (
|
||
selector
|
||
) {
|
||
for (
|
||
var elems,
|
||
i = 0,
|
||
ret = [],
|
||
insert = jQuery(
|
||
selector
|
||
),
|
||
last = insert.length - 1;
|
||
i <= last;
|
||
i++
|
||
)
|
||
(elems = i === last
|
||
? this
|
||
: this.clone(
|
||
!0
|
||
)),
|
||
jQuery(
|
||
insert[i]
|
||
)[original](
|
||
elems
|
||
),
|
||
core_push.apply(
|
||
ret,
|
||
elems.get(
|
||
)
|
||
);
|
||
return this.pushStack(
|
||
ret
|
||
);
|
||
};
|
||
},
|
||
),
|
||
jQuery.extend(
|
||
{
|
||
clone: function (
|
||
elem, dataAndEvents, deepDataAndEvents
|
||
) {
|
||
var destElements,
|
||
node,
|
||
clone,
|
||
i,
|
||
srcElements,
|
||
inPage = jQuery.contains(
|
||
elem.ownerDocument,
|
||
elem
|
||
);
|
||
if (
|
||
(jQuery.support.html5Clone ||
|
||
jQuery.isXMLDoc(
|
||
elem
|
||
) ||
|
||
!rnoshimcache.test(
|
||
"<" + elem.nodeName + ">"
|
||
)
|
||
? (clone = elem.cloneNode(
|
||
!0
|
||
))
|
||
: ((fragmentDiv.innerHTML = elem.outerHTML),
|
||
fragmentDiv.removeChild(
|
||
(clone = fragmentDiv.firstChild)
|
||
)),
|
||
!(
|
||
(jQuery.support.noCloneEvent && jQuery.support.noCloneChecked) ||
|
||
(1 !== elem.nodeType && 11 !== elem.nodeType) ||
|
||
jQuery.isXMLDoc(
|
||
elem
|
||
)
|
||
))
|
||
)
|
||
for (
|
||
destElements = getAll(
|
||
clone
|
||
), srcElements = getAll(
|
||
elem
|
||
), i = 0;
|
||
null != (node = srcElements[i]);
|
||
++i
|
||
)
|
||
destElements[i] && fixCloneNodeIssues(
|
||
node,
|
||
destElements[i]
|
||
);
|
||
if (dataAndEvents)
|
||
if (deepDataAndEvents)
|
||
for (
|
||
srcElements = srcElements || getAll(
|
||
elem
|
||
),
|
||
destElements = destElements || getAll(
|
||
clone
|
||
),
|
||
i = 0;
|
||
null != (node = srcElements[i]);
|
||
i++
|
||
)
|
||
cloneCopyEvent(
|
||
node,
|
||
destElements[i]
|
||
);
|
||
else cloneCopyEvent(
|
||
elem,
|
||
clone
|
||
);
|
||
return (
|
||
(destElements = getAll(
|
||
clone,
|
||
"script"
|
||
)).length > 0 &&
|
||
setGlobalEval(
|
||
destElements,
|
||
!inPage && getAll(
|
||
elem,
|
||
"script"
|
||
)
|
||
),
|
||
(destElements = srcElements = node = null),
|
||
clone
|
||
);
|
||
},
|
||
buildFragment: function (
|
||
elems, context, scripts, selection
|
||
) {
|
||
for (
|
||
var j,
|
||
elem,
|
||
contains,
|
||
tmp,
|
||
tag,
|
||
tbody,
|
||
wrap,
|
||
l = elems.length,
|
||
safe = createSafeFragment(
|
||
context
|
||
),
|
||
nodes = [],
|
||
i = 0;
|
||
i < l;
|
||
i++
|
||
)
|
||
if ((elem = elems[i]) || 0 === elem)
|
||
if ("object" === jQuery.type(
|
||
elem
|
||
))
|
||
jQuery.merge(
|
||
nodes,
|
||
elem.nodeType ? [elem,] : elem
|
||
);
|
||
else if (rhtml.test(
|
||
elem
|
||
)) {
|
||
for (
|
||
tmp = tmp || safe.appendChild(
|
||
context.createElement(
|
||
"div"
|
||
)
|
||
),
|
||
tag = (rtagName.exec(
|
||
elem
|
||
) || ["", "",])[1].toLowerCase(
|
||
),
|
||
wrap = wrapMap[tag] || wrapMap._default,
|
||
tmp.innerHTML =
|
||
wrap[1] + elem.replace(
|
||
rxhtmlTag,
|
||
"<$1></$2>"
|
||
) + wrap[2],
|
||
j = wrap[0];
|
||
j--;
|
||
|
||
)
|
||
tmp = tmp.lastChild;
|
||
if (
|
||
(!jQuery.support.leadingWhitespace &&
|
||
rleadingWhitespace.test(
|
||
elem
|
||
) &&
|
||
nodes.push(
|
||
context.createTextNode(
|
||
rleadingWhitespace.exec(
|
||
elem
|
||
)[0]
|
||
),
|
||
),
|
||
!jQuery.support.tbody)
|
||
)
|
||
for (
|
||
j =
|
||
(elem =
|
||
"table" !== tag || rtbody.test(
|
||
elem
|
||
)
|
||
? "<table>" !== wrap[1] || rtbody.test(
|
||
elem
|
||
)
|
||
? 0
|
||
: tmp
|
||
: tmp.firstChild) && elem.childNodes.length;
|
||
j--;
|
||
|
||
)
|
||
jQuery.nodeName(
|
||
(tbody = elem.childNodes[j]),
|
||
"tbody"
|
||
) &&
|
||
!tbody.childNodes.length &&
|
||
elem.removeChild(
|
||
tbody
|
||
);
|
||
for (
|
||
jQuery.merge(
|
||
nodes,
|
||
tmp.childNodes
|
||
), tmp.textContent = "";
|
||
tmp.firstChild;
|
||
|
||
)
|
||
tmp.removeChild(
|
||
tmp.firstChild
|
||
);
|
||
tmp = safe.lastChild;
|
||
} else nodes.push(
|
||
context.createTextNode(
|
||
elem
|
||
)
|
||
);
|
||
for (
|
||
tmp && safe.removeChild(
|
||
tmp
|
||
),
|
||
jQuery.support.appendChecked ||
|
||
jQuery.grep(
|
||
getAll(
|
||
nodes,
|
||
"input"
|
||
),
|
||
fixDefaultChecked
|
||
),
|
||
i = 0;
|
||
(elem = nodes[i++]);
|
||
|
||
)
|
||
if (
|
||
(!selection || -1 === jQuery.inArray(
|
||
elem,
|
||
selection
|
||
)) &&
|
||
((contains = jQuery.contains(
|
||
elem.ownerDocument,
|
||
elem
|
||
)),
|
||
(tmp = getAll(
|
||
safe.appendChild(
|
||
elem
|
||
),
|
||
"script"
|
||
)),
|
||
contains && setGlobalEval(
|
||
tmp
|
||
),
|
||
scripts)
|
||
)
|
||
for (j = 0; (elem = tmp[j++]); )
|
||
rscriptType.test(
|
||
elem.type || ""
|
||
) && scripts.push(
|
||
elem
|
||
);
|
||
return (tmp = null), safe;
|
||
},
|
||
cleanData: function (
|
||
elems, acceptData
|
||
) {
|
||
for (
|
||
var elem,
|
||
type,
|
||
id,
|
||
data,
|
||
i = 0,
|
||
internalKey = jQuery.expando,
|
||
cache = jQuery.cache,
|
||
deleteExpando = jQuery.support.deleteExpando,
|
||
special = jQuery.event.special;
|
||
null != (elem = elems[i]);
|
||
i++
|
||
)
|
||
if (
|
||
(acceptData || jQuery.acceptData(
|
||
elem
|
||
)) &&
|
||
(data = (id = elem[internalKey]) && cache[id])
|
||
) {
|
||
if (data.events)
|
||
for (type in data.events)
|
||
special[type]
|
||
? jQuery.event.remove(
|
||
elem,
|
||
type
|
||
)
|
||
: jQuery.removeEvent(
|
||
elem,
|
||
type,
|
||
data.handle
|
||
);
|
||
cache[id] &&
|
||
(delete cache[id],
|
||
deleteExpando
|
||
? delete elem[internalKey]
|
||
: void 0 !== elem.removeAttribute
|
||
? elem.removeAttribute(
|
||
internalKey
|
||
)
|
||
: (elem[internalKey] = null),
|
||
core_deletedIds.push(
|
||
id
|
||
));
|
||
}
|
||
},
|
||
}
|
||
);
|
||
var iframe,
|
||
getStyles,
|
||
curCSS,
|
||
ralpha = /alpha\([^)]*\)/i,
|
||
ropacity = /opacity\s*=\s*([^)]*)/,
|
||
rposition = /^(top|right|bottom|left)$/,
|
||
rdisplayswap = /^(none|table(?!-c[ea]).+)/,
|
||
rmargin = /^margin/,
|
||
rnumsplit = new RegExp(
|
||
"^(" + core_pnum + ")(.*)$",
|
||
"i"
|
||
),
|
||
rnumnonpx = new RegExp(
|
||
"^(" + core_pnum + ")(?!px)[a-z%]+$",
|
||
"i"
|
||
),
|
||
rrelNum = new RegExp(
|
||
"^([+-])=(" + core_pnum + ")",
|
||
"i"
|
||
),
|
||
elemdisplay = {
|
||
BODY: "block",
|
||
},
|
||
cssShow = {
|
||
position: "absolute",
|
||
visibility: "hidden",
|
||
display: "block",
|
||
},
|
||
cssNormalTransform = {
|
||
letterSpacing: 0,
|
||
fontWeight: 400,
|
||
},
|
||
cssExpand = ["Top", "Right", "Bottom", "Left",],
|
||
cssPrefixes = ["Webkit", "O", "Moz", "ms",];
|
||
function vendorPropName(
|
||
style, name
|
||
) {
|
||
if (name in style) return name;
|
||
for (
|
||
var capName = name.charAt(
|
||
0
|
||
).toUpperCase(
|
||
) + name.slice(
|
||
1
|
||
),
|
||
origName = name,
|
||
i = cssPrefixes.length;
|
||
i--;
|
||
|
||
)
|
||
if ((name = cssPrefixes[i] + capName) in style) return name;
|
||
return origName;
|
||
}
|
||
function isHidden(
|
||
elem, el
|
||
) {
|
||
return (
|
||
(elem = el || elem),
|
||
"none" === jQuery.css(
|
||
elem,
|
||
"display"
|
||
) ||
|
||
!jQuery.contains(
|
||
elem.ownerDocument,
|
||
elem
|
||
)
|
||
);
|
||
}
|
||
function showHide(
|
||
elements, show
|
||
) {
|
||
for (
|
||
var display,
|
||
elem,
|
||
hidden,
|
||
values = [],
|
||
index = 0,
|
||
length = elements.length;
|
||
index < length;
|
||
index++
|
||
)
|
||
(elem = elements[index]).style &&
|
||
((values[index] = jQuery._data(
|
||
elem,
|
||
"olddisplay"
|
||
)),
|
||
(display = elem.style.display),
|
||
show
|
||
? (values[index] || "none" !== display || (elem.style.display = ""),
|
||
"" === elem.style.display &&
|
||
isHidden(
|
||
elem
|
||
) &&
|
||
(values[index] = jQuery._data(
|
||
elem,
|
||
"olddisplay",
|
||
css_defaultDisplay(
|
||
elem.nodeName
|
||
),
|
||
)))
|
||
: values[index] ||
|
||
((hidden = isHidden(
|
||
elem
|
||
)),
|
||
((display && "none" !== display) || !hidden) &&
|
||
jQuery._data(
|
||
elem,
|
||
"olddisplay",
|
||
hidden
|
||
? display
|
||
: jQuery.css(
|
||
elem,
|
||
"display"
|
||
),
|
||
)));
|
||
for (index = 0; index < length; index++)
|
||
(elem = elements[index]).style &&
|
||
((show && "none" !== elem.style.display && "" !== elem.style.display) ||
|
||
(elem.style.display = show ? values[index] || "" : "none"));
|
||
return elements;
|
||
}
|
||
function setPositiveNumber(
|
||
elem, value, subtract
|
||
) {
|
||
var matches = rnumsplit.exec(
|
||
value
|
||
);
|
||
return matches
|
||
? Math.max(
|
||
0,
|
||
matches[1] - (subtract || 0)
|
||
) + (matches[2] || "px")
|
||
: value;
|
||
}
|
||
function augmentWidthOrHeight(
|
||
elem, name, extra, isBorderBox, styles
|
||
) {
|
||
for (
|
||
var i =
|
||
extra === (isBorderBox ? "border" : "content")
|
||
? 4
|
||
: "width" === name
|
||
? 1
|
||
: 0,
|
||
val = 0;
|
||
i < 4;
|
||
i += 2
|
||
)
|
||
"margin" === extra &&
|
||
(val += jQuery.css(
|
||
elem,
|
||
extra + cssExpand[i],
|
||
!0,
|
||
styles
|
||
)),
|
||
isBorderBox
|
||
? ("content" === extra &&
|
||
(val -= jQuery.css(
|
||
elem,
|
||
"padding" + cssExpand[i],
|
||
!0,
|
||
styles
|
||
)),
|
||
"margin" !== extra &&
|
||
(val -= jQuery.css(
|
||
elem,
|
||
"border" + cssExpand[i] + "Width",
|
||
!0,
|
||
styles,
|
||
)))
|
||
: ((val += jQuery.css(
|
||
elem,
|
||
"padding" + cssExpand[i],
|
||
!0,
|
||
styles
|
||
)),
|
||
"padding" !== extra &&
|
||
(val += jQuery.css(
|
||
elem,
|
||
"border" + cssExpand[i] + "Width",
|
||
!0,
|
||
styles,
|
||
)));
|
||
return val;
|
||
}
|
||
function getWidthOrHeight(
|
||
elem, name, extra
|
||
) {
|
||
var valueIsBorderBox = !0,
|
||
val = "width" === name ? elem.offsetWidth : elem.offsetHeight,
|
||
styles = getStyles(
|
||
elem
|
||
),
|
||
isBorderBox =
|
||
jQuery.support.boxSizing &&
|
||
"border-box" === jQuery.css(
|
||
elem,
|
||
"boxSizing",
|
||
!1,
|
||
styles
|
||
);
|
||
if (val <= 0 || null == val) {
|
||
if (
|
||
(((val = curCSS(
|
||
elem,
|
||
name,
|
||
styles
|
||
)) < 0 || null == val) &&
|
||
(val = elem.style[name]),
|
||
rnumnonpx.test(
|
||
val
|
||
))
|
||
)
|
||
return val;
|
||
(valueIsBorderBox =
|
||
isBorderBox &&
|
||
(jQuery.support.boxSizingReliable || val === elem.style[name])),
|
||
(val = parseFloat(
|
||
val
|
||
) || 0);
|
||
}
|
||
return (
|
||
val +
|
||
augmentWidthOrHeight(
|
||
elem,
|
||
name,
|
||
extra || (isBorderBox ? "border" : "content"),
|
||
valueIsBorderBox,
|
||
styles,
|
||
) +
|
||
"px"
|
||
);
|
||
}
|
||
function css_defaultDisplay(
|
||
nodeName
|
||
) {
|
||
var doc = document,
|
||
display = elemdisplay[nodeName];
|
||
return (
|
||
display ||
|
||
(("none" !== (display = actualDisplay(
|
||
nodeName,
|
||
doc
|
||
)) && display) ||
|
||
((doc = (
|
||
(iframe = (
|
||
iframe ||
|
||
jQuery(
|
||
"<iframe frameborder='0' width='0' height='0'/>"
|
||
).css(
|
||
"cssText",
|
||
"display:block !important",
|
||
)
|
||
).appendTo(
|
||
doc.documentElement
|
||
))[0].contentWindow ||
|
||
iframe[0].contentDocument
|
||
).document).write(
|
||
"<!doctype html><html><body>"
|
||
),
|
||
doc.close(
|
||
),
|
||
(display = actualDisplay(
|
||
nodeName,
|
||
doc
|
||
)),
|
||
iframe.detach(
|
||
)),
|
||
(elemdisplay[nodeName] = display)),
|
||
display
|
||
);
|
||
}
|
||
function actualDisplay(
|
||
name, doc
|
||
) {
|
||
var elem = jQuery(
|
||
doc.createElement(
|
||
name
|
||
)
|
||
).appendTo(
|
||
doc.body
|
||
),
|
||
display = jQuery.css(
|
||
elem[0],
|
||
"display"
|
||
);
|
||
return elem.remove(
|
||
), display;
|
||
}
|
||
jQuery.fn.extend(
|
||
{
|
||
css: function (
|
||
name, value
|
||
) {
|
||
return jQuery.access(
|
||
this,
|
||
function (
|
||
elem, name, value
|
||
) {
|
||
var len,
|
||
styles,
|
||
map = {
|
||
},
|
||
i = 0;
|
||
if (jQuery.isArray(
|
||
name
|
||
)) {
|
||
for (styles = getStyles(
|
||
elem
|
||
), len = name.length; i < len; i++)
|
||
map[name[i]] = jQuery.css(
|
||
elem,
|
||
name[i],
|
||
!1,
|
||
styles
|
||
);
|
||
return map;
|
||
}
|
||
return undefined !== value
|
||
? jQuery.style(
|
||
elem,
|
||
name,
|
||
value
|
||
)
|
||
: jQuery.css(
|
||
elem,
|
||
name
|
||
);
|
||
},
|
||
name,
|
||
value,
|
||
arguments.length > 1,
|
||
);
|
||
},
|
||
show: function (
|
||
) {
|
||
return showHide(
|
||
this,
|
||
!0
|
||
);
|
||
},
|
||
hide: function (
|
||
) {
|
||
return showHide(
|
||
this
|
||
);
|
||
},
|
||
toggle: function (
|
||
state
|
||
) {
|
||
var bool = "boolean" == typeof state;
|
||
return this.each(
|
||
function (
|
||
) {
|
||
(bool
|
||
? state
|
||
: isHidden(
|
||
this
|
||
))
|
||
? jQuery(
|
||
this
|
||
).show(
|
||
)
|
||
: jQuery(
|
||
this
|
||
).hide(
|
||
);
|
||
}
|
||
);
|
||
},
|
||
}
|
||
),
|
||
jQuery.extend(
|
||
{
|
||
cssHooks: {
|
||
opacity: {
|
||
get: function (
|
||
elem, computed
|
||
) {
|
||
if (computed) {
|
||
var ret = curCSS(
|
||
elem,
|
||
"opacity"
|
||
);
|
||
return "" === ret ? "1" : ret;
|
||
}
|
||
},
|
||
},
|
||
},
|
||
cssNumber: {
|
||
columnCount: !0,
|
||
fillOpacity: !0,
|
||
fontWeight: !0,
|
||
lineHeight: !0,
|
||
opacity: !0,
|
||
orphans: !0,
|
||
widows: !0,
|
||
zIndex: !0,
|
||
zoom: !0,
|
||
},
|
||
cssProps: {
|
||
float: jQuery.support.cssFloat ? "cssFloat" : "styleFloat",
|
||
},
|
||
style: function (
|
||
elem, name, value, extra
|
||
) {
|
||
if (elem && 3 !== elem.nodeType && 8 !== elem.nodeType && elem.style) {
|
||
var ret,
|
||
type,
|
||
hooks,
|
||
origName = jQuery.camelCase(
|
||
name
|
||
),
|
||
style = elem.style;
|
||
if (
|
||
((name =
|
||
jQuery.cssProps[origName] ||
|
||
(jQuery.cssProps[origName] = vendorPropName(
|
||
style,
|
||
origName
|
||
))),
|
||
(hooks = jQuery.cssHooks[name] || jQuery.cssHooks[origName]),
|
||
undefined === value)
|
||
)
|
||
return hooks &&
|
||
"get" in hooks &&
|
||
undefined !== (ret = hooks.get(
|
||
elem,
|
||
!1,
|
||
extra
|
||
))
|
||
? ret
|
||
: style[name];
|
||
if (
|
||
!("string" === (type = typeof value) &&
|
||
(ret = rrelNum.exec(
|
||
value
|
||
)) &&
|
||
((value =
|
||
(ret[1] + 1) * ret[2] + parseFloat(
|
||
jQuery.css(
|
||
elem,
|
||
name
|
||
)
|
||
)),
|
||
(type = "number")),
|
||
null == value ||
|
||
("number" === type && isNaN(
|
||
value
|
||
)) ||
|
||
("number" !== type ||
|
||
jQuery.cssNumber[origName] ||
|
||
(value += "px"),
|
||
jQuery.support.clearCloneStyle ||
|
||
"" !== value ||
|
||
0 !== name.indexOf(
|
||
"background"
|
||
) ||
|
||
(style[name] = "inherit"),
|
||
hooks &&
|
||
"set" in hooks &&
|
||
undefined === (value = hooks.set(
|
||
elem,
|
||
value,
|
||
extra
|
||
))))
|
||
)
|
||
try {
|
||
style[name] = value;
|
||
} catch (e) {}
|
||
}
|
||
},
|
||
css: function (
|
||
elem, name, extra, styles
|
||
) {
|
||
var num,
|
||
val,
|
||
hooks,
|
||
origName = jQuery.camelCase(
|
||
name
|
||
);
|
||
return (
|
||
(name =
|
||
jQuery.cssProps[origName] ||
|
||
(jQuery.cssProps[origName] = vendorPropName(
|
||
elem.style,
|
||
origName
|
||
))),
|
||
(hooks = jQuery.cssHooks[name] || jQuery.cssHooks[origName]) &&
|
||
"get" in hooks &&
|
||
(val = hooks.get(
|
||
elem,
|
||
!0,
|
||
extra
|
||
)),
|
||
undefined === val && (val = curCSS(
|
||
elem,
|
||
name,
|
||
styles
|
||
)),
|
||
"normal" === val &&
|
||
name in cssNormalTransform &&
|
||
(val = cssNormalTransform[name]),
|
||
"" === extra || extra
|
||
? ((num = parseFloat(
|
||
val
|
||
)),
|
||
!0 === extra || jQuery.isNumeric(
|
||
num
|
||
)
|
||
? num || 0
|
||
: val)
|
||
: val
|
||
);
|
||
},
|
||
swap: function (
|
||
elem, options, callback, args
|
||
) {
|
||
var ret,
|
||
name,
|
||
old = {
|
||
};
|
||
for (name in options)
|
||
(old[name] = elem.style[name]), (elem.style[name] = options[name]);
|
||
for (name in ((ret = callback.apply(
|
||
elem,
|
||
args || []
|
||
)), options))
|
||
elem.style[name] = old[name];
|
||
return ret;
|
||
},
|
||
}
|
||
),
|
||
window.getComputedStyle
|
||
? ((getStyles = function (
|
||
elem
|
||
) {
|
||
return window.getComputedStyle(
|
||
elem,
|
||
null
|
||
);
|
||
}),
|
||
(curCSS = function (
|
||
elem, name, _computed
|
||
) {
|
||
var width,
|
||
minWidth,
|
||
maxWidth,
|
||
computed = _computed || getStyles(
|
||
elem
|
||
),
|
||
ret = computed
|
||
? computed.getPropertyValue(
|
||
name
|
||
) || computed[name]
|
||
: undefined,
|
||
style = elem.style;
|
||
return (
|
||
computed &&
|
||
("" !== ret ||
|
||
jQuery.contains(
|
||
elem.ownerDocument,
|
||
elem
|
||
) ||
|
||
(ret = jQuery.style(
|
||
elem,
|
||
name
|
||
)),
|
||
rnumnonpx.test(
|
||
ret
|
||
) &&
|
||
rmargin.test(
|
||
name
|
||
) &&
|
||
((width = style.width),
|
||
(minWidth = style.minWidth),
|
||
(maxWidth = style.maxWidth),
|
||
(style.minWidth = style.maxWidth = style.width = ret),
|
||
(ret = computed.width),
|
||
(style.width = width),
|
||
(style.minWidth = minWidth),
|
||
(style.maxWidth = maxWidth))),
|
||
ret
|
||
);
|
||
}))
|
||
: document.documentElement.currentStyle &&
|
||
((getStyles = function (
|
||
elem
|
||
) {
|
||
return elem.currentStyle;
|
||
}),
|
||
(curCSS = function (
|
||
elem, name, _computed
|
||
) {
|
||
var left,
|
||
rs,
|
||
rsLeft,
|
||
computed = _computed || getStyles(
|
||
elem
|
||
),
|
||
ret = computed ? computed[name] : undefined,
|
||
style = elem.style;
|
||
return (
|
||
null == ret && style && style[name] && (ret = style[name]),
|
||
rnumnonpx.test(
|
||
ret
|
||
) &&
|
||
!rposition.test(
|
||
name
|
||
) &&
|
||
((left = style.left),
|
||
(rsLeft = (rs = elem.runtimeStyle) && rs.left) &&
|
||
(rs.left = elem.currentStyle.left),
|
||
(style.left = "fontSize" === name ? "1em" : ret),
|
||
(ret = style.pixelLeft + "px"),
|
||
(style.left = left),
|
||
rsLeft && (rs.left = rsLeft)),
|
||
"" === ret ? "auto" : ret
|
||
);
|
||
})),
|
||
jQuery.each(
|
||
["height", "width",],
|
||
function (
|
||
i, name
|
||
) {
|
||
jQuery.cssHooks[name] = {
|
||
get: function (
|
||
elem, computed, extra
|
||
) {
|
||
if (computed)
|
||
return 0 === elem.offsetWidth &&
|
||
rdisplayswap.test(
|
||
jQuery.css(
|
||
elem,
|
||
"display"
|
||
)
|
||
)
|
||
? jQuery.swap(
|
||
elem,
|
||
cssShow,
|
||
function (
|
||
) {
|
||
return getWidthOrHeight(
|
||
elem,
|
||
name,
|
||
extra
|
||
);
|
||
}
|
||
)
|
||
: getWidthOrHeight(
|
||
elem,
|
||
name,
|
||
extra
|
||
);
|
||
},
|
||
set: function (
|
||
elem, value, extra
|
||
) {
|
||
var styles = extra && getStyles(
|
||
elem
|
||
);
|
||
return setPositiveNumber(
|
||
0,
|
||
value,
|
||
extra
|
||
? augmentWidthOrHeight(
|
||
elem,
|
||
name,
|
||
extra,
|
||
jQuery.support.boxSizing &&
|
||
"border-box" === jQuery.css(
|
||
elem,
|
||
"boxSizing",
|
||
!1,
|
||
styles
|
||
),
|
||
styles,
|
||
)
|
||
: 0,
|
||
);
|
||
},
|
||
};
|
||
}
|
||
),
|
||
jQuery.support.opacity ||
|
||
(jQuery.cssHooks.opacity = {
|
||
get: function (
|
||
elem, computed
|
||
) {
|
||
return ropacity.test(
|
||
(computed && elem.currentStyle
|
||
? elem.currentStyle.filter
|
||
: elem.style.filter) || "",
|
||
)
|
||
? 0.01 * parseFloat(
|
||
RegExp.$1
|
||
) + ""
|
||
: computed
|
||
? "1"
|
||
: "";
|
||
},
|
||
set: function (
|
||
elem, value
|
||
) {
|
||
var style = elem.style,
|
||
currentStyle = elem.currentStyle,
|
||
opacity = jQuery.isNumeric(
|
||
value
|
||
)
|
||
? "alpha(opacity=" + 100 * value + ")"
|
||
: "",
|
||
filter =
|
||
(currentStyle && currentStyle.filter) || style.filter || "";
|
||
(style.zoom = 1),
|
||
((value >= 1 || "" === value) &&
|
||
"" === jQuery.trim(
|
||
filter.replace(
|
||
ralpha,
|
||
""
|
||
)
|
||
) &&
|
||
style.removeAttribute &&
|
||
(style.removeAttribute(
|
||
"filter"
|
||
),
|
||
"" === value || (currentStyle && !currentStyle.filter))) ||
|
||
(style.filter = ralpha.test(
|
||
filter
|
||
)
|
||
? filter.replace(
|
||
ralpha,
|
||
opacity
|
||
)
|
||
: filter + " " + opacity);
|
||
},
|
||
}),
|
||
jQuery(
|
||
function (
|
||
) {
|
||
jQuery.support.reliableMarginRight ||
|
||
(jQuery.cssHooks.marginRight = {
|
||
get: function (
|
||
elem, computed
|
||
) {
|
||
if (computed)
|
||
return jQuery.swap(
|
||
elem,
|
||
{
|
||
display: "inline-block",
|
||
},
|
||
curCSS,
|
||
[
|
||
elem,
|
||
"marginRight",
|
||
]
|
||
);
|
||
},
|
||
}),
|
||
!jQuery.support.pixelPosition &&
|
||
jQuery.fn.position &&
|
||
jQuery.each(
|
||
["top", "left",],
|
||
function (
|
||
i, prop
|
||
) {
|
||
jQuery.cssHooks[prop] = {
|
||
get: function (
|
||
elem, computed
|
||
) {
|
||
if (computed)
|
||
return (
|
||
(computed = curCSS(
|
||
elem,
|
||
prop
|
||
)),
|
||
rnumnonpx.test(
|
||
computed
|
||
)
|
||
? jQuery(
|
||
elem
|
||
).position(
|
||
)[prop] + "px"
|
||
: computed
|
||
);
|
||
},
|
||
};
|
||
}
|
||
);
|
||
}
|
||
),
|
||
jQuery.expr &&
|
||
jQuery.expr.filters &&
|
||
((jQuery.expr.filters.hidden = function (
|
||
elem
|
||
) {
|
||
return (
|
||
(elem.offsetWidth <= 0 && elem.offsetHeight <= 0) ||
|
||
(!jQuery.support.reliableHiddenOffsets &&
|
||
"none" ===
|
||
((elem.style && elem.style.display) ||
|
||
jQuery.css(
|
||
elem,
|
||
"display"
|
||
)))
|
||
);
|
||
}),
|
||
(jQuery.expr.filters.visible = function (
|
||
elem
|
||
) {
|
||
return !jQuery.expr.filters.hidden(
|
||
elem
|
||
);
|
||
})),
|
||
jQuery.each(
|
||
{
|
||
margin: "",
|
||
padding: "",
|
||
border: "Width",
|
||
},
|
||
function (
|
||
prefix, suffix
|
||
) {
|
||
(jQuery.cssHooks[prefix + suffix] = {
|
||
expand: function (
|
||
value
|
||
) {
|
||
for (
|
||
var i = 0,
|
||
expanded = {
|
||
},
|
||
parts = "string" == typeof value
|
||
? value.split(
|
||
" "
|
||
)
|
||
: [value,];
|
||
i < 4;
|
||
i++
|
||
)
|
||
expanded[prefix + cssExpand[i] + suffix] =
|
||
parts[i] || parts[i - 2] || parts[0];
|
||
return expanded;
|
||
},
|
||
}),
|
||
rmargin.test(
|
||
prefix
|
||
) ||
|
||
(jQuery.cssHooks[prefix + suffix].set = setPositiveNumber);
|
||
},
|
||
);
|
||
var r20 = /%20/g,
|
||
rbracket = /\[\]$/,
|
||
rCRLF = /\r?\n/g,
|
||
rsubmitterTypes = /^(?:submit|button|image|reset|file)$/i,
|
||
rsubmittable = /^(?:input|select|textarea|keygen)/i;
|
||
function buildParams(
|
||
prefix, obj, traditional, add
|
||
) {
|
||
var name;
|
||
if (jQuery.isArray(
|
||
obj
|
||
))
|
||
jQuery.each(
|
||
obj,
|
||
function (
|
||
i, v
|
||
) {
|
||
traditional || rbracket.test(
|
||
prefix
|
||
)
|
||
? add(
|
||
prefix,
|
||
v
|
||
)
|
||
: buildParams(
|
||
prefix + "[" + ("object" == typeof v ? i : "") + "]",
|
||
v,
|
||
traditional,
|
||
add,
|
||
);
|
||
}
|
||
);
|
||
else if (traditional || "object" !== jQuery.type(
|
||
obj
|
||
)) add(
|
||
prefix,
|
||
obj
|
||
);
|
||
else
|
||
for (name in obj)
|
||
buildParams(
|
||
prefix + "[" + name + "]",
|
||
obj[name],
|
||
traditional,
|
||
add
|
||
);
|
||
}
|
||
jQuery.fn.extend(
|
||
{
|
||
serialize: function (
|
||
) {
|
||
return jQuery.param(
|
||
this.serializeArray(
|
||
)
|
||
);
|
||
},
|
||
serializeArray: function (
|
||
) {
|
||
return this.map(
|
||
function (
|
||
) {
|
||
var elements = jQuery.prop(
|
||
this,
|
||
"elements"
|
||
);
|
||
return elements
|
||
? jQuery.makeArray(
|
||
elements
|
||
)
|
||
: this;
|
||
}
|
||
)
|
||
.filter(
|
||
function (
|
||
) {
|
||
var type = this.type;
|
||
return (
|
||
this.name &&
|
||
!jQuery(
|
||
this
|
||
).is(
|
||
":disabled"
|
||
) &&
|
||
rsubmittable.test(
|
||
this.nodeName
|
||
) &&
|
||
!rsubmitterTypes.test(
|
||
type
|
||
) &&
|
||
(this.checked || !manipulation_rcheckableType.test(
|
||
type
|
||
))
|
||
);
|
||
}
|
||
)
|
||
.map(
|
||
function (
|
||
i, elem
|
||
) {
|
||
var val = jQuery(
|
||
this
|
||
).val(
|
||
);
|
||
return null == val
|
||
? null
|
||
: jQuery.isArray(
|
||
val
|
||
)
|
||
? jQuery.map(
|
||
val,
|
||
function (
|
||
val
|
||
) {
|
||
return {
|
||
name: elem.name,
|
||
value: val.replace(
|
||
rCRLF,
|
||
"\r\n"
|
||
),
|
||
};
|
||
}
|
||
)
|
||
: {
|
||
name: elem.name,
|
||
value: val.replace(
|
||
rCRLF,
|
||
"\r\n"
|
||
),
|
||
};
|
||
}
|
||
)
|
||
.get(
|
||
);
|
||
},
|
||
}
|
||
),
|
||
(jQuery.param = function (
|
||
a, traditional
|
||
) {
|
||
var prefix,
|
||
s = [],
|
||
add = function (
|
||
key, value
|
||
) {
|
||
(value = jQuery.isFunction(
|
||
value
|
||
)
|
||
? value(
|
||
)
|
||
: null == value
|
||
? ""
|
||
: value),
|
||
(s[s.length] =
|
||
encodeURIComponent(
|
||
key
|
||
) + "=" + encodeURIComponent(
|
||
value
|
||
));
|
||
};
|
||
if (
|
||
(undefined === traditional &&
|
||
(traditional =
|
||
jQuery.ajaxSettings && jQuery.ajaxSettings.traditional),
|
||
jQuery.isArray(
|
||
a
|
||
) || (a.jquery && !jQuery.isPlainObject(
|
||
a
|
||
)))
|
||
)
|
||
jQuery.each(
|
||
a,
|
||
function (
|
||
) {
|
||
add(
|
||
this.name,
|
||
this.value
|
||
);
|
||
}
|
||
);
|
||
else for (prefix in a) buildParams(
|
||
prefix,
|
||
a[prefix],
|
||
traditional,
|
||
add
|
||
);
|
||
return s.join(
|
||
"&"
|
||
).replace(
|
||
r20,
|
||
"+"
|
||
);
|
||
}),
|
||
jQuery.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 (
|
||
i, name
|
||
) {
|
||
jQuery.fn[name] = function (
|
||
data, fn
|
||
) {
|
||
return arguments.length > 0
|
||
? this.on(
|
||
name,
|
||
null,
|
||
data,
|
||
fn
|
||
)
|
||
: this.trigger(
|
||
name
|
||
);
|
||
};
|
||
},
|
||
),
|
||
(jQuery.fn.hover = function (
|
||
fnOver, fnOut
|
||
) {
|
||
return this.mouseenter(
|
||
fnOver
|
||
).mouseleave(
|
||
fnOut || fnOver
|
||
);
|
||
});
|
||
var ajaxLocParts,
|
||
ajaxLocation,
|
||
ajax_nonce = jQuery.now(
|
||
),
|
||
ajax_rquery = /\?/,
|
||
rhash = /#.*$/,
|
||
rts = /([?&])_=[^&]*/,
|
||
rheaders = /^(.*?):[ \t]*([^\r\n]*)\r?$/gm,
|
||
rnoContent = /^(?:GET|HEAD)$/,
|
||
rprotocol = /^\/\//,
|
||
rurl = /^([\w.+-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/,
|
||
_load = jQuery.fn.load,
|
||
prefilters = {
|
||
},
|
||
transports = {
|
||
},
|
||
allTypes = "*/".concat(
|
||
"*"
|
||
);
|
||
try {
|
||
ajaxLocation = location.href;
|
||
} catch (e) {
|
||
((ajaxLocation = document.createElement(
|
||
"a"
|
||
)).href = ""),
|
||
(ajaxLocation = ajaxLocation.href);
|
||
}
|
||
function addToPrefiltersOrTransports(
|
||
structure
|
||
) {
|
||
return function (
|
||
dataTypeExpression, func
|
||
) {
|
||
"string" != typeof dataTypeExpression &&
|
||
((func = dataTypeExpression), (dataTypeExpression = "*"));
|
||
var dataType,
|
||
i = 0,
|
||
dataTypes =
|
||
dataTypeExpression.toLowerCase(
|
||
).match(
|
||
core_rnotwhite
|
||
) || [];
|
||
if (jQuery.isFunction(
|
||
func
|
||
))
|
||
for (; (dataType = dataTypes[i++]); )
|
||
"+" === dataType[0]
|
||
? ((dataType = dataType.slice(
|
||
1
|
||
) || "*"),
|
||
(structure[dataType] = structure[dataType] || []).unshift(
|
||
func
|
||
))
|
||
: (structure[dataType] = structure[dataType] || []).push(
|
||
func
|
||
);
|
||
};
|
||
}
|
||
function inspectPrefiltersOrTransports(
|
||
structure,
|
||
options,
|
||
originalOptions,
|
||
jqXHR,
|
||
) {
|
||
var inspected = {
|
||
},
|
||
seekingTransport = structure === transports;
|
||
function inspect(
|
||
dataType
|
||
) {
|
||
var selected;
|
||
return (
|
||
(inspected[dataType] = !0),
|
||
jQuery.each(
|
||
structure[dataType] || [],
|
||
function (
|
||
_, prefilterOrFactory
|
||
) {
|
||
var dataTypeOrTransport = prefilterOrFactory(
|
||
options,
|
||
originalOptions,
|
||
jqXHR,
|
||
);
|
||
return "string" != typeof dataTypeOrTransport ||
|
||
seekingTransport ||
|
||
inspected[dataTypeOrTransport]
|
||
? seekingTransport
|
||
? !(selected = dataTypeOrTransport)
|
||
: void 0
|
||
: (options.dataTypes.unshift(
|
||
dataTypeOrTransport
|
||
),
|
||
inspect(
|
||
dataTypeOrTransport
|
||
),
|
||
!1);
|
||
},
|
||
),
|
||
selected
|
||
);
|
||
}
|
||
return inspect(
|
||
options.dataTypes[0]
|
||
) || (!inspected["*"] && inspect(
|
||
"*"
|
||
));
|
||
}
|
||
function ajaxExtend(
|
||
target, src
|
||
) {
|
||
var deep,
|
||
key,
|
||
flatOptions = jQuery.ajaxSettings.flatOptions || {
|
||
};
|
||
for (key in src)
|
||
undefined !== src[key] &&
|
||
((flatOptions[key]
|
||
? target
|
||
: deep || (deep = {
|
||
}))[key] = src[key]);
|
||
return deep && jQuery.extend(
|
||
!0,
|
||
target,
|
||
deep
|
||
), target;
|
||
}
|
||
(ajaxLocParts = rurl.exec(
|
||
ajaxLocation.toLowerCase(
|
||
)
|
||
) || []),
|
||
(jQuery.fn.load = function (
|
||
url, params, callback
|
||
) {
|
||
if ("string" != typeof url && _load) return _load.apply(
|
||
this,
|
||
arguments
|
||
);
|
||
var selector,
|
||
response,
|
||
type,
|
||
self = this,
|
||
off = url.indexOf(
|
||
" "
|
||
);
|
||
return (
|
||
off >= 0 &&
|
||
((selector = url.slice(
|
||
off,
|
||
url.length
|
||
)), (url = url.slice(
|
||
0,
|
||
off
|
||
))),
|
||
jQuery.isFunction(
|
||
params
|
||
)
|
||
? ((callback = params), (params = undefined))
|
||
: params && "object" == typeof params && (type = "POST"),
|
||
self.length > 0 &&
|
||
jQuery
|
||
.ajax(
|
||
{
|
||
url: url,
|
||
type: type,
|
||
dataType: "html",
|
||
data: params,
|
||
}
|
||
)
|
||
.done(
|
||
function (
|
||
responseText
|
||
) {
|
||
(response = arguments),
|
||
self.html(
|
||
selector
|
||
? jQuery(
|
||
"<div>"
|
||
)
|
||
.append(
|
||
jQuery.parseHTML(
|
||
responseText
|
||
)
|
||
)
|
||
.find(
|
||
selector
|
||
)
|
||
: responseText,
|
||
);
|
||
}
|
||
)
|
||
.complete(
|
||
callback &&
|
||
function (
|
||
jqXHR, status
|
||
) {
|
||
self.each(
|
||
callback,
|
||
response || [jqXHR.responseText, status, jqXHR,],
|
||
);
|
||
},
|
||
),
|
||
this
|
||
);
|
||
}),
|
||
jQuery.each(
|
||
[
|
||
"ajaxStart",
|
||
"ajaxStop",
|
||
"ajaxComplete",
|
||
"ajaxError",
|
||
"ajaxSuccess",
|
||
"ajaxSend",
|
||
],
|
||
function (
|
||
i, type
|
||
) {
|
||
jQuery.fn[type] = function (
|
||
fn
|
||
) {
|
||
return this.on(
|
||
type,
|
||
fn
|
||
);
|
||
};
|
||
},
|
||
),
|
||
jQuery.each(
|
||
["get", "post",],
|
||
function (
|
||
i, method
|
||
) {
|
||
jQuery[method] = function (
|
||
url, data, callback, type
|
||
) {
|
||
return (
|
||
jQuery.isFunction(
|
||
data
|
||
) &&
|
||
((type = type || callback), (callback = data), (data = undefined)),
|
||
jQuery.ajax(
|
||
{
|
||
url: url,
|
||
type: method,
|
||
dataType: type,
|
||
data: data,
|
||
success: callback,
|
||
}
|
||
)
|
||
);
|
||
};
|
||
}
|
||
),
|
||
jQuery.extend(
|
||
{
|
||
active: 0,
|
||
lastModified: {
|
||
},
|
||
etag: {
|
||
},
|
||
ajaxSettings: {
|
||
url: ajaxLocation,
|
||
type: "GET",
|
||
isLocal: /^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(
|
||
ajaxLocParts[1],
|
||
),
|
||
global: !0,
|
||
processData: !0,
|
||
async: !0,
|
||
contentType: "application/x-www-form-urlencoded; charset=UTF-8",
|
||
accepts: {
|
||
"*": allTypes,
|
||
text: "text/plain",
|
||
html: "text/html",
|
||
xml: "application/xml, text/xml",
|
||
json: "application/json, text/javascript",
|
||
},
|
||
contents: {
|
||
xml: /xml/,
|
||
html: /html/,
|
||
json: /json/,
|
||
},
|
||
responseFields: {
|
||
xml: "responseXML",
|
||
text: "responseText",
|
||
},
|
||
converters: {
|
||
"* text": window.String,
|
||
"text html": !0,
|
||
"text json": jQuery.parseJSON,
|
||
"text xml": jQuery.parseXML,
|
||
},
|
||
flatOptions: {
|
||
url: !0,
|
||
context: !0,
|
||
},
|
||
},
|
||
ajaxSetup: function (
|
||
target, settings
|
||
) {
|
||
return settings
|
||
? ajaxExtend(
|
||
ajaxExtend(
|
||
target,
|
||
jQuery.ajaxSettings
|
||
),
|
||
settings
|
||
)
|
||
: ajaxExtend(
|
||
jQuery.ajaxSettings,
|
||
target
|
||
);
|
||
},
|
||
ajaxPrefilter: addToPrefiltersOrTransports(
|
||
prefilters
|
||
),
|
||
ajaxTransport: addToPrefiltersOrTransports(
|
||
transports
|
||
),
|
||
ajax: function (
|
||
url, options
|
||
) {
|
||
"object" == typeof url && ((options = url), (url = undefined)),
|
||
(options = options || {
|
||
});
|
||
var parts,
|
||
i,
|
||
cacheURL,
|
||
responseHeadersString,
|
||
timeoutTimer,
|
||
fireGlobals,
|
||
transport,
|
||
responseHeaders,
|
||
s = jQuery.ajaxSetup(
|
||
{
|
||
},
|
||
options
|
||
),
|
||
callbackContext = s.context || s,
|
||
globalEventContext =
|
||
s.context && (callbackContext.nodeType || callbackContext.jquery)
|
||
? jQuery(
|
||
callbackContext
|
||
)
|
||
: jQuery.event,
|
||
deferred = jQuery.Deferred(
|
||
),
|
||
completeDeferred = jQuery.Callbacks(
|
||
"once memory"
|
||
),
|
||
statusCode = s.statusCode || {
|
||
},
|
||
requestHeaders = {
|
||
},
|
||
requestHeadersNames = {
|
||
},
|
||
state = 0,
|
||
strAbort = "canceled",
|
||
jqXHR = {
|
||
readyState: 0,
|
||
getResponseHeader: function (
|
||
key
|
||
) {
|
||
var match;
|
||
if (2 === state) {
|
||
if (!responseHeaders)
|
||
for (
|
||
responseHeaders = {
|
||
};
|
||
(match = rheaders.exec(
|
||
responseHeadersString
|
||
));
|
||
|
||
)
|
||
responseHeaders[match[1].toLowerCase(
|
||
)] = match[2];
|
||
match = responseHeaders[key.toLowerCase(
|
||
)];
|
||
}
|
||
return null == match ? null : match;
|
||
},
|
||
getAllResponseHeaders: function (
|
||
) {
|
||
return 2 === state ? responseHeadersString : null;
|
||
},
|
||
setRequestHeader: function (
|
||
name, value
|
||
) {
|
||
var lname = name.toLowerCase(
|
||
);
|
||
return (
|
||
state ||
|
||
((name = requestHeadersNames[lname] =
|
||
requestHeadersNames[lname] || name),
|
||
(requestHeaders[name] = value)),
|
||
this
|
||
);
|
||
},
|
||
overrideMimeType: function (
|
||
type
|
||
) {
|
||
return state || (s.mimeType = type), this;
|
||
},
|
||
statusCode: function (
|
||
map
|
||
) {
|
||
var code;
|
||
if (map)
|
||
if (state < 2)
|
||
for (code in map)
|
||
statusCode[code] = [statusCode[code], map[code],];
|
||
else jqXHR.always(
|
||
map[jqXHR.status]
|
||
);
|
||
return this;
|
||
},
|
||
abort: function (
|
||
statusText
|
||
) {
|
||
var finalText = statusText || strAbort;
|
||
return (
|
||
transport && transport.abort(
|
||
finalText
|
||
),
|
||
done(
|
||
0,
|
||
finalText
|
||
),
|
||
this
|
||
);
|
||
},
|
||
};
|
||
if (
|
||
((deferred.promise(
|
||
jqXHR
|
||
).complete = completeDeferred.add),
|
||
(jqXHR.success = jqXHR.done),
|
||
(jqXHR.error = jqXHR.fail),
|
||
(s.url = ((url || s.url || ajaxLocation) + "")
|
||
.replace(
|
||
rhash,
|
||
""
|
||
)
|
||
.replace(
|
||
rprotocol,
|
||
ajaxLocParts[1] + "//"
|
||
)),
|
||
(s.type = options.method || options.type || s.method || s.type),
|
||
(s.dataTypes = jQuery
|
||
.trim(
|
||
s.dataType || "*"
|
||
)
|
||
.toLowerCase(
|
||
)
|
||
.match(
|
||
core_rnotwhite
|
||
) || ["",]),
|
||
null == s.crossDomain &&
|
||
((parts = rurl.exec(
|
||
s.url.toLowerCase(
|
||
)
|
||
)),
|
||
(s.crossDomain = !(
|
||
!parts ||
|
||
(parts[1] === ajaxLocParts[1] &&
|
||
parts[2] === ajaxLocParts[2] &&
|
||
(parts[3] || ("http:" === parts[1] ? 80 : 443)) ==
|
||
(ajaxLocParts[3] || ("http:" === ajaxLocParts[1] ? 80 : 443)))
|
||
))),
|
||
s.data &&
|
||
s.processData &&
|
||
"string" != typeof s.data &&
|
||
(s.data = jQuery.param(
|
||
s.data,
|
||
s.traditional
|
||
)),
|
||
inspectPrefiltersOrTransports(
|
||
prefilters,
|
||
s,
|
||
options,
|
||
jqXHR
|
||
),
|
||
2 === state)
|
||
)
|
||
return jqXHR;
|
||
for (i in ((fireGlobals = s.global) &&
|
||
0 == jQuery.active++ &&
|
||
jQuery.event.trigger(
|
||
"ajaxStart"
|
||
),
|
||
(s.type = s.type.toUpperCase(
|
||
)),
|
||
(s.hasContent = !rnoContent.test(
|
||
s.type
|
||
)),
|
||
(cacheURL = s.url),
|
||
s.hasContent ||
|
||
(s.data &&
|
||
((cacheURL = s.url +=
|
||
(ajax_rquery.test(
|
||
cacheURL
|
||
)
|
||
? "&"
|
||
: "?") + s.data),
|
||
delete s.data),
|
||
!1 === s.cache &&
|
||
(s.url = rts.test(
|
||
cacheURL
|
||
)
|
||
? cacheURL.replace(
|
||
rts,
|
||
"$1_=" + ajax_nonce++
|
||
)
|
||
: cacheURL +
|
||
(ajax_rquery.test(
|
||
cacheURL
|
||
)
|
||
? "&"
|
||
: "?") +
|
||
"_=" +
|
||
ajax_nonce++)),
|
||
s.ifModified &&
|
||
(jQuery.lastModified[cacheURL] &&
|
||
jqXHR.setRequestHeader(
|
||
"If-Modified-Since",
|
||
jQuery.lastModified[cacheURL],
|
||
),
|
||
jQuery.etag[cacheURL] &&
|
||
jqXHR.setRequestHeader(
|
||
"If-None-Match",
|
||
jQuery.etag[cacheURL]
|
||
)),
|
||
((s.data && s.hasContent && !1 !== s.contentType) ||
|
||
options.contentType) &&
|
||
jqXHR.setRequestHeader(
|
||
"Content-Type",
|
||
s.contentType
|
||
),
|
||
jqXHR.setRequestHeader(
|
||
"Accept",
|
||
s.dataTypes[0] && s.accepts[s.dataTypes[0]]
|
||
? s.accepts[s.dataTypes[0]] +
|
||
("*" !== s.dataTypes[0] ? ", " + allTypes + "; q=0.01" : "")
|
||
: s.accepts["*"],
|
||
),
|
||
s.headers))
|
||
jqXHR.setRequestHeader(
|
||
i,
|
||
s.headers[i]
|
||
);
|
||
if (
|
||
s.beforeSend &&
|
||
(!1 === s.beforeSend.call(
|
||
callbackContext,
|
||
jqXHR,
|
||
s
|
||
) || 2 === state)
|
||
)
|
||
return jqXHR.abort(
|
||
);
|
||
for (i in ((strAbort = "abort"), {
|
||
success: 1,
|
||
error: 1,
|
||
complete: 1,
|
||
}))
|
||
jqXHR[i](
|
||
s[i]
|
||
);
|
||
if (
|
||
(transport = inspectPrefiltersOrTransports(
|
||
transports,
|
||
s,
|
||
options,
|
||
jqXHR,
|
||
))
|
||
) {
|
||
(jqXHR.readyState = 1),
|
||
fireGlobals && globalEventContext.trigger(
|
||
"ajaxSend",
|
||
[jqXHR, s,]
|
||
),
|
||
s.async &&
|
||
s.timeout > 0 &&
|
||
(timeoutTimer = setTimeout(
|
||
function (
|
||
) {
|
||
jqXHR.abort(
|
||
"timeout"
|
||
);
|
||
},
|
||
s.timeout
|
||
));
|
||
try {
|
||
(state = 1), transport.send(
|
||
requestHeaders,
|
||
done
|
||
);
|
||
} catch (e) {
|
||
if (!(state < 2)) throw e;
|
||
done(
|
||
-1,
|
||
e
|
||
);
|
||
}
|
||
} else done(
|
||
-1,
|
||
"No Transport"
|
||
);
|
||
function done(
|
||
status, nativeStatusText, responses, headers
|
||
) {
|
||
var isSuccess,
|
||
success,
|
||
error,
|
||
response,
|
||
modified,
|
||
statusText = nativeStatusText;
|
||
2 !== state &&
|
||
((state = 2),
|
||
timeoutTimer && clearTimeout(
|
||
timeoutTimer
|
||
),
|
||
(transport = undefined),
|
||
(responseHeadersString = headers || ""),
|
||
(jqXHR.readyState = status > 0 ? 4 : 0),
|
||
responses &&
|
||
(response = (function (
|
||
s, jqXHR, responses
|
||
) {
|
||
var firstDataType,
|
||
ct,
|
||
finalDataType,
|
||
type,
|
||
contents = s.contents,
|
||
dataTypes = s.dataTypes,
|
||
responseFields = s.responseFields;
|
||
for (type in responseFields)
|
||
type in responses &&
|
||
(jqXHR[responseFields[type]] = responses[type]);
|
||
for (; "*" === dataTypes[0]; )
|
||
dataTypes.shift(
|
||
),
|
||
undefined === ct &&
|
||
(ct =
|
||
s.mimeType || jqXHR.getResponseHeader(
|
||
"Content-Type"
|
||
));
|
||
if (ct)
|
||
for (type in contents)
|
||
if (contents[type] && contents[type].test(
|
||
ct
|
||
)) {
|
||
dataTypes.unshift(
|
||
type
|
||
);
|
||
break;
|
||
}
|
||
if (dataTypes[0] in responses) finalDataType = dataTypes[0];
|
||
else {
|
||
for (type in responses) {
|
||
if (
|
||
!dataTypes[0] ||
|
||
s.converters[type + " " + dataTypes[0]]
|
||
) {
|
||
finalDataType = type;
|
||
break;
|
||
}
|
||
firstDataType || (firstDataType = type);
|
||
}
|
||
finalDataType = finalDataType || firstDataType;
|
||
}
|
||
if (finalDataType)
|
||
return (
|
||
finalDataType !== dataTypes[0] &&
|
||
dataTypes.unshift(
|
||
finalDataType
|
||
),
|
||
responses[finalDataType]
|
||
);
|
||
})(
|
||
s,
|
||
jqXHR,
|
||
responses
|
||
)),
|
||
(status >= 200 && status < 300) || 304 === status
|
||
? (s.ifModified &&
|
||
((modified = jqXHR.getResponseHeader(
|
||
"Last-Modified"
|
||
)) &&
|
||
(jQuery.lastModified[cacheURL] = modified),
|
||
(modified = jqXHR.getResponseHeader(
|
||
"etag"
|
||
)) &&
|
||
(jQuery.etag[cacheURL] = modified)),
|
||
204 === status
|
||
? ((isSuccess = !0), (statusText = "nocontent"))
|
||
: 304 === status
|
||
? ((isSuccess = !0), (statusText = "notmodified"))
|
||
: ((statusText = (isSuccess = (function (
|
||
s, response
|
||
) {
|
||
var conv2,
|
||
current,
|
||
conv,
|
||
tmp,
|
||
converters = {
|
||
},
|
||
i = 0,
|
||
dataTypes = s.dataTypes.slice(
|
||
),
|
||
prev = dataTypes[0];
|
||
s.dataFilter &&
|
||
(response = s.dataFilter(
|
||
response,
|
||
s.dataType
|
||
));
|
||
if (dataTypes[1])
|
||
for (conv in s.converters)
|
||
converters[conv.toLowerCase(
|
||
)] = s.converters[conv];
|
||
for (; (current = dataTypes[++i]); )
|
||
if ("*" !== current) {
|
||
if ("*" !== prev && prev !== current) {
|
||
if (
|
||
!(conv =
|
||
converters[prev + " " + current] ||
|
||
converters["* " + current])
|
||
)
|
||
for (conv2 in converters)
|
||
if (
|
||
(tmp = conv2.split(
|
||
" "
|
||
))[1] === current &&
|
||
(conv =
|
||
converters[prev + " " + tmp[0]] ||
|
||
converters["* " + tmp[0]])
|
||
) {
|
||
!0 === conv
|
||
? (conv = converters[conv2])
|
||
: !0 !== converters[conv2] &&
|
||
((current = tmp[0]),
|
||
dataTypes.splice(
|
||
i--,
|
||
0,
|
||
current
|
||
));
|
||
break;
|
||
}
|
||
if (!0 !== conv)
|
||
if (conv && s.throws) response = conv(
|
||
response
|
||
);
|
||
else
|
||
try {
|
||
response = conv(
|
||
response
|
||
);
|
||
} catch (e) {
|
||
return {
|
||
state: "parsererror",
|
||
error: conv
|
||
? e
|
||
: "No conversion from " +
|
||
prev +
|
||
" to " +
|
||
current,
|
||
};
|
||
}
|
||
}
|
||
prev = current;
|
||
}
|
||
return {
|
||
state: "success",
|
||
data: response,
|
||
};
|
||
})(
|
||
s,
|
||
response
|
||
)).state),
|
||
(success = isSuccess.data),
|
||
(isSuccess = !(error = isSuccess.error))))
|
||
: ((error = statusText),
|
||
(!status && statusText) ||
|
||
((statusText = "error"), status < 0 && (status = 0))),
|
||
(jqXHR.status = status),
|
||
(jqXHR.statusText = (nativeStatusText || statusText) + ""),
|
||
isSuccess
|
||
? deferred.resolveWith(
|
||
callbackContext,
|
||
[
|
||
success,
|
||
statusText,
|
||
jqXHR,
|
||
]
|
||
)
|
||
: deferred.rejectWith(
|
||
callbackContext,
|
||
[
|
||
jqXHR,
|
||
statusText,
|
||
error,
|
||
]
|
||
),
|
||
jqXHR.statusCode(
|
||
statusCode
|
||
),
|
||
(statusCode = undefined),
|
||
fireGlobals &&
|
||
globalEventContext.trigger(
|
||
isSuccess ? "ajaxSuccess" : "ajaxError",
|
||
[jqXHR, s, isSuccess ? success : error,],
|
||
),
|
||
completeDeferred.fireWith(
|
||
callbackContext,
|
||
[jqXHR, statusText,]
|
||
),
|
||
fireGlobals &&
|
||
(globalEventContext.trigger(
|
||
"ajaxComplete",
|
||
[jqXHR, s,]
|
||
),
|
||
--jQuery.active || jQuery.event.trigger(
|
||
"ajaxStop"
|
||
)));
|
||
}
|
||
return jqXHR;
|
||
},
|
||
getScript: function (
|
||
url, callback
|
||
) {
|
||
return jQuery.get(
|
||
url,
|
||
undefined,
|
||
callback,
|
||
"script"
|
||
);
|
||
},
|
||
getJSON: function (
|
||
url, data, callback
|
||
) {
|
||
return jQuery.get(
|
||
url,
|
||
data,
|
||
callback,
|
||
"json"
|
||
);
|
||
},
|
||
}
|
||
),
|
||
jQuery.ajaxSetup(
|
||
{
|
||
accepts: {
|
||
script:
|
||
"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript",
|
||
},
|
||
contents: {
|
||
script: /(?:java|ecma)script/,
|
||
},
|
||
converters: {
|
||
"text script": function (
|
||
text
|
||
) {
|
||
return jQuery.globalEval(
|
||
text
|
||
), text;
|
||
},
|
||
},
|
||
}
|
||
),
|
||
jQuery.ajaxPrefilter(
|
||
"script",
|
||
function (
|
||
s
|
||
) {
|
||
undefined === s.cache && (s.cache = !1),
|
||
s.crossDomain && ((s.type = "GET"), (s.global = !1));
|
||
}
|
||
),
|
||
jQuery.ajaxTransport(
|
||
"script",
|
||
function (
|
||
s
|
||
) {
|
||
if (s.crossDomain) {
|
||
var script,
|
||
head = document.head || jQuery(
|
||
"head"
|
||
)[0] || document.documentElement;
|
||
return {
|
||
send: function (
|
||
_, callback
|
||
) {
|
||
((script = document.createElement(
|
||
"script"
|
||
)).async = !0),
|
||
s.scriptCharset && (script.charset = s.scriptCharset),
|
||
(script.src = s.url),
|
||
(script.onload = script.onreadystatechange = function (
|
||
_,
|
||
isAbort,
|
||
) {
|
||
(isAbort ||
|
||
!script.readyState ||
|
||
/loaded|complete/.test(
|
||
script.readyState
|
||
)) &&
|
||
((script.onload = script.onreadystatechange = null),
|
||
script.parentNode && script.parentNode.removeChild(
|
||
script
|
||
),
|
||
(script = null),
|
||
isAbort || callback(
|
||
200,
|
||
"success"
|
||
));
|
||
}),
|
||
head.insertBefore(
|
||
script,
|
||
head.firstChild
|
||
);
|
||
},
|
||
abort: function (
|
||
) {
|
||
script && script.onload(
|
||
undefined,
|
||
!0
|
||
);
|
||
},
|
||
};
|
||
}
|
||
}
|
||
);
|
||
var oldCallbacks = [],
|
||
rjsonp = /(=)\?(?=&|$)|\?\?/;
|
||
jQuery.ajaxSetup(
|
||
{
|
||
jsonp: "callback",
|
||
jsonpCallback: function (
|
||
) {
|
||
var callback = oldCallbacks.pop(
|
||
) || jQuery.expando + "_" + ajax_nonce++;
|
||
return (this[callback] = !0), callback;
|
||
},
|
||
}
|
||
),
|
||
jQuery.ajaxPrefilter(
|
||
"json jsonp",
|
||
function (
|
||
s, originalSettings, jqXHR
|
||
) {
|
||
var callbackName,
|
||
overwritten,
|
||
responseContainer,
|
||
jsonProp =
|
||
!1 !== s.jsonp &&
|
||
(rjsonp.test(
|
||
s.url
|
||
)
|
||
? "url"
|
||
: "string" == typeof s.data &&
|
||
!(s.contentType || "").indexOf(
|
||
"application/x-www-form-urlencoded",
|
||
) &&
|
||
rjsonp.test(
|
||
s.data
|
||
) &&
|
||
"data");
|
||
if (jsonProp || "jsonp" === s.dataTypes[0])
|
||
return (
|
||
(callbackName = s.jsonpCallback = jQuery.isFunction(
|
||
s.jsonpCallback
|
||
)
|
||
? s.jsonpCallback(
|
||
)
|
||
: s.jsonpCallback),
|
||
jsonProp
|
||
? (s[jsonProp] = s[jsonProp].replace(
|
||
rjsonp,
|
||
"$1" + callbackName
|
||
))
|
||
: !1 !== s.jsonp &&
|
||
(s.url +=
|
||
(ajax_rquery.test(
|
||
s.url
|
||
)
|
||
? "&"
|
||
: "?") +
|
||
s.jsonp +
|
||
"=" +
|
||
callbackName),
|
||
(s.converters["script json"] = function (
|
||
) {
|
||
return (
|
||
responseContainer ||
|
||
jQuery.error(
|
||
callbackName + " was not called"
|
||
),
|
||
responseContainer[0]
|
||
);
|
||
}),
|
||
(s.dataTypes[0] = "json"),
|
||
(overwritten = window[callbackName]),
|
||
(window[callbackName] = function (
|
||
) {
|
||
responseContainer = arguments;
|
||
}),
|
||
jqXHR.always(
|
||
function (
|
||
) {
|
||
(window[callbackName] = overwritten),
|
||
s[callbackName] &&
|
||
((s.jsonpCallback = originalSettings.jsonpCallback),
|
||
oldCallbacks.push(
|
||
callbackName
|
||
)),
|
||
responseContainer &&
|
||
jQuery.isFunction(
|
||
overwritten
|
||
) &&
|
||
overwritten(
|
||
responseContainer[0]
|
||
),
|
||
(responseContainer = overwritten = undefined);
|
||
}
|
||
),
|
||
"script"
|
||
);
|
||
}
|
||
);
|
||
var xhrCallbacks,
|
||
xhrSupported,
|
||
xhrId = 0,
|
||
xhrOnUnloadAbort =
|
||
window.ActiveXObject &&
|
||
function (
|
||
) {
|
||
var key;
|
||
for (key in xhrCallbacks) xhrCallbacks[key](
|
||
undefined,
|
||
!0
|
||
);
|
||
};
|
||
function createStandardXHR(
|
||
) {
|
||
try {
|
||
return new window.XMLHttpRequest(
|
||
);
|
||
} catch (e) {}
|
||
}
|
||
(jQuery.ajaxSettings.xhr = window.ActiveXObject
|
||
? function (
|
||
) {
|
||
return (
|
||
(!this.isLocal && createStandardXHR(
|
||
)) ||
|
||
(function (
|
||
) {
|
||
try {
|
||
return new window.ActiveXObject(
|
||
"Microsoft.XMLHTTP"
|
||
);
|
||
} catch (e) {}
|
||
})(
|
||
)
|
||
);
|
||
}
|
||
: createStandardXHR),
|
||
(xhrSupported = jQuery.ajaxSettings.xhr(
|
||
)),
|
||
(jQuery.support.cors = !!xhrSupported && "withCredentials" in xhrSupported),
|
||
(xhrSupported = jQuery.support.ajax = !!xhrSupported) &&
|
||
jQuery.ajaxTransport(
|
||
function (
|
||
s
|
||
) {
|
||
var callback;
|
||
if (!s.crossDomain || jQuery.support.cors)
|
||
return {
|
||
send: function (
|
||
headers, complete
|
||
) {
|
||
var handle,
|
||
i,
|
||
xhr = s.xhr(
|
||
);
|
||
if (
|
||
(s.username
|
||
? xhr.open(
|
||
s.type,
|
||
s.url,
|
||
s.async,
|
||
s.username,
|
||
s.password
|
||
)
|
||
: xhr.open(
|
||
s.type,
|
||
s.url,
|
||
s.async
|
||
),
|
||
s.xhrFields)
|
||
)
|
||
for (i in s.xhrFields) xhr[i] = s.xhrFields[i];
|
||
s.mimeType &&
|
||
xhr.overrideMimeType &&
|
||
xhr.overrideMimeType(
|
||
s.mimeType
|
||
),
|
||
s.crossDomain ||
|
||
headers["X-Requested-With"] ||
|
||
(headers["X-Requested-With"] = "XMLHttpRequest");
|
||
try {
|
||
for (i in headers) xhr.setRequestHeader(
|
||
i,
|
||
headers[i]
|
||
);
|
||
} catch (err) {}
|
||
xhr.send(
|
||
(s.hasContent && s.data) || null
|
||
),
|
||
(callback = function (
|
||
_, isAbort
|
||
) {
|
||
var status, responseHeaders, statusText, responses;
|
||
try {
|
||
if (callback && (isAbort || 4 === xhr.readyState))
|
||
if (
|
||
((callback = undefined),
|
||
handle &&
|
||
((xhr.onreadystatechange = jQuery.noop),
|
||
xhrOnUnloadAbort && delete xhrCallbacks[handle]),
|
||
isAbort)
|
||
)
|
||
4 !== xhr.readyState && xhr.abort(
|
||
);
|
||
else {
|
||
(responses = {
|
||
}),
|
||
(status = xhr.status),
|
||
(responseHeaders = xhr.getAllResponseHeaders(
|
||
)),
|
||
"string" == typeof xhr.responseText &&
|
||
(responses.text = xhr.responseText);
|
||
try {
|
||
statusText = xhr.statusText;
|
||
} catch (e) {
|
||
statusText = "";
|
||
}
|
||
status || !s.isLocal || s.crossDomain
|
||
? 1223 === status && (status = 204)
|
||
: (status = responses.text ? 200 : 404);
|
||
}
|
||
} catch (firefoxAccessException) {
|
||
isAbort || complete(
|
||
-1,
|
||
firefoxAccessException
|
||
);
|
||
}
|
||
responses &&
|
||
complete(
|
||
status,
|
||
statusText,
|
||
responses,
|
||
responseHeaders
|
||
);
|
||
}),
|
||
s.async
|
||
? 4 === xhr.readyState
|
||
? setTimeout(
|
||
callback
|
||
)
|
||
: ((handle = ++xhrId),
|
||
xhrOnUnloadAbort &&
|
||
(xhrCallbacks ||
|
||
((xhrCallbacks = {
|
||
}),
|
||
jQuery(
|
||
window
|
||
).unload(
|
||
xhrOnUnloadAbort
|
||
)),
|
||
(xhrCallbacks[handle] = callback)),
|
||
(xhr.onreadystatechange = callback))
|
||
: callback(
|
||
);
|
||
},
|
||
abort: function (
|
||
) {
|
||
callback && callback(
|
||
undefined,
|
||
!0
|
||
);
|
||
},
|
||
};
|
||
}
|
||
);
|
||
var fxNow,
|
||
timerId,
|
||
rfxtypes = /^(?:toggle|show|hide)$/,
|
||
rfxnum = new RegExp(
|
||
"^(?:([+-])=|)(" + core_pnum + ")([a-z%]*)$",
|
||
"i"
|
||
),
|
||
rrun = /queueHooks$/,
|
||
animationPrefilters = [
|
||
function (
|
||
elem, props, opts
|
||
) {
|
||
var prop,
|
||
index,
|
||
length,
|
||
value,
|
||
dataShow,
|
||
toggle,
|
||
tween,
|
||
hooks,
|
||
oldfire,
|
||
anim = this,
|
||
style = elem.style,
|
||
orig = {
|
||
},
|
||
handled = [],
|
||
hidden = elem.nodeType && isHidden(
|
||
elem
|
||
);
|
||
opts.queue ||
|
||
(null == (hooks = jQuery._queueHooks(
|
||
elem,
|
||
"fx"
|
||
)).unqueued &&
|
||
((hooks.unqueued = 0),
|
||
(oldfire = hooks.empty.fire),
|
||
(hooks.empty.fire = function (
|
||
) {
|
||
hooks.unqueued || oldfire(
|
||
);
|
||
})),
|
||
hooks.unqueued++,
|
||
anim.always(
|
||
function (
|
||
) {
|
||
anim.always(
|
||
function (
|
||
) {
|
||
hooks.unqueued--,
|
||
jQuery.queue(
|
||
elem,
|
||
"fx"
|
||
).length || hooks.empty.fire(
|
||
);
|
||
}
|
||
);
|
||
}
|
||
));
|
||
1 === elem.nodeType &&
|
||
("height" in props || "width" in props) &&
|
||
((opts.overflow = [style.overflow, style.overflowX, style.overflowY,]),
|
||
"inline" === jQuery.css(
|
||
elem,
|
||
"display"
|
||
) &&
|
||
"none" === jQuery.css(
|
||
elem,
|
||
"float"
|
||
) &&
|
||
(jQuery.support.inlineBlockNeedsLayout &&
|
||
"inline" !== css_defaultDisplay(
|
||
elem.nodeName
|
||
)
|
||
? (style.zoom = 1)
|
||
: (style.display = "inline-block")));
|
||
opts.overflow &&
|
||
((style.overflow = "hidden"),
|
||
jQuery.support.shrinkWrapBlocks ||
|
||
anim.always(
|
||
function (
|
||
) {
|
||
(style.overflow = opts.overflow[0]),
|
||
(style.overflowX = opts.overflow[1]),
|
||
(style.overflowY = opts.overflow[2]);
|
||
}
|
||
));
|
||
for (index in props)
|
||
if (((value = props[index]), rfxtypes.exec(
|
||
value
|
||
))) {
|
||
if (
|
||
(delete props[index],
|
||
(toggle = toggle || "toggle" === value),
|
||
value === (hidden ? "hide" : "show"))
|
||
)
|
||
continue;
|
||
handled.push(
|
||
index
|
||
);
|
||
}
|
||
if ((length = handled.length)) {
|
||
"hidden" in
|
||
(dataShow =
|
||
jQuery._data(
|
||
elem,
|
||
"fxshow"
|
||
) ||
|
||
jQuery._data(
|
||
elem,
|
||
"fxshow",
|
||
{
|
||
}
|
||
)) && (hidden = dataShow.hidden),
|
||
toggle && (dataShow.hidden = !hidden),
|
||
hidden
|
||
? jQuery(
|
||
elem
|
||
).show(
|
||
)
|
||
: anim.done(
|
||
function (
|
||
) {
|
||
jQuery(
|
||
elem
|
||
).hide(
|
||
);
|
||
}
|
||
),
|
||
anim.done(
|
||
function (
|
||
) {
|
||
var prop;
|
||
for (prop in (jQuery._removeData(
|
||
elem,
|
||
"fxshow"
|
||
), orig))
|
||
jQuery.style(
|
||
elem,
|
||
prop,
|
||
orig[prop]
|
||
);
|
||
}
|
||
);
|
||
for (index = 0; index < length; index++)
|
||
(prop = handled[index]),
|
||
(tween = anim.createTween(
|
||
prop,
|
||
hidden ? dataShow[prop] : 0
|
||
)),
|
||
(orig[prop] = dataShow[prop] || jQuery.style(
|
||
elem,
|
||
prop
|
||
)),
|
||
prop in dataShow ||
|
||
((dataShow[prop] = tween.start),
|
||
hidden &&
|
||
((tween.end = tween.start),
|
||
(tween.start =
|
||
"width" === prop || "height" === prop ? 1 : 0)));
|
||
}
|
||
},
|
||
],
|
||
tweeners = {
|
||
"*": [
|
||
function (
|
||
prop, value
|
||
) {
|
||
var end,
|
||
unit,
|
||
tween = this.createTween(
|
||
prop,
|
||
value
|
||
),
|
||
parts = rfxnum.exec(
|
||
value
|
||
),
|
||
target = tween.cur(
|
||
),
|
||
start = +target || 0,
|
||
scale = 1,
|
||
maxIterations = 20;
|
||
if (parts) {
|
||
if (
|
||
((end = +parts[2]),
|
||
"px" !==
|
||
(unit = parts[3] || (jQuery.cssNumber[prop] ? "" : "px")) &&
|
||
start)
|
||
) {
|
||
start = jQuery.css(
|
||
tween.elem,
|
||
prop,
|
||
!0
|
||
) || end || 1;
|
||
do {
|
||
(start /= scale = scale || ".5"),
|
||
jQuery.style(
|
||
tween.elem,
|
||
prop,
|
||
start + unit
|
||
);
|
||
} while (
|
||
scale !== (scale = tween.cur(
|
||
) / target) &&
|
||
1 !== scale &&
|
||
--maxIterations
|
||
);
|
||
}
|
||
(tween.unit = unit),
|
||
(tween.start = start),
|
||
(tween.end = parts[1] ? start + (parts[1] + 1) * end : end);
|
||
}
|
||
return tween;
|
||
},
|
||
],
|
||
};
|
||
function createFxNow(
|
||
) {
|
||
return (
|
||
setTimeout(
|
||
function (
|
||
) {
|
||
fxNow = undefined;
|
||
}
|
||
),
|
||
(fxNow = jQuery.now(
|
||
))
|
||
);
|
||
}
|
||
function Animation(
|
||
elem, properties, options
|
||
) {
|
||
var result,
|
||
stopped,
|
||
index = 0,
|
||
length = animationPrefilters.length,
|
||
deferred = jQuery.Deferred(
|
||
).always(
|
||
function (
|
||
) {
|
||
delete tick.elem;
|
||
}
|
||
),
|
||
tick = function (
|
||
) {
|
||
if (stopped) return !1;
|
||
for (
|
||
var currentTime = fxNow || createFxNow(
|
||
),
|
||
remaining = Math.max(
|
||
0,
|
||
animation.startTime + animation.duration - currentTime,
|
||
),
|
||
percent = 1 - (remaining / animation.duration || 0),
|
||
index = 0,
|
||
length = animation.tweens.length;
|
||
index < length;
|
||
index++
|
||
)
|
||
animation.tweens[index].run(
|
||
percent
|
||
);
|
||
return (
|
||
deferred.notifyWith(
|
||
elem,
|
||
[animation, percent, remaining,]
|
||
),
|
||
percent < 1 && length
|
||
? remaining
|
||
: (deferred.resolveWith(
|
||
elem,
|
||
[animation,]
|
||
), !1)
|
||
);
|
||
},
|
||
animation = deferred.promise(
|
||
{
|
||
elem: elem,
|
||
props: jQuery.extend(
|
||
{
|
||
},
|
||
properties
|
||
),
|
||
opts: jQuery.extend(
|
||
!0,
|
||
{
|
||
specialEasing: {
|
||
},
|
||
},
|
||
options
|
||
),
|
||
originalProperties: properties,
|
||
originalOptions: options,
|
||
startTime: fxNow || createFxNow(
|
||
),
|
||
duration: options.duration,
|
||
tweens: [],
|
||
createTween: function (
|
||
prop, end
|
||
) {
|
||
var tween = jQuery.Tween(
|
||
elem,
|
||
animation.opts,
|
||
prop,
|
||
end,
|
||
animation.opts.specialEasing[prop] || animation.opts.easing,
|
||
);
|
||
return animation.tweens.push(
|
||
tween
|
||
), tween;
|
||
},
|
||
stop: function (
|
||
gotoEnd
|
||
) {
|
||
var index = 0,
|
||
length = gotoEnd ? animation.tweens.length : 0;
|
||
if (stopped) return this;
|
||
for (stopped = !0; index < length; index++)
|
||
animation.tweens[index].run(
|
||
1
|
||
);
|
||
return (
|
||
gotoEnd
|
||
? deferred.resolveWith(
|
||
elem,
|
||
[animation, gotoEnd,]
|
||
)
|
||
: deferred.rejectWith(
|
||
elem,
|
||
[animation, gotoEnd,]
|
||
),
|
||
this
|
||
);
|
||
},
|
||
}
|
||
),
|
||
props = animation.props;
|
||
for (
|
||
!(function (
|
||
props, specialEasing
|
||
) {
|
||
var value, name, index, easing, hooks;
|
||
for (index in props)
|
||
if (
|
||
((easing = specialEasing[(name = jQuery.camelCase(
|
||
index
|
||
))]),
|
||
(value = props[index]),
|
||
jQuery.isArray(
|
||
value
|
||
) &&
|
||
((easing = value[1]), (value = props[index] = value[0])),
|
||
index !== name && ((props[name] = value), delete props[index]),
|
||
(hooks = jQuery.cssHooks[name]) && ("expand" in hooks))
|
||
)
|
||
for (index in ((value = hooks.expand(
|
||
value
|
||
)),
|
||
delete props[name],
|
||
value))
|
||
(index in props) ||
|
||
((props[index] = value[index]),
|
||
(specialEasing[index] = easing));
|
||
else specialEasing[name] = easing;
|
||
})(
|
||
props,
|
||
animation.opts.specialEasing
|
||
);
|
||
index < length;
|
||
index++
|
||
)
|
||
if (
|
||
(result = animationPrefilters[index].call(
|
||
animation,
|
||
elem,
|
||
props,
|
||
animation.opts,
|
||
))
|
||
)
|
||
return result;
|
||
return (
|
||
(function (
|
||
animation, props
|
||
) {
|
||
jQuery.each(
|
||
props,
|
||
function (
|
||
prop, value
|
||
) {
|
||
for (
|
||
var collection = (tweeners[prop] || []).concat(
|
||
tweeners["*"]
|
||
),
|
||
index = 0,
|
||
length = collection.length;
|
||
index < length;
|
||
index++
|
||
)
|
||
if (collection[index].call(
|
||
animation,
|
||
prop,
|
||
value
|
||
)) return;
|
||
}
|
||
);
|
||
})(
|
||
animation,
|
||
props
|
||
),
|
||
jQuery.isFunction(
|
||
animation.opts.start
|
||
) &&
|
||
animation.opts.start.call(
|
||
elem,
|
||
animation
|
||
),
|
||
jQuery.fx.timer(
|
||
jQuery.extend(
|
||
tick,
|
||
{
|
||
elem: elem,
|
||
anim: animation,
|
||
queue: animation.opts.queue,
|
||
}
|
||
),
|
||
),
|
||
animation
|
||
.progress(
|
||
animation.opts.progress
|
||
)
|
||
.done(
|
||
animation.opts.done,
|
||
animation.opts.complete
|
||
)
|
||
.fail(
|
||
animation.opts.fail
|
||
)
|
||
.always(
|
||
animation.opts.always
|
||
)
|
||
);
|
||
}
|
||
function Tween(
|
||
elem, options, prop, end, easing
|
||
) {
|
||
return new Tween.prototype.init(
|
||
elem,
|
||
options,
|
||
prop,
|
||
end,
|
||
easing
|
||
);
|
||
}
|
||
function genFx(
|
||
type, includeWidth
|
||
) {
|
||
var which,
|
||
attrs = {
|
||
height: type,
|
||
},
|
||
i = 0;
|
||
for (includeWidth = includeWidth ? 1 : 0; i < 4; i += 2 - includeWidth)
|
||
attrs["margin" + (which = cssExpand[i])] = attrs[
|
||
"padding" + which
|
||
] = type;
|
||
return includeWidth && (attrs.opacity = attrs.width = type), attrs;
|
||
}
|
||
function getWindow(
|
||
elem
|
||
) {
|
||
return jQuery.isWindow(
|
||
elem
|
||
)
|
||
? elem
|
||
: 9 === elem.nodeType && (elem.defaultView || elem.parentWindow);
|
||
}
|
||
(jQuery.Animation = jQuery.extend(
|
||
Animation,
|
||
{
|
||
tweener: function (
|
||
props, callback
|
||
) {
|
||
jQuery.isFunction(
|
||
props
|
||
)
|
||
? ((callback = props), (props = ["*",]))
|
||
: (props = props.split(
|
||
" "
|
||
));
|
||
for (var prop, index = 0, length = props.length; index < length; index++)
|
||
(prop = props[index]),
|
||
(tweeners[prop] = tweeners[prop] || []),
|
||
tweeners[prop].unshift(
|
||
callback
|
||
);
|
||
},
|
||
prefilter: function (
|
||
callback, prepend
|
||
) {
|
||
prepend
|
||
? animationPrefilters.unshift(
|
||
callback
|
||
)
|
||
: animationPrefilters.push(
|
||
callback
|
||
);
|
||
},
|
||
}
|
||
)),
|
||
(jQuery.Tween = Tween),
|
||
(Tween.prototype = {
|
||
constructor: Tween,
|
||
init: function (
|
||
elem, options, prop, end, easing, unit
|
||
) {
|
||
(this.elem = elem),
|
||
(this.prop = prop),
|
||
(this.easing = easing || "swing"),
|
||
(this.options = options),
|
||
(this.start = this.now = this.cur(
|
||
)),
|
||
(this.end = end),
|
||
(this.unit = unit || (jQuery.cssNumber[prop] ? "" : "px"));
|
||
},
|
||
cur: function (
|
||
) {
|
||
var hooks = Tween.propHooks[this.prop];
|
||
return hooks && hooks.get
|
||
? hooks.get(
|
||
this
|
||
)
|
||
: Tween.propHooks._default.get(
|
||
this
|
||
);
|
||
},
|
||
run: function (
|
||
percent
|
||
) {
|
||
var eased,
|
||
hooks = Tween.propHooks[this.prop];
|
||
return (
|
||
this.options.duration
|
||
? (this.pos = eased = jQuery.easing[this.easing](
|
||
percent,
|
||
this.options.duration * percent,
|
||
0,
|
||
1,
|
||
this.options.duration,
|
||
))
|
||
: (this.pos = eased = percent),
|
||
(this.now = (this.end - this.start) * eased + this.start),
|
||
this.options.step &&
|
||
this.options.step.call(
|
||
this.elem,
|
||
this.now,
|
||
this
|
||
),
|
||
hooks && hooks.set
|
||
? hooks.set(
|
||
this
|
||
)
|
||
: Tween.propHooks._default.set(
|
||
this
|
||
),
|
||
this
|
||
);
|
||
},
|
||
}),
|
||
(Tween.prototype.init.prototype = Tween.prototype),
|
||
(Tween.propHooks = {
|
||
_default: {
|
||
get: function (
|
||
tween
|
||
) {
|
||
var result;
|
||
return null == tween.elem[tween.prop] ||
|
||
(tween.elem.style && null != tween.elem.style[tween.prop])
|
||
? (result = jQuery.css(
|
||
tween.elem,
|
||
tween.prop,
|
||
""
|
||
)) &&
|
||
"auto" !== result
|
||
? result
|
||
: 0
|
||
: tween.elem[tween.prop];
|
||
},
|
||
set: function (
|
||
tween
|
||
) {
|
||
jQuery.fx.step[tween.prop]
|
||
? jQuery.fx.step[tween.prop](
|
||
tween
|
||
)
|
||
: tween.elem.style &&
|
||
(null != tween.elem.style[jQuery.cssProps[tween.prop]] ||
|
||
jQuery.cssHooks[tween.prop])
|
||
? jQuery.style(
|
||
tween.elem,
|
||
tween.prop,
|
||
tween.now + tween.unit
|
||
)
|
||
: (tween.elem[tween.prop] = tween.now);
|
||
},
|
||
},
|
||
}),
|
||
(Tween.propHooks.scrollTop = Tween.propHooks.scrollLeft = {
|
||
set: function (
|
||
tween
|
||
) {
|
||
tween.elem.nodeType &&
|
||
tween.elem.parentNode &&
|
||
(tween.elem[tween.prop] = tween.now);
|
||
},
|
||
}),
|
||
jQuery.each(
|
||
["toggle", "show", "hide",],
|
||
function (
|
||
i, name
|
||
) {
|
||
var cssFn = jQuery.fn[name];
|
||
jQuery.fn[name] = function (
|
||
speed, easing, callback
|
||
) {
|
||
return null == speed || "boolean" == typeof speed
|
||
? cssFn.apply(
|
||
this,
|
||
arguments
|
||
)
|
||
: this.animate(
|
||
genFx(
|
||
name,
|
||
!0
|
||
),
|
||
speed,
|
||
easing,
|
||
callback
|
||
);
|
||
};
|
||
}
|
||
),
|
||
jQuery.fn.extend(
|
||
{
|
||
fadeTo: function (
|
||
speed, to, easing, callback
|
||
) {
|
||
return this.filter(
|
||
isHidden
|
||
)
|
||
.css(
|
||
"opacity",
|
||
0
|
||
)
|
||
.show(
|
||
)
|
||
.end(
|
||
)
|
||
.animate(
|
||
{
|
||
opacity: to,
|
||
},
|
||
speed,
|
||
easing,
|
||
callback
|
||
);
|
||
},
|
||
animate: function (
|
||
prop, speed, easing, callback
|
||
) {
|
||
var empty = jQuery.isEmptyObject(
|
||
prop
|
||
),
|
||
optall = jQuery.speed(
|
||
speed,
|
||
easing,
|
||
callback
|
||
),
|
||
doAnimation = function (
|
||
) {
|
||
var anim = Animation(
|
||
this,
|
||
jQuery.extend(
|
||
{
|
||
},
|
||
prop
|
||
),
|
||
optall
|
||
);
|
||
(doAnimation.finish = function (
|
||
) {
|
||
anim.stop(
|
||
!0
|
||
);
|
||
}),
|
||
(empty || jQuery._data(
|
||
this,
|
||
"finish"
|
||
)) && anim.stop(
|
||
!0
|
||
);
|
||
};
|
||
return (
|
||
(doAnimation.finish = doAnimation),
|
||
empty || !1 === optall.queue
|
||
? this.each(
|
||
doAnimation
|
||
)
|
||
: this.queue(
|
||
optall.queue,
|
||
doAnimation
|
||
)
|
||
);
|
||
},
|
||
stop: function (
|
||
type, clearQueue, gotoEnd
|
||
) {
|
||
var stopQueue = function (
|
||
hooks
|
||
) {
|
||
var stop = hooks.stop;
|
||
delete hooks.stop, stop(
|
||
gotoEnd
|
||
);
|
||
};
|
||
return (
|
||
"string" != typeof type &&
|
||
((gotoEnd = clearQueue), (clearQueue = type), (type = undefined)),
|
||
clearQueue && !1 !== type && this.queue(
|
||
type || "fx",
|
||
[]
|
||
),
|
||
this.each(
|
||
function (
|
||
) {
|
||
var dequeue = !0,
|
||
index = null != type && type + "queueHooks",
|
||
timers = jQuery.timers,
|
||
data = jQuery._data(
|
||
this
|
||
);
|
||
if (index)
|
||
data[index] && data[index].stop && stopQueue(
|
||
data[index]
|
||
);
|
||
else
|
||
for (index in data)
|
||
data[index] &&
|
||
data[index].stop &&
|
||
rrun.test(
|
||
index
|
||
) &&
|
||
stopQueue(
|
||
data[index]
|
||
);
|
||
for (index = timers.length; index--; )
|
||
timers[index].elem !== this ||
|
||
(null != type && timers[index].queue !== type) ||
|
||
(timers[index].anim.stop(
|
||
gotoEnd
|
||
),
|
||
(dequeue = !1),
|
||
timers.splice(
|
||
index,
|
||
1
|
||
));
|
||
(!dequeue && gotoEnd) || jQuery.dequeue(
|
||
this,
|
||
type
|
||
);
|
||
}
|
||
)
|
||
);
|
||
},
|
||
finish: function (
|
||
type
|
||
) {
|
||
return (
|
||
!1 !== type && (type = type || "fx"),
|
||
this.each(
|
||
function (
|
||
) {
|
||
var index,
|
||
data = jQuery._data(
|
||
this
|
||
),
|
||
queue = data[type + "queue"],
|
||
hooks = data[type + "queueHooks"],
|
||
timers = jQuery.timers,
|
||
length = queue ? queue.length : 0;
|
||
for (
|
||
data.finish = !0,
|
||
jQuery.queue(
|
||
this,
|
||
type,
|
||
[]
|
||
),
|
||
hooks &&
|
||
hooks.cur &&
|
||
hooks.cur.finish &&
|
||
hooks.cur.finish.call(
|
||
this
|
||
),
|
||
index = timers.length;
|
||
index--;
|
||
|
||
)
|
||
timers[index].elem === this &&
|
||
timers[index].queue === type &&
|
||
(timers[index].anim.stop(
|
||
!0
|
||
), timers.splice(
|
||
index,
|
||
1
|
||
));
|
||
for (index = 0; index < length; index++)
|
||
queue[index] &&
|
||
queue[index].finish &&
|
||
queue[index].finish.call(
|
||
this
|
||
);
|
||
delete data.finish;
|
||
}
|
||
)
|
||
);
|
||
},
|
||
}
|
||
),
|
||
jQuery.each(
|
||
{
|
||
slideDown: genFx(
|
||
"show"
|
||
),
|
||
slideUp: genFx(
|
||
"hide"
|
||
),
|
||
slideToggle: genFx(
|
||
"toggle"
|
||
),
|
||
fadeIn: {
|
||
opacity: "show",
|
||
},
|
||
fadeOut: {
|
||
opacity: "hide",
|
||
},
|
||
fadeToggle: {
|
||
opacity: "toggle",
|
||
},
|
||
},
|
||
function (
|
||
name, props
|
||
) {
|
||
jQuery.fn[name] = function (
|
||
speed, easing, callback
|
||
) {
|
||
return this.animate(
|
||
props,
|
||
speed,
|
||
easing,
|
||
callback
|
||
);
|
||
};
|
||
},
|
||
),
|
||
(jQuery.speed = function (
|
||
speed, easing, fn
|
||
) {
|
||
var opt =
|
||
speed && "object" == typeof speed
|
||
? jQuery.extend(
|
||
{
|
||
},
|
||
speed
|
||
)
|
||
: {
|
||
complete:
|
||
fn || (!fn && easing) || (jQuery.isFunction(
|
||
speed
|
||
) && speed),
|
||
duration: speed,
|
||
easing:
|
||
(fn && easing) ||
|
||
(easing && !jQuery.isFunction(
|
||
easing
|
||
) && easing),
|
||
};
|
||
return (
|
||
(opt.duration = jQuery.fx.off
|
||
? 0
|
||
: "number" == typeof opt.duration
|
||
? opt.duration
|
||
: opt.duration in jQuery.fx.speeds
|
||
? jQuery.fx.speeds[opt.duration]
|
||
: jQuery.fx.speeds._default),
|
||
(null != opt.queue && !0 !== opt.queue) || (opt.queue = "fx"),
|
||
(opt.old = opt.complete),
|
||
(opt.complete = function (
|
||
) {
|
||
jQuery.isFunction(
|
||
opt.old
|
||
) && opt.old.call(
|
||
this
|
||
),
|
||
opt.queue && jQuery.dequeue(
|
||
this,
|
||
opt.queue
|
||
);
|
||
}),
|
||
opt
|
||
);
|
||
}),
|
||
(jQuery.easing = {
|
||
linear: function (
|
||
p
|
||
) {
|
||
return p;
|
||
},
|
||
swing: function (
|
||
p
|
||
) {
|
||
return 0.5 - Math.cos(
|
||
p * Math.PI
|
||
) / 2;
|
||
},
|
||
}),
|
||
(jQuery.timers = []),
|
||
(jQuery.fx = Tween.prototype.init),
|
||
(jQuery.fx.tick = function (
|
||
) {
|
||
var timer,
|
||
timers = jQuery.timers,
|
||
i = 0;
|
||
for (fxNow = jQuery.now(
|
||
); i < timers.length; i++)
|
||
(timer = timers[i])(
|
||
) || timers[i] !== timer || timers.splice(
|
||
i--,
|
||
1
|
||
);
|
||
timers.length || jQuery.fx.stop(
|
||
), (fxNow = undefined);
|
||
}),
|
||
(jQuery.fx.timer = function (
|
||
timer
|
||
) {
|
||
timer(
|
||
) && jQuery.timers.push(
|
||
timer
|
||
) && jQuery.fx.start(
|
||
);
|
||
}),
|
||
(jQuery.fx.interval = 13),
|
||
(jQuery.fx.start = function (
|
||
) {
|
||
timerId || (timerId = setInterval(
|
||
jQuery.fx.tick,
|
||
jQuery.fx.interval
|
||
));
|
||
}),
|
||
(jQuery.fx.stop = function (
|
||
) {
|
||
clearInterval(
|
||
timerId
|
||
), (timerId = null);
|
||
}),
|
||
(jQuery.fx.speeds = {
|
||
slow: 600,
|
||
fast: 200,
|
||
_default: 400,
|
||
}),
|
||
(jQuery.fx.step = {
|
||
}),
|
||
jQuery.expr &&
|
||
jQuery.expr.filters &&
|
||
(jQuery.expr.filters.animated = function (
|
||
elem
|
||
) {
|
||
return jQuery.grep(
|
||
jQuery.timers,
|
||
function (
|
||
fn
|
||
) {
|
||
return elem === fn.elem;
|
||
}
|
||
).length;
|
||
}),
|
||
(jQuery.fn.offset = function (
|
||
options
|
||
) {
|
||
if (arguments.length)
|
||
return undefined === options
|
||
? this
|
||
: this.each(
|
||
function (
|
||
i
|
||
) {
|
||
jQuery.offset.setOffset(
|
||
this,
|
||
options,
|
||
i
|
||
);
|
||
}
|
||
);
|
||
var docElem,
|
||
win,
|
||
box = {
|
||
top: 0,
|
||
left: 0,
|
||
},
|
||
elem = this[0],
|
||
doc = elem && elem.ownerDocument;
|
||
return doc
|
||
? ((docElem = doc.documentElement),
|
||
jQuery.contains(
|
||
docElem,
|
||
elem
|
||
)
|
||
? (void 0 !== elem.getBoundingClientRect &&
|
||
(box = elem.getBoundingClientRect(
|
||
)),
|
||
(win = getWindow(
|
||
doc
|
||
)),
|
||
{
|
||
top:
|
||
box.top +
|
||
(win.pageYOffset || docElem.scrollTop) -
|
||
(docElem.clientTop || 0),
|
||
left:
|
||
box.left +
|
||
(win.pageXOffset || docElem.scrollLeft) -
|
||
(docElem.clientLeft || 0),
|
||
})
|
||
: box)
|
||
: void 0;
|
||
}),
|
||
(jQuery.offset = {
|
||
setOffset: function (
|
||
elem, options, i
|
||
) {
|
||
var position = jQuery.css(
|
||
elem,
|
||
"position"
|
||
);
|
||
"static" === position && (elem.style.position = "relative");
|
||
var curTop,
|
||
curLeft,
|
||
curElem = jQuery(
|
||
elem
|
||
),
|
||
curOffset = curElem.offset(
|
||
),
|
||
curCSSTop = jQuery.css(
|
||
elem,
|
||
"top"
|
||
),
|
||
curCSSLeft = jQuery.css(
|
||
elem,
|
||
"left"
|
||
),
|
||
props = {
|
||
},
|
||
curPosition = {
|
||
};
|
||
("absolute" === position || "fixed" === position) &&
|
||
jQuery.inArray(
|
||
"auto",
|
||
[curCSSTop, curCSSLeft,]
|
||
) > -1
|
||
? ((curTop = (curPosition = curElem.position(
|
||
)).top),
|
||
(curLeft = curPosition.left))
|
||
: ((curTop = parseFloat(
|
||
curCSSTop
|
||
) || 0),
|
||
(curLeft = parseFloat(
|
||
curCSSLeft
|
||
) || 0)),
|
||
jQuery.isFunction(
|
||
options
|
||
) &&
|
||
(options = options.call(
|
||
elem,
|
||
i,
|
||
curOffset
|
||
)),
|
||
null != options.top &&
|
||
(props.top = options.top - curOffset.top + curTop),
|
||
null != options.left &&
|
||
(props.left = options.left - curOffset.left + curLeft),
|
||
"using" in options
|
||
? options.using.call(
|
||
elem,
|
||
props
|
||
)
|
||
: curElem.css(
|
||
props
|
||
);
|
||
},
|
||
}),
|
||
jQuery.fn.extend(
|
||
{
|
||
position: function (
|
||
) {
|
||
if (this[0]) {
|
||
var offsetParent,
|
||
offset,
|
||
parentOffset = {
|
||
top: 0,
|
||
left: 0,
|
||
},
|
||
elem = this[0];
|
||
return (
|
||
"fixed" === jQuery.css(
|
||
elem,
|
||
"position"
|
||
)
|
||
? (offset = elem.getBoundingClientRect(
|
||
))
|
||
: ((offsetParent = this.offsetParent(
|
||
)),
|
||
(offset = this.offset(
|
||
)),
|
||
jQuery.nodeName(
|
||
offsetParent[0],
|
||
"html"
|
||
) ||
|
||
(parentOffset = offsetParent.offset(
|
||
)),
|
||
(parentOffset.top += jQuery.css(
|
||
offsetParent[0],
|
||
"borderTopWidth",
|
||
!0,
|
||
)),
|
||
(parentOffset.left += jQuery.css(
|
||
offsetParent[0],
|
||
"borderLeftWidth",
|
||
!0,
|
||
))),
|
||
{
|
||
top:
|
||
offset.top -
|
||
parentOffset.top -
|
||
jQuery.css(
|
||
elem,
|
||
"marginTop",
|
||
!0
|
||
),
|
||
left:
|
||
offset.left -
|
||
parentOffset.left -
|
||
jQuery.css(
|
||
elem,
|
||
"marginLeft",
|
||
!0
|
||
),
|
||
}
|
||
);
|
||
}
|
||
},
|
||
offsetParent: function (
|
||
) {
|
||
return this.map(
|
||
function (
|
||
) {
|
||
for (
|
||
var offsetParent = this.offsetParent || document.documentElement;
|
||
offsetParent &&
|
||
!jQuery.nodeName(
|
||
offsetParent,
|
||
"html"
|
||
) &&
|
||
"static" === jQuery.css(
|
||
offsetParent,
|
||
"position"
|
||
);
|
||
|
||
)
|
||
offsetParent = offsetParent.offsetParent;
|
||
return offsetParent || document.documentElement;
|
||
}
|
||
);
|
||
},
|
||
}
|
||
),
|
||
jQuery.each(
|
||
{
|
||
scrollLeft: "pageXOffset",
|
||
scrollTop: "pageYOffset",
|
||
},
|
||
function (
|
||
method, prop
|
||
) {
|
||
var top = /Y/.test(
|
||
prop
|
||
);
|
||
jQuery.fn[method] = function (
|
||
val
|
||
) {
|
||
return jQuery.access(
|
||
this,
|
||
function (
|
||
elem, method, val
|
||
) {
|
||
var win = getWindow(
|
||
elem
|
||
);
|
||
if (undefined === val)
|
||
return win
|
||
? prop in win
|
||
? win[prop]
|
||
: win.document.documentElement[method]
|
||
: elem[method];
|
||
win
|
||
? win.scrollTo(
|
||
top
|
||
? jQuery(
|
||
win
|
||
).scrollLeft(
|
||
)
|
||
: val,
|
||
top
|
||
? val
|
||
: jQuery(
|
||
win
|
||
).scrollTop(
|
||
),
|
||
)
|
||
: (elem[method] = val);
|
||
},
|
||
method,
|
||
val,
|
||
arguments.length,
|
||
null,
|
||
);
|
||
};
|
||
},
|
||
),
|
||
jQuery.each(
|
||
{
|
||
Height: "height",
|
||
Width: "width",
|
||
},
|
||
function (
|
||
name, type
|
||
) {
|
||
jQuery.each(
|
||
{
|
||
padding: "inner" + name,
|
||
content: type,
|
||
"": "outer" + name,
|
||
},
|
||
function (
|
||
defaultExtra, funcName
|
||
) {
|
||
jQuery.fn[funcName] = function (
|
||
margin, value
|
||
) {
|
||
var chainable =
|
||
arguments.length &&
|
||
(defaultExtra || "boolean" != typeof margin),
|
||
extra =
|
||
defaultExtra ||
|
||
(!0 === margin || !0 === value ? "margin" : "border");
|
||
return jQuery.access(
|
||
this,
|
||
function (
|
||
elem, type, value
|
||
) {
|
||
var doc;
|
||
return jQuery.isWindow(
|
||
elem
|
||
)
|
||
? elem.document.documentElement["client" + name]
|
||
: 9 === elem.nodeType
|
||
? ((doc = elem.documentElement),
|
||
Math.max(
|
||
elem.body["scroll" + name],
|
||
doc["scroll" + name],
|
||
elem.body["offset" + name],
|
||
doc["offset" + name],
|
||
doc["client" + name],
|
||
))
|
||
: undefined === value
|
||
? jQuery.css(
|
||
elem,
|
||
type,
|
||
extra
|
||
)
|
||
: jQuery.style(
|
||
elem,
|
||
type,
|
||
value,
|
||
extra
|
||
);
|
||
},
|
||
type,
|
||
chainable ? margin : undefined,
|
||
chainable,
|
||
null,
|
||
);
|
||
};
|
||
},
|
||
);
|
||
}
|
||
),
|
||
(window.jQuery = window.$ = jQuery),
|
||
"function" == typeof define &&
|
||
define.amd &&
|
||
define.amd.jQuery &&
|
||
define(
|
||
"jquery",
|
||
[],
|
||
function (
|
||
) {
|
||
return jQuery;
|
||
}
|
||
);
|
||
})(
|
||
window
|
||
);
|