Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
jinli gu
JSH ERP
Commits
38e7cb60
Commit
38e7cb60
authored
Apr 12, 2020
by
季圣华
Browse files
替换上传文件的js插件
parent
f0b49c21
Changes
12
Show whitespace changes
Inline
Side-by-side
erp_web/js/Huploadify/Huploadify.css
0 → 100644
View file @
38e7cb60
@charset
"utf-8"
;
/* CSS Document */
.uploadify-button
{
float
:
left
;
display
:
inline-block
;
border
:
1px
solid
#808080
;
background-color
:
#707070
;
line-height
:
24px
;
border-radius
:
12px
;
padding
:
0
18px
;
font-size
:
12px
;
font-weight
:
600
;
font-family
:
'微软雅黑'
;
color
:
#FFF
;
cursor
:
pointer
;
text-decoration
:
none
;
}
.uploadify-button
:hover
{
background-color
:
#888
;
}
.uploadfile
{
width
:
0
;
}
.uploadify-queue
.uploadify-queue-item
{
list-style-type
:
none
;
}
.uploadbtn
,
.delfilebtn
,
.showfilebtn
{
display
:
inline-block
;
border
:
1px
solid
#999
;
line-height
:
24px
;
border-radius
:
4px
;
padding
:
0
18px
;
font-size
:
12px
;
color
:
#666
;
cursor
:
pointer
;
background
:
url(images/btnbg.png)
repeat-x
0
0
;
text-decoration
:
none
;
}
.up_filename
,
.progressnum
,
.delfilebtn
,
.uploadbtn
,
.up_percent
{
font-size
:
12px
;
color
:
#666
;
margin-left
:
10px
;
}
.showfilebtn
{
font-size
:
12px
;
color
:
blue
;
margin-left
:
10px
;
border
:
1px
blue
solid
;
}
.uploadify-progress
{
display
:
inline-block
;
width
:
200px
;
height
:
10px
;
background-color
:
white
;
border-radius
:
20px
;
border
:
2px
groove
#666
;
vertical-align
:
middle
;
padding
:
0
;
margin-left
:
10px
;
}
.uploadify-progress-bar
{
width
:
0
;
height
:
100%
;
border-radius
:
20px
;
background-color
:
#0099FF
;
}
erp_web/js/Huploadify/jquery.Huploadify.js
0 → 100644
View file @
38e7cb60
(
function
(
$
){
$
.
fn
.
Huploadify
=
function
(
opts
){
var
itemTemp
=
'
<div id="${fileID}" class="uploadify-queue-item"><div class="uploadify-progress"><div class="uploadify-progress-bar"></div></div><span class="up_filename">${fileName}</span><span class="uploadbtn">上传</span><span class="delfilebtn">删除</span></div>
'
;
var
defaults
=
{
fileTypeExts
:
''
,
//允许上传的文件类型,格式'*.jpg;*.doc'
uploader
:
''
,
//文件提交的地址
auto
:
false
,
//是否开启自动上传
method
:
'
post
'
,
//发送请求的方式,get或post
multi
:
false
,
//是否允许选择多个文件
maxFileNumber
:
10
,
//最多能上传的文件数量
formData
:
null
,
//发送给服务端的参数,格式:{key1:value1,key2:value2}
fileObj
:
'
jarFile
'
,
//在后端接受文件的参数:文件
fileObjName
:
'
fileName
'
,
//在后端接受文件的参数:文件名称
fileSizeLimit
:
2048
,
//允许上传的文件大小,单位KB
showUploadedPercent
:
true
,
//是否实时显示上传的百分比,如20%
showUploadedSize
:
false
,
//是否实时显示已上传的文件大小,如1M/2M
buttonText
:
'
选择文件
'
,
//上传按钮上的文字
removeTimeout
:
1000
,
//上传完成后进度条的消失时间
itemTemplate
:
itemTemp
,
//上传队列显示的模板
onUploadStart
:
null
,
//上传开始时的动作
onUploadSuccess
:
null
,
//上传成功的动作
onUploadComplete
:
null
,
//上传完成的动作
onUploadError
:
null
,
//上传失败的动作
onInit
:
null
,
//初始化时的动作
onCancel
:
null
//删除掉某个文件后的回调函数,可传入参数file
}
var
option
=
$
.
extend
(
defaults
,
opts
);
//将文件的单位由bytes转换为KB或MB,若第二个参数指定为true,则永远转换为KB
var
formatFileSize
=
function
(
size
,
byKB
){
if
(
size
>
1024
*
1024
&&!
byKB
){
size
=
(
Math
.
round
(
size
*
100
/
(
1024
*
1024
))
/
100
).
toString
()
+
'
MB
'
;
}
else
{
size
=
(
Math
.
round
(
size
*
100
/
1024
)
/
100
).
toString
()
+
'
KB
'
;
}
return
size
;
}
//根据文件序号获取文件
var
getFile
=
function
(
index
,
files
){
for
(
var
i
=
0
;
i
<
files
.
length
;
i
++
){
if
(
files
[
i
].
index
==
index
){
return
files
[
i
];
}
}
return
false
;
}
//将输入的文件类型字符串转化为数组,原格式为*.jpg;*.png
var
getFileTypes
=
function
(
str
){
var
result
=
[];
var
arr1
=
str
.
split
(
"
;
"
);
for
(
var
i
=
0
,
len
=
arr1
.
length
;
i
<
len
;
i
++
){
result
.
push
(
arr1
[
i
].
split
(
"
.
"
).
pop
());
}
return
result
;
}
this
.
each
(
function
(){
var
_this
=
$
(
this
);
//先添加上file按钮和上传列表
var
instanceNumber
=
$
(
'
.uploadify
'
).
length
+
1
;
var
inputStr
=
'
<input id="select_btn_
'
+
instanceNumber
+
'
" class="selectbtn" style="display:none;" type="file" name="fileselect[]"
'
;
inputStr
+=
option
.
multi
?
'
multiple
'
:
''
;
inputStr
+=
'
accept="
'
;
inputStr
+=
getFileTypes
(
option
.
fileTypeExts
).
join
(
"
,
"
);
inputStr
+=
'
"/>
'
;
inputStr
+=
'
<a id="file_upload_
'
+
instanceNumber
+
'
-button" href="javascript:void(0)" class="uploadify-button">
'
;
inputStr
+=
option
.
buttonText
;
inputStr
+=
'
</a>
'
;
var
uploadFileListStr
=
'
<div id="file_upload_
'
+
instanceNumber
+
'
-queue" class="uploadify-queue"></div>
'
;
_this
.
append
(
inputStr
+
uploadFileListStr
);
//创建文件对象
var
fileObj
=
{
fileInput
:
_this
.
find
(
'
.selectbtn
'
),
//html file控件
uploadFileList
:
_this
.
find
(
'
.uploadify-queue
'
),
url
:
option
.
uploader
,
//ajax地址
fileFilter
:
[],
//过滤后的文件数组
filter
:
function
(
files
)
{
//选择文件组的过滤方法
var
arr
=
[];
if
(
this
.
uploadFileList
.
find
(
'
.uploadify-queue-item:visible
'
).
length
>=
option
.
maxFileNumber
)
{
alert
(
'
只能上传
'
+
option
.
maxFileNumber
+
'
个文件!
'
);
}
else
{
var
typeArray
=
getFileTypes
(
option
.
fileTypeExts
);
if
(
typeArray
.
length
>
0
){
for
(
var
i
=
0
,
len
=
files
.
length
;
i
<
len
;
i
++
){
var
thisFile
=
files
[
i
];
if
(
parseInt
(
formatFileSize
(
thisFile
.
size
,
true
))
>
option
.
fileSizeLimit
){
alert
(
'
文件
'
+
thisFile
.
name
+
'
大小超出限制!
'
);
continue
;
}
if
(
$
.
inArray
(
thisFile
.
name
.
split
(
'
.
'
).
pop
(),
typeArray
)
>=
0
){
arr
.
push
(
thisFile
);
}
else
{
alert
(
'
文件
'
+
thisFile
.
name
+
'
类型不允许!
'
);
}
}
}
}
return
arr
;
},
//文件选择后
onSelect
:
function
(
files
){
for
(
var
i
=
0
,
len
=
files
.
length
;
i
<
len
;
i
++
){
var
file
=
files
[
i
];
//处理模板中使用的变量
var
$html
=
$
(
option
.
itemTemplate
.
replace
(
/
\$
{fileID}/g
,
'
fileupload_
'
+
instanceNumber
+
'
_
'
+
file
.
index
).
replace
(
/
\$
{fileName}/g
,
file
.
name
).
replace
(
/
\$
{fileSize}/g
,
formatFileSize
(
file
.
size
)).
replace
(
/
\$
{instanceID}/g
,
_this
.
attr
(
'
id
'
)));
//如果是自动上传,去掉上传按钮
if
(
option
.
auto
){
$html
.
find
(
'
.uploadbtn
'
).
remove
();
}
this
.
uploadFileList
.
append
(
$html
);
//判断是否显示已上传文件大小
if
(
option
.
showUploadedSize
){
var
num
=
'
<span class="progressnum"><span class="uploadedsize">0KB</span>/<span class="totalsize">${fileSize}</span></span>
'
.
replace
(
/
\$
{fileSize}/g
,
formatFileSize
(
file
.
size
));
$html
.
find
(
'
.uploadify-progress
'
).
after
(
num
);
}
//判断是否显示上传百分比
if
(
option
.
showUploadedPercent
){
var
percentText
=
'
<span class="up_percent">0%</span>
'
;
$html
.
find
(
'
.uploadify-progress
'
).
after
(
percentText
);
}
//判断是否是自动上传
if
(
option
.
auto
){
this
.
funUploadFile
(
file
);
}
else
{
//如果配置非自动上传,绑定上传事件
$html
.
find
(
'
.uploadbtn
'
).
on
(
'
click
'
,(
function
(
file
){
return
function
(){
fileObj
.
funUploadFile
(
file
);}
})(
file
));
}
//为删除文件按钮绑定删除文件事件
$html
.
find
(
'
.delfilebtn
'
).
on
(
'
click
'
,(
function
(
file
){
return
function
(){
fileObj
.
funDeleteFile
(
file
.
index
);}
})(
file
));
}
},
onProgress
:
function
(
file
,
loaded
,
total
)
{
var
eleProgress
=
_this
.
find
(
'
#fileupload_
'
+
instanceNumber
+
'
_
'
+
file
.
index
+
'
.uploadify-progress
'
);
var
percent
=
(
loaded
/
total
*
100
).
toFixed
(
2
)
+
'
%
'
;
if
(
option
.
showUploadedSize
){
eleProgress
.
nextAll
(
'
.progressnum .uploadedsize
'
).
text
(
formatFileSize
(
loaded
));
eleProgress
.
nextAll
(
'
.progressnum .totalsize
'
).
text
(
formatFileSize
(
total
));
}
if
(
option
.
showUploadedPercent
){
eleProgress
.
nextAll
(
'
.up_percent
'
).
text
(
percent
);
}
eleProgress
.
children
(
'
.uploadify-progress-bar
'
).
css
(
'
width
'
,
percent
);
},
//文件上传进度
/* 开发参数和内置方法分界线 */
//获取选择文件,file控件
funGetFiles
:
function
(
e
)
{
// 获取文件列表对象
var
files
=
e
.
target
.
files
;
//继续添加文件
files
=
this
.
filter
(
files
);
for
(
var
i
=
0
,
len
=
files
.
length
;
i
<
len
;
i
++
){
this
.
fileFilter
.
push
(
files
[
i
]);
}
this
.
funDealFiles
(
files
);
return
this
;
},
//选中文件的处理与回调
funDealFiles
:
function
(
files
)
{
var
fileCount
=
_this
.
find
(
'
.uploadify-queue .uploadify-queue-item
'
).
length
;
//队列中已经有的文件个数
for
(
var
i
=
0
,
len
=
files
.
length
;
i
<
len
;
i
++
){
files
[
i
].
index
=
++
fileCount
;
files
[
i
].
id
=
files
[
i
].
index
;
}
//执行选择回调
this
.
onSelect
(
files
);
return
this
;
},
//删除对应的文件
funDeleteFile
:
function
(
index
)
{
for
(
var
i
=
0
,
len
=
this
.
fileFilter
.
length
;
i
<
len
;
i
++
)
{
var
file
=
this
.
fileFilter
[
i
];
if
(
file
.
index
==
index
)
{
this
.
fileFilter
.
splice
(
i
,
1
);
_this
.
find
(
'
#fileupload_
'
+
instanceNumber
+
'
_
'
+
index
).
fadeOut
();
option
.
onCancel
&&
option
.
onCancel
(
file
);
break
;
}
}
return
this
;
},
//文件上传
funUploadFile
:
function
(
file
)
{
var
xhr
=
false
;
try
{
xhr
=
new
XMLHttpRequest
();
//尝试创建 XMLHttpRequest 对象,除 IE 外的浏览器都支持这个方法。
}
catch
(
e
){
xhr
=
ActiveXobject
(
"
Msxml12.XMLHTTP
"
);
//使用较新版本的 IE 创建 IE 兼容的对象(Msxml2.XMLHTTP)。
}
if
(
xhr
.
upload
)
{
// 上传中
xhr
.
upload
.
addEventListener
(
"
progress
"
,
function
(
e
)
{
fileObj
.
onProgress
(
file
,
e
.
loaded
,
e
.
total
);
},
false
);
// 文件上传成功或是失败
xhr
.
onreadystatechange
=
function
(
e
)
{
if
(
xhr
.
readyState
==
4
)
{
if
(
xhr
.
status
==
200
)
{
//校正进度条和上传比例的误差
var
thisfile
=
_this
.
find
(
'
#fileupload_
'
+
instanceNumber
+
'
_
'
+
file
.
index
);
thisfile
.
find
(
'
.uploadify-progress-bar
'
).
css
(
'
width
'
,
'
100%
'
);
option
.
showUploadedSize
&&
thisfile
.
find
(
'
.uploadedsize
'
).
text
(
thisfile
.
find
(
'
.totalsize
'
).
text
());
option
.
showUploadedPercent
&&
thisfile
.
find
(
'
.up_percent
'
).
text
(
'
100%
'
);
option
.
onUploadSuccess
&&
option
.
onUploadSuccess
(
file
,
xhr
.
responseText
);
//在指定的间隔时间后删掉进度条
setTimeout
(
function
(){
_this
.
find
(
'
#fileupload_
'
+
instanceNumber
+
'
_
'
+
file
.
index
).
fadeOut
();
},
option
.
removeTimeout
);
}
else
{
option
.
onUploadError
&&
option
.
onUploadError
(
file
,
xhr
.
responseText
);
}
option
.
onUploadComplete
&&
option
.
onUploadComplete
(
file
,
xhr
.
responseText
);
//清除文件选择框中的已有值
fileObj
.
fileInput
.
val
(
''
);
}
};
option
.
onUploadStart
&&
option
.
onUploadStart
();
// 开始上传
xhr
.
open
(
option
.
method
,
this
.
url
,
true
);
xhr
.
setRequestHeader
(
"
X-Requested-With
"
,
"
XMLHttpRequest
"
);
var
fd
=
new
FormData
();
fd
.
append
(
option
.
fileObj
,
file
);
fd
.
append
(
option
.
fileObjName
,
file
.
name
);
if
(
option
.
formData
){
for
(
key
in
option
.
formData
){
fd
.
append
(
key
,
option
.
formData
[
key
]);
}
}
xhr
.
send
(
fd
);
}
},
init
:
function
()
{
//文件选择控件选择
if
(
this
.
fileInput
.
length
>
0
)
{
this
.
fileInput
.
change
(
function
(
e
)
{
fileObj
.
funGetFiles
(
e
);
});
}
//点击上传按钮时触发file的click事件
_this
.
find
(
'
.uploadify-button
'
).
on
(
'
click
'
,
function
(){
_this
.
find
(
'
.selectbtn
'
).
trigger
(
'
click
'
);
});
option
.
onInit
&&
option
.
onInit
();
}
};
//初始化文件对象
fileObj
.
init
();
});
}
})(
jQuery
)
\ No newline at end of file
erp_web/js/fileUploadQT/css/fileUpload.css
deleted
100644 → 0
View file @
f0b49c21
.fileUploadContent
.box
{
border
:
solid
thin
#DDDDDD
;
min-height
:
200px
;
min-width
:
200px
;
margin-top
:
0px
;
}
.fileUploadContent
.fileItem
{
border
:
solid
thin
#DDDDDD
;
width
:
150px
;
height
:
215px
;
display
:
inline-block
;
margin
:
10px
;
text-align
:
center
;
border-radius
:
5px
;
vertical-align
:
top
;
}
.fileUploadContent
.fileItem
.imgShow
{
width
:
140px
;
height
:
140px
;
margin
:
5px
auto
;
text-align
:
center
;
}
.fileUploadContent
.fileItem
.imgShow
i
{
font-size
:
120px
;
position
:
relative
;
top
:
-30px
;
z-index
:
2
;
}
.fileUploadContent
.fileItem
.imgShow
img
{
width
:
100%
;
height
:
100%
;
}
.fileUploadContent
.fileItem
.imgShow
.fileType
{
color
:
#FFFFFF
;
font-size
:
20px
;
;
position
:
relative
;
top
:
63px
;
z-index
:
3
;
left
:
-18px
;
}
.fileUploadContent
.fileItem
.progress
{
height
:
10px
;
width
:
100%
;
}
.fileUploadContent
.fileItem
.progress
>
.progress_inner
{
background-color
:
#0099FF
;
width
:
0%
;
height
:
10px
;
border-radius
:
10px
;
}
.fileUploadContent
.fileItem
.progress
.error
{
background-color
:
red
;
}
.fileUploadContent
.fileItem
.status
{
font-size
:
15px
;
text-align
:
center
;
}
.fileUploadContent
.fileItem
.status
i
{
display
:
block
;
float
:
left
;
padding
:
2px
5px
;
color
:
red
;
margin-left
:
3px
;
border-radius
:
5px
;
;
font-size
:
15px
;
cursor
:
pointer
;
}
.fileUploadContent
.fileItem
.fileName
{
white-space
:
nowrap
;
text-overflow
:
ellipsis
;
-o-text-overflow
:
ellipsis
;
-ms-text-overflow
:
ellipsis
;
overflow
:
hidden
;
clear
:
both
;
padding
:
2px
2px
;
}
.fileUploadContent
.uploadBts
{
text-align
:
left
;
height
:
40px
}
.fileUploadContent
.uploadBts
>
div
{
float
:
left
;
margin-right
:
15px
;
}
.fileUploadContent
.uploadBts
>
div
.selectFileBt
{
border
:
none
;
background-color
:
#0099FF
;
color
:
#FFFFFF
;
padding
:
6px
;
font-size
:
15px
;
border-radius
:
5px
;
cursor
:
pointer
;
}
.fileUploadContent
.uploadBts
>
div
.selectFileBt
:hover
{
color
:
#DDDDDD
;
}
.fileUploadContent
.uploadBts
>
div
i
{
font-size
:
30px
;
color
:
#0099FF
;
cursor
:
pointer
;
}
.fileUploadContent
.subberProgress
{
padding
:
5px
;
display
:
none
;
}
.fileUploadContent
.subberProgress
.progress
{
border
:
solid
thin
#0099FF
;
height
:
20px
;
width
:
100%
;
border-radius
:
20px
;
overflow
:
hidden
;
}
.fileUploadContent
.subberProgress
.progress
>
div
{
background-color
:
#0099FF
;
width
:
0%
;
height
:
20px
;
border-bottom-left-radius
:
20px
;
border-top-left-radius
:
20px
;
text-align
:
center
;
color
:
#FFFFFF
;
transition
:
width
0.5s
;
-moz-transition
:
width
0.5s
;
/* Firefox 4 */
-webkit-transition
:
width
0.5s
;
/* Safari 和 Chrome */
-o-transition
:
width
0.5s
;
/* Opera */
transition-timing-function
:
linear
;
-moz-transition-timing-function
:
linear
;
-webkit-transition-timing-function
:
linear
;
-o-transition-timing-function
:
linear
;
}
\ No newline at end of file
erp_web/js/fileUploadQT/css/iconfont.css
deleted
100644 → 0
View file @
f0b49c21
@font-face
{
font-family
:
"iconfont"
;
src
:
url('../fonts/iconfont.eot?t=1489192348890')
;
/* IE9*/
src
:
url('../fonts/iconfont.eot?t=1489192348890#iefix')
format
(
'embedded-opentype'
),
/* IE6-IE8 */
url('../fonts/iconfont.woff?t=1489192348890')
format
(
'woff'
),
/* chrome, firefox */
url('../fonts/iconfont.ttf?t=1489192348890')
format
(
'truetype'
),
/* chrome, firefox, opera, Safari, Android, iOS 4.2+*/
url('../fonts/iconfont.svg?t=1489192348890#iconfont')
format
(
'svg'
);
/* iOS 4.1- */
}
.iconfont
{
font-family
:
"iconfont"
!important
;
font-size
:
16px
;
font-style
:
normal
;
-webkit-font-smoothing
:
antialiased
;
-moz-osx-font-smoothing
:
grayscale
;
}
.icon-shanchu
:before
{
content
:
"\e636"
;
}
.icon-gou
:before
{
content
:
"\e666"
;
}
.icon-wenjian
:before
{
content
:
"\e634"
;
}
.icon-wenjian1
:before
{
content
:
"\e614"
;
}
.icon-qingchu
:before
{
content
:
"\e60a"
;
}
.icon-shangchuan
:before
{
content
:
"\e6f7"
;
}
.icon-cha
:before
{
content
:
"\e602"
;
}
.icon-wenjian2
:before
{
content
:
"\e615"
;
}
erp_web/js/fileUploadQT/demo.html
deleted
100644 → 0
View file @
f0b49c21
<!DOCTYPE html>
<html
lang=
"en"
>
<head>
<meta
charset=
"UTF-8"
>
<title>
文件上传
</title>
<link
href=
"css/iconfont.css"
rel=
"stylesheet"
type=
"text/css"
/>
<link
href=
"css/fileUpload.css"
rel=
"stylesheet"
type=
"text/css"
>
</head>
<body>
<div
id=
"fileUploadContent"
class=
"fileUploadContent"
>
<!--<div class="uploadBts">
<div>
<div class="selectFileBt">选择文件</div>
</div>
<div>
<i class="iconfont icon-shangchuan"></i>
</div>
</div>
<div class="subberProgress">
<div class="progress">
<div>30%</div>
</div>
</div>
<div class="box">
<div class="fileItem">
<div class="imgShow">
<div class="fileType">txt</div>
<i class="iconfont icon-wenjian"></i>
</div>
<div class="progress">
<div class="progress_inner error"></div>
</div>
<div class="status">
<i class="iconfont icon-shanchu"></i>
</div>
<div class="fileName">
qwertyuiopasdfghjklzxcvbnm.jpg
</div>
</div>
<div class="fileItem">
<div class="imgShow">
<div class="fileType">jpg</div>
<i class="iconfont icon-wenjian"></i>
</div>
<div class="progress">
<div class="progress_inner error"></div>
</div>
<div class="status">
<i class="iconfont icon-shanchu"></i>
</div>
<div class="fileName">
qwertyuiopasdfghjklzxcvbnm.jpg
</div>
</div>
<div class="fileItem">
<div class="imgShow">
<img src="404bg.jpg"/>
</div>
<div class="progress">
<div class="progress_inner error"></div>
</div>
<div class="status">
<i class="iconfont icon-shanchu"></i>
</div>
<div class="fileName">
qwertyuiopasdfghjklzxcvbnm.jpg
</div>
</div>
</div>-->
</div>
</body>
</html>
<script
src=
"http://www.jq22.com/jquery/jquery-1.10.2.js"
></script>
<script
type=
"text/javascript"
src=
"js/fileUpload.js"
></script>
<script
type=
"text/javascript"
>
$
(
"
#fileUploadContent
"
).
initUpload
({
"
uploadUrl
"
:
"
#
"
,
//上传文件信息地址
"
progressUrl
"
:
"
#
"
,
//获取进度信息地址,可选,注意需要返回的data格式如下({bytesRead: 102516060, contentLength: 102516060, items: 1, percent: 100, startTime: 1489223136317, useTime: 2767})
//"showSummerProgress":false,//总进度条,默认限制
//"size":350,//文件大小限制,单位kb,默认不限制
//"maxFileNumber":3,//文件个数限制,为整数
//"filelSavePath":"",//文件上传地址,后台设置的根目录
//"beforeUpload":beforeUploadFun,//在上传前执行的函数
//"onUpload":onUploadFun,//在上传后执行的函数
autoCommit
:
false
,
//文件是否自动上传
//"fileType":['png','jpg','docx','doc'],//文件类型限制,默认不限制,注意写的是文件后缀
})
function
beforeUploadFun
(
opt
){
opt
.
otherData
=
[{
"
name
"
:
"
你要上传的参数
"
,
"
value
"
:
"
你要上传的值
"
}];
}
function
onUploadFun
(
opt
,
data
){
alert
(
data
);
uploadTools
.
uploadError
(
opt
);
//显示上传错误
}
</script>
\ No newline at end of file
erp_web/js/fileUploadQT/fonts/iconfont.eot
deleted
100644 → 0
View file @
f0b49c21
File deleted
erp_web/js/fileUploadQT/fonts/iconfont.svg
deleted
100644 → 0
View file @
f0b49c21
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
<svg
xmlns=
"http://www.w3.org/2000/svg"
>
<metadata>
Created by FontForge 20120731 at Sat Mar 11 08:32:28 2017
By admin
</metadata>
<defs>
<font
id=
"iconfont"
horiz-adv-x=
"1024"
>
<font-face
font-family=
"iconfont"
font-weight=
"500"
font-stretch=
"normal"
units-per-em=
"1024"
panose-1=
"2 0 6 3 0 0 0 0 0 0"
ascent=
"896"
descent=
"-128"
x-height=
"792"
bbox=
"0 -212 1024 876"
underline-thickness=
"0"
underline-position=
"0"
unicode-range=
"U+0078-E6F7"
/>
<missing-glyph
/>
<glyph
glyph-name=
".notdef"
/>
<glyph
glyph-name=
".notdef"
/>
<glyph
glyph-name=
".null"
horiz-adv-x=
"0"
/>
<glyph
glyph-name=
"nonmarkingreturn"
horiz-adv-x=
"341"
/>
<glyph
glyph-name=
"x"
unicode=
"x"
horiz-adv-x=
"1001"
d=
"M281 543q-27 -1 -53 -1h-83q-18 0 -36.5 -6t-32.5 -18.5t-23 -32t-9 -45.5v-76h912v41q0 16 -0.5 30t-0.5 18q0 13 -5 29t-17 29.5t-31.5 22.5t-49.5 9h-133v-97h-438v97zM955 310v-52q0 -23 0.5 -52t0.5 -58t-10.5 -47.5t-26 -30t-33 -16t-31.5 -4.5q-14 -1 -29.5 -0.5
t-29.5 0.5h-32l-45 128h-439l-44 -128h-29h-34q-20 0 -45 1q-25 0 -41 9.5t-25.5 23t-13.5 29.5t-4 30v167h911zM163 247q-12 0 -21 -8.5t-9 -21.5t9 -21.5t21 -8.5q13 0 22 8.5t9 21.5t-9 21.5t-22 8.5zM316 123q-8 -26 -14 -48q-5 -19 -10.5 -37t-7.5 -25t-3 -15t1 -14.5
t9.5 -10.5t21.5 -4h37h67h81h80h64h36q23 0 34 12t2 38q-5 13 -9.5 30.5t-9.5 34.5q-5 19 -11 39h-368zM336 498v228q0 11 2.5 23t10 21.5t20.5 15.5t34 6h188q31 0 51.5 -14.5t20.5 -52.5v-227h-327z"
/>
<glyph
glyph-name=
"shanchu"
unicode=
""
d=
"M641 596v76h-259v-76h-171v-74h602v74h-172zM239 472l44 -537h458l44 537h-546zM426 37h-70v342h70v-342zM546 37h-69v342h69v-342zM670 37h-72v342h72v-342z"
/>
<glyph
glyph-name=
"gou"
unicode=
""
d=
"M800 567l-413 -413l-163 163q-18 18 -44 18t-44.5 -18t-18.5 -44t19 -44l195 -196q20 -20 56 -18q36 -2 56 18l445 445q19 19 19 44.5t-18.5 44t-44.5 18.5t-44 -18z"
/>
<glyph
glyph-name=
"wenjian"
unicode=
""
d=
"M877 646l-29 29l-29 29q-59 60 -90 84t-59 24h-316q-65 0 -111 -46t-46 -112v-275h-118q-16 0 -28 -11.5t-12 -28.5v-236q0 -16 12 -27.5t28 -11.5h118v-118q0 -66 46 -112t111 -46h473q65 0 111.5 46t46.5 112v551q0 29 -24 60t-84 89zM906 -54q0 -33 -23 -56t-56 -23
h-473q-32 0 -55 23t-23 56v118h394q16 0 27.5 11.5t11.5 27.5v236q0 17 -11.5 28.5t-27.5 11.5h-394v275q0 33 23 56t55 23h288q10 -2 16 -9t8.5 -20t3 -21.5t0.5 -26.5v-120q0 -16 11.5 -27.5t27.5 -11.5h118q20 0 30 -1t23.5 -4t19.5 -11.5t6 -22.5v-512z"
/>
<glyph
glyph-name=
"wenjian1"
unicode=
""
d=
"M992 684h-499l-118 119q-10 9 -23 9h-320q-13 0 -22.5 -9.5t-9.5 -22.5v-704q0 -13 9.5 -22.5t22.5 -9.5h352q13 0 22.5 9.5t9.5 22.5t-9.5 22.5t-22.5 9.5h-320v640h275l118 -119q10 -9 23 -9h480v-512h-320q-13 0 -22.5 -9.5t-9.5 -22.5t9.5 -22.5t22.5 -9.5h352
q13 0 22.5 9.5t9.5 22.5v576q0 13 -9.5 22.5t-22.5 9.5zM640 172q13 0 22.5 9.5t9.5 22.5t-9 23l-128 128q-10 9 -23 9t-23 -9l-128 -128q-9 -10 -9 -23t9.5 -22.5t22.5 -9.5t23 9l73 74v-435q0 -13 9.5 -22.5t22.5 -9.5t22.5 9.5t9.5 22.5v435l73 -74q10 -9 23 -9z"
/>
<glyph
glyph-name=
"qingchu"
unicode=
""
d=
"M31 796v0v0zM740 -108q-37 0 -123.5 -30t-120.5 -30q-37 0 -123.5 30t-117.5 30q-18 0 -40 -6t-35.5 -11.5t-35.5 -14.5q-12 -6 -18 -8.5t-15 -5.5t-13 -3q-4 1 -7 3q-4 2 -4.5 8.5t1.5 16t6 24.5l11 32q6 17 12 38q15 42 28 80t24 73t18 56l8 20h726q36 -201 52 -304
q2 -14 2 -23q0 -5 -0.5 -8.5t-1 -6.5t-2.5 -5.5t-4 -3.5q-6 -2 -10 -3q-2 -1 -5.5 -0.5t-8 2t-8.5 3t-8 2.5q-7 3 -21 8q-28 12 -47 17q-6 2 -13.5 4t-17.5 4t-21 5q-5 1 -10 1.5t-10 1.5t-9 1l-10 2h-9h-10l-9 1v0zM861 254h-606q-24 0 -42 18t-18 44q25 33 81 121
q46 61 100 61h90l31 242l14 18q9 9 32.5 25.5t44 16.5t43.5 -14q6 -4 11 -8t9.5 -8t8 -7t6.5 -7l13 -16l-30 -242h89q25 0 54 -17t50 -48q56 -86 79 -117q0 -28 -18 -45t-42 -17v0z"
/>
<glyph
glyph-name=
"shangchuan"
unicode=
""
horiz-adv-x=
"1040"
d=
"M375 552q-3 3 -7.5 7t-19.5 12t-31 11t-40 -0.5t-48 -17.5q-21 -14 -35 -33t-19.5 -36.5t-7 -33t-1 -25l0.5 -9.5q-7 -1 -18 -4.5t-40 -19t-51 -36.5t-40 -61t-18 -90q3 -127 118 -167q35 -12 64 -12h266v189h-128l192 190l192 -190h-128v-189h259q3 0 9 0.5t23.5 3.5
t34 9t37.5 18.5t37 29.5t29 45t18 62q3 52 -13 94t-37.5 64t-50.5 38t-40.5 19.5t-18.5 5.5v0q1 3 1 9t-1 25t-3.5 37.5t-9 44.5t-16.5 48.5t-27 46.5t-39 42t-54 32t-71 19q-58 6 -106.5 -10.5t-77 -43t-49 -56t-28 -47.5t-7.5 -21z"
/>
<glyph
glyph-name=
"cha"
unicode=
""
d=
"M511.5 798q-112.5 0 -207.5 -55.5t-150.5 -150.5t-55.5 -207.5t55.5 -208t150.5 -151t207.5 -55.5t208 55.5t151 151t55.5 208t-55.5 207.5t-151 150.5t-208 55.5zM720 215q9 -9 9 -21t-9 -21t-21 -8.5t-21 8.5l-166 168l-168 -166q-8 -9 -20.5 -9t-21 8.5t-8.5 21
t9 21.5l168 166l-167 168q-9 9 -9 21t9 21t21 9t21 -9l167 -168l168 166q8 9 20.5 8.5t21 -9t8.5 -20.5t-9 -21l-168 -166z"
/>
<glyph
glyph-name=
"wenjian2"
unicode=
""
d=
"M924 620v2q0 16 -11 27l-217 217q-11 10 -26 10h-4h-475q-30 0 -51.5 -21.5t-21.5 -51.5v-843q0 -30 21.5 -51.5t51.5 -21.5h660q31 0 52.5 21.5t21.5 51.5v660h-1zM668 785l166 -165h-166v165zM851 -40h-660v843h404v-220q0 -15 10.5 -26t25.5 -11h220v-586v0z"
/>
</font>
</defs></svg>
erp_web/js/fileUploadQT/fonts/iconfont.ttf
deleted
100644 → 0
View file @
f0b49c21
File deleted
erp_web/js/fileUploadQT/fonts/iconfont.woff
deleted
100644 → 0
View file @
f0b49c21
File deleted
erp_web/js/fileUploadQT/js/fileUpload.js
deleted
100644 → 0
View file @
f0b49c21
/**
* Created by zxm on 2017/3/10.
*/
$
.
fn
.
extend
({
"
initUpload
"
:
function
(
opt
)
{
if
(
typeof
opt
!=
"
object
"
)
{
alert
(
'
参数错误!
'
);
return
;
}
var
uploadId
=
$
(
this
).
attr
(
"
id
"
);
if
(
uploadId
==
null
||
uploadId
==
""
){
alert
(
"
要设定一个id!
"
);
}
$
.
each
(
uploadTools
.
getInitOption
(
uploadId
),
function
(
key
,
value
)
{
if
(
opt
[
key
]
==
null
)
{
opt
[
key
]
=
value
;
}
});
uploadTools
.
initWithLayout
(
opt
);
//初始化布局
uploadTools
.
initWithDrag
(
opt
);
//初始化拖拽
uploadTools
.
initWithSelectFile
(
opt
);
//初始化选择文件按钮
uploadTools
.
initWithUpload
(
opt
);
//初始化上传
uploadTools
.
initWithCleanFile
(
opt
);
uploadFileList
.
initFileList
();
}
});
/**
* 上传基本工具和操作
*/
var
uploadTools
=
{
/**
* 基本配置参数
* @param uploadId
* @returns {{uploadId: *, url: string, autoCommit: string, canDrag: boolean, fileType: string, size: string, ismultiple: boolean, showSummerProgress: boolean}}
*/
"
getInitOption
"
:
function
(
uploadId
){
//url test测试需要更改
var
initOption
=
{
"
uploadId
"
:
uploadId
,
"
uploadUrl
"
:
"
#
"
,
//必须,上传地址
"
progressUrl
"
:
"
#
"
,
//可选,获取进去信息的url
"
autoCommit
"
:
false
,
//是否自动上传
"
canDrag
"
:
true
,
//是否可以拖动
"
fileType
"
:
"
*
"
,
//文件类型
"
size
"
:
"
-1
"
,
//文件大小限制,单位kB
"
ismultiple
"
:
true
,
//是否选择多文件
"
showSummerProgress
"
:
true
,
//显示总进度条
"
filelSavePath
"
:
""
,
//文件上传地址,后台设置的根目录
"
beforeUpload
"
:
function
(){
//在上传前面执行的回调函数
},
"
onUpload
"
:
function
(){
//在上传之后
//alert("hellos");
}
};
return
initOption
;
},
/**
* 初始化文件上传
* @param opt
*/
"
initWithUpload
"
:
function
(
opt
){
var
uploadId
=
opt
.
uploadId
;
$
(
"
#
"
+
uploadId
+
"
.uploadBts .uploadFileBt
"
).
on
(
"
click
"
,
function
(){
uploadEvent
.
uploadFileEvent
(
opt
);
});
$
(
"
#
"
+
uploadId
+
"
.uploadBts .uploadFileBt i
"
).
css
(
"
color
"
,
"
#0099FF
"
);
},
/**
* 初始化清除文件
* @param opt
*/
"
initWithCleanFile
"
:
function
(
opt
){
var
uploadId
=
opt
.
uploadId
;
$
(
"
#
"
+
uploadId
+
"
.uploadBts .cleanFileBt
"
).
on
(
"
click
"
,
function
(){
uploadEvent
.
cleanFileEvent
(
opt
);
});
$
(
"
#
"
+
uploadId
+
"
.uploadBts .cleanFileBt i
"
).
css
(
"
color
"
,
"
#0099FF
"
);
},
/**
* 初始化选择文件按钮
* @param opt
*/
"
initWithSelectFile
"
:
function
(
opt
){
var
uploadId
=
opt
.
uploadId
;
$
(
"
#
"
+
uploadId
+
"
.uploadBts .selectFileBt
"
).
on
(
"
click
"
,
function
(){
uploadEvent
.
selectFileEvent
(
opt
);
});
},
/**
* 返回显示文件类型的模板
* @param isImg 是否式图片:true/false
* @param fileType 文件类型
* @param fileName 文件名字
* @param isImgUrl 如果事文件时的文件地址默认为null
*/
"
getShowFileType
"
:
function
(
isImg
,
fileType
,
fileName
,
isImgUrl
,
fileCodeId
){
var
showTypeStr
=
"
<div class='fileType'>
"
+
fileType
+
"
</div> <i class='iconfont icon-wenjian'></i>
"
;
//默认显示类型
if
(
isImg
){
if
(
isImgUrl
!=
null
&&
isImgUrl
!=
"
null
"
&&
isImgUrl
!=
""
){
//图片显示类型
showTypeStr
=
"
<img src='
"
+
isImgUrl
+
"
'/>
"
;
}
}
var
modelStr
=
""
;
modelStr
+=
"
<div class='fileItem' fileCodeId='
"
+
fileCodeId
+
"
'>
"
;
modelStr
+=
"
<div class='imgShow'>
"
;
modelStr
+=
showTypeStr
;
modelStr
+=
"
</div>
"
;
modelStr
+=
"
<div class='progress'>
"
;
modelStr
+=
"
<div class='progress_inner'></div>
"
;
modelStr
+=
"
</div>
"
;
modelStr
+=
"
<div class='status'>
"
;
modelStr
+=
"
<i class='iconfont icon-shanchu'></i>
"
;
modelStr
+=
"
</div>
"
;
modelStr
+=
"
<div class='fileName'>
"
;
modelStr
+=
fileName
;
modelStr
+=
"
</div>
"
;
modelStr
+=
"
</div>
"
;
return
modelStr
;
},
/**
* 初始化布局
* @param opt 参数对象
*/
"
initWithLayout
"
:
function
(
opt
){
var
uploadId
=
opt
.
uploadId
;
//选择文件和上传按钮模板
var
btsStr
=
""
;
btsStr
+=
"
<div class='uploadBts'>
"
;
btsStr
+=
"
<div>
"
;
btsStr
+=
"
<div class='selectFileBt'>选择文件</div>
"
;
btsStr
+=
"
</div>
"
;
btsStr
+=
"
<div class='uploadFileBt'>
"
;
btsStr
+=
"
<i class='iconfont icon-shangchuan'></i>
"
;
btsStr
+=
"
</div>
"
;
btsStr
+=
"
<div class='cleanFileBt'>
"
;
btsStr
+=
"
<i class='iconfont icon-qingchu'></i>
"
;
btsStr
+=
"
</div>
"
;
btsStr
+=
"
</div>
"
;
$
(
"
#
"
+
uploadId
).
append
(
btsStr
);
//添加总进度条
if
(
opt
.
showSummerProgress
){
var
summerProgressStr
=
"
<div class='subberProgress'>
"
;
summerProgressStr
+=
"
<div class='progress'>
"
;
summerProgressStr
+=
"
<div>0%</div>
"
;
summerProgressStr
+=
"
</div>
"
;
summerProgressStr
+=
"
</div>
"
;
$
(
"
#
"
+
uploadId
).
append
(
summerProgressStr
);
}
//添加文件显示框
var
boxStr
=
"
<div class='box'></div>
"
;
$
(
"
#
"
+
uploadId
).
append
(
boxStr
);
},
/**
* 初始化拖拽事件
* @param opt 参数对象
*/
"
initWithDrag
"
:
function
(
opt
){
var
canDrag
=
opt
.
canDrag
;
var
uploadId
=
opt
.
uploadId
;
if
(
canDrag
){
$
(
document
).
on
({
dragleave
:
function
(
e
){
//拖离
e
.
preventDefault
();
},
drop
:
function
(
e
){
//拖后放
e
.
preventDefault
();
},
dragenter
:
function
(
e
){
//拖进
e
.
preventDefault
();
},
dragover
:
function
(
e
){
//拖来拖去
e
.
preventDefault
();
}
});
var
box
=
$
(
"
#
"
+
uploadId
+
"
.box
"
).
get
(
0
);
if
(
box
!=
null
){
//验证图片格式,大小,是否存在
box
.
addEventListener
(
"
drop
"
,
function
(
e
)
{
uploadEvent
.
dragListingEvent
(
e
,
opt
);
});
}
}
},
/**
* 删除文件
* @param opt
*/
"
initWithDeleteFile
"
:
function
(
opt
){
var
uploadId
=
opt
.
uploadId
;
$
(
"
#
"
+
uploadId
+
"
.fileItem .status i
"
).
on
(
"
click
"
,
function
(){
uploadEvent
.
deleteFileEvent
(
opt
,
this
);
})
},
/**
* 获取文件名后缀
* @param fileName 文件名全名
* */
"
getSuffixNameByFileName
"
:
function
(
fileName
){
var
str
=
fileName
;
var
pos
=
str
.
lastIndexOf
(
"
.
"
)
+
1
;
var
lastname
=
str
.
substring
(
pos
,
str
.
length
);
return
lastname
;
},
/**
* 判断某个值是否在这个数组内
* */
"
isInArray
"
:
function
(
strFound
,
arrays
){
var
ishave
=
false
;
for
(
var
i
=
0
;
i
<
arrays
.
length
;
i
++
){
if
(
strFound
==
arrays
[
i
]){
ishave
=
true
;
break
;
}
}
return
ishave
;
},
/**
* 文件是否已经存在
* */
"
fileIsExit
"
:
function
(
file
){
var
fileList
=
uploadFileList
.
fileList
;
var
ishave
=
false
;
for
(
var
i
=
0
;
i
<
fileList
.
length
;
i
++
){
//文件名相同,文件大小相同
if
(
fileList
[
i
]
!=
null
&&
fileList
[
i
].
name
==
file
.
name
&&
fileList
[
i
].
size
==
file
.
size
){
ishave
=
true
;
}
}
return
ishave
;
},
/**
* 添加文件到列表
* */
"
addFileList
"
:
function
(
fileList
,
opt
){
var
uploadId
=
opt
.
uploadId
;
var
boxJsObj
=
$
(
"
#
"
+
uploadId
+
"
.box
"
).
get
(
0
);
var
fileListArray
=
uploadFileList
.
getFileList
();
var
fileNumber
=
uploadTools
.
getFileNumber
(
opt
);
if
(
fileNumber
+
fileList
.
length
>
opt
.
maxFileNumber
){
alert
(
"
最多只能上传
"
+
opt
.
maxFileNumber
+
"
个文件
"
);
return
;
}
var
imgtest
=
/image
\/(\w)
*/
;
//图片文件测试
var
fileTypeArray
=
opt
.
fileType
;
//文件类型集合
var
fileSizeLimit
=
opt
.
size
;
//文件大小限制
for
(
var
i
=
0
;
i
<
fileList
.
length
;
i
++
){
//判断文件是否存在
if
(
uploadTools
.
fileIsExit
(
fileList
[
i
])){
alert
(
"
文件(
"
+
fileList
[
i
].
name
+
"
)已经存在!
"
);
continue
;
}
var
fileTypeStr
=
uploadTools
.
getSuffixNameByFileName
(
fileList
[
i
].
name
);
//文件大小显示判断
if
(
fileSizeLimit
!=-
1
&&
fileList
[
i
].
size
>
(
fileSizeLimit
*
1000
)){
alert
(
"
文件(
"
+
fileList
[
i
].
name
+
"
)超出了大小限制!请控制在
"
+
fileSizeLimit
+
"
KB内
"
);
continue
;
}
//文件类型判断
if
(
fileTypeArray
==
"
*
"
||
uploadTools
.
isInArray
(
fileTypeStr
,
fileTypeArray
)){
var
fileTypeUpcaseStr
=
fileTypeStr
.
toUpperCase
();
if
(
imgtest
.
test
(
fileList
[
i
].
type
)){
//var imgUrlStr = window.webkitURL.createObjectURL(fileList[i]);//获取文件路径
var
imgUrlStr
=
""
;
//获取文件路径
if
(
window
.
createObjectURL
!=
undefined
)
{
// basic
imgUrlStr
=
window
.
createObjectURL
(
fileList
[
i
]);
}
else
if
(
window
.
URL
!=
undefined
)
{
// mozilla(firefox)
imgUrlStr
=
window
.
URL
.
createObjectURL
(
fileList
[
i
]);
}
else
if
(
window
.
webkitURL
!=
undefined
)
{
// webkit or chrome
imgUrlStr
=
window
.
webkitURL
.
createObjectURL
(
fileList
[
i
]);
}
var
fileModel
=
uploadTools
.
getShowFileType
(
true
,
fileTypeUpcaseStr
,
fileList
[
i
].
name
,
imgUrlStr
,
fileListArray
.
length
);
$
(
boxJsObj
).
append
(
fileModel
);
}
else
{
var
fileModel
=
uploadTools
.
getShowFileType
(
true
,
fileTypeUpcaseStr
,
fileList
[
i
].
name
,
null
,
fileListArray
.
length
);
$
(
boxJsObj
).
append
(
fileModel
);
}
uploadTools
.
initWithDeleteFile
(
opt
);
fileListArray
[
fileListArray
.
length
]
=
fileList
[
i
];
}
else
{
alert
(
"
不支持该格式文件上传:
"
+
fileList
[
i
].
name
);
}
}
uploadFileList
.
setFileList
(
fileListArray
);
},
/**
* 清除选择文件的input
* */
"
cleanFilInputWithSelectFile
"
:
function
(
opt
){
var
uploadId
=
opt
.
uploadId
;
$
(
"
#
"
+
uploadId
+
"
_file
"
).
remove
();
},
/**
* 根据制定信息显示
*/
"
showUploadProgress
"
:
function
(
opt
,
bytesRead
,
percent
){
var
uploadId
=
opt
.
uploadId
;
var
fileListArray
=
uploadFileList
.
getFileList
();
if
(
opt
.
showSummerProgress
){
var
progressBar
=
$
(
"
#
"
+
uploadId
+
"
.subberProgress .progress>div
"
);
progressBar
.
css
(
"
width
"
,
percent
+
"
%
"
);
progressBar
.
html
(
percent
+
"
%
"
);
}
for
(
var
i
=
0
;
i
<
fileListArray
.
length
;
i
++
){
if
(
fileListArray
[
i
]
==
null
){
continue
;
}
var
testbytesRead
=
bytesRead
-
fileListArray
[
i
].
size
;
if
(
testbytesRead
<
0
){
if
(
percent
==
100
){
$
(
"
#
"
+
uploadId
+
"
.box .fileItem[fileCodeId='
"
+
i
+
"
'] .progress>div
"
).
addClass
(
"
error
"
);
$
(
"
#
"
+
uploadId
+
"
.box .fileItem[fileCodeId='
"
+
i
+
"
'] .progress>div
"
).
css
(
"
width
"
,
"
100%
"
);
$
(
"
#
"
+
uploadId
+
"
.box .fileItem[fileCodeId='
"
+
i
+
"
'] .status>i
"
).
addClass
(
"
iconfont icon-cha
"
);
bytesRead
=
bytesRead
-
fileListArray
[
i
].
size
;
}
else
{
$
(
"
#
"
+
uploadId
+
"
.box .fileItem[fileCodeId='
"
+
i
+
"
'] .progress>div
"
).
css
(
"
width
"
,(
bytesRead
/
fileListArray
[
i
].
size
*
100
)
+
"
%
"
);
break
;
}
}
else
if
(
testbytesRead
>=
0
){
$
(
"
#
"
+
uploadId
+
"
.box .fileItem[fileCodeId='
"
+
i
+
"
'] .status>i
"
).
addClass
(
"
iconfont icon-gou
"
);
$
(
"
#
"
+
uploadId
+
"
.box .fileItem[fileCodeId='
"
+
i
+
"
'] .progress>div
"
).
css
(
"
width
"
,
"
100%
"
);
bytesRead
=
bytesRead
-
fileListArray
[
i
].
size
;
}
}
},
/**
* 上传文件失败集体显示
* @param opt
*/
"
uploadError
"
:
function
(
opt
){
var
uploadId
=
opt
.
uploadId
;
$
(
"
#
"
+
uploadId
+
"
.box .fileItem .progress>div
"
).
addClass
(
"
error
"
);
$
(
"
#
"
+
uploadId
+
"
.box .fileItem .progress>div
"
).
css
(
"
width
"
,
"
100%
"
);
$
(
"
#
"
+
uploadId
+
"
.box .fileItem .status>i
"
).
addClass
(
"
iconfont icon-cha
"
);
var
progressBar
=
$
(
"
#
"
+
uploadId
+
"
.subberProgress .progress>div
"
);
progressBar
.
css
(
"
width
"
,
"
0%
"
);
progressBar
.
html
(
"
0%
"
);
},
/**
* 上传文件
*/
"
uploadFile
"
:
function
(
opt
){
var
uploadUrl
=
opt
.
uploadUrl
;
var
fileList
=
uploadFileList
.
getFileList
();
var
formData
=
new
FormData
();
var
fileNumber
=
uploadTools
.
getFileNumber
(
opt
);
if
(
fileNumber
<=
0
){
alert
(
"
没有文件,不支持上传
"
);
return
;
}
for
(
var
i
=
0
;
i
<
fileList
.
length
;
i
++
){
if
(
fileList
[
i
]
!=
null
){
formData
.
append
(
"
fileInfo
"
,
fileList
[
i
]);
formData
.
append
(
"
fileInfoName
"
,
fileList
[
i
].
name
);
console
.
log
(
fileList
[
i
].
name
);
}
}
formData
.
append
(
"
filelSavePath
"
,
opt
.
filelSavePath
);
if
(
uploadUrl
!=
"
#
"
&&
uploadUrl
!=
""
){
uploadTools
.
disableFileUpload
(
opt
);
//禁用文件上传
uploadTools
.
disableCleanFile
(
opt
);
//禁用清除文件
$
.
ajax
({
type
:
"
post
"
,
url
:
uploadUrl
,
data
:
formData
,
processData
:
false
,
contentType
:
false
,
/* beforeSend: function(request) {
request.setRequestHeader("filePath", file_path);
}, */
success
:
function
(
data
){
setTimeout
(
function
(){
opt
.
onUpload
(
opt
,
data
)},
500
);
},
error
:
function
(
e
){
}
});
}
else
{
uploadTools
.
disableFileUpload
(
opt
);
//禁用文件上传
uploadTools
.
disableCleanFile
(
opt
);
//禁用清除文件
}
uploadTools
.
getFileUploadPregressMsg
(
opt
);
},
/**
* 获取文件上传进度信息
*/
"
getFileUploadPregressMsg
"
:
function
(
opt
){
var
uploadId
=
opt
.
uploadId
;
var
progressUrl
=
opt
.
progressUrl
;
if
(
opt
.
showSummerProgress
){
$
(
"
#
"
+
uploadId
+
"
.subberProgress
"
).
css
(
"
display
"
,
"
block
"
);
}
$
(
"
#
"
+
uploadId
+
"
.box .fileItem .status>i
"
).
removeClass
();
if
(
progressUrl
!=
"
#
"
&&
progressUrl
!=
""
)
{
var
intervalId
=
setInterval
(
function
(){
$
.
get
(
progressUrl
,{},
function
(
data
,
status
){
console
.
log
(
data
);
var
percent
=
data
.
percent
;
var
bytesRead
=
data
.
bytesRead
;
if
(
percent
>=
100
){
clearInterval
(
intervalId
);
percent
=
100
;
//不能大于100
uploadTools
.
initWithCleanFile
(
opt
);
}
uploadTools
.
showUploadProgress
(
opt
,
bytesRead
,
percent
);
},
"
json
"
);
},
500
);
}
else
{
var
percent
=
0
;
var
bytesRead
=
0
;
var
intervalId
=
setInterval
(
function
(){
percent
+=
5
;
bytesRead
+=
50000
;
if
(
percent
>=
100
){
clearInterval
(
intervalId
);
percent
=
100
;
//不能大于100
uploadTools
.
initWithCleanFile
(
opt
);
}
uploadTools
.
showUploadProgress
(
opt
,
bytesRead
,
percent
);
},
500
);
}
},
/**
* 禁用文件上传
*/
"
disableFileUpload
"
:
function
(
opt
){
var
uploadId
=
opt
.
uploadId
;
$
(
"
#
"
+
uploadId
+
"
.uploadBts .uploadFileBt
"
).
off
();
$
(
"
#
"
+
uploadId
+
"
.uploadBts .uploadFileBt i
"
).
css
(
"
color
"
,
"
#DDDDDD
"
);
},
/**
* 禁用文件清除
*/
"
disableCleanFile
"
:
function
(
opt
){
var
uploadId
=
opt
.
uploadId
;
$
(
"
#
"
+
uploadId
+
"
.uploadBts .cleanFileBt
"
).
off
();
$
(
"
#
"
+
uploadId
+
"
.uploadBts .cleanFileBt i
"
).
css
(
"
color
"
,
"
#DDDDDD
"
);
},
/**
* 获取文件个数
* @param opt
*/
"
getFileNumber
"
:
function
(
opt
){
var
number
=
0
;
var
fileList
=
uploadFileList
.
getFileList
();
for
(
var
i
=
0
;
i
<
fileList
.
length
;
i
++
){
if
(
fileList
[
i
]
!=
null
){
number
++
;
}
}
return
number
;
}
}
/**
* 上传事件操作
* */
var
uploadEvent
=
{
/**
* 拖动时操作事件
*/
"
dragListingEvent
"
:
function
(
e
,
opt
){
e
.
preventDefault
();
//取消默认浏览器拖拽效果
var
fileList
=
e
.
dataTransfer
.
files
;
//获取文件对象
uploadTools
.
addFileList
(
fileList
,
opt
);
if
(
opt
.
autoCommit
){
uploadEvent
.
uploadFileEvent
(
opt
);
}
},
/**
* 删除文件对应的事件
* */
"
deleteFileEvent
"
:
function
(
opt
,
obj
){
var
fileItem
=
$
(
obj
).
parent
().
parent
();
var
fileCodeId
=
fileItem
.
attr
(
"
fileCodeId
"
);
var
fileListArray
=
uploadFileList
.
getFileList
();
delete
fileListArray
[
fileCodeId
];
uploadFileList
.
setFileList
(
fileListArray
);
fileItem
.
remove
();
},
/**
* 选择文件按钮事件
* @param opt
*/
"
selectFileEvent
"
:
function
(
opt
){
var
uploadId
=
opt
.
uploadId
;
var
ismultiple
=
opt
.
ismultiple
;
var
inputObj
=
document
.
createElement
(
'
input
'
);
inputObj
.
setAttribute
(
'
id
'
,
uploadId
+
'
_file
'
);
inputObj
.
setAttribute
(
'
type
'
,
'
file
'
);
inputObj
.
setAttribute
(
"
style
"
,
'
visibility:hidden
'
);
if
(
ismultiple
){
//是否选择多文件
inputObj
.
setAttribute
(
"
multiple
"
,
"
multiple
"
);
}
//inputObj.setAttribute("onchange","uploadEvent.selectFileChangeEvent(this.files,"+opt+")");
$
(
inputObj
).
on
(
"
change
"
,
function
(){
uploadEvent
.
selectFileChangeEvent
(
this
.
files
,
opt
);
});
document
.
body
.
appendChild
(
inputObj
);
inputObj
.
click
();
},
/**
* 选择文件后对文件的回调事件
* @param opt
*/
"
selectFileChangeEvent
"
:
function
(
files
,
opt
){
uploadTools
.
addFileList
(
files
,
opt
);
uploadTools
.
cleanFilInputWithSelectFile
(
opt
);
if
(
opt
.
autoCommit
){
uploadEvent
.
uploadFileEvent
(
opt
);
}
},
/**
* 上传文件的事件
* */
"
uploadFileEvent
"
:
function
(
opt
){
opt
.
beforeUpload
(
opt
);
uploadTools
.
uploadFile
(
opt
);
},
/**
* 清除文件事件
*/
"
cleanFileEvent
"
:
function
(
opt
){
var
uploadId
=
opt
.
uploadId
;
if
(
opt
.
showSummerProgress
){
$
(
"
#
"
+
uploadId
+
"
.subberProgress
"
).
css
(
"
display
"
,
"
none
"
);
$
(
"
#
"
+
uploadId
+
"
.subberProgress .progress>div
"
).
css
(
"
width
"
,
"
0%
"
);
$
(
"
#
"
+
uploadId
+
"
.subberProgress .progress>div
"
).
html
(
"
0%
"
);
}
uploadTools
.
cleanFilInputWithSelectFile
(
opt
);
uploadFileList
.
setFileList
([]);
$
(
"
#
"
+
uploadId
+
"
.box
"
).
html
(
""
);
uploadTools
.
initWithUpload
(
opt
);
//初始化上传
}
}
var
uploadFileList
=
{
"
fileList
"
:[],
"
initFileList
"
:
function
(){
uploadFileList
.
fileList
=
new
Array
();
},
"
getFileList
"
:
function
(){
return
uploadFileList
.
fileList
;
},
"
setFileList
"
:
function
(
fileList
){
uploadFileList
.
fileList
=
fileList
;
}
}
erp_web/js/fileUploadQT/js/iconfont.js
deleted
100644 → 0
View file @
f0b49c21
;(
function
(
window
)
{
var
svgSprite
=
'
<svg>
'
+
''
+
'
<symbol id="icon-shanchu" viewBox="0 0 1024 1024">
'
+
''
+
'
<path d="M640.512 216.44288l0-76.8-258.048 0 0 76.8-171.008 0 0 73.728 601.088 0 0-73.728L640.512 216.44288zM239.104 340.34688l44.032 536.576 457.728 0 44.032-536.576L239.104 340.34688zM426.496 774.52288l-70.656 0 0-342.016 70.656 0L426.496 774.52288zM546.304 774.52288l-69.632 0 0-342.016 69.632 0L546.304 774.52288zM670.208 774.52288l-72.704 0 0-342.016 72.704 0L670.208 774.52288z" ></path>
'
+
''
+
'
</symbol>
'
+
''
+
'
<symbol id="icon-gou" viewBox="0 0 1024 1024">
'
+
''
+
'
<path d="M800.06837 245.25068 387.101897 658.217153 223.927537 495.043816c-24.418133-24.416086-64.004733-24.416086-88.422865 0-24.414039 24.415063-24.414039 64.003709 0 88.419795l195.480136 195.48116c13.023618 13.020548 36.738739 18.950607 56.342216 18.022469 19.475564 0.924045 42.872436-5.006014 55.889915-18.024515l445.271226-445.271226c24.418133-24.418133 24.418133-64.004733 0-88.420819C864.072079 220.832548 824.486502 220.832548 800.06837 245.25068z" ></path>
'
+
''
+
'
</symbol>
'
+
''
+
'
<symbol id="icon-wenjian" viewBox="0 0 1024 1024">
'
+
''
+
'
<path d="M877.095385 165.809231l-29.144615-29.144615L818.806154 107.52C751.458462 38.990769 711.325538 0 669.538462 0L354.461538 0C267.421538 0 196.923077 70.498462 196.923077 157.538462l0 275.692308L78.769231 433.230769c-21.661538 0-39.384615 17.723077-39.384615 39.384615l0 236.307692c0 21.661538 17.723077 39.384615 39.384615 39.384615l118.153846 0 0 118.153846c0 87.04 70.498462 157.538462 157.538462 157.538462l472.615385 0c87.04 0 157.538462-70.498462 157.538462-157.538462L984.615385 315.076923C984.615385 273.329231 945.624615 233.156923 877.095385 165.809231zM905.846154 866.461538c0 43.323077-35.446154 78.769231-78.769231 78.769231L354.461538 945.230769c-43.323077 0-78.769231-35.446154-78.769231-78.769231l0-118.153846 393.846154 0c21.661538 0 39.384615-17.723077 39.384615-39.384615l0-236.307692c0-21.661538-17.723077-39.384615-39.384615-39.384615L275.692308 433.230769 275.692308 157.538462c0-43.323077 35.446154-78.769231 78.769231-78.769231l287.113846 0C669.932308 85.858462 669.538462 120.910769 669.538462 155.569231L669.538462 275.692308c0 21.661538 17.723077 39.384615 39.384615 39.384615l118.153846 0c39.384615 0 78.769231 0 78.769231 39.384615L905.846154 866.461538z" ></path>
'
+
''
+
'
</symbol>
'
+
''
+
'
<symbol id="icon-wenjian1" viewBox="0 0 1024 1024">
'
+
''
+
'
<path d="M992 128 493.248 128 374.656 9.344C368.64 3.392 360.512 0 352 0l-320 0C14.336 0 0 14.336 0 32l0 704C0 753.664 14.336 768 32 768L384 768c17.664 0 32-14.336 32-32S401.664 704 384 704L64 704 64 64l274.752 0 118.656 118.656C463.36 188.608 471.488 192 480 192L960 192l0 512-320 0c-17.664 0-32 14.336-32 32S622.336 768 640 768l352 0c17.664 0 32-14.336 32-32l0-576C1024 142.336 1009.664 128 992 128zM640 640c8.192 0 16.384-3.136 22.656-9.344 12.48-12.48 12.48-32.768 0-45.248l-127.936-128c-12.544-12.48-32.832-12.48-45.248 0l-128 128c-12.48 12.48-12.48 32.768 0 45.248 12.48 12.48 32.768 12.48 45.248 0L480 557.248 480 992C480 1009.664 494.4 1024 512 1024s32-14.336 32-32L544 557.248l73.344 73.344C623.616 636.864 631.808 640 640 640z" ></path>
'
+
''
+
'
</symbol>
'
+
''
+
'
<symbol id="icon-qingchu" viewBox="0 0 1024 1024">
'
+
''
+
'
<path d="M31.030303 15.515152 31.030303 15.515152 31.030303 15.515152ZM739.886545 920.234667q-36.864 0-123.159273 30.068364t-120.242424 30.068364q-37.825939 0-124.121212-30.068364t-117.325576-30.068364q-18.432 0-40.246303 5.833697t-35.405576 11.139879-34.909091 15.018667q-12.598303 5.833697-18.432 8.254061t-15.018667 5.337212-13.094788 2.916848q-3.878788-0.961939-6.795636-2.916848-3.878788-1.954909-4.375273-8.254061t1.458424-16.011636 5.833697-24.234667l10.674424-31.992242q5.833697-17.470061 12.598303-38.787879 14.553212-41.704727 27.648-79.530667t23.769212-72.73503q11.636364-34.909091 18.432-56.257939l7.757576-20.355879 726.295273 0q35.87103 201.69697 51.386182 304.500364 1.954909 13.591273 1.954909 23.272727 0 4.840727-0.496485 8.254061t-0.961939 6.299152-2.420364 5.337212-3.878788 3.382303q-5.833697 1.954909-9.712485 2.916848-1.954909 0.961939-5.337212 0.496485t-8.254061-1.954909-8.719515-2.916848-7.757576-2.420364q-6.795636-2.916848-21.348848-7.757576-28.113455-11.636364-46.545455-17.470061-5.833697-1.954909-13.591273-3.878788t-17.470061-3.878788-21.348848-4.840727q-4.840727-0.961939-9.712485-1.458424t-9.712485-1.458424-9.712485-0.961939l-9.712485-1.954909-9.216 0t-9.216-0.496485-9.712485-0.496485zM861.090909 557.583515l-606.052848 0q-24.234667 0-42.170182-17.935515t-17.935515-43.163152q25.227636-33.947152 81.454545-121.204364 45.583515-61.098667 99.886545-61.098667l90.174061 0 30.068364-242.439758 14.553212-17.470061q8.719515-9.712485 32.488727-26.189576t44.125091-16.477091 43.628606 14.553212q5.833697 3.878788 10.674424 7.757576t9.216 7.757576 8.254061 7.261091 6.795636 7.261091l12.598303 15.515152-30.068364 242.439758 89.212121 0q25.227636 0 54.30303 16.973576t49.462303 48.003879q56.257939 86.295273 79.530667 117.325576 0 27.151515-17.935515 44.125091t-42.170182 16.973576z" ></path>
'
+
''
+
'
</symbol>
'
+
''
+
'
<symbol id="icon-shangchuan" viewBox="0 0 1040 1024">
'
+
''
+
'
<path d="M374.978277 343.568916c0 0-61.903885-62.009286-145.889695-11.366885-75.143421 48.349171-61.854766 136.832412-61.854766 136.832412S0.325411 502.828107 0.325411 680.117952c3.721765 177.001273 181.261297 178.816618 181.261297 178.816618l266.50475 0.285502L448.091458 669.715021 320.298933 669.715021 512.024559 480.224296l191.697997 189.490725L575.907519 669.715021l0 189.504028 258.773671-0.285502c0 0 165.217902 0.14224 188.43672-168.250982 11.041474-184.189999-159.709445-220.490763-159.709445-220.490763s19.425422-272.650727-220.35671-303.734676C437.509449 144.596236 374.978277 343.568916 374.978277 343.568916z" ></path>
'
+
''
+
'
</symbol>
'
+
''
+
'
<symbol id="icon-cha" viewBox="0 0 1024 1024">
'
+
''
+
'
<path d="M511.728 97.943c-228.547 0-413.821 185.274-413.821 413.821s185.274 413.821 413.821 413.821c228.548 0 413.821-185.274 413.821-413.821s-185.274-413.821-413.821-413.821zM720.272 681.129c11.492 11.598 11.402 30.313-0.196 41.8s-30.313 11.401-41.802-0.197l-166.086-167.652-167.985 166.418c-11.598 11.489-30.313 11.4-41.8-0.198s-11.4-30.312 0.197-41.8l167.985-166.418-166.76-168.332c-11.489-11.597-11.4-30.313 0.198-41.8s30.312-11.4 41.8 0.198l166.76 168.332 167.997-166.429c11.6-11.489 30.314-11.4 41.801 0.198 11.49 11.597 11.4 30.313-0.197 41.8l-167.998 166.429 166.087 167.652z" ></path>
'
+
''
+
'
</symbol>
'
+
''
+
'
<symbol id="icon-wenjian2" viewBox="0 0 1024 1024">
'
+
''
+
'
<path d="M923.84 276.288a37.952 37.952 0 0 0-10.752-29.312L696.192 30.4a37.888 37.888 0 0 0-30.272-10.624H191.104c-40.576 0-73.408 32.832-73.408 73.28v842.816c0 40.512 32.832 73.344 73.408 73.344h660.288c40.512 0 73.344-32.832 73.344-73.344V276.288h-0.896z m-255.808-165.696l165.888 165.696h-165.888V110.592z m183.424 825.344H191.104V93.12h403.52v219.904c0 20.224 16.448 36.672 36.608 36.672h220.16v586.24z" fill="" ></path>
'
+
''
+
'
</symbol>
'
+
''
+
'
</svg>
'
var
script
=
function
()
{
var
scripts
=
document
.
getElementsByTagName
(
'
script
'
)
return
scripts
[
scripts
.
length
-
1
]
}()
var
shouldInjectCss
=
script
.
getAttribute
(
"
data-injectcss
"
)
/**
* document ready
*/
var
ready
=
function
(
fn
)
{
if
(
document
.
addEventListener
)
{
if
(
~
[
"
complete
"
,
"
loaded
"
,
"
interactive
"
].
indexOf
(
document
.
readyState
))
{
setTimeout
(
fn
,
0
)
}
else
{
var
loadFn
=
function
()
{
document
.
removeEventListener
(
"
DOMContentLoaded
"
,
loadFn
,
false
)
fn
()
}
document
.
addEventListener
(
"
DOMContentLoaded
"
,
loadFn
,
false
)
}
}
else
if
(
document
.
attachEvent
)
{
IEContentLoaded
(
window
,
fn
)
}
function
IEContentLoaded
(
w
,
fn
)
{
var
d
=
w
.
document
,
done
=
false
,
// only fire once
init
=
function
()
{
if
(
!
done
)
{
done
=
true
fn
()
}
}
// polling for no errors
var
polling
=
function
()
{
try
{
// throws errors until after ondocumentready
d
.
documentElement
.
doScroll
(
'
left
'
)
}
catch
(
e
)
{
setTimeout
(
polling
,
50
)
return
}
// no errors, fire
init
()
};
polling
()
// trying to always fire before onload
d
.
onreadystatechange
=
function
()
{
if
(
d
.
readyState
==
'
complete
'
)
{
d
.
onreadystatechange
=
null
init
()
}
}
}
}
/**
* Insert el before target
*
* @param {Element} el
* @param {Element} target
*/
var
before
=
function
(
el
,
target
)
{
target
.
parentNode
.
insertBefore
(
el
,
target
)
}
/**
* Prepend el to target
*
* @param {Element} el
* @param {Element} target
*/
var
prepend
=
function
(
el
,
target
)
{
if
(
target
.
firstChild
)
{
before
(
el
,
target
.
firstChild
)
}
else
{
target
.
appendChild
(
el
)
}
}
function
appendSvg
()
{
var
div
,
svg
div
=
document
.
createElement
(
'
div
'
)
div
.
innerHTML
=
svgSprite
svgSprite
=
null
svg
=
div
.
getElementsByTagName
(
'
svg
'
)[
0
]
if
(
svg
)
{
svg
.
setAttribute
(
'
aria-hidden
'
,
'
true
'
)
svg
.
style
.
position
=
'
absolute
'
svg
.
style
.
width
=
0
svg
.
style
.
height
=
0
svg
.
style
.
overflow
=
'
hidden
'
prepend
(
svg
,
document
.
body
)
}
}
if
(
shouldInjectCss
&&
!
window
.
__iconfont__svg__cssinject__
)
{
window
.
__iconfont__svg__cssinject__
=
true
try
{
document
.
write
(
"
<style>.svgfont {display: inline-block;width: 1em;height: 1em;fill: currentColor;vertical-align: -0.1em;font-size:16px;}</style>
"
);
}
catch
(
e
)
{
console
&&
console
.
log
(
e
)
}
}
ready
(
appendSvg
)
})(
window
)
\ No newline at end of file
erp_web/js/fileUploadQT/js/jquery-2.1.3.min.js
deleted
100644 → 0
View file @
f0b49c21
/*! jQuery v2.1.3 | (c) 2005, 2014 jQuery Foundation, Inc. | 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
=
c
.
slice
,
e
=
c
.
concat
,
f
=
c
.
push
,
g
=
c
.
indexOf
,
h
=
{},
i
=
h
.
toString
,
j
=
h
.
hasOwnProperty
,
k
=
{},
l
=
a
.
document
,
m
=
"
2.1.3
"
,
n
=
function
(
a
,
b
){
return
new
n
.
fn
.
init
(
a
,
b
)},
o
=
/^
[\s\u
FEFF
\x
A0
]
+|
[\s\u
FEFF
\x
A0
]
+$/g
,
p
=
/^-ms-/
,
q
=
/-
([\d
a-z
])
/gi
,
r
=
function
(
a
,
b
){
return
b
.
toUpperCase
()};
n
.
fn
=
n
.
prototype
=
{
jquery
:
m
,
constructor
:
n
,
selector
:
""
,
length
:
0
,
toArray
:
function
(){
return
d
.
call
(
this
)},
get
:
function
(
a
){
return
null
!=
a
?
0
>
a
?
this
[
a
+
this
.
length
]:
this
[
a
]:
d
.
call
(
this
)},
pushStack
:
function
(
a
){
var
b
=
n
.
merge
(
this
.
constructor
(),
a
);
return
b
.
prevObject
=
this
,
b
.
context
=
this
.
context
,
b
},
each
:
function
(
a
,
b
){
return
n
.
each
(
this
,
a
,
b
)},
map
:
function
(
a
){
return
this
.
pushStack
(
n
.
map
(
this
,
function
(
b
,
c
){
return
a
.
call
(
b
,
c
,
b
)}))},
slice
:
function
(){
return
this
.
pushStack
(
d
.
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
(
null
)},
push
:
f
,
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
!=
(
a
=
arguments
[
h
]))
for
(
b
in
a
)
c
=
g
[
b
],
d
=
a
[
b
],
g
!==
d
&&
(
j
&&
d
&&
(
n
.
isPlainObject
(
d
)
||
(
e
=
n
.
isArray
(
d
)))?(
e
?(
e
=!
1
,
f
=
c
&&
n
.
isArray
(
c
)?
c
:[]):
f
=
c
&&
n
.
isPlainObject
(
c
)?
c
:{},
g
[
b
]
=
n
.
extend
(
j
,
f
,
d
)):
void
0
!==
d
&&
(
g
[
b
]
=
d
));
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
,
isWindow
:
function
(
a
){
return
null
!=
a
&&
a
===
a
.
window
},
isNumeric
:
function
(
a
){
return
!
n
.
isArray
(
a
)
&&
a
-
parseFloat
(
a
)
+
1
>=
0
},
isPlainObject
:
function
(
a
){
return
"
object
"
!==
n
.
type
(
a
)
||
a
.
nodeType
||
n
.
isWindow
(
a
)?
!
1
:
a
.
constructor
&&!
j
.
call
(
a
.
constructor
.
prototype
,
"
isPrototypeOf
"
)?
!
1
:
!
0
},
isEmptyObject
:
function
(
a
){
var
b
;
for
(
b
in
a
)
return
!
1
;
return
!
0
},
type
:
function
(
a
){
return
null
==
a
?
a
+
""
:
"
object
"
==
typeof
a
||
"
function
"
==
typeof
a
?
h
[
i
.
call
(
a
)]
||
"
object
"
:
typeof
a
},
globalEval
:
function
(
a
){
var
b
,
c
=
eval
;
a
=
n
.
trim
(
a
),
a
&&
(
1
===
a
.
indexOf
(
"
use strict
"
)?(
b
=
l
.
createElement
(
"
script
"
),
b
.
text
=
a
,
l
.
head
.
appendChild
(
b
).
parentNode
.
removeChild
(
b
)):
c
(
a
))},
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
,
c
){
var
d
,
e
=
0
,
f
=
a
.
length
,
g
=
s
(
a
);
if
(
c
){
if
(
g
){
for
(;
f
>
e
;
e
++
)
if
(
d
=
b
.
apply
(
a
[
e
],
c
),
d
===!
1
)
break
}
else
for
(
e
in
a
)
if
(
d
=
b
.
apply
(
a
[
e
],
c
),
d
===!
1
)
break
}
else
if
(
g
){
for
(;
f
>
e
;
e
++
)
if
(
d
=
b
.
call
(
a
[
e
],
e
,
a
[
e
]),
d
===!
1
)
break
}
else
for
(
e
in
a
)
if
(
d
=
b
.
call
(
a
[
e
],
e
,
a
[
e
]),
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
):
f
.
call
(
c
,
a
)),
c
},
inArray
:
function
(
a
,
b
,
c
){
return
null
==
b
?
-
1
:
g
.
call
(
b
,
a
,
c
)},
merge
:
function
(
a
,
b
){
for
(
var
c
=+
b
.
length
,
d
=
0
,
e
=
a
.
length
;
c
>
d
;
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
,
f
=
0
,
g
=
a
.
length
,
h
=
s
(
a
),
i
=
[];
if
(
h
)
for
(;
g
>
f
;
f
++
)
d
=
b
(
a
[
f
],
f
,
c
),
null
!=
d
&&
i
.
push
(
d
);
else
for
(
f
in
a
)
d
=
b
(
a
[
f
],
f
,
c
),
null
!=
d
&&
i
.
push
(
d
);
return
e
.
apply
([],
i
)},
guid
:
1
,
proxy
:
function
(
a
,
b
){
var
c
,
e
,
f
;
return
"
string
"
==
typeof
b
&&
(
c
=
a
[
b
],
b
=
a
,
a
=
c
),
n
.
isFunction
(
a
)?(
e
=
d
.
call
(
arguments
,
2
),
f
=
function
(){
return
a
.
apply
(
b
||
this
,
e
.
concat
(
d
.
call
(
arguments
)))},
f
.
guid
=
a
.
guid
=
a
.
guid
||
n
.
guid
++
,
f
):
void
0
},
now
:
Date
.
now
,
support
:
k
}),
n
.
each
(
"
Boolean Number String Function Array Date RegExp Object Error
"
.
split
(
"
"
),
function
(
a
,
b
){
h
[
"
[object
"
+
b
+
"
]
"
]
=
b
.
toLowerCase
()});
function
s
(
a
){
var
b
=
a
.
length
,
c
=
n
.
type
(
a
);
return
"
function
"
===
c
||
n
.
isWindow
(
a
)?
!
1
:
1
===
a
.
nodeType
&&
b
?
!
0
:
"
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
=
hb
(),
z
=
hb
(),
A
=
hb
(),
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
=
M
.
replace
(
"
w
"
,
"
w#
"
),
O
=
"
\\
[
"
+
L
+
"
*(
"
+
M
+
"
)(?:
"
+
L
+
"
*([*^$|!~]?=)
"
+
L
+
"
*(?:'((?:
\\\\
.|[^
\\\\
'])*)'|
\"
((?:
\\\\
.|[^
\\\\\"
])*)
\"
|(
"
+
N
+
"
))|)
"
+
L
+
"
*
\\
]
"
,
P
=
"
:(
"
+
M
+
"
)(?:
\\
((('((?:
\\\\
.|[^
\\\\
'])*)'|
\"
((?:
\\\\
.|[^
\\\\\"
])*)
\"
)|((?:
\\\\
.|[^
\\\\
()[
\\
]]|
"
+
O
+
"
)*)|.*)
\\
)|)
"
,
Q
=
new
RegExp
(
L
+
"
+
"
,
"
g
"
),
R
=
new
RegExp
(
"
^
"
+
L
+
"
+|((?:^|[^
\\\\
])(?:
\\\\
.)*)
"
+
L
+
"
+$
"
,
"
g
"
),
S
=
new
RegExp
(
"
^
"
+
L
+
"
*,
"
+
L
+
"
*
"
),
T
=
new
RegExp
(
"
^
"
+
L
+
"
*([>+~]|
"
+
L
+
"
)
"
+
L
+
"
*
"
),
U
=
new
RegExp
(
"
=
"
+
L
+
"
*([^
\\
]'
\"
]*?)
"
+
L
+
"
*
\\
]
"
,
"
g
"
),
V
=
new
RegExp
(
P
),
W
=
new
RegExp
(
"
^
"
+
N
+
"
$
"
),
X
=
{
ID
:
new
RegExp
(
"
^#(
"
+
M
+
"
)
"
),
CLASS
:
new
RegExp
(
"
^
\\
.(
"
+
M
+
"
)
"
),
TAG
:
new
RegExp
(
"
^(
"
+
M
.
replace
(
"
w
"
,
"
w*
"
)
+
"
)
"
),
ATTR
:
new
RegExp
(
"
^
"
+
O
),
PSEUDO
:
new
RegExp
(
"
^
"
+
P
),
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
"
)},
Y
=
/^
(?:
input|select|textarea|button
)
$/i
,
Z
=
/^h
\d
$/i
,
$
=
/^
[^
{
]
+
\{\s
*
\[
native
\w
/
,
_
=
/^
(?:
#
([\w
-
]
+
)
|
(\w
+
)
|
\.([\w
-
]
+
))
$/
,
ab
=
/
[
+~
]
/
,
bb
=
/'|
\\
/g
,
cb
=
new
RegExp
(
"
\\\\
([
\\
da-f]{1,6}
"
+
L
+
"
?|(
"
+
L
+
"
)|.)
"
,
"
ig
"
),
db
=
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
)},
eb
=
function
(){
m
()};
try
{
H
.
apply
(
E
=
I
.
call
(
v
.
childNodes
),
v
.
childNodes
),
E
[
v
.
childNodes
.
length
].
nodeType
}
catch
(
fb
){
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
gb
(
a
,
b
,
d
,
e
){
var
f
,
h
,
j
,
k
,
l
,
o
,
r
,
s
,
w
,
x
;
if
((
b
?
b
.
ownerDocument
||
b
:
v
)
!==
n
&&
m
(
b
),
b
=
b
||
n
,
d
=
d
||
[],
k
=
b
.
nodeType
,
"
string
"
!=
typeof
a
||!
a
||
1
!==
k
&&
9
!==
k
&&
11
!==
k
)
return
d
;
if
(
!
e
&&
p
){
if
(
11
!==
k
&&
(
f
=
_
.
exec
(
a
)))
if
(
j
=
f
[
1
]){
if
(
9
===
k
){
if
(
h
=
b
.
getElementById
(
j
),
!
h
||!
h
.
parentNode
)
return
d
;
if
(
h
.
id
===
j
)
return
d
.
push
(
h
),
d
}
else
if
(
b
.
ownerDocument
&&
(
h
=
b
.
ownerDocument
.
getElementById
(
j
))
&&
t
(
b
,
h
)
&&
h
.
id
===
j
)
return
d
.
push
(
h
),
d
}
else
{
if
(
f
[
2
])
return
H
.
apply
(
d
,
b
.
getElementsByTagName
(
a
)),
d
;
if
((
j
=
f
[
3
])
&&
c
.
getElementsByClassName
)
return
H
.
apply
(
d
,
b
.
getElementsByClassName
(
j
)),
d
}
if
(
c
.
qsa
&&
(
!
q
||!
q
.
test
(
a
))){
if
(
s
=
r
=
u
,
w
=
b
,
x
=
1
!==
k
&&
a
,
1
===
k
&&
"
object
"
!==
b
.
nodeName
.
toLowerCase
()){
o
=
g
(
a
),(
r
=
b
.
getAttribute
(
"
id
"
))?
s
=
r
.
replace
(
bb
,
"
\\
$&
"
):
b
.
setAttribute
(
"
id
"
,
s
),
s
=
"
[id='
"
+
s
+
"
']
"
,
l
=
o
.
length
;
while
(
l
--
)
o
[
l
]
=
s
+
rb
(
o
[
l
]);
w
=
ab
.
test
(
a
)
&&
pb
(
b
.
parentNode
)
||
b
,
x
=
o
.
join
(
"
,
"
)}
if
(
x
)
try
{
return
H
.
apply
(
d
,
w
.
querySelectorAll
(
x
)),
d
}
catch
(
y
){}
finally
{
r
||
b
.
removeAttribute
(
"
id
"
)}}}
return
i
(
a
.
replace
(
R
,
"
$1
"
),
b
,
d
,
e
)}
function
hb
(){
var
a
=
[];
function
b
(
c
,
e
){
return
a
.
push
(
c
+
"
"
)
>
d
.
cacheLength
&&
delete
b
[
a
.
shift
()],
b
[
c
+
"
"
]
=
e
}
return
b
}
function
ib
(
a
){
return
a
[
u
]
=!
0
,
a
}
function
jb
(
a
){
var
b
=
n
.
createElement
(
"
div
"
);
try
{
return
!!
a
(
b
)}
catch
(
c
){
return
!
1
}
finally
{
b
.
parentNode
&&
b
.
parentNode
.
removeChild
(
b
),
b
=
null
}}
function
kb
(
a
,
b
){
var
c
=
a
.
split
(
"
|
"
),
e
=
a
.
length
;
while
(
e
--
)
d
.
attrHandle
[
c
[
e
]]
=
b
}
function
lb
(
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
mb
(
a
){
return
function
(
b
){
var
c
=
b
.
nodeName
.
toLowerCase
();
return
"
input
"
===
c
&&
b
.
type
===
a
}}
function
nb
(
a
){
return
function
(
b
){
var
c
=
b
.
nodeName
.
toLowerCase
();
return
(
"
input
"
===
c
||
"
button
"
===
c
)
&&
b
.
type
===
a
}}
function
ob
(
a
){
return
ib
(
function
(
b
){
return
b
=+
b
,
ib
(
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
pb
(
a
){
return
a
&&
"
undefined
"
!=
typeof
a
.
getElementsByTagName
&&
a
}
c
=
gb
.
support
=
{},
f
=
gb
.
isXML
=
function
(
a
){
var
b
=
a
&&
(
a
.
ownerDocument
||
a
).
documentElement
;
return
b
?
"
HTML
"
!==
b
.
nodeName
:
!
1
},
m
=
gb
.
setDocument
=
function
(
a
){
var
b
,
e
,
g
=
a
?
a
.
ownerDocument
||
a
:
v
;
return
g
!==
n
&&
9
===
g
.
nodeType
&&
g
.
documentElement
?(
n
=
g
,
o
=
g
.
documentElement
,
e
=
g
.
defaultView
,
e
&&
e
!==
e
.
top
&&
(
e
.
addEventListener
?
e
.
addEventListener
(
"
unload
"
,
eb
,
!
1
):
e
.
attachEvent
&&
e
.
attachEvent
(
"
onunload
"
,
eb
)),
p
=!
f
(
g
),
c
.
attributes
=
jb
(
function
(
a
){
return
a
.
className
=
"
i
"
,
!
a
.
getAttribute
(
"
className
"
)}),
c
.
getElementsByTagName
=
jb
(
function
(
a
){
return
a
.
appendChild
(
g
.
createComment
(
""
)),
!
a
.
getElementsByTagName
(
"
*
"
).
length
}),
c
.
getElementsByClassName
=
$
.
test
(
g
.
getElementsByClassName
),
c
.
getById
=
jb
(
function
(
a
){
return
o
.
appendChild
(
a
).
id
=
u
,
!
g
.
getElementsByName
||!
g
.
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
.
parentNode
?[
c
]:[]}},
d
.
filter
.
ID
=
function
(
a
){
var
b
=
a
.
replace
(
cb
,
db
);
return
function
(
a
){
return
a
.
getAttribute
(
"
id
"
)
===
b
}}):(
delete
d
.
find
.
ID
,
d
.
filter
.
ID
=
function
(
a
){
var
b
=
a
.
replace
(
cb
,
db
);
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
p
?
b
.
getElementsByClassName
(
a
):
void
0
},
r
=
[],
q
=
[],(
c
.
qsa
=
$
.
test
(
g
.
querySelectorAll
))
&&
(
jb
(
function
(
a
){
o
.
appendChild
(
a
).
innerHTML
=
"
<a id='
"
+
u
+
"
'></a><select id='
"
+
u
+
"
-
\
f]' 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
(
"
.#.+[+~]
"
)}),
jb
(
function
(
a
){
var
b
=
g
.
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
=
$
.
test
(
s
=
o
.
matches
||
o
.
webkitMatchesSelector
||
o
.
mozMatchesSelector
||
o
.
oMatchesSelector
||
o
.
msMatchesSelector
))
&&
jb
(
function
(
a
){
c
.
disconnectedMatch
=
s
.
call
(
a
,
"
div
"
),
s
.
call
(
a
,
"
[s!='']:x
"
),
r
.
push
(
"
!=
"
,
P
)}),
q
=
q
.
length
&&
new
RegExp
(
q
.
join
(
"
|
"
)),
r
=
r
.
length
&&
new
RegExp
(
r
.
join
(
"
|
"
)),
b
=
$
.
test
(
o
.
compareDocumentPosition
),
t
=
b
||
$
.
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
===
g
||
a
.
ownerDocument
===
v
&&
t
(
v
,
a
)?
-
1
:
b
===
g
||
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
,
h
=
[
a
],
i
=
[
b
];
if
(
!
e
||!
f
)
return
a
===
g
?
-
1
:
b
===
g
?
1
:
e
?
-
1
:
f
?
1
:
k
?
J
(
k
,
a
)
-
J
(
k
,
b
):
0
;
if
(
e
===
f
)
return
lb
(
a
,
b
);
c
=
a
;
while
(
c
=
c
.
parentNode
)
h
.
unshift
(
c
);
c
=
b
;
while
(
c
=
c
.
parentNode
)
i
.
unshift
(
c
);
while
(
h
[
d
]
===
i
[
d
])
d
++
;
return
d
?
lb
(
h
[
d
],
i
[
d
]):
h
[
d
]
===
v
?
-
1
:
i
[
d
]
===
v
?
1
:
0
},
g
):
n
},
gb
.
matches
=
function
(
a
,
b
){
return
gb
(
a
,
null
,
null
,
b
)},
gb
.
matchesSelector
=
function
(
a
,
b
){
if
((
a
.
ownerDocument
||
a
)
!==
n
&&
m
(
a
),
b
=
b
.
replace
(
U
,
"
='$1']
"
),
!
(
!
c
.
matchesSelector
||!
p
||
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
gb
(
b
,
n
,
null
,[
a
]).
length
>
0
},
gb
.
contains
=
function
(
a
,
b
){
return
(
a
.
ownerDocument
||
a
)
!==
n
&&
m
(
a
),
t
(
a
,
b
)},
gb
.
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
},
gb
.
error
=
function
(
a
){
throw
new
Error
(
"
Syntax error, unrecognized expression:
"
+
a
)},
gb
.
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
=
gb
.
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
=
gb
.
selectors
=
{
cacheLength
:
50
,
createPseudo
:
ib
,
match
:
X
,
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
(
cb
,
db
),
a
[
3
]
=
(
a
[
3
]
||
a
[
4
]
||
a
[
5
]
||
""
).
replace
(
cb
,
db
),
"
~=
"
===
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
]
||
gb
.
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
]
&&
gb
.
error
(
a
[
0
]),
a
},
PSEUDO
:
function
(
a
){
var
b
,
c
=!
a
[
6
]
&&
a
[
2
];
return
X
.
CHILD
.
test
(
a
[
0
])?
null
:(
a
[
3
]?
a
[
2
]
=
a
[
4
]
||
a
[
5
]
||
""
:
c
&&
V
.
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
(
cb
,
db
).
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
=
gb
.
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
(
Q
,
"
"
)
+
"
"
).
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
;
if
(
q
){
if
(
f
){
while
(
p
){
l
=
b
;
while
(
l
=
l
[
p
])
if
(
h
?
l
.
nodeName
.
toLowerCase
()
===
r
:
1
===
l
.
nodeType
)
return
!
1
;
o
=
p
=
"
only
"
===
a
&&!
o
&&
"
nextSibling
"
}
return
!
0
}
if
(
o
=
[
g
?
q
.
firstChild
:
q
.
lastChild
],
g
&&
s
){
k
=
q
[
u
]
||
(
q
[
u
]
=
{}),
j
=
k
[
a
]
||
[],
n
=
j
[
0
]
===
w
&&
j
[
1
],
m
=
j
[
0
]
===
w
&&
j
[
2
],
l
=
n
&&
q
.
childNodes
[
n
];
while
(
l
=++
n
&&
l
&&
l
[
p
]
||
(
m
=
n
=
0
)
||
o
.
pop
())
if
(
1
===
l
.
nodeType
&&++
m
&&
l
===
b
){
k
[
a
]
=
[
w
,
n
,
m
];
break
}}
else
if
(
s
&&
(
j
=
(
b
[
u
]
||
(
b
[
u
]
=
{}))[
a
])
&&
j
[
0
]
===
w
)
m
=
j
[
1
];
else
while
(
l
=++
n
&&
l
&&
l
[
p
]
||
(
m
=
n
=
0
)
||
o
.
pop
())
if
((
h
?
l
.
nodeName
.
toLowerCase
()
===
r
:
1
===
l
.
nodeType
)
&&++
m
&&
(
s
&&
((
l
[
u
]
||
(
l
[
u
]
=
{}))[
a
]
=
[
w
,
m
]),
l
===
b
))
break
;
return
m
-=
e
,
m
===
d
||
m
%
d
===
0
&&
m
/
d
>=
0
}}},
PSEUDO
:
function
(
a
,
b
){
var
c
,
e
=
d
.
pseudos
[
a
]
||
d
.
setFilters
[
a
.
toLowerCase
()]
||
gb
.
error
(
"
unsupported pseudo:
"
+
a
);
return
e
[
u
]?
e
(
b
):
e
.
length
>
1
?(
c
=
[
a
,
a
,
""
,
b
],
d
.
setFilters
.
hasOwnProperty
(
a
.
toLowerCase
())?
ib
(
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
:
ib
(
function
(
a
){
var
b
=
[],
c
=
[],
d
=
h
(
a
.
replace
(
R
,
"
$1
"
));
return
d
[
u
]?
ib
(
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
:
ib
(
function
(
a
){
return
function
(
b
){
return
gb
(
a
,
b
).
length
>
0
}}),
contains
:
ib
(
function
(
a
){
return
a
=
a
.
replace
(
cb
,
db
),
function
(
b
){
return
(
b
.
textContent
||
b
.
innerText
||
e
(
b
)).
indexOf
(
a
)
>-
1
}}),
lang
:
ib
(
function
(
a
){
return
W
.
test
(
a
||
""
)
||
gb
.
error
(
"
unsupported lang:
"
+
a
),
a
=
a
.
replace
(
cb
,
db
).
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
Z
.
test
(
a
.
nodeName
)},
input
:
function
(
a
){
return
Y
.
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
:
ob
(
function
(){
return
[
0
]}),
last
:
ob
(
function
(
a
,
b
){
return
[
b
-
1
]}),
eq
:
ob
(
function
(
a
,
b
,
c
){
return
[
0
>
c
?
c
+
b
:
c
]}),
even
:
ob
(
function
(
a
,
b
){
for
(
var
c
=
0
;
b
>
c
;
c
+=
2
)
a
.
push
(
c
);
return
a
}),
odd
:
ob
(
function
(
a
,
b
){
for
(
var
c
=
1
;
b
>
c
;
c
+=
2
)
a
.
push
(
c
);
return
a
}),
lt
:
ob
(
function
(
a
,
b
,
c
){
for
(
var
d
=
0
>
c
?
c
+
b
:
c
;
--
d
>=
0
;)
a
.
push
(
d
);
return
a
}),
gt
:
ob
(
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
]
=
mb
(
b
);
for
(
b
in
{
submit
:
!
0
,
reset
:
!
0
})
d
.
pseudos
[
b
]
=
nb
(
b
);
function
qb
(){}
qb
.
prototype
=
d
.
filters
=
d
.
pseudos
,
d
.
setFilters
=
new
qb
,
g
=
gb
.
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
=
S
.
exec
(
h
)))
&&
(
e
&&
(
h
=
h
.
slice
(
e
[
0
].
length
)
||
h
),
i
.
push
(
f
=
[])),
c
=!
1
,(
e
=
T
.
exec
(
h
))
&&
(
c
=
e
.
shift
(),
f
.
push
({
value
:
c
,
type
:
e
[
0
].
replace
(
R
,
"
"
)}),
h
=
h
.
slice
(
c
.
length
));
for
(
g
in
d
.
filter
)
!
(
e
=
X
[
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
?
gb
.
error
(
a
):
z
(
a
,
i
).
slice
(
0
)};
function
rb
(
a
){
for
(
var
b
=
0
,
c
=
a
.
length
,
d
=
""
;
c
>
b
;
b
++
)
d
+=
a
[
b
].
value
;
return
d
}
function
sb
(
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
=
[
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
(
i
=
b
[
u
]
||
(
b
[
u
]
=
{}),(
h
=
i
[
d
])
&&
h
[
0
]
===
w
&&
h
[
1
]
===
f
)
return
j
[
2
]
=
h
[
2
];
if
(
i
[
d
]
=
j
,
j
[
2
]
=
a
(
b
,
c
,
g
))
return
!
0
}}}
function
tb
(
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
ub
(
a
,
b
,
c
){
for
(
var
d
=
0
,
e
=
b
.
length
;
e
>
d
;
d
++
)
gb
(
a
,
b
[
d
],
c
);
return
c
}
function
vb
(
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
wb
(
a
,
b
,
c
,
d
,
e
,
f
){
return
d
&&!
d
[
u
]
&&
(
d
=
wb
(
d
)),
e
&&!
e
[
u
]
&&
(
e
=
wb
(
e
,
f
)),
ib
(
function
(
f
,
g
,
h
,
i
){
var
j
,
k
,
l
,
m
=
[],
n
=
[],
o
=
g
.
length
,
p
=
f
||
ub
(
b
||
"
*
"
,
h
.
nodeType
?[
h
]:
h
,[]),
q
=!
a
||!
f
&&
b
?
p
:
vb
(
p
,
m
,
a
,
h
,
i
),
r
=
c
?
e
||
(
f
?
a
:
o
||
d
)?[]:
g
:
q
;
if
(
c
&&
c
(
q
,
r
,
h
,
i
),
d
){
j
=
vb
(
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
=
vb
(
r
===
g
?
r
.
splice
(
o
,
r
.
length
):
r
),
e
?
e
(
null
,
g
,
r
,
i
):
H
.
apply
(
g
,
r
)})}
function
xb
(
a
){
for
(
var
b
,
c
,
e
,
f
=
a
.
length
,
g
=
d
.
relative
[
a
[
0
].
type
],
h
=
g
||
d
.
relative
[
"
"
],
i
=
g
?
1
:
0
,
k
=
sb
(
function
(
a
){
return
a
===
b
},
h
,
!
0
),
l
=
sb
(
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
=
[
sb
(
tb
(
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
wb
(
i
>
1
&&
tb
(
m
),
i
>
1
&&
rb
(
a
.
slice
(
0
,
i
-
1
).
concat
({
value
:
"
"
===
a
[
i
-
2
].
type
?
"
*
"
:
""
})).
replace
(
R
,
"
$1
"
),
c
,
e
>
i
&&
xb
(
a
.
slice
(
i
,
e
)),
f
>
e
&&
xb
(
a
=
a
.
slice
(
e
)),
f
>
e
&&
rb
(
a
))}
m
.
push
(
c
)}
return
tb
(
m
)}
function
yb
(
a
,
b
){
var
c
=
b
.
length
>
0
,
e
=
a
.
length
>
0
,
f
=
function
(
f
,
g
,
h
,
i
,
k
){
var
l
,
m
,
o
,
p
=
0
,
q
=
"
0
"
,
r
=
f
&&
[],
s
=
[],
t
=
j
,
u
=
f
||
e
&&
d
.
find
.
TAG
(
"
*
"
,
k
),
v
=
w
+=
null
==
t
?
1
:
Math
.
random
()
||
.
1
,
x
=
u
.
length
;
for
(
k
&&
(
j
=
g
!==
n
&&
g
);
q
!==
x
&&
null
!=
(
l
=
u
[
q
]);
q
++
){
if
(
e
&&
l
){
m
=
0
;
while
(
o
=
a
[
m
++
])
if
(
o
(
l
,
g
,
h
)){
i
.
push
(
l
);
break
}
k
&&
(
w
=
v
)}
c
&&
((
l
=!
o
&&
l
)
&&
p
--
,
f
&&
r
.
push
(
l
))}
if
(
p
+=
q
,
c
&&
q
!==
p
){
m
=
0
;
while
(
o
=
b
[
m
++
])
o
(
r
,
s
,
g
,
h
);
if
(
f
){
if
(
p
>
0
)
while
(
q
--
)
r
[
q
]
||
s
[
q
]
||
(
s
[
q
]
=
F
.
call
(
i
));
s
=
vb
(
s
)}
H
.
apply
(
i
,
s
),
k
&&!
f
&&
s
.
length
>
0
&&
p
+
b
.
length
>
1
&&
gb
.
uniqueSort
(
i
)}
return
k
&&
(
w
=
v
,
j
=
t
),
r
};
return
c
?
ib
(
f
):
f
}
return
h
=
gb
.
compile
=
function
(
a
,
b
){
var
c
,
d
=
[],
e
=
[],
f
=
A
[
a
+
"
"
];
if
(
!
f
){
b
||
(
b
=
g
(
a
)),
c
=
b
.
length
;
while
(
c
--
)
f
=
xb
(
b
[
c
]),
f
[
u
]?
d
.
push
(
f
):
e
.
push
(
f
);
f
=
A
(
a
,
yb
(
e
,
d
)),
f
.
selector
=
a
}
return
f
},
i
=
gb
.
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
(
cb
,
db
),
b
)
||
[])[
0
],
!
b
)
return
e
;
n
&&
(
b
=
b
.
parentNode
),
a
=
a
.
slice
(
j
.
shift
().
value
.
length
)}
i
=
X
.
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
(
cb
,
db
),
ab
.
test
(
j
[
0
].
type
)
&&
pb
(
b
.
parentNode
)
||
b
))){
if
(
j
.
splice
(
i
,
1
),
a
=
f
.
length
&&
rb
(
j
),
!
a
)
return
H
.
apply
(
e
,
f
),
e
;
break
}}}
return
(
n
||
h
(
a
,
o
))(
f
,
b
,
!
p
,
e
,
ab
.
test
(
a
)
&&
pb
(
b
.
parentNode
)
||
b
),
e
},
c
.
sortStable
=
u
.
split
(
""
).
sort
(
B
).
join
(
""
)
===
u
,
c
.
detectDuplicates
=!!
l
,
m
(),
c
.
sortDetached
=
jb
(
function
(
a
){
return
1
&
a
.
compareDocumentPosition
(
n
.
createElement
(
"
div
"
))}),
jb
(
function
(
a
){
return
a
.
innerHTML
=
"
<a href='#'></a>
"
,
"
#
"
===
a
.
firstChild
.
getAttribute
(
"
href
"
)})
||
kb
(
"
type|href|height|width
"
,
function
(
a
,
b
,
c
){
return
c
?
void
0
:
a
.
getAttribute
(
b
,
"
type
"
===
b
.
toLowerCase
()?
1
:
2
)}),
c
.
attributes
&&
jb
(
function
(
a
){
return
a
.
innerHTML
=
"
<input/>
"
,
a
.
firstChild
.
setAttribute
(
"
value
"
,
""
),
""
===
a
.
firstChild
.
getAttribute
(
"
value
"
)})
||
kb
(
"
value
"
,
function
(
a
,
b
,
c
){
return
c
||
"
input
"
!==
a
.
nodeName
.
toLowerCase
()?
void
0
:
a
.
defaultValue
}),
jb
(
function
(
a
){
return
null
==
a
.
getAttribute
(
"
disabled
"
)})
||
kb
(
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
}),
gb
}(
a
);
n
.
find
=
t
,
n
.
expr
=
t
.
selectors
,
n
.
expr
[
"
:
"
]
=
n
.
expr
.
pseudos
,
n
.
unique
=
t
.
uniqueSort
,
n
.
text
=
t
.
getText
,
n
.
isXMLDoc
=
t
.
isXML
,
n
.
contains
=
t
.
contains
;
var
u
=
n
.
expr
.
match
.
needsContext
,
v
=
/^<
(\w
+
)\s
*
\/?
>
(?:
<
\/\1
>|
)
$/
,
w
=
/^.
[^
:#
\[\.
,
]
*$/
;
function
x
(
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
(
w
.
test
(
b
))
return
n
.
filter
(
b
,
a
,
c
);
b
=
n
.
filter
(
b
,
a
)}
return
n
.
grep
(
a
,
function
(
a
){
return
g
.
call
(
b
,
a
)
>=
0
!==
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
=
this
.
length
,
d
=
[],
e
=
this
;
if
(
"
string
"
!=
typeof
a
)
return
this
.
pushStack
(
n
(
a
).
filter
(
function
(){
for
(
b
=
0
;
c
>
b
;
b
++
)
if
(
n
.
contains
(
e
[
b
],
this
))
return
!
0
}));
for
(
b
=
0
;
c
>
b
;
b
++
)
n
.
find
(
a
,
e
[
b
],
d
);
return
d
=
this
.
pushStack
(
c
>
1
?
n
.
unique
(
d
):
d
),
d
.
selector
=
this
.
selector
?
this
.
selector
+
"
"
+
a
:
a
,
d
},
filter
:
function
(
a
){
return
this
.
pushStack
(
x
(
this
,
a
||
[],
!
1
))},
not
:
function
(
a
){
return
this
.
pushStack
(
x
(
this
,
a
||
[],
!
0
))},
is
:
function
(
a
){
return
!!
x
(
this
,
"
string
"
==
typeof
a
&&
u
.
test
(
a
)?
n
(
a
):
a
||
[],
!
1
).
length
}});
var
y
,
z
=
/^
(?:\s
*
(
<
[\w\W]
+>
)[^
>
]
*|#
([\w
-
]
*
))
$/
,
A
=
n
.
fn
.
init
=
function
(
a
,
b
){
var
c
,
d
;
if
(
!
a
)
return
this
;
if
(
"
string
"
==
typeof
a
){
if
(
c
=
"
<
"
===
a
[
0
]
&&
"
>
"
===
a
[
a
.
length
-
1
]
&&
a
.
length
>=
3
?[
null
,
a
,
null
]:
z
.
exec
(
a
),
!
c
||!
c
[
1
]
&&
b
)
return
!
b
||
b
.
jquery
?(
b
||
y
).
find
(
a
):
this
.
constructor
(
b
).
find
(
a
);
if
(
c
[
1
]){
if
(
b
=
b
instanceof
n
?
b
[
0
]:
b
,
n
.
merge
(
this
,
n
.
parseHTML
(
c
[
1
],
b
&&
b
.
nodeType
?
b
.
ownerDocument
||
b
:
l
,
!
0
)),
v
.
test
(
c
[
1
])
&&
n
.
isPlainObject
(
b
))
for
(
c
in
b
)
n
.
isFunction
(
this
[
c
])?
this
[
c
](
b
[
c
]):
this
.
attr
(
c
,
b
[
c
]);
return
this
}
return
d
=
l
.
getElementById
(
c
[
2
]),
d
&&
d
.
parentNode
&&
(
this
.
length
=
1
,
this
[
0
]
=
d
),
this
.
context
=
l
,
this
.
selector
=
a
,
this
}
return
a
.
nodeType
?(
this
.
context
=
this
[
0
]
=
a
,
this
.
length
=
1
,
this
):
n
.
isFunction
(
a
)?
"
undefined
"
!=
typeof
y
.
ready
?
y
.
ready
(
a
):
a
(
n
):(
void
0
!==
a
.
selector
&&
(
this
.
selector
=
a
.
selector
,
this
.
context
=
a
.
context
),
n
.
makeArray
(
a
,
this
))};
A
.
prototype
=
n
.
fn
,
y
=
n
(
l
);
var
B
=
/^
(?:
parents|prev
(?:
Until|All
))
/
,
C
=
{
children
:
!
0
,
contents
:
!
0
,
next
:
!
0
,
prev
:
!
0
};
n
.
extend
({
dir
:
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
},
sibling
:
function
(
a
,
b
){
for
(
var
c
=
[];
a
;
a
=
a
.
nextSibling
)
1
===
a
.
nodeType
&&
a
!==
b
&&
c
.
push
(
a
);
return
c
}}),
n
.
fn
.
extend
({
has
:
function
(
a
){
var
b
=
n
(
a
,
this
),
c
=
b
.
length
;
return
this
.
filter
(
function
(){
for
(
var
a
=
0
;
c
>
a
;
a
++
)
if
(
n
.
contains
(
this
,
b
[
a
]))
return
!
0
})},
closest
:
function
(
a
,
b
){
for
(
var
c
,
d
=
0
,
e
=
this
.
length
,
f
=
[],
g
=
u
.
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
.
unique
(
f
):
f
)},
index
:
function
(
a
){
return
a
?
"
string
"
==
typeof
a
?
g
.
call
(
n
(
a
),
this
[
0
]):
g
.
call
(
this
,
a
.
jquery
?
a
[
0
]:
a
):
this
[
0
]
&&
this
[
0
].
parentNode
?
this
.
first
().
prevAll
().
length
:
-
1
},
add
:
function
(
a
,
b
){
return
this
.
pushStack
(
n
.
unique
(
n
.
merge
(
this
.
get
(),
n
(
a
,
b
))))},
addBack
:
function
(
a
){
return
this
.
add
(
null
==
a
?
this
.
prevObject
:
this
.
prevObject
.
filter
(
a
))}});
function
D
(
a
,
b
){
while
((
a
=
a
[
b
])
&&
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
n
.
dir
(
a
,
"
parentNode
"
)},
parentsUntil
:
function
(
a
,
b
,
c
){
return
n
.
dir
(
a
,
"
parentNode
"
,
c
)},
next
:
function
(
a
){
return
D
(
a
,
"
nextSibling
"
)},
prev
:
function
(
a
){
return
D
(
a
,
"
previousSibling
"
)},
nextAll
:
function
(
a
){
return
n
.
dir
(
a
,
"
nextSibling
"
)},
prevAll
:
function
(
a
){
return
n
.
dir
(
a
,
"
previousSibling
"
)},
nextUntil
:
function
(
a
,
b
,
c
){
return
n
.
dir
(
a
,
"
nextSibling
"
,
c
)},
prevUntil
:
function
(
a
,
b
,
c
){
return
n
.
dir
(
a
,
"
previousSibling
"
,
c
)},
siblings
:
function
(
a
){
return
n
.
sibling
((
a
.
parentNode
||
{}).
firstChild
,
a
)},
children
:
function
(
a
){
return
n
.
sibling
(
a
.
firstChild
)},
contents
:
function
(
a
){
return
a
.
contentDocument
||
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
&&
(
C
[
a
]
||
n
.
unique
(
e
),
B
.
test
(
a
)
&&
e
.
reverse
()),
this
.
pushStack
(
e
)}});
var
E
=
/
\S
+/g
,
F
=
{};
function
G
(
a
){
var
b
=
F
[
a
]
=
{};
return
n
.
each
(
a
.
match
(
E
)
||
[],
function
(
a
,
c
){
b
[
c
]
=!
0
}),
b
}
n
.
Callbacks
=
function
(
a
){
a
=
"
string
"
==
typeof
a
?
F
[
a
]
||
G
(
a
):
n
.
extend
({},
a
);
var
b
,
c
,
d
,
e
,
f
,
g
,
h
=
[],
i
=!
a
.
once
&&
[],
j
=
function
(
l
){
for
(
b
=
a
.
memory
&&
l
,
c
=!
0
,
g
=
e
||
0
,
e
=
0
,
f
=
h
.
length
,
d
=!
0
;
h
&&
f
>
g
;
g
++
)
if
(
h
[
g
].
apply
(
l
[
0
],
l
[
1
])
===!
1
&&
a
.
stopOnFalse
){
b
=!
1
;
break
}
d
=!
1
,
h
&&
(
i
?
i
.
length
&&
j
(
i
.
shift
()):
b
?
h
=
[]:
k
.
disable
())},
k
=
{
add
:
function
(){
if
(
h
){
var
c
=
h
.
length
;
!
function
g
(
b
){
n
.
each
(
b
,
function
(
b
,
c
){
var
d
=
n
.
type
(
c
);
"
function
"
===
d
?
a
.
unique
&&
k
.
has
(
c
)
||
h
.
push
(
c
):
c
&&
c
.
length
&&
"
string
"
!==
d
&&
g
(
c
)})}(
arguments
),
d
?
f
=
h
.
length
:
b
&&
(
e
=
c
,
j
(
b
))}
return
this
},
remove
:
function
(){
return
h
&&
n
.
each
(
arguments
,
function
(
a
,
b
){
var
c
;
while
((
c
=
n
.
inArray
(
b
,
h
,
c
))
>-
1
)
h
.
splice
(
c
,
1
),
d
&&
(
f
>=
c
&&
f
--
,
g
>=
c
&&
g
--
)}),
this
},
has
:
function
(
a
){
return
a
?
n
.
inArray
(
a
,
h
)
>-
1
:
!
(
!
h
||!
h
.
length
)},
empty
:
function
(){
return
h
=
[],
f
=
0
,
this
},
disable
:
function
(){
return
h
=
i
=
b
=
void
0
,
this
},
disabled
:
function
(){
return
!
h
},
lock
:
function
(){
return
i
=
void
0
,
b
||
k
.
disable
(),
this
},
locked
:
function
(){
return
!
i
},
fireWith
:
function
(
a
,
b
){
return
!
h
||
c
&&!
i
||
(
b
=
b
||
[],
b
=
[
a
,
b
.
slice
?
b
.
slice
():
b
],
d
?
i
.
push
(
b
):
j
(
b
)),
this
},
fire
:
function
(){
return
k
.
fireWith
(
this
,
arguments
),
this
},
fired
:
function
(){
return
!!
c
}};
return
k
},
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
().
done
(
c
.
resolve
).
fail
(
c
.
reject
).
progress
(
c
.
notify
):
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
=
d
.
call
(
arguments
),
e
=
c
.
length
,
f
=
1
!==
e
||
a
&&
n
.
isFunction
(
a
.
promise
)?
e
:
0
,
g
=
1
===
f
?
a
:
n
.
Deferred
(),
h
=
function
(
a
,
b
,
c
){
return
function
(
e
){
b
[
a
]
=
this
,
c
[
a
]
=
arguments
.
length
>
1
?
d
.
call
(
arguments
):
e
,
c
===
i
?
g
.
notifyWith
(
b
,
c
):
--
f
||
g
.
resolveWith
(
b
,
c
)}},
i
,
j
,
k
;
if
(
e
>
1
)
for
(
i
=
new
Array
(
e
),
j
=
new
Array
(
e
),
k
=
new
Array
(
e
);
e
>
b
;
b
++
)
c
[
b
]
&&
n
.
isFunction
(
c
[
b
].
promise
)?
c
[
b
].
promise
().
done
(
h
(
b
,
k
,
c
)).
fail
(
g
.
reject
).
progress
(
h
(
b
,
j
,
i
)):
--
f
;
return
f
||
g
.
resolveWith
(
k
,
c
),
g
.
promise
()}});
var
H
;
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
||
(
H
.
resolveWith
(
l
,[
n
]),
n
.
fn
.
triggerHandler
&&
(
n
(
l
).
triggerHandler
(
"
ready
"
),
n
(
l
).
off
(
"
ready
"
))))}});
function
I
(){
l
.
removeEventListener
(
"
DOMContentLoaded
"
,
I
,
!
1
),
a
.
removeEventListener
(
"
load
"
,
I
,
!
1
),
n
.
ready
()}
n
.
ready
.
promise
=
function
(
b
){
return
H
||
(
H
=
n
.
Deferred
(),
"
complete
"
===
l
.
readyState
?
setTimeout
(
n
.
ready
):(
l
.
addEventListener
(
"
DOMContentLoaded
"
,
I
,
!
1
),
a
.
addEventListener
(
"
load
"
,
I
,
!
1
))),
H
.
promise
(
b
)},
n
.
ready
.
promise
();
var
J
=
n
.
access
=
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
)
n
.
access
(
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
};
n
.
acceptData
=
function
(
a
){
return
1
===
a
.
nodeType
||
9
===
a
.
nodeType
||!+
a
.
nodeType
};
function
K
(){
Object
.
defineProperty
(
this
.
cache
=
{},
0
,{
get
:
function
(){
return
{}}}),
this
.
expando
=
n
.
expando
+
K
.
uid
++
}
K
.
uid
=
1
,
K
.
accepts
=
n
.
acceptData
,
K
.
prototype
=
{
key
:
function
(
a
){
if
(
!
K
.
accepts
(
a
))
return
0
;
var
b
=
{},
c
=
a
[
this
.
expando
];
if
(
!
c
){
c
=
K
.
uid
++
;
try
{
b
[
this
.
expando
]
=
{
value
:
c
},
Object
.
defineProperties
(
a
,
b
)}
catch
(
d
){
b
[
this
.
expando
]
=
c
,
n
.
extend
(
a
,
b
)}}
return
this
.
cache
[
c
]
||
(
this
.
cache
[
c
]
=
{}),
c
},
set
:
function
(
a
,
b
,
c
){
var
d
,
e
=
this
.
key
(
a
),
f
=
this
.
cache
[
e
];
if
(
"
string
"
==
typeof
b
)
f
[
b
]
=
c
;
else
if
(
n
.
isEmptyObject
(
f
))
n
.
extend
(
this
.
cache
[
e
],
b
);
else
for
(
d
in
b
)
f
[
d
]
=
b
[
d
];
return
f
},
get
:
function
(
a
,
b
){
var
c
=
this
.
cache
[
this
.
key
(
a
)];
return
void
0
===
b
?
c
:
c
[
b
]},
access
:
function
(
a
,
b
,
c
){
var
d
;
return
void
0
===
b
||
b
&&
"
string
"
==
typeof
b
&&
void
0
===
c
?(
d
=
this
.
get
(
a
,
b
),
void
0
!==
d
?
d
:
this
.
get
(
a
,
n
.
camelCase
(
b
))):(
this
.
set
(
a
,
b
,
c
),
void
0
!==
c
?
c
:
b
)},
remove
:
function
(
a
,
b
){
var
c
,
d
,
e
,
f
=
this
.
key
(
a
),
g
=
this
.
cache
[
f
];
if
(
void
0
===
b
)
this
.
cache
[
f
]
=
{};
else
{
n
.
isArray
(
b
)?
d
=
b
.
concat
(
b
.
map
(
n
.
camelCase
)):(
e
=
n
.
camelCase
(
b
),
b
in
g
?
d
=
[
b
,
e
]:(
d
=
e
,
d
=
d
in
g
?[
d
]:
d
.
match
(
E
)
||
[])),
c
=
d
.
length
;
while
(
c
--
)
delete
g
[
d
[
c
]]}},
hasData
:
function
(
a
){
return
!
n
.
isEmptyObject
(
this
.
cache
[
a
[
this
.
expando
]]
||
{})},
discard
:
function
(
a
){
a
[
this
.
expando
]
&&
delete
this
.
cache
[
a
[
this
.
expando
]]}};
var
L
=
new
K
,
M
=
new
K
,
N
=
/^
(?:\{[\w\W]
*
\}
|
\[[\w\W]
*
\])
$/
,
O
=
/
([
A-Z
])
/g
;
function
P
(
a
,
b
,
c
){
var
d
;
if
(
void
0
===
c
&&
1
===
a
.
nodeType
)
if
(
d
=
"
data-
"
+
b
.
replace
(
O
,
"
-$1
"
).
toLowerCase
(),
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
){}
M
.
set
(
a
,
b
,
c
)}
else
c
=
void
0
;
return
c
}
n
.
extend
({
hasData
:
function
(
a
){
return
M
.
hasData
(
a
)
||
L
.
hasData
(
a
)},
data
:
function
(
a
,
b
,
c
){
return
M
.
access
(
a
,
b
,
c
)
},
removeData
:
function
(
a
,
b
){
M
.
remove
(
a
,
b
)},
_data
:
function
(
a
,
b
,
c
){
return
L
.
access
(
a
,
b
,
c
)},
_removeData
:
function
(
a
,
b
){
L
.
remove
(
a
,
b
)}}),
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
=
M
.
get
(
f
),
1
===
f
.
nodeType
&&!
L
.
get
(
f
,
"
hasDataAttrs
"
))){
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
])));
L
.
set
(
f
,
"
hasDataAttrs
"
,
!
0
)}
return
e
}
return
"
object
"
==
typeof
a
?
this
.
each
(
function
(){
M
.
set
(
this
,
a
)}):
J
(
this
,
function
(
b
){
var
c
,
d
=
n
.
camelCase
(
a
);
if
(
f
&&
void
0
===
b
){
if
(
c
=
M
.
get
(
f
,
a
),
void
0
!==
c
)
return
c
;
if
(
c
=
M
.
get
(
f
,
d
),
void
0
!==
c
)
return
c
;
if
(
c
=
P
(
f
,
d
,
void
0
),
void
0
!==
c
)
return
c
}
else
this
.
each
(
function
(){
var
c
=
M
.
get
(
this
,
d
);
M
.
set
(
this
,
d
,
b
),
-
1
!==
a
.
indexOf
(
"
-
"
)
&&
void
0
!==
c
&&
M
.
set
(
this
,
a
,
b
)})},
null
,
b
,
arguments
.
length
>
1
,
null
,
!
0
)},
removeData
:
function
(
a
){
return
this
.
each
(
function
(){
M
.
remove
(
this
,
a
)})}}),
n
.
extend
({
queue
:
function
(
a
,
b
,
c
){
var
d
;
return
a
?(
b
=
(
b
||
"
fx
"
)
+
"
queue
"
,
d
=
L
.
get
(
a
,
b
),
c
&&
(
!
d
||
n
.
isArray
(
c
)?
d
=
L
.
access
(
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
L
.
get
(
a
,
c
)
||
L
.
access
(
a
,
c
,{
empty
:
n
.
Callbacks
(
"
once memory
"
).
add
(
function
(){
L
.
remove
(
a
,[
b
+
"
queue
"
,
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
=
L
.
get
(
f
[
g
],
a
+
"
queueHooks
"
),
c
&&
c
.
empty
&&
(
d
++
,
c
.
empty
.
add
(
h
));
return
h
(),
e
.
promise
(
b
)}});
var
Q
=
/
[
+-
]?(?:\d
*
\.
|
)\d
+
(?:[
eE
][
+-
]?\d
+|
)
/
.
source
,
R
=
[
"
Top
"
,
"
Right
"
,
"
Bottom
"
,
"
Left
"
],
S
=
function
(
a
,
b
){
return
a
=
b
||
a
,
"
none
"
===
n
.
css
(
a
,
"
display
"
)
||!
n
.
contains
(
a
.
ownerDocument
,
a
)},
T
=
/^
(?:
checkbox|radio
)
$/i
;
!
function
(){
var
a
=
l
.
createDocumentFragment
(),
b
=
a
.
appendChild
(
l
.
createElement
(
"
div
"
)),
c
=
l
.
createElement
(
"
input
"
);
c
.
setAttribute
(
"
type
"
,
"
radio
"
),
c
.
setAttribute
(
"
checked
"
,
"
checked
"
),
c
.
setAttribute
(
"
name
"
,
"
t
"
),
b
.
appendChild
(
c
),
k
.
checkClone
=
b
.
cloneNode
(
!
0
).
cloneNode
(
!
0
).
lastChild
.
checked
,
b
.
innerHTML
=
"
<textarea>x</textarea>
"
,
k
.
noCloneChecked
=!!
b
.
cloneNode
(
!
0
).
lastChild
.
defaultValue
}();
var
U
=
"
undefined
"
;
k
.
focusinBubbles
=
"
onfocusin
"
in
a
;
var
V
=
/^key/
,
W
=
/^
(?:
mouse|pointer|contextmenu
)
|click/
,
X
=
/^
(?:
focusinfocus|focusoutblur
)
$/
,
Y
=
/^
([^
.
]
*
)(?:\.(
.+
)
|
)
$/
;
function
Z
(){
return
!
0
}
function
$
(){
return
!
1
}
function
_
(){
try
{
return
l
.
activeElement
}
catch
(
a
){}}
n
.
event
=
{
global
:{},
add
:
function
(
a
,
b
,
c
,
d
,
e
){
var
f
,
g
,
h
,
i
,
j
,
k
,
l
,
m
,
o
,
p
,
q
,
r
=
L
.
get
(
a
);
if
(
r
){
c
.
handler
&&
(
f
=
c
,
c
=
f
.
handler
,
e
=
f
.
selector
),
c
.
guid
||
(
c
.
guid
=
n
.
guid
++
),(
i
=
r
.
events
)
||
(
i
=
r
.
events
=
{}),(
g
=
r
.
handle
)
||
(
g
=
r
.
handle
=
function
(
b
){
return
typeof
n
!==
U
&&
n
.
event
.
triggered
!==
b
.
type
?
n
.
event
.
dispatch
.
apply
(
a
,
arguments
):
void
0
}),
b
=
(
b
||
""
).
match
(
E
)
||
[
""
],
j
=
b
.
length
;
while
(
j
--
)
h
=
Y
.
exec
(
b
[
j
])
||
[],
o
=
q
=
h
[
1
],
p
=
(
h
[
2
]
||
""
).
split
(
"
.
"
).
sort
(),
o
&&
(
l
=
n
.
event
.
special
[
o
]
||
{},
o
=
(
e
?
l
.
delegateType
:
l
.
bindType
)
||
o
,
l
=
n
.
event
.
special
[
o
]
||
{},
k
=
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
(
"
.
"
)},
f
),(
m
=
i
[
o
])
||
(
m
=
i
[
o
]
=
[],
m
.
delegateCount
=
0
,
l
.
setup
&&
l
.
setup
.
call
(
a
,
d
,
p
,
g
)
!==!
1
||
a
.
addEventListener
&&
a
.
addEventListener
(
o
,
g
,
!
1
)),
l
.
add
&&
(
l
.
add
.
call
(
a
,
k
),
k
.
handler
.
guid
||
(
k
.
handler
.
guid
=
c
.
guid
)),
e
?
m
.
splice
(
m
.
delegateCount
++
,
0
,
k
):
m
.
push
(
k
),
n
.
event
.
global
[
o
]
=!
0
)}},
remove
:
function
(
a
,
b
,
c
,
d
,
e
){
var
f
,
g
,
h
,
i
,
j
,
k
,
l
,
m
,
o
,
p
,
q
,
r
=
L
.
hasData
(
a
)
&&
L
.
get
(
a
);
if
(
r
&&
(
i
=
r
.
events
)){
b
=
(
b
||
""
).
match
(
E
)
||
[
""
],
j
=
b
.
length
;
while
(
j
--
)
if
(
h
=
Y
.
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
=
i
[
o
]
||
[],
h
=
h
[
2
]
&&
new
RegExp
(
"
(^|
\\
.)
"
+
p
.
join
(
"
\\
.(?:.*
\\
.|)
"
)
+
"
(
\\
.|$)
"
),
g
=
f
=
m
.
length
;
while
(
f
--
)
k
=
m
[
f
],
!
e
&&
q
!==
k
.
origType
||
c
&&
c
.
guid
!==
k
.
guid
||
h
&&!
h
.
test
(
k
.
namespace
)
||
d
&&
d
!==
k
.
selector
&&
(
"
**
"
!==
d
||!
k
.
selector
)
||
(
m
.
splice
(
f
,
1
),
k
.
selector
&&
m
.
delegateCount
--
,
l
.
remove
&&
l
.
remove
.
call
(
a
,
k
));
g
&&!
m
.
length
&&
(
l
.
teardown
&&
l
.
teardown
.
call
(
a
,
p
,
r
.
handle
)
!==!
1
||
n
.
removeEvent
(
a
,
o
,
r
.
handle
),
delete
i
[
o
])}
else
for
(
o
in
i
)
n
.
event
.
remove
(
a
,
o
+
b
[
j
],
c
,
d
,
!
0
);
n
.
isEmptyObject
(
i
)
&&
(
delete
r
.
handle
,
L
.
remove
(
a
,
"
events
"
))}},
trigger
:
function
(
b
,
c
,
d
,
e
){
var
f
,
g
,
h
,
i
,
k
,
m
,
o
,
p
=
[
d
||
l
],
q
=
j
.
call
(
b
,
"
type
"
)?
b
.
type
:
b
,
r
=
j
.
call
(
b
,
"
namespace
"
)?
b
.
namespace
.
split
(
"
.
"
):[];
if
(
g
=
h
=
d
=
d
||
l
,
3
!==
d
.
nodeType
&&
8
!==
d
.
nodeType
&&!
X
.
test
(
q
+
n
.
event
.
triggered
)
&&
(
q
.
indexOf
(
"
.
"
)
>=
0
&&
(
r
=
q
.
split
(
"
.
"
),
q
=
r
.
shift
(),
r
.
sort
()),
k
=
q
.
indexOf
(
"
:
"
)
<
0
&&
"
on
"
+
q
,
b
=
b
[
n
.
expando
]?
b
:
new
n
.
Event
(
q
,
"
object
"
==
typeof
b
&&
b
),
b
.
isTrigger
=
e
?
2
:
3
,
b
.
namespace
=
r
.
join
(
"
.
"
),
b
.
namespace_re
=
b
.
namespace
?
new
RegExp
(
"
(^|
\\
.)
"
+
r
.
join
(
"
\\
.(?:.*
\\
.|)
"
)
+
"
(
\\
.|$)
"
):
null
,
b
.
result
=
void
0
,
b
.
target
||
(
b
.
target
=
d
),
c
=
null
==
c
?[
b
]:
n
.
makeArray
(
c
,[
b
]),
o
=
n
.
event
.
special
[
q
]
||
{},
e
||!
o
.
trigger
||
o
.
trigger
.
apply
(
d
,
c
)
!==!
1
)){
if
(
!
e
&&!
o
.
noBubble
&&!
n
.
isWindow
(
d
)){
for
(
i
=
o
.
delegateType
||
q
,
X
.
test
(
i
+
q
)
||
(
g
=
g
.
parentNode
);
g
;
g
=
g
.
parentNode
)
p
.
push
(
g
),
h
=
g
;
h
===
(
d
.
ownerDocument
||
l
)
&&
p
.
push
(
h
.
defaultView
||
h
.
parentWindow
||
a
)}
f
=
0
;
while
((
g
=
p
[
f
++
])
&&!
b
.
isPropagationStopped
())
b
.
type
=
f
>
1
?
i
:
o
.
bindType
||
q
,
m
=
(
L
.
get
(
g
,
"
events
"
)
||
{})[
b
.
type
]
&&
L
.
get
(
g
,
"
handle
"
),
m
&&
m
.
apply
(
g
,
c
),
m
=
k
&&
g
[
k
],
m
&&
m
.
apply
&&
n
.
acceptData
(
g
)
&&
(
b
.
result
=
m
.
apply
(
g
,
c
),
b
.
result
===!
1
&&
b
.
preventDefault
());
return
b
.
type
=
q
,
e
||
b
.
isDefaultPrevented
()
||
o
.
_default
&&
o
.
_default
.
apply
(
p
.
pop
(),
c
)
!==!
1
||!
n
.
acceptData
(
d
)
||
k
&&
n
.
isFunction
(
d
[
q
])
&&!
n
.
isWindow
(
d
)
&&
(
h
=
d
[
k
],
h
&&
(
d
[
k
]
=
null
),
n
.
event
.
triggered
=
q
,
d
[
q
](),
n
.
event
.
triggered
=
void
0
,
h
&&
(
d
[
k
]
=
h
)),
b
.
result
}},
dispatch
:
function
(
a
){
a
=
n
.
event
.
fix
(
a
);
var
b
,
c
,
e
,
f
,
g
,
h
=
[],
i
=
d
.
call
(
arguments
),
j
=
(
L
.
get
(
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
.
namespace_re
||
a
.
namespace_re
.
test
(
g
.
namespace
))
&&
(
a
.
handleObj
=
g
,
a
.
data
=
g
.
data
,
e
=
((
n
.
event
.
special
[
g
.
origType
]
||
{}).
handle
||
g
.
handler
).
apply
(
f
.
elem
,
i
),
void
0
!==
e
&&
(
a
.
result
=
e
)
===!
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
&&
(
!
a
.
button
||
"
click
"
!==
a
.
type
))
for
(;
i
!==
this
;
i
=
i
.
parentNode
||
this
)
if
(
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
)
>=
0
:
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
},
props
:
"
altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which
"
.
split
(
"
"
),
fixHooks
:{},
keyHooks
:{
props
:
"
char charCode key keyCode
"
.
split
(
"
"
),
filter
:
function
(
a
,
b
){
return
null
==
a
.
which
&&
(
a
.
which
=
null
!=
b
.
charCode
?
b
.
charCode
:
b
.
keyCode
),
a
}},
mouseHooks
:{
props
:
"
button buttons clientX clientY offsetX offsetY pageX pageY screenX screenY toElement
"
.
split
(
"
"
),
filter
:
function
(
a
,
b
){
var
c
,
d
,
e
,
f
=
b
.
button
;
return
null
==
a
.
pageX
&&
null
!=
b
.
clientX
&&
(
c
=
a
.
target
.
ownerDocument
||
l
,
d
=
c
.
documentElement
,
e
=
c
.
body
,
a
.
pageX
=
b
.
clientX
+
(
d
&&
d
.
scrollLeft
||
e
&&
e
.
scrollLeft
||
0
)
-
(
d
&&
d
.
clientLeft
||
e
&&
e
.
clientLeft
||
0
),
a
.
pageY
=
b
.
clientY
+
(
d
&&
d
.
scrollTop
||
e
&&
e
.
scrollTop
||
0
)
-
(
d
&&
d
.
clientTop
||
e
&&
e
.
clientTop
||
0
)),
a
.
which
||
void
0
===
f
||
(
a
.
which
=
1
&
f
?
1
:
2
&
f
?
3
:
4
&
f
?
2
:
0
),
a
}},
fix
:
function
(
a
){
if
(
a
[
n
.
expando
])
return
a
;
var
b
,
c
,
d
,
e
=
a
.
type
,
f
=
a
,
g
=
this
.
fixHooks
[
e
];
g
||
(
this
.
fixHooks
[
e
]
=
g
=
W
.
test
(
e
)?
this
.
mouseHooks
:
V
.
test
(
e
)?
this
.
keyHooks
:{}),
d
=
g
.
props
?
this
.
props
.
concat
(
g
.
props
):
this
.
props
,
a
=
new
n
.
Event
(
f
),
b
=
d
.
length
;
while
(
b
--
)
c
=
d
[
b
],
a
[
c
]
=
f
[
c
];
return
a
.
target
||
(
a
.
target
=
l
),
3
===
a
.
target
.
nodeType
&&
(
a
.
target
=
a
.
target
.
parentNode
),
g
.
filter
?
g
.
filter
(
a
,
f
):
a
},
special
:{
load
:{
noBubble
:
!
0
},
focus
:{
trigger
:
function
(){
return
this
!==
_
()
&&
this
.
focus
?(
this
.
focus
(),
!
1
):
void
0
},
delegateType
:
"
focusin
"
},
blur
:{
trigger
:
function
(){
return
this
===
_
()
&&
this
.
blur
?(
this
.
blur
(),
!
1
):
void
0
},
delegateType
:
"
focusout
"
},
click
:{
trigger
:
function
(){
return
"
checkbox
"
===
this
.
type
&&
this
.
click
&&
n
.
nodeName
(
this
,
"
input
"
)?(
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
,
d
){
var
e
=
n
.
extend
(
new
n
.
Event
,
c
,{
type
:
a
,
isSimulated
:
!
0
,
originalEvent
:{}});
d
?
n
.
event
.
trigger
(
e
,
null
,
b
):
n
.
event
.
dispatch
.
call
(
b
,
e
),
e
.
isDefaultPrevented
()
&&
c
.
preventDefault
()}},
n
.
removeEvent
=
function
(
a
,
b
,
c
){
a
.
removeEventListener
&&
a
.
removeEventListener
(
b
,
c
,
!
1
)},
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
?
Z
:
$
):
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
=
{
isDefaultPrevented
:
$
,
isPropagationStopped
:
$
,
isImmediatePropagationStopped
:
$
,
preventDefault
:
function
(){
var
a
=
this
.
originalEvent
;
this
.
isDefaultPrevented
=
Z
,
a
&&
a
.
preventDefault
&&
a
.
preventDefault
()},
stopPropagation
:
function
(){
var
a
=
this
.
originalEvent
;
this
.
isPropagationStopped
=
Z
,
a
&&
a
.
stopPropagation
&&
a
.
stopPropagation
()},
stopImmediatePropagation
:
function
(){
var
a
=
this
.
originalEvent
;
this
.
isImmediatePropagationStopped
=
Z
,
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
}}}),
k
.
focusinBubbles
||
n
.
each
({
focus
:
"
focusin
"
,
blur
:
"
focusout
"
},
function
(
a
,
b
){
var
c
=
function
(
a
){
n
.
event
.
simulate
(
b
,
a
.
target
,
n
.
event
.
fix
(
a
),
!
0
)};
n
.
event
.
special
[
b
]
=
{
setup
:
function
(){
var
d
=
this
.
ownerDocument
||
this
,
e
=
L
.
access
(
d
,
b
);
e
||
d
.
addEventListener
(
a
,
c
,
!
0
),
L
.
access
(
d
,
b
,(
e
||
0
)
+
1
)},
teardown
:
function
(){
var
d
=
this
.
ownerDocument
||
this
,
e
=
L
.
access
(
d
,
b
)
-
1
;
e
?
L
.
access
(
d
,
b
,
e
):(
d
.
removeEventListener
(
a
,
c
,
!
0
),
L
.
remove
(
d
,
b
))}}}),
n
.
fn
.
extend
({
on
:
function
(
a
,
b
,
c
,
d
,
e
){
var
f
,
g
;
if
(
"
object
"
==
typeof
a
){
"
string
"
!=
typeof
b
&&
(
c
=
c
||
b
,
b
=
void
0
);
for
(
g
in
a
)
this
.
on
(
g
,
b
,
c
,
a
[
g
],
e
);
return
this
}
if
(
null
==
c
&&
null
==
d
?(
d
=
b
,
c
=
b
=
void
0
):
null
==
d
&&
(
"
string
"
==
typeof
b
?(
d
=
c
,
c
=
void
0
):(
d
=
c
,
c
=
b
,
b
=
void
0
)),
d
===!
1
)
d
=
$
;
else
if
(
!
d
)
return
this
;
return
1
===
e
&&
(
f
=
d
,
d
=
function
(
a
){
return
n
().
off
(
a
),
f
.
apply
(
this
,
arguments
)},
d
.
guid
=
f
.
guid
||
(
f
.
guid
=
n
.
guid
++
)),
this
.
each
(
function
(){
n
.
event
.
add
(
this
,
a
,
d
,
c
,
b
)})},
one
:
function
(
a
,
b
,
c
,
d
){
return
this
.
on
(
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
=
$
),
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
ab
=
/<
(?!
area|br|col|embed|hr|img|input|link|meta|param
)(([\w
:
]
+
)[^
>
]
*
)\/
>/gi
,
bb
=
/<
([\w
:
]
+
)
/
,
cb
=
/<|&#
?\w
+;/
,
db
=
/<
(?:
script|style|link
)
/i
,
eb
=
/checked
\s
*
(?:[^
=
]
|=
\s
*.checked.
)
/i
,
fb
=
/^$|
\/(?:
java|ecma
)
script/i
,
gb
=
/^true
\/(
.*
)
/
,
hb
=
/^
\s
*<!
(?:\[
CDATA
\[
|--
)
|
(?:\]\]
|--
)
>
\s
*$/g
,
ib
=
{
option
:[
1
,
"
<select multiple='multiple'>
"
,
"
</select>
"
],
thead
:[
1
,
"
<table>
"
,
"
</table>
"
],
col
:[
2
,
"
<table><colgroup>
"
,
"
</colgroup></table>
"
],
tr
:[
2
,
"
<table><tbody>
"
,
"
</tbody></table>
"
],
td
:[
3
,
"
<table><tbody><tr>
"
,
"
</tr></tbody></table>
"
],
_default
:[
0
,
""
,
""
]};
ib
.
optgroup
=
ib
.
option
,
ib
.
tbody
=
ib
.
tfoot
=
ib
.
colgroup
=
ib
.
caption
=
ib
.
thead
,
ib
.
th
=
ib
.
td
;
function
jb
(
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
kb
(
a
){
return
a
.
type
=
(
null
!==
a
.
getAttribute
(
"
type
"
))
+
"
/
"
+
a
.
type
,
a
}
function
lb
(
a
){
var
b
=
gb
.
exec
(
a
.
type
);
return
b
?
a
.
type
=
b
[
1
]:
a
.
removeAttribute
(
"
type
"
),
a
}
function
mb
(
a
,
b
){
for
(
var
c
=
0
,
d
=
a
.
length
;
d
>
c
;
c
++
)
L
.
set
(
a
[
c
],
"
globalEval
"
,
!
b
||
L
.
get
(
b
[
c
],
"
globalEval
"
))}
function
nb
(
a
,
b
){
var
c
,
d
,
e
,
f
,
g
,
h
,
i
,
j
;
if
(
1
===
b
.
nodeType
){
if
(
L
.
hasData
(
a
)
&&
(
f
=
L
.
access
(
a
),
g
=
L
.
set
(
b
,
f
),
j
=
f
.
events
)){
delete
g
.
handle
,
g
.
events
=
{};
for
(
e
in
j
)
for
(
c
=
0
,
d
=
j
[
e
].
length
;
d
>
c
;
c
++
)
n
.
event
.
add
(
b
,
e
,
j
[
e
][
c
])}
M
.
hasData
(
a
)
&&
(
h
=
M
.
access
(
a
),
i
=
n
.
extend
({},
h
),
M
.
set
(
b
,
i
))}}
function
ob
(
a
,
b
){
var
c
=
a
.
getElementsByTagName
?
a
.
getElementsByTagName
(
b
||
"
*
"
):
a
.
querySelectorAll
?
a
.
querySelectorAll
(
b
||
"
*
"
):[];
return
void
0
===
b
||
b
&&
n
.
nodeName
(
a
,
b
)?
n
.
merge
([
a
],
c
):
c
}
function
pb
(
a
,
b
){
var
c
=
b
.
nodeName
.
toLowerCase
();
"
input
"
===
c
&&
T
.
test
(
a
.
type
)?
b
.
checked
=
a
.
checked
:(
"
input
"
===
c
||
"
textarea
"
===
c
)
&&
(
b
.
defaultValue
=
a
.
defaultValue
)}
n
.
extend
({
clone
:
function
(
a
,
b
,
c
){
var
d
,
e
,
f
,
g
,
h
=
a
.
cloneNode
(
!
0
),
i
=
n
.
contains
(
a
.
ownerDocument
,
a
);
if
(
!
(
k
.
noCloneChecked
||
1
!==
a
.
nodeType
&&
11
!==
a
.
nodeType
||
n
.
isXMLDoc
(
a
)))
for
(
g
=
ob
(
h
),
f
=
ob
(
a
),
d
=
0
,
e
=
f
.
length
;
e
>
d
;
d
++
)
pb
(
f
[
d
],
g
[
d
]);
if
(
b
)
if
(
c
)
for
(
f
=
f
||
ob
(
a
),
g
=
g
||
ob
(
h
),
d
=
0
,
e
=
f
.
length
;
e
>
d
;
d
++
)
nb
(
f
[
d
],
g
[
d
]);
else
nb
(
a
,
h
);
return
g
=
ob
(
h
,
"
script
"
),
g
.
length
>
0
&&
mb
(
g
,
!
i
&&
ob
(
a
,
"
script
"
)),
h
},
buildFragment
:
function
(
a
,
b
,
c
,
d
){
for
(
var
e
,
f
,
g
,
h
,
i
,
j
,
k
=
b
.
createDocumentFragment
(),
l
=
[],
m
=
0
,
o
=
a
.
length
;
o
>
m
;
m
++
)
if
(
e
=
a
[
m
],
e
||
0
===
e
)
if
(
"
object
"
===
n
.
type
(
e
))
n
.
merge
(
l
,
e
.
nodeType
?[
e
]:
e
);
else
if
(
cb
.
test
(
e
)){
f
=
f
||
k
.
appendChild
(
b
.
createElement
(
"
div
"
)),
g
=
(
bb
.
exec
(
e
)
||
[
""
,
""
])[
1
].
toLowerCase
(),
h
=
ib
[
g
]
||
ib
.
_default
,
f
.
innerHTML
=
h
[
1
]
+
e
.
replace
(
ab
,
"
<$1></$2>
"
)
+
h
[
2
],
j
=
h
[
0
];
while
(
j
--
)
f
=
f
.
lastChild
;
n
.
merge
(
l
,
f
.
childNodes
),
f
=
k
.
firstChild
,
f
.
textContent
=
""
}
else
l
.
push
(
b
.
createTextNode
(
e
));
k
.
textContent
=
""
,
m
=
0
;
while
(
e
=
l
[
m
++
])
if
((
!
d
||-
1
===
n
.
inArray
(
e
,
d
))
&&
(
i
=
n
.
contains
(
e
.
ownerDocument
,
e
),
f
=
ob
(
k
.
appendChild
(
e
),
"
script
"
),
i
&&
mb
(
f
),
c
)){
j
=
0
;
while
(
e
=
f
[
j
++
])
fb
.
test
(
e
.
type
||
""
)
&&
c
.
push
(
e
)}
return
k
},
cleanData
:
function
(
a
){
for
(
var
b
,
c
,
d
,
e
,
f
=
n
.
event
.
special
,
g
=
0
;
void
0
!==
(
c
=
a
[
g
]);
g
++
){
if
(
n
.
acceptData
(
c
)
&&
(
e
=
c
[
L
.
expando
],
e
&&
(
b
=
L
.
cache
[
e
]))){
if
(
b
.
events
)
for
(
d
in
b
.
events
)
f
[
d
]?
n
.
event
.
remove
(
c
,
d
):
n
.
removeEvent
(
c
,
d
,
b
.
handle
);
L
.
cache
[
e
]
&&
delete
L
.
cache
[
e
]}
delete
M
.
cache
[
c
[
M
.
expando
]]}}}),
n
.
fn
.
extend
({
text
:
function
(
a
){
return
J
(
this
,
function
(
a
){
return
void
0
===
a
?
n
.
text
(
this
):
this
.
empty
().
each
(
function
(){(
1
===
this
.
nodeType
||
11
===
this
.
nodeType
||
9
===
this
.
nodeType
)
&&
(
this
.
textContent
=
a
)})},
null
,
a
,
arguments
.
length
)},
append
:
function
(){
return
this
.
domManip
(
arguments
,
function
(
a
){
if
(
1
===
this
.
nodeType
||
11
===
this
.
nodeType
||
9
===
this
.
nodeType
){
var
b
=
jb
(
this
,
a
);
b
.
appendChild
(
a
)}})},
prepend
:
function
(){
return
this
.
domManip
(
arguments
,
function
(
a
){
if
(
1
===
this
.
nodeType
||
11
===
this
.
nodeType
||
9
===
this
.
nodeType
){
var
b
=
jb
(
this
,
a
);
b
.
insertBefore
(
a
,
b
.
firstChild
)}})},
before
:
function
(){
return
this
.
domManip
(
arguments
,
function
(
a
){
this
.
parentNode
&&
this
.
parentNode
.
insertBefore
(
a
,
this
)})},
after
:
function
(){
return
this
.
domManip
(
arguments
,
function
(
a
){
this
.
parentNode
&&
this
.
parentNode
.
insertBefore
(
a
,
this
.
nextSibling
)})},
remove
:
function
(
a
,
b
){
for
(
var
c
,
d
=
a
?
n
.
filter
(
a
,
this
):
this
,
e
=
0
;
null
!=
(
c
=
d
[
e
]);
e
++
)
b
||
1
!==
c
.
nodeType
||
n
.
cleanData
(
ob
(
c
)),
c
.
parentNode
&&
(
b
&&
n
.
contains
(
c
.
ownerDocument
,
c
)
&&
mb
(
ob
(
c
,
"
script
"
)),
c
.
parentNode
.
removeChild
(
c
));
return
this
},
empty
:
function
(){
for
(
var
a
,
b
=
0
;
null
!=
(
a
=
this
[
b
]);
b
++
)
1
===
a
.
nodeType
&&
(
n
.
cleanData
(
ob
(
a
,
!
1
)),
a
.
textContent
=
""
);
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
J
(
this
,
function
(
a
){
var
b
=
this
[
0
]
||
{},
c
=
0
,
d
=
this
.
length
;
if
(
void
0
===
a
&&
1
===
b
.
nodeType
)
return
b
.
innerHTML
;
if
(
"
string
"
==
typeof
a
&&!
db
.
test
(
a
)
&&!
ib
[(
bb
.
exec
(
a
)
||
[
""
,
""
])[
1
].
toLowerCase
()]){
a
=
a
.
replace
(
ab
,
"
<$1></$2>
"
);
try
{
for
(;
d
>
c
;
c
++
)
b
=
this
[
c
]
||
{},
1
===
b
.
nodeType
&&
(
n
.
cleanData
(
ob
(
b
,
!
1
)),
b
.
innerHTML
=
a
);
b
=
0
}
catch
(
e
){}}
b
&&
this
.
empty
().
append
(
a
)},
null
,
a
,
arguments
.
length
)},
replaceWith
:
function
(){
var
a
=
arguments
[
0
];
return
this
.
domManip
(
arguments
,
function
(
b
){
a
=
this
.
parentNode
,
n
.
cleanData
(
ob
(
this
)),
a
&&
a
.
replaceChild
(
b
,
this
)}),
a
&&
(
a
.
length
||
a
.
nodeType
)?
this
:
this
.
remove
()},
detach
:
function
(
a
){
return
this
.
remove
(
a
,
!
0
)},
domManip
:
function
(
a
,
b
){
a
=
e
.
apply
([],
a
);
var
c
,
d
,
f
,
g
,
h
,
i
,
j
=
0
,
l
=
this
.
length
,
m
=
this
,
o
=
l
-
1
,
p
=
a
[
0
],
q
=
n
.
isFunction
(
p
);
if
(
q
||
l
>
1
&&
"
string
"
==
typeof
p
&&!
k
.
checkClone
&&
eb
.
test
(
p
))
return
this
.
each
(
function
(
c
){
var
d
=
m
.
eq
(
c
);
q
&&
(
a
[
0
]
=
p
.
call
(
this
,
c
,
d
.
html
())),
d
.
domManip
(
a
,
b
)});
if
(
l
&&
(
c
=
n
.
buildFragment
(
a
,
this
[
0
].
ownerDocument
,
!
1
,
this
),
d
=
c
.
firstChild
,
1
===
c
.
childNodes
.
length
&&
(
c
=
d
),
d
)){
for
(
f
=
n
.
map
(
ob
(
c
,
"
script
"
),
kb
),
g
=
f
.
length
;
l
>
j
;
j
++
)
h
=
c
,
j
!==
o
&&
(
h
=
n
.
clone
(
h
,
!
0
,
!
0
),
g
&&
n
.
merge
(
f
,
ob
(
h
,
"
script
"
))),
b
.
call
(
this
[
j
],
h
,
j
);
if
(
g
)
for
(
i
=
f
[
f
.
length
-
1
].
ownerDocument
,
n
.
map
(
f
,
lb
),
j
=
0
;
g
>
j
;
j
++
)
h
=
f
[
j
],
fb
.
test
(
h
.
type
||
""
)
&&!
L
.
access
(
h
,
"
globalEval
"
)
&&
n
.
contains
(
i
,
h
)
&&
(
h
.
src
?
n
.
_evalUrl
&&
n
.
_evalUrl
(
h
.
src
):
n
.
globalEval
(
h
.
textContent
.
replace
(
hb
,
""
)))}
return
this
}}),
n
.
each
({
appendTo
:
"
append
"
,
prependTo
:
"
prepend
"
,
insertBefore
:
"
before
"
,
insertAfter
:
"
after
"
,
replaceAll
:
"
replaceWith
"
},
function
(
a
,
b
){
n
.
fn
[
a
]
=
function
(
a
){
for
(
var
c
,
d
=
[],
e
=
n
(
a
),
g
=
e
.
length
-
1
,
h
=
0
;
g
>=
h
;
h
++
)
c
=
h
===
g
?
this
:
this
.
clone
(
!
0
),
n
(
e
[
h
])[
b
](
c
),
f
.
apply
(
d
,
c
.
get
());
return
this
.
pushStack
(
d
)}});
var
qb
,
rb
=
{};
function
sb
(
b
,
c
){
var
d
,
e
=
n
(
c
.
createElement
(
b
)).
appendTo
(
c
.
body
),
f
=
a
.
getDefaultComputedStyle
&&
(
d
=
a
.
getDefaultComputedStyle
(
e
[
0
]))?
d
.
display
:
n
.
css
(
e
[
0
],
"
display
"
);
return
e
.
detach
(),
f
}
function
tb
(
a
){
var
b
=
l
,
c
=
rb
[
a
];
return
c
||
(
c
=
sb
(
a
,
b
),
"
none
"
!==
c
&&
c
||
(
qb
=
(
qb
||
n
(
"
<iframe frameborder='0' width='0' height='0'/>
"
)).
appendTo
(
b
.
documentElement
),
b
=
qb
[
0
].
contentDocument
,
b
.
write
(),
b
.
close
(),
c
=
sb
(
a
,
b
),
qb
.
detach
()),
rb
[
a
]
=
c
),
c
}
var
ub
=
/^margin/
,
vb
=
new
RegExp
(
"
^(
"
+
Q
+
"
)(?!px)[a-z%]+$
"
,
"
i
"
),
wb
=
function
(
b
){
return
b
.
ownerDocument
.
defaultView
.
opener
?
b
.
ownerDocument
.
defaultView
.
getComputedStyle
(
b
,
null
):
a
.
getComputedStyle
(
b
,
null
)};
function
xb
(
a
,
b
,
c
){
var
d
,
e
,
f
,
g
,
h
=
a
.
style
;
return
c
=
c
||
wb
(
a
),
c
&&
(
g
=
c
.
getPropertyValue
(
b
)
||
c
[
b
]),
c
&&
(
""
!==
g
||
n
.
contains
(
a
.
ownerDocument
,
a
)
||
(
g
=
n
.
style
(
a
,
b
)),
vb
.
test
(
g
)
&&
ub
.
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
}
function
yb
(
a
,
b
){
return
{
get
:
function
(){
return
a
()?
void
delete
this
.
get
:(
this
.
get
=
b
).
apply
(
this
,
arguments
)}}}
!
function
(){
var
b
,
c
,
d
=
l
.
documentElement
,
e
=
l
.
createElement
(
"
div
"
),
f
=
l
.
createElement
(
"
div
"
);
if
(
f
.
style
){
f
.
style
.
backgroundClip
=
"
content-box
"
,
f
.
cloneNode
(
!
0
).
style
.
backgroundClip
=
""
,
k
.
clearCloneStyle
=
"
content-box
"
===
f
.
style
.
backgroundClip
,
e
.
style
.
cssText
=
"
border:0;width:0;height:0;top:0;left:-9999px;margin-top:1px;position:absolute
"
,
e
.
appendChild
(
f
);
function
g
(){
f
.
style
.
cssText
=
"
-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;display:block;margin-top:1%;top:1%;border:1px;padding:1px;width:4px;position:absolute
"
,
f
.
innerHTML
=
""
,
d
.
appendChild
(
e
);
var
g
=
a
.
getComputedStyle
(
f
,
null
);
b
=
"
1%
"
!==
g
.
top
,
c
=
"
4px
"
===
g
.
width
,
d
.
removeChild
(
e
)}
a
.
getComputedStyle
&&
n
.
extend
(
k
,{
pixelPosition
:
function
(){
return
g
(),
b
},
boxSizingReliable
:
function
(){
return
null
==
c
&&
g
(),
c
},
reliableMarginRight
:
function
(){
var
b
,
c
=
f
.
appendChild
(
l
.
createElement
(
"
div
"
));
return
c
.
style
.
cssText
=
f
.
style
.
cssText
=
"
-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:0
"
,
c
.
style
.
marginRight
=
c
.
style
.
width
=
"
0
"
,
f
.
style
.
width
=
"
1px
"
,
d
.
appendChild
(
e
),
b
=!
parseFloat
(
a
.
getComputedStyle
(
c
,
null
).
marginRight
),
d
.
removeChild
(
e
),
f
.
removeChild
(
c
),
b
}})}}(),
n
.
swap
=
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
};
var
zb
=
/^
(
none|table
(?!
-c
[
ea
])
.+
)
/
,
Ab
=
new
RegExp
(
"
^(
"
+
Q
+
"
)(.*)$
"
,
"
i
"
),
Bb
=
new
RegExp
(
"
^([+-])=(
"
+
Q
+
"
)
"
,
"
i
"
),
Cb
=
{
position
:
"
absolute
"
,
visibility
:
"
hidden
"
,
display
:
"
block
"
},
Db
=
{
letterSpacing
:
"
0
"
,
fontWeight
:
"
400
"
},
Eb
=
[
"
Webkit
"
,
"
O
"
,
"
Moz
"
,
"
ms
"
];
function
Fb
(
a
,
b
){
if
(
b
in
a
)
return
b
;
var
c
=
b
[
0
].
toUpperCase
()
+
b
.
slice
(
1
),
d
=
b
,
e
=
Eb
.
length
;
while
(
e
--
)
if
(
b
=
Eb
[
e
]
+
c
,
b
in
a
)
return
b
;
return
d
}
function
Gb
(
a
,
b
,
c
){
var
d
=
Ab
.
exec
(
b
);
return
d
?
Math
.
max
(
0
,
d
[
1
]
-
(
c
||
0
))
+
(
d
[
2
]
||
"
px
"
):
b
}
function
Hb
(
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
+
R
[
f
],
!
0
,
e
)),
d
?(
"
content
"
===
c
&&
(
g
-=
n
.
css
(
a
,
"
padding
"
+
R
[
f
],
!
0
,
e
)),
"
margin
"
!==
c
&&
(
g
-=
n
.
css
(
a
,
"
border
"
+
R
[
f
]
+
"
Width
"
,
!
0
,
e
))):(
g
+=
n
.
css
(
a
,
"
padding
"
+
R
[
f
],
!
0
,
e
),
"
padding
"
!==
c
&&
(
g
+=
n
.
css
(
a
,
"
border
"
+
R
[
f
]
+
"
Width
"
,
!
0
,
e
)));
return
g
}
function
Ib
(
a
,
b
,
c
){
var
d
=!
0
,
e
=
"
width
"
===
b
?
a
.
offsetWidth
:
a
.
offsetHeight
,
f
=
wb
(
a
),
g
=
"
border-box
"
===
n
.
css
(
a
,
"
boxSizing
"
,
!
1
,
f
);
if
(
0
>=
e
||
null
==
e
){
if
(
e
=
xb
(
a
,
b
,
f
),(
0
>
e
||
null
==
e
)
&&
(
e
=
a
.
style
[
b
]),
vb
.
test
(
e
))
return
e
;
d
=
g
&&
(
k
.
boxSizingReliable
()
||
e
===
a
.
style
[
b
]),
e
=
parseFloat
(
e
)
||
0
}
return
e
+
Hb
(
a
,
b
,
c
||
(
g
?
"
border
"
:
"
content
"
),
d
,
f
)
+
"
px
"
}
function
Jb
(
a
,
b
){
for
(
var
c
,
d
,
e
,
f
=
[],
g
=
0
,
h
=
a
.
length
;
h
>
g
;
g
++
)
d
=
a
[
g
],
d
.
style
&&
(
f
[
g
]
=
L
.
get
(
d
,
"
olddisplay
"
),
c
=
d
.
style
.
display
,
b
?(
f
[
g
]
||
"
none
"
!==
c
||
(
d
.
style
.
display
=
""
),
""
===
d
.
style
.
display
&&
S
(
d
)
&&
(
f
[
g
]
=
L
.
access
(
d
,
"
olddisplay
"
,
tb
(
d
.
nodeName
)))):(
e
=
S
(
d
),
"
none
"
===
c
&&
e
||
L
.
set
(
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
}
n
.
extend
({
cssHooks
:{
opacity
:{
get
:
function
(
a
,
b
){
if
(
b
){
var
c
=
xb
(
a
,
"
opacity
"
);
return
""
===
c
?
"
1
"
:
c
}}}},
cssNumber
:{
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
"
:
"
cssFloat
"
},
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
;
return
b
=
n
.
cssProps
[
h
]
||
(
n
.
cssProps
[
h
]
=
Fb
(
i
,
h
)),
g
=
n
.
cssHooks
[
b
]
||
n
.
cssHooks
[
h
],
void
0
===
c
?
g
&&
"
get
"
in
g
&&
void
0
!==
(
e
=
g
.
get
(
a
,
!
1
,
d
))?
e
:
i
[
b
]:(
f
=
typeof
c
,
"
string
"
===
f
&&
(
e
=
Bb
.
exec
(
c
))
&&
(
c
=
(
e
[
1
]
+
1
)
*
e
[
2
]
+
parseFloat
(
n
.
css
(
a
,
b
)),
f
=
"
number
"
),
null
!=
c
&&
c
===
c
&&
(
"
number
"
!==
f
||
n
.
cssNumber
[
h
]
||
(
c
+=
"
px
"
),
k
.
clearCloneStyle
||
""
!==
c
||
0
!==
b
.
indexOf
(
"
background
"
)
||
(
i
[
b
]
=
"
inherit
"
),
g
&&
"
set
"
in
g
&&
void
0
===
(
c
=
g
.
set
(
a
,
c
,
d
))
||
(
i
[
b
]
=
c
)),
void
0
)}},
css
:
function
(
a
,
b
,
c
,
d
){
var
e
,
f
,
g
,
h
=
n
.
camelCase
(
b
);
return
b
=
n
.
cssProps
[
h
]
||
(
n
.
cssProps
[
h
]
=
Fb
(
a
.
style
,
h
)),
g
=
n
.
cssHooks
[
b
]
||
n
.
cssHooks
[
h
],
g
&&
"
get
"
in
g
&&
(
e
=
g
.
get
(
a
,
!
0
,
c
)),
void
0
===
e
&&
(
e
=
xb
(
a
,
b
,
d
)),
"
normal
"
===
e
&&
b
in
Db
&&
(
e
=
Db
[
b
]),
""
===
c
||
c
?(
f
=
parseFloat
(
e
),
c
===!
0
||
n
.
isNumeric
(
f
)?
f
||
0
:
e
):
e
}}),
n
.
each
([
"
height
"
,
"
width
"
],
function
(
a
,
b
){
n
.
cssHooks
[
b
]
=
{
get
:
function
(
a
,
c
,
d
){
return
c
?
zb
.
test
(
n
.
css
(
a
,
"
display
"
))
&&
0
===
a
.
offsetWidth
?
n
.
swap
(
a
,
Cb
,
function
(){
return
Ib
(
a
,
b
,
d
)}):
Ib
(
a
,
b
,
d
):
void
0
},
set
:
function
(
a
,
c
,
d
){
var
e
=
d
&&
wb
(
a
);
return
Gb
(
a
,
c
,
d
?
Hb
(
a
,
b
,
d
,
"
border-box
"
===
n
.
css
(
a
,
"
boxSizing
"
,
!
1
,
e
),
e
):
0
)}}}),
n
.
cssHooks
.
marginRight
=
yb
(
k
.
reliableMarginRight
,
function
(
a
,
b
){
return
b
?
n
.
swap
(
a
,{
display
:
"
inline-block
"
},
xb
,[
a
,
"
marginRight
"
]):
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
+
R
[
d
]
+
b
]
=
f
[
d
]
||
f
[
d
-
2
]
||
f
[
0
];
return
e
}},
ub
.
test
(
a
)
||
(
n
.
cssHooks
[
a
+
b
].
set
=
Gb
)}),
n
.
fn
.
extend
({
css
:
function
(
a
,
b
){
return
J
(
this
,
function
(
a
,
b
,
c
){
var
d
,
e
,
f
=
{},
g
=
0
;
if
(
n
.
isArray
(
b
)){
for
(
d
=
wb
(
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
Jb
(
this
,
!
0
)},
hide
:
function
(){
return
Jb
(
this
)},
toggle
:
function
(
a
){
return
"
boolean
"
==
typeof
a
?
a
?
this
.
show
():
this
.
hide
():
this
.
each
(
function
(){
S
(
this
)?
n
(
this
).
show
():
n
(
this
).
hide
()})}});
function
Kb
(
a
,
b
,
c
,
d
,
e
){
return
new
Kb
.
prototype
.
init
(
a
,
b
,
c
,
d
,
e
)}
n
.
Tween
=
Kb
,
Kb
.
prototype
=
{
constructor
:
Kb
,
init
:
function
(
a
,
b
,
c
,
d
,
e
,
f
){
this
.
elem
=
a
,
this
.
prop
=
c
,
this
.
easing
=
e
||
"
swing
"
,
this
.
options
=
b
,
this
.
start
=
this
.
now
=
this
.
cur
(),
this
.
end
=
d
,
this
.
unit
=
f
||
(
n
.
cssNumber
[
c
]?
""
:
"
px
"
)},
cur
:
function
(){
var
a
=
Kb
.
propHooks
[
this
.
prop
];
return
a
&&
a
.
get
?
a
.
get
(
this
):
Kb
.
propHooks
.
_default
.
get
(
this
)},
run
:
function
(
a
){
var
b
,
c
=
Kb
.
propHooks
[
this
.
prop
];
return
this
.
pos
=
b
=
this
.
options
.
duration
?
n
.
easing
[
this
.
easing
](
a
,
this
.
options
.
duration
*
a
,
0
,
1
,
this
.
options
.
duration
):
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
):
Kb
.
propHooks
.
_default
.
set
(
this
),
this
}},
Kb
.
prototype
.
init
.
prototype
=
Kb
.
prototype
,
Kb
.
propHooks
=
{
_default
:{
get
:
function
(
a
){
var
b
;
return
null
==
a
.
elem
[
a
.
prop
]
||
a
.
elem
.
style
&&
null
!=
a
.
elem
.
style
[
a
.
prop
]?(
b
=
n
.
css
(
a
.
elem
,
a
.
prop
,
""
),
b
&&
"
auto
"
!==
b
?
b
:
0
):
a
.
elem
[
a
.
prop
]},
set
:
function
(
a
){
n
.
fx
.
step
[
a
.
prop
]?
n
.
fx
.
step
[
a
.
prop
](
a
):
a
.
elem
.
style
&&
(
null
!=
a
.
elem
.
style
[
n
.
cssProps
[
a
.
prop
]]
||
n
.
cssHooks
[
a
.
prop
])?
n
.
style
(
a
.
elem
,
a
.
prop
,
a
.
now
+
a
.
unit
):
a
.
elem
[
a
.
prop
]
=
a
.
now
}}},
Kb
.
propHooks
.
scrollTop
=
Kb
.
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
}},
n
.
fx
=
Kb
.
prototype
.
init
,
n
.
fx
.
step
=
{};
var
Lb
,
Mb
,
Nb
=
/^
(?:
toggle|show|hide
)
$/
,
Ob
=
new
RegExp
(
"
^(?:([+-])=|)(
"
+
Q
+
"
)([a-z%]*)$
"
,
"
i
"
),
Pb
=
/queueHooks$/
,
Qb
=
[
Vb
],
Rb
=
{
"
*
"
:[
function
(
a
,
b
){
var
c
=
this
.
createTween
(
a
,
b
),
d
=
c
.
cur
(),
e
=
Ob
.
exec
(
b
),
f
=
e
&&
e
[
3
]
||
(
n
.
cssNumber
[
a
]?
""
:
"
px
"
),
g
=
(
n
.
cssNumber
[
a
]
||
"
px
"
!==
f
&&+
d
)
&&
Ob
.
exec
(
n
.
css
(
c
.
elem
,
a
)),
h
=
1
,
i
=
20
;
if
(
g
&&
g
[
3
]
!==
f
){
f
=
f
||
g
[
3
],
e
=
e
||
[],
g
=+
d
||
1
;
do
h
=
h
||
"
.5
"
,
g
/=
h
,
n
.
style
(
c
.
elem
,
a
,
g
+
f
);
while
(
h
!==
(
h
=
c
.
cur
()
/
d
)
&&
1
!==
h
&&--
i
)}
return
e
&&
(
g
=
c
.
start
=+
g
||+
d
||
0
,
c
.
unit
=
f
,
c
.
end
=
e
[
1
]?
g
+
(
e
[
1
]
+
1
)
*
e
[
2
]:
+
e
[
2
]),
c
}]};
function
Sb
(){
return
setTimeout
(
function
(){
Lb
=
void
0
}),
Lb
=
n
.
now
()}
function
Tb
(
a
,
b
){
var
c
,
d
=
0
,
e
=
{
height
:
a
};
for
(
b
=
b
?
1
:
0
;
4
>
d
;
d
+=
2
-
b
)
c
=
R
[
d
],
e
[
"
margin
"
+
c
]
=
e
[
"
padding
"
+
c
]
=
a
;
return
b
&&
(
e
.
opacity
=
e
.
width
=
a
),
e
}
function
Ub
(
a
,
b
,
c
){
for
(
var
d
,
e
=
(
Rb
[
b
]
||
[]).
concat
(
Rb
[
"
*
"
]),
f
=
0
,
g
=
e
.
length
;
g
>
f
;
f
++
)
if
(
d
=
e
[
f
].
call
(
c
,
b
,
a
))
return
d
}
function
Vb
(
a
,
b
,
c
){
var
d
,
e
,
f
,
g
,
h
,
i
,
j
,
k
,
l
=
this
,
m
=
{},
o
=
a
.
style
,
p
=
a
.
nodeType
&&
S
(
a
),
q
=
L
.
get
(
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
++
,
l
.
always
(
function
(){
l
.
always
(
function
(){
h
.
unqueued
--
,
n
.
queue
(
a
,
"
fx
"
).
length
||
h
.
empty
.
fire
()})})),
1
===
a
.
nodeType
&&
(
"
height
"
in
b
||
"
width
"
in
b
)
&&
(
c
.
overflow
=
[
o
.
overflow
,
o
.
overflowX
,
o
.
overflowY
],
j
=
n
.
css
(
a
,
"
display
"
),
k
=
"
none
"
===
j
?
L
.
get
(
a
,
"
olddisplay
"
)
||
tb
(
a
.
nodeName
):
j
,
"
inline
"
===
k
&&
"
none
"
===
n
.
css
(
a
,
"
float
"
)
&&
(
o
.
display
=
"
inline-block
"
)),
c
.
overflow
&&
(
o
.
overflow
=
"
hidden
"
,
l
.
always
(
function
(){
o
.
overflow
=
c
.
overflow
[
0
],
o
.
overflowX
=
c
.
overflow
[
1
],
o
.
overflowY
=
c
.
overflow
[
2
]}));
for
(
d
in
b
)
if
(
e
=
b
[
d
],
Nb
.
exec
(
e
)){
if
(
delete
b
[
d
],
f
=
f
||
"
toggle
"
===
e
,
e
===
(
p
?
"
hide
"
:
"
show
"
)){
if
(
"
show
"
!==
e
||!
q
||
void
0
===
q
[
d
])
continue
;
p
=!
0
}
m
[
d
]
=
q
&&
q
[
d
]
||
n
.
style
(
a
,
d
)}
else
j
=
void
0
;
if
(
n
.
isEmptyObject
(
m
))
"
inline
"
===
(
"
none
"
===
j
?
tb
(
a
.
nodeName
):
j
)
&&
(
o
.
display
=
j
);
else
{
q
?
"
hidden
"
in
q
&&
(
p
=
q
.
hidden
):
q
=
L
.
access
(
a
,
"
fxshow
"
,{}),
f
&&
(
q
.
hidden
=!
p
),
p
?
n
(
a
).
show
():
l
.
done
(
function
(){
n
(
a
).
hide
()}),
l
.
done
(
function
(){
var
b
;
L
.
remove
(
a
,
"
fxshow
"
);
for
(
b
in
m
)
n
.
style
(
a
,
b
,
m
[
b
])});
for
(
d
in
m
)
g
=
Ub
(
p
?
q
[
d
]:
0
,
d
,
l
),
d
in
q
||
(
q
[
d
]
=
g
.
start
,
p
&&
(
g
.
end
=
g
.
start
,
g
.
start
=
"
width
"
===
d
||
"
height
"
===
d
?
1
:
0
))}}
function
Wb
(
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
Xb
(
a
,
b
,
c
){
var
d
,
e
,
f
=
0
,
g
=
Qb
.
length
,
h
=
n
.
Deferred
().
always
(
function
(){
delete
i
.
elem
}),
i
=
function
(){
if
(
e
)
return
!
1
;
for
(
var
b
=
Lb
||
Sb
(),
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
:{}},
c
),
originalProperties
:
b
,
originalOptions
:
c
,
startTime
:
Lb
||
Sb
(),
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
.
resolveWith
(
a
,[
j
,
b
]):
h
.
rejectWith
(
a
,[
j
,
b
]),
this
}}),
k
=
j
.
props
;
for
(
Wb
(
k
,
j
.
opts
.
specialEasing
);
g
>
f
;
f
++
)
if
(
d
=
Qb
[
f
].
call
(
j
,
a
,
k
,
j
.
opts
))
return
d
;
return
n
.
map
(
k
,
Ub
,
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
(
Xb
,{
tweener
:
function
(
a
,
b
){
n
.
isFunction
(
a
)?(
b
=
a
,
a
=
[
"
*
"
]):
a
=
a
.
split
(
"
"
);
for
(
var
c
,
d
=
0
,
e
=
a
.
length
;
e
>
d
;
d
++
)
c
=
a
[
d
],
Rb
[
c
]
=
Rb
[
c
]
||
[],
Rb
[
c
].
unshift
(
b
)},
prefilter
:
function
(
a
,
b
){
b
?
Qb
.
unshift
(
a
):
Qb
.
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
(
S
).
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
=
Xb
(
this
,
n
.
extend
({},
a
),
f
);(
e
||
L
.
get
(
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
=
L
.
get
(
this
);
if
(
e
)
g
[
e
]
&&
g
[
e
].
stop
&&
d
(
g
[
e
]);
else
for
(
e
in
g
)
g
[
e
]
&&
g
[
e
].
stop
&&
Pb
.
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
=
L
.
get
(
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
(
Tb
(
b
,
!
0
),
a
,
d
,
e
)}}),
n
.
each
({
slideDown
:
Tb
(
"
show
"
),
slideUp
:
Tb
(
"
hide
"
),
slideToggle
:
Tb
(
"
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
=
0
,
c
=
n
.
timers
;
for
(
Lb
=
n
.
now
();
b
<
c
.
length
;
b
++
)
a
=
c
[
b
],
a
()
||
c
[
b
]
!==
a
||
c
.
splice
(
b
--
,
1
);
c
.
length
||
n
.
fx
.
stop
(),
Lb
=
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
(){
Mb
||
(
Mb
=
setInterval
(
n
.
fx
.
tick
,
n
.
fx
.
interval
))},
n
.
fx
.
stop
=
function
(){
clearInterval
(
Mb
),
Mb
=
null
},
n
.
fx
.
speeds
=
{
slow
:
600
,
fast
:
200
,
_default
:
400
},
n
.
fn
.
delay
=
function
(
a
,
b
){
return
a
=
n
.
fx
?
n
.
fx
.
speeds
[
a
]
||
a
:
a
,
b
=
b
||
"
fx
"
,
this
.
queue
(
b
,
function
(
b
,
c
){
var
d
=
setTimeout
(
b
,
a
);
c
.
stop
=
function
(){
clearTimeout
(
d
)}})},
function
(){
var
a
=
l
.
createElement
(
"
input
"
),
b
=
l
.
createElement
(
"
select
"
),
c
=
b
.
appendChild
(
l
.
createElement
(
"
option
"
));
a
.
type
=
"
checkbox
"
,
k
.
checkOn
=
""
!==
a
.
value
,
k
.
optSelected
=
c
.
selected
,
b
.
disabled
=!
0
,
k
.
optDisabled
=!
c
.
disabled
,
a
=
l
.
createElement
(
"
input
"
),
a
.
value
=
"
t
"
,
a
.
type
=
"
radio
"
,
k
.
radioValue
=
"
t
"
===
a
.
value
}();
var
Yb
,
Zb
,
$b
=
n
.
expr
.
attrHandle
;
n
.
fn
.
extend
({
attr
:
function
(
a
,
b
){
return
J
(
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
(
a
&&
3
!==
f
&&
8
!==
f
&&
2
!==
f
)
return
typeof
a
.
getAttribute
===
U
?
n
.
prop
(
a
,
b
,
c
):(
1
===
f
&&
n
.
isXMLDoc
(
a
)
||
(
b
=
b
.
toLowerCase
(),
d
=
n
.
attrHooks
[
b
]
||
(
n
.
expr
.
match
.
bool
.
test
(
b
)?
Zb
:
Yb
)),
void
0
===
c
?
d
&&
"
get
"
in
d
&&
null
!==
(
e
=
d
.
get
(
a
,
b
))?
e
:(
e
=
n
.
find
.
attr
(
a
,
b
),
null
==
e
?
void
0
:
e
):
null
!==
c
?
d
&&
"
set
"
in
d
&&
void
0
!==
(
e
=
d
.
set
(
a
,
c
,
b
))?
e
:(
a
.
setAttribute
(
b
,
c
+
""
),
c
):
void
n
.
removeAttr
(
a
,
b
))
},
removeAttr
:
function
(
a
,
b
){
var
c
,
d
,
e
=
0
,
f
=
b
&&
b
.
match
(
E
);
if
(
f
&&
1
===
a
.
nodeType
)
while
(
c
=
f
[
e
++
])
d
=
n
.
propFix
[
c
]
||
c
,
n
.
expr
.
match
.
bool
.
test
(
c
)
&&
(
a
[
d
]
=!
1
),
a
.
removeAttribute
(
c
)},
attrHooks
:{
type
:{
set
:
function
(
a
,
b
){
if
(
!
k
.
radioValue
&&
"
radio
"
===
b
&&
n
.
nodeName
(
a
,
"
input
"
)){
var
c
=
a
.
value
;
return
a
.
setAttribute
(
"
type
"
,
b
),
c
&&
(
a
.
value
=
c
),
b
}}}}}),
Zb
=
{
set
:
function
(
a
,
b
,
c
){
return
b
===!
1
?
n
.
removeAttr
(
a
,
c
):
a
.
setAttribute
(
c
,
c
),
c
}},
n
.
each
(
n
.
expr
.
match
.
bool
.
source
.
match
(
/
\w
+/g
),
function
(
a
,
b
){
var
c
=
$b
[
b
]
||
n
.
find
.
attr
;
$b
[
b
]
=
function
(
a
,
b
,
d
){
var
e
,
f
;
return
d
||
(
f
=
$b
[
b
],
$b
[
b
]
=
e
,
e
=
null
!=
c
(
a
,
b
,
d
)?
b
.
toLowerCase
():
null
,
$b
[
b
]
=
f
),
e
}});
var
_b
=
/^
(?:
input|select|textarea|button
)
$/i
;
n
.
fn
.
extend
({
prop
:
function
(
a
,
b
){
return
J
(
this
,
n
.
prop
,
a
,
b
,
arguments
.
length
>
1
)},
removeProp
:
function
(
a
){
return
this
.
each
(
function
(){
delete
this
[
n
.
propFix
[
a
]
||
a
]})}}),
n
.
extend
({
propFix
:{
"
for
"
:
"
htmlFor
"
,
"
class
"
:
"
className
"
},
prop
:
function
(
a
,
b
,
c
){
var
d
,
e
,
f
,
g
=
a
.
nodeType
;
if
(
a
&&
3
!==
g
&&
8
!==
g
&&
2
!==
g
)
return
f
=
1
!==
g
||!
n
.
isXMLDoc
(
a
),
f
&&
(
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
){
return
a
.
hasAttribute
(
"
tabindex
"
)
||
_b
.
test
(
a
.
nodeName
)
||
a
.
href
?
a
.
tabIndex
:
-
1
}}}}),
k
.
optSelected
||
(
n
.
propHooks
.
selected
=
{
get
:
function
(
a
){
var
b
=
a
.
parentNode
;
return
b
&&
b
.
parentNode
&&
b
.
parentNode
.
selectedIndex
,
null
}}),
n
.
each
([
"
tabIndex
"
,
"
readOnly
"
,
"
maxLength
"
,
"
cellSpacing
"
,
"
cellPadding
"
,
"
rowSpan
"
,
"
colSpan
"
,
"
useMap
"
,
"
frameBorder
"
,
"
contentEditable
"
],
function
(){
n
.
propFix
[
this
.
toLowerCase
()]
=
this
});
var
ac
=
/
[\t\r\n\f]
/g
;
n
.
fn
.
extend
({
addClass
:
function
(
a
){
var
b
,
c
,
d
,
e
,
f
,
g
,
h
=
"
string
"
==
typeof
a
&&
a
,
i
=
0
,
j
=
this
.
length
;
if
(
n
.
isFunction
(
a
))
return
this
.
each
(
function
(
b
){
n
(
this
).
addClass
(
a
.
call
(
this
,
b
,
this
.
className
))});
if
(
h
)
for
(
b
=
(
a
||
""
).
match
(
E
)
||
[];
j
>
i
;
i
++
)
if
(
c
=
this
[
i
],
d
=
1
===
c
.
nodeType
&&
(
c
.
className
?(
"
"
+
c
.
className
+
"
"
).
replace
(
ac
,
"
"
):
"
"
)){
f
=
0
;
while
(
e
=
b
[
f
++
])
d
.
indexOf
(
"
"
+
e
+
"
"
)
<
0
&&
(
d
+=
e
+
"
"
);
g
=
n
.
trim
(
d
),
c
.
className
!==
g
&&
(
c
.
className
=
g
)}
return
this
},
removeClass
:
function
(
a
){
var
b
,
c
,
d
,
e
,
f
,
g
,
h
=
0
===
arguments
.
length
||
"
string
"
==
typeof
a
&&
a
,
i
=
0
,
j
=
this
.
length
;
if
(
n
.
isFunction
(
a
))
return
this
.
each
(
function
(
b
){
n
(
this
).
removeClass
(
a
.
call
(
this
,
b
,
this
.
className
))});
if
(
h
)
for
(
b
=
(
a
||
""
).
match
(
E
)
||
[];
j
>
i
;
i
++
)
if
(
c
=
this
[
i
],
d
=
1
===
c
.
nodeType
&&
(
c
.
className
?(
"
"
+
c
.
className
+
"
"
).
replace
(
ac
,
"
"
):
""
)){
f
=
0
;
while
(
e
=
b
[
f
++
])
while
(
d
.
indexOf
(
"
"
+
e
+
"
"
)
>=
0
)
d
=
d
.
replace
(
"
"
+
e
+
"
"
,
"
"
);
g
=
a
?
n
.
trim
(
d
):
""
,
c
.
className
!==
g
&&
(
c
.
className
=
g
)}
return
this
},
toggleClass
:
function
(
a
,
b
){
var
c
=
typeof
a
;
return
"
boolean
"
==
typeof
b
&&
"
string
"
===
c
?
b
?
this
.
addClass
(
a
):
this
.
removeClass
(
a
):
this
.
each
(
n
.
isFunction
(
a
)?
function
(
c
){
n
(
this
).
toggleClass
(
a
.
call
(
this
,
c
,
this
.
className
,
b
),
b
)}:
function
(){
if
(
"
string
"
===
c
){
var
b
,
d
=
0
,
e
=
n
(
this
),
f
=
a
.
match
(
E
)
||
[];
while
(
b
=
f
[
d
++
])
e
.
hasClass
(
b
)?
e
.
removeClass
(
b
):
e
.
addClass
(
b
)}
else
(
c
===
U
||
"
boolean
"
===
c
)
&&
(
this
.
className
&&
L
.
set
(
this
,
"
__className__
"
,
this
.
className
),
this
.
className
=
this
.
className
||
a
===!
1
?
""
:
L
.
get
(
this
,
"
__className__
"
)
||
""
)})},
hasClass
:
function
(
a
){
for
(
var
b
=
"
"
+
a
+
"
"
,
c
=
0
,
d
=
this
.
length
;
d
>
c
;
c
++
)
if
(
1
===
this
[
c
].
nodeType
&&
(
"
"
+
this
[
c
].
className
+
"
"
).
replace
(
ac
,
"
"
).
indexOf
(
b
)
>=
0
)
return
!
0
;
return
!
1
}});
var
bc
=
/
\r
/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
(
bc
,
""
):
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
))}},
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
||
(
k
.
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
--
)
d
=
e
[
g
],(
d
.
selected
=
n
.
inArray
(
d
.
value
,
f
)
>=
0
)
&&
(
c
=!
0
);
return
c
||
(
a
.
selectedIndex
=-
1
),
f
}}}}),
n
.
each
([
"
radio
"
,
"
checkbox
"
],
function
(){
n
.
valHooks
[
this
]
=
{
set
:
function
(
a
,
b
){
return
n
.
isArray
(
b
)?
a
.
checked
=
n
.
inArray
(
n
(
a
).
val
(),
b
)
>=
0
:
void
0
}},
k
.
checkOn
||
(
n
.
valHooks
[
this
].
get
=
function
(
a
){
return
null
===
a
.
getAttribute
(
"
value
"
)?
"
on
"
:
a
.
value
})}),
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
)},
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
)}});
var
cc
=
n
.
now
(),
dc
=
/
\?
/
;
n
.
parseJSON
=
function
(
a
){
return
JSON
.
parse
(
a
+
""
)},
n
.
parseXML
=
function
(
a
){
var
b
,
c
;
if
(
!
a
||
"
string
"
!=
typeof
a
)
return
null
;
try
{
c
=
new
DOMParser
,
b
=
c
.
parseFromString
(
a
,
"
text/xml
"
)}
catch
(
d
){
b
=
void
0
}
return
(
!
b
||
b
.
getElementsByTagName
(
"
parsererror
"
).
length
)
&&
n
.
error
(
"
Invalid XML:
"
+
a
),
b
};
var
ec
=
/#.*$/
,
fc
=
/
([
?&
])
_=
[^
&
]
*/
,
gc
=
/^
(
.*
?)
:
[
\t]
*
([^\r\n]
*
)
$/gm
,
hc
=
/^
(?:
about|app|app-storage|.+-extension|file|res|widget
)
:$/
,
ic
=
/^
(?:
GET|HEAD
)
$/
,
jc
=
/^
\/\/
/
,
kc
=
/^
([\w
.+-
]
+:
)(?:\/\/(?:[^\/
?#
]
*@|
)([^\/
?#:
]
*
)(?:
:
(\d
+
)
|
)
|
)
/
,
lc
=
{},
mc
=
{},
nc
=
"
*/
"
.
concat
(
"
*
"
),
oc
=
a
.
location
.
href
,
pc
=
kc
.
exec
(
oc
.
toLowerCase
())
||
[];
function
qc
(
a
){
return
function
(
b
,
c
){
"
string
"
!=
typeof
b
&&
(
c
=
b
,
b
=
"
*
"
);
var
d
,
e
=
0
,
f
=
b
.
toLowerCase
().
match
(
E
)
||
[];
if
(
n
.
isFunction
(
c
))
while
(
d
=
f
[
e
++
])
"
+
"
===
d
[
0
]?(
d
=
d
.
slice
(
1
)
||
"
*
"
,(
a
[
d
]
=
a
[
d
]
||
[]).
unshift
(
c
)):(
a
[
d
]
=
a
[
d
]
||
[]).
push
(
c
)}}
function
rc
(
a
,
b
,
c
,
d
){
var
e
=
{},
f
=
a
===
mc
;
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
sc
(
a
,
b
){
var
c
,
d
,
e
=
n
.
ajaxSettings
.
flatOptions
||
{};
for
(
c
in
b
)
void
0
!==
b
[
c
]
&&
((
e
[
c
]?
a
:
d
||
(
d
=
{}))[
c
]
=
b
[
c
]);
return
d
&&
n
.
extend
(
!
0
,
a
,
d
),
a
}
function
tc
(
a
,
b
,
c
){
var
d
,
e
,
f
,
g
,
h
=
a
.
contents
,
i
=
a
.
dataTypes
;
while
(
"
*
"
===
i
[
0
])
i
.
shift
(),
void
0
===
d
&&
(
d
=
a
.
mimeType
||
b
.
getResponseHeader
(
"
Content-Type
"
));
if
(
d
)
for
(
e
in
h
)
if
(
h
[
e
]
&&
h
[
e
].
test
(
d
)){
i
.
unshift
(
e
);
break
}
if
(
i
[
0
]
in
c
)
f
=
i
[
0
];
else
{
for
(
e
in
c
){
if
(
!
i
[
0
]
||
a
.
converters
[
e
+
"
"
+
i
[
0
]]){
f
=
e
;
break
}
g
||
(
g
=
e
)}
f
=
f
||
g
}
return
f
?(
f
!==
i
[
0
]
&&
i
.
unshift
(
f
),
c
[
f
]):
void
0
}
function
uc
(
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
:
oc
,
type
:
"
GET
"
,
isLocal
:
hc
.
test
(
pc
[
1
]),
global
:
!
0
,
processData
:
!
0
,
async
:
!
0
,
contentType
:
"
application/x-www-form-urlencoded; charset=UTF-8
"
,
accepts
:{
"
*
"
:
nc
,
text
:
"
text/plain
"
,
html
:
"
text/html
"
,
xml
:
"
application/xml, text/xml
"
,
json
:
"
application/json, text/javascript
"
},
contents
:{
xml
:
/xml/
,
html
:
/html/
,
json
:
/json/
},
responseFields
:{
xml
:
"
responseXML
"
,
text
:
"
responseText
"
,
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
?
sc
(
sc
(
a
,
n
.
ajaxSettings
),
b
):
sc
(
n
.
ajaxSettings
,
a
)},
ajaxPrefilter
:
qc
(
lc
),
ajaxTransport
:
qc
(
mc
),
ajax
:
function
(
a
,
b
){
"
object
"
==
typeof
a
&&
(
b
=
a
,
a
=
void
0
),
b
=
b
||
{};
var
c
,
d
,
e
,
f
,
g
,
h
,
i
,
j
,
k
=
n
.
ajaxSetup
({},
b
),
l
=
k
.
context
||
k
,
m
=
k
.
context
&&
(
l
.
nodeType
||
l
.
jquery
)?
n
(
l
):
n
.
event
,
o
=
n
.
Deferred
(),
p
=
n
.
Callbacks
(
"
once memory
"
),
q
=
k
.
statusCode
||
{},
r
=
{},
s
=
{},
t
=
0
,
u
=
"
canceled
"
,
v
=
{
readyState
:
0
,
getResponseHeader
:
function
(
a
){
var
b
;
if
(
2
===
t
){
if
(
!
f
){
f
=
{};
while
(
b
=
gc
.
exec
(
e
))
f
[
b
[
1
].
toLowerCase
()]
=
b
[
2
]}
b
=
f
[
a
.
toLowerCase
()]}
return
null
==
b
?
null
:
b
},
getAllResponseHeaders
:
function
(){
return
2
===
t
?
e
:
null
},
setRequestHeader
:
function
(
a
,
b
){
var
c
=
a
.
toLowerCase
();
return
t
||
(
a
=
s
[
c
]
=
s
[
c
]
||
a
,
r
[
a
]
=
b
),
this
},
overrideMimeType
:
function
(
a
){
return
t
||
(
k
.
mimeType
=
a
),
this
},
statusCode
:
function
(
a
){
var
b
;
if
(
a
)
if
(
2
>
t
)
for
(
b
in
a
)
q
[
b
]
=
[
q
[
b
],
a
[
b
]];
else
v
.
always
(
a
[
v
.
status
]);
return
this
},
abort
:
function
(
a
){
var
b
=
a
||
u
;
return
c
&&
c
.
abort
(
b
),
x
(
0
,
b
),
this
}};
if
(
o
.
promise
(
v
).
complete
=
p
.
add
,
v
.
success
=
v
.
done
,
v
.
error
=
v
.
fail
,
k
.
url
=
((
a
||
k
.
url
||
oc
)
+
""
).
replace
(
ec
,
""
).
replace
(
jc
,
pc
[
1
]
+
"
//
"
),
k
.
type
=
b
.
method
||
b
.
type
||
k
.
method
||
k
.
type
,
k
.
dataTypes
=
n
.
trim
(
k
.
dataType
||
"
*
"
).
toLowerCase
().
match
(
E
)
||
[
""
],
null
==
k
.
crossDomain
&&
(
h
=
kc
.
exec
(
k
.
url
.
toLowerCase
()),
k
.
crossDomain
=!
(
!
h
||
h
[
1
]
===
pc
[
1
]
&&
h
[
2
]
===
pc
[
2
]
&&
(
h
[
3
]
||
(
"
http:
"
===
h
[
1
]?
"
80
"
:
"
443
"
))
===
(
pc
[
3
]
||
(
"
http:
"
===
pc
[
1
]?
"
80
"
:
"
443
"
)))),
k
.
data
&&
k
.
processData
&&
"
string
"
!=
typeof
k
.
data
&&
(
k
.
data
=
n
.
param
(
k
.
data
,
k
.
traditional
)),
rc
(
lc
,
k
,
b
,
v
),
2
===
t
)
return
v
;
i
=
n
.
event
&&
k
.
global
,
i
&&
0
===
n
.
active
++&&
n
.
event
.
trigger
(
"
ajaxStart
"
),
k
.
type
=
k
.
type
.
toUpperCase
(),
k
.
hasContent
=!
ic
.
test
(
k
.
type
),
d
=
k
.
url
,
k
.
hasContent
||
(
k
.
data
&&
(
d
=
k
.
url
+=
(
dc
.
test
(
d
)?
"
&
"
:
"
?
"
)
+
k
.
data
,
delete
k
.
data
),
k
.
cache
===!
1
&&
(
k
.
url
=
fc
.
test
(
d
)?
d
.
replace
(
fc
,
"
$1_=
"
+
cc
++
):
d
+
(
dc
.
test
(
d
)?
"
&
"
:
"
?
"
)
+
"
_=
"
+
cc
++
)),
k
.
ifModified
&&
(
n
.
lastModified
[
d
]
&&
v
.
setRequestHeader
(
"
If-Modified-Since
"
,
n
.
lastModified
[
d
]),
n
.
etag
[
d
]
&&
v
.
setRequestHeader
(
"
If-None-Match
"
,
n
.
etag
[
d
])),(
k
.
data
&&
k
.
hasContent
&&
k
.
contentType
!==!
1
||
b
.
contentType
)
&&
v
.
setRequestHeader
(
"
Content-Type
"
,
k
.
contentType
),
v
.
setRequestHeader
(
"
Accept
"
,
k
.
dataTypes
[
0
]
&&
k
.
accepts
[
k
.
dataTypes
[
0
]]?
k
.
accepts
[
k
.
dataTypes
[
0
]]
+
(
"
*
"
!==
k
.
dataTypes
[
0
]?
"
,
"
+
nc
+
"
; q=0.01
"
:
""
):
k
.
accepts
[
"
*
"
]);
for
(
j
in
k
.
headers
)
v
.
setRequestHeader
(
j
,
k
.
headers
[
j
]);
if
(
k
.
beforeSend
&&
(
k
.
beforeSend
.
call
(
l
,
v
,
k
)
===!
1
||
2
===
t
))
return
v
.
abort
();
u
=
"
abort
"
;
for
(
j
in
{
success
:
1
,
error
:
1
,
complete
:
1
})
v
[
j
](
k
[
j
]);
if
(
c
=
rc
(
mc
,
k
,
b
,
v
)){
v
.
readyState
=
1
,
i
&&
m
.
trigger
(
"
ajaxSend
"
,[
v
,
k
]),
k
.
async
&&
k
.
timeout
>
0
&&
(
g
=
setTimeout
(
function
(){
v
.
abort
(
"
timeout
"
)},
k
.
timeout
));
try
{
t
=
1
,
c
.
send
(
r
,
x
)}
catch
(
w
){
if
(
!
(
2
>
t
))
throw
w
;
x
(
-
1
,
w
)}}
else
x
(
-
1
,
"
No Transport
"
);
function
x
(
a
,
b
,
f
,
h
){
var
j
,
r
,
s
,
u
,
w
,
x
=
b
;
2
!==
t
&&
(
t
=
2
,
g
&&
clearTimeout
(
g
),
c
=
void
0
,
e
=
h
||
""
,
v
.
readyState
=
a
>
0
?
4
:
0
,
j
=
a
>=
200
&&
300
>
a
||
304
===
a
,
f
&&
(
u
=
tc
(
k
,
v
,
f
)),
u
=
uc
(
k
,
u
,
v
,
j
),
j
?(
k
.
ifModified
&&
(
w
=
v
.
getResponseHeader
(
"
Last-Modified
"
),
w
&&
(
n
.
lastModified
[
d
]
=
w
),
w
=
v
.
getResponseHeader
(
"
etag
"
),
w
&&
(
n
.
etag
[
d
]
=
w
)),
204
===
a
||
"
HEAD
"
===
k
.
type
?
x
=
"
nocontent
"
:
304
===
a
?
x
=
"
notmodified
"
:(
x
=
u
.
state
,
r
=
u
.
data
,
s
=
u
.
error
,
j
=!
s
)):(
s
=
x
,(
a
||!
x
)
&&
(
x
=
"
error
"
,
0
>
a
&&
(
a
=
0
))),
v
.
status
=
a
,
v
.
statusText
=
(
b
||
x
)
+
""
,
j
?
o
.
resolveWith
(
l
,[
r
,
x
,
v
]):
o
.
rejectWith
(
l
,[
v
,
x
,
s
]),
v
.
statusCode
(
q
),
q
=
void
0
,
i
&&
m
.
trigger
(
j
?
"
ajaxSuccess
"
:
"
ajaxError
"
,[
v
,
k
,
j
?
r
:
s
]),
p
.
fireWith
(
l
,[
v
,
x
]),
i
&&
(
m
.
trigger
(
"
ajaxComplete
"
,[
v
,
k
]),
--
n
.
active
||
n
.
event
.
trigger
(
"
ajaxStop
"
)))}
return
v
},
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
({
url
:
a
,
type
:
b
,
dataType
:
e
,
data
:
c
,
success
:
d
})}}),
n
.
_evalUrl
=
function
(
a
){
return
n
.
ajax
({
url
:
a
,
type
:
"
GET
"
,
dataType
:
"
script
"
,
async
:
!
1
,
global
:
!
1
,
"
throws
"
:
!
0
})},
n
.
fn
.
extend
({
wrapAll
:
function
(
a
){
var
b
;
return
n
.
isFunction
(
a
)?
this
.
each
(
function
(
b
){
n
(
this
).
wrapAll
(
a
.
call
(
this
,
b
))}):(
this
[
0
]
&&
(
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
.
firstElementChild
)
a
=
a
.
firstElementChild
;
return
a
}).
append
(
this
)),
this
)},
wrapInner
:
function
(
a
){
return
this
.
each
(
n
.
isFunction
(
a
)?
function
(
b
){
n
(
this
).
wrapInner
(
a
.
call
(
this
,
b
))}:
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
()}}),
n
.
expr
.
filters
.
hidden
=
function
(
a
){
return
a
.
offsetWidth
<=
0
&&
a
.
offsetHeight
<=
0
},
n
.
expr
.
filters
.
visible
=
function
(
a
){
return
!
n
.
expr
.
filters
.
hidden
(
a
)};
var
vc
=
/%20/g
,
wc
=
/
\[\]
$/
,
xc
=
/
\r?\n
/g
,
yc
=
/^
(?:
submit|button|image|reset|file
)
$/i
,
zc
=
/^
(?:
input|select|textarea|keygen
)
/i
;
function
Ac
(
a
,
b
,
c
,
d
){
var
e
;
if
(
n
.
isArray
(
b
))
n
.
each
(
b
,
function
(
b
,
e
){
c
||
wc
.
test
(
a
)?
d
(
a
,
e
):
Ac
(
a
+
"
[
"
+
(
"
object
"
==
typeof
e
?
b
:
""
)
+
"
]
"
,
e
,
c
,
d
)});
else
if
(
c
||
"
object
"
!==
n
.
type
(
b
))
d
(
a
,
b
);
else
for
(
e
in
b
)
Ac
(
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
)
Ac
(
c
,
a
[
c
],
b
,
e
);
return
d
.
join
(
"
&
"
).
replace
(
vc
,
"
+
"
)},
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
"
)
&&
zc
.
test
(
this
.
nodeName
)
&&!
yc
.
test
(
a
)
&&
(
this
.
checked
||!
T
.
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
(
xc
,
"
\r\n
"
)}}):{
name
:
b
.
name
,
value
:
c
.
replace
(
xc
,
"
\r\n
"
)}}).
get
()}}),
n
.
ajaxSettings
.
xhr
=
function
(){
try
{
return
new
XMLHttpRequest
}
catch
(
a
){}};
var
Bc
=
0
,
Cc
=
{},
Dc
=
{
0
:
200
,
1223
:
204
},
Ec
=
n
.
ajaxSettings
.
xhr
();
a
.
attachEvent
&&
a
.
attachEvent
(
"
onunload
"
,
function
(){
for
(
var
a
in
Cc
)
Cc
[
a
]()}),
k
.
cors
=!!
Ec
&&
"
withCredentials
"
in
Ec
,
k
.
ajax
=
Ec
=!!
Ec
,
n
.
ajaxTransport
(
function
(
a
){
var
b
;
return
k
.
cors
||
Ec
&&!
a
.
crossDomain
?{
send
:
function
(
c
,
d
){
var
e
,
f
=
a
.
xhr
(),
g
=++
Bc
;
if
(
f
.
open
(
a
.
type
,
a
.
url
,
a
.
async
,
a
.
username
,
a
.
password
),
a
.
xhrFields
)
for
(
e
in
a
.
xhrFields
)
f
[
e
]
=
a
.
xhrFields
[
e
];
a
.
mimeType
&&
f
.
overrideMimeType
&&
f
.
overrideMimeType
(
a
.
mimeType
),
a
.
crossDomain
||
c
[
"
X-Requested-With
"
]
||
(
c
[
"
X-Requested-With
"
]
=
"
XMLHttpRequest
"
);
for
(
e
in
c
)
f
.
setRequestHeader
(
e
,
c
[
e
]);
b
=
function
(
a
){
return
function
(){
b
&&
(
delete
Cc
[
g
],
b
=
f
.
onload
=
f
.
onerror
=
null
,
"
abort
"
===
a
?
f
.
abort
():
"
error
"
===
a
?
d
(
f
.
status
,
f
.
statusText
):
d
(
Dc
[
f
.
status
]
||
f
.
status
,
f
.
statusText
,
"
string
"
==
typeof
f
.
responseText
?{
text
:
f
.
responseText
}:
void
0
,
f
.
getAllResponseHeaders
()))}},
f
.
onload
=
b
(),
f
.
onerror
=
b
(
"
error
"
),
b
=
Cc
[
g
]
=
b
(
"
abort
"
);
try
{
f
.
send
(
a
.
hasContent
&&
a
.
data
||
null
)}
catch
(
h
){
if
(
b
)
throw
h
}},
abort
:
function
(){
b
&&
b
()}}:
void
0
}),
n
.
ajaxSetup
({
accepts
:{
script
:
"
text/javascript, application/javascript, application/ecmascript, application/x-ecmascript
"
},
contents
:{
script
:
/
(?:
java|ecma
)
script/
},
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
"
)}),
n
.
ajaxTransport
(
"
script
"
,
function
(
a
){
if
(
a
.
crossDomain
){
var
b
,
c
;
return
{
send
:
function
(
d
,
e
){
b
=
n
(
"
<script>
"
).
prop
({
async
:
!
0
,
charset
:
a
.
scriptCharset
,
src
:
a
.
url
}).
on
(
"
load error
"
,
c
=
function
(
a
){
b
.
remove
(),
c
=
null
,
a
&&
e
(
"
error
"
===
a
.
type
?
404
:
200
,
a
.
type
)}),
l
.
head
.
appendChild
(
b
[
0
])},
abort
:
function
(){
c
&&
c
()}}}});
var
Fc
=
[],
Gc
=
/
(
=
)\?(?=
&|$
)
|
\?\?
/
;
n
.
ajaxSetup
({
jsonp
:
"
callback
"
,
jsonpCallback
:
function
(){
var
a
=
Fc
.
pop
()
||
n
.
expando
+
"
_
"
+
cc
++
;
return
this
[
a
]
=!
0
,
a
}}),
n
.
ajaxPrefilter
(
"
json jsonp
"
,
function
(
b
,
c
,
d
){
var
e
,
f
,
g
,
h
=
b
.
jsonp
!==!
1
&&
(
Gc
.
test
(
b
.
url
)?
"
url
"
:
"
string
"
==
typeof
b
.
data
&&!
(
b
.
contentType
||
""
).
indexOf
(
"
application/x-www-form-urlencoded
"
)
&&
Gc
.
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
(
Gc
,
"
$1
"
+
e
):
b
.
jsonp
!==!
1
&&
(
b
.
url
+=
(
dc
.
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
(){
a
[
e
]
=
f
,
b
[
e
]
&&
(
b
.
jsonpCallback
=
c
.
jsonpCallback
,
Fc
.
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
||
l
;
var
d
=
v
.
exec
(
a
),
e
=!
c
&&
[];
return
d
?[
b
.
createElement
(
d
[
1
])]:(
d
=
n
.
buildFragment
([
a
],
b
,
e
),
e
&&
e
.
length
&&
n
(
e
).
remove
(),
n
.
merge
([],
d
.
childNodes
))};
var
Hc
=
n
.
fn
.
load
;
n
.
fn
.
load
=
function
(
a
,
b
,
c
){
if
(
"
string
"
!=
typeof
a
&&
Hc
)
return
Hc
.
apply
(
this
,
arguments
);
var
d
,
e
,
f
,
g
=
this
,
h
=
a
.
indexOf
(
"
"
);
return
h
>=
0
&&
(
d
=
n
.
trim
(
a
.
slice
(
h
)),
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
,
dataType
:
"
html
"
,
data
:
b
}).
done
(
function
(
a
){
f
=
arguments
,
g
.
html
(
d
?
n
(
"
<div>
"
).
append
(
n
.
parseHTML
(
a
)).
find
(
d
):
a
)}).
complete
(
c
&&
function
(
a
,
b
){
g
.
each
(
c
,
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
};
var
Ic
=
a
.
document
.
documentElement
;
function
Jc
(
a
){
return
n
.
isWindow
(
a
)?
a
:
9
===
a
.
nodeType
&&
a
.
defaultView
}
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
)
&&
(
f
+
i
).
indexOf
(
"
auto
"
)
>-
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
,
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
=
this
[
0
],
e
=
{
top
:
0
,
left
:
0
},
f
=
d
&&
d
.
ownerDocument
;
if
(
f
)
return
b
=
f
.
documentElement
,
n
.
contains
(
b
,
d
)?(
typeof
d
.
getBoundingClientRect
!==
U
&&
(
e
=
d
.
getBoundingClientRect
()),
c
=
Jc
(
f
),{
top
:
e
.
top
+
c
.
pageYOffset
-
b
.
clientTop
,
left
:
e
.
left
+
c
.
pageXOffset
-
b
.
clientLeft
}):
e
},
position
:
function
(){
if
(
this
[
0
]){
var
a
,
b
,
c
=
this
[
0
],
d
=
{
top
:
0
,
left
:
0
};
return
"
fixed
"
===
n
.
css
(
c
,
"
position
"
)?
b
=
c
.
getBoundingClientRect
():(
a
=
this
.
offsetParent
(),
b
=
this
.
offset
(),
n
.
nodeName
(
a
[
0
],
"
html
"
)
||
(
d
=
a
.
offset
()),
d
.
top
+=
n
.
css
(
a
[
0
],
"
borderTopWidth
"
,
!
0
),
d
.
left
+=
n
.
css
(
a
[
0
],
"
borderLeftWidth
"
,
!
0
)),{
top
:
b
.
top
-
d
.
top
-
n
.
css
(
c
,
"
marginTop
"
,
!
0
),
left
:
b
.
left
-
d
.
left
-
n
.
css
(
c
,
"
marginLeft
"
,
!
0
)}}},
offsetParent
:
function
(){
return
this
.
map
(
function
(){
var
a
=
this
.
offsetParent
||
Ic
;
while
(
a
&&!
n
.
nodeName
(
a
,
"
html
"
)
&&
"
static
"
===
n
.
css
(
a
,
"
position
"
))
a
=
a
.
offsetParent
;
return
a
||
Ic
})}}),
n
.
each
({
scrollLeft
:
"
pageXOffset
"
,
scrollTop
:
"
pageYOffset
"
},
function
(
b
,
c
){
var
d
=
"
pageYOffset
"
===
c
;
n
.
fn
[
b
]
=
function
(
e
){
return
J
(
this
,
function
(
b
,
e
,
f
){
var
g
=
Jc
(
b
);
return
void
0
===
f
?
g
?
g
[
c
]:
b
[
e
]:
void
(
g
?
g
.
scrollTo
(
d
?
a
.
pageXOffset
:
f
,
d
?
f
:
a
.
pageYOffset
):
b
[
e
]
=
f
)},
b
,
e
,
arguments
.
length
,
null
)}}),
n
.
each
([
"
top
"
,
"
left
"
],
function
(
a
,
b
){
n
.
cssHooks
[
b
]
=
yb
(
k
.
pixelPosition
,
function
(
a
,
c
){
return
c
?(
c
=
xb
(
a
,
b
),
vb
.
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
J
(
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
.
size
=
function
(){
return
this
.
length
},
n
.
fn
.
andSelf
=
n
.
fn
.
addBack
,
"
function
"
==
typeof
define
&&
define
.
amd
&&
define
(
"
jquery
"
,[],
function
(){
return
n
});
var
Kc
=
a
.
jQuery
,
Lc
=
a
.
$
;
return
n
.
noConflict
=
function
(
b
){
return
a
.
$
===
n
&&
(
a
.
$
=
Lc
),
b
&&
a
.
jQuery
===
n
&&
(
a
.
jQuery
=
Kc
),
n
},
typeof
b
===
U
&&
(
a
.
jQuery
=
a
.
$
=
n
),
n
});
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment