目录
1.机器人智能回复接口:http://www.liulongbin.top:3006/api/robot
2.机器人语音接口:http://www.liulongbin.top:3006/api/synthesize
目标效果:
1.点击发送按钮,即可发送自己在聊天框输入的内容【空格/没输入,则不会被发送】
2.聊天机器人会回复自己发送的内容
3.机器人可以将它发送的聊天信息的语音自动播放【该接口有时行,有时不行。好的时候可以智能回应1中的内容,并读出该内容的语音】
4.在有多次对话之后,右边的滚动条会默认处于右边最下方,以显示最新的对话
5.按回车键,也可发送自己在聊天框输入的内容
更换的新接口:
1.机器人智能回复接口:http://www.liulongbin.top:3006/api/robot
2.机器人语音接口:http://www.liulongbin.top:3006/api/synthesize
e.g.1初始状态:
e.g.2用户输入牛奶:
机器人智能回复,并且读出回复内容的语音
b站黑马Ajax案例代码——聊天机器人效果.mp4
e.g.3多次对话后,右边滚动条还是在右边的最下面
重点原理:
1.jQuery中trim方法
2.jquery中append方法
3.jQuery中attr方法-设置/返回被选元素的属性值
4.通过设置 <audio> 自动播放语音
5.keyup是某个键盘按键松开触发
6.keyup是某个键盘按键松开触发
代码部分:
1.chat.js(全是重点)
-
$(
function (
) {
-
// 初始化右侧滚动条
-
// 这个方法定义在scroll.js中
-
resetui();
//resetui函数用于实现:每次发送内容之后,页面会自动滚动到最底部
-
//1.给发送按钮绑定点击事件
-
$(
'#btnSend').
on(
'click',
function (
) {
-
var text = $(
'#ipt').
val().
trim();
//trim()用于去除两端的空格
-
//(1)如果用户输入的是空格/没输入
-
if (text.
length <=
0) {
-
return $(
'#ipt').
val(
'');
//清空#ipt文本框内容
-
}
-
//(2)如果用户输入了内容,则将该内容追加至页面上显示
-
//字符串不允许回车换行,所以下一行中append后面的内容得在一行上
-
$(
'#talk_list').
append(
'<li class="right_word"><img src="img/person02.png" /><span>' + text +
'</span></li>');
-
$(
'#ipt').
val(
'');
//发送完毕后,清空#ipt文本框内容
-
//发送完毕,实现页面自动滚动到最底部
-
resetui();
-
//调用下面的getMsg函数,传递参数text给下面的text
-
getMsg(text);
-
})
-
//2.获取聊天机器人发送回来的消息
-
function
getMsg(
text1) {
//此处text1,接收上面的text参数
-
$.
ajax({
-
method:
'GET',
-
url:
'http://www.liulongbin.top:3006/api/robot',
-
data: {
-
spoken: text1
-
},
-
success:
function (
res) {
-
if (res.
message ===
'success') {
-
//接收机器人发送过来的聊天消息
-
var msg = res.
data.
info.
text;
-
$(
'#talk_list').
append(
'<li class="left_word"><img src="img/person01.png"/><span>' + msg +
'</span></li>');
-
//发送完毕,实现页面自动滚动到最底部
-
resetui();
-
//调用下面的getVoice函数,传递参数msg给下面的text2
-
getVoice(msg);
-
}
-
}
-
})
-
}
-
//3.将机器人发送的聊天信息转换为语音
-
function
getVoice(
msg1) {
//此处msg1和,接收上面的msg参数
-
$.
ajax({
-
method:
'GET',
-
url:
'http://www.liulongbin.top:3006/api/synthesize',
-
data: {
-
text: msg1
-
},
-
success:
function (
res) {
-
// console.log(res);
-
if (res.
status ===
200) {
-
//播放语音
-
$(
'#voice').
attr(
'src', res.
voiceUrl);
//给audio设置了新的src属性
-
-
}
-
}
-
-
})
-
}
-
//4.按回车键可以发送自己聊天消息内容
-
$(
'#ipt').
on(
'keyup',
function (
e) {
-
//e.key返回按键的字符串形式(ie9以上支持)
-
//用户弹起键盘的回车键的时候
-
if (e.
key ===
'Enter') {
-
//触发发送的按钮
-
$(
'#ntnSend').
click();
-
}
-
})
-
})
2.聊天机器人.html(辅助作用,用于添加<audio></audio>和查看结构)
-
<!DOCTYPE html>
-
<html lang="en">
-
-
<head>
-
<meta charset="UTF-8" />
-
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
-
<meta http-equiv="X-UA-Compatible" content="ie=edge" />
-
<link rel="stylesheet" href="css/reset.css" />
-
<link rel="stylesheet" href="css/main.css" />
-
<script type="text/javascript" src="js/jquery-1.12.4.min.js">
</script>
-
<script type="text/javascript" src="js/jquery-ui.min.js">
</script>
-
<script type="text/javascript" src="js/jquery.mousewheel.js">
</script>
-
<title>聊天机器人
</title>
-
</head>
-
-
<body>
-
<div class="wrap">
-
<!-- 头部 Header 区域 -->
-
<div class="header">
-
<h3>小思同学
</h3>
-
<img src="img/person01.png" alt="icon" />
-
</div>
-
<!-- 中间 聊天内容区域 -->
-
<div class="main">
-
<ul class="talk_list" style="top: 0px;" id="talk_list">
-
<li class="left_word">
-
<img src="img/person01.png" />
<span>嗨,最近想我了没有
</span>
-
</li>
-
<!-- <li class="right_word">
-
<img src="img/person02.png" /> <span>你好哦</span>
-
</li> -->
-
</ul>
-
<div class="drag_bar" style="display: none;">
-
<div class="drager ui-draggable ui-draggable-handle" style="display: none; height: 412.628px;">
</div>
-
</div>
-
</div>
-
<!-- 底部 消息编辑区域 -->
-
<div class="footer">
-
<img src="img/person02.png" alt="icon" />
-
<input type="text" placeholder="说的什么吧..." class="input_txt" id="ipt" />
-
<input type="button" value="发 送" class="input_sub" id="btnSend" />
-
</div>
-
</div>
-
<!-- 只要为audio指定了新的src属性,并且指定了autoplay,就会自动播放语音 -->
-
<audio src="" id="voice" autoplay style="display: none;">
</audio>
-
<!-- scroll.js用于实现:页面滚动效果 -->
-
<script type="text/javascript" src="js/scroll.js">
</script>
-
<script src="./js/chat.js">
</script>
-
</body>
-
-
</html>
3.scroll.js(辅助作用,用于实现:页面滚动效果)
-
$(
function () {
-
var
$main = $(
'.main');
-
var
$list = $(
'.talk_list');
-
var
$drager = $(
'.drager');
-
var
$mainh =
$main.
outerHeight(
false);
-
var
$listh =
$list.
outerHeight(
false);
-
-
var
$rate =
$mainh /
$listh;
-
var
$dragh =
$mainh *
$rate;
-
var
$top =
0;
-
$drager.
css({
'height':
$dragh });
-
-
$drager.
draggable({
-
containment:
"parent",
-
drag: function (ev, ui) {
-
$top = ui.position.top;
-
$list.
css({
'top': -
$top /
$rate });
-
}
-
});
-
-
$(window).
resize(function () {
-
resetui();
-
});
-
-
//var timer = null;
-
var flag =
false;
-
-
$main.
mousewheel(function(ev,delta){
-
//console.log(delta);
-
//clearTimeout(timer);
-
//timer = setTimeout(function(){
-
// 向上滚动正值,向下滚动负值
-
if(flag){
-
return;
-
}
-
-
flag =
true;
-
-
setTimeout(function(){
-
flag =
false;
-
},
300);
-
-
if(
$listh <=
$mainh){
-
return;
-
}
else{
-
if(delta>
0){
-
$top =
$top-
60;
-
if(
$top<
0){
-
$top=
0;
-
}
-
$drager.
animate({
'top':
$top },
200);
-
$list.
animate({
'top': -
$top /
$rate },
200);
-
}
else{
-
$top =
$top+
60;
-
if(
$top>(
$mainh-
$dragh)){
-
$top=
parseInt(
$mainh-
$dragh);
-
}
-
$drager.
animate({
'top':
$top },
200);
-
$list.
animate({
'top': -
parseInt(
$top /
$rate) },
200);
-
}
-
}
-
-
//},300);
-
});
-
if (
$listh <=
$mainh) {
-
$(
'.drag_bar').
hide();
-
$(
'.drager').
hide();
-
}
-
-
function resetui(){
-
$mainh =
$main.
outerHeight(
false);
-
$listh =
$list.
outerHeight(
false);
-
$rate =
$mainh /
$listh;
-
$dragh =
$mainh *
$rate;
-
$drager.
css({
'height':
$dragh });
-
-
if (
$listh <=
$mainh) {
-
$(
'.drag_bar').
hide();
-
$drager.
hide();
-
$list.
css({
'top':
0 });
-
}
else {
-
$(
'.drag_bar').
show();
-
$drager.
show();
-
$drager.
css({
'top':
$mainh-
$dragh });
-
$list.
css({
'top': -(
$listh-
$mainh) });
-
}
-
}
-
-
window.resetui = resetui;
-
})
4.jquery-1.12.4.min.js(辅助作用)
-
/*! jQuery v1.12.4 | (c) jQuery Foundation | jquery.org/license */
-
!
function(
a,b){
"object"==
typeof
module&&
"object"==
typeof
module.
exports?
module.
exports=a.
document?
b(a,!
0):
function(
a){
if(!a.
document)
throw
new
Error(
"jQuery requires a window with a document");
return
b(a)}:
b(a)}(
"undefined"!=
typeof
window?
window:
this,
function(
a,b){
var c=[],d=a.
document,e=c.
slice,f=c.
concat,g=c.
push,h=c.
indexOf,i={},j=i.
toString,k=i.
hasOwnProperty,l={},m=
"1.12.4",n=
function(
a,b){
return
new n.
fn.
init(a,b)},o=
/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,p=
/^-ms-/,q=
/-([\da-z])/gi,r=
function(
a,b){
return b.
toUpperCase()};n.
fn=n.
prototype={
jquery:m,
constructor:n,
selector:
"",
length:
0,
toArray:
function(
){
return e.
call(
this)},
get:
function(
a){
return
null!=a?
0>a?
this[a+
this.
length]:
this[a]:e.
call(
this)},
pushStack:
function(
a){
var b=n.
merge(
this.
constructor(
),a);
return b.
prevObject=
this,b.
context=
this.
context,b},
each:
function(
a){
return n.
each(
this,a)},
map:
function(
a){
return
this.
pushStack(n.
map(
this,
function(
b,c){
return a.
call(b,c,b)}))},
slice:
function(
){
return
this.
pushStack(e.
apply(
this,
arguments))},
first:
function(
){
return
this.
eq(
0)},
last:
function(
){
return
this.
eq(-
1)},
eq:
function(
a){
var b=
this.
length,c=+a+(
0>a?
b:
0);
return
this.
pushStack(c>=
0&&b>c?[
this[c]]:[])},
end:
function(
){
return
this.
prevObject||
this.
constructor(
)},
push:g,
sort:c.
sort,
splice:c.
splice},n.
extend=n.
fn.
extend=
function(
){
var a,b,c,d,e,f,g=
arguments[
0]||{},h=
1,i=
arguments.
length,j=!
1;
for(
"boolean"==
typeof g&&(j=g,g=
arguments[h]||{},h++),
"object"==
typeof g||n.
isFunction(g)||(g={}),h===i&&(g=
this,h--);i>h;h++)
if(
null!=(e=
arguments[h]))
for(d
in e)a=g[d],c=e[d],g!==c&&(j&&c&&(n.
isPlainObject(c)||(b=n.
isArray(c)))?(b?(b=!
1,f=a&&n.
isArray(a)?
a:[]):f=a&&n.
isPlainObject(a)?
a:{},g[d]=n.
extend(j,f,c)):
void
0!==c&&(g[d]=c));
return g},n.
extend({
expando:
"jQuery"+(m+
Math.
random()).
replace(
/\D/g,
""),
isReady:!
0,
error:
function(
a){
throw
new
Error(a)},
noop:
function(
){},
isFunction:
function(
a){
return
"function"===n.
type(a)},
isArray:
Array.
isArray||
function(
a){
return
"array"===n.
type(a)},
isWindow:
function(
a){
return
null!=a&&a==a.
window},
isNumeric:
function(
a){
var b=a&&a.
toString();
return!n.
isArray(a)&&b-
parseFloat(b)+
1>=
0},
isEmptyObject:
function(
a){
var b;
for(b
in a)
return!
1;
return!
0},
isPlainObject:
function(
a){
var b;
if(!a||
"object"!==n.
type(a)||a.
nodeType||n.
isWindow(a))
return!
1;
try{
if(a.
constructor&&!k.
call(a,
"constructor")&&!k.
call(a.
constructor.
prototype,
"isPrototypeOf"))
return!
1}
catch(c){
return!
1}
if(!l.
ownFirst)
for(b
in a)
return k.
call(a,b);
for(b
in a);
return
void
0===b||k.
call(a,b)},
type:
function(
a){
return
null==a?a+
"":
"object"==
typeof a||
"function"==
typeof a?i[j.
call(a)]||
"object":
typeof a},
globalEval:
function(
b){b&&n.
trim(b)&&(a.
execScript||
function(
b){a.
eval.
call(a,b)})(b)},
camelCase:
function(
a){
return a.
replace(p,
"ms-").
replace(q,r)},
nodeName:
function(
a,b){
return a.
nodeName&&a.
nodeName.
toLowerCase()===b.
toLowerCase()},
each:
function(
a,b){
var c,d=
0;
if(
s(a)){
for(c=a.
length;c>d;d++)
if(b.
call(a[d],d,a[d])===!
1)
break}
else
for(d
in a)
if(b.
call(a[d],d,a[d])===!
1)
break;
return a},
trim:
function(
a){
return
null==a?
"":(a+
"").
replace(o,
"")},
makeArray:
function(
a,b){
var c=b||[];
return
null!=a&&(
s(
Object(a))?n.
merge(c,
"string"==
typeof a?[a]:a):g.
call(c,a)),c},
inArray:
function(
a,b,c){
var d;
if(b){
if(h)
return h.
call(b,a,c);
for(d=b.
length,c=c?
0>c?
Math.
max(
0,d+c):
c:
0;d>c;c++)
if(c
in b&&b[c]===a)
return c}
return-
1},
merge:
function(
a,b){
var c=+b.
length,d=
0,e=a.
length;
while(c>d)a[e++]=b[d++];
if(c!==c)
while(
void
0!==b[d])a[e++]=b[d++];
return a.
length=e,a},
grep:
function(
a,b,c){
for(
var d,e=[],f=
0,g=a.
length,h=!c;g>f;f++)d=!
b(a[f],f),d!==h&&e.
push(a[f]);
return e},
map:
function(
a,b,c){
var d,e,g=
0,h=[];
if(
s(a))
for(d=a.
length;d>g;g++)e=
b(a[g],g,c),
null!=e&&h.
push(e);
else
for(g
in a)e=
b(a[g],g,c),
null!=e&&h.
push(e);
return f.
apply([],h)},
guid:
1,
proxy:
function(
a,b){
var c,d,f;
return
"string"==
typeof b&&(f=a[b],b=a,a=f),n.
isFunction(a)?(c=e.
call(
arguments,
2),d=
function(
){
return a.
apply(b||
this,c.
concat(e.
call(
arguments)))},d.
guid=a.
guid=a.
guid||n.
guid++,d):
void
0},
now:
function(
){
return+
new
Date},
support:l}),
"function"==
typeof
Symbol&&(n.
fn[
Symbol.
iterator]=c[
Symbol.
iterator]),n.
each(
"Boolean Number String Function Array Date RegExp Object Error Symbol".
split(
" "),
function(
a,b){i[
"[object "+b+
"]"]=b.
toLowerCase()});
function
s(
a){
var b=!!a&&
"length"
in a&&a.
length,c=n.
type(a);
return
"function"===c||n.
isWindow(a)?!
1:
"array"===c||
0===b||
"number"==
typeof b&&b>
0&&b-
1
in a}
var t=
function(
a){
var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u=
"sizzle"+
1*
new
Date,v=a.
document,w=
0,x=
0,y=
ga(),z=
ga(),A=
ga(),B=
function(
a,b){
return a===b&&(l=!
0),
0},C=
1<<
31,D={}.
hasOwnProperty,E=[],F=E.
pop,G=E.
push,H=E.
push,I=E.
slice,J=
function(
a,b){
for(
var c=
0,d=a.
length;d>c;c++)
if(a[c]===b)
return c;
return-
1},K=
"checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",L=
"[\\x20\\t\\r\\n\\f]",M=
"(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",N=
"\\["+L+
"*("+M+
")(?:"+L+
"*([*^$|!~]?=)"+L+
"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+M+
"))|)"+L+
"*\\]",O=
":("+M+
")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+N+
")*)|.*)\\)|)",P=
new
RegExp(L+
"+",
"g"),Q=
new
RegExp(
"^"+L+
"+|((?:^|[^\\\\])(?:\\\\.)*)"+L+
"+$",
"g"),R=
new
RegExp(
"^"+L+
"*,"+L+
"*"),S=
new
RegExp(
"^"+L+
"*([>+~]|"+L+
")"+L+
"*"),T=
new
RegExp(
"="+L+
"*([^\\]'\"]*?)"+L+
"*\\]",
"g"),U=
new
RegExp(O),V=
new
RegExp(
"^"+M+
"$"),W={
ID:
new
RegExp(
"^#("+M+
")"),
CLASS:
new
RegExp(
"^\\.("+M+
")"),
TAG:
new
RegExp(
"^("+M+
"|[*])"),
ATTR:
new
RegExp(
"^"+N),
PSEUDO:
new
RegExp(
"^"+O),
CHILD:
new
RegExp(
"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+L+
"*(even|odd|(([+-]|)(\\d*)n|)"+L+
"*(?:([+-]|)"+L+
"*(\\d+)|))"+L+
"*\\)|)",
"i"),
bool:
new
RegExp(
"^(?:"+K+
")$",
"i"),
needsContext:
new
RegExp(
"^"+L+
"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+L+
"*((?:-\\d)?\\d*)"+L+
"*\\)|)(?=[^-]|$)",
"i")},X=
/^(?:input|select|textarea|button)$/i,Y=
/^h\d$/i,Z=
/^[^{]+\{\s*\[native \w/,$=
/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,_=
/[+~]/,aa=
/'|\\/g,ba=
new
RegExp(
"\\\\([\\da-f]{1,6}"+L+
"?|("+L+
")|.)",
"ig"),ca=
function(
a,b,c){
var d=
"0x"+b-
65536;
return d!==d||c?
b:
0>d?
String.
fromCharCode(d+
65536):
String.
fromCharCode(d>>
10|
55296,
1023&d|
56320)},da=
function(
){
m()};
try{H.
apply(E=I.
call(v.
childNodes),v.
childNodes),E[v.
childNodes.
length].
nodeType}
catch(ea){H={
apply:E.
length?
function(
a,b){G.
apply(a,I.
call(b))}:
function(
a,b){
var c=a.
length,d=
0;
while(a[c++]=b[d++]);a.
length=c-
1}}}
function
fa(
a,b,d,e){
var f,h,j,k,l,o,r,s,w=b&&b.
ownerDocument,x=b?b.
nodeType:
9;
if(d=d||[],
"string"!=
typeof a||!a||
1!==x&&
9!==x&&
11!==x)
return d;
if(!e&&((b?b.
ownerDocument||
b:v)!==n&&
m(b),b=b||n,p)){
if(
11!==x&&(o=$.
exec(a)))
if(f=o[
1]){
if(
9===x){
if(!(j=b.
getElementById(f)))
return d;
if(j.
id===f)
return d.
push(j),d}
else
if(w&&(j=w.
getElementById(f))&&
t(b,j)&&j.
id===f)
return d.
push(j),d}
else{
if(o[
2])
return H.
apply(d,b.
getElementsByTagName(a)),d;
if((f=o[
3])&&c.
getElementsByClassName&&b.
getElementsByClassName)
return H.
apply(d,b.
getElementsByClassName(f)),d}
if(c.
qsa&&!A[a+
" "]&&(!q||!q.
test(a))){
if(
1!==x)w=b,s=a;
else
if(
"object"!==b.
nodeName.
toLowerCase()){(k=b.
getAttribute(
"id"))?k=k.
replace(aa,
"\\$&"):b.
setAttribute(
"id",k=u),r=
g(a),h=r.
length,l=V.
test(k)?
"#"+
k:
"[id='"+k+
"']";
while(h--)r[h]=l+
" "+
qa(r[h]);s=r.
join(
","),w=_.
test(a)&&
oa(b.
parentNode)||b}
if(s)
try{
return H.
apply(d,w.
querySelectorAll(s)),d}
catch(y){}
finally{k===u&&b.
removeAttribute(
"id")}}}
return
i(a.
replace(Q,
"$1"),b,d,e)}
function
ga(
){
var a=[];
function
b(
c,e){
return a.
push(c+
" ")>d.
cacheLength&&
delete b[a.
shift()],b[c+
" "]=e}
return b}
function
ha(
a){
return a[u]=!
0,a}
function
ia(
a){
var b=n.
createElement(
"div");
try{
return!!
a(b)}
catch(c){
return!
1}
finally{b.
parentNode&&b.
parentNode.
removeChild(b),b=
null}}
function
ja(
a,b){
var c=a.
split(
"|"),e=c.
length;
while(e--)d.
attrHandle[c[e]]=b}
function
ka(
a,b){
var c=b&&a,d=c&&
1===a.
nodeType&&
1===b.
nodeType&&(~b.
sourceIndex||C)-(~a.
sourceIndex||C);
if(d)
return d;
if(c)
while(c=c.
nextSibling)
if(c===b)
return-
1;
return a?
1:-
1}
function
la(
a){
return
function(
b){
var c=b.
nodeName.
toLowerCase();
return
"input"===c&&b.
type===a}}
function
ma(
a){
return
function(
b){
var c=b.
nodeName.
toLowerCase();
return(
"input"===c||
"button"===c)&&b.
type===a}}
function
na(
a){
return
ha(
function(
b){
return b=+b,
ha(
function(
c,d){
var e,f=
a([],c.
length,b),g=f.
length;
while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}
function
oa(
a){
return a&&
"undefined"!=
typeof a.
getElementsByTagName&&a}c=fa.
support={},f=fa.
isXML=
function(
a){
var b=a&&(a.
ownerDocument||a).
documentElement;
return b?
"HTML"!==b.
nodeName:!
1},m=fa.
setDocument=
function(
a){
var b,e,g=a?a.
ownerDocument||
a:v;
return g!==n&&
9===g.
nodeType&&g.
documentElement?(n=g,o=n.
documentElement,p=!
f(n),(e=n.
defaultView)&&e.
top!==e&&(e.
addEventListener?e.
addEventListener(
"unload",da,!
1):e.
attachEvent&&e.
attachEvent(
"onunload",da)),c.
attributes=
ia(
function(
a){
return a.
className=
"i",!a.
getAttribute(
"className")}),c.
getElementsByTagName=
ia(
function(
a){
return a.
appendChild(n.
createComment(
"")),!a.
getElementsByTagName(
"*").
length}),c.
getElementsByClassName=Z.
test(n.
getElementsByClassName),c.
getById=
ia(
function(
a){
return o.
appendChild(a).
id=u,!n.
getElementsByName||!n.
getElementsByName(u).
length}),c.
getById?(d.
find.
ID=
function(
a,b){
if(
"undefined"!=
typeof b.
getElementById&&p){
var c=b.
getElementById(a);
return c?[c]:[]}},d.
filter.
ID=
function(
a){
var b=a.
replace(ba,ca);
return
function(
a){
return a.
getAttribute(
"id")===b}}):(
delete d.
find.
ID,d.
filter.
ID=
function(
a){
var b=a.
replace(ba,ca);
return
function(
a){
var c=
"undefined"!=
typeof a.
getAttributeNode&&a.
getAttributeNode(
"id");
return c&&c.
value===b}}),d.
find.
TAG=c.
getElementsByTagName?
function(
a,b){
return
"undefined"!=
typeof b.
getElementsByTagName?b.
getElementsByTagName(a):c.
qsa?b.
querySelectorAll(a):
void
0}:
function(
a,b){
var c,d=[],e=
0,f=b.
getElementsByTagName(a);
if(
"*"===a){
while(c=f[e++])
1===c.
nodeType&&d.
push(c);
return d}
return f},d.
find.
CLASS=c.
getElementsByClassName&&
function(
a,b){
return
"undefined"!=
typeof b.
getElementsByClassName&&p?b.
getElementsByClassName(a):
void
0},r=[],q=[],(c.
qsa=Z.
test(n.
querySelectorAll))&&(
ia(
function(
a){o.
appendChild(a).
innerHTML=
"<a id='"+u+
"'></a><select id='"+u+
"-\r\\' msallowcapture=''><option selected=''></option></select>",a.
querySelectorAll(
"[msallowcapture^='']").
length&&q.
push(
"[*^$]="+L+
"*(?:''|\"\")"),a.
querySelectorAll(
"[selected]").
length||q.
push(
"\\["+L+
"*(?:value|"+K+
")"),a.
querySelectorAll(
"[id~="+u+
"-]").
length||q.
push(
"~="),a.
querySelectorAll(
":checked").
length||q.
push(
":checked"),a.
querySelectorAll(
"a#"+u+
"+*").
length||q.
push(
".#.+[+~]")}),
ia(
function(
a){
var b=n.
createElement(
"input");b.
setAttribute(
"type",
"hidden"),a.
appendChild(b).
setAttribute(
"name",
"D"),a.
querySelectorAll(
"[name=d]").
length&&q.
push(
"name"+L+
"*[*^$|!~]?="),a.
querySelectorAll(
":enabled").
length||q.
push(
":enabled",
":disabled"),a.
querySelectorAll(
"*,:x"),q.
push(
",.*:")})),(c.
matchesSelector=Z.
test(s=o.
matches||o.
webkitMatchesSelector||o.
mozMatchesSelector||o.
oMatchesSelector||o.
msMatchesSelector))&&
ia(
function(
a){c.
disconnectedMatch=s.
call(a,
"div"),s.
call(a,
"[s!='']:x"),r.
push(
"!=",O)}),q=q.
length&&
new
RegExp(q.
join(
"|")),r=r.
length&&
new
RegExp(r.
join(
"|")),b=Z.
test(o.
compareDocumentPosition),t=b||Z.
test(o.
contains)?
function(
a,b){
var c=
9===a.
nodeType?a.
documentElement:a,d=b&&b.
parentNode;
return a===d||!(!d||
1!==d.
nodeType||!(c.
contains?c.
contains(d):a.
compareDocumentPosition&&
16&a.
compareDocumentPosition(d)))}:
function(
a,b){
if(b)
while(b=b.
parentNode)
if(b===a)
return!
0;
return!
1},B=b?
function(
a,b){
if(a===b)
return l=!
0,
0;
var d=!a.
compareDocumentPosition-!b.
compareDocumentPosition;
return d?
d:(d=(a.
ownerDocument||a)===(b.
ownerDocument||b)?a.
compareDocumentPosition(b):
1,
1&d||!c.
sortDetached&&b.
compareDocumentPosition(a)===d?a===n||a.
ownerDocument===v&&
t(v,a)?-
1:b===n||b.
ownerDocument===v&&
t(v,b)?
1:k?
J(k,a)-
J(k,b):
0:
4&d?-
1:
1)}:
function(
a,b){
if(a===b)
return l=!
0,
0;
var c,d=
0,e=a.
parentNode,f=b.
parentNode,g=[a],h=[b];
if(!e||!f)
return a===n?-
1:b===n?
1:e?-
1:f?
1:k?
J(k,a)-
J(k,b):
0;
if(e===f)
return
ka(a,b);c=a;
while(c=c.
parentNode)g.
unshift(c);c=b;
while(c=c.
parentNode)h.
unshift(c);
while(g[d]===h[d])d++;
return d?
ka(g[d],h[d]):g[d]===v?-
1:h[d]===v?
1:
0},n):n},fa.
matches=
function(
a,b){
return
fa(a,
null,
null,b)},fa.
matchesSelector=
function(
a,b){
if((a.
ownerDocument||a)!==n&&
m(a),b=b.
replace(T,
"='$1']"),c.
matchesSelector&&p&&!A[b+
" "]&&(!r||!r.
test(b))&&(!q||!q.
test(b)))
try{
var d=s.
call(a,b);
if(d||c.
disconnectedMatch||a.
document&&
11!==a.
document.
nodeType)
return d}
catch(e){}
return
fa(b,n,
null,[a]).
length>
0},fa.
contains=
function(
a,b){
return(a.
ownerDocument||a)!==n&&
m(a),
t(a,b)},fa.
attr=
function(
a,b){(a.
ownerDocument||a)!==n&&
m(a);
var e=d.
attrHandle[b.
toLowerCase()],f=e&&D.
call(d.
attrHandle,b.
toLowerCase())?
e(a,b,!p):
void
0;
return
void
0!==f?
f:c.
attributes||!p?a.
getAttribute(b):(f=a.
getAttributeNode(b))&&f.
specified?f.
value:
null},fa.
error=
function(
a){
throw
new
Error(
"Syntax error, unrecognized expression: "+a)},fa.
uniqueSort=
function(
a){
var b,d=[],e=
0,f=
0;
if(l=!c.
detectDuplicates,k=!c.
sortStable&&a.
slice(
0),a.
sort(B),l){
while(b=a[f++])b===a[f]&&(e=d.
push(f));
while(e--)a.
splice(d[e],
1)}
return k=
null,a},e=fa.
getText=
function(
a){
var b,c=
"",d=
0,f=a.
nodeType;
if(f){
if(
1===f||
9===f||
11===f){
if(
"string"==
typeof a.
textContent)
return a.
textContent;
for(a=a.
firstChild;a;a=a.
nextSibling)c+=
e(a)}
else
if(
3===f||
4===f)
return a.
nodeValue}
else
while(b=a[d++])c+=
e(b);
return c},d=fa.
selectors={
cacheLength:
50,
createPseudo:ha,
match:W,
attrHandle:{},
find:{},
relative:{
">":{
dir:
"parentNode",
first:!
0},
" ":{
dir:
"parentNode"},
"+":{
dir:
"previousSibling",
first:!
0},
"~":{
dir:
"previousSibling"}},
preFilter:{
ATTR:
function(
a){
return a[
1]=a[
1].
replace(ba,ca),a[
3]=(a[
3]||a[
4]||a[
5]||
"").
replace(ba,ca),
"~="===a[
2]&&(a[
3]=
" "+a[
3]+
" "),a.
slice(
0,
4)},
CHILD:
function(
a){
return a[
1]=a[
1].
toLowerCase(),
"nth"===a[
1].
slice(
0,
3)?(a[
3]||fa.
error(a[
0]),a[
4]=+(a[
4]?a[
5]+(a[
6]||
1):
2*(
"even"===a[
3]||
"odd"===a[
3])),a[
5]=+(a[
7]+a[
8]||
"odd"===a[
3])):a[
3]&&fa.
error(a[
0]),a},
PSEUDO:
function(
a){
var b,c=!a[
6]&&a[
2];
return W.
CHILD.
test(a[
0])?
null:(a[
3]?a[
2]=a[
4]||a[
5]||
"":c&&U.
test(c)&&(b=
g(c,!
0))&&(b=c.
indexOf(
")",c.
length-b)-c.
length)&&(a[
0]=a[
0].
slice(
0,b),a[
2]=c.
slice(
0,b)),a.
slice(
0,
3))}},
filter:{
TAG:
function(
a){
var b=a.
replace(ba,ca).
toLowerCase();
return
"*"===a?
function(
){
return!
0}:
function(
a){
return a.
nodeName&&a.
nodeName.
toLowerCase()===b}},
CLASS:
function(
a){
var b=y[a+
" "];
return b||(b=
new
RegExp(
"(^|"+L+
")"+a+
"("+L+
"|$)"))&&
y(a,
function(
a){
return b.
test(
"string"==
typeof a.
className&&a.
className||
"undefined"!=
typeof a.
getAttribute&&a.
getAttribute(
"class")||
"")})},
ATTR:
function(
a,b,c){
return
function(
d){
var e=fa.
attr(d,a);
return
null==e?
"!="===
b:b?(e+=
"",
"="===b?e===
c:
"!="===b?e!==
c:
"^="===b?c&&
0===e.
indexOf(c):
"*="===b?c&&e.
indexOf(c)>-
1:
"$="===b?c&&e.
slice(-c.
length)===
c:
"~="===b?(
" "+e.
replace(P,
" ")+
" ").
indexOf(c)>-
1:
"|="===b?e===c||e.
slice(
0,c.
length+
1)===c+
"-":!
1):!
0}},
CHILD:
function(
a,b,c,d,e){
var f=
"nth"!==a.
slice(
0,
3),g=
"last"!==a.
slice(-
4),h=
"of-type"===b;
return
1===d&&
0===e?
function(
a){
return!!a.
parentNode}:
function(
b,c,i){
var j,k,l,m,n,o,p=f!==g?
"nextSibling":
"previousSibling",q=b.
parentNode,r=h&&b.
nodeName.
toLowerCase(),s=!i&&!h,t=!
1;
if(q){
if(f){
while(p){m=b;
while(m=m[p])
if(h?m.
nodeName.
toLowerCase()===
r:
1===m.
nodeType)
return!
1;o=p=
"only"===a&&!o&&
"nextSibling"}
return!
0}
if(o=[g?q.
firstChild:q.
lastChild],g&&s){m=q,l=m[u]||(m[u]={}),k=l[m.
uniqueID]||(l[m.
uniqueID]={}),j=k[a]||[],n=j[
0]===w&&j[
1],t=n&&j[
2],m=n&&q.
childNodes[n];
while(m=++n&&m&&m[p]||(t=n=
0)||o.
pop())
if(
1===m.
nodeType&&++t&&m===b){k[a]=[w,n,t];
break}}
else
if(s&&(m=b,l=m[u]||(m[u]={}),k=l[m.
uniqueID]||(l[m.
uniqueID]={}),j=k[a]||[],n=j[
0]===w&&j[
1],t=n),t===!
1)
while(m=++n&&m&&m[p]||(t=n=
0)||o.
pop())
if((h?m.
nodeName.
toLowerCase()===
r:
1===m.
nodeType)&&++t&&(s&&(l=m[u]||(m[u]={}),k=l[m.
uniqueID]||(l[m.
uniqueID]={}),k[a]=[w,t]),m===b))
break;
return t-=e,t===d||t%d===
0&&t/d>=
0}}},
PSEUDO:
function(
a,b){
var c,e=d.
pseudos[a]||d.
setFilters[a.
toLowerCase()]||fa.
error(
"unsupported pseudo: "+a);
return e[u]?
e(b):e.
length>
1?(c=[a,a,
"",b],d.
setFilters.
hasOwnProperty(a.
toLowerCase())?
ha(
function(
a,c){
var d,f=
e(a,b),g=f.
length;
while(g--)d=
J(a,f[g]),a[d]=!(c[d]=f[g])}):
function(
a){
return
e(a,
0,c)}):e}},
pseudos:{
not:
ha(
function(
a){
var b=[],c=[],d=
h(a.
replace(Q,
"$1"));
return d[u]?
ha(
function(
a,b,c,e){
var f,g=
d(a,
null,e,[]),h=a.
length;
while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):
function(
a,e,f){
return b[
0]=a,
d(b,
null,f,c),b[
0]=
null,!c.
pop()}}),
has:
ha(
function(
a){
return
function(
b){
return
fa(a,b).
length>
0}}),
contains:
ha(
function(
a){
return a=a.
replace(ba,ca),
function(
b){
return(b.
textContent||b.
innerText||
e(b)).
indexOf(a)>-
1}}),
lang:
ha(
function(
a){
return V.
test(a||
"")||fa.
error(
"unsupported lang: "+a),a=a.
replace(ba,ca).
toLowerCase(),
function(
b){
var c;
do
if(c=p?b.
lang:b.
getAttribute(
"xml:lang")||b.
getAttribute(
"lang"))
return c=c.
toLowerCase(),c===a||
0===c.
indexOf(a+
"-");
while((b=b.
parentNode)&&
1===b.
nodeType);
return!
1}}),
target:
function(
b){
var c=a.
location&&a.
location.
hash;
return c&&c.
slice(
1)===b.
id},
root:
function(
a){
return a===o},
focus:
function(
a){
return a===n.
activeElement&&(!n.
hasFocus||n.
hasFocus())&&!!(a.
type||a.
href||~a.
tabIndex)},
enabled:
function(
a){
return a.
disabled===!
1},
disabled:
function(
a){
return a.
disabled===!
0},
checked:
function(
a){
var b=a.
nodeName.
toLowerCase();
return
"input"===b&&!!a.
checked||
"option"===b&&!!a.
selected},
selected:
function(
a){
return a.
parentNode&&a.
parentNode.
selectedIndex,a.
selected===!
0},
empty:
function(
a){
for(a=a.
firstChild;a;a=a.
nextSibling)
if(a.
nodeType<
6)
return!
1;
return!
0},
parent:
function(
a){
return!d.
pseudos.
empty(a)},
header:
function(
a){
return Y.
test(a.
nodeName)},
input:
function(
a){
return X.
test(a.
nodeName)},
button:
function(
a){
var b=a.
nodeName.
toLowerCase();
return
"input"===b&&
"button"===a.
type||
"button"===b},
text:
function(
a){
var b;
return
"input"===a.
nodeName.
toLowerCase()&&
"text"===a.
type&&(
null==(b=a.
getAttribute(
"type"))||
"text"===b.
toLowerCase())},
first:
na(
function(
){
return[
0]}),
last:
na(
function(
a,b){
return[b-
1]}),
eq:
na(
function(
a,b,c){
return[
0>c?c+
b:c]}),
even:
na(
function(
a,b){
for(
var c=
0;b>c;c+=
2)a.
push(c);
return a}),
odd:
na(
function(
a,b){
for(
var c=
1;b>c;c+=
2)a.
push(c);
return a}),
lt:
na(
function(
a,b,c){
for(
var d=
0>c?c+
b:c;--d>=
0;)a.
push(d);
return a}),
gt:
na(
function(
a,b,c){
for(
var d=
0>c?c+
b:c;++d<b;)a.
push(d);
return a})}},d.
pseudos.
nth=d.
pseudos.
eq;
for(b
in{
radio:!
0,
checkbox:!
0,
file:!
0,
password:!
0,
image:!
0})d.
pseudos[b]=
la(b);
for(b
in{
submit:!
0,
reset:!
0})d.
pseudos[b]=
ma(b);
function
pa(
){}pa.
prototype=d.
filters=d.
pseudos,d.
setFilters=
new pa,g=fa.
tokenize=
function(
a,b){
var c,e,f,g,h,i,j,k=z[a+
" "];
if(k)
return b?
0:k.
slice(
0);h=a,i=[],j=d.
preFilter;
while(h){c&&!(e=R.
exec(h))||(e&&(h=h.
slice(e[
0].
length)||h),i.
push(f=[])),c=!
1,(e=S.
exec(h))&&(c=e.
shift(),f.
push({
value:c,
type:e[
0].
replace(Q,
" ")}),h=h.
slice(c.
length));
for(g
in d.
filter)!(e=W[g].
exec(h))||j[g]&&!(e=j[g](e))||(c=e.
shift(),f.
push({
value:c,
type:g,
matches:e}),h=h.
slice(c.
length));
if(!c)
break}
return b?h.
length:h?fa.
error(a):
z(a,i).
slice(
0)};
function
qa(
a){
for(
var b=
0,c=a.
length,d=
"";c>b;b++)d+=a[b].
value;
return d}
function
ra(
a,b,c){
var d=b.
dir,e=c&&
"parentNode"===d,f=x++;
return b.
first?
function(
b,c,f){
while(b=b[d])
if(
1===b.
nodeType||e)
return
a(b,c,f)}:
function(
b,c,g){
var h,i,j,k=[w,f];
if(g){
while(b=b[d])
if((
1===b.
nodeType||e)&&
a(b,c,g))
return!
0}
else
while(b=b[d])
if(
1===b.
nodeType||e){
if(j=b[u]||(b[u]={}),i=j[b.
uniqueID]||(j[b.
uniqueID]={}),(h=i[d])&&h[
0]===w&&h[
1]===f)
return k[
2]=h[
2];
if(i[d]=k,k[
2]=
a(b,c,g))
return!
0}}}
function
sa(
a){
return a.
length>
1?
function(
b,c,d){
var e=a.
length;
while(e--)
if(!a[e](b,c,d))
return!
1;
return!
0}:a[
0]}
function
ta(
a,b,c){
for(
var d=
0,e=b.
length;e>d;d++)
fa(a,b[d],c);
return c}
function
ua(
a,b,c,d,e){
for(
var f,g=[],h=
0,i=a.
length,j=
null!=b;i>h;h++)(f=a[h])&&(c&&!
c(f,d,e)||(g.
push(f),j&&b.
push(h)));
return g}
function
va(
a,b,c,d,e,f){
return d&&!d[u]&&(d=
va(d)),e&&!e[u]&&(e=
va(e,f)),
ha(
function(
f,g,h,i){
var j,k,l,m=[],n=[],o=g.
length,p=f||
ta(b||
"*",h.
nodeType?[h]:h,[]),q=!a||!f&&b?
p:
ua(p,m,a,h,i),r=c?e||(f?
a:o||d)?[]:
g:q;
if(c&&
c(q,r,h,i),d){j=
ua(r,n),
d(j,[],h,i),k=j.
length;
while(k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=l))}
if(f){
if(e||a){
if(e){j=[],k=r.
length;
while(k--)(l=r[k])&&j.
push(q[k]=l);
e(
null,r=[],j,i)}k=r.
length;
while(k--)(l=r[k])&&(j=e?
J(f,l):m[k])>-
1&&(f[j]=!(g[j]=l))}}
else r=
ua(r===g?r.
splice(o,r.
length):r),e?
e(
null,g,r,i):H.
apply(g,r)})}
function
wa(
a){
for(
var b,c,e,f=a.
length,g=d.
relative[a[
0].
type],h=g||d.
relative[
" "],i=g?
1:
0,k=
ra(
function(
a){
return a===b},h,!
0),l=
ra(
function(
a){
return
J(b,a)>-
1},h,!
0),m=[
function(
a,c,d){
var e=!g&&(d||c!==j)||((b=c).
nodeType?
k(a,c,d):
l(a,c,d));
return b=
null,e}];f>i;i++)
if(c=d.
relative[a[i].
type])m=[
ra(
sa(m),c)];
else{
if(c=d.
filter[a[i].
type].
apply(
null,a[i].
matches),c[u]){
for(e=++i;f>e;e++)
if(d.
relative[a[e].
type])
break;
return
va(i>
1&&
sa(m),i>
1&&
qa(a.
slice(
0,i-
1).
concat({
value:
" "===a[i-
2].
type?
"*":
""})).
replace(Q,
"$1"),c,e>i&&
wa(a.
slice(i,e)),f>e&&
wa(a=a.
slice(e)),f>e&&
qa(a))}m.
push(c)}
return
sa(m)}
function
xa(
a,b){
var c=b.
length>
0,e=a.
length>
0,f=
function(
f,g,h,i,k){
var l,o,q,r=
0,s=
"0",t=f&&[],u=[],v=j,x=f||e&&d.
find.
TAG(
"*",k),y=w+=
null==v?
1:
Math.
random()||
.1,z=x.
length;
for(k&&(j=g===n||g||k);s!==z&&
null!=(l=x[s]);s++){
if(e&&l){o=
0,g||l.
ownerDocument===n||(
m(l),h=!p);
while(q=a[o++])
if(
q(l,g||n,h)){i.
push(l);
break}k&&(w=y)}c&&((l=!q&&l)&&r--,f&&t.
push(l))}
if(r+=s,c&&s!==r){o=
0;
while(q=b[o++])
q(t,u,g,h);
if(f){
if(r>
0)
while(s--)t[s]||u[s]||(u[s]=F.
call(i));u=
ua(u)}H.
apply(i,u),k&&!f&&u.
length>
0&&r+b.
length>
1&&fa.
uniqueSort(i)}
return k&&(w=y,j=v),t};
return c?
ha(f):f}
return h=fa.
compile=
function(
a,b){
var c,d=[],e=[],f=A[a+
" "];
if(!f){b||(b=
g(a)),c=b.
length;
while(c--)f=
wa(b[c]),f[u]?d.
push(f):e.
push(f);f=
A(a,
xa(e,d)),f.
selector=a}
return f},i=fa.
select=
function(
a,b,e,f){
var i,j,k,l,m,n=
"function"==
typeof a&&a,o=!f&&
g(a=n.
selector||a);
if(e=e||[],
1===o.
length){
if(j=o[
0]=o[
0].
slice(
0),j.
length>
2&&
"ID"===(k=j[
0]).
type&&c.
getById&&
9===b.
nodeType&&p&&d.
relative[j[
1].
type]){
if(b=(d.
find.
ID(k.
matches[
0].
replace(ba,ca),b)||[])[
0],!b)
return e;n&&(b=b.
parentNode),a=a.
slice(j.
shift().
value.
length)}i=W.
needsContext.
test(a)?
0:j.
length;
while(i--){
if(k=j[i],d.
relative[l=k.
type])
break;
if((m=d.
find[l])&&(f=
m(k.
matches[
0].
replace(ba,ca),_.
test(j[
0].
type)&&
oa(b.
parentNode)||b))){
if(j.
splice(i,
1),a=f.
length&&
qa(j),!a)
return H.
apply(e,f),e;
break}}}
return(n||
h(a,o))(f,b,!p,e,!b||_.
test(a)&&
oa(b.
parentNode)||b),e},c.
sortStable=u.
split(
"").
sort(B).
join(
"")===u,c.
detectDuplicates=!!l,
m(),c.
sortDetached=
ia(
function(
a){
return
1&a.
compareDocumentPosition(n.
createElement(
"div"))}),
ia(
function(
a){
return a.
innerHTML=
"<a href='#'></a>",
"#"===a.
firstChild.
getAttribute(
"href")})||
ja(
"type|href|height|width",
function(
a,b,c){
return c?
void
0:a.
getAttribute(b,
"type"===b.
toLowerCase()?
1:
2)}),c.
attributes&&
ia(
function(
a){
return a.
innerHTML=
"<input/>",a.
firstChild.
setAttribute(
"value",
""),
""===a.
firstChild.
getAttribute(
"value")})||
ja(
"value",
function(
a,b,c){
return c||
"input"!==a.
nodeName.
toLowerCase()?
void
0:a.
defaultValue}),
ia(
function(
a){
return
null==a.
getAttribute(
"disabled")})||
ja(K,
function(
a,b,c){
var d;
return c?
void
0:a[b]===!
0?b.
toLowerCase():(d=a.
getAttributeNode(b))&&d.
specified?d.
value:
null}),fa}(a);n.
find=t,n.
expr=t.
selectors,n.
expr[
":"]=n.
expr.
pseudos,n.
uniqueSort=n.
unique=t.
uniqueSort,n.
text=t.
getText,n.
isXMLDoc=t.
isXML,n.
contains=t.
contains;
var u=
function(
a,b,c){
var d=[],e=
void
0!==c;
while((a=a[b])&&
9!==a.
nodeType)
if(
1===a.
nodeType){
if(e&&
n(a).
is(c))
break;d.
push(a)}
return d},v=
function(
a,b){
for(
var c=[];a;a=a.
nextSibling)
1===a.
nodeType&&a!==b&&c.
push(a);
return c},w=n.
expr.
match.
needsContext,x=
/^<([\w-]+)\s*\/?>(?:<\/\1>|)$/,y=
/^.[^:#\[\.,]*$/;
function
z(
a,b,c){
if(n.
isFunction(b))
return n.
grep(a,
function(
a,d){
return!!b.
call(a,d,a)!==c});
if(b.
nodeType)
return n.
grep(a,
function(
a){
return a===b!==c});
if(
"string"==
typeof b){
if(y.
test(b))
return n.
filter(b,a,c);b=n.
filter(b,a)}
return n.
grep(a,
function(
a){
return n.
inArray(a,b)>-
1!==c})}n.
filter=
function(
a,b,c){
var d=b[
0];
return c&&(a=
":not("+a+
")"),
1===b.
length&&
1===d.
nodeType?n.
find.
matchesSelector(d,a)?[d]:[]:n.
find.
matches(a,n.
grep(b,
function(
a){
return
1===a.
nodeType}))},n.
fn.
extend({
find:
function(
a){
var b,c=[],d=
this,e=d.
length;
if(
"string"!=
typeof a)
return
this.
pushStack(
n(a).
filter(
function(
){
for(b=
0;e>b;b++)
if(n.
contains(d[b],
this))
return!
0}));
for(b=
0;e>b;b++)n.
find(a,d[b],c);
return c=
this.
pushStack(e>
1?n.
unique(c):c),c.
selector=
this.
selector?
this.
selector+
" "+
a:a,c},
filter:
function(
a){
return
this.
pushStack(
z(
this,a||[],!
1))},
not:
function(
a){
return
this.
pushStack(
z(
this,a||[],!
0))},
is:
function(
a){
return!!
z(
this,
"string"==
typeof a&&w.
test(a)?
n(a):a||[],!
1).
length}});
var A,B=
/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,C=n.
fn.
init=
function(
a,b,c){
var e,f;
if(!a)
return
this;
if(c=c||A,
"string"==
typeof a){
if(e=
"<"===a.
charAt(
0)&&
">"===a.
charAt(a.
length-
1)&&a.
length>=
3?[
null,a,
null]:B.
exec(a),!e||!e[
1]&&b)
return!b||b.
jquery?(b||c).
find(a):
this.
constructor(
b).
find(a);
if(e[
1]){
if(b=b
instanceof n?b[
0]:b,n.
merge(
this,n.
parseHTML(e[
1],b&&b.
nodeType?b.
ownerDocument||
b:d,!
0)),x.
test(e[
1])&&n.
isPlainObject(b))
for(e
in b)n.
isFunction(
this[e])?
this[e](b[e]):
this.
attr(e,b[e]);
return
this}
if(f=d.
getElementById(e[
2]),f&&f.
parentNode){
if(f.
id!==e[
2])
return A.
find(a);
this.
length=
1,
this[
0]=f}
return
this.
context=d,
this.
selector=a,
this}
return a.
nodeType?(
this.
context=
this[
0]=a,
this.
length=
1,
this):n.
isFunction(a)?
"undefined"!=
typeof c.
ready?c.
ready(a):
a(n):(
void
0!==a.
selector&&(
this.
selector=a.
selector,
this.
context=a.
context),n.
makeArray(a,
this))};C.
prototype=n.
fn,A=
n(d);
var D=
/^(?:parents|prev(?:Until|All))/,E={
children:!
0,
contents:!
0,
next:!
0,
prev:!
0};n.
fn.
extend({
has:
function(
a){
var b,c=
n(a,
this),d=c.
length;
return
this.
filter(
function(
){
for(b=
0;d>b;b++)
if(n.
contains(
this,c[b]))
return!
0})},
closest:
function(
a,b){
for(
var c,d=
0,e=
this.
length,f=[],g=w.
test(a)||
"string"!=
typeof a?
n(a,b||
this.
context):
0;e>d;d++)
for(c=
this[d];c&&c!==b;c=c.
parentNode)
if(c.
nodeType<
11&&(g?g.
index(c)>-
1:
1===c.
nodeType&&n.
find.
matchesSelector(c,a))){f.
push(c);
break}
return
this.
pushStack(f.
length>
1?n.
uniqueSort(f):f)},
index:
function(
a){
return a?
"string"==
typeof a?n.
inArray(
this[
0],
n(a)):n.
inArray(a.
jquery?a[
0]:a,
this):
this[
0]&&
this[
0].
parentNode?
this.
first().
prevAll().
length:-
1},
add:
function(
a,b){
return
this.
pushStack(n.
uniqueSort(n.
merge(
this.
get(),
n(a,b))))},
addBack:
function(
a){
return
this.
add(
null==a?
this.
prevObject:
this.
prevObject.
filter(a))}});
function
F(
a,b){
do a=a[b];
while(a&&
1!==a.
nodeType);
return a}n.
each({
parent:
function(
a){
var b=a.
parentNode;
return b&&
11!==b.
nodeType?
b:
null},
parents:
function(
a){
return
u(a,
"parentNode")},
parentsUntil:
function(
a,b,c){
return
u(a,
"parentNode",c)},
next:
function(
a){
return
F(a,
"nextSibling")},
prev:
function(
a){
return
F(a,
"previousSibling")},
nextAll:
function(
a){
return
u(a,
"nextSibling")},
prevAll:
function(
a){
return
u(a,
"previousSibling")},
nextUntil:
function(
a,b,c){
return
u(a,
"nextSibling",c)},
prevUntil:
function(
a,b,c){
return
u(a,
"previousSibling",c)},
siblings:
function(
a){
return
v((a.
parentNode||{}).
firstChild,a)},
children:
function(
a){
return
v(a.
firstChild)},
contents:
function(
a){
return n.
nodeName(a,
"iframe")?a.
contentDocument||a.
contentWindow.
document:n.
merge([],a.
childNodes)}},
function(
a,b){n.
fn[a]=
function(
c,d){
var e=n.
map(
this,b,c);
return
"Until"!==a.
slice(-
5)&&(d=c),d&&
"string"==
typeof d&&(e=n.
filter(d,e)),
this.
length>
1&&(E[a]||(e=n.
uniqueSort(e)),D.
test(a)&&(e=e.
reverse())),
this.
pushStack(e)}});
var G=
/\S+/g;
function
H(
a){
var b={};
return n.
each(a.
match(G)||[],
function(
a,c){b[c]=!
0}),b}n.
Callbacks=
function(
a){a=
"string"==
typeof a?
H(a):n.
extend({},a);
var b,c,d,e,f=[],g=[],h=-
1,i=
function(
){
for(e=a.
once,d=b=!
0;g.
length;h=-
1){c=g.
shift();
while(++h<f.
length)f[h].
apply(c[
0],c[
1])===!
1&&a.
stopOnFalse&&(h=f.
length,c=!
1)}a.
memory||(c=!
1),b=!
1,e&&(f=c?[]:
"")},j={
add:
function(
){
return f&&(c&&!b&&(h=f.
length-
1,g.
push(c)),
function
d(
b){n.
each(b,
function(
b,c){n.
isFunction(c)?a.
unique&&j.
has(c)||f.
push(c):c&&c.
length&&
"string"!==n.
type(c)&&
d(c)})}(
arguments),c&&!b&&
i()),
this},
remove:
function(
){
return n.
each(
arguments,
function(
a,b){
var c;
while((c=n.
inArray(b,f,c))>-
1)f.
splice(c,
1),h>=c&&h--}),
this},
has:
function(
a){
return a?n.
inArray(a,f)>-
1:f.
length>
0},
empty:
function(
){
return f&&(f=[]),
this},
disable:
function(
){
return e=g=[],f=c=
"",
this},
disabled:
function(
){
return!f},
lock:
function(
){
return e=!
0,c||j.
disable(),
this},
locked:
function(
){
return!!e},
fireWith:
function(
a,c){
return e||(c=c||[],c=[a,c.
slice?c.
slice():c],g.
push(c),b||
i()),
this},
fire:
function(
){
return j.
fireWith(
this,
arguments),
this},
fired:
function(
){
return!!d}};
return j},n.
extend({
Deferred:
function(
a){
var b=[[
"resolve",
"done",n.
Callbacks(
"once memory"),
"resolved"],[
"reject",
"fail",n.
Callbacks(
"once memory"),
"rejected"],[
"notify",
"progress",n.
Callbacks(
"memory")]],c=
"pending",d={
state:
function(
){
return c},
always:
function(
){
return e.
done(
arguments).
fail(
arguments),
this},
then:
function(
){
var a=
arguments;
return n.
Deferred(
function(
c){n.
each(b,
function(
b,f){
var g=n.
isFunction(a[b])&&a[b];e[f[
1]](
function(
){
var a=g&&g.
apply(
this,
arguments);a&&n.
isFunction(a.
promise)?a.
promise().
progress(c.
notify).
done(c.
resolve).
fail(c.
reject):c[f[
0]+
"With"](
this===d?c.
promise():
this,g?[a]:
arguments)})}),a=
null}).
promise()},
promise:
function(
a){
return
null!=a?n.
extend(a,d):d}},e={};
return d.
pipe=d.
then,n.
each(b,
function(
a,f){
var g=f[
2],h=f[
3];d[f[
1]]=g.
add,h&&g.
add(
function(
){c=h},b[
1^a][
2].
disable,b[
2][
2].
lock),e[f[
0]]=
function(
){
return e[f[
0]+
"With"](
this===e?
d:
this,
arguments),
this},e[f[
0]+
"With"]=g.
fireWith}),d.
promise(e),a&&a.
call(e,e),e},
when:
function(
a){
var b=
0,c=e.
call(
arguments),d=c.
length,f=
1!==d||a&&n.
isFunction(a.
promise)?
d:
0,g=
1===f?
a:n.
Deferred(),h=
function(
a,b,c){
return
function(
d){b[a]=
this,c[a]=
arguments.
length>
1?e.
call(
arguments):d,c===i?g.
notifyWith(b,c):--f||g.
resolveWith(b,c)}},i,j,k;
if(d>
1)
for(i=
new
Array(d),j=
new
Array(d),k=
new
Array(d);d>b;b++)c[b]&&n.
isFunction(c[b].
promise)?c[b].
promise().
progress(
h(b,j,i)).
done(
h(b,k,c)).
fail(g.
reject):--f;
return f||g.
resolveWith(k,c),g.
promise()}});
var I;n.
fn.
ready=
function(
a){
return n.
ready.
promise().
done(a),
this},n.
extend({
isReady:!
1,
readyWait:
1,
holdReady:
function(
a){a?n.
readyWait++:n.
ready(!
0)},
ready:
function(
a){(a===!
0?--n.
readyWait:n.
isReady)||(n.
isReady=!
0,a!==!
0&&--n.
readyWait>
0||(I.
resolveWith(d,[n]),n.
fn.
triggerHandler&&(
n(d).
triggerHandler(
"ready"),
n(d).
off(
"ready"))))}});
function
J(
){d.
addEventListener?(d.
removeEventListener(
"DOMContentLoaded",K),a.
removeEventListener(
"load",K)):(d.
detachEvent(
"onreadystatechange",K),a.
detachEvent(
"onload",K))}
function
K(
){(d.
addEventListener||
"load"===a.
event.
type||
"complete"===d.
readyState)&&(
J(),n.
ready())}n.
ready.
promise=
function(
b){
if(!I)
if(I=n.
Deferred(),
"complete"===d.
readyState||
"loading"!==d.
readyState&&!d.
documentElement.
doScroll)a.
setTimeout(n.
ready);
else
if(d.
addEventListener)d.
addEventListener(
"DOMContentLoaded",K),a.
addEventListener(
"load",K);
else{d.
attachEvent(
"onreadystatechange",K),a.
attachEvent(
"onload",K);
var c=!
1;
try{c=
null==a.
frameElement&&d.
documentElement}
catch(e){}c&&c.
doScroll&&!
function
f(
){
if(!n.
isReady){
try{c.
doScroll(
"left")}
catch(b){
return a.
setTimeout(f,
50)}
J(),n.
ready()}}()}
return I.
promise(b)},n.
ready.
promise();
var L;
for(L
in
n(l))
break;l.
ownFirst=
"0"===L,l.
inlineBlockNeedsLayout=!
1,
n(
function(
){
var a,b,c,e;c=d.
getElementsByTagName(
"body")[
0],c&&c.
style&&(b=d.
createElement(
"div"),e=d.
createElement(
"div"),e.
style.
cssText=
"position:absolute;border:0;width:0;height:0;top:0;left:-9999px",c.
appendChild(e).
appendChild(b),
"undefined"!=
typeof b.
style.
zoom&&(b.
style.
cssText=
"display:inline;margin:0;border:0;padding:1px;width:1px;zoom:1",l.
inlineBlockNeedsLayout=a=
3===b.
offsetWidth,a&&(c.
style.
zoom=
1)),c.
removeChild(e))}),
function(
){
var a=d.
createElement(
"div");l.
deleteExpando=!
0;
try{
delete a.
test}
catch(b){l.
deleteExpando=!
1}a=
null}();
var M=
function(
a){
var b=n.
noData[(a.
nodeName+
" ").
toLowerCase()],c=+a.
nodeType||
1;
return
1!==c&&
9!==c?!
1:!b||b!==!
0&&a.
getAttribute(
"classid")===b},N=
/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,O=
/([A-Z])/g;
function
P(
a,b,c){
if(
void
0===c&&
1===a.
nodeType){
var d=
"data-"+b.
replace(O,
"-$1").
toLowerCase();
if(c=a.
getAttribute(d),
"string"==
typeof c){
try{c=
"true"===c?!
0:
"false"===c?!
1:
"null"===c?
null:+c+
""===c?+
c:N.
test(c)?n.
parseJSON(c):c}
catch(e){}n.
data(a,b,c)}
else c=
void
0;
-
}
return c}
function
Q(
a){
var b;
for(b
in a)
if((
"data"!==b||!n.
isEmptyObject(a[b]))&&
"toJSON"!==b)
return!
1;
return!
0}
function
R(
a,b,d,e){
if(
M(a)){
var f,g,h=n.
expando,i=a.
nodeType,j=i?n.
cache:a,k=i?a[h]:a[h]&&h;
if(k&&j[k]&&(e||j[k].
data)||
void
0!==d||
"string"!=
typeof b)
return k||(k=i?a[h]=c.
pop()||n.
guid++:h),j[k]||(j[k]=i?{}:{
toJSON:n.
noop}),
"object"!=
typeof b&&
"function"!=
typeof b||(e?j[k]=n.
extend(j[k],b):j[k].
data=n.
extend(j[k].
data,b)),g=j[k],e||(g.
data||(g.
data={}),g=g.
data),
void
0!==d&&(g[n.
camelCase(b)]=d),
"string"==
typeof b?(f=g[b],
null==f&&(f=g[n.
camelCase(b)])):f=g,f}}
function
S(
a,b,c){
if(
M(a)){
var d,e,f=a.
nodeType,g=f?n.
cache:a,h=f?a[n.
expando]:n.
expando;
if(g[h]){
if(b&&(d=c?g[h]:g[h].
data)){n.
isArray(b)?b=b.
concat(n.
map(b,n.
camelCase)):b
in d?b=[b]:(b=n.
camelCase(b),b=b
in d?[b]:b.
split(
" ")),e=b.
length;
while(e--)
delete d[b[e]];
if(c?!
Q(d):!n.
isEmptyObject(d))
return}(c||(
delete g[h].
data,
Q(g[h])))&&(f?n.
cleanData([a],!
0):l.
deleteExpando||g!=g.
window?
delete g[h]:g[h]=
void
0)}}}n.
extend({
cache:{},
noData:{
"applet ":!
0,
"embed ":!
0,
"object ":
"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"},
hasData:
function(
a){
return a=a.
nodeType?n.
cache[a[n.
expando]]:a[n.
expando],!!a&&!
Q(a)},
data:
function(
a,b,c){
return
R(a,b,c)},
removeData:
function(
a,b){
return
S(a,b)},
_data:
function(
a,b,c){
return
R(a,b,c,!
0)},
_removeData:
function(
a,b){
return
S(a,b,!
0)}}),n.
fn.
extend({
data:
function(
a,b){
var c,d,e,f=
this[
0],g=f&&f.
attributes;
if(
void
0===a){
if(
this.
length&&(e=n.
data(f),
1===f.
nodeType&&!n.
_data(f,
"parsedAttrs"))){c=g.
length;
while(c--)g[c]&&(d=g[c].
name,
0===d.
indexOf(
"data-")&&(d=n.
camelCase(d.
slice(
5)),
P(f,d,e[d])));n.
_data(f,
"parsedAttrs",!
0)}
return e}
return
"object"==
typeof a?
this.
each(
function(
){n.
data(
this,a)}):
arguments.
length>
1?
this.
each(
function(
){n.
data(
this,a,b)}):f?
P(f,a,n.
data(f,a)):
void
0},
removeData:
function(
a){
return
this.
each(
function(
){n.
removeData(
this,a)})}}),n.
extend({
queue:
function(
a,b,c){
var d;
return a?(b=(b||
"fx")+
"queue",d=n.
_data(a,b),c&&(!d||n.
isArray(c)?d=n.
_data(a,b,n.
makeArray(c)):d.
push(c)),d||[]):
void
0},
dequeue:
function(
a,b){b=b||
"fx";
var c=n.
queue(a,b),d=c.
length,e=c.
shift(),f=n.
_queueHooks(a,b),g=
function(
){n.
dequeue(a,b)};
"inprogress"===e&&(e=c.
shift(),d--),e&&(
"fx"===b&&c.
unshift(
"inprogress"),
delete f.
stop,e.
call(a,g,f)),!d&&f&&f.
empty.
fire()},
_queueHooks:
function(
a,b){
var c=b+
"queueHooks";
return n.
_data(a,c)||n.
_data(a,c,{
empty:n.
Callbacks(
"once memory").
add(
function(
){n.
_removeData(a,b+
"queue"),n.
_removeData(a,c)})})}}),n.
fn.
extend({
queue:
function(
a,b){
var c=
2;
return
"string"!=
typeof a&&(b=a,a=
"fx",c--),
arguments.
length<c?n.
queue(
this[
0],a):
void
0===b?
this:
this.
each(
function(
){
var c=n.
queue(
this,a,b);n.
_queueHooks(
this,a),
"fx"===a&&
"inprogress"!==c[
0]&&n.
dequeue(
this,a)})},
dequeue:
function(
a){
return
this.
each(
function(
){n.
dequeue(
this,a)})},
clearQueue:
function(
a){
return
this.
queue(a||
"fx",[])},
promise:
function(
a,b){
var c,d=
1,e=n.
Deferred(),f=
this,g=
this.
length,h=
function(
){--d||e.
resolveWith(f,[f])};
"string"!=
typeof a&&(b=a,a=
void
0),a=a||
"fx";
while(g--)c=n.
_data(f[g],a+
"queueHooks"),c&&c.
empty&&(d++,c.
empty.
add(h));
return
h(),e.
promise(b)}}),
function(
){
var a;l.
shrinkWrapBlocks=
function(
){
if(
null!=a)
return a;a=!
1;
var b,c,e;
return c=d.
getElementsByTagName(
"body")[
0],c&&c.
style?(b=d.
createElement(
"div"),e=d.
createElement(
"div"),e.
style.
cssText=
"position:absolute;border:0;width:0;height:0;top:0;left:-9999px",c.
appendChild(e).
appendChild(b),
"undefined"!=
typeof b.
style.
zoom&&(b.
style.
cssText=
"-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:1px;width:1px;zoom:1",b.
appendChild(d.
createElement(
"div")).
style.
width=
"5px",a=
3!==b.
offsetWidth),c.
removeChild(e),a):
void
0}}();
var T=
/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.
source,U=
new
RegExp(
"^(?:([+-])=|)("+T+
")([a-z%]*)$",
"i"),V=[
"Top",
"Right",
"Bottom",
"Left"],W=
function(
a,b){
return a=b||a,
"none"===n.
css(a,
"display")||!n.
contains(a.
ownerDocument,a)};
function
X(
a,b,c,d){
var e,f=
1,g=
20,h=d?
function(
){
return d.
cur()}:
function(
){
return n.
css(a,b,
"")},i=
h(),j=c&&c[
3]||(n.
cssNumber[b]?
"":
"px"),k=(n.
cssNumber[b]||
"px"!==j&&+i)&&U.
exec(n.
css(a,b));
if(k&&k[
3]!==j){j=j||k[
3],c=c||[],k=+i||
1;
do f=f||
".5",k/=f,n.
style(a,b,k+j);
while(f!==(f=
h()/i)&&
1!==f&&--g)}
return c&&(k=+k||+i||
0,e=c[
1]?k+(c[
1]+
1)*c[
2]:+c[
2],d&&(d.
unit=j,d.
start=k,d.
end=e)),e}
var Y=
function(
a,b,c,d,e,f,g){
var h=
0,i=a.
length,j=
null==c;
if(
"object"===n.
type(c)){e=!
0;
for(h
in c)
Y(a,b,h,c[h],!
0,f,g)}
else
if(
void
0!==d&&(e=!
0,n.
isFunction(d)||(g=!
0),j&&(g?(b.
call(a,d),b=
null):(j=b,b=
function(
a,b,c){
return j.
call(
n(a),c)})),b))
for(;i>h;h++)
b(a[h],c,g?
d:d.
call(a[h],h,
b(a[h],c)));
return e?
a:j?b.
call(a):i?
b(a[
0],c):f},Z=
/^(?:checkbox|radio)$/i,$=
/<([\w:-]+)/,_=
/^$|\/(?:java|ecma)script/i,aa=
/^\s+/,ba=
"abbr|article|aside|audio|bdi|canvas|data|datalist|details|dialog|figcaption|figure|footer|header|hgroup|main|mark|meter|nav|output|picture|progress|section|summary|template|time|video";
function
ca(
a){
var b=ba.
split(
"|"),c=a.
createDocumentFragment();
if(c.
createElement)
while(b.
length)c.
createElement(b.
pop());
return c}!
function(
){
var a=d.
createElement(
"div"),b=d.
createDocumentFragment(),c=d.
createElement(
"input");a.
innerHTML=
" <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",l.
leadingWhitespace=
3===a.
firstChild.
nodeType,l.
tbody=!a.
getElementsByTagName(
"tbody").
length,l.
htmlSerialize=!!a.
getElementsByTagName(
"link").
length,l.
html5Clone=
"<:nav></:nav>"!==d.
createElement(
"nav").
cloneNode(!
0).
outerHTML,c.
type=
"checkbox",c.
checked=!
0,b.
appendChild(c),l.
appendChecked=c.
checked,a.
innerHTML=
"<textarea>x</textarea>",l.
noCloneChecked=!!a.
cloneNode(!
0).
lastChild.
defaultValue,b.
appendChild(a),c=d.
createElement(
"input"),c.
setAttribute(
"type",
"radio"),c.
setAttribute(
"checked",
"checked"),c.
setAttribute(
"name",
"t"),a.
appendChild(c),l.
checkClone=a.
cloneNode(!
0).
cloneNode(!
0).
lastChild.
checked,l.
noCloneEvent=!!a.
addEventListener,a[n.
expando]=
1,l.
attributes=!a.
getAttribute(n.
expando)}();
var da={
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:l.
htmlSerialize?[
0,
"",
""]:[
1,
"X<div>",
"</div>"]};da.
optgroup=da.
option,da.
tbody=da.
tfoot=da.
colgroup=da.
caption=da.
thead,da.
th=da.
td;
function
ea(
a,b){
var c,d,e=
0,f=
"undefined"!=
typeof a.
getElementsByTagName?a.
getElementsByTagName(b||
"*"):
"undefined"!=
typeof a.
querySelectorAll?a.
querySelectorAll(b||
"*"):
void
0;
if(!f)
for(f=[],c=a.
childNodes||a;
null!=(d=c[e]);e++)!b||n.
nodeName(d,b)?f.
push(d):n.
merge(f,
ea(d,b));
return
void
0===b||b&&n.
nodeName(a,b)?n.
merge([a],f):f}
function
fa(
a,b){
for(
var c,d=
0;
null!=(c=a[d]);d++)n.
_data(c,
"globalEval",!b||n.
_data(b[d],
"globalEval"))}
var ga=
/<|&#?\w+;/,ha=
/<tbody/i;
function
ia(
a){Z.
test(a.
type)&&(a.
defaultChecked=a.
checked)}
function
ja(
a,b,c,d,e){
for(
var f,g,h,i,j,k,m,o=a.
length,p=
ca(b),q=[],r=
0;o>r;r++)
if(g=a[r],g||
0===g)
if(
"object"===n.
type(g))n.
merge(q,g.
nodeType?[g]:g);
else
if(ga.
test(g)){i=i||p.
appendChild(b.
createElement(
"div")),j=($.
exec(g)||[
"",
""])[
1].
toLowerCase(),m=da[j]||da.
_default,i.
innerHTML=m[
1]+n.
htmlPrefilter(g)+m[
2],f=m[
0];
while(f--)i=i.
lastChild;
if(!l.
leadingWhitespace&&aa.
test(g)&&q.
push(b.
createTextNode(aa.
exec(g)[
0])),!l.
tbody){g=
"table"!==j||ha.
test(g)?
"<table>"!==m[
1]||ha.
test(g)?
0:
i:i.
firstChild,f=g&&g.
childNodes.
length;
while(f--)n.
nodeName(k=g.
childNodes[f],
"tbody")&&!k.
childNodes.
length&&g.
removeChild(k)}n.
merge(q,i.
childNodes),i.
textContent=
"";
while(i.
firstChild)i.
removeChild(i.
firstChild);i=p.
lastChild}
else q.
push(b.
createTextNode(g));i&&p.
removeChild(i),l.
appendChecked||n.
grep(
ea(q,
"input"),ia),r=
0;
while(g=q[r++])
if(d&&n.
inArray(g,d)>-
1)e&&e.
push(g);
else
if(h=n.
contains(g.
ownerDocument,g),i=
ea(p.
appendChild(g),
"script"),h&&
fa(i),c){f=
0;
while(g=i[f++])_.
test(g.
type||
"")&&c.
push(g)}
return i=
null,p}!
function(
){
var b,c,e=d.
createElement(
"div");
for(b
in{
submit:!
0,
change:!
0,
focusin:!
0})c=
"on"+b,(l[b]=c
in a)||(e.
setAttribute(c,
"t"),l[b]=e.
attributes[c].
expando===!
1);e=
null}();
var ka=
/^(?:input|select|textarea)$/i,la=
/^key/,ma=
/^(?:mouse|pointer|contextmenu|drag|drop)|click/,na=
/^(?:focusinfocus|focusoutblur)$/,oa=
/^([^.]*)(?:\.(.+)|)/;
function
pa(
){
return!
0}
function
qa(
){
return!
1}
function
ra(
){
try{
return d.
activeElement}
catch(a){}}
function
sa(
a,b,c,d,e,f){
var g,h;
if(
"object"==
typeof b){
"string"!=
typeof c&&(d=d||c,c=
void
0);
for(h
in b)
sa(a,h,c,d,b[h],f);
return a}
if(
null==d&&
null==e?(e=c,d=c=
void
0):
null==e&&(
"string"==
typeof c?(e=d,d=
void
0):(e=d,d=c,c=
void
0)),e===!
1)e=qa;
else
if(!e)
return a;
return
1===f&&(g=e,e=
function(
a){
return
n().
off(a),g.
apply(
this,
arguments)},e.
guid=g.
guid||(g.
guid=n.
guid++)),a.
each(
function(
){n.
event.
add(
this,b,e,d,c)})}n.
event={
global:{},
add:
function(
a,b,c,d,e){
var f,g,h,i,j,k,l,m,o,p,q,r=n.
_data(a);
if(r){c.
handler&&(i=c,c=i.
handler,e=i.
selector),c.
guid||(c.
guid=n.
guid++),(g=r.
events)||(g=r.
events={}),(k=r.
handle)||(k=r.
handle=
function(
a){
return
"undefined"==
typeof n||a&&n.
event.
triggered===a.
type?
void
0:n.
event.
dispatch.
apply(k.
elem,
arguments)},k.
elem=a),b=(b||
"").
match(G)||[
""],h=b.
length;
while(h--)f=oa.
exec(b[h])||[],o=q=f[
1],p=(f[
2]||
"").
split(
".").
sort(),o&&(j=n.
event.
special[o]||{},o=(e?j.
delegateType:j.
bindType)||o,j=n.
event.
special[o]||{},l=n.
extend({
type:o,
origType:q,
data:d,
handler:c,
guid:c.
guid,
selector:e,
needsContext:e&&n.
expr.
match.
needsContext.
test(e),
namespace:p.
join(
".")},i),(m=g[o])||(m=g[o]=[],m.
delegateCount=
0,j.
setup&&j.
setup.
call(a,d,p,k)!==!
1||(a.
addEventListener?a.
addEventListener(o,k,!
1):a.
attachEvent&&a.
attachEvent(
"on"+o,k))),j.
add&&(j.
add.
call(a,l),l.
handler.
guid||(l.
handler.
guid=c.
guid)),e?m.
splice(m.
delegateCount++,
0,l):m.
push(l),n.
event.
global[o]=!
0);a=
null}},
remove:
function(
a,b,c,d,e){
var f,g,h,i,j,k,l,m,o,p,q,r=n.
hasData(a)&&n.
_data(a);
if(r&&(k=r.
events)){b=(b||
"").
match(G)||[
""],j=b.
length;
while(j--)
if(h=oa.
exec(b[j])||[],o=q=h[
1],p=(h[
2]||
"").
split(
".").
sort(),o){l=n.
event.
special[o]||{},o=(d?l.
delegateType:l.
bindType)||o,m=k[o]||[],h=h[
2]&&
new
RegExp(
"(^|\\.)"+p.
join(
"\\.(?:.*\\.|)")+
"(\\.|$)"),i=f=m.
length;
while(f--)g=m[f],!e&&q!==g.
origType||c&&c.
guid!==g.
guid||h&&!h.
test(g.
namespace)||d&&d!==g.
selector&&(
"**"!==d||!g.
selector)||(m.
splice(f,
1),g.
selector&&m.
delegateCount--,l.
remove&&l.
remove.
call(a,g));i&&!m.
length&&(l.
teardown&&l.
teardown.
call(a,p,r.
handle)!==!
1||n.
removeEvent(a,o,r.
handle),
delete k[o])}
else
for(o
in k)n.
event.
remove(a,o+b[j],c,d,!
0);n.
isEmptyObject(k)&&(
delete r.
handle,n.
_removeData(a,
"events"))}},
trigger:
function(
b,c,e,f){
var g,h,i,j,l,m,o,p=[e||d],q=k.
call(b,
"type")?b.
type:b,r=k.
call(b,
"namespace")?b.
namespace.
split(
"."):[];
if(i=m=e=e||d,
3!==e.
nodeType&&
8!==e.
nodeType&&!na.
test(q+n.
event.
triggered)&&(q.
indexOf(
".")>-
1&&(r=q.
split(
"."),q=r.
shift(),r.
sort()),h=q.
indexOf(
":")<
0&&
"on"+q,b=b[n.
expando]?
b:
new n.
Event(q,
"object"==
typeof b&&b),b.
isTrigger=f?
2:
3,b.
namespace=r.
join(
"."),b.
rnamespace=b.
namespace?
new
RegExp(
"(^|\\.)"+r.
join(
"\\.(?:.*\\.|)")+
"(\\.|$)"):
null,b.
result=
void
0,b.
target||(b.
target=e),c=
null==c?[b]:n.
makeArray(c,[b]),l=n.
event.
special[q]||{},f||!l.
trigger||l.
trigger.
apply(e,c)!==!
1)){
if(!f&&!l.
noBubble&&!n.
isWindow(e)){
for(j=l.
delegateType||q,na.
test(j+q)||(i=i.
parentNode);i;i=i.
parentNode)p.
push(i),m=i;m===(e.
ownerDocument||d)&&p.
push(m.
defaultView||m.
parentWindow||a)}o=
0;
while((i=p[o++])&&!b.
isPropagationStopped())b.
type=o>
1?
j:l.
bindType||q,g=(n.
_data(i,
"events")||{})[b.
type]&&n.
_data(i,
"handle"),g&&g.
apply(i,c),g=h&&i[h],g&&g.
apply&&
M(i)&&(b.
result=g.
apply(i,c),b.
result===!
1&&b.
preventDefault());
if(b.
type=q,!f&&!b.
isDefaultPrevented()&&(!l.
_default||l.
_default.
apply(p.
pop(),c)===!
1)&&
M(e)&&h&&e[q]&&!n.
isWindow(e)){m=e[h],m&&(e[h]=
null),n.
event.
triggered=q;
try{e[q]()}
catch(s){}n.
event.
triggered=
void
0,m&&(e[h]=m)}
return b.
result}},
dispatch:
function(
a){a=n.
event.
fix(a);
var b,c,d,f,g,h=[],i=e.
call(
arguments),j=(n.
_data(
this,
"events")||{})[a.
type]||[],k=n.
event.
special[a.
type]||{};
if(i[
0]=a,a.
delegateTarget=
this,!k.
preDispatch||k.
preDispatch.
call(
this,a)!==!
1){h=n.
event.
handlers.
call(
this,a,j),b=
0;
while((f=h[b++])&&!a.
isPropagationStopped()){a.
currentTarget=f.
elem,c=
0;
while((g=f.
handlers[c++])&&!a.
isImmediatePropagationStopped())a.
rnamespace&&!a.
rnamespace.
test(g.
namespace)||(a.
handleObj=g,a.
data=g.
data,d=((n.
event.
special[g.
origType]||{}).
handle||g.
handler).
apply(f.
elem,i),
void
0!==d&&(a.
result=d)===!
1&&(a.
preventDefault(),a.
stopPropagation()))}
return k.
postDispatch&&k.
postDispatch.
call(
this,a),a.
result}},
handlers:
function(
a,b){
var c,d,e,f,g=[],h=b.
delegateCount,i=a.
target;
if(h&&i.
nodeType&&(
"click"!==a.
type||
isNaN(a.
button)||a.
button<
1))
for(;i!=
this;i=i.
parentNode||
this)
if(
1===i.
nodeType&&(i.
disabled!==!
0||
"click"!==a.
type)){
for(d=[],c=
0;h>c;c++)f=b[c],e=f.
selector+
" ",
void
0===d[e]&&(d[e]=f.
needsContext?
n(e,
this).
index(i)>-
1:n.
find(e,
this,
null,[i]).
length),d[e]&&d.
push(f);d.
length&&g.
push({
elem:i,
handlers:d})}
return h<b.
length&&g.
push({
elem:
this,
handlers:b.
slice(h)}),g},
fix:
function(
a){
if(a[n.
expando])
return a;
var b,c,e,f=a.
type,g=a,h=
this.
fixHooks[f];h||(
this.
fixHooks[f]=h=ma.
test(f)?
this.
mouseHooks:la.
test(f)?
this.
keyHooks:{}),e=h.
props?
this.
props.
concat(h.
props):
this.
props,a=
new n.
Event(g),b=e.
length;
while(b--)c=e[b],a[c]=g[c];
return a.
target||(a.
target=g.
srcElement||d),
3===a.
target.
nodeType&&(a.
target=a.
target.
parentNode),a.
metaKey=!!a.
metaKey,h.
filter?h.
filter(a,g):a},
props:
"altKey bubbles cancelable ctrlKey currentTarget detail eventPhase metaKey relatedTarget shiftKey target timeStamp view which".
split(
" "),
fixHooks:{},
keyHooks:{
props:
"char charCode key keyCode".
split(
" "),
filter:
function(
a,b){
return
null==a.
which&&(a.
which=
null!=b.
charCode?b.
charCode:b.
keyCode),a}},
mouseHooks:{
props:
"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".
split(
" "),
filter:
function(
a,b){
var c,e,f,g=b.
button,h=b.
fromElement;
return
null==a.
pageX&&
null!=b.
clientX&&(e=a.
target.
ownerDocument||d,f=e.
documentElement,c=e.
body,a.
pageX=b.
clientX+(f&&f.
scrollLeft||c&&c.
scrollLeft||
0)-(f&&f.
clientLeft||c&&c.
clientLeft||
0),a.
pageY=b.
clientY+(f&&f.
scrollTop||c&&c.
scrollTop||
0)-(f&&f.
clientTop||c&&c.
clientTop||
0)),!a.
relatedTarget&&h&&(a.
relatedTarget=h===a.
target?b.
toElement:h),a.
which||
void
0===g||(a.
which=
1&g?
1:
2&g?
3:
4&g?
2:
0),a}},
special:{
load:{
noBubble:!
0},
focus:{
trigger:
function(
){
if(
this!==
ra()&&
this.
focus)
try{
return
this.
focus(),!
1}
catch(a){}},
delegateType:
"focusin"},
blur:{
trigger:
function(
){
return
this===
ra()&&
this.
blur?(
this.
blur(),!
1):
void
0},
delegateType:
"focusout"},
click:{
trigger:
function(
){
return n.
nodeName(
this,
"input")&&
"checkbox"===
this.
type&&
this.
click?(
this.
click(),!
1):
void
0},
_default:
function(
a){
return n.
nodeName(a.
target,
"a")}},
beforeunload:{
postDispatch:
function(
a){
void
0!==a.
result&&a.
originalEvent&&(a.
originalEvent.
returnValue=a.
result)}}},
simulate:
function(
a,b,c){
var d=n.
extend(
new n.
Event,c,{
type:a,
isSimulated:!
0});n.
event.
trigger(d,
null,b),d.
isDefaultPrevented()&&c.
preventDefault()}},n.
removeEvent=d.
removeEventListener?
function(
a,b,c){a.
removeEventListener&&a.
removeEventListener(b,c)}:
function(
a,b,c){
var d=
"on"+b;a.
detachEvent&&(
"undefined"==
typeof a[d]&&(a[d]=
null),a.
detachEvent(d,c))},n.
Event=
function(
a,b){
return
this
instanceof n.
Event?(a&&a.
type?(
this.
originalEvent=a,
this.
type=a.
type,
this.
isDefaultPrevented=a.
defaultPrevented||
void
0===a.
defaultPrevented&&a.
returnValue===!
1?
pa:qa):
this.
type=a,b&&n.
extend(
this,b),
this.
timeStamp=a&&a.
timeStamp||n.
now(),
void(
this[n.
expando]=!
0)):
new n.
Event(a,b)},n.
Event.
prototype={
constructor:n.
Event,
isDefaultPrevented:qa,
isPropagationStopped:qa,
isImmediatePropagationStopped:qa,
preventDefault:
function(
){
var a=
this.
originalEvent;
this.
isDefaultPrevented=pa,a&&(a.
preventDefault?a.
preventDefault():a.
returnValue=!
1)},
stopPropagation:
function(
){
var a=
this.
originalEvent;
this.
isPropagationStopped=pa,a&&!
this.
isSimulated&&(a.
stopPropagation&&a.
stopPropagation(),a.
cancelBubble=!
0)},
stopImmediatePropagation:
function(
){
var a=
this.
originalEvent;
this.
isImmediatePropagationStopped=pa,a&&a.
stopImmediatePropagation&&a.
stopImmediatePropagation(),
this.
stopPropagation()}},n.
each({
mouseenter:
"mouseover",
mouseleave:
"mouseout",
pointerenter:
"pointerover",
pointerleave:
"pointerout"},
function(
a,b){n.
event.
special[a]={
delegateType:b,
bindType:b,
handle:
function(
a){
var c,d=
this,e=a.
relatedTarget,f=a.
handleObj;
return e&&(e===d||n.
contains(d,e))||(a.
type=f.
origType,c=f.
handler.
apply(
this,
arguments),a.
type=b),c}}}),l.
submit||(n.
event.
special.
submit={
setup:
function(
){
return n.
nodeName(
this,
"form")?!
1:
void n.
event.
add(
this,
"click._submit keypress._submit",
function(
a){
var b=a.
target,c=n.
nodeName(b,
"input")||n.
nodeName(b,
"button")?n.
prop(b,
"form"):
void
0;c&&!n.
_data(c,
"submit")&&(n.
event.
add(c,
"submit._submit",
function(
a){a.
_submitBubble=!
0}),n.
_data(c,
"submit",!
0))})},
postDispatch:
function(
a){a.
_submitBubble&&(
delete a.
_submitBubble,
this.
parentNode&&!a.
isTrigger&&n.
event.
simulate(
"submit",
this.
parentNode,a))},
teardown:
function(
){
return n.
nodeName(
this,
"form")?!
1:
void n.
event.
remove(
this,
"._submit")}}),l.
change||(n.
event.
special.
change={
setup:
function(
){
return ka.
test(
this.
nodeName)?(
"checkbox"!==
this.
type&&
"radio"!==
this.
type||(n.
event.
add(
this,
"propertychange._change",
function(
a){
"checked"===a.
originalEvent.
propertyName&&(
this.
_justChanged=!
0)}),n.
event.
add(
this,
"click._change",
function(
a){
this.
_justChanged&&!a.
isTrigger&&(
this.
_justChanged=!
1),n.
event.
simulate(
"change",
this,a)})),!
1):
void n.
event.
add(
this,
"beforeactivate._change",
function(
a){
var b=a.
target;ka.
test(b.
nodeName)&&!n.
_data(b,
"change")&&(n.
event.
add(b,
"change._change",
function(
a){!
this.
parentNode||a.
isSimulated||a.
isTrigger||n.
event.
simulate(
"change",
this.
parentNode,a)}),n.
_data(b,
"change",!
0))})},
handle:
function(
a){
var b=a.
target;
return
this!==b||a.
isSimulated||a.
isTrigger||
"radio"!==b.
type&&
"checkbox"!==b.
type?a.
handleObj.
handler.
apply(
this,
arguments):
void
0},
teardown:
function(
){
return n.
event.
remove(
this,
"._change"),!ka.
test(
this.
nodeName)}}),l.
focusin||n.
each({
focus:
"focusin",
blur:
"focusout"},
function(
a,b){
var c=
function(
a){n.
event.
simulate(b,a.
target,n.
event.
fix(a))};n.
event.
special[b]={
setup:
function(
){
var d=
this.
ownerDocument||
this,e=n.
_data(d,b);e||d.
addEventListener(a,c,!
0),n.
_data(d,b,(e||
0)+
1)},
teardown:
function(
){
var d=
this.
ownerDocument||
this,e=n.
_data(d,b)-
1;e?n.
_data(d,b,e):(d.
removeEventListener(a,c,!
0),n.
_removeData(d,b))}}}),n.
fn.
extend({
on:
function(
a,b,c,d){
return
sa(
this,a,b,c,d)},
one:
function(
a,b,c,d){
return
sa(
this,a,b,c,d,
1)},
off:
function(
a,b,c){
var d,e;
if(a&&a.
preventDefault&&a.
handleObj)
return d=a.
handleObj,
n(a.
delegateTarget).
off(d.
namespace?d.
origType+
"."+d.
namespace:d.
origType,d.
selector,d.
handler),
this;
if(
"object"==
typeof a){
for(e
in a)
this.
off(e,b,a[e]);
return
this}
return b!==!
1&&
"function"!=
typeof b||(c=b,b=
void
0),c===!
1&&(c=qa),
this.
each(
function(
){n.
event.
remove(
this,a,c,b)})},
trigger:
function(
a,b){
return
this.
each(
function(
){n.
event.
trigger(a,b,
this)})},
triggerHandler:
function(
a,b){
var c=
this[
0];
return c?n.
event.
trigger(a,b,c,!
0):
void
0}});
var ta=
/ jQuery\d+="(?:null|\d+)"/g,ua=
new
RegExp(
"<(?:"+ba+
")[\\s/>]",
"i"),va=
/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:-]+)[^>]*)\/>/gi,wa=
/<script|<style|<link/i,xa=
/checked\s*(?:[^=]|=\s*.checked.)/i,ya=
/^true\/(.*)/,za=
/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,
Aa=
ca(d),
Ba=
Aa.
appendChild(d.
createElement(
"div"));
function
Ca(
a,b){
return n.
nodeName(a,
"table")&&n.
nodeName(
11!==b.
nodeType?
b:b.
firstChild,
"tr")?a.
getElementsByTagName(
"tbody")[
0]||a.
appendChild(a.
ownerDocument.
createElement(
"tbody")):a}
function
Da(
a){
return a.
type=(
null!==n.
find.
attr(a,
"type"))+
"/"+a.
type,a}
function
Ea(
a){
var b=ya.
exec(a.
type);
return b?a.
type=b[
1]:a.
removeAttribute(
"type"),a}
function
Fa(
a,b){
if(
1===b.
nodeType&&n.
hasData(a)){
var c,d,e,f=n.
_data(a),g=n.
_data(b,f),h=f.
events;
if(h){
delete g.
handle,g.
events={};
for(c
in h)
for(d=
0,e=h[c].
length;e>d;d++)n.
event.
add(b,c,h[c][d])}g.
data&&(g.
data=n.
extend({},g.
data))}}
function
Ga(
a,b){
var c,d,e;
if(
1===b.
nodeType){
if(c=b.
nodeName.
toLowerCase(),!l.
noCloneEvent&&b[n.
expando]){e=n.
_data(b);
for(d
in e.
events)n.
removeEvent(b,d,e.
handle);b.
removeAttribute(n.
expando)}
"script"===c&&b.
text!==a.
text?(
Da(b).
text=a.
text,
Ea(b)):
"object"===c?(b.
parentNode&&(b.
outerHTML=a.
outerHTML),l.
html5Clone&&a.
innerHTML&&!n.
trim(b.
innerHTML)&&(b.
innerHTML=a.
innerHTML)):
"input"===c&&Z.
test(a.
type)?(b.
defaultChecked=b.
checked=a.
checked,b.
value!==a.
value&&(b.
value=a.
value)):
"option"===c?b.
defaultSelected=b.
selected=a.
defaultSelected:
"input"!==c&&
"textarea"!==c||(b.
defaultValue=a.
defaultValue)}}
function
Ha(
a,b,c,d){b=f.
apply([],b);
var e,g,h,i,j,k,m=
0,o=a.
length,p=o-
1,q=b[
0],r=n.
isFunction(q);
if(r||o>
1&&
"string"==
typeof q&&!l.
checkClone&&xa.
test(q))
return a.
each(
function(
e){
var f=a.
eq(e);r&&(b[
0]=q.
call(
this,e,f.
html())),
Ha(f,b,c,d)});
if(o&&(k=
ja(b,a[
0].
ownerDocument,!
1,a,d),e=k.
firstChild,
1===k.
childNodes.
length&&(k=e),e||d)){
for(i=n.
map(
ea(k,
"script"),
Da),h=i.
length;o>m;m++)g=k,m!==p&&(g=n.
clone(g,!
0,!
0),h&&n.
merge(i,
ea(g,
"script"))),c.
call(a[m],g,m);
if(h)
for(j=i[i.
length-
1].
ownerDocument,n.
map(i,
Ea),m=
0;h>m;m++)g=i[m],_.
test(g.
type||
"")&&!n.
_data(g,
"globalEval")&&n.
contains(j,g)&&(g.
src?n.
_evalUrl&&n.
_evalUrl(g.
src):n.
globalEval((g.
text||g.
textContent||g.
innerHTML||
"").
replace(za,
"")));k=e=
null}
return a}
function
Ia(
a,b,c){
for(
var d,e=b?n.
filter(b,a):a,f=
0;
null!=(d=e[f]);f++)c||
1!==d.
nodeType||n.
cleanData(
ea(d)),d.
parentNode&&(c&&n.
contains(d.
ownerDocument,d)&&
fa(
ea(d,
"script")),d.
parentNode.
removeChild(d));
return a}n.
extend({
htmlPrefilter:
function(
a){
return a.
replace(va,
"<$1></$2>")},
clone:
function(
a,b,c){
var d,e,f,g,h,i=n.
contains(a.
ownerDocument,a);
if(l.
html5Clone||n.
isXMLDoc(a)||!ua.
test(
"<"+a.
nodeName+
">")?f=a.
cloneNode(!
0):(
Ba.
innerHTML=a.
outerHTML,
Ba.
removeChild(f=
Ba.
firstChild)),!(l.
noCloneEvent&&l.
noCloneChecked||
1!==a.
nodeType&&
11!==a.
nodeType||n.
isXMLDoc(a)))
for(d=
ea(f),h=
ea(a),g=
0;
null!=(e=h[g]);++g)d[g]&&
Ga(e,d[g]);
if(b)
if(c)
for(h=h||
ea(a),d=d||
ea(f),g=
0;
null!=(e=h[g]);g++)
Fa(e,d[g]);
else
Fa(a,f);
return d=
ea(f,
"script"),d.
length>
0&&
fa(d,!i&&
ea(a,
"script")),d=h=e=
null,f},
cleanData:
function(
a,b){
for(
var d,e,f,g,h=
0,i=n.
expando,j=n.
cache,k=l.
attributes,m=n.
event.
special;
null!=(d=a[h]);h++)
if((b||
M(d))&&(f=d[i],g=f&&j[f])){
if(g.
events)
for(e
in g.
events)m[e]?n.
event.
remove(d,e):n.
removeEvent(d,e,g.
handle);j[f]&&(
delete j[f],k||
"undefined"==
typeof d.
removeAttribute?d[i]=
void
0:d.
removeAttribute(i),c.
push(f))}}}),n.
fn.
extend({
domManip:
Ha,
detach:
function(
a){
return
Ia(
this,a,!
0)},
remove:
function(
a){
return
Ia(
this,a)},
text:
function(
a){
return
Y(
this,
function(
a){
return
void
0===a?n.
text(
this):
this.
empty().
append((
this[
0]&&
this[
0].
ownerDocument||d).
createTextNode(a))},
null,a,
arguments.
length)},
append:
function(
){
return
Ha(
this,
arguments,
function(
a){
if(
1===
this.
nodeType||
11===
this.
nodeType||
9===
this.
nodeType){
var b=
Ca(
this,a);b.
appendChild(a)}})},
prepend:
function(
){
return
Ha(
this,
arguments,
function(
a){
if(
1===
this.
nodeType||
11===
this.
nodeType||
9===
this.
nodeType){
var b=
Ca(
this,a);b.
insertBefore(a,b.
firstChild)}})},
before:
function(
){
return
Ha(
this,
arguments,
function(
a){
this.
parentNode&&
this.
parentNode.
insertBefore(a,
this)})},
after:
function(
){
return
Ha(
this,
arguments,
function(
a){
this.
parentNode&&
this.
parentNode.
insertBefore(a,
this.
nextSibling)})},
empty:
function(
){
for(
var a,b=
0;
null!=(a=
this[b]);b++){
1===a.
nodeType&&n.
cleanData(
ea(a,!
1));
while(a.
firstChild)a.
removeChild(a.
firstChild);a.
options&&n.
nodeName(a,
"select")&&(a.
options.
length=
0)}
return
this},
clone:
function(
a,b){
return a=
null==a?!
1:a,b=
null==b?
a:b,
this.
map(
function(
){
return n.
clone(
this,a,b)})},
html:
function(
a){
return
Y(
this,
function(
a){
var b=
this[
0]||{},c=
0,d=
this.
length;
if(
void
0===a)
return
1===b.
nodeType?b.
innerHTML.
replace(ta,
""):
void
0;
if(
"string"==
typeof a&&!wa.
test(a)&&(l.
htmlSerialize||!ua.
test(a))&&(l.
leadingWhitespace||!aa.
test(a))&&!da[($.
exec(a)||[
"",
""])[
1].
toLowerCase()]){a=n.
htmlPrefilter(a);
try{
for(;d>c;c++)b=
this[c]||{},
1===b.
nodeType&&(n.
cleanData(
ea(b,!
1)),b.
innerHTML=a);b=
0}
catch(e){}}b&&
this.
empty().
append(a)},
null,a,
arguments.
length)},
replaceWith:
function(
){
var a=[];
return
Ha(
this,
arguments,
function(
b){
var c=
this.
parentNode;n.
inArray(
this,a)<
0&&(n.
cleanData(
ea(
this)),c&&c.
replaceChild(b,
this))},a)}}),n.
each({
appendTo:
"append",
prependTo:
"prepend",
insertBefore:
"before",
insertAfter:
"after",
replaceAll:
"replaceWith"},
function(
a,b){n.
fn[a]=
function(
a){
for(
var c,d=
0,e=[],f=
n(a),h=f.
length-
1;h>=d;d++)c=d===h?
this:
this.
clone(!
0),
n(f[d])[b](c),g.
apply(e,c.
get());
return
this.
pushStack(e)}});
var
Ja,
Ka={
HTML:
"block",
BODY:
"block"};
function
La(
a,b){
var c=
n(b.
createElement(a)).
appendTo(b.
body),d=n.
css(c[
0],
"display");
return c.
detach(),d}
function
Ma(
a){
var b=d,c=
Ka[a];
return c||(c=
La(a,b),
"none"!==c&&c||(
Ja=(
Ja||
n(
"<iframe frameborder='0' width='0' height='0'/>")).
appendTo(b.
documentElement),b=(
Ja[
0].
contentWindow||
Ja[
0].
contentDocument).
document,b.
write(),b.
close(),c=
La(a,b),
Ja.
detach()),
Ka[a]=c),c}
var
Na=
/^margin/,
Oa=
new
RegExp(
"^("+T+
")(?!px)[a-z%]+$",
"i"),
Pa=
function(
a,b,c,d){
var e,f,g={};
for(f
in b)g[f]=a.
style[f],a.
style[f]=b[f];e=c.
apply(a,d||[]);
for(f
in b)a.
style[f]=g[f];
return e},
Qa=d.
documentElement;!
function(
){
var b,c,e,f,g,h,i=d.
createElement(
"div"),j=d.
createElement(
"div");
if(j.
style){j.
style.
cssText=
"float:left;opacity:.5",l.
opacity=
"0.5"===j.
style.
opacity,l.
cssFloat=!!j.
style.
cssFloat,j.
style.
backgroundClip=
"content-box",j.
cloneNode(!
0).
style.
backgroundClip=
"",l.
clearCloneStyle=
"content-box"===j.
style.
backgroundClip,i=d.
createElement(
"div"),i.
style.
cssText=
"border:0;width:8px;height:0;top:0;left:-9999px;padding:0;margin-top:1px;position:absolute",j.
innerHTML=
"",i.
appendChild(j),l.
boxSizing=
""===j.
style.
boxSizing||
""===j.
style.
MozBoxSizing||
""===j.
style.
WebkitBoxSizing,n.
extend(l,{
reliableHiddenOffsets:
function(
){
return
null==b&&
k(),f},
boxSizingReliable:
function(
){
return
null==b&&
k(),e},
pixelMarginRight:
function(
){
return
null==b&&
k(),c},
pixelPosition:
function(
){
return
null==b&&
k(),b},
reliableMarginRight:
function(
){
return
null==b&&
k(),g},
reliableMarginLeft:
function(
){
return
null==b&&
k(),h}});
function
k(
){
var k,l,m=d.
documentElement;m.
appendChild(i),j.
style.
cssText=
"-webkit-box-sizing:border-box;box-sizing:border-box;position:relative;display:block;margin:auto;border:1px;padding:1px;top:1%;width:50%",b=e=h=!
1,c=g=!
0,a.
getComputedStyle&&(l=a.
getComputedStyle(j),b=
"1%"!==(l||{}).
top,h=
"2px"===(l||{}).
marginLeft,e=
"4px"===(l||{
width:
"4px"}).
width,j.
style.
marginRight=
"50%",c=
"4px"===(l||{
marginRight:
"4px"}).
marginRight,k=j.
appendChild(d.
createElement(
"div")),k.
style.
cssText=j.
style.
cssText=
"-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:0",k.
style.
marginRight=k.
style.
width=
"0",j.
style.
width=
"1px",g=!
parseFloat((a.
getComputedStyle(k)||{}).
marginRight),j.
removeChild(k)),j.
style.
display=
"none",f=
0===j.
getClientRects().
length,f&&(j.
style.
display=
"",j.
innerHTML=
"<table><tr><td></td><td>t</td></tr></table>",j.
childNodes[
0].
style.
borderCollapse=
"separate",k=j.
getElementsByTagName(
"td"),k[
0].
style.
cssText=
"margin:0;border:0;padding:0;display:none",f=
0===k[
0].
offsetHeight,f&&(k[
0].
style.
display=
"",k[
1].
style.
display=
"none",f=
0===k[
0].
offsetHeight)),m.
removeChild(i)}}}();
var
Ra,
Sa,
Ta=
/^(top|right|bottom|left)$/;a.
getComputedStyle?(
Ra=
function(
b){
var c=b.
ownerDocument.
defaultView;
return c&&c.
opener||(c=a),c.
getComputedStyle(b)},
Sa=
function(
a,b,c){
var d,e,f,g,h=a.
style;
return c=c||
Ra(a),g=c?c.
getPropertyValue(b)||c[b]:
void
0,
""!==g&&
void
0!==g||n.
contains(a.
ownerDocument,a)||(g=n.
style(a,b)),c&&!l.
pixelMarginRight()&&
Oa.
test(g)&&
Na.
test(b)&&(d=h.
width,e=h.
minWidth,f=h.
maxWidth,h.
minWidth=h.
maxWidth=h.
width=g,g=c.
width,h.
width=d,h.
minWidth=e,h.
maxWidth=f),
void
0===g?
g:g+
""}):
Qa.
currentStyle&&(
Ra=
function(
a){
return a.
currentStyle},
Sa=
function(
a,b,c){
var d,e,f,g,h=a.
style;
return c=c||
Ra(a),g=c?c[b]:
void
0,
null==g&&h&&h[b]&&(g=h[b]),
Oa.
test(g)&&!
Ta.
test(b)&&(d=h.
left,e=a.
runtimeStyle,f=e&&e.
left,f&&(e.
left=a.
currentStyle.
left),h.
left=
"fontSize"===b?
"1em":g,g=h.
pixelLeft+
"px",h.
left=d,f&&(e.
left=f)),
void
0===g?
g:g+
""||
"auto"});
function
Ua(
a,b){
return{
get:
function(
){
return
a()?
void
delete
this.
get:(
this.
get=b).
apply(
this,
arguments)}}}
var
Va=
/alpha\([^)]*\)/i,
Wa=
/opacity\s*=\s*([^)]*)/i,
Xa=
/^(none|table(?!-c[ea]).+)/,
Ya=
new
RegExp(
"^("+T+
")(.*)$",
"i"),
Za={
position:
"absolute",
visibility:
"hidden",
display:
"block"},$a={
letterSpacing:
"0",
fontWeight:
"400"},_a=[
"Webkit",
"O",
"Moz",
"ms"],ab=d.
createElement(
"div").
style;
function
bb(
a){
if(a
in ab)
return a;
var b=a.
charAt(
0).
toUpperCase()+a.
slice(
1),c=_a.
length;
while(c--)
if(a=_a[c]+b,a
in ab)
return a}
function
cb(
a,b){
for(
var c,d,e,f=[],g=
0,h=a.
length;h>g;g++)d=a[g],d.
style&&(f[g]=n.
_data(d,
"olddisplay"),c=d.
style.
display,b?(f[g]||
"none"!==c||(d.
style.
display=
""),
""===d.
style.
display&&
W(d)&&(f[g]=n.
_data(d,
"olddisplay",
Ma(d.
nodeName)))):(e=
W(d),(c&&
"none"!==c||!e)&&n.
_data(d,
"olddisplay",e?
c:n.
css(d,
"display"))));
for(g=
0;h>g;g++)d=a[g],d.
style&&(b&&
"none"!==d.
style.
display&&
""!==d.
style.
display||(d.
style.
display=b?f[g]||
"":
"none"));
return a}
function
db(
a,b,c){
var d=
Ya.
exec(b);
return d?
Math.
max(
0,d[
1]-(c||
0))+(d[
2]||
"px"):b}
function
eb(
a,b,c,d,e){
for(
var f=c===(d?
"border":
"content")?
4:
"width"===b?
1:
0,g=
0;
4>f;f+=
2)
"margin"===c&&(g+=n.
css(a,c+V[f],!
0,e)),d?(
"content"===c&&(g-=n.
css(a,
"padding"+V[f],!
0,e)),
"margin"!==c&&(g-=n.
css(a,
"border"+V[f]+
"Width",!
0,e))):(g+=n.
css(a,
"padding"+V[f],!
0,e),
"padding"!==c&&(g+=n.
css(a,
"border"+V[f]+
"Width",!
0,e)));
return g}
function
fb(
a,b,c){
var d=!
0,e=
"width"===b?a.
offsetWidth:a.
offsetHeight,f=
Ra(a),g=l.
boxSizing&&
"border-box"===n.
css(a,
"boxSizing",!
1,f);
if(
0>=e||
null==e){
if(e=
Sa(a,b,f),(
0>e||
null==e)&&(e=a.
style[b]),
Oa.
test(e))
return e;d=g&&(l.
boxSizingReliable()||e===a.
style[b]),e=
parseFloat(e)||
0}
return e+
eb(a,b,c||(g?
"border":
"content"),d,f)+
"px"}n.
extend({
cssHooks:{
opacity:{
get:
function(
a,b){
if(b){
var c=
Sa(a,
"opacity");
return
""===c?
"1":c}}}},
cssNumber:{
animationIterationCount:!
0,
columnCount:!
0,
fillOpacity:!
0,
flexGrow:!
0,
flexShrink:!
0,
fontWeight:!
0,
lineHeight:!
0,
opacity:!
0,
order:!
0,
orphans:!
0,
widows:!
0,
zIndex:!
0,
zoom:!
0},
cssProps:{
"float":l.
cssFloat?
"cssFloat":
"styleFloat"},
style:
function(
a,b,c,d){
if(a&&
3!==a.
nodeType&&
8!==a.
nodeType&&a.
style){
var e,f,g,h=n.
camelCase(b),i=a.
style;
if(b=n.
cssProps[h]||(n.
cssProps[h]=
bb(h)||h),g=n.
cssHooks[b]||n.
cssHooks[h],
void
0===c)
return g&&
"get"
in g&&
void
0!==(e=g.
get(a,!
1,d))?
e:i[b];
if(f=
typeof c,
"string"===f&&(e=U.
exec(c))&&e[
1]&&(c=
X(a,b,e),f=
"number"),
null!=c&&c===c&&(
"number"===f&&(c+=e&&e[
3]||(n.
cssNumber[h]?
"":
"px")),l.
clearCloneStyle||
""!==c||
0!==b.
indexOf(
"background")||(i[b]=
"inherit"),!(g&&
"set"
in g&&
void
0===(c=g.
set(a,c,d)))))
try{i[b]=c}
catch(j){}}},
css:
function(
a,b,c,d){
var e,f,g,h=n.
camelCase(b);
return b=n.
cssProps[h]||(n.
cssProps[h]=
bb(h)||h),g=n.
cssHooks[b]||n.
cssHooks[h],g&&
"get"
in g&&(f=g.
get(a,!
0,c)),
void
0===f&&(f=
Sa(a,b,d)),
"normal"===f&&b
in $a&&(f=$a[b]),
""===c||c?(e=
parseFloat(f),c===!
0||
isFinite(e)?e||
0:f):f}}),n.
each([
"height",
"width"],
function(
a,b){n.
cssHooks[b]={
get:
function(
a,c,d){
return c?
Xa.
test(n.
css(a,
"display"))&&
0===a.
offsetWidth?
Pa(a,
Za,
function(
){
return
fb(a,b,d)}):
fb(a,b,d):
void
0},
set:
function(
a,c,d){
var e=d&&
Ra(a);
return
db(a,c,d?
eb(a,b,d,l.
boxSizing&&
"border-box"===n.
css(a,
"boxSizing",!
1,e),e):
0)}}}),l.
opacity||(n.
cssHooks.
opacity={
get:
function(
a,b){
return
Wa.
test((b&&a.
currentStyle?a.
currentStyle.
filter:a.
style.
filter)||
"")?
.01*
parseFloat(
RegExp.
$1)+
"":b?
"1":
""},
set:
function(
a,b){
var c=a.
style,d=a.
currentStyle,e=n.
isNumeric(b)?
"alpha(opacity="+
100*b+
")":
"",f=d&&d.
filter||c.
filter||
"";c.
zoom=
1,(b>=
1||
""===b)&&
""===n.
trim(f.
replace(
Va,
""))&&c.
removeAttribute&&(c.
removeAttribute(
"filter"),
""===b||d&&!d.
filter)||(c.
filter=
Va.
test(f)?f.
replace(
Va,e):f+
" "+e)}}),n.
cssHooks.
marginRight=
Ua(l.
reliableMarginRight,
function(
a,b){
return b?
Pa(a,{
display:
"inline-block"},
Sa,[a,
"marginRight"]):
void
0}),n.
cssHooks.
marginLeft=
Ua(l.
reliableMarginLeft,
function(
a,b){
return b?(
parseFloat(
Sa(a,
"marginLeft"))||(n.
contains(a.
ownerDocument,a)?a.
getBoundingClientRect().
left-
Pa(a,{
-
marginLeft:
0},
function(
){
return a.
getBoundingClientRect().
left}):
0))+
"px":
void
0}),n.
each({
margin:
"",
padding:
"",
border:
"Width"},
function(
a,b){n.
cssHooks[a+b]={
expand:
function(
c){
for(
var d=
0,e={},f=
"string"==
typeof c?c.
split(
" "):[c];
4>d;d++)e[a+V[d]+b]=f[d]||f[d-
2]||f[
0];
return e}},
Na.
test(a)||(n.
cssHooks[a+b].
set=db)}),n.
fn.
extend({
css:
function(
a,b){
return
Y(
this,
function(
a,b,c){
var d,e,f={},g=
0;
if(n.
isArray(b)){
for(d=
Ra(a),e=b.
length;e>g;g++)f[b[g]]=n.
css(a,b[g],!
1,d);
return f}
return
void
0!==c?n.
style(a,b,c):n.
css(a,b)},a,b,
arguments.
length>
1)},
show:
function(
){
return
cb(
this,!
0)},
hide:
function(
){
return
cb(
this)},
toggle:
function(
a){
return
"boolean"==
typeof a?a?
this.
show():
this.
hide():
this.
each(
function(
){
W(
this)?
n(
this).
show():
n(
this).
hide()})}});
function
gb(
a,b,c,d,e){
return
new gb.
prototype.
init(a,b,c,d,e)}n.
Tween=gb,gb.
prototype={
constructor:gb,
init:
function(
a,b,c,d,e,f){
this.
elem=a,
this.
prop=c,
this.
easing=e||n.
easing.
_default,
this.
options=b,
this.
start=
this.
now=
this.
cur(),
this.
end=d,
this.
unit=f||(n.
cssNumber[c]?
"":
"px")},
cur:
function(
){
var a=gb.
propHooks[
this.
prop];
return a&&a.
get?a.
get(
this):gb.
propHooks.
_default.
get(
this)},
run:
function(
a){
var b,c=gb.
propHooks[
this.
prop];
return
this.
options.
duration?
this.
pos=b=n.
easing[
this.
easing](a,
this.
options.
duration*a,
0,
1,
this.
options.
duration):
this.
pos=b=a,
this.
now=(
this.
end-
this.
start)*b+
this.
start,
this.
options.
step&&
this.
options.
step.
call(
this.
elem,
this.
now,
this),c&&c.
set?c.
set(
this):gb.
propHooks.
_default.
set(
this),
this}},gb.
prototype.
init.
prototype=gb.
prototype,gb.
propHooks={
_default:{
get:
function(
a){
var b;
return
1!==a.
elem.
nodeType||
null!=a.
elem[a.
prop]&&
null==a.
elem.
style[a.
prop]?a.
elem[a.
prop]:(b=n.
css(a.
elem,a.
prop,
""),b&&
"auto"!==b?
b:
0)},
set:
function(
a){n.
fx.
step[a.
prop]?n.
fx.
step[a.
prop](a):
1!==a.
elem.
nodeType||
null==a.
elem.
style[n.
cssProps[a.
prop]]&&!n.
cssHooks[a.
prop]?a.
elem[a.
prop]=a.
now:n.
style(a.
elem,a.
prop,a.
now+a.
unit)}}},gb.
propHooks.
scrollTop=gb.
propHooks.
scrollLeft={
set:
function(
a){a.
elem.
nodeType&&a.
elem.
parentNode&&(a.
elem[a.
prop]=a.
now)}},n.
easing={
linear:
function(
a){
return a},
swing:
function(
a){
return
.5-
Math.
cos(a*
Math.
PI)/
2},
_default:
"swing"},n.
fx=gb.
prototype.
init,n.
fx.
step={};
var hb,ib,jb=
/^(?:toggle|show|hide)$/,kb=
/queueHooks$/;
function
lb(
){
return a.
setTimeout(
function(
){hb=
void
0}),hb=n.
now()}
function
mb(
a,b){
var c,d={
height:a},e=
0;
for(b=b?
1:
0;
4>e;e+=
2-b)c=V[e],d[
"margin"+c]=d[
"padding"+c]=a;
return b&&(d.
opacity=d.
width=a),d}
function
nb(
a,b,c){
for(
var d,e=(qb.
tweeners[b]||[]).
concat(qb.
tweeners[
"*"]),f=
0,g=e.
length;g>f;f++)
if(d=e[f].
call(c,b,a))
return d}
function
ob(
a,b,c){
var d,e,f,g,h,i,j,k,m=
this,o={},p=a.
style,q=a.
nodeType&&
W(a),r=n.
_data(a,
"fxshow");c.
queue||(h=n.
_queueHooks(a,
"fx"),
null==h.
unqueued&&(h.
unqueued=
0,i=h.
empty.
fire,h.
empty.
fire=
function(
){h.
unqueued||
i()}),h.
unqueued++,m.
always(
function(
){m.
always(
function(
){h.
unqueued--,n.
queue(a,
"fx").
length||h.
empty.
fire()})})),
1===a.
nodeType&&(
"height"
in b||
"width"
in b)&&(c.
overflow=[p.
overflow,p.
overflowX,p.
overflowY],j=n.
css(a,
"display"),k=
"none"===j?n.
_data(a,
"olddisplay")||
Ma(a.
nodeName):j,
"inline"===k&&
"none"===n.
css(a,
"float")&&(l.
inlineBlockNeedsLayout&&
"inline"!==
Ma(a.
nodeName)?p.
zoom=
1:p.
display=
"inline-block")),c.
overflow&&(p.
overflow=
"hidden",l.
shrinkWrapBlocks()||m.
always(
function(
){p.
overflow=c.
overflow[
0],p.
overflowX=c.
overflow[
1],p.
overflowY=c.
overflow[
2]}));
for(d
in b)
if(e=b[d],jb.
exec(e)){
if(
delete b[d],f=f||
"toggle"===e,e===(q?
"hide":
"show")){
if(
"show"!==e||!r||
void
0===r[d])
continue;q=!
0}o[d]=r&&r[d]||n.
style(a,d)}
else j=
void
0;
if(n.
isEmptyObject(o))
"inline"===(
"none"===j?
Ma(a.
nodeName):j)&&(p.
display=j);
else{r?
"hidden"
in r&&(q=r.
hidden):r=n.
_data(a,
"fxshow",{}),f&&(r.
hidden=!q),q?
n(a).
show():m.
done(
function(
){
n(a).
hide()}),m.
done(
function(
){
var b;n.
_removeData(a,
"fxshow");
for(b
in o)n.
style(a,b,o[b])});
for(d
in o)g=
nb(q?r[d]:
0,d,m),d
in r||(r[d]=g.
start,q&&(g.
end=g.
start,g.
start=
"width"===d||
"height"===d?
1:
0))}}
function
pb(
a,b){
var c,d,e,f,g;
for(c
in a)
if(d=n.
camelCase(c),e=b[d],f=a[c],n.
isArray(f)&&(e=f[
1],f=a[c]=f[
0]),c!==d&&(a[d]=f,
delete a[c]),g=n.
cssHooks[d],g&&
"expand"
in g){f=g.
expand(f),
delete a[d];
for(c
in f)c
in a||(a[c]=f[c],b[c]=e)}
else b[d]=e}
function
qb(
a,b,c){
var d,e,f=
0,g=qb.
prefilters.
length,h=n.
Deferred().
always(
function(
){
delete i.
elem}),i=
function(
){
if(e)
return!
1;
for(
var b=hb||
lb(),c=
Math.
max(
0,j.
startTime+j.
duration-b),d=c/j.
duration||
0,f=
1-d,g=
0,i=j.
tweens.
length;i>g;g++)j.
tweens[g].
run(f);
return h.
notifyWith(a,[j,f,c]),
1>f&&i?
c:(h.
resolveWith(a,[j]),!
1)},j=h.
promise({
elem:a,
props:n.
extend({},b),
opts:n.
extend(!
0,{
specialEasing:{},
easing:n.
easing.
_default},c),
originalProperties:b,
originalOptions:c,
startTime:hb||
lb(),
duration:c.
duration,
tweens:[],
createTween:
function(
b,c){
var d=n.
Tween(a,j.
opts,b,c,j.
opts.
specialEasing[b]||j.
opts.
easing);
return j.
tweens.
push(d),d},
stop:
function(
b){
var c=
0,d=b?j.
tweens.
length:
0;
if(e)
return
this;
for(e=!
0;d>c;c++)j.
tweens[c].
run(
1);
return b?(h.
notifyWith(a,[j,
1,
0]),h.
resolveWith(a,[j,b])):h.
rejectWith(a,[j,b]),
this}}),k=j.
props;
for(
pb(k,j.
opts.
specialEasing);g>f;f++)
if(d=qb.
prefilters[f].
call(j,a,k,j.
opts))
return n.
isFunction(d.
stop)&&(n.
_queueHooks(j.
elem,j.
opts.
queue).
stop=n.
proxy(d.
stop,d)),d;
return n.
map(k,nb,j),n.
isFunction(j.
opts.
start)&&j.
opts.
start.
call(a,j),n.
fx.
timer(n.
extend(i,{
elem:a,
anim:j,
queue:j.
opts.
queue})),j.
progress(j.
opts.
progress).
done(j.
opts.
done,j.
opts.
complete).
fail(j.
opts.
fail).
always(j.
opts.
always)}n.
Animation=n.
extend(qb,{
tweeners:{
"*":[
function(
a,b){
var c=
this.
createTween(a,b);
return
X(c.
elem,a,U.
exec(b),c),c}]},
tweener:
function(
a,b){n.
isFunction(a)?(b=a,a=[
"*"]):a=a.
match(G);
for(
var c,d=
0,e=a.
length;e>d;d++)c=a[d],qb.
tweeners[c]=qb.
tweeners[c]||[],qb.
tweeners[c].
unshift(b)},
prefilters:[ob],
prefilter:
function(
a,b){b?qb.
prefilters.
unshift(a):qb.
prefilters.
push(a)}}),n.
speed=
function(
a,b,c){
var d=a&&
"object"==
typeof a?n.
extend({},a):{
complete:c||!c&&b||n.
isFunction(a)&&a,
duration:a,
easing:c&&b||b&&!n.
isFunction(b)&&b};
return d.
duration=n.
fx.
off?
0:
"number"==
typeof d.
duration?d.
duration:d.
duration
in n.
fx.
speeds?n.
fx.
speeds[d.
duration]:n.
fx.
speeds.
_default,
null!=d.
queue&&d.
queue!==!
0||(d.
queue=
"fx"),d.
old=d.
complete,d.
complete=
function(
){n.
isFunction(d.
old)&&d.
old.
call(
this),d.
queue&&n.
dequeue(
this,d.
queue)},d},n.
fn.
extend({
fadeTo:
function(
a,b,c,d){
return
this.
filter(W).
css(
"opacity",
0).
show().
end().
animate({
opacity:b},a,c,d)},
animate:
function(
a,b,c,d){
var e=n.
isEmptyObject(a),f=n.
speed(b,c,d),g=
function(
){
var b=
qb(
this,n.
extend({},a),f);(e||n.
_data(
this,
"finish"))&&b.
stop(!
0)};
return g.
finish=g,e||f.
queue===!
1?
this.
each(g):
this.
queue(f.
queue,g)},
stop:
function(
a,b,c){
var d=
function(
a){
var b=a.
stop;
delete a.
stop,
b(c)};
return
"string"!=
typeof a&&(c=b,b=a,a=
void
0),b&&a!==!
1&&
this.
queue(a||
"fx",[]),
this.
each(
function(
){
var b=!
0,e=
null!=a&&a+
"queueHooks",f=n.
timers,g=n.
_data(
this);
if(e)g[e]&&g[e].
stop&&
d(g[e]);
else
for(e
in g)g[e]&&g[e].
stop&&kb.
test(e)&&
d(g[e]);
for(e=f.
length;e--;)f[e].
elem!==
this||
null!=a&&f[e].
queue!==a||(f[e].
anim.
stop(c),b=!
1,f.
splice(e,
1));!b&&c||n.
dequeue(
this,a)})},
finish:
function(
a){
return a!==!
1&&(a=a||
"fx"),
this.
each(
function(
){
var b,c=n.
_data(
this),d=c[a+
"queue"],e=c[a+
"queueHooks"],f=n.
timers,g=d?d.
length:
0;
for(c.
finish=!
0,n.
queue(
this,a,[]),e&&e.
stop&&e.
stop.
call(
this,!
0),b=f.
length;b--;)f[b].
elem===
this&&f[b].
queue===a&&(f[b].
anim.
stop(!
0),f.
splice(b,
1));
for(b=
0;g>b;b++)d[b]&&d[b].
finish&&d[b].
finish.
call(
this);
delete c.
finish})}}),n.
each([
"toggle",
"show",
"hide"],
function(
a,b){
var c=n.
fn[b];n.
fn[b]=
function(
a,d,e){
return
null==a||
"boolean"==
typeof a?c.
apply(
this,
arguments):
this.
animate(
mb(b,!
0),a,d,e)}}),n.
each({
slideDown:
mb(
"show"),
slideUp:
mb(
"hide"),
slideToggle:
mb(
"toggle"),
fadeIn:{
opacity:
"show"},
fadeOut:{
opacity:
"hide"},
fadeToggle:{
opacity:
"toggle"}},
function(
a,b){n.
fn[a]=
function(
a,c,d){
return
this.
animate(b,a,c,d)}}),n.
timers=[],n.
fx.
tick=
function(
){
var a,b=n.
timers,c=
0;
for(hb=n.
now();c<b.
length;c++)a=b[c],
a()||b[c]!==a||b.
splice(c--,
1);b.
length||n.
fx.
stop(),hb=
void
0},n.
fx.
timer=
function(
a){n.
timers.
push(a),
a()?n.
fx.
start():n.
timers.
pop()},n.
fx.
interval=
13,n.
fx.
start=
function(
){ib||(ib=a.
setInterval(n.
fx.
tick,n.
fx.
interval))},n.
fx.
stop=
function(
){a.
clearInterval(ib),ib=
null},n.
fx.
speeds={
slow:
600,
fast:
200,
_default:
400},n.
fn.
delay=
function(
b,c){
return b=n.
fx?n.
fx.
speeds[b]||
b:b,c=c||
"fx",
this.
queue(c,
function(
c,d){
var e=a.
setTimeout(c,b);d.
stop=
function(
){a.
clearTimeout(e)}})},
function(
){
var a,b=d.
createElement(
"input"),c=d.
createElement(
"div"),e=d.
createElement(
"select"),f=e.
appendChild(d.
createElement(
"option"));c=d.
createElement(
"div"),c.
setAttribute(
"className",
"t"),c.
innerHTML=
" <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",a=c.
getElementsByTagName(
"a")[
0],b.
setAttribute(
"type",
"checkbox"),c.
appendChild(b),a=c.
getElementsByTagName(
"a")[
0],a.
style.
cssText=
"top:1px",l.
getSetAttribute=
"t"!==c.
className,l.
style=
/top/.
test(a.
getAttribute(
"style")),l.
hrefNormalized=
"/a"===a.
getAttribute(
"href"),l.
checkOn=!!b.
value,l.
optSelected=f.
selected,l.
enctype=!!d.
createElement(
"form").
enctype,e.
disabled=!
0,l.
optDisabled=!f.
disabled,b=d.
createElement(
"input"),b.
setAttribute(
"value",
""),l.
input=
""===b.
getAttribute(
"value"),b.
value=
"t",b.
setAttribute(
"type",
"radio"),l.
radioValue=
"t"===b.
value}();
var rb=
/\r/g,sb=
/[\x20\t\r\n\f]+/g;n.
fn.
extend({
val:
function(
a){
var b,c,d,e=
this[
0];{
if(
arguments.
length)
return d=n.
isFunction(a),
this.
each(
function(
c){
var e;
1===
this.
nodeType&&(e=d?a.
call(
this,c,
n(
this).
val()):a,
null==e?e=
"":
"number"==
typeof e?e+=
"":n.
isArray(e)&&(e=n.
map(e,
function(
a){
return
null==a?
"":a+
""})),b=n.
valHooks[
this.
type]||n.
valHooks[
this.
nodeName.
toLowerCase()],b&&
"set"
in b&&
void
0!==b.
set(
this,e,
"value")||(
this.
value=e))});
if(e)
return b=n.
valHooks[e.
type]||n.
valHooks[e.
nodeName.
toLowerCase()],b&&
"get"
in b&&
void
0!==(c=b.
get(e,
"value"))?
c:(c=e.
value,
"string"==
typeof c?c.
replace(rb,
""):
null==c?
"":c)}}}),n.
extend({
valHooks:{
option:{
get:
function(
a){
var b=n.
find.
attr(a,
"value");
return
null!=b?
b:n.
trim(n.
text(a)).
replace(sb,
" ")}},
select:{
get:
function(
a){
for(
var b,c,d=a.
options,e=a.
selectedIndex,f=
"select-one"===a.
type||
0>e,g=f?
null:[],h=f?e+
1:d.
length,i=
0>e?
h:f?
e:
0;h>i;i++)
if(c=d[i],(c.
selected||i===e)&&(l.
optDisabled?!c.
disabled:
null===c.
getAttribute(
"disabled"))&&(!c.
parentNode.
disabled||!n.
nodeName(c.
parentNode,
"optgroup"))){
if(b=
n(c).
val(),f)
return b;g.
push(b)}
return g},
set:
function(
a,b){
var c,d,e=a.
options,f=n.
makeArray(b),g=e.
length;
while(g--)
if(d=e[g],n.
inArray(n.
valHooks.
option.
get(d),f)>-
1)
try{d.
selected=c=!
0}
catch(h){d.
scrollHeight}
else d.
selected=!
1;
return c||(a.
selectedIndex=-
1),e}}}}),n.
each([
"radio",
"checkbox"],
function(
){n.
valHooks[
this]={
set:
function(
a,b){
return n.
isArray(b)?a.
checked=n.
inArray(
n(a).
val(),b)>-
1:
void
0}},l.
checkOn||(n.
valHooks[
this].
get=
function(
a){
return
null===a.
getAttribute(
"value")?
"on":a.
value})});
var tb,ub,vb=n.
expr.
attrHandle,wb=
/^(?:checked|selected)$/i,xb=l.
getSetAttribute,yb=l.
input;n.
fn.
extend({
attr:
function(
a,b){
return
Y(
this,n.
attr,a,b,
arguments.
length>
1)},
removeAttr:
function(
a){
return
this.
each(
function(
){n.
removeAttr(
this,a)})}}),n.
extend({
attr:
function(
a,b,c){
var d,e,f=a.
nodeType;
if(
3!==f&&
8!==f&&
2!==f)
return
"undefined"==
typeof a.
getAttribute?n.
prop(a,b,c):(
1===f&&n.
isXMLDoc(a)||(b=b.
toLowerCase(),e=n.
attrHooks[b]||(n.
expr.
match.
bool.
test(b)?
ub:tb)),
void
0!==c?
null===c?
void n.
removeAttr(a,b):e&&
"set"
in e&&
void
0!==(d=e.
set(a,c,b))?
d:(a.
setAttribute(b,c+
""),c):e&&
"get"
in e&&
null!==(d=e.
get(a,b))?
d:(d=n.
find.
attr(a,b),
null==d?
void
0:d))},
attrHooks:{
type:{
set:
function(
a,b){
if(!l.
radioValue&&
"radio"===b&&n.
nodeName(a,
"input")){
var c=a.
value;
return a.
setAttribute(
"type",b),c&&(a.
value=c),b}}}},
removeAttr:
function(
a,b){
var c,d,e=
0,f=b&&b.
match(G);
if(f&&
1===a.
nodeType)
while(c=f[e++])d=n.
propFix[c]||c,n.
expr.
match.
bool.
test(c)?yb&&xb||!wb.
test(c)?a[d]=!
1:a[n.
camelCase(
"default-"+c)]=a[d]=!
1:n.
attr(a,c,
""),a.
removeAttribute(xb?
c:d)}}),ub={
set:
function(
a,b,c){
return b===!
1?n.
removeAttr(a,c):yb&&xb||!wb.
test(c)?a.
setAttribute(!xb&&n.
propFix[c]||c,c):a[n.
camelCase(
"default-"+c)]=a[c]=!
0,c}},n.
each(n.
expr.
match.
bool.
source.
match(
/\w+/g),
function(
a,b){
var c=vb[b]||n.
find.
attr;yb&&xb||!wb.
test(b)?vb[b]=
function(
a,b,d){
var e,f;
return d||(f=vb[b],vb[b]=e,e=
null!=
c(a,b,d)?b.
toLowerCase():
null,vb[b]=f),e}:vb[b]=
function(
a,b,c){
return c?
void
0:a[n.
camelCase(
"default-"+b)]?b.
toLowerCase():
null}}),yb&&xb||(n.
attrHooks.
value={
set:
function(
a,b,c){
return n.
nodeName(a,
"input")?
void(a.
defaultValue=b):tb&&tb.
set(a,b,c)}}),xb||(tb={
set:
function(
a,b,c){
var d=a.
getAttributeNode(c);
return d||a.
setAttributeNode(d=a.
ownerDocument.
createAttribute(c)),d.
value=b+=
"",
"value"===c||b===a.
getAttribute(c)?
b:
void
0}},vb.
id=vb.
name=vb.
coords=
function(
a,b,c){
var d;
return c?
void
0:(d=a.
getAttributeNode(b))&&
""!==d.
value?d.
value:
null},n.
valHooks.
button={
get:
function(
a,b){
var c=a.
getAttributeNode(b);
return c&&c.
specified?c.
value:
void
0},
set:tb.
set},n.
attrHooks.
contenteditable={
set:
function(
a,b,c){tb.
set(a,
""===b?!
1:b,c)}},n.
each([
"width",
"height"],
function(
a,b){n.
attrHooks[b]={
set:
function(
a,c){
return
""===c?(a.
setAttribute(b,
"auto"),c):
void
0}}})),l.
style||(n.
attrHooks.
style={
get:
function(
a){
return a.
style.
cssText||
void
0},
set:
function(
a,b){
return a.
style.
cssText=b+
""}});
var zb=
/^(?:input|select|textarea|button|object)$/i,
Ab=
/^(?:a|area)$/i;n.
fn.
extend({
prop:
function(
a,b){
return
Y(
this,n.
prop,a,b,
arguments.
length>
1)},
removeProp:
function(
a){
return a=n.
propFix[a]||a,
this.
each(
function(
){
try{
this[a]=
void
0,
delete
this[a]}
catch(b){}})}}),n.
extend({
prop:
function(
a,b,c){
var d,e,f=a.
nodeType;
if(
3!==f&&
8!==f&&
2!==f)
return
1===f&&n.
isXMLDoc(a)||(b=n.
propFix[b]||b,e=n.
propHooks[b]),
void
0!==c?e&&
"set"
in e&&
void
0!==(d=e.
set(a,c,b))?
d:a[b]=
c:e&&
"get"
in e&&
null!==(d=e.
get(a,b))?
d:a[b]},
propHooks:{
tabIndex:{
get:
function(
a){
var b=n.
find.
attr(a,
"tabindex");
return b?
parseInt(b,
10):zb.
test(a.
nodeName)||
Ab.
test(a.
nodeName)&&a.
href?
0:-
1}}},
propFix:{
"for":
"htmlFor",
"class":
"className"}}),l.
hrefNormalized||n.
each([
"href",
"src"],
function(
a,b){n.
propHooks[b]={
get:
function(
a){
return a.
getAttribute(b,
4)}}}),l.
optSelected||(n.
propHooks.
selected={
get:
function(
a){
var b=a.
parentNode;
return b&&(b.
selectedIndex,b.
parentNode&&b.
parentNode.
selectedIndex),
null},
set:
function(
a){
var b=a.
parentNode;b&&(b.
selectedIndex,b.
parentNode&&b.
parentNode.
selectedIndex)}}),n.
each([
"tabIndex",
"readOnly",
"maxLength",
"cellSpacing",
"cellPadding",
"rowSpan",
"colSpan",
"useMap",
"frameBorder",
"contentEditable"],
function(
){n.
propFix[
this.
toLowerCase()]=
this}),l.
enctype||(n.
propFix.
enctype=
"encoding");
var
Bb=
/[\t\r\n\f]/g;
function
Cb(
a){
return n.
attr(a,
"class")||
""}n.
fn.
extend({
addClass:
function(
a){
var b,c,d,e,f,g,h,i=
0;
if(n.
isFunction(a))
return
this.
each(
function(
b){
n(
this).
addClass(a.
call(
this,b,
Cb(
this)))});
if(
"string"==
typeof a&&a){b=a.
match(G)||[];
while(c=
this[i++])
if(e=
Cb(c),d=
1===c.
nodeType&&(
" "+e+
" ").
replace(
Bb,
" ")){g=
0;
while(f=b[g++])d.
indexOf(
" "+f+
" ")<
0&&(d+=f+
" ");h=n.
trim(d),e!==h&&n.
attr(c,
"class",h)}}
return
this},
removeClass:
function(
a){
var b,c,d,e,f,g,h,i=
0;
if(n.
isFunction(a))
return
this.
each(
function(
b){
n(
this).
removeClass(a.
call(
this,b,
Cb(
this)))});
if(!
arguments.
length)
return
this.
attr(
"class",
"");
if(
"string"==
typeof a&&a){b=a.
match(G)||[];
while(c=
this[i++])
if(e=
Cb(c),d=
1===c.
nodeType&&(
" "+e+
" ").
replace(
Bb,
" ")){g=
0;
while(f=b[g++])
while(d.
indexOf(
" "+f+
" ")>-
1)d=d.
replace(
" "+f+
" ",
" ");h=n.
trim(d),e!==h&&n.
attr(c,
"class",h)}}
return
this},
toggleClass:
function(
a,b){
var c=
typeof a;
return
"boolean"==
typeof b&&
"string"===c?b?
this.
addClass(a):
this.
removeClass(a):n.
isFunction(a)?
this.
each(
function(
c){
n(
this).
toggleClass(a.
call(
this,c,
Cb(
this),b),b)}):
this.
each(
function(
){
var b,d,e,f;
if(
"string"===c){d=
0,e=
n(
this),f=a.
match(G)||[];
while(b=f[d++])e.
hasClass(b)?e.
removeClass(b):e.
addClass(b)}
else
void
0!==a&&
"boolean"!==c||(b=
Cb(
this),b&&n.
_data(
this,
"__className__",b),n.
attr(
this,
"class",b||a===!
1?
"":n.
_data(
this,
"__className__")||
""))})},
hasClass:
function(
a){
var b,c,d=
0;b=
" "+a+
" ";
while(c=
this[d++])
if(
1===c.
nodeType&&(
" "+
Cb(c)+
" ").
replace(
Bb,
" ").
indexOf(b)>-
1)
return!
0;
return!
1}}),n.
each(
"blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".
split(
" "),
function(
a,b){n.
fn[b]=
function(
a,c){
return
arguments.
length>
0?
this.
on(b,
null,a,c):
this.
trigger(b)}}),n.
fn.
extend({
hover:
function(
a,b){
return
this.
mouseenter(a).
mouseleave(b||a)}});
var
Db=a.
location,
Eb=n.
now(),
Fb=
/\?/,
Gb=
/(,)|(\[|{)|(}|])|"(?:[^"\\\r\n]|\\["\\\/bfnrt]|\\u[\da-fA-F]{4})*"\s*:?|true|false|null|-?(?!0\d)\d+(?:\.\d+|)(?:[eE][+-]?\d+|)/g;n.
parseJSON=
function(
b){
if(a.
JSON&&a.
JSON.
parse)
return a.
JSON.
parse(b+
"");
var c,d=
null,e=n.
trim(b+
"");
return e&&!n.
trim(e.
replace(
Gb,
function(
a,b,e,f){
return c&&b&&(d=
0),
0===d?
a:(c=e||b,d+=!f-!e,
"")}))?
Function(
"return "+e)():n.
error(
"Invalid JSON: "+b)},n.
parseXML=
function(
b){
var c,d;
if(!b||
"string"!=
typeof b)
return
null;
try{a.
DOMParser?(d=
new a.
DOMParser,c=d.
parseFromString(b,
"text/xml")):(c=
new a.
ActiveXObject(
"Microsoft.XMLDOM"),c.
async=
"false",c.
loadXML(b))}
catch(e){c=
void
0}
return c&&c.
documentElement&&!c.
getElementsByTagName(
"parsererror").
length||n.
error(
"Invalid XML: "+b),c};
var
Hb=
/#.*$/,
Ib=
/([?&])_=[^&]*/,
Jb=
/^(.*?):[ \t]*([^\r\n]*)\r?$/gm,
Kb=
/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,
Lb=
/^(?:GET|HEAD)$/,
Mb=
/^\/\//,
Nb=
/^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/,
Ob={},
Pb={},
Qb=
"*/".
concat(
"*"),
Rb=
Db.
href,
Sb=
Nb.
exec(
Rb.
toLowerCase())||[];
function
Tb(
a){
return
function(
b,c){
"string"!=
typeof b&&(c=b,b=
"*");
var d,e=
0,f=b.
toLowerCase().
match(G)||[];
if(n.
isFunction(c))
while(d=f[e++])
"+"===d.
charAt(
0)?(d=d.
slice(
1)||
"*",(a[d]=a[d]||[]).
unshift(c)):(a[d]=a[d]||[]).
push(c)}}
function
Ub(
a,b,c,d){
var e={},f=a===
Pb;
function
g(
h){
var i;
return e[h]=!
0,n.
each(a[h]||[],
function(
a,h){
var j=
h(b,c,d);
return
"string"!=
typeof j||f||e[j]?f?!(i=j):
void
0:(b.
dataTypes.
unshift(j),
g(j),!
1)}),i}
return
g(b.
dataTypes[
0])||!e[
"*"]&&
g(
"*")}
function
Vb(
a,b){
var c,d,e=n.
ajaxSettings.
flatOptions||{};
for(d
in b)
void
0!==b[d]&&((e[d]?
a:c||(c={}))[d]=b[d]);
return c&&n.
extend(!
0,a,c),a}
function
Wb(
a,b,c){
var d,e,f,g,h=a.
contents,i=a.
dataTypes;
while(
"*"===i[
0])i.
shift(),
void
0===e&&(e=a.
mimeType||b.
getResponseHeader(
"Content-Type"));
if(e)
for(g
in h)
if(h[g]&&h[g].
test(e)){i.
unshift(g);
break}
if(i[
0]
in c)f=i[
0];
else{
for(g
in c){
if(!i[
0]||a.
converters[g+
" "+i[
0]]){f=g;
break}d||(d=g)}f=f||d}
return f?(f!==i[
0]&&i.
unshift(f),c[f]):
void
0}
function
Xb(
a,b,c,d){
var e,f,g,h,i,j={},k=a.
dataTypes.
slice();
if(k[
1])
for(g
in a.
converters)j[g.
toLowerCase()]=a.
converters[g];f=k.
shift();
while(f)
if(a.
responseFields[f]&&(c[a.
responseFields[f]]=b),!i&&d&&a.
dataFilter&&(b=a.
dataFilter(b,a.
dataType)),i=f,f=k.
shift())
if(
"*"===f)f=i;
else
if(
"*"!==i&&i!==f){
if(g=j[i+
" "+f]||j[
"* "+f],!g)
for(e
in j)
if(h=e.
split(
" "),h[
1]===f&&(g=j[i+
" "+h[
0]]||j[
"* "+h[
0]])){g===!
0?g=j[e]:j[e]!==!
0&&(f=h[
0],k.
unshift(h[
1]));
break}
if(g!==!
0)
if(g&&a[
"throws"])b=
g(b);
else
try{b=
g(b)}
catch(l){
return{
state:
"parsererror",
error:g?
l:
"No conversion from "+i+
" to "+f}}}
return{
state:
"success",
data:b}}n.
extend({
active:
0,
lastModified:{},
etag:{},
ajaxSettings:{
url:
Rb,
type:
"GET",
isLocal:
Kb.
test(
Sb[
1]),
global:!
0,
processData:!
0,
async:!
0,
contentType:
"application/x-www-form-urlencoded; charset=UTF-8",
accepts:{
"*":
Qb,
text:
"text/plain",
html:
"text/html",
xml:
"application/xml, text/xml",
json:
"application/json, text/javascript"},
contents:{
xml:
/\bxml\b/,
html:
/\bhtml/,
json:
/\bjson\b/},
responseFields:{
xml:
"responseXML",
text:
"responseText",
json:
"responseJSON"},
converters:{
"* text":
String,
"text html":!
0,
"text json":n.
parseJSON,
"text xml":n.
parseXML},
flatOptions:{
url:!
0,
context:!
0}},
ajaxSetup:
function(
a,b){
return b?
Vb(
Vb(a,n.
ajaxSettings),b):
Vb(n.
ajaxSettings,a)},
ajaxPrefilter:
Tb(
Ob),
ajaxTransport:
Tb(
Pb),
ajax:
function(
b,c){
"object"==
typeof b&&(c=b,b=
void
0),c=c||{};
var d,e,f,g,h,i,j,k,l=n.
ajaxSetup({},c),m=l.
context||l,o=l.
context&&(m.
nodeType||m.
jquery)?
n(m):n.
event,p=n.
Deferred(),q=n.
Callbacks(
"once memory"),r=l.
statusCode||{},s={},t={},u=
0,v=
"canceled",w={
readyState:
0,
getResponseHeader:
function(
a){
var b;
if(
2===u){
if(!k){k={};
while(b=
Jb.
exec(g))k[b[
1].
toLowerCase()]=b[
2]}b=k[a.
toLowerCase()]}
return
null==b?
null:b},
getAllResponseHeaders:
function(
){
return
2===u?
g:
null},
setRequestHeader:
function(
a,b){
var c=a.
toLowerCase();
return u||(a=t[c]=t[c]||a,s[a]=b),
this},
overrideMimeType:
function(
a){
return u||(l.
mimeType=a),
this},
statusCode:
function(
a){
var b;
if(a)
if(
2>u)
for(b
in a)r[b]=[r[b],a[b]];
else w.
always(a[w.
status]);
return
this},
abort:
function(
a){
var b=a||v;
return j&&j.
abort(b),
y(
0,b),
this}};
if(p.
promise(w).
complete=q.
add,w.
success=w.
done,w.
error=w.
fail,l.
url=((b||l.
url||
Rb)+
"").
replace(
Hb,
"").
replace(
Mb,
Sb[
1]+
"//"),l.
type=c.
method||c.
type||l.
method||l.
type,l.
dataTypes=n.
trim(l.
dataType||
"*").
toLowerCase().
match(G)||[
""],
null==l.
crossDomain&&(d=
Nb.
exec(l.
url.
toLowerCase()),l.
crossDomain=!(!d||d[
1]===
Sb[
1]&&d[
2]===
Sb[
2]&&(d[
3]||(
"http:"===d[
1]?
"80":
"443"))===(
Sb[
3]||(
"http:"===
Sb[
1]?
"80":
"443")))),l.
data&&l.
processData&&
"string"!=
typeof l.
data&&(l.
data=n.
param(l.
data,l.
traditional)),
Ub(
Ob,l,c,w),
2===u)
return w;i=n.
event&&l.
global,i&&
0===n.
active++&&n.
event.
trigger(
"ajaxStart"),l.
type=l.
type.
toUpperCase(),l.
hasContent=!
Lb.
test(l.
type),f=l.
url,l.
hasContent||(l.
data&&(f=l.
url+=(
Fb.
test(f)?
"&":
"?")+l.
data,
delete l.
data),l.
cache===!
1&&(l.
url=
Ib.
test(f)?f.
replace(
Ib,
"$1_="+
Eb++):f+(
Fb.
test(f)?
"&":
"?")+
"_="+
Eb++)),l.
ifModified&&(n.
lastModified[f]&&w.
setRequestHeader(
"If-Modified-Since",n.
lastModified[f]),n.
etag[f]&&w.
setRequestHeader(
"If-None-Match",n.
etag[f])),(l.
data&&l.
hasContent&&l.
contentType!==!
1||c.
contentType)&&w.
setRequestHeader(
"Content-Type",l.
contentType),w.
setRequestHeader(
"Accept",l.
dataTypes[
0]&&l.
accepts[l.
dataTypes[
0]]?l.
accepts[l.
dataTypes[
0]]+(
"*"!==l.
dataTypes[
0]?
", "+
Qb+
"; q=0.01":
""):l.
accepts[
"*"]);
for(e
in l.
headers)w.
setRequestHeader(e,l.
headers[e]);
if(l.
beforeSend&&(l.
beforeSend.
call(m,w,l)===!
1||
2===u))
return w.
abort();v=
"abort";
for(e
in{
success:
1,
error:
1,
complete:
1})w[e](l[e]);
if(j=
Ub(
Pb,l,c,w)){
if(w.
readyState=
1,i&&o.
trigger(
"ajaxSend",[w,l]),
2===u)
return w;l.
async&&l.
timeout>
0&&(h=a.
setTimeout(
function(
){w.
abort(
"timeout")},l.
timeout));
try{u=
1,j.
send(s,y)}
catch(x){
if(!(
2>u))
throw x;
y(-
1,x)}}
else
y(-
1,
"No Transport");
function
y(
b,c,d,e){
var k,s,t,v,x,y=c;
2!==u&&(u=
2,h&&a.
clearTimeout(h),j=
void
0,g=e||
"",w.
readyState=b>
0?
4:
0,k=b>=
200&&
300>b||
304===b,d&&(v=
Wb(l,w,d)),v=
Xb(l,v,w,k),k?(l.
ifModified&&(x=w.
getResponseHeader(
"Last-Modified"),x&&(n.
lastModified[f]=x),x=w.
getResponseHeader(
"etag"),x&&(n.
etag[f]=x)),
204===b||
"HEAD"===l.
type?y=
"nocontent":
304===b?y=
"notmodified":(y=v.
state,s=v.
data,t=v.
error,k=!t)):(t=y,!b&&y||(y=
"error",
0>b&&(b=
0))),w.
status=b,w.
statusText=(c||y)+
"",k?p.
resolveWith(m,[s,y,w]):p.
rejectWith(m,[w,y,t]),w.
statusCode(r),r=
void
0,i&&o.
trigger(k?
"ajaxSuccess":
"ajaxError",[w,l,k?
s:t]),q.
fireWith(m,[w,y]),i&&(o.
trigger(
"ajaxComplete",[w,l]),--n.
active||n.
event.
trigger(
"ajaxStop")))}
return w},
getJSON:
function(
a,b,c){
return n.
get(a,b,c,
"json")},
getScript:
function(
a,b){
return n.
get(a,
void
0,b,
"script")}}),n.
each([
"get",
"post"],
function(
a,b){n[b]=
function(
a,c,d,e){
return n.
isFunction(c)&&(e=e||d,d=c,c=
void
0),n.
ajax(n.
extend({
url:a,
type:b,
dataType:e,
data:c,
success:d},n.
isPlainObject(a)&&a))}}),n.
_evalUrl=
function(
a){
return n.
ajax({
url:a,
type:
"GET",
dataType:
"script",
cache:!
0,
async:!
1,
global:!
1,
"throws":!
0})},n.
fn.
extend({
wrapAll:
function(
a){
if(n.
isFunction(a))
return
this.
each(
function(
b){
n(
this).
wrapAll(a.
call(
this,b))});
if(
this[
0]){
var b=
n(a,
this[
0].
ownerDocument).
eq(
0).
clone(!
0);
this[
0].
parentNode&&b.
insertBefore(
this[
0]),b.
map(
function(
){
var a=
this;
while(a.
firstChild&&
1===a.
firstChild.
nodeType)a=a.
firstChild;
return a}).
append(
this)}
return
this},
wrapInner:
function(
a){
return n.
isFunction(a)?
this.
each(
function(
b){
n(
this).
wrapInner(a.
call(
this,b))}):
this.
each(
function(
){
var b=
n(
this),c=b.
contents();c.
length?c.
wrapAll(a):b.
append(a)})},
wrap:
function(
a){
var b=n.
isFunction(a);
return
this.
each(
function(
c){
n(
this).
wrapAll(b?a.
call(
this,c):a)})},
unwrap:
function(
){
return
this.
parent().
each(
function(
){n.
nodeName(
this,
"body")||
n(
this).
replaceWith(
this.
childNodes)}).
end()}});
function
Yb(
a){
return a.
style&&a.
style.
display||n.
css(a,
"display")}
function
Zb(
a){
if(!n.
contains(a.
ownerDocument||d,a))
return!
0;
while(a&&
1===a.
nodeType){
if(
"none"===
Yb(a)||
"hidden"===a.
type)
return!
0;a=a.
parentNode}
return!
1}n.
expr.
filters.
hidden=
function(
a){
return l.
reliableHiddenOffsets()?a.
offsetWidth<=
0&&a.
offsetHeight<=
0&&!a.
getClientRects().
length:
Zb(a)},n.
expr.
filters.
visible=
function(
a){
return!n.
expr.
filters.
hidden(a)};
var $b=
/%20/g,_b=
/\[\]$/,ac=
/\r?\n/g,bc=
/^(?:submit|button|image|reset|file)$/i,cc=
/^(?:input|select|textarea|keygen)/i;
function
dc(
a,b,c,d){
var e;
if(n.
isArray(b))n.
each(b,
function(
b,e){c||_b.
test(a)?
d(a,e):
dc(a+
"["+(
"object"==
typeof e&&
null!=e?
b:
"")+
"]",e,c,d)});
else
if(c||
"object"!==n.
type(b))
d(a,b);
else
for(e
in b)
dc(a+
"["+e+
"]",b[e],c,d)}n.
param=
function(
a,b){
var c,d=[],e=
function(
a,b){b=n.
isFunction(b)?
b():
null==b?
"":b,d[d.
length]=
encodeURIComponent(a)+
"="+
encodeURIComponent(b)};
if(
void
0===b&&(b=n.
ajaxSettings&&n.
ajaxSettings.
traditional),n.
isArray(a)||a.
jquery&&!n.
isPlainObject(a))n.
each(a,
function(
){
e(
this.
name,
this.
value)});
else
for(c
in a)
dc(c,a[c],b,e);
return d.
join(
"&").
replace($b,
"+")},n.
fn.
extend({
serialize:
function(
){
return n.
param(
this.
serializeArray())},
serializeArray:
function(
){
return
this.
map(
function(
){
var a=n.
prop(
this,
"elements");
return a?n.
makeArray(a):
this}).
filter(
function(
){
var a=
this.
type;
return
this.
name&&!
n(
this).
is(
":disabled")&&cc.
test(
this.
nodeName)&&!bc.
test(a)&&(
this.
checked||!Z.
test(a))}).
map(
function(
a,b){
var c=
n(
this).
val();
return
null==c?
null:n.
isArray(c)?n.
map(c,
function(
a){
return{
name:b.
name,
value:a.
replace(ac,
"\r\n")}}):{
name:b.
name,
value:c.
replace(ac,
"\r\n")}}).
get()}}),n.
ajaxSettings.
xhr=
void
0!==a.
ActiveXObject?
function(
){
return
this.
isLocal?
ic():d.
documentMode>
8?
hc():
/^(get|post|head|put|delete|options)$/i.
test(
this.
type)&&
hc()||
ic()}:hc;
var ec=
0,fc={},gc=n.
ajaxSettings.
xhr();a.
attachEvent&&a.
attachEvent(
"onunload",
function(
){
for(
var a
in fc)fc[a](
void
0,!
0)}),l.
cors=!!gc&&
"withCredentials"
in gc,gc=l.
ajax=!!gc,gc&&n.
ajaxTransport(
function(
b){
if(!b.
crossDomain||l.
cors){
var c;
return{
send:
function(
d,e){
var f,g=b.
xhr(),h=++ec;
if(g.
open(b.
type,b.
url,b.
async,b.
username,b.
password),b.
xhrFields)
for(f
in b.
xhrFields)g[f]=b.
xhrFields[f];b.
mimeType&&g.
overrideMimeType&&g.
overrideMimeType(b.
mimeType),b.
crossDomain||d[
"X-Requested-With"]||(d[
"X-Requested-With"]=
"XMLHttpRequest");
for(f
in d)
void
0!==d[f]&&g.
setRequestHeader(f,d[f]+
"");g.
send(b.
hasContent&&b.
data||
null),c=
function(
a,d){
var f,i,j;
if(c&&(d||
4===g.
readyState))
if(
delete fc[h],c=
void
0,g.
onreadystatechange=n.
noop,d)
4!==g.
readyState&&g.
abort();
else{j={},f=g.
status,
"string"==
typeof g.
responseText&&(j.
text=g.
responseText);
try{i=g.
statusText}
catch(k){i=
""}f||!b.
isLocal||b.
crossDomain?
1223===f&&(f=
204):f=j.
text?
200:
404}j&&
e(f,i,j,g.
getAllResponseHeaders())},b.
async?
4===g.
readyState?a.
setTimeout(c):g.
onreadystatechange=fc[h]=
c:
c()},
abort:
function(
){c&&
c(
void
0,!
0)}}}});
function
hc(
){
try{
return
new a.
XMLHttpRequest}
catch(b){}}
function
ic(
){
try{
return
new a.
ActiveXObject(
"Microsoft.XMLHTTP")}
catch(b){}}n.
ajaxSetup({
accepts:{
script:
"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},
contents:{
script:
/\b(?:java|ecma)script\b/},
converters:{
"text script":
function(
a){
return n.
globalEval(a),a}}}),n.
ajaxPrefilter(
"script",
function(
a){
void
0===a.
cache&&(a.
cache=!
1),a.
crossDomain&&(a.
type=
"GET",a.
global=!
1)}),n.
ajaxTransport(
"script",
function(
a){
if(a.
crossDomain){
var b,c=d.
head||
n(
"head")[
0]||d.
documentElement;
return{
send:
function(
e,f){b=d.
createElement(
"script"),b.
async=!
0,a.
scriptCharset&&(b.
charset=a.
scriptCharset),b.
src=a.
url,b.
onload=b.
onreadystatechange=
function(
a,c){(c||!b.
readyState||
/loaded|complete/.
test(b.
readyState))&&(b.
onload=b.
onreadystatechange=
null,b.
parentNode&&b.
parentNode.
removeChild(b),b=
null,c||
f(
200,
"success"))},c.
insertBefore(b,c.
firstChild)},
abort:
function(
){b&&b.
onload(
void
0,!
0)}}}});
var jc=[],kc=
/(=)\?(?=&|$)|\?\?/;n.
ajaxSetup({
jsonp:
"callback",
jsonpCallback:
function(
){
var a=jc.
pop()||n.
expando+
"_"+
Eb++;
return
this[a]=!
0,a}}),n.
ajaxPrefilter(
"json jsonp",
function(
b,c,d){
var e,f,g,h=b.
jsonp!==!
1&&(kc.
test(b.
url)?
"url":
"string"==
typeof b.
data&&
0===(b.
contentType||
"").
indexOf(
"application/x-www-form-urlencoded")&&kc.
test(b.
data)&&
"data");
return h||
"jsonp"===b.
dataTypes[
0]?(e=b.
jsonpCallback=n.
isFunction(b.
jsonpCallback)?b.
jsonpCallback():b.
jsonpCallback,h?b[h]=b[h].
replace(kc,
"$1"+e):b.
jsonp!==!
1&&(b.
url+=(
Fb.
test(b.
url)?
"&":
"?")+b.
jsonp+
"="+e),b.
converters[
"script json"]=
function(
){
return g||n.
error(e+
" was not called"),g[
0]},b.
dataTypes[
0]=
"json",f=a[e],a[e]=
function(
){g=
arguments},d.
always(
function(
){
void
0===f?
n(a).
removeProp(e):a[e]=f,b[e]&&(b.
jsonpCallback=c.
jsonpCallback,jc.
push(e)),g&&n.
isFunction(f)&&
f(g[
0]),g=f=
void
0}),
"script"):
void
0}),n.
parseHTML=
function(
a,b,c){
if(!a||
"string"!=
typeof a)
return
null;
"boolean"==
typeof b&&(c=b,b=!
1),b=b||d;
var e=x.
exec(a),f=!c&&[];
return e?[b.
createElement(e[
1])]:(e=
ja([a],b,f),f&&f.
length&&
n(f).
remove(),n.
merge([],e.
childNodes))};
var lc=n.
fn.
load;n.
fn.
load=
function(
a,b,c){
if(
"string"!=
typeof a&&lc)
return lc.
apply(
this,
arguments);
var d,e,f,g=
this,h=a.
indexOf(
" ");
return h>-
1&&(d=n.
trim(a.
slice(h,a.
length)),a=a.
slice(
0,h)),n.
isFunction(b)?(c=b,b=
void
0):b&&
"object"==
typeof b&&(e=
"POST"),g.
length>
0&&n.
ajax({
url:a,
type:e||
"GET",
dataType:
"html",
data:b}).
done(
function(
a){f=
arguments,g.
html(d?
n(
"<div>").
append(n.
parseHTML(a)).
find(d):a)}).
always(c&&
function(
a,b){g.
each(
function(
){c.
apply(
this,f||[a.
responseText,b,a])})}),
this},n.
each([
"ajaxStart",
"ajaxStop",
"ajaxComplete",
"ajaxError",
"ajaxSuccess",
"ajaxSend"],
function(
a,b){n.
fn[b]=
function(
a){
return
this.
on(b,a)}}),n.
expr.
filters.
animated=
function(
a){
return n.
grep(n.
timers,
function(
b){
return a===b.
elem}).
length};
function
mc(
a){
return n.
isWindow(a)?
a:
9===a.
nodeType?a.
defaultView||a.
parentWindow:!
1}n.
offset={
setOffset:
function(
a,b,c){
var d,e,f,g,h,i,j,k=n.
css(a,
"position"),l=
n(a),m={};
"static"===k&&(a.
style.
position=
"relative"),h=l.
offset(),f=n.
css(a,
"top"),i=n.
css(a,
"left"),j=(
"absolute"===k||
"fixed"===k)&&n.
inArray(
"auto",[f,i])>-
1,j?(d=l.
position(),g=d.
top,e=d.
left):(g=
parseFloat(f)||
0,e=
parseFloat(i)||
0),n.
isFunction(b)&&(b=b.
call(a,c,n.
extend({},h))),
null!=b.
top&&(m.
top=b.
top-h.
top+g),
null!=b.
left&&(m.
left=b.
left-h.
left+e),
"using"
in b?b.
using.
call(a,m):l.
css(m)}},n.
fn.
extend({
offset:
function(
a){
if(
arguments.
length)
return
void
0===a?
this:
this.
each(
function(
b){n.
offset.
setOffset(
this,a,b)});
var b,c,d={
top:
0,
left:
0},e=
this[
0],f=e&&e.
ownerDocument;
if(f)
return b=f.
documentElement,n.
contains(b,e)?(
"undefined"!=
typeof e.
getBoundingClientRect&&(d=e.
getBoundingClientRect()),c=
mc(f),{
top:d.
top+(c.
pageYOffset||b.
scrollTop)-(b.
clientTop||
0),
left:d.
left+(c.
pageXOffset||b.
scrollLeft)-(b.
clientLeft||
0)}):d},
position:
function(
){
if(
this[
0]){
var a,b,c={
top:
0,
left:
0},d=
this[
0];
return
"fixed"===n.
css(d,
"position")?b=d.
getBoundingClientRect():(a=
this.
offsetParent(),b=
this.
offset(),n.
nodeName(a[
0],
"html")||(c=a.
offset()),c.
top+=n.
css(a[
0],
"borderTopWidth",!
0),c.
left+=n.
css(a[
0],
"borderLeftWidth",!
0)),{
top:b.
top-c.
top-n.
css(d,
"marginTop",!
0),
left:b.
left-c.
left-n.
css(d,
"marginLeft",!
0)}}},
offsetParent:
function(
){
return
this.
map(
function(
){
var a=
this.
offsetParent;
while(a&&!n.
nodeName(a,
"html")&&
"static"===n.
css(a,
"position"))a=a.
offsetParent;
return a||
Qa})}}),n.
each({
scrollLeft:
"pageXOffset",
scrollTop:
"pageYOffset"},
function(
a,b){
var c=
/Y/.
test(b);n.
fn[a]=
function(
d){
return
Y(
this,
function(
a,d,e){
var f=
mc(a);
return
void
0===e?f?b
in f?f[b]:f.
document.
documentElement[d]:a[d]:
void(f?f.
scrollTo(c?
n(f).
scrollLeft():e,c?
e:
n(f).
scrollTop()):a[d]=e)},a,d,
arguments.
length,
null)}}),n.
each([
"top",
"left"],
function(
a,b){n.
cssHooks[b]=
Ua(l.
pixelPosition,
function(
a,c){
return c?(c=
Sa(a,b),
Oa.
test(c)?
n(a).
position()[b]+
"px":c):
void
0})}),n.
each({
Height:
"height",
Width:
"width"},
function(
a,b){n.
each({
-
padding:
"inner"+a,
content:b,
"":
"outer"+a},
function(
c,d){n.
fn[d]=
function(
d,e){
var f=
arguments.
length&&(c||
"boolean"!=
typeof d),g=c||(d===!
0||e===!
0?
"margin":
"border");
return
Y(
this,
function(
b,c,d){
var e;
return n.
isWindow(b)?b.
document.
documentElement[
"client"+a]:
9===b.
nodeType?(e=b.
documentElement,
Math.
max(b.
body[
"scroll"+a],e[
"scroll"+a],b.
body[
"offset"+a],e[
"offset"+a],e[
"client"+a])):
void
0===d?n.
css(b,c,g):n.
style(b,c,d,g)},b,f?
d:
void
0,f,
null)}})}),n.
fn.
extend({
bind:
function(
a,b,c){
return
this.
on(a,
null,b,c)},
unbind:
function(
a,b){
return
this.
off(a,
null,b)},
delegate:
function(
a,b,c,d){
return
this.
on(b,a,c,d)},
undelegate:
function(
a,b,c){
return
1===
arguments.
length?
this.
off(a,
"**"):
this.
off(b,a||
"**",c)}}),n.
fn.
size=
function(
){
return
this.
length},n.
fn.
andSelf=n.
fn.
addBack,
"function"==
typeof define&&define.
amd&&
define(
"jquery",[],
function(
){
return n});
var nc=a.
jQuery,oc=a.
$;
return n.
noConflict=
function(
b){
return a.
$===n&&(a.
$=oc),b&&a.
jQuery===n&&(a.
jQuery=nc),n},b||(a.
jQuery=a.
$=n),n});
5.jquery-ui.min.js(辅助作用)
-
/*! jQuery UI - v1.12.1 - 2016-10-06
-
* http://jqueryui.com
-
* Includes: widget.js, position.js, data.js, keycode.js, scroll-parent.js, unique-id.js, widgets/draggable.js, widgets/autocomplete.js, widgets/menu.js, widgets/mouse.js, effect.js
-
* Copyright jQuery Foundation and other contributors; Licensed MIT */
-
-
(function(t){
"function"==typeof define&&define.amd?define([
"jquery"],t):t(jQuery)})(function(t){t.ui=t.ui||{},t.ui.version=
"1.12.1";
var e=
0,i=Array.prototype.slice;t.cleanData=function(e){
return function(i){
var s,n,o;
for(o=
0;
null!=(n=i[o]);o++)
try{s=t._data(n,
"events"),s&&s.remove&&t(n).triggerHandler(
"remove")}
catch(a){}e(i)}}(t.cleanData),t.widget=function(e,i,s){
var n,o,a,r={},l=e.split(
".")[
0];e=e.split(
".")[
1];
var h=l+
"-"+e;
return s||(s=i,i=t.Widget),t.isArray(s)&&(s=t.extend.apply(
null,[{}].concat(s))),t.expr[
":"][h.toLowerCase()]=function(e){
return!!t.
data(e,h)},t[l]=t[l]||{},n=t[l][e],o=t[l][e]=function(t,e){
return
this._createWidget?(arguments.length&&
this._createWidget(t,e),void
0):new o(t,e)},t.extend(o,n,{version:s.version,_proto:t.extend({},s),_childConstructors:[]}),a=new i,a.options=t.widget.extend({},a.options),t.each(s,function(e,s){
return t.isFunction(s)?(r[e]=function(){function t(){
return i.prototype[e].apply(
this,arguments)}function n(t){
return i.prototype[e].apply(
this,t)}
return function(){
var e,i=
this._super,o=
this._superApply;
return
this._super=t,
this._superApply=n,e=s.apply(
this,arguments),
this._super=i,
this._superApply=o,e}}(),void
0):(r[e]=s,void
0)}),o.prototype=t.widget.extend(a,{widgetEventPrefix:n?a.widgetEventPrefix||e:e},r,{
constructor:o,namespace:l,widgetName:e,widgetFullName:h}),n?(t.each(n._childConstructors,function(e,i){
var s=i.prototype;t.widget(s.namespace+
"."+s.widgetName,o,i._proto)}),delete n._childConstructors):i._childConstructors.push(o),t.widget.bridge(e,o),o},t.widget.extend=function(e){
for(
var s,n,o=i.call(arguments,
1),a=
0,r=o.length;r>a;a++)
for(s
in o[a])n=o[a][s],o[a].hasOwnProperty(s)&&void
0!==n&&(e[s]=t.isPlainObject(n)?t.isPlainObject(e[s])?t.widget.extend({},e[s],n):t.widget.extend({},n):n);
return e},t.widget.bridge=function(e,s){
var n=s.prototype.widgetFullName||e;t.fn[e]=function(o){
var a=
"string"==typeof o,r=i.call(arguments,
1),l=
this;
return a?
this.length||
"instance"!==o?
this.each(function(){
var i,s=t.
data(
this,n);
return
"instance"===o?(l=s,!
1):s?t.isFunction(s[o])&&
"_"!==o.charAt(
0)?(i=s[o].apply(s,r),i!==s&&void
0!==i?(l=i&&i.jquery?l.pushStack(i.
get()):i,!
1):void
0):t.error(
"no such method '"+o+
"' for "+e+
" widget instance"):t.error(
"cannot call methods on "+e+
" prior to initialization; "+
"attempted to call method '"+o+
"'")}):l=void
0:(r.length&&(o=t.widget.extend.apply(
null,[o].concat(r))),
this.each(function(){
var e=t.
data(
this,n);e?(e.option(o||{}),e._init&&e._init()):t.
data(
this,n,new s(o,
this))})),l}},t.Widget=function(){},t.Widget._childConstructors=[],t.Widget.prototype={widgetName:
"widget",widgetEventPrefix:
"",defaultElement:
"<div>",options:{classes:{},disabled:!
1,create:
null},_createWidget:function(i,s){s=t(s||
this.defaultElement||
this)[
0],
this.element=t(s),
this.uuid=e++,
this.eventNamespace=
"."+
this.widgetName+
this.uuid,
this.bindings=t(),
this.hoverable=t(),
this.focusable=t(),
this.classesElementLookup={},s!==
this&&(t.
data(s,
this.widgetFullName,
this),
this._on(!
0,
this.element,{remove:function(t){t.target===s&&
this.destroy()}}),
this.document=t(s.style?s.ownerDocument:s.document||s),
this.window=t(
this.document[
0].defaultView||
this.document[
0].parentWindow)),
this.options=t.widget.extend({},
this.options,
this._getCreateOptions(),i),
this._create(),
this.options.disabled&&
this._setOptionDisabled(
this.options.disabled),
this._trigger(
"create",
null,
this._getCreateEventData()),
this._init()},_getCreateOptions:function(){
return{}},_getCreateEventData:t.noop,_create:t.noop,_init:t.noop,destroy:function(){
var e=
this;
this._destroy(),t.each(
this.classesElementLookup,function(t,i){e._removeClass(i,t)}),
this.element.off(
this.eventNamespace).removeData(
this.widgetFullName),
this.widget().off(
this.eventNamespace).removeAttr(
"aria-disabled"),
this.bindings.off(
this.eventNamespace)},_destroy:t.noop,widget:function(){
return
this.element},option:function(e,i){
var s,n,o,a=e;
if(
0===arguments.length)
return t.widget.extend({},
this.options);
if(
"string"==typeof e)
if(a={},s=e.split(
"."),e=s.shift(),s.length){
for(n=a[e]=t.widget.extend({},
this.options[e]),o=
0;s.length-
1>o;o++)n[s[o]]=n[s[o]]||{},n=n[s[o]];
if(e=s.pop(),
1===arguments.length)
return void
0===n[e]?
null:n[e];n[e]=i}
else{
if(
1===arguments.length)
return void
0===
this.options[e]?
null:
this.options[e];a[e]=i}
return
this._setOptions(a),
this},_setOptions:function(t){
var e;
for(e
in t)
this._setOption(e,t[e]);
return
this},_setOption:function(t,e){
return
"classes"===t&&
this._setOptionClasses(e),
this.options[t]=e,
"disabled"===t&&
this._setOptionDisabled(e),
this},_setOptionClasses:function(e){
var i,s,n;
for(i
in e)n=
this.classesElementLookup[i],e[i]!==
this.options.classes[i]&&n&&n.length&&(s=t(n.
get()),
this._removeClass(n,i),s.addClass(
this._classes({element:s,keys:i,classes:e,add:!
0})))},_setOptionDisabled:function(t){
this._toggleClass(
this.widget(),
this.widgetFullName+
"-disabled",
null,!!t),t&&(
this._removeClass(
this.hoverable,
null,
"ui-state-hover"),
this._removeClass(
this.focusable,
null,
"ui-state-focus"))},enable:function(){
return
this._setOptions({disabled:!
1})},disable:function(){
return
this._setOptions({disabled:!
0})},_classes:function(e){function i(i,o){
var a,r;
for(r=
0;i.length>r;r++)a=n.classesElementLookup[i[r]]||t(),a=e.add?t(t.unique(a.
get().concat(e.element.
get()))):t(a.not(e.element).
get()),n.classesElementLookup[i[r]]=a,s.push(i[r]),o&&e.classes[i[r]]&&s.push(e.classes[i[r]])}
var s=[],n=
this;
return e=t.extend({element:
this.element,classes:
this.options.classes||{}},e),
this._on(e.element,{remove:
"_untrackClassesElement"}),e.keys&&i(e.keys.match(/\S+/g)||[],!
0),e.extra&&i(e.extra.match(/\S+/g)||[]),s.join(
" ")},_untrackClassesElement:function(e){
var i=
this;t.each(i.classesElementLookup,function(s,n){-
1!==t.inArray(e.target,n)&&(i.classesElementLookup[s]=t(n.not(e.target).
get()))})},_removeClass:function(t,e,i){
return
this._toggleClass(t,e,i,!
1)},_addClass:function(t,e,i){
return
this._toggleClass(t,e,i,!
0)},_toggleClass:function(t,e,i,s){s=
"boolean"==typeof s?s:i;
var n=
"string"==typeof t||
null===t,o={extra:n?e:i,keys:n?t:e,element:n?
this.element:t,add:s};
return o.element.toggleClass(
this._classes(o),s),
this},_on:function(e,i,s){
var n,o=
this;
"boolean"!=typeof e&&(s=i,i=e,e=!
1),s?(i=n=t(i),
this.bindings=
this.bindings.add(i)):(s=i,i=
this.element,n=
this.widget()),t.each(s,function(s,a){function r(){
return e||o.options.disabled!==!
0&&!t(
this).hasClass(
"ui-state-disabled")?(
"string"==typeof a?o[a]:a).apply(o,arguments):void
0}
"string"!=typeof a&&(r.guid=a.guid=a.guid||r.guid||t.guid++);
var l=s.match(/^([\w:-]*)\s*(.*)$/),h=l[
1]+o.eventNamespace,c=l[
2];c?n.on(h,c,r):i.on(h,r)})},_off:function(e,i){i=(i||
"").split(
" ").join(
this.eventNamespace+
" ")+
this.eventNamespace,e.off(i).off(i),
this.bindings=t(
this.bindings.not(e).
get()),
this.focusable=t(
this.focusable.not(e).
get()),
this.hoverable=t(
this.hoverable.not(e).
get())},_delay:function(t,e){function i(){
return(
"string"==typeof t?s[t]:t).apply(s,arguments)}
var s=
this;
return setTimeout(i,e||
0)},_hoverable:function(e){
this.hoverable=
this.hoverable.add(e),
this._on(e,{mouseenter:function(e){
this._addClass(t(e.currentTarget),
null,
"ui-state-hover")},mouseleave:function(e){
this._removeClass(t(e.currentTarget),
null,
"ui-state-hover")}})},_focusable:function(e){
this.focusable=
this.focusable.add(e),
this._on(e,{focusin:function(e){
this._addClass(t(e.currentTarget),
null,
"ui-state-focus")},focusout:function(e){
this._removeClass(t(e.currentTarget),
null,
"ui-state-focus")}})},_trigger:function(e,i,s){
var n,o,a=
this.options[e];
if(s=s||{},i=t.Event(i),i.type=(e===
this.widgetEventPrefix?e:
this.widgetEventPrefix+e).toLowerCase(),i.target=
this.element[
0],o=i.originalEvent)
for(n
in o)n
in i||(i[n]=o[n]);
return
this.element.trigger(i,s),!(t.isFunction(a)&&a.apply(
this.element[
0],[i].concat(s))===!
1||i.isDefaultPrevented())}},t.each({show:
"fadeIn",hide:
"fadeOut"},function(e,i){t.Widget.prototype[
"_"+e]=function(s,n,o){
"string"==typeof n&&(n={effect:n});
var a,r=n?n===!
0||
"number"==typeof n?i:n.effect||i:e;n=n||{},
"number"==typeof n&&(n={duration:n}),a=!t.isEmptyObject(n),n.complete=o,n.delay&&s.delay(n.delay),a&&t.effects&&t.effects.effect[r]?s[e](n):r!==e&&s[r]?s[r](n.duration,n.easing,o):s.queue(function(i){t(
this)[e](),o&&o.call(s[
0]),i()})}}),t.widget,function(){function e(t,e,i){
return[parseFloat(t[
0])*(u.test(t[
0])?e/
100:
1),parseFloat(t[
1])*(u.test(t[
1])?i/
100:
1)]}function i(e,i){
return parseInt(t.css(e,i),
10)||
0}function s(e){
var i=e[
0];
return
9===i.nodeType?{width:e.width(),height:e.height(),offset:{top:
0,left:
0}}:t.isWindow(i)?{width:e.width(),height:e.height(),offset:{top:e.scrollTop(),left:e.scrollLeft()}}:i.preventDefault?{width:
0,height:
0,offset:{top:i.pageY,left:i.pageX}}:{width:e.outerWidth(),height:e.outerHeight(),offset:e.offset()}}
var n,o=Math.max,a=Math.abs,r=/left|center|right/,l=/top|center|bottom/,h=/[\+\-]\d+(\.[\d]+)?%?/,c=/^\w+/,u=/%$/,d=t.fn.position;t.position={scrollbarWidth:function(){
if(void
0!==n)
return n;
var e,i,s=t(
"<div style='display:block;position:absolute;width:50px;height:50px;overflow:hidden;'><div style='height:100px;width:auto;'></div></div>"),o=s.children()[
0];
return t(
"body").append(s),e=o.offsetWidth,s.css(
"overflow",
"scroll"),i=o.offsetWidth,e===i&&(i=s[
0].clientWidth),s.remove(),n=e-i},getScrollInfo:function(e){
var i=e.isWindow||e.isDocument?
"":e.element.css(
"overflow-x"),s=e.isWindow||e.isDocument?
"":e.element.css(
"overflow-y"),n=
"scroll"===i||
"auto"===i&&e.width<e.element[
0].scrollWidth,o=
"scroll"===s||
"auto"===s&&e.height<e.element[
0].scrollHeight;
return{width:o?t.position.scrollbarWidth():
0,height:n?t.position.scrollbarWidth():
0}},getWithinInfo:function(e){
var i=t(e||window),s=t.isWindow(i[
0]),n=!!i[
0]&&
9===i[
0].nodeType,o=!s&&!n;
return{element:i,isWindow:s,isDocument:n,offset:o?t(e).offset():{left:
0,top:
0},scrollLeft:i.scrollLeft(),scrollTop:i.scrollTop(),width:i.outerWidth(),height:i.outerHeight()}}},t.fn.position=function(n){
if(!n||!n.of)
return d.apply(
this,arguments);n=t.extend({},n);
var u,p,f,g,m,_,v=t(n.of),b=t.position.getWithinInfo(n.within),y=t.position.getScrollInfo(b),w=(n.collision||
"flip").split(
" "),k={};
return _=s(v),v[
0].preventDefault&&(n.at=
"left top"),p=_.width,f=_.height,g=_.offset,m=t.extend({},g),t.each([
"my",
"at"],function(){
var t,e,i=(n[
this]||
"").split(
" ");
1===i.length&&(i=r.test(i[
0])?i.concat([
"center"]):l.test(i[
0])?[
"center"].concat(i):[
"center",
"center"]),i[
0]=r.test(i[
0])?i[
0]:
"center",i[
1]=l.test(i[
1])?i[
1]:
"center",t=h.exec(i[
0]),e=h.exec(i[
1]),k[
this]=[t?t[
0]:
0,e?e[
0]:
0],n[
this]=[c.exec(i[
0])[
0],c.exec(i[
1])[
0]]}),
1===w.length&&(w[
1]=w[
0]),
"right"===n.at[
0]?m.left+=p:
"center"===n.at[
0]&&(m.left+=p/
2),
"bottom"===n.at[
1]?m.top+=f:
"center"===n.at[
1]&&(m.top+=f/
2),u=e(k.at,p,f),m.left+=u[
0],m.top+=u[
1],
this.each(function(){
var s,r,l=t(
this),h=l.outerWidth(),c=l.outerHeight(),d=i(
this,
"marginLeft"),_=i(
this,
"marginTop"),x=h+d+i(
this,
"marginRight")+y.width,C=c+_+i(
this,
"marginBottom")+y.height,D=t.extend({},m),T=e(k.my,l.outerWidth(),l.outerHeight());
"right"===n.my[
0]?D.left-=h:
"center"===n.my[
0]&&(D.left-=h/
2),
"bottom"===n.my[
1]?D.top-=c:
"center"===n.my[
1]&&(D.top-=c/
2),D.left+=T[
0],D.top+=T[
1],s={marginLeft:d,marginTop:_},t.each([
"left",
"top"],function(e,i){t.ui.position[w[e]]&&t.ui.position[w[e]][i](D,{targetWidth:p,targetHeight:f,elemWidth:h,elemHeight:c,collisionPosition:s,collisionWidth:x,collisionHeight:C,offset:[u[
0]+T[
0],u[
1]+T[
1]],my:n.my,at:n.at,within:b,elem:l})}),n.using&&(r=function(t){
var e=g.left-D.left,i=e+p-h,s=g.top-D.top,r=s+f-c,u={target:{element:v,left:g.left,top:g.top,width:p,height:f},element:{element:l,left:D.left,top:D.top,width:h,height:c},horizontal:
0>i?
"left":e>
0?
"right":
"center",vertical:
0>r?
"top":s>
0?
"bottom":
"middle"};h>p&&p>a(e+i)&&(u.horizontal=
"center"),c>f&&f>a(s+r)&&(u.vertical=
"middle"),u.important=o(a(e),a(i))>o(a(s),a(r))?
"horizontal":
"vertical",n.using.call(
this,t,u)}),l.offset(t.extend(D,{using:r}))})},t.ui.position={fit:{left:function(t,e){
var i,s=e.within,n=s.isWindow?s.scrollLeft:s.offset.left,a=s.width,r=t.left-e.collisionPosition.marginLeft,l=n-r,h=r+e.collisionWidth-a-n;e.collisionWidth>a?l>
0&&
0>=h?(i=t.left+l+e.collisionWidth-a-n,t.left+=l-i):t.left=h>
0&&
0>=l?n:l>h?n+a-e.collisionWidth:n:l>
0?t.left+=l:h>
0?t.left-=h:t.left=o(t.left-r,t.left)},top:function(t,e){
var i,s=e.within,n=s.isWindow?s.scrollTop:s.offset.top,a=e.within.height,r=t.top-e.collisionPosition.marginTop,l=n-r,h=r+e.collisionHeight-a-n;e.collisionHeight>a?l>
0&&
0>=h?(i=t.top+l+e.collisionHeight-a-n,t.top+=l-i):t.top=h>
0&&
0>=l?n:l>h?n+a-e.collisionHeight:n:l>
0?t.top+=l:h>
0?t.top-=h:t.top=o(t.top-r,t.top)}},flip:{left:function(t,e){
var i,s,n=e.within,o=n.offset.left+n.scrollLeft,r=n.width,l=n.isWindow?n.scrollLeft:n.offset.left,h=t.left-e.collisionPosition.marginLeft,c=h-l,u=h+e.collisionWidth-r-l,d=
"left"===e.my[
0]?-e.elemWidth:
"right"===e.my[
0]?e.elemWidth:
0,p=
"left"===e.at[
0]?e.targetWidth:
"right"===e.at[
0]?-e.targetWidth:
0,f=-
2*e.offset[
0];
0>c?(i=t.left+d+p+f+e.collisionWidth-r-o,(
0>i||a(c)>i)&&(t.left+=d+p+f)):u>
0&&(s=t.left-e.collisionPosition.marginLeft+d+p+f-l,(s>
0||u>a(s))&&(t.left+=d+p+f))},top:function(t,e){
var i,s,n=e.within,o=n.offset.top+n.scrollTop,r=n.height,l=n.isWindow?n.scrollTop:n.offset.top,h=t.top-e.collisionPosition.marginTop,c=h-l,u=h+e.collisionHeight-r-l,d=
"top"===e.my[
1],p=d?-e.elemHeight:
"bottom"===e.my[
1]?e.elemHeight:
0,f=
"top"===e.at[
1]?e.targetHeight:
"bottom"===e.at[
1]?-e.targetHeight:
0,g=-
2*e.offset[
1];
0>c?(s=t.top+p+f+g+e.collisionHeight-r-o,(
0>s||a(c)>s)&&(t.top+=p+f+g)):u>
0&&(i=t.top-e.collisionPosition.marginTop+p+f+g-l,(i>
0||u>a(i))&&(t.top+=p+f+g))}},flipfit:{left:function(){t.ui.position.flip.left.apply(
this,arguments),t.ui.position.fit.left.apply(
this,arguments)},top:function(){t.ui.position.flip.top.apply(
this,arguments),t.ui.position.fit.top.apply(
this,arguments)}}}}(),t.ui.position,t.extend(t.expr[
":"],{
data:t.expr.createPseudo?t.expr.createPseudo(function(e){
return function(i){
return!!t.
data(i,e)}}):function(e,i,s){
return!!t.
data(e,s[
3])}}),t.ui.keyCode={BACKSPACE:
8,COMMA:
188,DELETE:
46,DOWN:
40,END:
35,ENTER:
13,ESCAPE:
27,HOME:
36,LEFT:
37,PAGE_DOWN:
34,PAGE_UP:
33,PERIOD:
190,RIGHT:
39,SPACE:
32,TAB:
9,UP:
38},t.fn.scrollParent=function(e){
var i=
this.css(
"position"),s=
"absolute"===i,n=e?/(auto|scroll|hidden)/:/(auto|scroll)/,o=
this.parents().filter(function(){
var e=t(
this);
return s&&
"static"===e.css(
"position")?!
1:n.test(e.css(
"overflow")+e.css(
"overflow-y")+e.css(
"overflow-x"))}).eq(
0);
return
"fixed"!==i&&o.length?o:t(
this[
0].ownerDocument||document)},t.fn.extend({uniqueId:function(){
var t=
0;
return function(){
return
this.each(function(){
this.id||(
this.id=
"ui-id-"+ ++t)})}}(),removeUniqueId:function(){
return
this.each(function(){/^ui-id-\d+$/.test(
this.id)&&t(
this).removeAttr(
"id")})}}),t.ui.ie=!!/msie [\w.]+/.exec(navigator.userAgent.toLowerCase());
var s=!
1;t(document).on(
"mouseup",function(){s=!
1}),t.widget(
"ui.mouse",{version:
"1.12.1",options:{cancel:
"input, textarea, button, select, option",distance:
1,delay:
0},_mouseInit:function(){
var e=
this;
this.element.on(
"mousedown."+
this.widgetName,function(t){
return e._mouseDown(t)}).on(
"click."+
this.widgetName,function(i){
return!
0===t.
data(i.target,e.widgetName+
".preventClickEvent")?(t.removeData(i.target,e.widgetName+
".preventClickEvent"),i.stopImmediatePropagation(),!
1):void
0}),
this.started=!
1},_mouseDestroy:function(){
this.element.off(
"."+
this.widgetName),
this._mouseMoveDelegate&&
this.document.off(
"mousemove."+
this.widgetName,
this._mouseMoveDelegate).off(
"mouseup."+
this.widgetName,
this._mouseUpDelegate)},_mouseDown:function(e){
if(!s){
this._mouseMoved=!
1,
this._mouseStarted&&
this._mouseUp(e),
this._mouseDownEvent=e;
var i=
this,n=
1===e.which,o=
"string"==typeof
this.options.cancel&&e.target.nodeName?t(e.target).closest(
this.options.cancel).length:!
1;
return n&&!o&&
this._mouseCapture(e)?(
this.mouseDelayMet=!
this.options.delay,
this.mouseDelayMet||(
this._mouseDelayTimer=setTimeout(function(){i.mouseDelayMet=!
0},
this.options.delay)),
this._mouseDistanceMet(e)&&
this._mouseDelayMet(e)&&(
this._mouseStarted=
this._mouseStart(e)!==!
1,!
this._mouseStarted)?(e.preventDefault(),!
0):(!
0===t.
data(e.target,
this.widgetName+
".preventClickEvent")&&t.removeData(e.target,
this.widgetName+
".preventClickEvent"),
this._mouseMoveDelegate=function(t){
return i._mouseMove(t)},
this._mouseUpDelegate=function(t){
return i._mouseUp(t)},
this.document.on(
"mousemove."+
this.widgetName,
this._mouseMoveDelegate).on(
"mouseup."+
this.widgetName,
this._mouseUpDelegate),e.preventDefault(),s=!
0,!
0)):!
0}},_mouseMove:function(e){
if(
this._mouseMoved){
if(t.ui.ie&&(!document.documentMode||
9>document.documentMode)&&!e.button)
return
this._mouseUp(e);
if(!e.which)
if(e.originalEvent.altKey||e.originalEvent.ctrlKey||e.originalEvent.metaKey||e.originalEvent.shiftKey)
this.ignoreMissingWhich=!
0;
else
if(!
this.ignoreMissingWhich)
return
this._mouseUp(e)}
return(e.which||e.button)&&(
this._mouseMoved=!
0),
this._mouseStarted?(
this._mouseDrag(e),e.preventDefault()):(
this._mouseDistanceMet(e)&&
this._mouseDelayMet(e)&&(
this._mouseStarted=
this._mouseStart(
this._mouseDownEvent,e)!==!
1,
this._mouseStarted?
this._mouseDrag(e):
this._mouseUp(e)),!
this._mouseStarted)},_mouseUp:function(e){
this.document.off(
"mousemove."+
this.widgetName,
this._mouseMoveDelegate).off(
"mouseup."+
this.widgetName,
this._mouseUpDelegate),
this._mouseStarted&&(
this._mouseStarted=!
1,e.target===
this._mouseDownEvent.target&&t.
data(e.target,
this.widgetName+
".preventClickEvent",!
0),
this._mouseStop(e)),
this._mouseDelayTimer&&(clearTimeout(
this._mouseDelayTimer),delete
this._mouseDelayTimer),
this.ignoreMissingWhich=!
1,s=!
1,e.preventDefault()},_mouseDistanceMet:function(t){
return Math.max(Math.abs(
this._mouseDownEvent.pageX-t.pageX),Math.abs(
this._mouseDownEvent.pageY-t.pageY))>=
this.options.distance},_mouseDelayMet:function(){
return
this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){
return!
0}}),t.ui.plugin={add:function(e,i,s){
var n,o=t.ui[e].prototype;
for(n
in s)o.plugins[n]=o.plugins[n]||[],o.plugins[n].push([i,s[n]])},call:function(t,e,i,s){
var n,o=t.plugins[e];
if(o&&(s||t.element[
0].parentNode&&
11!==t.element[
0].parentNode.nodeType))
for(n=
0;o.length>n;n++)t.options[o[n][
0]]&&o[n][
1].apply(t.element,i)}},t.ui.safeActiveElement=function(t){
var e;
try{e=t.activeElement}
catch(i){e=t.body}
return e||(e=t.body),e.nodeName||(e=t.body),e},t.ui.safeBlur=function(e){e&&
"body"!==e.nodeName.toLowerCase()&&t(e).trigger(
"blur")},t.widget(
"ui.draggable",t.ui.mouse,{version:
"1.12.1",widgetEventPrefix:
"drag",options:{addClasses:!
0,appendTo:
"parent",axis:!
1,connectToSortable:!
1,containment:!
1,cursor:
"auto",cursorAt:!
1,grid:!
1,handle:!
1,helper:
"original",iframeFix:!
1,opacity:!
1,refreshPositions:!
1,revert:!
1,revertDuration:
500,scope:
"default",scroll:!
0,scrollSensitivity:
20,scrollSpeed:
20,snap:!
1,snapMode:
"both",snapTolerance:
20,stack:!
1,zIndex:!
1,drag:
null,start:
null,stop:
null},_create:function(){
"original"===
this.options.helper&&
this._setPositionRelative(),
this.options.addClasses&&
this._addClass(
"ui-draggable"),
this._setHandleClassName(),
this._mouseInit()},_setOption:function(t,e){
this._super(t,e),
"handle"===t&&(
this._removeHandleClassName(),
this._setHandleClassName())},_destroy:function(){
return(
this.helper||
this.element).
is(
".ui-draggable-dragging")?(
this.destroyOnClear=!
0,void
0):(
this._removeHandleClassName(),
this._mouseDestroy(),void
0)},_mouseCapture:function(e){
var i=
this.options;
return
this.helper||i.disabled||t(e.target).closest(
".ui-resizable-handle").length>
0?!
1:(
this.handle=
this._getHandle(e),
this.handle?(
this._blurActiveElement(e),
this._blockFrames(i.iframeFix===!
0?
"iframe":i.iframeFix),!
0):!
1)},_blockFrames:function(e){
this.iframeBlocks=
this.document.find(e).map(function(){
var e=t(
this);
return t(
"<div>").css(
"position",
"absolute").appendTo(e.parent()).outerWidth(e.outerWidth()).outerHeight(e.outerHeight()).offset(e.offset())[
0]})},_unblockFrames:function(){
this.iframeBlocks&&(
this.iframeBlocks.remove(),delete
this.iframeBlocks)},_blurActiveElement:function(e){
var i=t.ui.safeActiveElement(
this.document[
0]),s=t(e.target);s.closest(i).length||t.ui.safeBlur(i)},_mouseStart:function(e){
var i=
this.options;
return
this.helper=
this._createHelper(e),
this._addClass(
this.helper,
"ui-draggable-dragging"),
this._cacheHelperProportions(),t.ui.ddmanager&&(t.ui.ddmanager.current=
this),
this._cacheMargins(),
this.cssPosition=
this.helper.css(
"position"),
this.scrollParent=
this.helper.scrollParent(!
0),
this.offsetParent=
this.helper.offsetParent(),
this.hasFixedAncestor=
this.helper.parents().filter(function(){
return
"fixed"===t(
this).css(
"position")}).length>
0,
this.positionAbs=
this.element.offset(),
this._refreshOffsets(e),
this.originalPosition=
this.position=
this._generatePosition(e,!
1),
this.originalPageX=e.pageX,
this.originalPageY=e.pageY,i.cursorAt&&
this._adjustOffsetFromHelper(i.cursorAt),
this._setContainment(),
this._trigger(
"start",e)===!
1?(
this._clear(),!
1):(
this._cacheHelperProportions(),t.ui.ddmanager&&!i.dropBehaviour&&t.ui.ddmanager.prepareOffsets(
this,e),
this._mouseDrag(e,!
0),t.ui.ddmanager&&t.ui.ddmanager.dragStart(
this,e),!
0)},_refreshOffsets:function(t){
this.offset={top:
this.positionAbs.top-
this.margins.top,left:
this.positionAbs.left-
this.margins.left,scroll:!
1,parent:
this._getParentOffset(),relative:
this._getRelativeOffset()},
this.offset.click={left:t.pageX-
this.offset.left,top:t.pageY-
this.offset.top}},_mouseDrag:function(e,i){
if(
this.hasFixedAncestor&&(
this.offset.parent=
this._getParentOffset()),
this.position=
this._generatePosition(e,!
0),
this.positionAbs=
this._convertPositionTo(
"absolute"),!i){
var s=
this._uiHash();
if(
this._trigger(
"drag",e,s)===!
1)
return
this._mouseUp(new t.Event(
"mouseup",e)),!
1;
this.position=s.position}
return
this.helper[
0].style.left=
this.position.left+
"px",
this.helper[
0].style.top=
this.position.top+
"px",t.ui.ddmanager&&t.ui.ddmanager.drag(
this,e),!
1},_mouseStop:function(e){
var i=
this,s=!
1;
return t.ui.ddmanager&&!
this.options.dropBehaviour&&(s=t.ui.ddmanager.drop(
this,e)),
this.dropped&&(s=
this.dropped,
this.dropped=!
1),
"invalid"===
this.options.revert&&!s||
"valid"===
this.options.revert&&s||
this.options.revert===!
0||t.isFunction(
this.options.revert)&&
this.options.revert.call(
this.element,s)?t(
this.helper).animate(
this.originalPosition,parseInt(
this.options.revertDuration,
10),function(){i._trigger(
"stop",e)!==!
1&&i._clear()}):
this._trigger(
"stop",e)!==!
1&&
this._clear(),!
1},_mouseUp:function(e){
return
this._unblockFrames(),t.ui.ddmanager&&t.ui.ddmanager.dragStop(
this,e),
this.handleElement.
is(e.target)&&
this.element.trigger(
"focus"),t.ui.mouse.prototype._mouseUp.call(
this,e)},cancel:function(){
return
this.helper.
is(
".ui-draggable-dragging")?
this._mouseUp(new t.Event(
"mouseup",{target:
this.element[
0]})):
this._clear(),
this},_getHandle:function(e){
return
this.options.handle?!!t(e.target).closest(
this.element.find(
this.options.handle)).length:!
0},_setHandleClassName:function(){
this.handleElement=
this.options.handle?
this.element.find(
this.options.handle):
this.element,
this._addClass(
this.handleElement,
"ui-draggable-handle")},_removeHandleClassName:function(){
this._removeClass(
this.handleElement,
"ui-draggable-handle")},_createHelper:function(e){
var i=
this.options,s=t.isFunction(i.helper),n=s?t(i.helper.apply(
this.element[
0],[e])):
"clone"===i.helper?
this.element.clone().removeAttr(
"id"):
this.element;
return n.parents(
"body").length||n.appendTo(
"parent"===i.appendTo?
this.element[
0].parentNode:i.appendTo),s&&n[
0]===
this.element[
0]&&
this._setPositionRelative(),n[
0]===
this.element[
0]||/(fixed|absolute)/.test(n.css(
"position"))||n.css(
"position",
"absolute"),n},_setPositionRelative:function(){/^(?:r|a|f)/.test(
this.element.css(
"position"))||(
this.element[
0].style.position=
"relative")},_adjustOffsetFromHelper:function(e){
"string"==typeof e&&(e=e.split(
" ")),t.isArray(e)&&(e={left:+e[
0],top:+e[
1]||
0}),
"left"
in e&&(
this.offset.click.left=e.left+
this.margins.left),
"right"
in e&&(
this.offset.click.left=
this.helperProportions.width-e.right+
this.margins.left),
"top"
in e&&(
this.offset.click.top=e.top+
this.margins.top),
"bottom"
in e&&(
this.offset.click.top=
this.helperProportions.height-e.bottom+
this.margins.top)},_isRootNode:function(t){
return/(html|body)/i.test(t.tagName)||t===
this.document[
0]},_getParentOffset:function(){
var e=
this.offsetParent.offset(),i=
this.document[
0];
return
"absolute"===
this.cssPosition&&
this.scrollParent[
0]!==i&&t.contains(
this.scrollParent[
0],
this.offsetParent[
0])&&(e.left+=
this.scrollParent.scrollLeft(),e.top+=
this.scrollParent.scrollTop()),
this._isRootNode(
this.offsetParent[
0])&&(e={top:
0,left:
0}),{top:e.top+(parseInt(
this.offsetParent.css(
"borderTopWidth"),
10)||
0),left:e.left+(parseInt(
this.offsetParent.css(
"borderLeftWidth"),
10)||
0)}},_getRelativeOffset:function(){
if(
"relative"!==
this.cssPosition)
return{top:
0,left:
0};
var t=
this.element.position(),e=
this._isRootNode(
this.scrollParent[
0]);
return{top:t.top-(parseInt(
this.helper.css(
"top"),
10)||
0)+(e?
0:
this.scrollParent.scrollTop()),left:t.left-(parseInt(
this.helper.css(
"left"),
10)||
0)+(e?
0:
this.scrollParent.scrollLeft())}},_cacheMargins:function(){
this.margins={left:parseInt(
this.element.css(
"marginLeft"),
10)||
0,top:parseInt(
this.element.css(
"marginTop"),
10)||
0,right:parseInt(
this.element.css(
"marginRight"),
10)||
0,bottom:parseInt(
this.element.css(
"marginBottom"),
10)||
0}},_cacheHelperProportions:function(){
this.helperProportions={width:
this.helper.outerWidth(),height:
this.helper.outerHeight()}},_setContainment:function(){
var e,i,s,n=
this.options,o=
this.document[
0];
return
this.relativeContainer=
null,n.containment?
"window"===n.containment?(
this.containment=[t(window).scrollLeft()-
this.offset.relative.left-
this.offset.parent.left,t(window).scrollTop()-
this.offset.relative.top-
this.offset.parent.top,t(window).scrollLeft()+t(window).width()-
this.helperProportions.width-
this.margins.left,t(window).scrollTop()+(t(window).height()||o.body.parentNode.scrollHeight)-
this.helperProportions.height-
this.margins.top],void
0):
"document"===n.containment?(
this.containment=[
0,
0,t(o).width()-
this.helperProportions.width-
this.margins.left,(t(o).height()||o.body.parentNode.scrollHeight)-
this.helperProportions.height-
this.margins.top],void
0):n.containment.
constructor===Array?(
this.containment=n.containment,void
0):(
"parent"===n.containment&&(n.containment=
this.helper[
0].parentNode),i=t(n.containment),s=i[
0],s&&(e=/(scroll|auto)/.test(i.css(
"overflow")),
this.containment=[(parseInt(i.css(
"borderLeftWidth"),
10)||
0)+(parseInt(i.css(
"paddingLeft"),
10)||
0),(parseInt(i.css(
"borderTopWidth"),
10)||
0)+(parseInt(i.css(
"paddingTop"),
10)||
0),(e?Math.max(s.scrollWidth,s.offsetWidth):s.offsetWidth)-(parseInt(i.css(
"borderRightWidth"),
10)||
0)-(parseInt(i.css(
"paddingRight"),
10)||
0)-
this.helperProportions.width-
this.margins.left-
this.margins.right,(e?Math.max(s.scrollHeight,s.offsetHeight):s.offsetHeight)-(parseInt(i.css(
"borderBottomWidth"),
10)||
0)-(parseInt(i.css(
"paddingBottom"),
10)||
0)-
this.helperProportions.height-
this.margins.top-
this.margins.bottom],
this.relativeContainer=i),void
0):(
this.containment=
null,void
0)},_convertPositionTo:function(t,e){e||(e=
this.position);
var i=
"absolute"===t?
1:-
1,s=
this._isRootNode(
this.scrollParent[
0]);
return{top:e.top+
this.offset.relative.top*i+
this.offset.parent.top*i-(
"fixed"===
this.cssPosition?-
this.offset.scroll.top:s?
0:
this.offset.scroll.top)*i,left:e.left+
this.offset.relative.left*i+
this.offset.parent.left*i-(
"fixed"===
this.cssPosition?-
this.offset.scroll.left:s?
0:
this.offset.scroll.left)*i}},_generatePosition:function(t,e){
var i,s,n,o,a=
this.options,r=
this._isRootNode(
this.scrollParent[
0]),l=t.pageX,h=t.pageY;
return r&&
this.offset.scroll||(
this.offset.scroll={top:
this.scrollParent.scrollTop(),left:
this.scrollParent.scrollLeft()}),e&&(
this.containment&&(
this.relativeContainer?(s=
this.relativeContainer.offset(),i=[
this.containment[
0]+s.left,
this.containment[
1]+s.top,
this.containment[
2]+s.left,
this.containment[
3]+s.top]):i=
this.containment,t.pageX-
this.offset.click.left<i[
0]&&(l=i[
0]+
this.offset.click.left),t.pageY-
this.offset.click.top<i[
1]&&(h=i[
1]+
this.offset.click.top),t.pageX-
this.offset.click.left>i[
2]&&(l=i[
2]+
this.offset.click.left),t.pageY-
this.offset.click.top>i[
3]&&(h=i[
3]+
this.offset.click.top)),a.grid&&(n=a.grid[
1]?
this.originalPageY+Math.round((h-
this.originalPageY)/a.grid[
1])*a.grid[
1]:
this.originalPageY,h=i?n-
this.offset.click.top>=i[
1]||n-
this.offset.click.top>i[
3]?n:n-
this.offset.click.top>=i[
1]?n-a.grid[
1]:n+a.grid[
1]:n,o=a.grid[
0]?
this.originalPageX+Math.round((l-
this.originalPageX)/a.grid[
0])*a.grid[
0]:
this.originalPageX,l=i?o-
this.offset.click.left>=i[
0]||o-
this.offset.click.left>i[
2]?o:o-
this.offset.click.left>=i[
0]?o-a.grid[
0]:o+a.grid[
0]:o),
"y"===a.axis&&(l=
this.originalPageX),
"x"===a.axis&&(h=
this.originalPageY)),{top:h-
this.offset.click.top-
this.offset.relative.top-
this.offset.parent.top+(
"fixed"===
this.cssPosition?-
this.offset.scroll.top:r?
0:
this.offset.scroll.top),left:l-
this.offset.click.left-
this.offset.relative.left-
this.offset.parent.left+(
"fixed"===
this.cssPosition?-
this.offset.scroll.left:r?
0:
this.offset.scroll.left)}},_clear:function(){
this._removeClass(
this.helper,
"ui-draggable-dragging"),
this.helper[
0]===
this.element[
0]||
this.cancelHelperRemoval||
this.helper.remove(),
this.helper=
null,
this.cancelHelperRemoval=!
1,
this.destroyOnClear&&
this.destroy()},_trigger:function(e,i,s){
return s=s||
this._uiHash(),t.ui.plugin.call(
this,e,[i,s,
this],!
0),/^(drag|start|stop)/.test(e)&&(
this.positionAbs=
this._convertPositionTo(
"absolute"),s.offset=
this.positionAbs),t.Widget.prototype._trigger.call(
this,e,i,s)},plugins:{},_uiHash:function(){
return{helper:
this.helper,position:
this.position,originalPosition:
this.originalPosition,offset:
this.positionAbs}}}),t.ui.plugin.add(
"draggable",
"connectToSortable",{start:function(e,i,s){
var n=t.extend({},i,{item:s.element});s.sortables=[],t(s.options.connectToSortable).each(function(){
var i=t(
this).sortable(
"instance");i&&!i.options.disabled&&(s.sortables.push(i),i.refreshPositions(),i._trigger(
"activate",e,n))})},stop:function(e,i,s){
var n=t.extend({},i,{item:s.element});s.cancelHelperRemoval=!
1,t.each(s.sortables,function(){
var t=
this;t.isOver?(t.isOver=
0,s.cancelHelperRemoval=!
0,t.cancelHelperRemoval=!
1,t._storedCSS={position:t.placeholder.css(
"position"),top:t.placeholder.css(
"top"),left:t.placeholder.css(
"left")},t._mouseStop(e),t.options.helper=t.options._helper):(t.cancelHelperRemoval=!
0,t._trigger(
"deactivate",e,n))})},drag:function(e,i,s){t.each(s.sortables,function(){
var n=!
1,o=
this;o.positionAbs=s.positionAbs,o.helperProportions=s.helperProportions,o.offset.click=s.offset.click,o._intersectsWith(o.containerCache)&&(n=!
0,t.each(s.sortables,function(){
return
this.positionAbs=s.positionAbs,
this.helperProportions=s.helperProportions,
this.offset.click=s.offset.click,
this!==o&&
this._intersectsWith(
this.containerCache)&&t.contains(o.element[
0],
this.element[
0])&&(n=!
1),n})),n?(o.isOver||(o.isOver=
1,s._parent=i.helper.parent(),o.currentItem=i.helper.appendTo(o.element).
data(
"ui-sortable-item",!
0),o.options._helper=o.options.helper,o.options.helper=function(){
return i.helper[
0]},e.target=o.currentItem[
0],o._mouseCapture(e,!
0),o._mouseStart(e,!
0,!
0),o.offset.click.top=s.offset.click.top,o.offset.click.left=s.offset.click.left,o.offset.parent.left-=s.offset.parent.left-o.offset.parent.left,o.offset.parent.top-=s.offset.parent.top-o.offset.parent.top,s._trigger(
"toSortable",e),s.dropped=o.element,t.each(s.sortables,function(){
this.refreshPositions()}),s.currentItem=s.element,o.fromOutside=s),o.currentItem&&(o._mouseDrag(e),i.position=o.position)):o.isOver&&(o.isOver=
0,o.cancelHelperRemoval=!
0,o.options._revert=o.options.revert,o.options.revert=!
1,o._trigger(
"out",e,o._uiHash(o)),o._mouseStop(e,!
0),o.options.revert=o.options._revert,o.options.helper=o.options._helper,o.placeholder&&o.placeholder.remove(),i.helper.appendTo(s._parent),s._refreshOffsets(e),i.position=s._generatePosition(e,!
0),s._trigger(
"fromSortable",e),s.dropped=!
1,t.each(s.sortables,function(){
this.refreshPositions()}))})}}),t.ui.plugin.add(
"draggable",
"cursor",{start:function(e,i,s){
var n=t(
"body"),o=s.options;
-
n.css(
"cursor")&&(o._cursor=n.css(
"cursor")),n.css(
"cursor",o.cursor)},stop:function(e,i,s){
var n=s.options;n._cursor&&t(
"body").css(
"cursor",n._cursor)}}),t.ui.plugin.add(
"draggable",
"opacity",{start:function(e,i,s){
var n=t(i.helper),o=s.options;n.css(
"opacity")&&(o._opacity=n.css(
"opacity")),n.css(
"opacity",o.opacity)},stop:function(e,i,s){
var n=s.options;n._opacity&&t(i.helper).css(
"opacity",n._opacity)}}),t.ui.plugin.add(
"draggable",
"scroll",{start:function(t,e,i){i.scrollParentNotHidden||(i.scrollParentNotHidden=i.helper.scrollParent(!
1)),i.scrollParentNotHidden[
0]!==i.document[
0]&&
"HTML"!==i.scrollParentNotHidden[
0].tagName&&(i.overflowOffset=i.scrollParentNotHidden.offset())},drag:function(e,i,s){
var n=s.options,o=!
1,a=s.scrollParentNotHidden[
0],r=s.document[
0];a!==r&&
"HTML"!==a.tagName?(n.axis&&
"x"===n.axis||(s.overflowOffset.top+a.offsetHeight-e.pageY<n.scrollSensitivity?a.scrollTop=o=a.scrollTop+n.scrollSpeed:e.pageY-s.overflowOffset.top<n.scrollSensitivity&&(a.scrollTop=o=a.scrollTop-n.scrollSpeed)),n.axis&&
"y"===n.axis||(s.overflowOffset.left+a.offsetWidth-e.pageX<n.scrollSensitivity?a.scrollLeft=o=a.scrollLeft+n.scrollSpeed:e.pageX-s.overflowOffset.left<n.scrollSensitivity&&(a.scrollLeft=o=a.scrollLeft-n.scrollSpeed))):(n.axis&&
"x"===n.axis||(e.pageY-t(r).scrollTop()<n.scrollSensitivity?o=t(r).scrollTop(t(r).scrollTop()-n.scrollSpeed):t(window).height()-(e.pageY-t(r).scrollTop())<n.scrollSensitivity&&(o=t(r).scrollTop(t(r).scrollTop()+n.scrollSpeed))),n.axis&&
"y"===n.axis||(e.pageX-t(r).scrollLeft()<n.scrollSensitivity?o=t(r).scrollLeft(t(r).scrollLeft()-n.scrollSpeed):t(window).width()-(e.pageX-t(r).scrollLeft())<n.scrollSensitivity&&(o=t(r).scrollLeft(t(r).scrollLeft()+n.scrollSpeed)))),o!==!
1&&t.ui.ddmanager&&!n.dropBehaviour&&t.ui.ddmanager.prepareOffsets(s,e)}}),t.ui.plugin.add(
"draggable",
"snap",{start:function(e,i,s){
var n=s.options;s.snapElements=[],t(n.snap.
constructor!==String?n.snap.items||
":data(ui-draggable)":n.snap).each(function(){
var e=t(
this),i=e.offset();
this!==s.element[
0]&&s.snapElements.push({item:
this,width:e.outerWidth(),height:e.outerHeight(),top:i.top,left:i.left})})},drag:function(e,i,s){
var n,o,a,r,l,h,c,u,d,p,f=s.options,g=f.snapTolerance,m=i.offset.left,_=m+s.helperProportions.width,v=i.offset.top,b=v+s.helperProportions.height;
for(d=s.snapElements.length-
1;d>=
0;d--)l=s.snapElements[d].left-s.margins.left,h=l+s.snapElements[d].width,c=s.snapElements[d].top-s.margins.top,u=c+s.snapElements[d].height,l-g>_||m>h+g||c-g>b||v>u+g||!t.contains(s.snapElements[d].item.ownerDocument,s.snapElements[d].item)?(s.snapElements[d].snapping&&s.options.snap.release&&s.options.snap.release.call(s.element,e,t.extend(s._uiHash(),{snapItem:s.snapElements[d].item})),s.snapElements[d].snapping=!
1):(
"inner"!==f.snapMode&&(n=g>=Math.abs(c-b),o=g>=Math.abs(u-v),a=g>=Math.abs(l-_),r=g>=Math.abs(h-m),n&&(i.position.top=s._convertPositionTo(
"relative",{top:c-s.helperProportions.height,left:
0}).top),o&&(i.position.top=s._convertPositionTo(
"relative",{top:u,left:
0}).top),a&&(i.position.left=s._convertPositionTo(
"relative",{top:
0,left:l-s.helperProportions.width}).left),r&&(i.position.left=s._convertPositionTo(
"relative",{top:
0,left:h}).left)),p=n||o||a||r,
"outer"!==f.snapMode&&(n=g>=Math.abs(c-v),o=g>=Math.abs(u-b),a=g>=Math.abs(l-m),r=g>=Math.abs(h-_),n&&(i.position.top=s._convertPositionTo(
"relative",{top:c,left:
0}).top),o&&(i.position.top=s._convertPositionTo(
"relative",{top:u-s.helperProportions.height,left:
0}).top),a&&(i.position.left=s._convertPositionTo(
"relative",{top:
0,left:l}).left),r&&(i.position.left=s._convertPositionTo(
"relative",{top:
0,left:h-s.helperProportions.width}).left)),!s.snapElements[d].snapping&&(n||o||a||r||p)&&s.options.snap.snap&&s.options.snap.snap.call(s.element,e,t.extend(s._uiHash(),{snapItem:s.snapElements[d].item})),s.snapElements[d].snapping=n||o||a||r||p)}}),t.ui.plugin.add(
"draggable",
"stack",{start:function(e,i,s){
var n,o=s.options,a=t.makeArray(t(o.stack)).sort(function(e,i){
return(parseInt(t(e).css(
"zIndex"),
10)||
0)-(parseInt(t(i).css(
"zIndex"),
10)||
0)});a.length&&(n=parseInt(t(a[
0]).css(
"zIndex"),
10)||
0,t(a).each(function(e){t(
this).css(
"zIndex",n+e)}),
this.css(
"zIndex",n+a.length))}}),t.ui.plugin.add(
"draggable",
"zIndex",{start:function(e,i,s){
var n=t(i.helper),o=s.options;n.css(
"zIndex")&&(o._zIndex=n.css(
"zIndex")),n.css(
"zIndex",o.zIndex)},stop:function(e,i,s){
var n=s.options;n._zIndex&&t(i.helper).css(
"zIndex",n._zIndex)}}),t.ui.draggable,t.widget(
"ui.menu",{version:
"1.12.1",defaultElement:
"<ul>",delay:
300,options:{icons:{submenu:
"ui-icon-caret-1-e"},items:
"> *",menus:
"ul",position:{my:
"left top",at:
"right top"},role:
"menu",blur:
null,focus:
null,select:
null},_create:function(){
this.activeMenu=
this.element,
this.mouseHandled=!
1,
this.element.uniqueId().attr({role:
this.options.role,tabIndex:
0}),
this._addClass(
"ui-menu",
"ui-widget ui-widget-content"),
this._on({
"mousedown .ui-menu-item":function(t){t.preventDefault()},
"click .ui-menu-item":function(e){
var i=t(e.target),s=t(t.ui.safeActiveElement(
this.document[
0]));!
this.mouseHandled&&i.not(
".ui-state-disabled").length&&(
this.select(e),e.isPropagationStopped()||(
this.mouseHandled=!
0),i.has(
".ui-menu").length?
this.expand(e):!
this.element.
is(
":focus")&&s.closest(
".ui-menu").length&&(
this.element.trigger(
"focus",[!
0]),
this.active&&
1===
this.active.parents(
".ui-menu").length&&clearTimeout(
this.timer)))},
"mouseenter .ui-menu-item":function(e){
if(!
this.previousFilter){
var i=t(e.target).closest(
".ui-menu-item"),s=t(e.currentTarget);i[
0]===s[
0]&&(
this._removeClass(s.siblings().children(
".ui-state-active"),
null,
"ui-state-active"),
this.focus(e,s))}},mouseleave:
"collapseAll",
"mouseleave .ui-menu":
"collapseAll",focus:function(t,e){
var i=
this.active||
this.element.find(
this.options.items).eq(
0);e||
this.focus(t,i)},blur:function(e){
this._delay(function(){
var i=!t.contains(
this.element[
0],t.ui.safeActiveElement(
this.document[
0]));i&&
this.collapseAll(e)})},keydown:
"_keydown"}),
this.refresh(),
this._on(
this.document,{click:function(t){
this._closeOnDocumentClick(t)&&
this.collapseAll(t),
this.mouseHandled=!
1}})},_destroy:function(){
var e=
this.element.find(
".ui-menu-item").removeAttr(
"role aria-disabled"),i=e.children(
".ui-menu-item-wrapper").removeUniqueId().removeAttr(
"tabIndex role aria-haspopup");
this.element.removeAttr(
"aria-activedescendant").find(
".ui-menu").addBack().removeAttr(
"role aria-labelledby aria-expanded aria-hidden aria-disabled tabIndex").removeUniqueId().show(),i.children().each(function(){
var e=t(
this);e.
data(
"ui-menu-submenu-caret")&&e.remove()})},_keydown:function(e){
var i,s,n,o,a=!
0;switch(e.keyCode){case t.ui.keyCode.PAGE_UP:
this.previousPage(e);
break;case t.ui.keyCode.PAGE_DOWN:
this.nextPage(e);
break;case t.ui.keyCode.HOME:
this._move(
"first",
"first",e);
break;case t.ui.keyCode.END:
this._move(
"last",
"last",e);
break;case t.ui.keyCode.UP:
this.previous(e);
break;case t.ui.keyCode.DOWN:
this.next(e);
break;case t.ui.keyCode.LEFT:
this.collapse(e);
break;case t.ui.keyCode.RIGHT:
this.active&&!
this.active.
is(
".ui-state-disabled")&&
this.expand(e);
break;case t.ui.keyCode.ENTER:case t.ui.keyCode.SPACE:
this._activate(e);
break;case t.ui.keyCode.ESCAPE:
this.collapse(e);
break;default:a=!
1,s=
this.previousFilter||
"",o=!
1,n=e.keyCode>=
96&&
105>=e.keyCode?
""+(e.keyCode-
96):String.fromCharCode(e.keyCode),clearTimeout(
this.filterTimer),n===s?o=!
0:n=s+n,i=
this._filterMenuItems(n),i=o&&-
1!==i.index(
this.active.next())?
this.active.nextAll(
".ui-menu-item"):i,i.length||(n=String.fromCharCode(e.keyCode),i=
this._filterMenuItems(n)),i.length?(
this.focus(e,i),
this.previousFilter=n,
this.filterTimer=
this._delay(function(){delete
this.previousFilter},
1e3)):delete
this.previousFilter}a&&e.preventDefault()},_activate:function(t){
this.active&&!
this.active.
is(
".ui-state-disabled")&&(
this.active.children(
"[aria-haspopup='true']").length?
this.expand(t):
this.select(t))},refresh:function(){
var e,i,s,n,o,a=
this,r=
this.options.icons.submenu,l=
this.element.find(
this.options.menus);
this._toggleClass(
"ui-menu-icons",
null,!!
this.element.find(
".ui-icon").length),s=l.filter(
":not(.ui-menu)").hide().attr({role:
this.options.role,
"aria-hidden":
"true",
"aria-expanded":
"false"}).each(function(){
var e=t(
this),i=e.prev(),s=t(
"<span>").
data(
"ui-menu-submenu-caret",!
0);a._addClass(s,
"ui-menu-icon",
"ui-icon "+r),i.attr(
"aria-haspopup",
"true").prepend(s),e.attr(
"aria-labelledby",i.attr(
"id"))}),
this._addClass(s,
"ui-menu",
"ui-widget ui-widget-content ui-front"),e=l.add(
this.element),i=e.find(
this.options.items),i.not(
".ui-menu-item").each(function(){
var e=t(
this);a._isDivider(e)&&a._addClass(e,
"ui-menu-divider",
"ui-widget-content")}),n=i.not(
".ui-menu-item, .ui-menu-divider"),o=n.children().not(
".ui-menu").uniqueId().attr({tabIndex:-
1,role:
this._itemRole()}),
this._addClass(n,
"ui-menu-item")._addClass(o,
"ui-menu-item-wrapper"),i.filter(
".ui-state-disabled").attr(
"aria-disabled",
"true"),
this.active&&!t.contains(
this.element[
0],
this.active[
0])&&
this.blur()},_itemRole:function(){
return{menu:
"menuitem",listbox:
"option"}[
this.options.role]},_setOption:function(t,e){
if(
"icons"===t){
var i=
this.element.find(
".ui-menu-icon");
this._removeClass(i,
null,
this.options.icons.submenu)._addClass(i,
null,e.submenu)}
this._super(t,e)},_setOptionDisabled:function(t){
this._super(t),
this.element.attr(
"aria-disabled",t+
""),
this._toggleClass(
null,
"ui-state-disabled",!!t)},focus:function(t,e){
var i,s,n;
this.blur(t,t&&
"focus"===t.type),
this._scrollIntoView(e),
this.active=e.first(),s=
this.active.children(
".ui-menu-item-wrapper"),
this._addClass(s,
null,
"ui-state-active"),
this.options.role&&
this.element.attr(
"aria-activedescendant",s.attr(
"id")),n=
this.active.parent().closest(
".ui-menu-item").children(
".ui-menu-item-wrapper"),
this._addClass(n,
null,
"ui-state-active"),t&&
"keydown"===t.type?
this._close():
this.timer=
this._delay(function(){
this._close()},
this.delay),i=e.children(
".ui-menu"),i.length&&t&&/^mouse/.test(t.type)&&
this._startOpening(i),
this.activeMenu=e.parent(),
this._trigger(
"focus",t,{item:e})},_scrollIntoView:function(e){
var i,s,n,o,a,r;
this._hasScroll()&&(i=parseFloat(t.css(
this.activeMenu[
0],
"borderTopWidth"))||
0,s=parseFloat(t.css(
this.activeMenu[
0],
"paddingTop"))||
0,n=e.offset().top-
this.activeMenu.offset().top-i-s,o=
this.activeMenu.scrollTop(),a=
this.activeMenu.height(),r=e.outerHeight(),
0>n?
this.activeMenu.scrollTop(o+n):n+r>a&&
this.activeMenu.scrollTop(o+n-a+r))},blur:function(t,e){e||clearTimeout(
this.timer),
this.active&&(
this._removeClass(
this.active.children(
".ui-menu-item-wrapper"),
null,
"ui-state-active"),
this._trigger(
"blur",t,{item:
this.active}),
this.active=
null)},_startOpening:function(t){clearTimeout(
this.timer),
"true"===t.attr(
"aria-hidden")&&(
this.timer=
this._delay(function(){
this._close(),
this._open(t)},
this.delay))},_open:function(e){
var i=t.extend({of:
this.active},
this.options.position);clearTimeout(
this.timer),
this.element.find(
".ui-menu").not(e.parents(
".ui-menu")).hide().attr(
"aria-hidden",
"true"),e.show().removeAttr(
"aria-hidden").attr(
"aria-expanded",
"true").position(i)},collapseAll:function(e,i){clearTimeout(
this.timer),
this.timer=
this._delay(function(){
var s=i?
this.element:t(e&&e.target).closest(
this.element.find(
".ui-menu"));s.length||(s=
this.element),
this._close(s),
this.blur(e),
this._removeClass(s.find(
".ui-state-active"),
null,
"ui-state-active"),
this.activeMenu=s},
this.delay)},_close:function(t){t||(t=
this.active?
this.active.parent():
this.element),t.find(
".ui-menu").hide().attr(
"aria-hidden",
"true").attr(
"aria-expanded",
"false")},_closeOnDocumentClick:function(e){
return!t(e.target).closest(
".ui-menu").length},_isDivider:function(t){
return!/[^\-\u2014\u2013\s]/.test(t.text())},collapse:function(t){
var e=
this.active&&
this.active.parent().closest(
".ui-menu-item",
this.element);e&&e.length&&(
this._close(),
this.focus(t,e))},expand:function(t){
var e=
this.active&&
this.active.children(
".ui-menu ").find(
this.options.items).first();e&&e.length&&(
this._open(e.parent()),
this._delay(function(){
this.focus(t,e)}))},next:function(t){
this._move(
"next",
"first",t)},previous:function(t){
this._move(
"prev",
"last",t)},isFirstItem:function(){
return
this.active&&!
this.active.prevAll(
".ui-menu-item").length},isLastItem:function(){
return
this.active&&!
this.active.nextAll(
".ui-menu-item").length},_move:function(t,e,i){
var s;
this.active&&(s=
"first"===t||
"last"===t?
this.active[
"first"===t?
"prevAll":
"nextAll"](
".ui-menu-item").eq(-
1):
this.active[t+
"All"](
".ui-menu-item").eq(
0)),s&&s.length&&
this.active||(s=
this.activeMenu.find(
this.options.items)[e]()),
this.focus(i,s)},nextPage:function(e){
var i,s,n;
return
this.active?(
this.isLastItem()||(
this._hasScroll()?(s=
this.active.offset().top,n=
this.element.height(),
this.active.nextAll(
".ui-menu-item").each(function(){
return i=t(
this),
0>i.offset().top-s-n}),
this.focus(e,i)):
this.focus(e,
this.activeMenu.find(
this.options.items)[
this.active?
"last":
"first"]())),void
0):(
this.next(e),void
0)},previousPage:function(e){
var i,s,n;
return
this.active?(
this.isFirstItem()||(
this._hasScroll()?(s=
this.active.offset().top,n=
this.element.height(),
this.active.prevAll(
".ui-menu-item").each(function(){
return i=t(
this),i.offset().top-s+n>
0}),
this.focus(e,i)):
this.focus(e,
this.activeMenu.find(
this.options.items).first())),void
0):(
this.next(e),void
0)},_hasScroll:function(){
return
this.element.outerHeight()<
this.element.prop(
"scrollHeight")},select:function(e){
this.active=
this.active||t(e.target).closest(
".ui-menu-item");
var i={item:
this.active};
this.active.has(
".ui-menu").length||
this.collapseAll(e,!
0),
this._trigger(
"select",e,i)},_filterMenuItems:function(e){
var i=e.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,
"\\$&"),s=RegExp(
"^"+i,
"i");
return
this.activeMenu.find(
this.options.items).filter(
".ui-menu-item").filter(function(){
return s.test(t.trim(t(
this).children(
".ui-menu-item-wrapper").text()))})}}),t.widget(
"ui.autocomplete",{version:
"1.12.1",defaultElement:
"<input>",options:{appendTo:
null,autoFocus:!
1,delay:
300,minLength:
1,position:{my:
"left top",at:
"left bottom",collision:
"none"},source:
null,change:
null,close:
null,focus:
null,
open:
null,response:
null,search:
null,select:
null},requestIndex:
0,pending:
0,_create:function(){
var e,i,s,n=
this.element[
0].nodeName.toLowerCase(),o=
"textarea"===n,a=
"input"===n;
this.isMultiLine=o||!a&&
this._isContentEditable(
this.element),
this.valueMethod=
this.element[o||a?
"val":
"text"],
this.isNewMenu=!
0,
this._addClass(
"ui-autocomplete-input"),
this.element.attr(
"autocomplete",
"off"),
this._on(
this.element,{keydown:function(n){
if(
this.element.prop(
"readOnly"))
return e=!
0,s=!
0,i=!
0,void
0;e=!
1,s=!
1,i=!
1;
var o=t.ui.keyCode;switch(n.keyCode){case o.PAGE_UP:e=!
0,
this._move(
"previousPage",n);
break;case o.PAGE_DOWN:e=!
0,
this._move(
"nextPage",n);
break;case o.UP:e=!
0,
this._keyEvent(
"previous",n);
break;case o.DOWN:e=!
0,
this._keyEvent(
"next",n);
break;case o.ENTER:
this.menu.active&&(e=!
0,n.preventDefault(),
this.menu.select(n));
break;case o.TAB:
this.menu.active&&
this.menu.select(n);
break;case o.ESCAPE:
this.menu.element.
is(
":visible")&&(
this.isMultiLine||
this._value(
this.term),
this.close(n),n.preventDefault());
break;default:i=!
0,
this._searchTimeout(n)}},keypress:function(s){
if(e)
return e=!
1,(!
this.isMultiLine||
this.menu.element.
is(
":visible"))&&s.preventDefault(),void
0;
if(!i){
var n=t.ui.keyCode;switch(s.keyCode){case n.PAGE_UP:
this._move(
"previousPage",s);
break;case n.PAGE_DOWN:
this._move(
"nextPage",s);
break;case n.UP:
this._keyEvent(
"previous",s);
break;case n.DOWN:
this._keyEvent(
"next",s)}}},input:function(t){
return s?(s=!
1,t.preventDefault(),void
0):(
this._searchTimeout(t),void
0)},focus:function(){
this.selectedItem=
null,
this.previous=
this._value()},blur:function(t){
return
this.cancelBlur?(delete
this.cancelBlur,void
0):(clearTimeout(
this.searching),
this.close(t),
this._change(t),void
0)}}),
this._initSource(),
this.menu=t(
"<ul>").appendTo(
this._appendTo()).menu({role:
null}).hide().menu(
"instance"),
this._addClass(
this.menu.element,
"ui-autocomplete",
"ui-front"),
this._on(
this.menu.element,{mousedown:function(e){e.preventDefault(),
this.cancelBlur=!
0,
this._delay(function(){delete
this.cancelBlur,
this.element[
0]!==t.ui.safeActiveElement(
this.document[
0])&&
this.element.trigger(
"focus")})},menufocus:function(e,i){
var s,n;
return
this.isNewMenu&&(
this.isNewMenu=!
1,e.originalEvent&&/^mouse/.test(e.originalEvent.type))?(
this.menu.blur(),
this.document.one(
"mousemove",function(){t(e.target).trigger(e.originalEvent)}),void
0):(n=i.item.
data(
"ui-autocomplete-item"),!
1!==
this._trigger(
"focus",e,{item:n})&&e.originalEvent&&/^key/.test(e.originalEvent.type)&&
this._value(n.value),s=i.item.attr(
"aria-label")||n.value,s&&t.trim(s).length&&(
this.liveRegion.children().hide(),t(
"<div>").text(s).appendTo(
this.liveRegion)),void
0)},menuselect:function(e,i){
var s=i.item.
data(
"ui-autocomplete-item"),n=
this.previous;
this.element[
0]!==t.ui.safeActiveElement(
this.document[
0])&&(
this.element.trigger(
"focus"),
this.previous=n,
this._delay(function(){
this.previous=n,
this.selectedItem=s})),!
1!==
this._trigger(
"select",e,{item:s})&&
this._value(s.value),
this.term=
this._value(),
this.close(e),
this.selectedItem=s}}),
this.liveRegion=t(
"<div>",{role:
"status",
"aria-live":
"assertive",
"aria-relevant":
"additions"}).appendTo(
this.document[
0].body),
this._addClass(
this.liveRegion,
null,
"ui-helper-hidden-accessible"),
this._on(
this.window,{beforeunload:function(){
this.element.removeAttr(
"autocomplete")}})},_destroy:function(){clearTimeout(
this.searching),
this.element.removeAttr(
"autocomplete"),
this.menu.element.remove(),
this.liveRegion.remove()},_setOption:function(t,e){
this._super(t,e),
"source"===t&&
this._initSource(),
"appendTo"===t&&
this.menu.element.appendTo(
this._appendTo()),
"disabled"===t&&e&&
this.xhr&&
this.xhr.abort()},_isEventTargetInWidget:function(e){
var i=
this.menu.element[
0];
return e.target===
this.element[
0]||e.target===i||t.contains(i,e.target)},_closeOnClickOutside:function(t){
this._isEventTargetInWidget(t)||
this.close()},_appendTo:function(){
var e=
this.options.appendTo;
return e&&(e=e.jquery||e.nodeType?t(e):
this.document.find(e).eq(
0)),e&&e[
0]||(e=
this.element.closest(
".ui-front, dialog")),e.length||(e=
this.document[
0].body),e},_initSource:function(){
var e,i,s=
this;t.isArray(
this.options.source)?(e=
this.options.source,
this.source=function(i,s){s(t.ui.autocomplete.filter(e,i.term))}):
"string"==typeof
this.options.source?(i=
this.options.source,
this.source=function(e,n){s.xhr&&s.xhr.abort(),s.xhr=t.ajax({url:i,
data:e,dataType:
"json",success:function(t){n(t)},error:function(){n([])}})}):
this.source=
this.options.source},_searchTimeout:function(t){clearTimeout(
this.searching),
this.searching=
this._delay(function(){
var e=
this.term===
this._value(),i=
this.menu.element.
is(
":visible"),s=t.altKey||t.ctrlKey||t.metaKey||t.shiftKey;(!e||e&&!i&&!s)&&(
this.selectedItem=
null,
this.search(
null,t))},
this.options.delay)},search:function(t,e){
return t=
null!=t?t:
this._value(),
this.term=
this._value(),t.length<
this.options.minLength?
this.close(e):
this._trigger(
"search",e)!==!
1?
this._search(t):void
0},_search:function(t){
this.pending++,
this._addClass(
"ui-autocomplete-loading"),
this.cancelSearch=!
1,
this.source({term:t},
this._response())},_response:function(){
var e=++
this.requestIndex;
return t.proxy(function(t){e===
this.requestIndex&&
this.__response(t),
this.pending--,
this.pending||
this._removeClass(
"ui-autocomplete-loading")},
this)},__response:function(t){t&&(t=
this._normalize(t)),
this._trigger(
"response",
null,{content:t}),!
this.options.disabled&&t&&t.length&&!
this.cancelSearch?(
this._suggest(t),
this._trigger(
"open")):
this._close()},close:function(t){
this.cancelSearch=!
0,
this._close(t)},_close:function(t){
this._off(
this.document,
"mousedown"),
this.menu.element.
is(
":visible")&&(
this.menu.element.hide(),
this.menu.blur(),
this.isNewMenu=!
0,
this._trigger(
"close",t))},_change:function(t){
this.previous!==
this._value()&&
this._trigger(
"change",t,{item:
this.selectedItem})},_normalize:function(e){
return e.length&&e[
0].label&&e[
0].value?e:t.map(e,function(e){
return
"string"==typeof e?{label:e,value:e}:t.extend({},e,{label:e.label||e.value,value:e.value||e.label})})},_suggest:function(e){
var i=
this.menu.element.empty();
this._renderMenu(i,e),
this.isNewMenu=!
0,
this.menu.refresh(),i.show(),
this._resizeMenu(),i.position(t.extend({of:
this.element},
this.options.position)),
this.options.autoFocus&&
this.menu.next(),
this._on(
this.document,{mousedown:
"_closeOnClickOutside"})},_resizeMenu:function(){
var t=
this.menu.element;t.outerWidth(Math.max(t.width(
"").outerWidth()+
1,
this.element.outerWidth()))},_renderMenu:function(e,i){
var s=
this;t.each(i,function(t,i){s._renderItemData(e,i)})},_renderItemData:function(t,e){
return
this._renderItem(t,e).
data(
"ui-autocomplete-item",e)},_renderItem:function(e,i){
return t(
"<li>").append(t(
"<div>").text(i.label)).appendTo(e)},_move:function(t,e){
return
this.menu.element.
is(
":visible")?
this.menu.isFirstItem()&&/^previous/.test(t)||
this.menu.isLastItem()&&/^next/.test(t)?(
this.isMultiLine||
this._value(
this.term),
this.menu.blur(),void
0):(
this.menu[t](e),void
0):(
this.search(
null,e),void
0)},widget:function(){
return
this.menu.element},_value:function(){
return
this.valueMethod.apply(
this.element,arguments)},_keyEvent:function(t,e){(!
this.isMultiLine||
this.menu.element.
is(
":visible"))&&(
this._move(t,e),e.preventDefault())},_isContentEditable:function(t){
if(!t.length)
return!
1;
var e=t.prop(
"contentEditable");
return
"inherit"===e?
this._isContentEditable(t.parent()):
"true"===e}}),t.extend(t.ui.autocomplete,{escapeRegex:function(t){
return t.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,
"\\$&")},filter:function(e,i){
var s=RegExp(t.ui.autocomplete.escapeRegex(i),
"i");
return t.grep(e,function(t){
return s.test(t.label||t.value||t)})}}),t.widget(
"ui.autocomplete",t.ui.autocomplete,{options:{messages:{noResults:
"No search results.",results:function(t){
return t+(t>
1?
" results are":
" result is")+
" available, use up and down arrow keys to navigate."}}},__response:function(e){
var i;
this._superApply(arguments),
this.options.disabled||
this.cancelSearch||(i=e&&e.length?
this.options.messages.results(e.length):
this.options.messages.noResults,
this.liveRegion.children().hide(),t(
"<div>").text(i).appendTo(
this.liveRegion))}}),t.ui.autocomplete;
var n=
"ui-effects-",o=
"ui-effects-style",a=
"ui-effects-animated",r=t;t.effects={effect:{}},function(t,e){function i(t,e,i){
var s=u[e.type]||{};
return
null==t?i||!e.def?
null:e.def:(t=s.floor?~~t:parseFloat(t),isNaN(t)?e.def:s.mod?(t+s.mod)%s.mod:
0>t?
0:t>s.max?s.max:t)}function s(i){
var s=h(),n=s._rgba=[];
return i=i.toLowerCase(),f(l,function(t,o){
var a,r=o.re.exec(i),l=r&&o.parse(r),h=o.space||
"rgba";
return l?(a=s[h](l),s[c[h].cache]=a[c[h].cache],n=s._rgba=a._rgba,!
1):e}),n.length?(
"0,0,0,0"===n.join()&&t.extend(n,o.transparent),s):o[i]}function n(t,e,i){
return i=(i+
1)%
1,
1>
6*i?t+
6*(e-t)*i:
1>
2*i?e:
2>
3*i?t+
6*(e-t)*(
2/
3-i):t}
var o,a=
"backgroundColor borderBottomColor borderLeftColor borderRightColor borderTopColor color columnRuleColor outlineColor textDecorationColor textEmphasisColor",r=/^([\-+])=\s*(\d+\.?\d*)/,l=[{re:/rgba?\(\s*(\d{
1,
3})\s*,\s*(\d{
1,
3})\s*,\s*(\d{
1,
3})\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/,parse:function(t){
return[t[
1],t[
2],t[
3],t[
4]]}},{re:/rgba?\(\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/,parse:function(t){
return[
2.55*t[
1],
2.55*t[
2],
2.55*t[
3],t[
4]]}},{re:/#([a-f0-
9]{
2})([a-f0-
9]{
2})([a-f0-
9]{
2})/,parse:function(t){
return[parseInt(t[
1],
16),parseInt(t[
2],
16),parseInt(t[
3],
16)]}},{re:/#([a-f0-
9])([a-f0-
9])([a-f0-
9])/,parse:function(t){
return[parseInt(t[
1]+t[
1],
16),parseInt(t[
2]+t[
2],
16),parseInt(t[
3]+t[
3],
16)]}},{re:/hsla?\(\s*(\d+(?:\.\d+)?)\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/,space:
"hsla",parse:function(t){
return[t[
1],t[
2]/
100,t[
3]/
100,t[
4]]}}],h=t.Color=function(e,i,s,n){
return new t.Color.fn.parse(e,i,s,n)},c={rgba:{props:{red:{idx:
0,type:
"byte"},green:{idx:
1,type:
"byte"},blue:{idx:
2,type:
"byte"}}},hsla:{props:{hue:{idx:
0,type:
"degrees"},saturation:{idx:
1,type:
"percent"},lightness:{idx:
2,type:
"percent"}}}},u={
"byte":{floor:!
0,max:
255},percent:{max:
1},degrees:{mod:
360,floor:!
0}},d=h.support={},p=t(
"<p>")[
0],f=t.each;p.style.cssText=
"background-color:rgba(1,1,1,.5)",d.rgba=p.style.backgroundColor.indexOf(
"rgba")>-
1,f(c,function(t,e){e.cache=
"_"+t,e.props.alpha={idx:
3,type:
"percent",def:
1}}),h.fn=t.extend(h.prototype,{parse:function(n,a,r,l){
if(n===e)
return
this._rgba=[
null,
null,
null,
null],
this;(n.jquery||n.nodeType)&&(n=t(n).css(a),a=e);
var u=
this,d=t.type(n),p=
this._rgba=[];
return a!==e&&(n=[n,a,r,l],d=
"array"),
"string"===d?
this.parse(s(n)||o._default):
"array"===d?(f(c.rgba.props,function(t,e){p[e.idx]=i(n[e.idx],e)}),
this):
"object"===d?(n instanceof h?f(c,function(t,e){n[e.cache]&&(u[e.cache]=n[e.cache].slice())}):f(c,function(e,s){
var o=s.cache;f(s.props,function(t,e){
if(!u[o]&&s.to){
if(
"alpha"===t||
null==n[t])
return;u[o]=s.to(u._rgba)}u[o][e.idx]=i(n[t],e,!
0)}),u[o]&&
0>t.inArray(
null,u[o].slice(
0,
3))&&(u[o][
3]=
1,s.from&&(u._rgba=s.from(u[o])))}),
this):e},
is:function(t){
var i=h(t),s=!
0,n=
this;
return f(c,function(t,o){
var a,r=i[o.cache];
return r&&(a=n[o.cache]||o.to&&o.to(n._rgba)||[],f(o.props,function(t,i){
return
null!=r[i.idx]?s=r[i.idx]===a[i.idx]:e})),s}),s},_space:function(){
var t=[],e=
this;
return f(c,function(i,s){e[s.cache]&&t.push(i)}),t.pop()},transition:function(t,e){
var s=h(t),n=s._space(),o=c[n],a=
0===
this.alpha()?h(
"transparent"):
this,r=a[o.cache]||o.to(a._rgba),l=r.slice();
return s=s[o.cache],f(o.props,function(t,n){
var o=n.idx,a=r[o],h=s[o],c=u[n.type]||{};
null!==h&&(
null===a?l[o]=h:(c.mod&&(h-a>c.mod/
2?a+=c.mod:a-h>c.mod/
2&&(a-=c.mod)),l[o]=i((h-a)*e+a,n)))}),
this[n](l)},blend:function(e){
if(
1===
this._rgba[
3])
return
this;
var i=
this._rgba.slice(),s=i.pop(),n=h(e)._rgba;
return h(t.map(i,function(t,e){
return(
1-s)*n[e]+s*t}))},toRgbaString:function(){
var e=
"rgba(",i=t.map(
this._rgba,function(t,e){
return
null==t?e>
2?
1:
0:t});
return
1===i[
3]&&(i.pop(),e=
"rgb("),e+i.join()+
")"},toHslaString:function(){
var e=
"hsla(",i=t.map(
this.hsla(),function(t,e){
return
null==t&&(t=e>
2?
1:
0),e&&
3>e&&(t=Math.round(
100*t)+
"%"),t});
return
1===i[
3]&&(i.pop(),e=
"hsl("),e+i.join()+
")"},toHexString:function(e){
var i=
this._rgba.slice(),s=i.pop();
return e&&i.push(~~(
255*s)),
"#"+t.map(i,function(t){
return t=(t||
0).toString(
16),
1===t.length?
"0"+t:t}).join(
"")},toString:function(){
return
0===
this._rgba[
3]?
"transparent":
this.toRgbaString()}}),h.fn.parse.prototype=h.fn,c.hsla.to=function(t){
if(
null==t[
0]||
null==t[
1]||
null==t[
2])
return[
null,
null,
null,t[
3]];
var e,i,s=t[
0]/
255,n=t[
1]/
255,o=t[
2]/
255,a=t[
3],r=Math.max(s,n,o),l=Math.min(s,n,o),h=r-l,c=r+l,u=
.5*c;
return e=l===r?
0:s===r?
60*(n-o)/h+
360:n===r?
60*(o-s)/h+
120:
60*(s-n)/h+
240,i=
0===h?
0:
.5>=u?h/c:h/(
2-c),[Math.round(e)%
360,i,u,
null==a?
1:a]},c.hsla.from=function(t){
if(
null==t[
0]||
null==t[
1]||
null==t[
2])
return[
null,
null,
null,t[
3]];
var e=t[
0]/
360,i=t[
1],s=t[
2],o=t[
3],a=
.5>=s?s*(
1+i):s+i-s*i,r=
2*s-a;
return[Math.round(
255*n(r,a,e+
1/
3)),Math.round(
255*n(r,a,e)),Math.round(
255*n(r,a,e-
1/
3)),o]},f(c,function(s,n){
var o=n.props,a=n.cache,l=n.to,c=n.from;h.fn[s]=function(s){
if(l&&!
this[a]&&(
this[a]=l(
this._rgba)),s===e)
return
this[a].slice();
var n,r=t.type(s),u=
"array"===r||
"object"===r?s:arguments,d=
this[a].slice();
return f(o,function(t,e){
var s=u[
"object"===r?t:e.idx];
null==s&&(s=d[e.idx]),d[e.idx]=i(s,e)}),c?(n=h(c(d)),n[a]=d,n):h(d)},f(o,function(e,i){h.fn[e]||(h.fn[e]=function(n){
var o,a=t.type(n),l=
"alpha"===e?
this._hsla?
"hsla":
"rgba":s,h=
this[l](),c=h[i.idx];
return
"undefined"===a?c:(
"function"===a&&(n=n.call(
this,c),a=t.type(n)),
null==n&&i.empty?
this:(
"string"===a&&(o=r.exec(n),o&&(n=c+parseFloat(o[
2])*(
"+"===o[
1]?
1:-
1))),h[i.idx]=n,
this[l](h)))})})}),h.hook=function(e){
var i=e.split(
" ");f(i,function(e,i){t.cssHooks[i]={
set:function(e,n){
var o,a,r=
"";
if(
"transparent"!==n&&(
"string"!==t.type(n)||(o=s(n)))){
if(n=h(o||n),!d.rgba&&
1!==n._rgba[
3]){
for(a=
"backgroundColor"===i?e.parentNode:e;(
""===r||
"transparent"===r)&&a&&a.style;)
try{r=t.css(a,
"backgroundColor"),a=a.parentNode}
catch(l){}n=n.blend(r&&
"transparent"!==r?r:
"_default")}n=n.toRgbaString()}
try{e.style[i]=n}
catch(l){}}},t.fx.step[i]=function(e){e.colorInit||(e.start=h(e.elem,i),e.end=h(e.end),e.colorInit=!
0),t.cssHooks[i].
set(e.elem,e.start.transition(e.end,e.pos))}})},h.hook(a),t.cssHooks.borderColor={expand:function(t){
var e={};
return f([
"Top",
"Right",
"Bottom",
"Left"],function(i,s){e[
"border"+s+
"Color"]=t}),e}},o=t.Color.names={aqua:
"#00ffff",black:
"#000000",blue:
"#0000ff",fuchsia:
"#ff00ff",gray:
"#808080",green:
"#008000",lime:
"#00ff00",maroon:
"#800000",navy:
"#000080",olive:
"#808000",purple:
"#800080",red:
"#ff0000",silver:
"#c0c0c0",teal:
"#008080",white:
"#ffffff",yellow:
"#ffff00",transparent:[
null,
null,
null,
0],_default:
"#ffffff"}}(r),function(){function e(e){
var i,s,n=e.ownerDocument.defaultView?e.ownerDocument.defaultView.getComputedStyle(e,
null):e.currentStyle,o={};
if(n&&n.length&&n[
0]&&n[n[
0]])
for(s=n.length;s--;)i=n[s],
"string"==typeof n[i]&&(o[t.camelCase(i)]=n[i]);
else
for(i
in n)
"string"==typeof n[i]&&(o[i]=n[i]);
return o}function i(e,i){
var s,o,a={};
for(s
in i)o=i[s],e[s]!==o&&(n[s]||(t.fx.step[s]||!isNaN(parseFloat(o)))&&(a[s]=o));
return a}
var s=[
"add",
"remove",
"toggle"],n={border:
1,borderBottom:
1,borderColor:
1,borderLeft:
1,borderRight:
1,borderTop:
1,borderWidth:
1,margin:
1,padding:
1};t.each([
"borderLeftStyle",
"borderRightStyle",
"borderBottomStyle",
"borderTopStyle"],function(e,i){t.fx.step[i]=function(t){(
"none"!==t.end&&!t.setAttr||
1===t.pos&&!t.setAttr)&&(r.style(t.elem,i,t.end),t.setAttr=!
0)}}),t.fn.addBack||(t.fn.addBack=function(t){
return
this.add(
null==t?
this.prevObject:
this.prevObject.filter(t))}),t.effects.animateClass=function(n,o,a,r){
var l=t.speed(o,a,r);
return
this.queue(function(){
var o,a=t(
this),r=a.attr(
"class")||
"",h=l.children?a.find(
"*").addBack():a;h=h.map(function(){
var i=t(
this);
return{el:i,start:e(
this)}}),o=function(){t.each(s,function(t,e){n[e]&&a[e+
"Class"](n[e])})},o(),h=h.map(function(){
return
this.end=e(
this.el[
0]),
this.diff=i(
this.start,
this.end),
this}),a.attr(
"class",r),h=h.map(function(){
var e=
this,i=t.Deferred(),s=t.extend({},l,{queue:!
1,complete:function(){i.resolve(e)}});
return
this.el.animate(
this.diff,s),i.promise()}),t.
when.apply(t,h.
get()).done(function(){o(),t.each(arguments,function(){
var e=
this.el;t.each(
this.diff,function(t){e.css(t,
"")})}),l.complete.call(a[
0])})})},t.fn.extend({addClass:function(e){
return function(i,s,n,o){
return s?t.effects.animateClass.call(
this,{add:i},s,n,o):e.apply(
this,arguments)}}(t.fn.addClass),removeClass:function(e){
return function(i,s,n,o){
return arguments.length>
1?t.effects.animateClass.call(
this,{remove:i},s,n,o):e.apply(
this,arguments)}}(t.fn.removeClass),toggleClass:function(e){
return function(i,s,n,o,a){
return
"boolean"==typeof s||void
0===s?n?t.effects.animateClass.call(
this,s?{add:i}:{remove:i},n,o,a):e.apply(
this,arguments):t.effects.animateClass.call(
this,{toggle:i},s,n,o)}}(t.fn.toggleClass),switchClass:function(e,i,s,n,o){
return t.effects.animateClass.call(
this,{add:i,remove:e},s,n,o)}})}(),function(){function e(e,i,s,n){
return t.isPlainObject(e)&&(i=e,e=e.effect),e={effect:e},
null==i&&(i={}),t.isFunction(i)&&(n=i,s=
null,i={}),(
"number"==typeof i||t.fx.speeds[i])&&(n=s,s=i,i={}),t.isFunction(s)&&(n=s,s=
null),i&&t.extend(e,i),s=s||i.duration,e.duration=t.fx.off?
0:
"number"==typeof s?s:s
in t.fx.speeds?t.fx.speeds[s]:t.fx.speeds._default,e.complete=n||i.complete,e}function i(e){
return!e||
"number"==typeof e||t.fx.speeds[e]?!
0:
"string"!=typeof e||t.effects.effect[e]?t.isFunction(e)?!
0:
"object"!=typeof e||e.effect?!
1:!
0:!
0}function s(t,e){
var i=e.outerWidth(),s=e.outerHeight(),n=/^rect\((-?\d*\.?\d*px|-?\d+%|auto),?\s*(-?\d*\.?\d*px|-?\d+%|auto),?\s*(-?\d*\.?\d*px|-?\d+%|auto),?\s*(-?\d*\.?\d*px|-?\d+%|auto)\)$/,o=n.exec(t)||[
"",
0,i,s,
0];
return{top:parseFloat(o[
1])||
0,right:
"auto"===o[
2]?i:parseFloat(o[
2]),bottom:
"auto"===o[
3]?s:parseFloat(o[
3]),left:parseFloat(o[
4])||
0}}t.expr&&t.expr.filters&&t.expr.filters.animated&&(t.expr.filters.animated=function(e){
return function(i){
return!!t(i).
data(a)||e(i)}}(t.expr.filters.animated)),t.uiBackCompat!==!
1&&t.extend(t.effects,{save:function(t,e){
for(
var i=
0,s=e.length;s>i;i++)
null!==e[i]&&t.
data(n+e[i],t[
0].style[e[i]])
-
},restore:function(t,e){
for(
var i,s=
0,o=e.length;o>s;s++)
null!==e[s]&&(i=t.
data(n+e[s]),t.css(e[s],i))},setMode:function(t,e){
return
"toggle"===e&&(e=t.
is(
":hidden")?
"show":
"hide"),e},createWrapper:function(e){
if(e.parent().
is(
".ui-effects-wrapper"))
return e.parent();
var i={width:e.outerWidth(!
0),height:e.outerHeight(!
0),
"float":e.css(
"float")},s=t(
"<div></div>").addClass(
"ui-effects-wrapper").css({fontSize:
"100%",background:
"transparent",border:
"none",margin:
0,padding:
0}),n={width:e.width(),height:e.height()},o=document.activeElement;
try{o.id}
catch(a){o=document.body}
return e.wrap(s),(e[
0]===o||t.contains(e[
0],o))&&t(o).trigger(
"focus"),s=e.parent(),
"static"===e.css(
"position")?(s.css({position:
"relative"}),e.css({position:
"relative"})):(t.extend(i,{position:e.css(
"position"),zIndex:e.css(
"z-index")}),t.each([
"top",
"left",
"bottom",
"right"],function(t,s){i[s]=e.css(s),isNaN(parseInt(i[s],
10))&&(i[s]=
"auto")}),e.css({position:
"relative",top:
0,left:
0,right:
"auto",bottom:
"auto"})),e.css(n),s.css(i).show()},removeWrapper:function(e){
var i=document.activeElement;
return e.parent().
is(
".ui-effects-wrapper")&&(e.parent().replaceWith(e),(e[
0]===i||t.contains(e[
0],i))&&t(i).trigger(
"focus")),e}}),t.extend(t.effects,{version:
"1.12.1",define:function(e,i,s){
return s||(s=i,i=
"effect"),t.effects.effect[e]=s,t.effects.effect[e].mode=i,s},scaledDimensions:function(t,e,i){
if(
0===e)
return{height:
0,width:
0,outerHeight:
0,outerWidth:
0};
var s=
"horizontal"!==i?(e||
100)/
100:
1,n=
"vertical"!==i?(e||
100)/
100:
1;
return{height:t.height()*n,width:t.width()*s,outerHeight:t.outerHeight()*n,outerWidth:t.outerWidth()*s}},clipToBox:function(t){
return{width:t.clip.right-t.clip.left,height:t.clip.bottom-t.clip.top,left:t.clip.left,top:t.clip.top}},unshift:function(t,e,i){
var s=t.queue();e>
1&&s.splice.apply(s,[
1,
0].concat(s.splice(e,i))),t.dequeue()},saveStyle:function(t){t.
data(o,t[
0].style.cssText)},restoreStyle:function(t){t[
0].style.cssText=t.
data(o)||
"",t.removeData(o)},mode:function(t,e){
var i=t.
is(
":hidden");
return
"toggle"===e&&(e=i?
"show":
"hide"),(i?
"hide"===e:
"show"===e)&&(e=
"none"),e},getBaseline:function(t,e){
var i,s;switch(t[
0]){case
"top":i=
0;
break;case
"middle":i=
.5;
break;case
"bottom":i=
1;
break;default:i=t[
0]/e.height}switch(t[
1]){case
"left":s=
0;
break;case
"center":s=
.5;
break;case
"right":s=
1;
break;default:s=t[
1]/e.width}
return{x:s,y:i}},createPlaceholder:function(e){
var i,s=e.css(
"position"),o=e.position();
return e.css({marginTop:e.css(
"marginTop"),marginBottom:e.css(
"marginBottom"),marginLeft:e.css(
"marginLeft"),marginRight:e.css(
"marginRight")}).outerWidth(e.outerWidth()).outerHeight(e.outerHeight()),/^(static|relative)/.test(s)&&(s=
"absolute",i=t(
"<"+e[
0].nodeName+
">").insertAfter(e).css({display:/^(
inline|ruby)/.test(e.css(
"display"))?
"inline-block":
"block",visibility:
"hidden",marginTop:e.css(
"marginTop"),marginBottom:e.css(
"marginBottom"),marginLeft:e.css(
"marginLeft"),marginRight:e.css(
"marginRight"),
"float":e.css(
"float")}).outerWidth(e.outerWidth()).outerHeight(e.outerHeight()).addClass(
"ui-effects-placeholder"),e.
data(n+
"placeholder",i)),e.css({position:s,left:o.left,top:o.top}),i},removePlaceholder:function(t){
var e=n+
"placeholder",i=t.
data(e);i&&(i.remove(),t.removeData(e))},cleanUp:function(e){t.effects.restoreStyle(e),t.effects.removePlaceholder(e)},setTransition:function(e,i,s,n){
return n=n||{},t.each(i,function(t,i){
var o=e.cssUnit(i);o[
0]>
0&&(n[i]=o[
0]*s+o[
1])}),n}}),t.fn.extend({effect:function(){function i(e){function i(){l.removeData(a),t.effects.cleanUp(l),
"hide"===s.mode&&l.hide(),r()}function r(){t.isFunction(h)&&h.call(l[
0]),t.isFunction(e)&&e()}
var l=t(
this);s.mode=u.shift(),t.uiBackCompat===!
1||o?
"none"===s.mode?(l[c](),r()):n.call(l[
0],s,i):(l.
is(
":hidden")?
"hide"===c:
"show"===c)?(l[c](),r()):n.call(l[
0],s,r)}
var s=e.apply(
this,arguments),n=t.effects.effect[s.effect],o=n.mode,r=s.queue,l=r||
"fx",h=s.complete,c=s.mode,u=[],d=function(e){
var i=t(
this),s=t.effects.mode(i,c)||o;i.
data(a,!
0),u.push(s),o&&(
"show"===s||s===o&&
"hide"===s)&&i.show(),o&&
"none"===s||t.effects.saveStyle(i),t.isFunction(e)&&e()};
return t.fx.off||!n?c?
this[c](s.duration,h):
this.each(function(){h&&h.call(
this)}):r===!
1?
this.each(d).each(i):
this.queue(l,d).queue(l,i)},show:function(t){
return function(s){
if(i(s))
return t.apply(
this,arguments);
var n=e.apply(
this,arguments);
return n.mode=
"show",
this.effect.call(
this,n)}}(t.fn.show),hide:function(t){
return function(s){
if(i(s))
return t.apply(
this,arguments);
var n=e.apply(
this,arguments);
return n.mode=
"hide",
this.effect.call(
this,n)}}(t.fn.hide),toggle:function(t){
return function(s){
if(i(s)||
"boolean"==typeof s)
return t.apply(
this,arguments);
var n=e.apply(
this,arguments);
return n.mode=
"toggle",
this.effect.call(
this,n)}}(t.fn.toggle),cssUnit:function(e){
var i=
this.css(e),s=[];
return t.each([
"em",
"px",
"%",
"pt"],function(t,e){i.indexOf(e)>
0&&(s=[parseFloat(i),e])}),s},cssClip:function(t){
return t?
this.css(
"clip",
"rect("+t.top+
"px "+t.right+
"px "+t.bottom+
"px "+t.left+
"px)"):s(
this.css(
"clip"),
this)},transfer:function(e,i){
var s=t(
this),n=t(e.to),o=
"fixed"===n.css(
"position"),a=t(
"body"),r=o?a.scrollTop():
0,l=o?a.scrollLeft():
0,h=n.offset(),c={top:h.top-r,left:h.left-l,height:n.innerHeight(),width:n.innerWidth()},u=s.offset(),d=t(
"<div class='ui-effects-transfer'></div>").appendTo(
"body").addClass(e.className).css({top:u.top-r,left:u.left-l,height:s.innerHeight(),width:s.innerWidth(),position:o?
"fixed":
"absolute"}).animate(c,e.duration,e.easing,function(){d.remove(),t.isFunction(i)&&i()})}}),t.fx.step.clip=function(e){e.clipInit||(e.start=t(e.elem).cssClip(),
"string"==typeof e.end&&(e.end=s(e.end,e.elem)),e.clipInit=!
0),t(e.elem).cssClip({top:e.pos*(e.end.top-e.start.top)+e.start.top,right:e.pos*(e.end.right-e.start.right)+e.start.right,bottom:e.pos*(e.end.bottom-e.start.bottom)+e.start.bottom,left:e.pos*(e.end.left-e.start.left)+e.start.left})}}(),function(){
var e={};t.each([
"Quad",
"Cubic",
"Quart",
"Quint",
"Expo"],function(t,i){e[i]=function(e){
return Math.pow(e,t+
2)}}),t.extend(e,{Sine:function(t){
return
1-Math.cos(t*Math.PI/
2)},Circ:function(t){
return
1-Math.sqrt(
1-t*t)},Elastic:function(t){
return
0===t||
1===t?t:-Math.pow(
2,
8*(t-
1))*Math.sin((
80*(t-
1)-
7.5)*Math.PI/
15)},Back:function(t){
return t*t*(
3*t-
2)},Bounce:function(t){
for(
var e,i=
4;((e=Math.pow(
2,--i))-
1)/
11>t;);
return
1/Math.pow(
4,
3-i)-
7.5625*Math.pow((
3*e-
2)/
22-t,
2)}}),t.each(e,function(e,i){t.easing[
"easeIn"+e]=i,t.easing[
"easeOut"+e]=function(t){
return
1-i(
1-t)},t.easing[
"easeInOut"+e]=function(t){
return
.5>t?i(
2*t)/
2:
1-i(-
2*t+
2)/
2}})}(),t.effects});
6.jquery.mousewheel.js(辅助作用)
-
/*! Copyright (c) 2013 Brandon Aaron (http://brandon.aaron.sh)
-
* Licensed under the MIT License (LICENSE.txt).
-
*
-
* Version: 3.1.12
-
*
-
* Requires: jQuery 1.2.2+
-
*/
-
-
(
function (
factory) {
-
if (
typeof define ===
'function' && define.
amd ) {
-
// AMD. Register as an anonymous module.
-
define([
'jquery'], factory);
-
}
else
if (
typeof
exports ===
'object') {
-
// Node/CommonJS style for Browserify
-
module.
exports = factory;
-
}
else {
-
// Browser globals
-
factory(jQuery);
-
}
-
}(
function (
$) {
-
-
var toFix = [
'wheel',
'mousewheel',
'DOMMouseScroll',
'MozMousePixelScroll'],
-
toBind = (
'onwheel'
in
document ||
document.
documentMode >=
9 ) ?
-
[
'wheel'] : [
'mousewheel',
'DomMouseScroll',
'MozMousePixelScroll'],
-
slice =
Array.
prototype.
slice,
-
nullLowestDeltaTimeout, lowestDelta;
-
-
if ( $.event.
fixHooks ) {
-
for (
var i = toFix.
length; i; ) {
-
$.event.
fixHooks[ toFix[--i] ] = $.event.
mouseHooks;
-
}
-
}
-
-
var special = $.event.
special.
mousewheel = {
-
version:
'3.1.12',
-
-
setup:
function(
) {
-
if (
this.
addEventListener ) {
-
for (
var i = toBind.
length; i; ) {
-
this.
addEventListener( toBind[--i], handler,
false );
-
}
-
}
else {
-
this.
onmousewheel = handler;
-
}
-
// Store the line height and page height for this particular element
-
$.
data(
this,
'mousewheel-line-height', special.
getLineHeight(
this));
-
$.
data(
this,
'mousewheel-page-height', special.
getPageHeight(
this));
-
},
-
-
teardown:
function(
) {
-
if (
this.
removeEventListener ) {
-
for (
var i = toBind.
length; i; ) {
-
this.
removeEventListener( toBind[--i], handler,
false );
-
}
-
}
else {
-
this.
onmousewheel =
null;
-
}
-
// Clean up the data we added to the element
-
$.
removeData(
this,
'mousewheel-line-height');
-
$.
removeData(
this,
'mousewheel-page-height');
-
},
-
-
getLineHeight:
function(
elem) {
-
var $elem = $(elem),
-
$parent = $elem[
'offsetParent'
in $.fn ?
'offsetParent' :
'parent']();
-
if (!$parent.
length) {
-
$parent = $(
'body');
-
}
-
return
parseInt($parent.
css(
'fontSize'),
10) ||
parseInt($elem.
css(
'fontSize'),
10) ||
16;
-
},
-
-
getPageHeight:
function(
elem) {
-
return $(elem).
height();
-
},
-
-
settings: {
-
adjustOldDeltas:
true,
// see shouldAdjustOldDeltas() below
-
normalizeOffset:
true
// calls getBoundingClientRect for each event
-
}
-
};
-
-
$.fn.
extend({
-
mousewheel:
function(
fn) {
-
return fn ?
this.
bind(
'mousewheel', fn) :
this.
trigger(
'mousewheel');
-
},
-
-
unmousewheel:
function(
fn) {
-
return
this.
unbind(
'mousewheel', fn);
-
}
-
});
-
-
-
function
handler(
event) {
-
var orgEvent = event ||
window.
event,
-
args = slice.
call(
arguments,
1),
-
delta =
0,
-
deltaX =
0,
-
deltaY =
0,
-
absDelta =
0,
-
offsetX =
0,
-
offsetY =
0;
-
event = $.event.
fix(orgEvent);
-
event.
type =
'mousewheel';
-
-
// Old school scrollwheel delta
-
if (
'detail'
in orgEvent ) { deltaY = orgEvent.
detail * -
1; }
-
if (
'wheelDelta'
in orgEvent ) { deltaY = orgEvent.
wheelDelta; }
-
if (
'wheelDeltaY'
in orgEvent ) { deltaY = orgEvent.
wheelDeltaY; }
-
if (
'wheelDeltaX'
in orgEvent ) { deltaX = orgEvent.
wheelDeltaX * -
1; }
-
-
// Firefox < 17 horizontal scrolling related to DOMMouseScroll event
-
if (
'axis'
in orgEvent && orgEvent.
axis === orgEvent.
HORIZONTAL_AXIS ) {
-
deltaX = deltaY * -
1;
-
deltaY =
0;
-
}
-
-
// Set delta to be deltaY or deltaX if deltaY is 0 for backwards compatabilitiy
-
delta = deltaY ===
0 ? deltaX : deltaY;
-
-
// New school wheel delta (wheel event)
-
if (
'deltaY'
in orgEvent ) {
-
deltaY = orgEvent.
deltaY * -
1;
-
delta = deltaY;
-
}
-
if (
'deltaX'
in orgEvent ) {
-
deltaX = orgEvent.
deltaX;
-
if ( deltaY ===
0 ) { delta = deltaX * -
1; }
-
}
-
-
// No change actually happened, no reason to go any further
-
if ( deltaY ===
0 && deltaX ===
0 ) {
return; }
-
-
// Need to convert lines and pages to pixels if we aren't already in pixels
-
// There are three delta modes:
-
// * deltaMode 0 is by pixels, nothing to do
-
// * deltaMode 1 is by lines
-
// * deltaMode 2 is by pages
-
if ( orgEvent.
deltaMode ===
1 ) {
-
var lineHeight = $.
data(
this,
'mousewheel-line-height');
-
delta *= lineHeight;
-
deltaY *= lineHeight;
-
deltaX *= lineHeight;
-
}
else
if ( orgEvent.
deltaMode ===
2 ) {
-
var pageHeight = $.
data(
this,
'mousewheel-page-height');
-
delta *= pageHeight;
-
deltaY *= pageHeight;
-
deltaX *= pageHeight;
-
}
-
-
// Store lowest absolute delta to normalize the delta values
-
absDelta =
Math.
max(
Math.
abs(deltaY),
Math.
abs(deltaX) );
-
-
if ( !lowestDelta || absDelta < lowestDelta ) {
-
lowestDelta = absDelta;
-
-
// Adjust older deltas if necessary
-
if (
shouldAdjustOldDeltas(orgEvent, absDelta) ) {
-
lowestDelta /=
40;
-
}
-
}
-
-
// Adjust older deltas if necessary
-
if (
shouldAdjustOldDeltas(orgEvent, absDelta) ) {
-
// Divide all the things by 40!
-
delta /=
40;
-
deltaX /=
40;
-
deltaY /=
40;
-
}
-
-
// Get a whole, normalized value for the deltas
-
delta =
Math[ delta >=
1 ?
'floor' :
'ceil' ](delta / lowestDelta);
-
deltaX =
Math[ deltaX >=
1 ?
'floor' :
'ceil' ](deltaX / lowestDelta);
-
deltaY =
Math[ deltaY >=
1 ?
'floor' :
'ceil' ](deltaY / lowestDelta);
-
-
// Normalise offsetX and offsetY properties
-
if ( special.
settings.
normalizeOffset &&
this.
getBoundingClientRect ) {
-
var boundingRect =
this.
getBoundingClientRect();
-
offsetX = event.
clientX - boundingRect.
left;
-
offsetY = event.
clientY - boundingRect.
top;
-
}
-
-
// Add information to the event object
-
event.
deltaX = deltaX;
-
event.
deltaY = deltaY;
-
event.
deltaFactor = lowestDelta;
-
event.
offsetX = offsetX;
-
event.
offsetY = offsetY;
-
// Go ahead and set deltaMode to 0 since we converted to pixels
-
// Although this is a little odd since we overwrite the deltaX/Y
-
// properties with normalized deltas.
-
event.
deltaMode =
0;
-
-
// Add event and delta to the front of the arguments
-
args.
unshift(event, delta, deltaX, deltaY);
-
-
// Clearout lowestDelta after sometime to better
-
// handle multiple device types that give different
-
// a different lowestDelta
-
// Ex: trackpad = 3 and mouse wheel = 120
-
if (nullLowestDeltaTimeout) {
clearTimeout(nullLowestDeltaTimeout); }
-
nullLowestDeltaTimeout =
setTimeout(nullLowestDelta,
200);
-
-
return ($.event.
dispatch || $.event.
handle).
apply(
this, args);
-
}
-
-
function
nullLowestDelta(
) {
-
lowestDelta =
null;
-
}
-
-
function
shouldAdjustOldDeltas(
orgEvent, absDelta) {
-
// If this is an older event and the delta is divisable by 120,
-
// then we are assuming that the browser is treating this as an
-
// older mouse wheel event and that we should divide the deltas
-
// by 40 to try and get a more usable deltaFactor.
-
// Side note, this actually impacts the reported scroll distance
-
// in older browsers and can cause scrolling to be slower than native.
-
// Turn this off by setting $.event.special.mousewheel.settings.adjustOldDeltas to false.
-
return special.
settings.
adjustOldDeltas && orgEvent.
type ===
'mousewheel' && absDelta %
120 ===
0;
-
}
-
-
}));
7.reset.css(辅助作用)
-
body,
ul,
h1,
h2,
h3,
h4,
h5,
h6{
-
margin:
0;
-
padding:
0;
-
}
-
h1,
h2,
h3,
h4,
h5,
h6{
-
font-size:
100%;
-
font-weight:normal;
-
}
-
a{
-
text-decoration:none;
-
}
-
ul{
-
list-style:none;
-
}
-
img{
-
border:
0px;
-
}
-
-
/* 清除浮动,解决margin-top塌陷 */
-
.clearfix
:before,
.clearfix
:after{
-
content:
'';
-
display:table;
-
}
-
.clearfix
:after{
-
clear:both;
-
}
-
.clearfix{
-
zoom:
1;
-
}
-
-
.fl{
-
float
:left;
-
}
-
.fr{
-
float
:right;
-
}
8.main.css(辅助作用)
-
body {
-
font-family:
'Microsoft YaHei';
-
}
-
.wrap {
-
position: fixed;
-
width:
450px;
-
left:
50%;
-
margin-left: -
225px;
-
top:
20px;
-
bottom:
20px;
-
border:
1px solid
#ebebeb;
-
background-color:
#fff;
-
border-radius:
10px;
-
box-shadow:
0
0
30px
rgba(
0,
0,
0,
0.1);
-
overflow: hidden;
-
}
-
.header {
-
height:
55px;
-
background:
linear-gradient(
90deg,
rgba(
246,
60,
47,
0.6),
rgba(
128,
58,
242,
0.6));
-
overflow: hidden;
-
}
-
.header
h3 {
-
color:
#faf3fc;
-
line-height:
55px;
-
font-weight: normal;
-
float: left;
-
letter-spacing:
2px;
-
margin-left:
25px;
-
font-size:
18px;
-
text-shadow:
0px
0px
5px
#944846;
-
}
-
.header
img {
-
float: right;
-
margin:
7px
25px
0
0;
-
border-radius:
20px;
-
box-shadow:
0
0
5px
#f7f2fe;
-
}
-
.main {
-
position: absolute;
-
left:
0;
-
right:
0;
-
top:
55px;
-
bottom:
55px;
-
background-color:
#f4f3f3;
-
box-sizing: border-box;
-
padding:
10px
0;
-
overflow:hidden;
-
}
-
.talk_list{
-
position: absolute;
-
width:
100%;
-
left:
0px;
-
top:
0px;
-
}
-
.talk_list
li {
-
overflow: hidden;
-
margin:
20px
0px
30px;
-
}
-
.talk_list
.left_word
img {
-
float: left;
-
margin-left:
20px;
-
}
-
.talk_list
.left_word
span {
-
float: left;
-
background-color:
#fe9697;
-
padding:
10px
15px;
-
max-width:
290px;
-
border-radius:
12px;
-
font-size:
16px;
-
color:
#fff;
-
margin-left:
13px;
-
position: relative;
-
line-height:
24px;
-
}
-
.talk_list
.left_word
span
:before {
-
content:
'';
-
position: absolute;
-
left: -
8px;
-
top:
3px;
-
width:
13px;
-
height:
12px;
-
background:
url(
'../img/corner01.png') no-repeat;
-
}
-
.talk_list
.right_word
img {
-
float: right;
-
margin-right:
20px;
-
}
-
.talk_list
.right_word
span {
-
float: right;
-
background-color:
#fff;
-
padding:
10px
15px;
-
max-width:
290px;
-
border-radius:
12px;
-
font-size:
16px;
-
color:
#000;
-
margin-right:
13px;
-
position: relative;
-
line-height:
24px;
-
}
-
.talk_list
.right_word
span
:before {
-
content:
'';
-
position: absolute;
-
right: -
8px;
-
top:
3px;
-
width:
13px;
-
height:
12px;
-
background:
url(
'../img/corner02.png') no-repeat;
-
}
-
.drag_bar{
-
position:absolute;
-
right:
0px;
-
top:
0px;
-
background-color:
#fff;
-
height:
100%;
-
width:
6px;
-
box-sizing:border-box;
-
border-bottom:
1px solid
#f4f3f3;
-
}
-
.drager{
-
position:absolute;
-
left:
0px;
-
top:
0px;
-
background-color:
#cdcdcd;
-
height:
100px;
-
width:
6px;
-
border-radius:
3px;
-
cursor: pointer;
-
}
-
-
.footer{
-
width:
100%;
-
height:
55px;
-
left:
0px;
-
bottom:
0px;
-
background-color:
#fff;
-
position: absolute;
-
}
-
-
.footer
img{
-
float: left;
-
margin:
8px
0
0
20px;
-
}
-
-
.input_txt{
-
float: left;
-
width:
270px;
-
height:
37px;
-
border:
0px;
-
background-color:
#f4f3f3;
-
margin:
9px
0
0
20px;
-
border-radius:
8px;
-
padding:
0px;
-
outline:none;
-
text-indent:
15px;
-
}
-
.input_sub{
-
float: left;
-
width:
70px;
-
height:
37px;
-
border:
0px;
-
background-color:
#fe9697;
-
margin:
9px
0
0
15px;
-
border-radius:
8px;
-
padding:
0px;
-
outline:none;
-
color:
#fff;
-
cursor: pointer;
-
}
转载:https://blog.csdn.net/weixin_72322475/article/details/128101460
查看评论