Page Menu
Home
Phorge
Search
Configure Global Search
Log In
Files
F3314768
jquery-ui-1.9.1.custom.min.js
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Flag For Later
Award Token
Size
231 KB
Referenced Files
None
Subscribers
None
jquery-ui-1.9.1.custom.min.js
View Options
/*! jQuery UI - v1.9.1 - 2012-10-25
* http://jqueryui.com
* Includes: jquery.ui.core.js, jquery.ui.widget.js, jquery.ui.mouse.js, jquery.ui.position.js, jquery.ui.accordion.js, jquery.ui.autocomplete.js, jquery.ui.button.js, jquery.ui.datepicker.js, jquery.ui.dialog.js, jquery.ui.draggable.js, jquery.ui.droppable.js, jquery.ui.effect.js, jquery.ui.effect-blind.js, jquery.ui.effect-bounce.js, jquery.ui.effect-clip.js, jquery.ui.effect-drop.js, jquery.ui.effect-explode.js, jquery.ui.effect-fade.js, jquery.ui.effect-fold.js, jquery.ui.effect-highlight.js, jquery.ui.effect-pulsate.js, jquery.ui.effect-scale.js, jquery.ui.effect-shake.js, jquery.ui.effect-slide.js, jquery.ui.effect-transfer.js, jquery.ui.menu.js, jquery.ui.progressbar.js, jquery.ui.resizable.js, jquery.ui.selectable.js, jquery.ui.slider.js, jquery.ui.sortable.js, jquery.ui.spinner.js, jquery.ui.tabs.js, jquery.ui.tooltip.js
* Copyright (c) 2012 jQuery Foundation and other contributors Licensed MIT */
(
function
(
e
,
t
){
function
i
(
t
,
n
){
var
r
,
i
,
o
,
u
=
t
.
nodeName
.
toLowerCase
();
return
"area"
===
u
?
(
r
=
t
.
parentNode
,
i
=
r
.
name
,
!
t
.
href
||!
i
||
r
.
nodeName
.
toLowerCase
()
!==
"map"
?!
1
:
(
o
=
e
(
"img[usemap=#"
+
i
+
"]"
)[
0
],
!!
o
&&
s
(
o
)))
:
(
/input|select|textarea|button|object/
.
test
(
u
)
?!
t
.
disabled
:
"a"
===
u
?
t
.
href
||
n
:
n
)
&&
s
(
t
)}
function
s
(
t
){
return
e
.
expr
.
filters
.
visible
(
t
)
&&!
e
(
t
).
parents
().
andSelf
().
filter
(
function
(){
return
e
.
css
(
this
,
"visibility"
)
===
"hidden"
}).
length
}
var
n
=
0
,
r
=
/^ui-id-\d+$/
;
e
.
ui
=
e
.
ui
||
{};
if
(
e
.
ui
.
version
)
return
;
e
.
extend
(
e
.
ui
,{
version
:
"1.9.1"
,
keyCode
:
{
BACKSPACE
:
8
,
COMMA
:
188
,
DELETE
:
46
,
DOWN
:
40
,
END
:
35
,
ENTER
:
13
,
ESCAPE
:
27
,
HOME
:
36
,
LEFT
:
37
,
NUMPAD_ADD
:
107
,
NUMPAD_DECIMAL
:
110
,
NUMPAD_DIVIDE
:
111
,
NUMPAD_ENTER
:
108
,
NUMPAD_MULTIPLY
:
106
,
NUMPAD_SUBTRACT
:
109
,
PAGE_DOWN
:
34
,
PAGE_UP
:
33
,
PERIOD
:
190
,
RIGHT
:
39
,
SPACE
:
32
,
TAB
:
9
,
UP
:
38
}}),
e
.
fn
.
extend
({
_focus
:
e
.
fn
.
focus
,
focus
:
function
(
t
,
n
){
return
typeof
t
==
"number"
?
this
.
each
(
function
(){
var
r
=
this
;
setTimeout
(
function
(){
e
(
r
).
focus
(),
n
&&
n
.
call
(
r
)},
t
)})
:
this
.
_focus
.
apply
(
this
,
arguments
)},
scrollParent
:
function
(){
var
t
;
return
e
.
ui
.
ie
&&
/(static|relative)/
.
test
(
this
.
css
(
"position"
))
||
/absolute/
.
test
(
this
.
css
(
"position"
))
?
t
=
this
.
parents
().
filter
(
function
(){
return
/(relative|absolute|fixed)/
.
test
(
e
.
css
(
this
,
"position"
))
&&
/(auto|scroll)/
.
test
(
e
.
css
(
this
,
"overflow"
)
+
e
.
css
(
this
,
"overflow-y"
)
+
e
.
css
(
this
,
"overflow-x"
))}).
eq
(
0
)
:
t
=
this
.
parents
().
filter
(
function
(){
return
/(auto|scroll)/
.
test
(
e
.
css
(
this
,
"overflow"
)
+
e
.
css
(
this
,
"overflow-y"
)
+
e
.
css
(
this
,
"overflow-x"
))}).
eq
(
0
),
/fixed/
.
test
(
this
.
css
(
"position"
))
||!
t
.
length
?
e
(
document
)
:
t
},
zIndex
:
function
(
n
){
if
(
n
!==
t
)
return
this
.
css
(
"zIndex"
,
n
);
if
(
this
.
length
){
var
r
=
e
(
this
[
0
]),
i
,
s
;
while
(
r
.
length
&&
r
[
0
]
!==
document
){
i
=
r
.
css
(
"position"
);
if
(
i
===
"absolute"
||
i
===
"relative"
||
i
===
"fixed"
){
s
=
parseInt
(
r
.
css
(
"zIndex"
),
10
);
if
(
!
isNaN
(
s
)
&&
s
!==
0
)
return
s
}
r
=
r
.
parent
()}}
return
0
},
uniqueId
:
function
(){
return
this
.
each
(
function
(){
this
.
id
||
(
this
.
id
=
"ui-id-"
+
++
n
)})},
removeUniqueId
:
function
(){
return
this
.
each
(
function
(){
r
.
test
(
this
.
id
)
&&
e
(
this
).
removeAttr
(
"id"
)})}}),
e
(
"<a>"
).
outerWidth
(
1
).
jquery
||
e
.
each
([
"Width"
,
"Height"
],
function
(
n
,
r
){
function
u
(
t
,
n
,
r
,
s
){
return
e
.
each
(
i
,
function
(){
n
-=
parseFloat
(
e
.
css
(
t
,
"padding"
+
this
))
||
0
,
r
&&
(
n
-=
parseFloat
(
e
.
css
(
t
,
"border"
+
this
+
"Width"
))
||
0
),
s
&&
(
n
-=
parseFloat
(
e
.
css
(
t
,
"margin"
+
this
))
||
0
)}),
n
}
var
i
=
r
===
"Width"
?
[
"Left"
,
"Right"
]
:
[
"Top"
,
"Bottom"
],
s
=
r
.
toLowerCase
(),
o
=
{
innerWidth
:
e
.
fn
.
innerWidth
,
innerHeight
:
e
.
fn
.
innerHeight
,
outerWidth
:
e
.
fn
.
outerWidth
,
outerHeight
:
e
.
fn
.
outerHeight
};
e
.
fn
[
"inner"
+
r
]
=
function
(
n
){
return
n
===
t
?
o
[
"inner"
+
r
].
call
(
this
)
:
this
.
each
(
function
(){
e
(
this
).
css
(
s
,
u
(
this
,
n
)
+
"px"
)})},
e
.
fn
[
"outer"
+
r
]
=
function
(
t
,
n
){
return
typeof
t
!=
"number"
?
o
[
"outer"
+
r
].
call
(
this
,
t
)
:
this
.
each
(
function
(){
e
(
this
).
css
(
s
,
u
(
this
,
t
,
!
0
,
n
)
+
"px"
)})}}),
e
.
extend
(
e
.
expr
[
":"
],{
data
:
e
.
expr
.
createPseudo
?
e
.
expr
.
createPseudo
(
function
(
t
){
return
function
(
n
){
return
!!
e
.
data
(
n
,
t
)}})
:
function
(
t
,
n
,
r
){
return
!!
e
.
data
(
t
,
r
[
3
])},
focusable
:
function
(
t
){
return
i
(
t
,
!
isNaN
(
e
.
attr
(
t
,
"tabindex"
)))},
tabbable
:
function
(
t
){
var
n
=
e
.
attr
(
t
,
"tabindex"
),
r
=
isNaN
(
n
);
return
(
r
||
n
>=
0
)
&&
i
(
t
,
!
r
)}}),
e
(
function
(){
var
t
=
document
.
body
,
n
=
t
.
appendChild
(
n
=
document
.
createElement
(
"div"
));
n
.
offsetHeight
,
e
.
extend
(
n
.
style
,{
minHeight
:
"100px"
,
height
:
"auto"
,
padding
:
0
,
borderWidth
:
0
}),
e
.
support
.
minHeight
=
n
.
offsetHeight
===
100
,
e
.
support
.
selectstart
=
"onselectstart"
in
n
,
t
.
removeChild
(
n
).
style
.
display
=
"none"
}),
function
(){
var
t
=
/msie ([\w.]+)/
.
exec
(
navigator
.
userAgent
.
toLowerCase
())
||
[];
e
.
ui
.
ie
=
t
.
length
?!
0
:!
1
,
e
.
ui
.
ie6
=
parseFloat
(
t
[
1
],
10
)
===
6
}(),
e
.
fn
.
extend
({
disableSelection
:
function
(){
return
this
.
bind
((
e
.
support
.
selectstart
?
"selectstart"
:
"mousedown"
)
+
".ui-disableSelection"
,
function
(
e
){
e
.
preventDefault
()})},
enableSelection
:
function
(){
return
this
.
unbind
(
".ui-disableSelection"
)}}),
e
.
extend
(
e
.
ui
,{
plugin
:
{
add
:
function
(
t
,
n
,
r
){
var
i
,
s
=
e
.
ui
[
t
].
prototype
;
for
(
i
in
r
)
s
.
plugins
[
i
]
=
s
.
plugins
[
i
]
||
[],
s
.
plugins
[
i
].
push
([
n
,
r
[
i
]])},
call
:
function
(
e
,
t
,
n
){
var
r
,
i
=
e
.
plugins
[
t
];
if
(
!
i
||!
e
.
element
[
0
].
parentNode
||
e
.
element
[
0
].
parentNode
.
nodeType
===
11
)
return
;
for
(
r
=
0
;
r
<
i
.
length
;
r
++
)
e
.
options
[
i
[
r
][
0
]]
&&
i
[
r
][
1
].
apply
(
e
.
element
,
n
)}},
contains
:
e
.
contains
,
hasScroll
:
function
(
t
,
n
){
if
(
e
(
t
).
css
(
"overflow"
)
===
"hidden"
)
return
!
1
;
var
r
=
n
&&
n
===
"left"
?
"scrollLeft"
:
"scrollTop"
,
i
=!
1
;
return
t
[
r
]
>
0
?!
0
:
(
t
[
r
]
=
1
,
i
=
t
[
r
]
>
0
,
t
[
r
]
=
0
,
i
)},
isOverAxis
:
function
(
e
,
t
,
n
){
return
e
>
t
&&
e
<
t
+
n
},
isOver
:
function
(
t
,
n
,
r
,
i
,
s
,
o
){
return
e
.
ui
.
isOverAxis
(
t
,
r
,
s
)
&&
e
.
ui
.
isOverAxis
(
n
,
i
,
o
)}})})(
jQuery
);(
function
(
e
,
t
){
var
n
=
0
,
r
=
Array
.
prototype
.
slice
,
i
=
e
.
cleanData
;
e
.
cleanData
=
function
(
t
){
for
(
var
n
=
0
,
r
;(
r
=
t
[
n
])
!=
null
;
n
++
)
try
{
e
(
r
).
triggerHandler
(
"remove"
)}
catch
(
s
){}
i
(
t
)},
e
.
widget
=
function
(
t
,
n
,
r
){
var
i
,
s
,
o
,
u
,
a
=
t
.
split
(
"."
)[
0
];
t
=
t
.
split
(
"."
)[
1
],
i
=
a
+
"-"
+
t
,
r
||
(
r
=
n
,
n
=
e
.
Widget
),
e
.
expr
[
":"
][
i
.
toLowerCase
()]
=
function
(
t
){
return
!!
e
.
data
(
t
,
i
)},
e
[
a
]
=
e
[
a
]
||
{},
s
=
e
[
a
][
t
],
o
=
e
[
a
][
t
]
=
function
(
e
,
t
){
if
(
!
this
.
_createWidget
)
return
new
o
(
e
,
t
);
arguments
.
length
&&
this
.
_createWidget
(
e
,
t
)},
e
.
extend
(
o
,
s
,{
version
:
r
.
version
,
_proto
:
e
.
extend
({},
r
),
_childConstructors
:
[]}),
u
=
new
n
,
u
.
options
=
e
.
widget
.
extend
({},
u
.
options
),
e
.
each
(
r
,
function
(
t
,
i
){
e
.
isFunction
(
i
)
&&
(
r
[
t
]
=
function
(){
var
e
=
function
(){
return
n
.
prototype
[
t
].
apply
(
this
,
arguments
)},
r
=
function
(
e
){
return
n
.
prototype
[
t
].
apply
(
this
,
e
)};
return
function
(){
var
t
=
this
.
_super
,
n
=
this
.
_superApply
,
s
;
return
this
.
_super
=
e
,
this
.
_superApply
=
r
,
s
=
i
.
apply
(
this
,
arguments
),
this
.
_super
=
t
,
this
.
_superApply
=
n
,
s
}}())}),
o
.
prototype
=
e
.
widget
.
extend
(
u
,{
widgetEventPrefix
:
u
.
widgetEventPrefix
||
t
},
r
,{
constructor
:
o
,
namespace
:
a
,
widgetName
:
t
,
widgetBaseClass
:
i
,
widgetFullName
:
i
}),
s
?
(
e
.
each
(
s
.
_childConstructors
,
function
(
t
,
n
){
var
r
=
n
.
prototype
;
e
.
widget
(
r
.
namespace
+
"."
+
r
.
widgetName
,
o
,
n
.
_proto
)}),
delete
s
.
_childConstructors
)
:
n
.
_childConstructors
.
push
(
o
),
e
.
widget
.
bridge
(
t
,
o
)},
e
.
widget
.
extend
=
function
(
n
){
var
i
=
r
.
call
(
arguments
,
1
),
s
=
0
,
o
=
i
.
length
,
u
,
a
;
for
(;
s
<
o
;
s
++
)
for
(
u
in
i
[
s
])
a
=
i
[
s
][
u
],
i
[
s
].
hasOwnProperty
(
u
)
&&
a
!==
t
&&
(
e
.
isPlainObject
(
a
)
?
n
[
u
]
=
e
.
isPlainObject
(
n
[
u
])
?
e
.
widget
.
extend
({},
n
[
u
],
a
)
:
e
.
widget
.
extend
({},
a
)
:
n
[
u
]
=
a
);
return
n
},
e
.
widget
.
bridge
=
function
(
n
,
i
){
var
s
=
i
.
prototype
.
widgetFullName
;
e
.
fn
[
n
]
=
function
(
o
){
var
u
=
typeof
o
==
"string"
,
a
=
r
.
call
(
arguments
,
1
),
f
=
this
;
return
o
=!
u
&&
a
.
length
?
e
.
widget
.
extend
.
apply
(
null
,[
o
].
concat
(
a
))
:
o
,
u
?
this
.
each
(
function
(){
var
r
,
i
=
e
.
data
(
this
,
s
);
if
(
!
i
)
return
e
.
error
(
"cannot call methods on "
+
n
+
" prior to initialization; "
+
"attempted to call method '"
+
o
+
"'"
);
if
(
!
e
.
isFunction
(
i
[
o
])
||
o
.
charAt
(
0
)
===
"_"
)
return
e
.
error
(
"no such method '"
+
o
+
"' for "
+
n
+
" widget instance"
);
r
=
i
[
o
].
apply
(
i
,
a
);
if
(
r
!==
i
&&
r
!==
t
)
return
f
=
r
&&
r
.
jquery
?
f
.
pushStack
(
r
.
get
())
:
r
,
!
1
})
:
this
.
each
(
function
(){
var
t
=
e
.
data
(
this
,
s
);
t
?
t
.
option
(
o
||
{}).
_init
()
:
new
i
(
o
,
this
)}),
f
}},
e
.
Widget
=
function
(){},
e
.
Widget
.
_childConstructors
=
[],
e
.
Widget
.
prototype
=
{
widgetName
:
"widget"
,
widgetEventPrefix
:
""
,
defaultElement
:
"<div>"
,
options
:
{
disabled
:!
1
,
create
:
null
},
_createWidget
:
function
(
t
,
r
){
r
=
e
(
r
||
this
.
defaultElement
||
this
)[
0
],
this
.
element
=
e
(
r
),
this
.
uuid
=
n
++
,
this
.
eventNamespace
=
"."
+
this
.
widgetName
+
this
.
uuid
,
this
.
options
=
e
.
widget
.
extend
({},
this
.
options
,
this
.
_getCreateOptions
(),
t
),
this
.
bindings
=
e
(),
this
.
hoverable
=
e
(),
this
.
focusable
=
e
(),
r
!==
this
&&
(
e
.
data
(
r
,
this
.
widgetName
,
this
),
e
.
data
(
r
,
this
.
widgetFullName
,
this
),
this
.
_on
(
this
.
element
,{
remove
:
function
(
e
){
e
.
target
===
r
&&
this
.
destroy
()}}),
this
.
document
=
e
(
r
.
style
?
r
.
ownerDocument
:
r
.
document
||
r
),
this
.
window
=
e
(
this
.
document
[
0
].
defaultView
||
this
.
document
[
0
].
parentWindow
)),
this
.
_create
(),
this
.
_trigger
(
"create"
,
null
,
this
.
_getCreateEventData
()),
this
.
_init
()},
_getCreateOptions
:
e
.
noop
,
_getCreateEventData
:
e
.
noop
,
_create
:
e
.
noop
,
_init
:
e
.
noop
,
destroy
:
function
(){
this
.
_destroy
(),
this
.
element
.
unbind
(
this
.
eventNamespace
).
removeData
(
this
.
widgetName
).
removeData
(
this
.
widgetFullName
).
removeData
(
e
.
camelCase
(
this
.
widgetFullName
)),
this
.
widget
().
unbind
(
this
.
eventNamespace
).
removeAttr
(
"aria-disabled"
).
removeClass
(
this
.
widgetFullName
+
"-disabled "
+
"ui-state-disabled"
),
this
.
bindings
.
unbind
(
this
.
eventNamespace
),
this
.
hoverable
.
removeClass
(
"ui-state-hover"
),
this
.
focusable
.
removeClass
(
"ui-state-focus"
)},
_destroy
:
e
.
noop
,
widget
:
function
(){
return
this
.
element
},
option
:
function
(
n
,
r
){
var
i
=
n
,
s
,
o
,
u
;
if
(
arguments
.
length
===
0
)
return
e
.
widget
.
extend
({},
this
.
options
);
if
(
typeof
n
==
"string"
){
i
=
{},
s
=
n
.
split
(
"."
),
n
=
s
.
shift
();
if
(
s
.
length
){
o
=
i
[
n
]
=
e
.
widget
.
extend
({},
this
.
options
[
n
]);
for
(
u
=
0
;
u
<
s
.
length
-
1
;
u
++
)
o
[
s
[
u
]]
=
o
[
s
[
u
]]
||
{},
o
=
o
[
s
[
u
]];
n
=
s
.
pop
();
if
(
r
===
t
)
return
o
[
n
]
===
t
?
null
:
o
[
n
];
o
[
n
]
=
r
}
else
{
if
(
r
===
t
)
return
this
.
options
[
n
]
===
t
?
null
:
this
.
options
[
n
];
i
[
n
]
=
r
}}
return
this
.
_setOptions
(
i
),
this
},
_setOptions
:
function
(
e
){
var
t
;
for
(
t
in
e
)
this
.
_setOption
(
t
,
e
[
t
]);
return
this
},
_setOption
:
function
(
e
,
t
){
return
this
.
options
[
e
]
=
t
,
e
===
"disabled"
&&
(
this
.
widget
().
toggleClass
(
this
.
widgetFullName
+
"-disabled ui-state-disabled"
,
!!
t
).
attr
(
"aria-disabled"
,
t
),
this
.
hoverable
.
removeClass
(
"ui-state-hover"
),
this
.
focusable
.
removeClass
(
"ui-state-focus"
)),
this
},
enable
:
function
(){
return
this
.
_setOption
(
"disabled"
,
!
1
)},
disable
:
function
(){
return
this
.
_setOption
(
"disabled"
,
!
0
)},
_on
:
function
(
t
,
n
){
var
r
,
i
=
this
;
n
?
(
t
=
r
=
e
(
t
),
this
.
bindings
=
this
.
bindings
.
add
(
t
))
:
(
n
=
t
,
t
=
this
.
element
,
r
=
this
.
widget
()),
e
.
each
(
n
,
function
(
n
,
s
){
function
o
(){
if
(
i
.
options
.
disabled
===!
0
||
e
(
this
).
hasClass
(
"ui-state-disabled"
))
return
;
return
(
typeof
s
==
"string"
?
i
[
s
]
:
s
).
apply
(
i
,
arguments
)}
typeof
s
!=
"string"
&&
(
o
.
guid
=
s
.
guid
=
s
.
guid
||
o
.
guid
||
e
.
guid
++
);
var
u
=
n
.
match
(
/^(\w+)\s*(.*)$/
),
a
=
u
[
1
]
+
i
.
eventNamespace
,
f
=
u
[
2
];
f
?
r
.
delegate
(
f
,
a
,
o
)
:
t
.
bind
(
a
,
o
)})},
_off
:
function
(
e
,
t
){
t
=
(
t
||
""
).
split
(
" "
).
join
(
this
.
eventNamespace
+
" "
)
+
this
.
eventNamespace
,
e
.
unbind
(
t
).
undelegate
(
t
)},
_delay
:
function
(
e
,
t
){
function
n
(){
return
(
typeof
e
==
"string"
?
r
[
e
]
:
e
).
apply
(
r
,
arguments
)}
var
r
=
this
;
return
setTimeout
(
n
,
t
||
0
)},
_hoverable
:
function
(
t
){
this
.
hoverable
=
this
.
hoverable
.
add
(
t
),
this
.
_on
(
t
,{
mouseenter
:
function
(
t
){
e
(
t
.
currentTarget
).
addClass
(
"ui-state-hover"
)},
mouseleave
:
function
(
t
){
e
(
t
.
currentTarget
).
removeClass
(
"ui-state-hover"
)}})},
_focusable
:
function
(
t
){
this
.
focusable
=
this
.
focusable
.
add
(
t
),
this
.
_on
(
t
,{
focusin
:
function
(
t
){
e
(
t
.
currentTarget
).
addClass
(
"ui-state-focus"
)},
focusout
:
function
(
t
){
e
(
t
.
currentTarget
).
removeClass
(
"ui-state-focus"
)}})},
_trigger
:
function
(
t
,
n
,
r
){
var
i
,
s
,
o
=
this
.
options
[
t
];
r
=
r
||
{},
n
=
e
.
Event
(
n
),
n
.
type
=
(
t
===
this
.
widgetEventPrefix
?
t
:
this
.
widgetEventPrefix
+
t
).
toLowerCase
(),
n
.
target
=
this
.
element
[
0
],
s
=
n
.
originalEvent
;
if
(
s
)
for
(
i
in
s
)
i
in
n
||
(
n
[
i
]
=
s
[
i
]);
return
this
.
element
.
trigger
(
n
,
r
),
!
(
e
.
isFunction
(
o
)
&&
o
.
apply
(
this
.
element
[
0
],[
n
].
concat
(
r
))
===!
1
||
n
.
isDefaultPrevented
())}},
e
.
each
({
show
:
"fadeIn"
,
hide
:
"fadeOut"
},
function
(
t
,
n
){
e
.
Widget
.
prototype
[
"_"
+
t
]
=
function
(
r
,
i
,
s
){
typeof
i
==
"string"
&&
(
i
=
{
effect
:
i
});
var
o
,
u
=
i
?
i
===!
0
||
typeof
i
==
"number"
?
n
:
i
.
effect
||
n
:
t
;
i
=
i
||
{},
typeof
i
==
"number"
&&
(
i
=
{
duration
:
i
}),
o
=!
e
.
isEmptyObject
(
i
),
i
.
complete
=
s
,
i
.
delay
&&
r
.
delay
(
i
.
delay
),
o
&&
e
.
effects
&&
(
e
.
effects
.
effect
[
u
]
||
e
.
uiBackCompat
!==!
1
&&
e
.
effects
[
u
])
?
r
[
t
](
i
)
:
u
!==
t
&&
r
[
u
]
?
r
[
u
](
i
.
duration
,
i
.
easing
,
s
)
:
r
.
queue
(
function
(
n
){
e
(
this
)[
t
](),
s
&&
s
.
call
(
r
[
0
]),
n
()})}}),
e
.
uiBackCompat
!==!
1
&&
(
e
.
Widget
.
prototype
.
_getCreateOptions
=
function
(){
return
e
.
metadata
&&
e
.
metadata
.
get
(
this
.
element
[
0
])[
this
.
widgetName
]})})(
jQuery
);(
function
(
e
,
t
){
var
n
=!
1
;
e
(
document
).
mouseup
(
function
(
e
){
n
=!
1
}),
e
.
widget
(
"ui.mouse"
,{
version
:
"1.9.1"
,
options
:
{
cancel
:
"input,textarea,button,select,option"
,
distance
:
1
,
delay
:
0
},
_mouseInit
:
function
(){
var
t
=
this
;
this
.
element
.
bind
(
"mousedown."
+
this
.
widgetName
,
function
(
e
){
return
t
.
_mouseDown
(
e
)}).
bind
(
"click."
+
this
.
widgetName
,
function
(
n
){
if
(
!
0
===
e
.
data
(
n
.
target
,
t
.
widgetName
+
".preventClickEvent"
))
return
e
.
removeData
(
n
.
target
,
t
.
widgetName
+
".preventClickEvent"
),
n
.
stopImmediatePropagation
(),
!
1
}),
this
.
started
=!
1
},
_mouseDestroy
:
function
(){
this
.
element
.
unbind
(
"."
+
this
.
widgetName
),
this
.
_mouseMoveDelegate
&&
e
(
document
).
unbind
(
"mousemove."
+
this
.
widgetName
,
this
.
_mouseMoveDelegate
).
unbind
(
"mouseup."
+
this
.
widgetName
,
this
.
_mouseUpDelegate
)},
_mouseDown
:
function
(
t
){
if
(
n
)
return
;
this
.
_mouseStarted
&&
this
.
_mouseUp
(
t
),
this
.
_mouseDownEvent
=
t
;
var
r
=
this
,
i
=
t
.
which
===
1
,
s
=
typeof
this
.
options
.
cancel
==
"string"
&&
t
.
target
.
nodeName
?
e
(
t
.
target
).
closest
(
this
.
options
.
cancel
).
length
:!
1
;
if
(
!
i
||
s
||!
this
.
_mouseCapture
(
t
))
return
!
0
;
this
.
mouseDelayMet
=!
this
.
options
.
delay
,
this
.
mouseDelayMet
||
(
this
.
_mouseDelayTimer
=
setTimeout
(
function
(){
r
.
mouseDelayMet
=!
0
},
this
.
options
.
delay
));
if
(
this
.
_mouseDistanceMet
(
t
)
&&
this
.
_mouseDelayMet
(
t
)){
this
.
_mouseStarted
=
this
.
_mouseStart
(
t
)
!==!
1
;
if
(
!
this
.
_mouseStarted
)
return
t
.
preventDefault
(),
!
0
}
return
!
0
===
e
.
data
(
t
.
target
,
this
.
widgetName
+
".preventClickEvent"
)
&&
e
.
removeData
(
t
.
target
,
this
.
widgetName
+
".preventClickEvent"
),
this
.
_mouseMoveDelegate
=
function
(
e
){
return
r
.
_mouseMove
(
e
)},
this
.
_mouseUpDelegate
=
function
(
e
){
return
r
.
_mouseUp
(
e
)},
e
(
document
).
bind
(
"mousemove."
+
this
.
widgetName
,
this
.
_mouseMoveDelegate
).
bind
(
"mouseup."
+
this
.
widgetName
,
this
.
_mouseUpDelegate
),
t
.
preventDefault
(),
n
=!
0
,
!
0
},
_mouseMove
:
function
(
t
){
return
!
e
.
ui
.
ie
||
document
.
documentMode
>=
9
||!!
t
.
button
?
this
.
_mouseStarted
?
(
this
.
_mouseDrag
(
t
),
t
.
preventDefault
())
:
(
this
.
_mouseDistanceMet
(
t
)
&&
this
.
_mouseDelayMet
(
t
)
&&
(
this
.
_mouseStarted
=
this
.
_mouseStart
(
this
.
_mouseDownEvent
,
t
)
!==!
1
,
this
.
_mouseStarted
?
this
.
_mouseDrag
(
t
)
:
this
.
_mouseUp
(
t
)),
!
this
.
_mouseStarted
)
:
this
.
_mouseUp
(
t
)},
_mouseUp
:
function
(
t
){
return
e
(
document
).
unbind
(
"mousemove."
+
this
.
widgetName
,
this
.
_mouseMoveDelegate
).
unbind
(
"mouseup."
+
this
.
widgetName
,
this
.
_mouseUpDelegate
),
this
.
_mouseStarted
&&
(
this
.
_mouseStarted
=!
1
,
t
.
target
===
this
.
_mouseDownEvent
.
target
&&
e
.
data
(
t
.
target
,
this
.
widgetName
+
".preventClickEvent"
,
!
0
),
this
.
_mouseStop
(
t
)),
!
1
},
_mouseDistanceMet
:
function
(
e
){
return
Math
.
max
(
Math
.
abs
(
this
.
_mouseDownEvent
.
pageX
-
e
.
pageX
),
Math
.
abs
(
this
.
_mouseDownEvent
.
pageY
-
e
.
pageY
))
>=
this
.
options
.
distance
},
_mouseDelayMet
:
function
(
e
){
return
this
.
mouseDelayMet
},
_mouseStart
:
function
(
e
){},
_mouseDrag
:
function
(
e
){},
_mouseStop
:
function
(
e
){},
_mouseCapture
:
function
(
e
){
return
!
0
}})})(
jQuery
);(
function
(
e
,
t
){
function
h
(
e
,
t
,
n
){
return
[
parseInt
(
e
[
0
],
10
)
*
(
l
.
test
(
e
[
0
])
?
t
/
100
:
1
),
parseInt
(
e
[
1
],
10
)
*
(
l
.
test
(
e
[
1
])
?
n
/
100
:
1
)]}
function
p
(
t
,
n
){
return
parseInt
(
e
.
css
(
t
,
n
),
10
)
||
0
}
e
.
ui
=
e
.
ui
||
{};
var
n
,
r
=
Math
.
max
,
i
=
Math
.
abs
,
s
=
Math
.
round
,
o
=
/left|center|right/
,
u
=
/top|center|bottom/
,
a
=
/[\+\-]\d+%?/
,
f
=
/^\w+/
,
l
=
/%$/
,
c
=
e
.
fn
.
position
;
e
.
position
=
{
scrollbarWidth
:
function
(){
if
(
n
!==
t
)
return
n
;
var
r
,
i
,
s
=
e
(
"<div style='display:block;width:50px;height:50px;overflow:hidden;'><div style='height:100px;width:auto;'></div></div>"
),
o
=
s
.
children
()[
0
];
return
e
(
"body"
).
append
(
s
),
r
=
o
.
offsetWidth
,
s
.
css
(
"overflow"
,
"scroll"
),
i
=
o
.
offsetWidth
,
r
===
i
&&
(
i
=
s
[
0
].
clientWidth
),
s
.
remove
(),
n
=
r
-
i
},
getScrollInfo
:
function
(
t
){
var
n
=
t
.
isWindow
?
""
:
t
.
element
.
css
(
"overflow-x"
),
r
=
t
.
isWindow
?
""
:
t
.
element
.
css
(
"overflow-y"
),
i
=
n
===
"scroll"
||
n
===
"auto"
&&
t
.
width
<
t
.
element
[
0
].
scrollWidth
,
s
=
r
===
"scroll"
||
r
===
"auto"
&&
t
.
height
<
t
.
element
[
0
].
scrollHeight
;
return
{
width
:
i
?
e
.
position
.
scrollbarWidth
()
:
0
,
height
:
s
?
e
.
position
.
scrollbarWidth
()
:
0
}},
getWithinInfo
:
function
(
t
){
var
n
=
e
(
t
||
window
),
r
=
e
.
isWindow
(
n
[
0
]);
return
{
element
:
n
,
isWindow
:
r
,
offset
:
n
.
offset
()
||
{
left
:
0
,
top
:
0
},
scrollLeft
:
n
.
scrollLeft
(),
scrollTop
:
n
.
scrollTop
(),
width
:
r
?
n
.
width
()
:
n
.
outerWidth
(),
height
:
r
?
n
.
height
()
:
n
.
outerHeight
()}}},
e
.
fn
.
position
=
function
(
t
){
if
(
!
t
||!
t
.
of
)
return
c
.
apply
(
this
,
arguments
);
t
=
e
.
extend
({},
t
);
var
n
,
l
,
d
,
v
,
m
,
g
=
e
(
t
.
of
),
y
=
e
.
position
.
getWithinInfo
(
t
.
within
),
b
=
e
.
position
.
getScrollInfo
(
y
),
w
=
g
[
0
],
E
=
(
t
.
collision
||
"flip"
).
split
(
" "
),
S
=
{};
return
w
.
nodeType
===
9
?
(
l
=
g
.
width
(),
d
=
g
.
height
(),
v
=
{
top
:
0
,
left
:
0
})
:
e
.
isWindow
(
w
)
?
(
l
=
g
.
width
(),
d
=
g
.
height
(),
v
=
{
top
:
g
.
scrollTop
(),
left
:
g
.
scrollLeft
()})
:
w
.
preventDefault
?
(
t
.
at
=
"left top"
,
l
=
d
=
0
,
v
=
{
top
:
w
.
pageY
,
left
:
w
.
pageX
})
:
(
l
=
g
.
outerWidth
(),
d
=
g
.
outerHeight
(),
v
=
g
.
offset
()),
m
=
e
.
extend
({},
v
),
e
.
each
([
"my"
,
"at"
],
function
(){
var
e
=
(
t
[
this
]
||
""
).
split
(
" "
),
n
,
r
;
e
.
length
===
1
&&
(
e
=
o
.
test
(
e
[
0
])
?
e
.
concat
([
"center"
])
:
u
.
test
(
e
[
0
])
?
[
"center"
].
concat
(
e
)
:
[
"center"
,
"center"
]),
e
[
0
]
=
o
.
test
(
e
[
0
])
?
e
[
0
]
:
"center"
,
e
[
1
]
=
u
.
test
(
e
[
1
])
?
e
[
1
]
:
"center"
,
n
=
a
.
exec
(
e
[
0
]),
r
=
a
.
exec
(
e
[
1
]),
S
[
this
]
=
[
n
?
n
[
0
]
:
0
,
r
?
r
[
0
]
:
0
],
t
[
this
]
=
[
f
.
exec
(
e
[
0
])[
0
],
f
.
exec
(
e
[
1
])[
0
]]}),
E
.
length
===
1
&&
(
E
[
1
]
=
E
[
0
]),
t
.
at
[
0
]
===
"right"
?
m
.
left
+=
l
:
t
.
at
[
0
]
===
"center"
&&
(
m
.
left
+=
l
/
2
),
t
.
at
[
1
]
===
"bottom"
?
m
.
top
+=
d
:
t
.
at
[
1
]
===
"center"
&&
(
m
.
top
+=
d
/
2
),
n
=
h
(
S
.
at
,
l
,
d
),
m
.
left
+=
n
[
0
],
m
.
top
+=
n
[
1
],
this
.
each
(
function
(){
var
o
,
u
,
a
=
e
(
this
),
f
=
a
.
outerWidth
(),
c
=
a
.
outerHeight
(),
w
=
p
(
this
,
"marginLeft"
),
x
=
p
(
this
,
"marginTop"
),
T
=
f
+
w
+
p
(
this
,
"marginRight"
)
+
b
.
width
,
N
=
c
+
x
+
p
(
this
,
"marginBottom"
)
+
b
.
height
,
C
=
e
.
extend
({},
m
),
k
=
h
(
S
.
my
,
a
.
outerWidth
(),
a
.
outerHeight
());
t
.
my
[
0
]
===
"right"
?
C
.
left
-=
f
:
t
.
my
[
0
]
===
"center"
&&
(
C
.
left
-=
f
/
2
),
t
.
my
[
1
]
===
"bottom"
?
C
.
top
-=
c
:
t
.
my
[
1
]
===
"center"
&&
(
C
.
top
-=
c
/
2
),
C
.
left
+=
k
[
0
],
C
.
top
+=
k
[
1
],
e
.
support
.
offsetFractions
||
(
C
.
left
=
s
(
C
.
left
),
C
.
top
=
s
(
C
.
top
)),
o
=
{
marginLeft
:
w
,
marginTop
:
x
},
e
.
each
([
"left"
,
"top"
],
function
(
r
,
i
){
e
.
ui
.
position
[
E
[
r
]]
&&
e
.
ui
.
position
[
E
[
r
]][
i
](
C
,{
targetWidth
:
l
,
targetHeight
:
d
,
elemWidth
:
f
,
elemHeight
:
c
,
collisionPosition
:
o
,
collisionWidth
:
T
,
collisionHeight
:
N
,
offset
:
[
n
[
0
]
+
k
[
0
],
n
[
1
]
+
k
[
1
]],
my
:
t
.
my
,
at
:
t
.
at
,
within
:
y
,
elem
:
a
})}),
e
.
fn
.
bgiframe
&&
a
.
bgiframe
(),
t
.
using
&&
(
u
=
function
(
e
){
var
n
=
v
.
left
-
C
.
left
,
s
=
n
+
l
-
f
,
o
=
v
.
top
-
C
.
top
,
u
=
o
+
d
-
c
,
h
=
{
target
:
{
element
:
g
,
left
:
v
.
left
,
top
:
v
.
top
,
width
:
l
,
height
:
d
},
element
:
{
element
:
a
,
left
:
C
.
left
,
top
:
C
.
top
,
width
:
f
,
height
:
c
},
horizontal
:
s
<
0
?
"left"
:
n
>
0
?
"right"
:
"center"
,
vertical
:
u
<
0
?
"top"
:
o
>
0
?
"bottom"
:
"middle"
};
l
<
f
&&
i
(
n
+
s
)
<
l
&&
(
h
.
horizontal
=
"center"
),
d
<
c
&&
i
(
o
+
u
)
<
d
&&
(
h
.
vertical
=
"middle"
),
r
(
i
(
n
),
i
(
s
))
>
r
(
i
(
o
),
i
(
u
))
?
h
.
important
=
"horizontal"
:
h
.
important
=
"vertical"
,
t
.
using
.
call
(
this
,
e
,
h
)}),
a
.
offset
(
e
.
extend
(
C
,{
using
:
u
}))})},
e
.
ui
.
position
=
{
fit
:
{
left
:
function
(
e
,
t
){
var
n
=
t
.
within
,
i
=
n
.
isWindow
?
n
.
scrollLeft
:
n
.
offset
.
left
,
s
=
n
.
width
,
o
=
e
.
left
-
t
.
collisionPosition
.
marginLeft
,
u
=
i
-
o
,
a
=
o
+
t
.
collisionWidth
-
s
-
i
,
f
;
t
.
collisionWidth
>
s
?
u
>
0
&&
a
<=
0
?
(
f
=
e
.
left
+
u
+
t
.
collisionWidth
-
s
-
i
,
e
.
left
+=
u
-
f
)
:
a
>
0
&&
u
<=
0
?
e
.
left
=
i
:
u
>
a
?
e
.
left
=
i
+
s
-
t
.
collisionWidth
:
e
.
left
=
i
:
u
>
0
?
e
.
left
+=
u
:
a
>
0
?
e
.
left
-=
a
:
e
.
left
=
r
(
e
.
left
-
o
,
e
.
left
)},
top
:
function
(
e
,
t
){
var
n
=
t
.
within
,
i
=
n
.
isWindow
?
n
.
scrollTop
:
n
.
offset
.
top
,
s
=
t
.
within
.
height
,
o
=
e
.
top
-
t
.
collisionPosition
.
marginTop
,
u
=
i
-
o
,
a
=
o
+
t
.
collisionHeight
-
s
-
i
,
f
;
t
.
collisionHeight
>
s
?
u
>
0
&&
a
<=
0
?
(
f
=
e
.
top
+
u
+
t
.
collisionHeight
-
s
-
i
,
e
.
top
+=
u
-
f
)
:
a
>
0
&&
u
<=
0
?
e
.
top
=
i
:
u
>
a
?
e
.
top
=
i
+
s
-
t
.
collisionHeight
:
e
.
top
=
i
:
u
>
0
?
e
.
top
+=
u
:
a
>
0
?
e
.
top
-=
a
:
e
.
top
=
r
(
e
.
top
-
o
,
e
.
top
)}},
flip
:
{
left
:
function
(
e
,
t
){
var
n
=
t
.
within
,
r
=
n
.
offset
.
left
+
n
.
scrollLeft
,
s
=
n
.
width
,
o
=
n
.
isWindow
?
n
.
scrollLeft
:
n
.
offset
.
left
,
u
=
e
.
left
-
t
.
collisionPosition
.
marginLeft
,
a
=
u
-
o
,
f
=
u
+
t
.
collisionWidth
-
s
-
o
,
l
=
t
.
my
[
0
]
===
"left"
?-
t
.
elemWidth
:
t
.
my
[
0
]
===
"right"
?
t
.
elemWidth
:
0
,
c
=
t
.
at
[
0
]
===
"left"
?
t
.
targetWidth
:
t
.
at
[
0
]
===
"right"
?-
t
.
targetWidth
:
0
,
h
=-
2
*
t
.
offset
[
0
],
p
,
d
;
if
(
a
<
0
){
p
=
e
.
left
+
l
+
c
+
h
+
t
.
collisionWidth
-
s
-
r
;
if
(
p
<
0
||
p
<
i
(
a
))
e
.
left
+=
l
+
c
+
h
}
else
if
(
f
>
0
){
d
=
e
.
left
-
t
.
collisionPosition
.
marginLeft
+
l
+
c
+
h
-
o
;
if
(
d
>
0
||
i
(
d
)
<
f
)
e
.
left
+=
l
+
c
+
h
}},
top
:
function
(
e
,
t
){
var
n
=
t
.
within
,
r
=
n
.
offset
.
top
+
n
.
scrollTop
,
s
=
n
.
height
,
o
=
n
.
isWindow
?
n
.
scrollTop
:
n
.
offset
.
top
,
u
=
e
.
top
-
t
.
collisionPosition
.
marginTop
,
a
=
u
-
o
,
f
=
u
+
t
.
collisionHeight
-
s
-
o
,
l
=
t
.
my
[
1
]
===
"top"
,
c
=
l
?-
t
.
elemHeight
:
t
.
my
[
1
]
===
"bottom"
?
t
.
elemHeight
:
0
,
h
=
t
.
at
[
1
]
===
"top"
?
t
.
targetHeight
:
t
.
at
[
1
]
===
"bottom"
?-
t
.
targetHeight
:
0
,
p
=-
2
*
t
.
offset
[
1
],
d
,
v
;
a
<
0
?
(
v
=
e
.
top
+
c
+
h
+
p
+
t
.
collisionHeight
-
s
-
r
,
e
.
top
+
c
+
h
+
p
>
a
&&
(
v
<
0
||
v
<
i
(
a
))
&&
(
e
.
top
+=
c
+
h
+
p
))
:
f
>
0
&&
(
d
=
e
.
top
-
t
.
collisionPosition
.
marginTop
+
c
+
h
+
p
-
o
,
e
.
top
+
c
+
h
+
p
>
f
&&
(
d
>
0
||
i
(
d
)
<
f
)
&&
(
e
.
top
+=
c
+
h
+
p
))}},
flipfit
:
{
left
:
function
(){
e
.
ui
.
position
.
flip
.
left
.
apply
(
this
,
arguments
),
e
.
ui
.
position
.
fit
.
left
.
apply
(
this
,
arguments
)},
top
:
function
(){
e
.
ui
.
position
.
flip
.
top
.
apply
(
this
,
arguments
),
e
.
ui
.
position
.
fit
.
top
.
apply
(
this
,
arguments
)}}},
function
(){
var
t
,
n
,
r
,
i
,
s
,
o
=
document
.
getElementsByTagName
(
"body"
)[
0
],
u
=
document
.
createElement
(
"div"
);
t
=
document
.
createElement
(
o
?
"div"
:
"body"
),
r
=
{
visibility
:
"hidden"
,
width
:
0
,
height
:
0
,
border
:
0
,
margin
:
0
,
background
:
"none"
},
o
&&
e
.
extend
(
r
,{
position
:
"absolute"
,
left
:
"-1000px"
,
top
:
"-1000px"
});
for
(
s
in
r
)
t
.
style
[
s
]
=
r
[
s
];
t
.
appendChild
(
u
),
n
=
o
||
document
.
documentElement
,
n
.
insertBefore
(
t
,
n
.
firstChild
),
u
.
style
.
cssText
=
"position: absolute; left: 10.7432222px;"
,
i
=
e
(
u
).
offset
().
left
,
e
.
support
.
offsetFractions
=
i
>
10
&&
i
<
11
,
t
.
innerHTML
=
""
,
n
.
removeChild
(
t
)}(),
e
.
uiBackCompat
!==!
1
&&
function
(
e
){
var
n
=
e
.
fn
.
position
;
e
.
fn
.
position
=
function
(
r
){
if
(
!
r
||!
r
.
offset
)
return
n
.
call
(
this
,
r
);
var
i
=
r
.
offset
.
split
(
" "
),
s
=
r
.
at
.
split
(
" "
);
return
i
.
length
===
1
&&
(
i
[
1
]
=
i
[
0
]),
/^\d/
.
test
(
i
[
0
])
&&
(
i
[
0
]
=
"+"
+
i
[
0
]),
/^\d/
.
test
(
i
[
1
])
&&
(
i
[
1
]
=
"+"
+
i
[
1
]),
s
.
length
===
1
&&
(
/left|center|right/
.
test
(
s
[
0
])
?
s
[
1
]
=
"center"
:
(
s
[
1
]
=
s
[
0
],
s
[
0
]
=
"center"
)),
n
.
call
(
this
,
e
.
extend
(
r
,{
at
:
s
[
0
]
+
i
[
0
]
+
" "
+
s
[
1
]
+
i
[
1
],
offset
:
t
}))}}(
jQuery
)})(
jQuery
);(
function
(
e
,
t
){
var
n
=
0
,
r
=
{},
i
=
{};
r
.
height
=
r
.
paddingTop
=
r
.
paddingBottom
=
r
.
borderTopWidth
=
r
.
borderBottomWidth
=
"hide"
,
i
.
height
=
i
.
paddingTop
=
i
.
paddingBottom
=
i
.
borderTopWidth
=
i
.
borderBottomWidth
=
"show"
,
e
.
widget
(
"ui.accordion"
,{
version
:
"1.9.1"
,
options
:
{
active
:
0
,
animate
:
{},
collapsible
:!
1
,
event
:
"click"
,
header
:
"> li > :first-child,> :not(li):even"
,
heightStyle
:
"auto"
,
icons
:
{
activeHeader
:
"ui-icon-triangle-1-s"
,
header
:
"ui-icon-triangle-1-e"
},
activate
:
null
,
beforeActivate
:
null
},
_create
:
function
(){
var
t
=
this
.
accordionId
=
"ui-accordion-"
+
(
this
.
element
.
attr
(
"id"
)
||++
n
),
r
=
this
.
options
;
this
.
prevShow
=
this
.
prevHide
=
e
(),
this
.
element
.
addClass
(
"ui-accordion ui-widget ui-helper-reset"
),
this
.
headers
=
this
.
element
.
find
(
r
.
header
).
addClass
(
"ui-accordion-header ui-helper-reset ui-state-default ui-corner-all"
),
this
.
_hoverable
(
this
.
headers
),
this
.
_focusable
(
this
.
headers
),
this
.
headers
.
next
().
addClass
(
"ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom"
).
hide
(),
!
r
.
collapsible
&&
(
r
.
active
===!
1
||
r
.
active
==
null
)
&&
(
r
.
active
=
0
),
r
.
active
<
0
&&
(
r
.
active
+=
this
.
headers
.
length
),
this
.
active
=
this
.
_findActive
(
r
.
active
).
addClass
(
"ui-accordion-header-active ui-state-active"
).
toggleClass
(
"ui-corner-all ui-corner-top"
),
this
.
active
.
next
().
addClass
(
"ui-accordion-content-active"
).
show
(),
this
.
_createIcons
(),
this
.
refresh
(),
this
.
element
.
attr
(
"role"
,
"tablist"
),
this
.
headers
.
attr
(
"role"
,
"tab"
).
each
(
function
(
n
){
var
r
=
e
(
this
),
i
=
r
.
attr
(
"id"
),
s
=
r
.
next
(),
o
=
s
.
attr
(
"id"
);
i
||
(
i
=
t
+
"-header-"
+
n
,
r
.
attr
(
"id"
,
i
)),
o
||
(
o
=
t
+
"-panel-"
+
n
,
s
.
attr
(
"id"
,
o
)),
r
.
attr
(
"aria-controls"
,
o
),
s
.
attr
(
"aria-labelledby"
,
i
)}).
next
().
attr
(
"role"
,
"tabpanel"
),
this
.
headers
.
not
(
this
.
active
).
attr
({
"aria-selected"
:
"false"
,
tabIndex
:-
1
}).
next
().
attr
({
"aria-expanded"
:
"false"
,
"aria-hidden"
:
"true"
}).
hide
(),
this
.
active
.
length
?
this
.
active
.
attr
({
"aria-selected"
:
"true"
,
tabIndex
:
0
}).
next
().
attr
({
"aria-expanded"
:
"true"
,
"aria-hidden"
:
"false"
})
:
this
.
headers
.
eq
(
0
).
attr
(
"tabIndex"
,
0
),
this
.
_on
(
this
.
headers
,{
keydown
:
"_keydown"
}),
this
.
_on
(
this
.
headers
.
next
(),{
keydown
:
"_panelKeyDown"
}),
this
.
_setupEvents
(
r
.
event
)},
_getCreateEventData
:
function
(){
return
{
header
:
this
.
active
,
content
:
this
.
active
.
length
?
this
.
active
.
next
()
:
e
()}},
_createIcons
:
function
(){
var
t
=
this
.
options
.
icons
;
t
&&
(
e
(
"<span>"
).
addClass
(
"ui-accordion-header-icon ui-icon "
+
t
.
header
).
prependTo
(
this
.
headers
),
this
.
active
.
children
(
".ui-accordion-header-icon"
).
removeClass
(
t
.
header
).
addClass
(
t
.
activeHeader
),
this
.
headers
.
addClass
(
"ui-accordion-icons"
))},
_destroyIcons
:
function
(){
this
.
headers
.
removeClass
(
"ui-accordion-icons"
).
children
(
".ui-accordion-header-icon"
).
remove
()},
_destroy
:
function
(){
var
e
;
this
.
element
.
removeClass
(
"ui-accordion ui-widget ui-helper-reset"
).
removeAttr
(
"role"
),
this
.
headers
.
removeClass
(
"ui-accordion-header ui-accordion-header-active ui-helper-reset ui-state-default ui-corner-all ui-state-active ui-state-disabled ui-corner-top"
).
removeAttr
(
"role"
).
removeAttr
(
"aria-selected"
).
removeAttr
(
"aria-controls"
).
removeAttr
(
"tabIndex"
).
each
(
function
(){
/^ui-accordion/
.
test
(
this
.
id
)
&&
this
.
removeAttribute
(
"id"
)}),
this
.
_destroyIcons
(),
e
=
this
.
headers
.
next
().
css
(
"display"
,
""
).
removeAttr
(
"role"
).
removeAttr
(
"aria-expanded"
).
removeAttr
(
"aria-hidden"
).
removeAttr
(
"aria-labelledby"
).
removeClass
(
"ui-helper-reset ui-widget-content ui-corner-bottom ui-accordion-content ui-accordion-content-active ui-state-disabled"
).
each
(
function
(){
/^ui-accordion/
.
test
(
this
.
id
)
&&
this
.
removeAttribute
(
"id"
)}),
this
.
options
.
heightStyle
!==
"content"
&&
e
.
css
(
"height"
,
""
)},
_setOption
:
function
(
e
,
t
){
if
(
e
===
"active"
){
this
.
_activate
(
t
);
return
}
e
===
"event"
&&
(
this
.
options
.
event
&&
this
.
_off
(
this
.
headers
,
this
.
options
.
event
),
this
.
_setupEvents
(
t
)),
this
.
_super
(
e
,
t
),
e
===
"collapsible"
&&!
t
&&
this
.
options
.
active
===!
1
&&
this
.
_activate
(
0
),
e
===
"icons"
&&
(
this
.
_destroyIcons
(),
t
&&
this
.
_createIcons
()),
e
===
"disabled"
&&
this
.
headers
.
add
(
this
.
headers
.
next
()).
toggleClass
(
"ui-state-disabled"
,
!!
t
)},
_keydown
:
function
(
t
){
if
(
t
.
altKey
||
t
.
ctrlKey
)
return
;
var
n
=
e
.
ui
.
keyCode
,
r
=
this
.
headers
.
length
,
i
=
this
.
headers
.
index
(
t
.
target
),
s
=!
1
;
switch
(
t
.
keyCode
){
case
n
.
RIGHT
:
case
n
.
DOWN
:
s
=
this
.
headers
[(
i
+
1
)
%
r
];
break
;
case
n
.
LEFT
:
case
n
.
UP
:
s
=
this
.
headers
[(
i
-
1
+
r
)
%
r
];
break
;
case
n
.
SPACE
:
case
n
.
ENTER
:
this
.
_eventHandler
(
t
);
break
;
case
n
.
HOME
:
s
=
this
.
headers
[
0
];
break
;
case
n
.
END
:
s
=
this
.
headers
[
r
-
1
]}
s
&&
(
e
(
t
.
target
).
attr
(
"tabIndex"
,
-
1
),
e
(
s
).
attr
(
"tabIndex"
,
0
),
s
.
focus
(),
t
.
preventDefault
())},
_panelKeyDown
:
function
(
t
){
t
.
keyCode
===
e
.
ui
.
keyCode
.
UP
&&
t
.
ctrlKey
&&
e
(
t
.
currentTarget
).
prev
().
focus
()},
refresh
:
function
(){
var
t
,
n
,
r
=
this
.
options
.
heightStyle
,
i
=
this
.
element
.
parent
();
r
===
"fill"
?
(
e
.
support
.
minHeight
||
(
n
=
i
.
css
(
"overflow"
),
i
.
css
(
"overflow"
,
"hidden"
)),
t
=
i
.
height
(),
this
.
element
.
siblings
(
":visible"
).
each
(
function
(){
var
n
=
e
(
this
),
r
=
n
.
css
(
"position"
);
if
(
r
===
"absolute"
||
r
===
"fixed"
)
return
;
t
-=
n
.
outerHeight
(
!
0
)}),
n
&&
i
.
css
(
"overflow"
,
n
),
this
.
headers
.
each
(
function
(){
t
-=
e
(
this
).
outerHeight
(
!
0
)}),
this
.
headers
.
next
().
each
(
function
(){
e
(
this
).
height
(
Math
.
max
(
0
,
t
-
e
(
this
).
innerHeight
()
+
e
(
this
).
height
()))}).
css
(
"overflow"
,
"auto"
))
:
r
===
"auto"
&&
(
t
=
0
,
this
.
headers
.
next
().
each
(
function
(){
t
=
Math
.
max
(
t
,
e
(
this
).
height
(
""
).
height
())}).
height
(
t
))},
_activate
:
function
(
t
){
var
n
=
this
.
_findActive
(
t
)[
0
];
if
(
n
===
this
.
active
[
0
])
return
;
n
=
n
||
this
.
active
[
0
],
this
.
_eventHandler
({
target
:
n
,
currentTarget
:
n
,
preventDefault
:
e
.
noop
})},
_findActive
:
function
(
t
){
return
typeof
t
==
"number"
?
this
.
headers
.
eq
(
t
)
:
e
()},
_setupEvents
:
function
(
t
){
var
n
=
{};
if
(
!
t
)
return
;
e
.
each
(
t
.
split
(
" "
),
function
(
e
,
t
){
n
[
t
]
=
"_eventHandler"
}),
this
.
_on
(
this
.
headers
,
n
)},
_eventHandler
:
function
(
t
){
var
n
=
this
.
options
,
r
=
this
.
active
,
i
=
e
(
t
.
currentTarget
),
s
=
i
[
0
]
===
r
[
0
],
o
=
s
&&
n
.
collapsible
,
u
=
o
?
e
()
:
i
.
next
(),
a
=
r
.
next
(),
f
=
{
oldHeader
:
r
,
oldPanel
:
a
,
newHeader
:
o
?
e
()
:
i
,
newPanel
:
u
};
t
.
preventDefault
();
if
(
s
&&!
n
.
collapsible
||
this
.
_trigger
(
"beforeActivate"
,
t
,
f
)
===!
1
)
return
;
n
.
active
=
o
?!
1
:
this
.
headers
.
index
(
i
),
this
.
active
=
s
?
e
()
:
i
,
this
.
_toggle
(
f
),
r
.
removeClass
(
"ui-accordion-header-active ui-state-active"
),
n
.
icons
&&
r
.
children
(
".ui-accordion-header-icon"
).
removeClass
(
n
.
icons
.
activeHeader
).
addClass
(
n
.
icons
.
header
),
s
||
(
i
.
removeClass
(
"ui-corner-all"
).
addClass
(
"ui-accordion-header-active ui-state-active ui-corner-top"
),
n
.
icons
&&
i
.
children
(
".ui-accordion-header-icon"
).
removeClass
(
n
.
icons
.
header
).
addClass
(
n
.
icons
.
activeHeader
),
i
.
next
().
addClass
(
"ui-accordion-content-active"
))},
_toggle
:
function
(
t
){
var
n
=
t
.
newPanel
,
r
=
this
.
prevShow
.
length
?
this
.
prevShow
:
t
.
oldPanel
;
this
.
prevShow
.
add
(
this
.
prevHide
).
stop
(
!
0
,
!
0
),
this
.
prevShow
=
n
,
this
.
prevHide
=
r
,
this
.
options
.
animate
?
this
.
_animate
(
n
,
r
,
t
)
:
(
r
.
hide
(),
n
.
show
(),
this
.
_toggleComplete
(
t
)),
r
.
attr
({
"aria-expanded"
:
"false"
,
"aria-hidden"
:
"true"
}),
r
.
prev
().
attr
(
"aria-selected"
,
"false"
),
n
.
length
&&
r
.
length
?
r
.
prev
().
attr
(
"tabIndex"
,
-
1
)
:
n
.
length
&&
this
.
headers
.
filter
(
function
(){
return
e
(
this
).
attr
(
"tabIndex"
)
===
0
}).
attr
(
"tabIndex"
,
-
1
),
n
.
attr
({
"aria-expanded"
:
"true"
,
"aria-hidden"
:
"false"
}).
prev
().
attr
({
"aria-selected"
:
"true"
,
tabIndex
:
0
})},
_animate
:
function
(
e
,
t
,
n
){
var
s
,
o
,
u
,
a
=
this
,
f
=
0
,
l
=
e
.
length
&&
(
!
t
.
length
||
e
.
index
()
<
t
.
index
()),
c
=
this
.
options
.
animate
||
{},
h
=
l
&&
c
.
down
||
c
,
p
=
function
(){
a
.
_toggleComplete
(
n
)};
typeof
h
==
"number"
&&
(
u
=
h
),
typeof
h
==
"string"
&&
(
o
=
h
),
o
=
o
||
h
.
easing
||
c
.
easing
,
u
=
u
||
h
.
duration
||
c
.
duration
;
if
(
!
t
.
length
)
return
e
.
animate
(
i
,
u
,
o
,
p
);
if
(
!
e
.
length
)
return
t
.
animate
(
r
,
u
,
o
,
p
);
s
=
e
.
show
().
outerHeight
(),
t
.
animate
(
r
,{
duration
:
u
,
easing
:
o
,
step
:
function
(
e
,
t
){
t
.
now
=
Math
.
round
(
e
)}}),
e
.
hide
().
animate
(
i
,{
duration
:
u
,
easing
:
o
,
complete
:
p
,
step
:
function
(
e
,
n
){
n
.
now
=
Math
.
round
(
e
),
n
.
prop
!==
"height"
?
f
+=
n
.
now
:
a
.
options
.
heightStyle
!==
"content"
&&
(
n
.
now
=
Math
.
round
(
s
-
t
.
outerHeight
()
-
f
),
f
=
0
)}})},
_toggleComplete
:
function
(
e
){
var
t
=
e
.
oldPanel
;
t
.
removeClass
(
"ui-accordion-content-active"
).
prev
().
removeClass
(
"ui-corner-top"
).
addClass
(
"ui-corner-all"
),
t
.
length
&&
(
t
.
parent
()[
0
].
className
=
t
.
parent
()[
0
].
className
),
this
.
_trigger
(
"activate"
,
null
,
e
)}}),
e
.
uiBackCompat
!==!
1
&&
(
function
(
e
,
t
){
e
.
extend
(
t
.
options
,{
navigation
:!
1
,
navigationFilter
:
function
(){
return
this
.
href
.
toLowerCase
()
===
location
.
href
.
toLowerCase
()}});
var
n
=
t
.
_create
;
t
.
_create
=
function
(){
if
(
this
.
options
.
navigation
){
var
t
=
this
,
r
=
this
.
element
.
find
(
this
.
options
.
header
),
i
=
r
.
next
(),
s
=
r
.
add
(
i
).
find
(
"a"
).
filter
(
this
.
options
.
navigationFilter
)[
0
];
s
&&
r
.
add
(
i
).
each
(
function
(
n
){
if
(
e
.
contains
(
this
,
s
))
return
t
.
options
.
active
=
Math
.
floor
(
n
/
2
),
!
1
})}
n
.
call
(
this
)}}(
jQuery
,
jQuery
.
ui
.
accordion
.
prototype
),
function
(
e
,
t
){
e
.
extend
(
t
.
options
,{
heightStyle
:
null
,
autoHeight
:!
0
,
clearStyle
:!
1
,
fillSpace
:!
1
});
var
n
=
t
.
_create
,
r
=
t
.
_setOption
;
e
.
extend
(
t
,{
_create
:
function
(){
this
.
options
.
heightStyle
=
this
.
options
.
heightStyle
||
this
.
_mergeHeightStyle
(),
n
.
call
(
this
)},
_setOption
:
function
(
e
){
if
(
e
===
"autoHeight"
||
e
===
"clearStyle"
||
e
===
"fillSpace"
)
this
.
options
.
heightStyle
=
this
.
_mergeHeightStyle
();
r
.
apply
(
this
,
arguments
)},
_mergeHeightStyle
:
function
(){
var
e
=
this
.
options
;
if
(
e
.
fillSpace
)
return
"fill"
;
if
(
e
.
clearStyle
)
return
"content"
;
if
(
e
.
autoHeight
)
return
"auto"
}})}(
jQuery
,
jQuery
.
ui
.
accordion
.
prototype
),
function
(
e
,
t
){
e
.
extend
(
t
.
options
.
icons
,{
activeHeader
:
null
,
headerSelected
:
"ui-icon-triangle-1-s"
});
var
n
=
t
.
_createIcons
;
t
.
_createIcons
=
function
(){
this
.
options
.
icons
&&
(
this
.
options
.
icons
.
activeHeader
=
this
.
options
.
icons
.
activeHeader
||
this
.
options
.
icons
.
headerSelected
),
n
.
call
(
this
)}}(
jQuery
,
jQuery
.
ui
.
accordion
.
prototype
),
function
(
e
,
t
){
t
.
activate
=
t
.
_activate
;
var
n
=
t
.
_findActive
;
t
.
_findActive
=
function
(
e
){
return
e
===-
1
&&
(
e
=!
1
),
e
&&
typeof
e
!=
"number"
&&
(
e
=
this
.
headers
.
index
(
this
.
headers
.
filter
(
e
)),
e
===-
1
&&
(
e
=!
1
)),
n
.
call
(
this
,
e
)}}(
jQuery
,
jQuery
.
ui
.
accordion
.
prototype
),
jQuery
.
ui
.
accordion
.
prototype
.
resize
=
jQuery
.
ui
.
accordion
.
prototype
.
refresh
,
function
(
e
,
t
){
e
.
extend
(
t
.
options
,{
change
:
null
,
changestart
:
null
});
var
n
=
t
.
_trigger
;
t
.
_trigger
=
function
(
e
,
t
,
r
){
var
i
=
n
.
apply
(
this
,
arguments
);
return
i
?
(
e
===
"beforeActivate"
?
i
=
n
.
call
(
this
,
"changestart"
,
t
,{
oldHeader
:
r
.
oldHeader
,
oldContent
:
r
.
oldPanel
,
newHeader
:
r
.
newHeader
,
newContent
:
r
.
newPanel
})
:
e
===
"activate"
&&
(
i
=
n
.
call
(
this
,
"change"
,
t
,{
oldHeader
:
r
.
oldHeader
,
oldContent
:
r
.
oldPanel
,
newHeader
:
r
.
newHeader
,
newContent
:
r
.
newPanel
})),
i
)
:!
1
}}(
jQuery
,
jQuery
.
ui
.
accordion
.
prototype
),
function
(
e
,
t
){
e
.
extend
(
t
.
options
,{
animate
:
null
,
animated
:
"slide"
});
var
n
=
t
.
_create
;
t
.
_create
=
function
(){
var
e
=
this
.
options
;
e
.
animate
===
null
&&
(
e
.
animated
?
e
.
animated
===
"slide"
?
e
.
animate
=
300
:
e
.
animated
===
"bounceslide"
?
e
.
animate
=
{
duration
:
200
,
down
:
{
easing
:
"easeOutBounce"
,
duration
:
1e3
}}
:
e
.
animate
=
e
.
animated
:
e
.
animate
=!
1
),
n
.
call
(
this
)}}(
jQuery
,
jQuery
.
ui
.
accordion
.
prototype
))})(
jQuery
);(
function
(
e
,
t
){
var
n
=
0
;
e
.
widget
(
"ui.autocomplete"
,{
version
:
"1.9.1"
,
defaultElement
:
"<input>"
,
options
:
{
appendTo
:
"body"
,
autoFocus
:!
1
,
delay
:
300
,
minLength
:
1
,
position
:
{
my
:
"left top"
,
at
:
"left bottom"
,
collision
:
"none"
},
source
:
null
,
change
:
null
,
close
:
null
,
focus
:
null
,
open
:
null
,
response
:
null
,
search
:
null
,
select
:
null
},
pending
:
0
,
_create
:
function
(){
var
t
,
n
,
r
;
this
.
isMultiLine
=
this
.
_isMultiLine
(),
this
.
valueMethod
=
this
.
element
[
this
.
element
.
is
(
"input,textarea"
)
?
"val"
:
"text"
],
this
.
isNewMenu
=!
0
,
this
.
element
.
addClass
(
"ui-autocomplete-input"
).
attr
(
"autocomplete"
,
"off"
),
this
.
_on
(
this
.
element
,{
keydown
:
function
(
i
){
if
(
this
.
element
.
prop
(
"readOnly"
)){
t
=!
0
,
r
=!
0
,
n
=!
0
;
return
}
t
=!
1
,
r
=!
1
,
n
=!
1
;
var
s
=
e
.
ui
.
keyCode
;
switch
(
i
.
keyCode
){
case
s
.
PAGE_UP
:
t
=!
0
,
this
.
_move
(
"previousPage"
,
i
);
break
;
case
s
.
PAGE_DOWN
:
t
=!
0
,
this
.
_move
(
"nextPage"
,
i
);
break
;
case
s
.
UP
:
t
=!
0
,
this
.
_keyEvent
(
"previous"
,
i
);
break
;
case
s
.
DOWN
:
t
=!
0
,
this
.
_keyEvent
(
"next"
,
i
);
break
;
case
s
.
ENTER
:
case
s
.
NUMPAD_ENTER
:
this
.
menu
.
active
&&
(
t
=!
0
,
i
.
preventDefault
(),
this
.
menu
.
select
(
i
));
break
;
case
s
.
TAB
:
this
.
menu
.
active
&&
this
.
menu
.
select
(
i
);
break
;
case
s
.
ESCAPE
:
this
.
menu
.
element
.
is
(
":visible"
)
&&
(
this
.
_value
(
this
.
term
),
this
.
close
(
i
),
i
.
preventDefault
());
break
;
default
:
n
=!
0
,
this
.
_searchTimeout
(
i
)}},
keypress
:
function
(
r
){
if
(
t
){
t
=!
1
,
r
.
preventDefault
();
return
}
if
(
n
)
return
;
var
i
=
e
.
ui
.
keyCode
;
switch
(
r
.
keyCode
){
case
i
.
PAGE_UP
:
this
.
_move
(
"previousPage"
,
r
);
break
;
case
i
.
PAGE_DOWN
:
this
.
_move
(
"nextPage"
,
r
);
break
;
case
i
.
UP
:
this
.
_keyEvent
(
"previous"
,
r
);
break
;
case
i
.
DOWN
:
this
.
_keyEvent
(
"next"
,
r
)}},
input
:
function
(
e
){
if
(
r
){
r
=!
1
,
e
.
preventDefault
();
return
}
this
.
_searchTimeout
(
e
)},
focus
:
function
(){
this
.
selectedItem
=
null
,
this
.
previous
=
this
.
_value
()},
blur
:
function
(
e
){
if
(
this
.
cancelBlur
){
delete
this
.
cancelBlur
;
return
}
clearTimeout
(
this
.
searching
),
this
.
close
(
e
),
this
.
_change
(
e
)}}),
this
.
_initSource
(),
this
.
menu
=
e
(
"<ul>"
).
addClass
(
"ui-autocomplete"
).
appendTo
(
this
.
document
.
find
(
this
.
options
.
appendTo
||
"body"
)[
0
]).
menu
({
input
:
e
(),
role
:
null
}).
zIndex
(
this
.
element
.
zIndex
()
+
1
).
hide
().
data
(
"menu"
),
this
.
_on
(
this
.
menu
.
element
,{
mousedown
:
function
(
t
){
t
.
preventDefault
(),
this
.
cancelBlur
=!
0
,
this
.
_delay
(
function
(){
delete
this
.
cancelBlur
});
var
n
=
this
.
menu
.
element
[
0
];
e
(
t
.
target
).
closest
(
".ui-menu-item"
).
length
||
this
.
_delay
(
function
(){
var
t
=
this
;
this
.
document
.
one
(
"mousedown"
,
function
(
r
){
r
.
target
!==
t
.
element
[
0
]
&&
r
.
target
!==
n
&&!
e
.
contains
(
n
,
r
.
target
)
&&
t
.
close
()})})},
menufocus
:
function
(
t
,
n
){
if
(
this
.
isNewMenu
){
this
.
isNewMenu
=!
1
;
if
(
t
.
originalEvent
&&
/^mouse/
.
test
(
t
.
originalEvent
.
type
)){
this
.
menu
.
blur
(),
this
.
document
.
one
(
"mousemove"
,
function
(){
e
(
t
.
target
).
trigger
(
t
.
originalEvent
)});
return
}}
var
r
=
n
.
item
.
data
(
"ui-autocomplete-item"
)
||
n
.
item
.
data
(
"item.autocomplete"
);
!
1
!==
this
.
_trigger
(
"focus"
,
t
,{
item
:
r
})
?
t
.
originalEvent
&&
/^key/
.
test
(
t
.
originalEvent
.
type
)
&&
this
.
_value
(
r
.
value
)
:
this
.
liveRegion
.
text
(
r
.
value
)},
menuselect
:
function
(
e
,
t
){
var
n
=
t
.
item
.
data
(
"ui-autocomplete-item"
)
||
t
.
item
.
data
(
"item.autocomplete"
),
r
=
this
.
previous
;
this
.
element
[
0
]
!==
this
.
document
[
0
].
activeElement
&&
(
this
.
element
.
focus
(),
this
.
previous
=
r
,
this
.
_delay
(
function
(){
this
.
previous
=
r
,
this
.
selectedItem
=
n
})),
!
1
!==
this
.
_trigger
(
"select"
,
e
,{
item
:
n
})
&&
this
.
_value
(
n
.
value
),
this
.
term
=
this
.
_value
(),
this
.
close
(
e
),
this
.
selectedItem
=
n
}}),
this
.
liveRegion
=
e
(
"<span>"
,{
role
:
"status"
,
"aria-live"
:
"polite"
}).
addClass
(
"ui-helper-hidden-accessible"
).
insertAfter
(
this
.
element
),
e
.
fn
.
bgiframe
&&
this
.
menu
.
element
.
bgiframe
(),
this
.
_on
(
this
.
window
,{
beforeunload
:
function
(){
this
.
element
.
removeAttr
(
"autocomplete"
)}})},
_destroy
:
function
(){
clearTimeout
(
this
.
searching
),
this
.
element
.
removeClass
(
"ui-autocomplete-input"
).
removeAttr
(
"autocomplete"
),
this
.
menu
.
element
.
remove
(),
this
.
liveRegion
.
remove
()},
_setOption
:
function
(
e
,
t
){
this
.
_super
(
e
,
t
),
e
===
"source"
&&
this
.
_initSource
(),
e
===
"appendTo"
&&
this
.
menu
.
element
.
appendTo
(
this
.
document
.
find
(
t
||
"body"
)[
0
]),
e
===
"disabled"
&&
t
&&
this
.
xhr
&&
this
.
xhr
.
abort
()},
_isMultiLine
:
function
(){
return
this
.
element
.
is
(
"textarea"
)
?!
0
:
this
.
element
.
is
(
"input"
)
?!
1
:
this
.
element
.
prop
(
"isContentEditable"
)},
_initSource
:
function
(){
var
t
,
n
,
r
=
this
;
e
.
isArray
(
this
.
options
.
source
)
?
(
t
=
this
.
options
.
source
,
this
.
source
=
function
(
n
,
r
){
r
(
e
.
ui
.
autocomplete
.
filter
(
t
,
n
.
term
))})
:
typeof
this
.
options
.
source
==
"string"
?
(
n
=
this
.
options
.
source
,
this
.
source
=
function
(
t
,
i
){
r
.
xhr
&&
r
.
xhr
.
abort
(),
r
.
xhr
=
e
.
ajax
({
url
:
n
,
data
:
t
,
dataType
:
"json"
,
success
:
function
(
e
){
i
(
e
)},
error
:
function
(){
i
([])}})})
:
this
.
source
=
this
.
options
.
source
},
_searchTimeout
:
function
(
e
){
clearTimeout
(
this
.
searching
),
this
.
searching
=
this
.
_delay
(
function
(){
this
.
term
!==
this
.
_value
()
&&
(
this
.
selectedItem
=
null
,
this
.
search
(
null
,
e
))},
this
.
options
.
delay
)},
search
:
function
(
e
,
t
){
e
=
e
!=
null
?
e
:
this
.
_value
(),
this
.
term
=
this
.
_value
();
if
(
e
.
length
<
this
.
options
.
minLength
)
return
this
.
close
(
t
);
if
(
this
.
_trigger
(
"search"
,
t
)
===!
1
)
return
;
return
this
.
_search
(
e
)},
_search
:
function
(
e
){
this
.
pending
++
,
this
.
element
.
addClass
(
"ui-autocomplete-loading"
),
this
.
cancelSearch
=!
1
,
this
.
source
({
term
:
e
},
this
.
_response
())},
_response
:
function
(){
var
e
=
this
,
t
=++
n
;
return
function
(
r
){
t
===
n
&&
e
.
__response
(
r
),
e
.
pending
--
,
e
.
pending
||
e
.
element
.
removeClass
(
"ui-autocomplete-loading"
)}},
__response
:
function
(
e
){
e
&&
(
e
=
this
.
_normalize
(
e
)),
this
.
_trigger
(
"response"
,
null
,{
content
:
e
}),
!
this
.
options
.
disabled
&&
e
&&
e
.
length
&&!
this
.
cancelSearch
?
(
this
.
_suggest
(
e
),
this
.
_trigger
(
"open"
))
:
this
.
_close
()},
close
:
function
(
e
){
this
.
cancelSearch
=!
0
,
this
.
_close
(
e
)},
_close
:
function
(
e
){
this
.
menu
.
element
.
is
(
":visible"
)
&&
(
this
.
menu
.
element
.
hide
(),
this
.
menu
.
blur
(),
this
.
isNewMenu
=!
0
,
this
.
_trigger
(
"close"
,
e
))},
_change
:
function
(
e
){
this
.
previous
!==
this
.
_value
()
&&
this
.
_trigger
(
"change"
,
e
,{
item
:
this
.
selectedItem
})},
_normalize
:
function
(
t
){
return
t
.
length
&&
t
[
0
].
label
&&
t
[
0
].
value
?
t
:
e
.
map
(
t
,
function
(
t
){
return
typeof
t
==
"string"
?
{
label
:
t
,
value
:
t
}
:
e
.
extend
({
label
:
t
.
label
||
t
.
value
,
value
:
t
.
value
||
t
.
label
},
t
)})},
_suggest
:
function
(
t
){
var
n
=
this
.
menu
.
element
.
empty
().
zIndex
(
this
.
element
.
zIndex
()
+
1
);
this
.
_renderMenu
(
n
,
t
),
this
.
menu
.
refresh
(),
n
.
show
(),
this
.
_resizeMenu
(),
n
.
position
(
e
.
extend
({
of
:
this
.
element
},
this
.
options
.
position
)),
this
.
options
.
autoFocus
&&
this
.
menu
.
next
()},
_resizeMenu
:
function
(){
var
e
=
this
.
menu
.
element
;
e
.
outerWidth
(
Math
.
max
(
e
.
width
(
""
).
outerWidth
()
+
1
,
this
.
element
.
outerWidth
()))},
_renderMenu
:
function
(
t
,
n
){
var
r
=
this
;
e
.
each
(
n
,
function
(
e
,
n
){
r
.
_renderItemData
(
t
,
n
)})},
_renderItemData
:
function
(
e
,
t
){
return
this
.
_renderItem
(
e
,
t
).
data
(
"ui-autocomplete-item"
,
t
)},
_renderItem
:
function
(
t
,
n
){
return
e
(
"<li>"
).
append
(
e
(
"<a>"
).
text
(
n
.
label
)).
appendTo
(
t
)},
_move
:
function
(
e
,
t
){
if
(
!
this
.
menu
.
element
.
is
(
":visible"
)){
this
.
search
(
null
,
t
);
return
}
if
(
this
.
menu
.
isFirstItem
()
&&
/^previous/
.
test
(
e
)
||
this
.
menu
.
isLastItem
()
&&
/^next/
.
test
(
e
)){
this
.
_value
(
this
.
term
),
this
.
menu
.
blur
();
return
}
this
.
menu
[
e
](
t
)},
widget
:
function
(){
return
this
.
menu
.
element
},
_value
:
function
(){
return
this
.
valueMethod
.
apply
(
this
.
element
,
arguments
)},
_keyEvent
:
function
(
e
,
t
){
if
(
!
this
.
isMultiLine
||
this
.
menu
.
element
.
is
(
":visible"
))
this
.
_move
(
e
,
t
),
t
.
preventDefault
()}}),
e
.
extend
(
e
.
ui
.
autocomplete
,{
escapeRegex
:
function
(
e
){
return
e
.
replace
(
/[\-\[\]{}()*+?.,\\\^$|#\s]/g
,
"\\$&"
)},
filter
:
function
(
t
,
n
){
var
r
=
new
RegExp
(
e
.
ui
.
autocomplete
.
escapeRegex
(
n
),
"i"
);
return
e
.
grep
(
t
,
function
(
e
){
return
r
.
test
(
e
.
label
||
e
.
value
||
e
)})}}),
e
.
widget
(
"ui.autocomplete"
,
e
.
ui
.
autocomplete
,{
options
:
{
messages
:
{
noResults
:
"No search results."
,
results
:
function
(
e
){
return
e
+
(
e
>
1
?
" results are"
:
" result is"
)
+
" available, use up and down arrow keys to navigate."
}}},
__response
:
function
(
e
){
var
t
;
this
.
_superApply
(
arguments
);
if
(
this
.
options
.
disabled
||
this
.
cancelSearch
)
return
;
e
&&
e
.
length
?
t
=
this
.
options
.
messages
.
results
(
e
.
length
)
:
t
=
this
.
options
.
messages
.
noResults
,
this
.
liveRegion
.
text
(
t
)}})})(
jQuery
);(
function
(
e
,
t
){
var
n
,
r
,
i
,
s
,
o
=
"ui-button ui-widget ui-state-default ui-corner-all"
,
u
=
"ui-state-hover ui-state-active "
,
a
=
"ui-button-icons-only ui-button-icon-only ui-button-text-icons ui-button-text-icon-primary ui-button-text-icon-secondary ui-button-text-only"
,
f
=
function
(){
var
t
=
e
(
this
).
find
(
":ui-button"
);
setTimeout
(
function
(){
t
.
button
(
"refresh"
)},
1
)},
l
=
function
(
t
){
var
n
=
t
.
name
,
r
=
t
.
form
,
i
=
e
([]);
return
n
&&
(
r
?
i
=
e
(
r
).
find
(
"[name='"
+
n
+
"']"
)
:
i
=
e
(
"[name='"
+
n
+
"']"
,
t
.
ownerDocument
).
filter
(
function
(){
return
!
this
.
form
})),
i
};
e
.
widget
(
"ui.button"
,{
version
:
"1.9.1"
,
defaultElement
:
"<button>"
,
options
:
{
disabled
:
null
,
text
:!
0
,
label
:
null
,
icons
:
{
primary
:
null
,
secondary
:
null
}},
_create
:
function
(){
this
.
element
.
closest
(
"form"
).
unbind
(
"reset"
+
this
.
eventNamespace
).
bind
(
"reset"
+
this
.
eventNamespace
,
f
),
typeof
this
.
options
.
disabled
!=
"boolean"
?
this
.
options
.
disabled
=!!
this
.
element
.
prop
(
"disabled"
)
:
this
.
element
.
prop
(
"disabled"
,
this
.
options
.
disabled
),
this
.
_determineButtonType
(),
this
.
hasTitle
=!!
this
.
buttonElement
.
attr
(
"title"
);
var
t
=
this
,
u
=
this
.
options
,
a
=
this
.
type
===
"checkbox"
||
this
.
type
===
"radio"
,
c
=
"ui-state-hover"
+
(
a
?
""
:
" ui-state-active"
),
h
=
"ui-state-focus"
;
u
.
label
===
null
&&
(
u
.
label
=
this
.
type
===
"input"
?
this
.
buttonElement
.
val
()
:
this
.
buttonElement
.
html
()),
this
.
buttonElement
.
addClass
(
o
).
attr
(
"role"
,
"button"
).
bind
(
"mouseenter"
+
this
.
eventNamespace
,
function
(){
if
(
u
.
disabled
)
return
;
e
(
this
).
addClass
(
"ui-state-hover"
),
this
===
n
&&
e
(
this
).
addClass
(
"ui-state-active"
)}).
bind
(
"mouseleave"
+
this
.
eventNamespace
,
function
(){
if
(
u
.
disabled
)
return
;
e
(
this
).
removeClass
(
c
)}).
bind
(
"click"
+
this
.
eventNamespace
,
function
(
e
){
u
.
disabled
&&
(
e
.
preventDefault
(),
e
.
stopImmediatePropagation
())}),
this
.
element
.
bind
(
"focus"
+
this
.
eventNamespace
,
function
(){
t
.
buttonElement
.
addClass
(
h
)}).
bind
(
"blur"
+
this
.
eventNamespace
,
function
(){
t
.
buttonElement
.
removeClass
(
h
)}),
a
&&
(
this
.
element
.
bind
(
"change"
+
this
.
eventNamespace
,
function
(){
if
(
s
)
return
;
t
.
refresh
()}),
this
.
buttonElement
.
bind
(
"mousedown"
+
this
.
eventNamespace
,
function
(
e
){
if
(
u
.
disabled
)
return
;
s
=!
1
,
r
=
e
.
pageX
,
i
=
e
.
pageY
}).
bind
(
"mouseup"
+
this
.
eventNamespace
,
function
(
e
){
if
(
u
.
disabled
)
return
;
if
(
r
!==
e
.
pageX
||
i
!==
e
.
pageY
)
s
=!
0
})),
this
.
type
===
"checkbox"
?
this
.
buttonElement
.
bind
(
"click"
+
this
.
eventNamespace
,
function
(){
if
(
u
.
disabled
||
s
)
return
!
1
;
e
(
this
).
toggleClass
(
"ui-state-active"
),
t
.
buttonElement
.
attr
(
"aria-pressed"
,
t
.
element
[
0
].
checked
)})
:
this
.
type
===
"radio"
?
this
.
buttonElement
.
bind
(
"click"
+
this
.
eventNamespace
,
function
(){
if
(
u
.
disabled
||
s
)
return
!
1
;
e
(
this
).
addClass
(
"ui-state-active"
),
t
.
buttonElement
.
attr
(
"aria-pressed"
,
"true"
);
var
n
=
t
.
element
[
0
];
l
(
n
).
not
(
n
).
map
(
function
(){
return
e
(
this
).
button
(
"widget"
)[
0
]}).
removeClass
(
"ui-state-active"
).
attr
(
"aria-pressed"
,
"false"
)})
:
(
this
.
buttonElement
.
bind
(
"mousedown"
+
this
.
eventNamespace
,
function
(){
if
(
u
.
disabled
)
return
!
1
;
e
(
this
).
addClass
(
"ui-state-active"
),
n
=
this
,
t
.
document
.
one
(
"mouseup"
,
function
(){
n
=
null
})}).
bind
(
"mouseup"
+
this
.
eventNamespace
,
function
(){
if
(
u
.
disabled
)
return
!
1
;
e
(
this
).
removeClass
(
"ui-state-active"
)}).
bind
(
"keydown"
+
this
.
eventNamespace
,
function
(
t
){
if
(
u
.
disabled
)
return
!
1
;(
t
.
keyCode
===
e
.
ui
.
keyCode
.
SPACE
||
t
.
keyCode
===
e
.
ui
.
keyCode
.
ENTER
)
&&
e
(
this
).
addClass
(
"ui-state-active"
)}).
bind
(
"keyup"
+
this
.
eventNamespace
,
function
(){
e
(
this
).
removeClass
(
"ui-state-active"
)}),
this
.
buttonElement
.
is
(
"a"
)
&&
this
.
buttonElement
.
keyup
(
function
(
t
){
t
.
keyCode
===
e
.
ui
.
keyCode
.
SPACE
&&
e
(
this
).
click
()})),
this
.
_setOption
(
"disabled"
,
u
.
disabled
),
this
.
_resetButton
()},
_determineButtonType
:
function
(){
var
e
,
t
,
n
;
this
.
element
.
is
(
"[type=checkbox]"
)
?
this
.
type
=
"checkbox"
:
this
.
element
.
is
(
"[type=radio]"
)
?
this
.
type
=
"radio"
:
this
.
element
.
is
(
"input"
)
?
this
.
type
=
"input"
:
this
.
type
=
"button"
,
this
.
type
===
"checkbox"
||
this
.
type
===
"radio"
?
(
e
=
this
.
element
.
parents
().
last
(),
t
=
"label[for='"
+
this
.
element
.
attr
(
"id"
)
+
"']"
,
this
.
buttonElement
=
e
.
find
(
t
),
this
.
buttonElement
.
length
||
(
e
=
e
.
length
?
e
.
siblings
()
:
this
.
element
.
siblings
(),
this
.
buttonElement
=
e
.
filter
(
t
),
this
.
buttonElement
.
length
||
(
this
.
buttonElement
=
e
.
find
(
t
))),
this
.
element
.
addClass
(
"ui-helper-hidden-accessible"
),
n
=
this
.
element
.
is
(
":checked"
),
n
&&
this
.
buttonElement
.
addClass
(
"ui-state-active"
),
this
.
buttonElement
.
prop
(
"aria-pressed"
,
n
))
:
this
.
buttonElement
=
this
.
element
},
widget
:
function
(){
return
this
.
buttonElement
},
_destroy
:
function
(){
this
.
element
.
removeClass
(
"ui-helper-hidden-accessible"
),
this
.
buttonElement
.
removeClass
(
o
+
" "
+
u
+
" "
+
a
).
removeAttr
(
"role"
).
removeAttr
(
"aria-pressed"
).
html
(
this
.
buttonElement
.
find
(
".ui-button-text"
).
html
()),
this
.
hasTitle
||
this
.
buttonElement
.
removeAttr
(
"title"
)},
_setOption
:
function
(
e
,
t
){
this
.
_super
(
e
,
t
);
if
(
e
===
"disabled"
){
t
?
this
.
element
.
prop
(
"disabled"
,
!
0
)
:
this
.
element
.
prop
(
"disabled"
,
!
1
);
return
}
this
.
_resetButton
()},
refresh
:
function
(){
var
t
=
this
.
element
.
is
(
":disabled"
)
||
this
.
element
.
hasClass
(
"ui-button-disabled"
);
t
!==
this
.
options
.
disabled
&&
this
.
_setOption
(
"disabled"
,
t
),
this
.
type
===
"radio"
?
l
(
this
.
element
[
0
]).
each
(
function
(){
e
(
this
).
is
(
":checked"
)
?
e
(
this
).
button
(
"widget"
).
addClass
(
"ui-state-active"
).
attr
(
"aria-pressed"
,
"true"
)
:
e
(
this
).
button
(
"widget"
).
removeClass
(
"ui-state-active"
).
attr
(
"aria-pressed"
,
"false"
)})
:
this
.
type
===
"checkbox"
&&
(
this
.
element
.
is
(
":checked"
)
?
this
.
buttonElement
.
addClass
(
"ui-state-active"
).
attr
(
"aria-pressed"
,
"true"
)
:
this
.
buttonElement
.
removeClass
(
"ui-state-active"
).
attr
(
"aria-pressed"
,
"false"
))},
_resetButton
:
function
(){
if
(
this
.
type
===
"input"
){
this
.
options
.
label
&&
this
.
element
.
val
(
this
.
options
.
label
);
return
}
var
t
=
this
.
buttonElement
.
removeClass
(
a
),
n
=
e
(
"<span></span>"
,
this
.
document
[
0
]).
addClass
(
"ui-button-text"
).
html
(
this
.
options
.
label
).
appendTo
(
t
.
empty
()).
text
(),
r
=
this
.
options
.
icons
,
i
=
r
.
primary
&&
r
.
secondary
,
s
=
[];
r
.
primary
||
r
.
secondary
?
(
this
.
options
.
text
&&
s
.
push
(
"ui-button-text-icon"
+
(
i
?
"s"
:
r
.
primary
?
"-primary"
:
"-secondary"
)),
r
.
primary
&&
t
.
prepend
(
"<span class='ui-button-icon-primary ui-icon "
+
r
.
primary
+
"'></span>"
),
r
.
secondary
&&
t
.
append
(
"<span class='ui-button-icon-secondary ui-icon "
+
r
.
secondary
+
"'></span>"
),
this
.
options
.
text
||
(
s
.
push
(
i
?
"ui-button-icons-only"
:
"ui-button-icon-only"
),
this
.
hasTitle
||
t
.
attr
(
"title"
,
e
.
trim
(
n
))))
:
s
.
push
(
"ui-button-text-only"
),
t
.
addClass
(
s
.
join
(
" "
))}}),
e
.
widget
(
"ui.buttonset"
,{
version
:
"1.9.1"
,
options
:
{
items
:
"button, input[type=button], input[type=submit], input[type=reset], input[type=checkbox], input[type=radio], a, :data(button)"
},
_create
:
function
(){
this
.
element
.
addClass
(
"ui-buttonset"
)},
_init
:
function
(){
this
.
refresh
()},
_setOption
:
function
(
e
,
t
){
e
===
"disabled"
&&
this
.
buttons
.
button
(
"option"
,
e
,
t
),
this
.
_super
(
e
,
t
)},
refresh
:
function
(){
var
t
=
this
.
element
.
css
(
"direction"
)
===
"rtl"
;
this
.
buttons
=
this
.
element
.
find
(
this
.
options
.
items
).
filter
(
":ui-button"
).
button
(
"refresh"
).
end
().
not
(
":ui-button"
).
button
().
end
().
map
(
function
(){
return
e
(
this
).
button
(
"widget"
)[
0
]}).
removeClass
(
"ui-corner-all ui-corner-left ui-corner-right"
).
filter
(
":first"
).
addClass
(
t
?
"ui-corner-right"
:
"ui-corner-left"
).
end
().
filter
(
":last"
).
addClass
(
t
?
"ui-corner-left"
:
"ui-corner-right"
).
end
().
end
()},
_destroy
:
function
(){
this
.
element
.
removeClass
(
"ui-buttonset"
),
this
.
buttons
.
map
(
function
(){
return
e
(
this
).
button
(
"widget"
)[
0
]}).
removeClass
(
"ui-corner-left ui-corner-right"
).
end
().
button
(
"destroy"
)}})})(
jQuery
);(
function
(
$
,
undefined
){
function
Datepicker
(){
this
.
debug
=!
1
,
this
.
_curInst
=
null
,
this
.
_keyEvent
=!
1
,
this
.
_disabledInputs
=
[],
this
.
_datepickerShowing
=!
1
,
this
.
_inDialog
=!
1
,
this
.
_mainDivId
=
"ui-datepicker-div"
,
this
.
_inlineClass
=
"ui-datepicker-inline"
,
this
.
_appendClass
=
"ui-datepicker-append"
,
this
.
_triggerClass
=
"ui-datepicker-trigger"
,
this
.
_dialogClass
=
"ui-datepicker-dialog"
,
this
.
_disableClass
=
"ui-datepicker-disabled"
,
this
.
_unselectableClass
=
"ui-datepicker-unselectable"
,
this
.
_currentClass
=
"ui-datepicker-current-day"
,
this
.
_dayOverClass
=
"ui-datepicker-days-cell-over"
,
this
.
regional
=
[],
this
.
regional
[
""
]
=
{
closeText
:
"Done"
,
prevText
:
"Prev"
,
nextText
:
"Next"
,
currentText
:
"Today"
,
monthNames
:
[
"January"
,
"February"
,
"March"
,
"April"
,
"May"
,
"June"
,
"July"
,
"August"
,
"September"
,
"October"
,
"November"
,
"December"
],
monthNamesShort
:
[
"Jan"
,
"Feb"
,
"Mar"
,
"Apr"
,
"May"
,
"Jun"
,
"Jul"
,
"Aug"
,
"Sep"
,
"Oct"
,
"Nov"
,
"Dec"
],
dayNames
:
[
"Sunday"
,
"Monday"
,
"Tuesday"
,
"Wednesday"
,
"Thursday"
,
"Friday"
,
"Saturday"
],
dayNamesShort
:
[
"Sun"
,
"Mon"
,
"Tue"
,
"Wed"
,
"Thu"
,
"Fri"
,
"Sat"
],
dayNamesMin
:
[
"Su"
,
"Mo"
,
"Tu"
,
"We"
,
"Th"
,
"Fr"
,
"Sa"
],
weekHeader
:
"Wk"
,
dateFormat
:
"mm/dd/yy"
,
firstDay
:
0
,
isRTL
:!
1
,
showMonthAfterYear
:!
1
,
yearSuffix
:
""
},
this
.
_defaults
=
{
showOn
:
"focus"
,
showAnim
:
"fadeIn"
,
showOptions
:
{},
defaultDate
:
null
,
appendText
:
""
,
buttonText
:
"..."
,
buttonImage
:
""
,
buttonImageOnly
:!
1
,
hideIfNoPrevNext
:!
1
,
navigationAsDateFormat
:!
1
,
gotoCurrent
:!
1
,
changeMonth
:!
1
,
changeYear
:!
1
,
yearRange
:
"c-10:c+10"
,
showOtherMonths
:!
1
,
selectOtherMonths
:!
1
,
showWeek
:!
1
,
calculateWeek
:
this
.
iso8601Week
,
shortYearCutoff
:
"+10"
,
minDate
:
null
,
maxDate
:
null
,
duration
:
"fast"
,
beforeShowDay
:
null
,
beforeShow
:
null
,
onSelect
:
null
,
onChangeMonthYear
:
null
,
onClose
:
null
,
numberOfMonths
:
1
,
showCurrentAtPos
:
0
,
stepMonths
:
1
,
stepBigMonths
:
12
,
altField
:
""
,
altFormat
:
""
,
constrainInput
:!
0
,
showButtonPanel
:!
1
,
autoSize
:!
1
,
disabled
:!
1
},
$
.
extend
(
this
.
_defaults
,
this
.
regional
[
""
]),
this
.
dpDiv
=
bindHover
(
$
(
'<div id="'
+
this
.
_mainDivId
+
'" class="ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all"></div>'
))}
function
bindHover
(
e
){
var
t
=
"button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a"
;
return
e
.
delegate
(
t
,
"mouseout"
,
function
(){
$
(
this
).
removeClass
(
"ui-state-hover"
),
this
.
className
.
indexOf
(
"ui-datepicker-prev"
)
!=-
1
&&
$
(
this
).
removeClass
(
"ui-datepicker-prev-hover"
),
this
.
className
.
indexOf
(
"ui-datepicker-next"
)
!=-
1
&&
$
(
this
).
removeClass
(
"ui-datepicker-next-hover"
)}).
delegate
(
t
,
"mouseover"
,
function
(){
$
.
datepicker
.
_isDisabledDatepicker
(
instActive
.
inline
?
e
.
parent
()[
0
]
:
instActive
.
input
[
0
])
||
(
$
(
this
).
parents
(
".ui-datepicker-calendar"
).
find
(
"a"
).
removeClass
(
"ui-state-hover"
),
$
(
this
).
addClass
(
"ui-state-hover"
),
this
.
className
.
indexOf
(
"ui-datepicker-prev"
)
!=-
1
&&
$
(
this
).
addClass
(
"ui-datepicker-prev-hover"
),
this
.
className
.
indexOf
(
"ui-datepicker-next"
)
!=-
1
&&
$
(
this
).
addClass
(
"ui-datepicker-next-hover"
))})}
function
extendRemove
(
e
,
t
){
$
.
extend
(
e
,
t
);
for
(
var
n
in
t
)
if
(
t
[
n
]
==
null
||
t
[
n
]
==
undefined
)
e
[
n
]
=
t
[
n
];
return
e
}
$
.
extend
(
$
.
ui
,{
datepicker
:
{
version
:
"1.9.1"
}});
var
PROP_NAME
=
"datepicker"
,
dpuuid
=
(
new
Date
).
getTime
(),
instActive
;
$
.
extend
(
Datepicker
.
prototype
,{
markerClassName
:
"hasDatepicker"
,
maxRows
:
4
,
log
:
function
(){
this
.
debug
&&
console
.
log
.
apply
(
""
,
arguments
)},
_widgetDatepicker
:
function
(){
return
this
.
dpDiv
},
setDefaults
:
function
(
e
){
return
extendRemove
(
this
.
_defaults
,
e
||
{}),
this
},
_attachDatepicker
:
function
(
target
,
settings
){
var
inlineSettings
=
null
;
for
(
var
attrName
in
this
.
_defaults
){
var
attrValue
=
target
.
getAttribute
(
"date:"
+
attrName
);
if
(
attrValue
){
inlineSettings
=
inlineSettings
||
{};
try
{
inlineSettings
[
attrName
]
=
eval
(
attrValue
)}
catch
(
err
){
inlineSettings
[
attrName
]
=
attrValue
}}}
var
nodeName
=
target
.
nodeName
.
toLowerCase
(),
inline
=
nodeName
==
"div"
||
nodeName
==
"span"
;
target
.
id
||
(
this
.
uuid
+=
1
,
target
.
id
=
"dp"
+
this
.
uuid
);
var
inst
=
this
.
_newInst
(
$
(
target
),
inline
);
inst
.
settings
=
$
.
extend
({},
settings
||
{},
inlineSettings
||
{}),
nodeName
==
"input"
?
this
.
_connectDatepicker
(
target
,
inst
)
:
inline
&&
this
.
_inlineDatepicker
(
target
,
inst
)},
_newInst
:
function
(
e
,
t
){
var
n
=
e
[
0
].
id
.
replace
(
/([^A-Za-z0-9_-])/g
,
"\\\\$1"
);
return
{
id
:
n
,
input
:
e
,
selectedDay
:
0
,
selectedMonth
:
0
,
selectedYear
:
0
,
drawMonth
:
0
,
drawYear
:
0
,
inline
:
t
,
dpDiv
:
t
?
bindHover
(
$
(
'<div class="'
+
this
.
_inlineClass
+
' ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all"></div>'
))
:
this
.
dpDiv
}},
_connectDatepicker
:
function
(
e
,
t
){
var
n
=
$
(
e
);
t
.
append
=
$
([]),
t
.
trigger
=
$
([]);
if
(
n
.
hasClass
(
this
.
markerClassName
))
return
;
this
.
_attachments
(
n
,
t
),
n
.
addClass
(
this
.
markerClassName
).
keydown
(
this
.
_doKeyDown
).
keypress
(
this
.
_doKeyPress
).
keyup
(
this
.
_doKeyUp
).
bind
(
"setData.datepicker"
,
function
(
e
,
n
,
r
){
t
.
settings
[
n
]
=
r
}).
bind
(
"getData.datepicker"
,
function
(
e
,
n
){
return
this
.
_get
(
t
,
n
)}),
this
.
_autoSize
(
t
),
$
.
data
(
e
,
PROP_NAME
,
t
),
t
.
settings
.
disabled
&&
this
.
_disableDatepicker
(
e
)},
_attachments
:
function
(
e
,
t
){
var
n
=
this
.
_get
(
t
,
"appendText"
),
r
=
this
.
_get
(
t
,
"isRTL"
);
t
.
append
&&
t
.
append
.
remove
(),
n
&&
(
t
.
append
=
$
(
'<span class="'
+
this
.
_appendClass
+
'">'
+
n
+
"</span>"
),
e
[
r
?
"before"
:
"after"
](
t
.
append
)),
e
.
unbind
(
"focus"
,
this
.
_showDatepicker
),
t
.
trigger
&&
t
.
trigger
.
remove
();
var
i
=
this
.
_get
(
t
,
"showOn"
);(
i
==
"focus"
||
i
==
"both"
)
&&
e
.
focus
(
this
.
_showDatepicker
);
if
(
i
==
"button"
||
i
==
"both"
){
var
s
=
this
.
_get
(
t
,
"buttonText"
),
o
=
this
.
_get
(
t
,
"buttonImage"
);
t
.
trigger
=
$
(
this
.
_get
(
t
,
"buttonImageOnly"
)
?
$
(
"<img/>"
).
addClass
(
this
.
_triggerClass
).
attr
({
src
:
o
,
alt
:
s
,
title
:
s
})
:
$
(
'<button type="button"></button>'
).
addClass
(
this
.
_triggerClass
).
html
(
o
==
""
?
s
:
$
(
"<img/>"
).
attr
({
src
:
o
,
alt
:
s
,
title
:
s
}))),
e
[
r
?
"before"
:
"after"
](
t
.
trigger
),
t
.
trigger
.
click
(
function
(){
return
$
.
datepicker
.
_datepickerShowing
&&
$
.
datepicker
.
_lastInput
==
e
[
0
]
?
$
.
datepicker
.
_hideDatepicker
()
:
$
.
datepicker
.
_datepickerShowing
&&
$
.
datepicker
.
_lastInput
!=
e
[
0
]
?
(
$
.
datepicker
.
_hideDatepicker
(),
$
.
datepicker
.
_showDatepicker
(
e
[
0
]))
:
$
.
datepicker
.
_showDatepicker
(
e
[
0
]),
!
1
})}},
_autoSize
:
function
(
e
){
if
(
this
.
_get
(
e
,
"autoSize"
)
&&!
e
.
inline
){
var
t
=
new
Date
(
2009
,
11
,
20
),
n
=
this
.
_get
(
e
,
"dateFormat"
);
if
(
n
.
match
(
/[DM]/
)){
var
r
=
function
(
e
){
var
t
=
0
,
n
=
0
;
for
(
var
r
=
0
;
r
<
e
.
length
;
r
++
)
e
[
r
].
length
>
t
&&
(
t
=
e
[
r
].
length
,
n
=
r
);
return
n
};
t
.
setMonth
(
r
(
this
.
_get
(
e
,
n
.
match
(
/MM/
)
?
"monthNames"
:
"monthNamesShort"
))),
t
.
setDate
(
r
(
this
.
_get
(
e
,
n
.
match
(
/DD/
)
?
"dayNames"
:
"dayNamesShort"
))
+
20
-
t
.
getDay
())}
e
.
input
.
attr
(
"size"
,
this
.
_formatDate
(
e
,
t
).
length
)}},
_inlineDatepicker
:
function
(
e
,
t
){
var
n
=
$
(
e
);
if
(
n
.
hasClass
(
this
.
markerClassName
))
return
;
n
.
addClass
(
this
.
markerClassName
).
append
(
t
.
dpDiv
).
bind
(
"setData.datepicker"
,
function
(
e
,
n
,
r
){
t
.
settings
[
n
]
=
r
}).
bind
(
"getData.datepicker"
,
function
(
e
,
n
){
return
this
.
_get
(
t
,
n
)}),
$
.
data
(
e
,
PROP_NAME
,
t
),
this
.
_setDate
(
t
,
this
.
_getDefaultDate
(
t
),
!
0
),
this
.
_updateDatepicker
(
t
),
this
.
_updateAlternate
(
t
),
t
.
settings
.
disabled
&&
this
.
_disableDatepicker
(
e
),
t
.
dpDiv
.
css
(
"display"
,
"block"
)},
_dialogDatepicker
:
function
(
e
,
t
,
n
,
r
,
i
){
var
s
=
this
.
_dialogInst
;
if
(
!
s
){
this
.
uuid
+=
1
;
var
o
=
"dp"
+
this
.
uuid
;
this
.
_dialogInput
=
$
(
'<input type="text" id="'
+
o
+
'" style="position: absolute; top: -100px; width: 0px;"/>'
),
this
.
_dialogInput
.
keydown
(
this
.
_doKeyDown
),
$
(
"body"
).
append
(
this
.
_dialogInput
),
s
=
this
.
_dialogInst
=
this
.
_newInst
(
this
.
_dialogInput
,
!
1
),
s
.
settings
=
{},
$
.
data
(
this
.
_dialogInput
[
0
],
PROP_NAME
,
s
)}
extendRemove
(
s
.
settings
,
r
||
{}),
t
=
t
&&
t
.
constructor
==
Date
?
this
.
_formatDate
(
s
,
t
)
:
t
,
this
.
_dialogInput
.
val
(
t
),
this
.
_pos
=
i
?
i
.
length
?
i
:
[
i
.
pageX
,
i
.
pageY
]
:
null
;
if
(
!
this
.
_pos
){
var
u
=
document
.
documentElement
.
clientWidth
,
a
=
document
.
documentElement
.
clientHeight
,
f
=
document
.
documentElement
.
scrollLeft
||
document
.
body
.
scrollLeft
,
l
=
document
.
documentElement
.
scrollTop
||
document
.
body
.
scrollTop
;
this
.
_pos
=
[
u
/
2
-
100
+
f
,
a
/
2
-
150
+
l
]}
return
this
.
_dialogInput
.
css
(
"left"
,
this
.
_pos
[
0
]
+
20
+
"px"
).
css
(
"top"
,
this
.
_pos
[
1
]
+
"px"
),
s
.
settings
.
onSelect
=
n
,
this
.
_inDialog
=!
0
,
this
.
dpDiv
.
addClass
(
this
.
_dialogClass
),
this
.
_showDatepicker
(
this
.
_dialogInput
[
0
]),
$
.
blockUI
&&
$
.
blockUI
(
this
.
dpDiv
),
$
.
data
(
this
.
_dialogInput
[
0
],
PROP_NAME
,
s
),
this
},
_destroyDatepicker
:
function
(
e
){
var
t
=
$
(
e
),
n
=
$
.
data
(
e
,
PROP_NAME
);
if
(
!
t
.
hasClass
(
this
.
markerClassName
))
return
;
var
r
=
e
.
nodeName
.
toLowerCase
();
$
.
removeData
(
e
,
PROP_NAME
),
r
==
"input"
?
(
n
.
append
.
remove
(),
n
.
trigger
.
remove
(),
t
.
removeClass
(
this
.
markerClassName
).
unbind
(
"focus"
,
this
.
_showDatepicker
).
unbind
(
"keydown"
,
this
.
_doKeyDown
).
unbind
(
"keypress"
,
this
.
_doKeyPress
).
unbind
(
"keyup"
,
this
.
_doKeyUp
))
:
(
r
==
"div"
||
r
==
"span"
)
&&
t
.
removeClass
(
this
.
markerClassName
).
empty
()},
_enableDatepicker
:
function
(
e
){
var
t
=
$
(
e
),
n
=
$
.
data
(
e
,
PROP_NAME
);
if
(
!
t
.
hasClass
(
this
.
markerClassName
))
return
;
var
r
=
e
.
nodeName
.
toLowerCase
();
if
(
r
==
"input"
)
e
.
disabled
=!
1
,
n
.
trigger
.
filter
(
"button"
).
each
(
function
(){
this
.
disabled
=!
1
}).
end
().
filter
(
"img"
).
css
({
opacity
:
"1.0"
,
cursor
:
""
});
else
if
(
r
==
"div"
||
r
==
"span"
){
var
i
=
t
.
children
(
"."
+
this
.
_inlineClass
);
i
.
children
().
removeClass
(
"ui-state-disabled"
),
i
.
find
(
"select.ui-datepicker-month, select.ui-datepicker-year"
).
prop
(
"disabled"
,
!
1
)}
this
.
_disabledInputs
=
$
.
map
(
this
.
_disabledInputs
,
function
(
t
){
return
t
==
e
?
null
:
t
})},
_disableDatepicker
:
function
(
e
){
var
t
=
$
(
e
),
n
=
$
.
data
(
e
,
PROP_NAME
);
if
(
!
t
.
hasClass
(
this
.
markerClassName
))
return
;
var
r
=
e
.
nodeName
.
toLowerCase
();
if
(
r
==
"input"
)
e
.
disabled
=!
0
,
n
.
trigger
.
filter
(
"button"
).
each
(
function
(){
this
.
disabled
=!
0
}).
end
().
filter
(
"img"
).
css
({
opacity
:
"0.5"
,
cursor
:
"default"
});
else
if
(
r
==
"div"
||
r
==
"span"
){
var
i
=
t
.
children
(
"."
+
this
.
_inlineClass
);
i
.
children
().
addClass
(
"ui-state-disabled"
),
i
.
find
(
"select.ui-datepicker-month, select.ui-datepicker-year"
).
prop
(
"disabled"
,
!
0
)}
this
.
_disabledInputs
=
$
.
map
(
this
.
_disabledInputs
,
function
(
t
){
return
t
==
e
?
null
:
t
}),
this
.
_disabledInputs
[
this
.
_disabledInputs
.
length
]
=
e
},
_isDisabledDatepicker
:
function
(
e
){
if
(
!
e
)
return
!
1
;
for
(
var
t
=
0
;
t
<
this
.
_disabledInputs
.
length
;
t
++
)
if
(
this
.
_disabledInputs
[
t
]
==
e
)
return
!
0
;
return
!
1
},
_getInst
:
function
(
e
){
try
{
return
$
.
data
(
e
,
PROP_NAME
)}
catch
(
t
){
throw
"Missing instance data for this datepicker"
}},
_optionDatepicker
:
function
(
e
,
t
,
n
){
var
r
=
this
.
_getInst
(
e
);
if
(
arguments
.
length
==
2
&&
typeof
t
==
"string"
)
return
t
==
"defaults"
?
$
.
extend
({},
$
.
datepicker
.
_defaults
)
:
r
?
t
==
"all"
?
$
.
extend
({},
r
.
settings
)
:
this
.
_get
(
r
,
t
)
:
null
;
var
i
=
t
||
{};
typeof
t
==
"string"
&&
(
i
=
{},
i
[
t
]
=
n
);
if
(
r
){
this
.
_curInst
==
r
&&
this
.
_hideDatepicker
();
var
s
=
this
.
_getDateDatepicker
(
e
,
!
0
),
o
=
this
.
_getMinMaxDate
(
r
,
"min"
),
u
=
this
.
_getMinMaxDate
(
r
,
"max"
);
extendRemove
(
r
.
settings
,
i
),
o
!==
null
&&
i
.
dateFormat
!==
undefined
&&
i
.
minDate
===
undefined
&&
(
r
.
settings
.
minDate
=
this
.
_formatDate
(
r
,
o
)),
u
!==
null
&&
i
.
dateFormat
!==
undefined
&&
i
.
maxDate
===
undefined
&&
(
r
.
settings
.
maxDate
=
this
.
_formatDate
(
r
,
u
)),
this
.
_attachments
(
$
(
e
),
r
),
this
.
_autoSize
(
r
),
this
.
_setDate
(
r
,
s
),
this
.
_updateAlternate
(
r
),
this
.
_updateDatepicker
(
r
)}},
_changeDatepicker
:
function
(
e
,
t
,
n
){
this
.
_optionDatepicker
(
e
,
t
,
n
)},
_refreshDatepicker
:
function
(
e
){
var
t
=
this
.
_getInst
(
e
);
t
&&
this
.
_updateDatepicker
(
t
)},
_setDateDatepicker
:
function
(
e
,
t
){
var
n
=
this
.
_getInst
(
e
);
n
&&
(
this
.
_setDate
(
n
,
t
),
this
.
_updateDatepicker
(
n
),
this
.
_updateAlternate
(
n
))},
_getDateDatepicker
:
function
(
e
,
t
){
var
n
=
this
.
_getInst
(
e
);
return
n
&&!
n
.
inline
&&
this
.
_setDateFromField
(
n
,
t
),
n
?
this
.
_getDate
(
n
)
:
null
},
_doKeyDown
:
function
(
e
){
var
t
=
$
.
datepicker
.
_getInst
(
e
.
target
),
n
=!
0
,
r
=
t
.
dpDiv
.
is
(
".ui-datepicker-rtl"
);
t
.
_keyEvent
=!
0
;
if
(
$
.
datepicker
.
_datepickerShowing
)
switch
(
e
.
keyCode
){
case
9
:
$
.
datepicker
.
_hideDatepicker
(),
n
=!
1
;
break
;
case
13
:
var
i
=
$
(
"td."
+
$
.
datepicker
.
_dayOverClass
+
":not(."
+
$
.
datepicker
.
_currentClass
+
")"
,
t
.
dpDiv
);
i
[
0
]
&&
$
.
datepicker
.
_selectDay
(
e
.
target
,
t
.
selectedMonth
,
t
.
selectedYear
,
i
[
0
]);
var
s
=
$
.
datepicker
.
_get
(
t
,
"onSelect"
);
if
(
s
){
var
o
=
$
.
datepicker
.
_formatDate
(
t
);
s
.
apply
(
t
.
input
?
t
.
input
[
0
]
:
null
,[
o
,
t
])}
else
$
.
datepicker
.
_hideDatepicker
();
return
!
1
;
case
27
:
$
.
datepicker
.
_hideDatepicker
();
break
;
case
33
:
$
.
datepicker
.
_adjustDate
(
e
.
target
,
e
.
ctrlKey
?-
$
.
datepicker
.
_get
(
t
,
"stepBigMonths"
)
:-
$
.
datepicker
.
_get
(
t
,
"stepMonths"
),
"M"
);
break
;
case
34
:
$
.
datepicker
.
_adjustDate
(
e
.
target
,
e
.
ctrlKey
?+
$
.
datepicker
.
_get
(
t
,
"stepBigMonths"
)
:+
$
.
datepicker
.
_get
(
t
,
"stepMonths"
),
"M"
);
break
;
case
35
:
(
e
.
ctrlKey
||
e
.
metaKey
)
&&
$
.
datepicker
.
_clearDate
(
e
.
target
),
n
=
e
.
ctrlKey
||
e
.
metaKey
;
break
;
case
36
:
(
e
.
ctrlKey
||
e
.
metaKey
)
&&
$
.
datepicker
.
_gotoToday
(
e
.
target
),
n
=
e
.
ctrlKey
||
e
.
metaKey
;
break
;
case
37
:
(
e
.
ctrlKey
||
e
.
metaKey
)
&&
$
.
datepicker
.
_adjustDate
(
e
.
target
,
r
?
1
:-
1
,
"D"
),
n
=
e
.
ctrlKey
||
e
.
metaKey
,
e
.
originalEvent
.
altKey
&&
$
.
datepicker
.
_adjustDate
(
e
.
target
,
e
.
ctrlKey
?-
$
.
datepicker
.
_get
(
t
,
"stepBigMonths"
)
:-
$
.
datepicker
.
_get
(
t
,
"stepMonths"
),
"M"
);
break
;
case
38
:
(
e
.
ctrlKey
||
e
.
metaKey
)
&&
$
.
datepicker
.
_adjustDate
(
e
.
target
,
-
7
,
"D"
),
n
=
e
.
ctrlKey
||
e
.
metaKey
;
break
;
case
39
:
(
e
.
ctrlKey
||
e
.
metaKey
)
&&
$
.
datepicker
.
_adjustDate
(
e
.
target
,
r
?-
1
:
1
,
"D"
),
n
=
e
.
ctrlKey
||
e
.
metaKey
,
e
.
originalEvent
.
altKey
&&
$
.
datepicker
.
_adjustDate
(
e
.
target
,
e
.
ctrlKey
?+
$
.
datepicker
.
_get
(
t
,
"stepBigMonths"
)
:+
$
.
datepicker
.
_get
(
t
,
"stepMonths"
),
"M"
);
break
;
case
40
:
(
e
.
ctrlKey
||
e
.
metaKey
)
&&
$
.
datepicker
.
_adjustDate
(
e
.
target
,
7
,
"D"
),
n
=
e
.
ctrlKey
||
e
.
metaKey
;
break
;
default
:
n
=!
1
}
else
e
.
keyCode
==
36
&&
e
.
ctrlKey
?
$
.
datepicker
.
_showDatepicker
(
this
)
:
n
=!
1
;
n
&&
(
e
.
preventDefault
(),
e
.
stopPropagation
())},
_doKeyPress
:
function
(
e
){
var
t
=
$
.
datepicker
.
_getInst
(
e
.
target
);
if
(
$
.
datepicker
.
_get
(
t
,
"constrainInput"
)){
var
n
=
$
.
datepicker
.
_possibleChars
(
$
.
datepicker
.
_get
(
t
,
"dateFormat"
)),
r
=
String
.
fromCharCode
(
e
.
charCode
==
undefined
?
e
.
keyCode
:
e
.
charCode
);
return
e
.
ctrlKey
||
e
.
metaKey
||
r
<
" "
||!
n
||
n
.
indexOf
(
r
)
>-
1
}},
_doKeyUp
:
function
(
e
){
var
t
=
$
.
datepicker
.
_getInst
(
e
.
target
);
if
(
t
.
input
.
val
()
!=
t
.
lastVal
)
try
{
var
n
=
$
.
datepicker
.
parseDate
(
$
.
datepicker
.
_get
(
t
,
"dateFormat"
),
t
.
input
?
t
.
input
.
val
()
:
null
,
$
.
datepicker
.
_getFormatConfig
(
t
));
n
&&
(
$
.
datepicker
.
_setDateFromField
(
t
),
$
.
datepicker
.
_updateAlternate
(
t
),
$
.
datepicker
.
_updateDatepicker
(
t
))}
catch
(
r
){
$
.
datepicker
.
log
(
r
)}
return
!
0
},
_showDatepicker
:
function
(
e
){
e
=
e
.
target
||
e
,
e
.
nodeName
.
toLowerCase
()
!=
"input"
&&
(
e
=
$
(
"input"
,
e
.
parentNode
)[
0
]);
if
(
$
.
datepicker
.
_isDisabledDatepicker
(
e
)
||
$
.
datepicker
.
_lastInput
==
e
)
return
;
var
t
=
$
.
datepicker
.
_getInst
(
e
);
$
.
datepicker
.
_curInst
&&
$
.
datepicker
.
_curInst
!=
t
&&
(
$
.
datepicker
.
_curInst
.
dpDiv
.
stop
(
!
0
,
!
0
),
t
&&
$
.
datepicker
.
_datepickerShowing
&&
$
.
datepicker
.
_hideDatepicker
(
$
.
datepicker
.
_curInst
.
input
[
0
]));
var
n
=
$
.
datepicker
.
_get
(
t
,
"beforeShow"
),
r
=
n
?
n
.
apply
(
e
,[
e
,
t
])
:
{};
if
(
r
===!
1
)
return
;
extendRemove
(
t
.
settings
,
r
),
t
.
lastVal
=
null
,
$
.
datepicker
.
_lastInput
=
e
,
$
.
datepicker
.
_setDateFromField
(
t
),
$
.
datepicker
.
_inDialog
&&
(
e
.
value
=
""
),
$
.
datepicker
.
_pos
||
(
$
.
datepicker
.
_pos
=
$
.
datepicker
.
_findPos
(
e
),
$
.
datepicker
.
_pos
[
1
]
+=
e
.
offsetHeight
);
var
i
=!
1
;
$
(
e
).
parents
().
each
(
function
(){
return
i
|=
$
(
this
).
css
(
"position"
)
==
"fixed"
,
!
i
});
var
s
=
{
left
:
$
.
datepicker
.
_pos
[
0
],
top
:
$
.
datepicker
.
_pos
[
1
]};
$
.
datepicker
.
_pos
=
null
,
t
.
dpDiv
.
empty
(),
t
.
dpDiv
.
css
({
position
:
"absolute"
,
display
:
"block"
,
top
:
"-1000px"
}),
$
.
datepicker
.
_updateDatepicker
(
t
),
s
=
$
.
datepicker
.
_checkOffset
(
t
,
s
,
i
),
t
.
dpDiv
.
css
({
position
:
$
.
datepicker
.
_inDialog
&&
$
.
blockUI
?
"static"
:
i
?
"fixed"
:
"absolute"
,
display
:
"none"
,
left
:
s
.
left
+
"px"
,
top
:
s
.
top
+
"px"
});
if
(
!
t
.
inline
){
var
o
=
$
.
datepicker
.
_get
(
t
,
"showAnim"
),
u
=
$
.
datepicker
.
_get
(
t
,
"duration"
),
a
=
function
(){
var
e
=
t
.
dpDiv
.
find
(
"iframe.ui-datepicker-cover"
);
if
(
!!
e
.
length
){
var
n
=
$
.
datepicker
.
_getBorders
(
t
.
dpDiv
);
e
.
css
({
left
:-
n
[
0
],
top
:-
n
[
1
],
width
:
t
.
dpDiv
.
outerWidth
(),
height
:
t
.
dpDiv
.
outerHeight
()})}};
t
.
dpDiv
.
zIndex
(
$
(
e
).
zIndex
()
+
1
),
$
.
datepicker
.
_datepickerShowing
=!
0
,
$
.
effects
&&
(
$
.
effects
.
effect
[
o
]
||
$
.
effects
[
o
])
?
t
.
dpDiv
.
show
(
o
,
$
.
datepicker
.
_get
(
t
,
"showOptions"
),
u
,
a
)
:
t
.
dpDiv
[
o
||
"show"
](
o
?
u
:
null
,
a
),(
!
o
||!
u
)
&&
a
(),
t
.
input
.
is
(
":visible"
)
&&!
t
.
input
.
is
(
":disabled"
)
&&
t
.
input
.
focus
(),
$
.
datepicker
.
_curInst
=
t
}},
_updateDatepicker
:
function
(
e
){
this
.
maxRows
=
4
;
var
t
=
$
.
datepicker
.
_getBorders
(
e
.
dpDiv
);
instActive
=
e
,
e
.
dpDiv
.
empty
().
append
(
this
.
_generateHTML
(
e
)),
this
.
_attachHandlers
(
e
);
var
n
=
e
.
dpDiv
.
find
(
"iframe.ui-datepicker-cover"
);
!
n
.
length
||
n
.
css
({
left
:-
t
[
0
],
top
:-
t
[
1
],
width
:
e
.
dpDiv
.
outerWidth
(),
height
:
e
.
dpDiv
.
outerHeight
()}),
e
.
dpDiv
.
find
(
"."
+
this
.
_dayOverClass
+
" a"
).
mouseover
();
var
r
=
this
.
_getNumberOfMonths
(
e
),
i
=
r
[
1
],
s
=
17
;
e
.
dpDiv
.
removeClass
(
"ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4"
).
width
(
""
),
i
>
1
&&
e
.
dpDiv
.
addClass
(
"ui-datepicker-multi-"
+
i
).
css
(
"width"
,
s
*
i
+
"em"
),
e
.
dpDiv
[(
r
[
0
]
!=
1
||
r
[
1
]
!=
1
?
"add"
:
"remove"
)
+
"Class"
](
"ui-datepicker-multi"
),
e
.
dpDiv
[(
this
.
_get
(
e
,
"isRTL"
)
?
"add"
:
"remove"
)
+
"Class"
](
"ui-datepicker-rtl"
),
e
==
$
.
datepicker
.
_curInst
&&
$
.
datepicker
.
_datepickerShowing
&&
e
.
input
&&
e
.
input
.
is
(
":visible"
)
&&!
e
.
input
.
is
(
":disabled"
)
&&
e
.
input
[
0
]
!=
document
.
activeElement
&&
e
.
input
.
focus
();
if
(
e
.
yearshtml
){
var
o
=
e
.
yearshtml
;
setTimeout
(
function
(){
o
===
e
.
yearshtml
&&
e
.
yearshtml
&&
e
.
dpDiv
.
find
(
"select.ui-datepicker-year:first"
).
replaceWith
(
e
.
yearshtml
),
o
=
e
.
yearshtml
=
null
},
0
)}},
_getBorders
:
function
(
e
){
var
t
=
function
(
e
){
return
{
thin
:
1
,
medium
:
2
,
thick
:
3
}[
e
]
||
e
};
return
[
parseFloat
(
t
(
e
.
css
(
"border-left-width"
))),
parseFloat
(
t
(
e
.
css
(
"border-top-width"
)))]},
_checkOffset
:
function
(
e
,
t
,
n
){
var
r
=
e
.
dpDiv
.
outerWidth
(),
i
=
e
.
dpDiv
.
outerHeight
(),
s
=
e
.
input
?
e
.
input
.
outerWidth
()
:
0
,
o
=
e
.
input
?
e
.
input
.
outerHeight
()
:
0
,
u
=
document
.
documentElement
.
clientWidth
+
(
n
?
0
:
$
(
document
).
scrollLeft
()),
a
=
document
.
documentElement
.
clientHeight
+
(
n
?
0
:
$
(
document
).
scrollTop
());
return
t
.
left
-=
this
.
_get
(
e
,
"isRTL"
)
?
r
-
s
:
0
,
t
.
left
-=
n
&&
t
.
left
==
e
.
input
.
offset
().
left
?
$
(
document
).
scrollLeft
()
:
0
,
t
.
top
-=
n
&&
t
.
top
==
e
.
input
.
offset
().
top
+
o
?
$
(
document
).
scrollTop
()
:
0
,
t
.
left
-=
Math
.
min
(
t
.
left
,
t
.
left
+
r
>
u
&&
u
>
r
?
Math
.
abs
(
t
.
left
+
r
-
u
)
:
0
),
t
.
top
-=
Math
.
min
(
t
.
top
,
t
.
top
+
i
>
a
&&
a
>
i
?
Math
.
abs
(
i
+
o
)
:
0
),
t
},
_findPos
:
function
(
e
){
var
t
=
this
.
_getInst
(
e
),
n
=
this
.
_get
(
t
,
"isRTL"
);
while
(
e
&&
(
e
.
type
==
"hidden"
||
e
.
nodeType
!=
1
||
$
.
expr
.
filters
.
hidden
(
e
)))
e
=
e
[
n
?
"previousSibling"
:
"nextSibling"
];
var
r
=
$
(
e
).
offset
();
return
[
r
.
left
,
r
.
top
]},
_hideDatepicker
:
function
(
e
){
var
t
=
this
.
_curInst
;
if
(
!
t
||
e
&&
t
!=
$
.
data
(
e
,
PROP_NAME
))
return
;
if
(
this
.
_datepickerShowing
){
var
n
=
this
.
_get
(
t
,
"showAnim"
),
r
=
this
.
_get
(
t
,
"duration"
),
i
=
function
(){
$
.
datepicker
.
_tidyDialog
(
t
)};
$
.
effects
&&
(
$
.
effects
.
effect
[
n
]
||
$
.
effects
[
n
])
?
t
.
dpDiv
.
hide
(
n
,
$
.
datepicker
.
_get
(
t
,
"showOptions"
),
r
,
i
)
:
t
.
dpDiv
[
n
==
"slideDown"
?
"slideUp"
:
n
==
"fadeIn"
?
"fadeOut"
:
"hide"
](
n
?
r
:
null
,
i
),
n
||
i
(),
this
.
_datepickerShowing
=!
1
;
var
s
=
this
.
_get
(
t
,
"onClose"
);
s
&&
s
.
apply
(
t
.
input
?
t
.
input
[
0
]
:
null
,[
t
.
input
?
t
.
input
.
val
()
:
""
,
t
]),
this
.
_lastInput
=
null
,
this
.
_inDialog
&&
(
this
.
_dialogInput
.
css
({
position
:
"absolute"
,
left
:
"0"
,
top
:
"-100px"
}),
$
.
blockUI
&&
(
$
.
unblockUI
(),
$
(
"body"
).
append
(
this
.
dpDiv
))),
this
.
_inDialog
=!
1
}},
_tidyDialog
:
function
(
e
){
e
.
dpDiv
.
removeClass
(
this
.
_dialogClass
).
unbind
(
".ui-datepicker-calendar"
)},
_checkExternalClick
:
function
(
e
){
if
(
!
$
.
datepicker
.
_curInst
)
return
;
var
t
=
$
(
e
.
target
),
n
=
$
.
datepicker
.
_getInst
(
t
[
0
]);(
t
[
0
].
id
!=
$
.
datepicker
.
_mainDivId
&&
t
.
parents
(
"#"
+
$
.
datepicker
.
_mainDivId
).
length
==
0
&&!
t
.
hasClass
(
$
.
datepicker
.
markerClassName
)
&&!
t
.
closest
(
"."
+
$
.
datepicker
.
_triggerClass
).
length
&&
$
.
datepicker
.
_datepickerShowing
&&
(
!
$
.
datepicker
.
_inDialog
||!
$
.
blockUI
)
||
t
.
hasClass
(
$
.
datepicker
.
markerClassName
)
&&
$
.
datepicker
.
_curInst
!=
n
)
&&
$
.
datepicker
.
_hideDatepicker
()},
_adjustDate
:
function
(
e
,
t
,
n
){
var
r
=
$
(
e
),
i
=
this
.
_getInst
(
r
[
0
]);
if
(
this
.
_isDisabledDatepicker
(
r
[
0
]))
return
;
this
.
_adjustInstDate
(
i
,
t
+
(
n
==
"M"
?
this
.
_get
(
i
,
"showCurrentAtPos"
)
:
0
),
n
),
this
.
_updateDatepicker
(
i
)},
_gotoToday
:
function
(
e
){
var
t
=
$
(
e
),
n
=
this
.
_getInst
(
t
[
0
]);
if
(
this
.
_get
(
n
,
"gotoCurrent"
)
&&
n
.
currentDay
)
n
.
selectedDay
=
n
.
currentDay
,
n
.
drawMonth
=
n
.
selectedMonth
=
n
.
currentMonth
,
n
.
drawYear
=
n
.
selectedYear
=
n
.
currentYear
;
else
{
var
r
=
new
Date
;
n
.
selectedDay
=
r
.
getDate
(),
n
.
drawMonth
=
n
.
selectedMonth
=
r
.
getMonth
(),
n
.
drawYear
=
n
.
selectedYear
=
r
.
getFullYear
()}
this
.
_notifyChange
(
n
),
this
.
_adjustDate
(
t
)},
_selectMonthYear
:
function
(
e
,
t
,
n
){
var
r
=
$
(
e
),
i
=
this
.
_getInst
(
r
[
0
]);
i
[
"selected"
+
(
n
==
"M"
?
"Month"
:
"Year"
)]
=
i
[
"draw"
+
(
n
==
"M"
?
"Month"
:
"Year"
)]
=
parseInt
(
t
.
options
[
t
.
selectedIndex
].
value
,
10
),
this
.
_notifyChange
(
i
),
this
.
_adjustDate
(
r
)},
_selectDay
:
function
(
e
,
t
,
n
,
r
){
var
i
=
$
(
e
);
if
(
$
(
r
).
hasClass
(
this
.
_unselectableClass
)
||
this
.
_isDisabledDatepicker
(
i
[
0
]))
return
;
var
s
=
this
.
_getInst
(
i
[
0
]);
s
.
selectedDay
=
s
.
currentDay
=
$
(
"a"
,
r
).
html
(),
s
.
selectedMonth
=
s
.
currentMonth
=
t
,
s
.
selectedYear
=
s
.
currentYear
=
n
,
this
.
_selectDate
(
e
,
this
.
_formatDate
(
s
,
s
.
currentDay
,
s
.
currentMonth
,
s
.
currentYear
))},
_clearDate
:
function
(
e
){
var
t
=
$
(
e
),
n
=
this
.
_getInst
(
t
[
0
]);
this
.
_selectDate
(
t
,
""
)},
_selectDate
:
function
(
e
,
t
){
var
n
=
$
(
e
),
r
=
this
.
_getInst
(
n
[
0
]);
t
=
t
!=
null
?
t
:
this
.
_formatDate
(
r
),
r
.
input
&&
r
.
input
.
val
(
t
),
this
.
_updateAlternate
(
r
);
var
i
=
this
.
_get
(
r
,
"onSelect"
);
i
?
i
.
apply
(
r
.
input
?
r
.
input
[
0
]
:
null
,[
t
,
r
])
:
r
.
input
&&
r
.
input
.
trigger
(
"change"
),
r
.
inline
?
this
.
_updateDatepicker
(
r
)
:
(
this
.
_hideDatepicker
(),
this
.
_lastInput
=
r
.
input
[
0
],
typeof
r
.
input
[
0
]
!=
"object"
&&
r
.
input
.
focus
(),
this
.
_lastInput
=
null
)},
_updateAlternate
:
function
(
e
){
var
t
=
this
.
_get
(
e
,
"altField"
);
if
(
t
){
var
n
=
this
.
_get
(
e
,
"altFormat"
)
||
this
.
_get
(
e
,
"dateFormat"
),
r
=
this
.
_getDate
(
e
),
i
=
this
.
formatDate
(
n
,
r
,
this
.
_getFormatConfig
(
e
));
$
(
t
).
each
(
function
(){
$
(
this
).
val
(
i
)})}},
noWeekends
:
function
(
e
){
var
t
=
e
.
getDay
();
return
[
t
>
0
&&
t
<
6
,
""
]},
iso8601Week
:
function
(
e
){
var
t
=
new
Date
(
e
.
getTime
());
t
.
setDate
(
t
.
getDate
()
+
4
-
(
t
.
getDay
()
||
7
));
var
n
=
t
.
getTime
();
return
t
.
setMonth
(
0
),
t
.
setDate
(
1
),
Math
.
floor
(
Math
.
round
((
n
-
t
)
/
864e5
)
/
7
)
+
1
},
parseDate
:
function
(
e
,
t
,
n
){
if
(
e
==
null
||
t
==
null
)
throw
"Invalid arguments"
;
t
=
typeof
t
==
"object"
?
t
.
toString
()
:
t
+
""
;
if
(
t
==
""
)
return
null
;
var
r
=
(
n
?
n
.
shortYearCutoff
:
null
)
||
this
.
_defaults
.
shortYearCutoff
;
r
=
typeof
r
!=
"string"
?
r
:
(
new
Date
).
getFullYear
()
%
100
+
parseInt
(
r
,
10
);
var
i
=
(
n
?
n
.
dayNamesShort
:
null
)
||
this
.
_defaults
.
dayNamesShort
,
s
=
(
n
?
n
.
dayNames
:
null
)
||
this
.
_defaults
.
dayNames
,
o
=
(
n
?
n
.
monthNamesShort
:
null
)
||
this
.
_defaults
.
monthNamesShort
,
u
=
(
n
?
n
.
monthNames
:
null
)
||
this
.
_defaults
.
monthNames
,
a
=-
1
,
f
=-
1
,
l
=-
1
,
c
=-
1
,
h
=!
1
,
p
=
function
(
t
){
var
n
=
y
+
1
<
e
.
length
&&
e
.
charAt
(
y
+
1
)
==
t
;
return
n
&&
y
++
,
n
},
d
=
function
(
e
){
var
n
=
p
(
e
),
r
=
e
==
"@"
?
14
:
e
==
"!"
?
20
:
e
==
"y"
&&
n
?
4
:
e
==
"o"
?
3
:
2
,
i
=
new
RegExp
(
"^\\d{1,"
+
r
+
"}"
),
s
=
t
.
substring
(
g
).
match
(
i
);
if
(
!
s
)
throw
"Missing number at position "
+
g
;
return
g
+=
s
[
0
].
length
,
parseInt
(
s
[
0
],
10
)},
v
=
function
(
e
,
n
,
r
){
var
i
=
$
.
map
(
p
(
e
)
?
r
:
n
,
function
(
e
,
t
){
return
[[
t
,
e
]]}).
sort
(
function
(
e
,
t
){
return
-
(
e
[
1
].
length
-
t
[
1
].
length
)}),
s
=-
1
;
$
.
each
(
i
,
function
(
e
,
n
){
var
r
=
n
[
1
];
if
(
t
.
substr
(
g
,
r
.
length
).
toLowerCase
()
==
r
.
toLowerCase
())
return
s
=
n
[
0
],
g
+=
r
.
length
,
!
1
});
if
(
s
!=-
1
)
return
s
+
1
;
throw
"Unknown name at position "
+
g
},
m
=
function
(){
if
(
t
.
charAt
(
g
)
!=
e
.
charAt
(
y
))
throw
"Unexpected literal at position "
+
g
;
g
++
},
g
=
0
;
for
(
var
y
=
0
;
y
<
e
.
length
;
y
++
)
if
(
h
)
e
.
charAt
(
y
)
==
"'"
&&!
p
(
"'"
)
?
h
=!
1
:
m
();
else
switch
(
e
.
charAt
(
y
)){
case
"d"
:
l
=
d
(
"d"
);
break
;
case
"D"
:
v
(
"D"
,
i
,
s
);
break
;
case
"o"
:
c
=
d
(
"o"
);
break
;
case
"m"
:
f
=
d
(
"m"
);
break
;
case
"M"
:
f
=
v
(
"M"
,
o
,
u
);
break
;
case
"y"
:
a
=
d
(
"y"
);
break
;
case
"@"
:
var
b
=
new
Date
(
d
(
"@"
));
a
=
b
.
getFullYear
(),
f
=
b
.
getMonth
()
+
1
,
l
=
b
.
getDate
();
break
;
case
"!"
:
var
b
=
new
Date
((
d
(
"!"
)
-
this
.
_ticksTo1970
)
/
1e4
);
a
=
b
.
getFullYear
(),
f
=
b
.
getMonth
()
+
1
,
l
=
b
.
getDate
();
break
;
case
"'"
:
p
(
"'"
)
?
m
()
:
h
=!
0
;
break
;
default
:
m
()}
if
(
g
<
t
.
length
){
var
w
=
t
.
substr
(
g
);
if
(
!
/^\s+/
.
test
(
w
))
throw
"Extra/unparsed characters found in date: "
+
w
}
a
==-
1
?
a
=
(
new
Date
).
getFullYear
()
:
a
<
100
&&
(
a
+=
(
new
Date
).
getFullYear
()
-
(
new
Date
).
getFullYear
()
%
100
+
(
a
<=
r
?
0
:-
100
));
if
(
c
>-
1
){
f
=
1
,
l
=
c
;
do
{
var
E
=
this
.
_getDaysInMonth
(
a
,
f
-
1
);
if
(
l
<=
E
)
break
;
f
++
,
l
-=
E
}
while
(
!
0
)}
var
b
=
this
.
_daylightSavingAdjust
(
new
Date
(
a
,
f
-
1
,
l
));
if
(
b
.
getFullYear
()
!=
a
||
b
.
getMonth
()
+
1
!=
f
||
b
.
getDate
()
!=
l
)
throw
"Invalid date"
;
return
b
},
ATOM
:
"yy-mm-dd"
,
COOKIE
:
"D, dd M yy"
,
ISO_8601
:
"yy-mm-dd"
,
RFC_822
:
"D, d M y"
,
RFC_850
:
"DD, dd-M-y"
,
RFC_1036
:
"D, d M y"
,
RFC_1123
:
"D, d M yy"
,
RFC_2822
:
"D, d M yy"
,
RSS
:
"D, d M y"
,
TICKS
:
"!"
,
TIMESTAMP
:
"@"
,
W3C
:
"yy-mm-dd"
,
_ticksTo1970
:
(
718685
+
Math
.
floor
(
492.5
)
-
Math
.
floor
(
19.7
)
+
Math
.
floor
(
4.925
))
*
24
*
60
*
60
*
1e7
,
formatDate
:
function
(
e
,
t
,
n
){
if
(
!
t
)
return
""
;
var
r
=
(
n
?
n
.
dayNamesShort
:
null
)
||
this
.
_defaults
.
dayNamesShort
,
i
=
(
n
?
n
.
dayNames
:
null
)
||
this
.
_defaults
.
dayNames
,
s
=
(
n
?
n
.
monthNamesShort
:
null
)
||
this
.
_defaults
.
monthNamesShort
,
o
=
(
n
?
n
.
monthNames
:
null
)
||
this
.
_defaults
.
monthNames
,
u
=
function
(
t
){
var
n
=
h
+
1
<
e
.
length
&&
e
.
charAt
(
h
+
1
)
==
t
;
return
n
&&
h
++
,
n
},
a
=
function
(
e
,
t
,
n
){
var
r
=
""
+
t
;
if
(
u
(
e
))
while
(
r
.
length
<
n
)
r
=
"0"
+
r
;
return
r
},
f
=
function
(
e
,
t
,
n
,
r
){
return
u
(
e
)
?
r
[
t
]
:
n
[
t
]},
l
=
""
,
c
=!
1
;
if
(
t
)
for
(
var
h
=
0
;
h
<
e
.
length
;
h
++
)
if
(
c
)
e
.
charAt
(
h
)
==
"'"
&&!
u
(
"'"
)
?
c
=!
1
:
l
+=
e
.
charAt
(
h
);
else
switch
(
e
.
charAt
(
h
)){
case
"d"
:
l
+=
a
(
"d"
,
t
.
getDate
(),
2
);
break
;
case
"D"
:
l
+=
f
(
"D"
,
t
.
getDay
(),
r
,
i
);
break
;
case
"o"
:
l
+=
a
(
"o"
,
Math
.
round
(((
new
Date
(
t
.
getFullYear
(),
t
.
getMonth
(),
t
.
getDate
())).
getTime
()
-
(
new
Date
(
t
.
getFullYear
(),
0
,
0
)).
getTime
())
/
864e5
),
3
);
break
;
case
"m"
:
l
+=
a
(
"m"
,
t
.
getMonth
()
+
1
,
2
);
break
;
case
"M"
:
l
+=
f
(
"M"
,
t
.
getMonth
(),
s
,
o
);
break
;
case
"y"
:
l
+=
u
(
"y"
)
?
t
.
getFullYear
()
:
(
t
.
getYear
()
%
100
<
10
?
"0"
:
""
)
+
t
.
getYear
()
%
100
;
break
;
case
"@"
:
l
+=
t
.
getTime
();
break
;
case
"!"
:
l
+=
t
.
getTime
()
*
1e4
+
this
.
_ticksTo1970
;
break
;
case
"'"
:
u
(
"'"
)
?
l
+=
"'"
:
c
=!
0
;
break
;
default
:
l
+=
e
.
charAt
(
h
)}
return
l
},
_possibleChars
:
function
(
e
){
var
t
=
""
,
n
=!
1
,
r
=
function
(
t
){
var
n
=
i
+
1
<
e
.
length
&&
e
.
charAt
(
i
+
1
)
==
t
;
return
n
&&
i
++
,
n
};
for
(
var
i
=
0
;
i
<
e
.
length
;
i
++
)
if
(
n
)
e
.
charAt
(
i
)
==
"'"
&&!
r
(
"'"
)
?
n
=!
1
:
t
+=
e
.
charAt
(
i
);
else
switch
(
e
.
charAt
(
i
)){
case
"d"
:
case
"m"
:
case
"y"
:
case
"@"
:
t
+=
"0123456789"
;
break
;
case
"D"
:
case
"M"
:
return
null
;
case
"'"
:
r
(
"'"
)
?
t
+=
"'"
:
n
=!
0
;
break
;
default
:
t
+=
e
.
charAt
(
i
)}
return
t
},
_get
:
function
(
e
,
t
){
return
e
.
settings
[
t
]
!==
undefined
?
e
.
settings
[
t
]
:
this
.
_defaults
[
t
]},
_setDateFromField
:
function
(
e
,
t
){
if
(
e
.
input
.
val
()
==
e
.
lastVal
)
return
;
var
n
=
this
.
_get
(
e
,
"dateFormat"
),
r
=
e
.
lastVal
=
e
.
input
?
e
.
input
.
val
()
:
null
,
i
,
s
;
i
=
s
=
this
.
_getDefaultDate
(
e
);
var
o
=
this
.
_getFormatConfig
(
e
);
try
{
i
=
this
.
parseDate
(
n
,
r
,
o
)
||
s
}
catch
(
u
){
this
.
log
(
u
),
r
=
t
?
""
:
r
}
e
.
selectedDay
=
i
.
getDate
(),
e
.
drawMonth
=
e
.
selectedMonth
=
i
.
getMonth
(),
e
.
drawYear
=
e
.
selectedYear
=
i
.
getFullYear
(),
e
.
currentDay
=
r
?
i
.
getDate
()
:
0
,
e
.
currentMonth
=
r
?
i
.
getMonth
()
:
0
,
e
.
currentYear
=
r
?
i
.
getFullYear
()
:
0
,
this
.
_adjustInstDate
(
e
)},
_getDefaultDate
:
function
(
e
){
return
this
.
_restrictMinMax
(
e
,
this
.
_determineDate
(
e
,
this
.
_get
(
e
,
"defaultDate"
),
new
Date
))},
_determineDate
:
function
(
e
,
t
,
n
){
var
r
=
function
(
e
){
var
t
=
new
Date
;
return
t
.
setDate
(
t
.
getDate
()
+
e
),
t
},
i
=
function
(
t
){
try
{
return
$
.
datepicker
.
parseDate
(
$
.
datepicker
.
_get
(
e
,
"dateFormat"
),
t
,
$
.
datepicker
.
_getFormatConfig
(
e
))}
catch
(
n
){}
var
r
=
(
t
.
toLowerCase
().
match
(
/^c/
)
?
$
.
datepicker
.
_getDate
(
e
)
:
null
)
||
new
Date
,
i
=
r
.
getFullYear
(),
s
=
r
.
getMonth
(),
o
=
r
.
getDate
(),
u
=
/([+-]?[0-9]+)\s*(d|D|w|W|m|M|y|Y)?/g
,
a
=
u
.
exec
(
t
);
while
(
a
){
switch
(
a
[
2
]
||
"d"
){
case
"d"
:
case
"D"
:
o
+=
parseInt
(
a
[
1
],
10
);
break
;
case
"w"
:
case
"W"
:
o
+=
parseInt
(
a
[
1
],
10
)
*
7
;
break
;
case
"m"
:
case
"M"
:
s
+=
parseInt
(
a
[
1
],
10
),
o
=
Math
.
min
(
o
,
$
.
datepicker
.
_getDaysInMonth
(
i
,
s
));
break
;
case
"y"
:
case
"Y"
:
i
+=
parseInt
(
a
[
1
],
10
),
o
=
Math
.
min
(
o
,
$
.
datepicker
.
_getDaysInMonth
(
i
,
s
))}
a
=
u
.
exec
(
t
)}
return
new
Date
(
i
,
s
,
o
)},
s
=
t
==
null
||
t
===
""
?
n
:
typeof
t
==
"string"
?
i
(
t
)
:
typeof
t
==
"number"
?
isNaN
(
t
)
?
n
:
r
(
t
)
:
new
Date
(
t
.
getTime
());
return
s
=
s
&&
s
.
toString
()
==
"Invalid Date"
?
n
:
s
,
s
&&
(
s
.
setHours
(
0
),
s
.
setMinutes
(
0
),
s
.
setSeconds
(
0
),
s
.
setMilliseconds
(
0
)),
this
.
_daylightSavingAdjust
(
s
)},
_daylightSavingAdjust
:
function
(
e
){
return
e
?
(
e
.
setHours
(
e
.
getHours
()
>
12
?
e
.
getHours
()
+
2
:
0
),
e
)
:
null
},
_setDate
:
function
(
e
,
t
,
n
){
var
r
=!
t
,
i
=
e
.
selectedMonth
,
s
=
e
.
selectedYear
,
o
=
this
.
_restrictMinMax
(
e
,
this
.
_determineDate
(
e
,
t
,
new
Date
));
e
.
selectedDay
=
e
.
currentDay
=
o
.
getDate
(),
e
.
drawMonth
=
e
.
selectedMonth
=
e
.
currentMonth
=
o
.
getMonth
(),
e
.
drawYear
=
e
.
selectedYear
=
e
.
currentYear
=
o
.
getFullYear
(),(
i
!=
e
.
selectedMonth
||
s
!=
e
.
selectedYear
)
&&!
n
&&
this
.
_notifyChange
(
e
),
this
.
_adjustInstDate
(
e
),
e
.
input
&&
e
.
input
.
val
(
r
?
""
:
this
.
_formatDate
(
e
))},
_getDate
:
function
(
e
){
var
t
=!
e
.
currentYear
||
e
.
input
&&
e
.
input
.
val
()
==
""
?
null
:
this
.
_daylightSavingAdjust
(
new
Date
(
e
.
currentYear
,
e
.
currentMonth
,
e
.
currentDay
));
return
t
},
_attachHandlers
:
function
(
e
){
var
t
=
this
.
_get
(
e
,
"stepMonths"
),
n
=
"#"
+
e
.
id
.
replace
(
/\\\\/g
,
"\\"
);
e
.
dpDiv
.
find
(
"[data-handler]"
).
map
(
function
(){
var
e
=
{
prev
:
function
(){
window
[
"DP_jQuery_"
+
dpuuid
].
datepicker
.
_adjustDate
(
n
,
-
t
,
"M"
)},
next
:
function
(){
window
[
"DP_jQuery_"
+
dpuuid
].
datepicker
.
_adjustDate
(
n
,
+
t
,
"M"
)},
hide
:
function
(){
window
[
"DP_jQuery_"
+
dpuuid
].
datepicker
.
_hideDatepicker
()},
today
:
function
(){
window
[
"DP_jQuery_"
+
dpuuid
].
datepicker
.
_gotoToday
(
n
)},
selectDay
:
function
(){
return
window
[
"DP_jQuery_"
+
dpuuid
].
datepicker
.
_selectDay
(
n
,
+
this
.
getAttribute
(
"data-month"
),
+
this
.
getAttribute
(
"data-year"
),
this
),
!
1
},
selectMonth
:
function
(){
return
window
[
"DP_jQuery_"
+
dpuuid
].
datepicker
.
_selectMonthYear
(
n
,
this
,
"M"
),
!
1
},
selectYear
:
function
(){
return
window
[
"DP_jQuery_"
+
dpuuid
].
datepicker
.
_selectMonthYear
(
n
,
this
,
"Y"
),
!
1
}};
$
(
this
).
bind
(
this
.
getAttribute
(
"data-event"
),
e
[
this
.
getAttribute
(
"data-handler"
)])})},
_generateHTML
:
function
(
e
){
var
t
=
new
Date
;
t
=
this
.
_daylightSavingAdjust
(
new
Date
(
t
.
getFullYear
(),
t
.
getMonth
(),
t
.
getDate
()));
var
n
=
this
.
_get
(
e
,
"isRTL"
),
r
=
this
.
_get
(
e
,
"showButtonPanel"
),
i
=
this
.
_get
(
e
,
"hideIfNoPrevNext"
),
s
=
this
.
_get
(
e
,
"navigationAsDateFormat"
),
o
=
this
.
_getNumberOfMonths
(
e
),
u
=
this
.
_get
(
e
,
"showCurrentAtPos"
),
a
=
this
.
_get
(
e
,
"stepMonths"
),
f
=
o
[
0
]
!=
1
||
o
[
1
]
!=
1
,
l
=
this
.
_daylightSavingAdjust
(
e
.
currentDay
?
new
Date
(
e
.
currentYear
,
e
.
currentMonth
,
e
.
currentDay
)
:
new
Date
(
9999
,
9
,
9
)),
c
=
this
.
_getMinMaxDate
(
e
,
"min"
),
h
=
this
.
_getMinMaxDate
(
e
,
"max"
),
p
=
e
.
drawMonth
-
u
,
d
=
e
.
drawYear
;
p
<
0
&&
(
p
+=
12
,
d
--
);
if
(
h
){
var
v
=
this
.
_daylightSavingAdjust
(
new
Date
(
h
.
getFullYear
(),
h
.
getMonth
()
-
o
[
0
]
*
o
[
1
]
+
1
,
h
.
getDate
()));
v
=
c
&&
v
<
c
?
c
:
v
;
while
(
this
.
_daylightSavingAdjust
(
new
Date
(
d
,
p
,
1
))
>
v
)
p
--
,
p
<
0
&&
(
p
=
11
,
d
--
)}
e
.
drawMonth
=
p
,
e
.
drawYear
=
d
;
var
m
=
this
.
_get
(
e
,
"prevText"
);
m
=
s
?
this
.
formatDate
(
m
,
this
.
_daylightSavingAdjust
(
new
Date
(
d
,
p
-
a
,
1
)),
this
.
_getFormatConfig
(
e
))
:
m
;
var
g
=
this
.
_canAdjustMonth
(
e
,
-
1
,
d
,
p
)
?
'<a class="ui-datepicker-prev ui-corner-all" data-handler="prev" data-event="click" title="'
+
m
+
'"><span class="ui-icon ui-icon-circle-triangle-'
+
(
n
?
"e"
:
"w"
)
+
'">'
+
m
+
"</span></a>"
:
i
?
""
:
'<a class="ui-datepicker-prev ui-corner-all ui-state-disabled" title="'
+
m
+
'"><span class="ui-icon ui-icon-circle-triangle-'
+
(
n
?
"e"
:
"w"
)
+
'">'
+
m
+
"</span></a>"
,
y
=
this
.
_get
(
e
,
"nextText"
);
y
=
s
?
this
.
formatDate
(
y
,
this
.
_daylightSavingAdjust
(
new
Date
(
d
,
p
+
a
,
1
)),
this
.
_getFormatConfig
(
e
))
:
y
;
var
b
=
this
.
_canAdjustMonth
(
e
,
1
,
d
,
p
)
?
'<a class="ui-datepicker-next ui-corner-all" data-handler="next" data-event="click" title="'
+
y
+
'"><span class="ui-icon ui-icon-circle-triangle-'
+
(
n
?
"w"
:
"e"
)
+
'">'
+
y
+
"</span></a>"
:
i
?
""
:
'<a class="ui-datepicker-next ui-corner-all ui-state-disabled" title="'
+
y
+
'"><span class="ui-icon ui-icon-circle-triangle-'
+
(
n
?
"w"
:
"e"
)
+
'">'
+
y
+
"</span></a>"
,
w
=
this
.
_get
(
e
,
"currentText"
),
E
=
this
.
_get
(
e
,
"gotoCurrent"
)
&&
e
.
currentDay
?
l
:
t
;
w
=
s
?
this
.
formatDate
(
w
,
E
,
this
.
_getFormatConfig
(
e
))
:
w
;
var
S
=
e
.
inline
?
""
:
'<button type="button" class="ui-datepicker-close ui-state-default ui-priority-primary ui-corner-all" data-handler="hide" data-event="click">'
+
this
.
_get
(
e
,
"closeText"
)
+
"</button>"
,
x
=
r
?
'<div class="ui-datepicker-buttonpane ui-widget-content">'
+
(
n
?
S
:
""
)
+
(
this
.
_isInRange
(
e
,
E
)
?
'<button type="button" class="ui-datepicker-current ui-state-default ui-priority-secondary ui-corner-all" data-handler="today" data-event="click">'
+
w
+
"</button>"
:
""
)
+
(
n
?
""
:
S
)
+
"</div>"
:
""
,
T
=
parseInt
(
this
.
_get
(
e
,
"firstDay"
),
10
);
T
=
isNaN
(
T
)
?
0
:
T
;
var
N
=
this
.
_get
(
e
,
"showWeek"
),
C
=
this
.
_get
(
e
,
"dayNames"
),
k
=
this
.
_get
(
e
,
"dayNamesShort"
),
L
=
this
.
_get
(
e
,
"dayNamesMin"
),
A
=
this
.
_get
(
e
,
"monthNames"
),
O
=
this
.
_get
(
e
,
"monthNamesShort"
),
M
=
this
.
_get
(
e
,
"beforeShowDay"
),
_
=
this
.
_get
(
e
,
"showOtherMonths"
),
D
=
this
.
_get
(
e
,
"selectOtherMonths"
),
P
=
this
.
_get
(
e
,
"calculateWeek"
)
||
this
.
iso8601Week
,
H
=
this
.
_getDefaultDate
(
e
),
B
=
""
;
for
(
var
j
=
0
;
j
<
o
[
0
];
j
++
){
var
F
=
""
;
this
.
maxRows
=
4
;
for
(
var
I
=
0
;
I
<
o
[
1
];
I
++
){
var
q
=
this
.
_daylightSavingAdjust
(
new
Date
(
d
,
p
,
e
.
selectedDay
)),
R
=
" ui-corner-all"
,
U
=
""
;
if
(
f
){
U
+=
'<div class="ui-datepicker-group'
;
if
(
o
[
1
]
>
1
)
switch
(
I
){
case
0
:
U
+=
" ui-datepicker-group-first"
,
R
=
" ui-corner-"
+
(
n
?
"right"
:
"left"
);
break
;
case
o
[
1
]
-
1
:
U
+=
" ui-datepicker-group-last"
,
R
=
" ui-corner-"
+
(
n
?
"left"
:
"right"
);
break
;
default
:
U
+=
" ui-datepicker-group-middle"
,
R
=
""
}
U
+=
'">'
}
U
+=
'<div class="ui-datepicker-header ui-widget-header ui-helper-clearfix'
+
R
+
'">'
+
(
/all|left/
.
test
(
R
)
&&
j
==
0
?
n
?
b
:
g
:
""
)
+
(
/all|right/
.
test
(
R
)
&&
j
==
0
?
n
?
g
:
b
:
""
)
+
this
.
_generateMonthYearHeader
(
e
,
p
,
d
,
c
,
h
,
j
>
0
||
I
>
0
,
A
,
O
)
+
'</div><table class="ui-datepicker-calendar"><thead>'
+
"<tr>"
;
var
z
=
N
?
'<th class="ui-datepicker-week-col">'
+
this
.
_get
(
e
,
"weekHeader"
)
+
"</th>"
:
""
;
for
(
var
W
=
0
;
W
<
7
;
W
++
){
var
X
=
(
W
+
T
)
%
7
;
z
+=
"<th"
+
((
W
+
T
+
6
)
%
7
>=
5
?
' class="ui-datepicker-week-end"'
:
""
)
+
">"
+
'<span title="'
+
C
[
X
]
+
'">'
+
L
[
X
]
+
"</span></th>"
}
U
+=
z
+
"</tr></thead><tbody>"
;
var
V
=
this
.
_getDaysInMonth
(
d
,
p
);
d
==
e
.
selectedYear
&&
p
==
e
.
selectedMonth
&&
(
e
.
selectedDay
=
Math
.
min
(
e
.
selectedDay
,
V
));
var
J
=
(
this
.
_getFirstDayOfMonth
(
d
,
p
)
-
T
+
7
)
%
7
,
K
=
Math
.
ceil
((
J
+
V
)
/
7
),
Q
=
f
?
this
.
maxRows
>
K
?
this
.
maxRows
:
K
:
K
;
this
.
maxRows
=
Q
;
var
G
=
this
.
_daylightSavingAdjust
(
new
Date
(
d
,
p
,
1
-
J
));
for
(
var
Y
=
0
;
Y
<
Q
;
Y
++
){
U
+=
"<tr>"
;
var
Z
=
N
?
'<td class="ui-datepicker-week-col">'
+
this
.
_get
(
e
,
"calculateWeek"
)(
G
)
+
"</td>"
:
""
;
for
(
var
W
=
0
;
W
<
7
;
W
++
){
var
et
=
M
?
M
.
apply
(
e
.
input
?
e
.
input
[
0
]
:
null
,[
G
])
:
[
!
0
,
""
],
tt
=
G
.
getMonth
()
!=
p
,
nt
=
tt
&&!
D
||!
et
[
0
]
||
c
&&
G
<
c
||
h
&&
G
>
h
;
Z
+=
'<td class="'
+
((
W
+
T
+
6
)
%
7
>=
5
?
" ui-datepicker-week-end"
:
""
)
+
(
tt
?
" ui-datepicker-other-month"
:
""
)
+
(
G
.
getTime
()
==
q
.
getTime
()
&&
p
==
e
.
selectedMonth
&&
e
.
_keyEvent
||
H
.
getTime
()
==
G
.
getTime
()
&&
H
.
getTime
()
==
q
.
getTime
()
?
" "
+
this
.
_dayOverClass
:
""
)
+
(
nt
?
" "
+
this
.
_unselectableClass
+
" ui-state-disabled"
:
""
)
+
(
tt
&&!
_
?
""
:
" "
+
et
[
1
]
+
(
G
.
getTime
()
==
l
.
getTime
()
?
" "
+
this
.
_currentClass
:
""
)
+
(
G
.
getTime
()
==
t
.
getTime
()
?
" ui-datepicker-today"
:
""
))
+
'"'
+
((
!
tt
||
_
)
&&
et
[
2
]
?
' title="'
+
et
[
2
]
+
'"'
:
""
)
+
(
nt
?
""
:
' data-handler="selectDay" data-event="click" data-month="'
+
G
.
getMonth
()
+
'" data-year="'
+
G
.
getFullYear
()
+
'"'
)
+
">"
+
(
tt
&&!
_
?
" "
:
nt
?
'<span class="ui-state-default">'
+
G
.
getDate
()
+
"</span>"
:
'<a class="ui-state-default'
+
(
G
.
getTime
()
==
t
.
getTime
()
?
" ui-state-highlight"
:
""
)
+
(
G
.
getTime
()
==
l
.
getTime
()
?
" ui-state-active"
:
""
)
+
(
tt
?
" ui-priority-secondary"
:
""
)
+
'" href="#">'
+
G
.
getDate
()
+
"</a>"
)
+
"</td>"
,
G
.
setDate
(
G
.
getDate
()
+
1
),
G
=
this
.
_daylightSavingAdjust
(
G
)}
U
+=
Z
+
"</tr>"
}
p
++
,
p
>
11
&&
(
p
=
0
,
d
++
),
U
+=
"</tbody></table>"
+
(
f
?
"</div>"
+
(
o
[
0
]
>
0
&&
I
==
o
[
1
]
-
1
?
'<div class="ui-datepicker-row-break"></div>'
:
""
)
:
""
),
F
+=
U
}
B
+=
F
}
return
B
+=
x
+
(
$
.
ui
.
ie6
&&!
e
.
inline
?
'<iframe src="javascript:false;" class="ui-datepicker-cover" frameborder="0"></iframe>'
:
""
),
e
.
_keyEvent
=!
1
,
B
},
_generateMonthYearHeader
:
function
(
e
,
t
,
n
,
r
,
i
,
s
,
o
,
u
){
var
a
=
this
.
_get
(
e
,
"changeMonth"
),
f
=
this
.
_get
(
e
,
"changeYear"
),
l
=
this
.
_get
(
e
,
"showMonthAfterYear"
),
c
=
'<div class="ui-datepicker-title">'
,
h
=
""
;
if
(
s
||!
a
)
h
+=
'<span class="ui-datepicker-month">'
+
o
[
t
]
+
"</span>"
;
else
{
var
p
=
r
&&
r
.
getFullYear
()
==
n
,
d
=
i
&&
i
.
getFullYear
()
==
n
;
h
+=
'<select class="ui-datepicker-month" data-handler="selectMonth" data-event="change">'
;
for
(
var
v
=
0
;
v
<
12
;
v
++
)(
!
p
||
v
>=
r
.
getMonth
())
&&
(
!
d
||
v
<=
i
.
getMonth
())
&&
(
h
+=
'<option value="'
+
v
+
'"'
+
(
v
==
t
?
' selected="selected"'
:
""
)
+
">"
+
u
[
v
]
+
"</option>"
);
h
+=
"</select>"
}
l
||
(
c
+=
h
+
(
s
||!
a
||!
f
?
" "
:
""
));
if
(
!
e
.
yearshtml
){
e
.
yearshtml
=
""
;
if
(
s
||!
f
)
c
+=
'<span class="ui-datepicker-year">'
+
n
+
"</span>"
;
else
{
var
m
=
this
.
_get
(
e
,
"yearRange"
).
split
(
":"
),
g
=
(
new
Date
).
getFullYear
(),
y
=
function
(
e
){
var
t
=
e
.
match
(
/c[+-].*/
)
?
n
+
parseInt
(
e
.
substring
(
1
),
10
)
:
e
.
match
(
/[+-].*/
)
?
g
+
parseInt
(
e
,
10
)
:
parseInt
(
e
,
10
);
return
isNaN
(
t
)
?
g
:
t
},
b
=
y
(
m
[
0
]),
w
=
Math
.
max
(
b
,
y
(
m
[
1
]
||
""
));
b
=
r
?
Math
.
max
(
b
,
r
.
getFullYear
())
:
b
,
w
=
i
?
Math
.
min
(
w
,
i
.
getFullYear
())
:
w
,
e
.
yearshtml
+=
'<select class="ui-datepicker-year" data-handler="selectYear" data-event="change">'
;
for
(;
b
<=
w
;
b
++
)
e
.
yearshtml
+=
'<option value="'
+
b
+
'"'
+
(
b
==
n
?
' selected="selected"'
:
""
)
+
">"
+
b
+
"</option>"
;
e
.
yearshtml
+=
"</select>"
,
c
+=
e
.
yearshtml
,
e
.
yearshtml
=
null
}}
return
c
+=
this
.
_get
(
e
,
"yearSuffix"
),
l
&&
(
c
+=
(
s
||!
a
||!
f
?
" "
:
""
)
+
h
),
c
+=
"</div>"
,
c
},
_adjustInstDate
:
function
(
e
,
t
,
n
){
var
r
=
e
.
drawYear
+
(
n
==
"Y"
?
t
:
0
),
i
=
e
.
drawMonth
+
(
n
==
"M"
?
t
:
0
),
s
=
Math
.
min
(
e
.
selectedDay
,
this
.
_getDaysInMonth
(
r
,
i
))
+
(
n
==
"D"
?
t
:
0
),
o
=
this
.
_restrictMinMax
(
e
,
this
.
_daylightSavingAdjust
(
new
Date
(
r
,
i
,
s
)));
e
.
selectedDay
=
o
.
getDate
(),
e
.
drawMonth
=
e
.
selectedMonth
=
o
.
getMonth
(),
e
.
drawYear
=
e
.
selectedYear
=
o
.
getFullYear
(),(
n
==
"M"
||
n
==
"Y"
)
&&
this
.
_notifyChange
(
e
)},
_restrictMinMax
:
function
(
e
,
t
){
var
n
=
this
.
_getMinMaxDate
(
e
,
"min"
),
r
=
this
.
_getMinMaxDate
(
e
,
"max"
),
i
=
n
&&
t
<
n
?
n
:
t
;
return
i
=
r
&&
i
>
r
?
r
:
i
,
i
},
_notifyChange
:
function
(
e
){
var
t
=
this
.
_get
(
e
,
"onChangeMonthYear"
);
t
&&
t
.
apply
(
e
.
input
?
e
.
input
[
0
]
:
null
,[
e
.
selectedYear
,
e
.
selectedMonth
+
1
,
e
])},
_getNumberOfMonths
:
function
(
e
){
var
t
=
this
.
_get
(
e
,
"numberOfMonths"
);
return
t
==
null
?
[
1
,
1
]
:
typeof
t
==
"number"
?
[
1
,
t
]
:
t
},
_getMinMaxDate
:
function
(
e
,
t
){
return
this
.
_determineDate
(
e
,
this
.
_get
(
e
,
t
+
"Date"
),
null
)},
_getDaysInMonth
:
function
(
e
,
t
){
return
32
-
this
.
_daylightSavingAdjust
(
new
Date
(
e
,
t
,
32
)).
getDate
()},
_getFirstDayOfMonth
:
function
(
e
,
t
){
return
(
new
Date
(
e
,
t
,
1
)).
getDay
()},
_canAdjustMonth
:
function
(
e
,
t
,
n
,
r
){
var
i
=
this
.
_getNumberOfMonths
(
e
),
s
=
this
.
_daylightSavingAdjust
(
new
Date
(
n
,
r
+
(
t
<
0
?
t
:
i
[
0
]
*
i
[
1
]),
1
));
return
t
<
0
&&
s
.
setDate
(
this
.
_getDaysInMonth
(
s
.
getFullYear
(),
s
.
getMonth
())),
this
.
_isInRange
(
e
,
s
)},
_isInRange
:
function
(
e
,
t
){
var
n
=
this
.
_getMinMaxDate
(
e
,
"min"
),
r
=
this
.
_getMinMaxDate
(
e
,
"max"
);
return
(
!
n
||
t
.
getTime
()
>=
n
.
getTime
())
&&
(
!
r
||
t
.
getTime
()
<=
r
.
getTime
())},
_getFormatConfig
:
function
(
e
){
var
t
=
this
.
_get
(
e
,
"shortYearCutoff"
);
return
t
=
typeof
t
!=
"string"
?
t
:
(
new
Date
).
getFullYear
()
%
100
+
parseInt
(
t
,
10
),{
shortYearCutoff
:
t
,
dayNamesShort
:
this
.
_get
(
e
,
"dayNamesShort"
),
dayNames
:
this
.
_get
(
e
,
"dayNames"
),
monthNamesShort
:
this
.
_get
(
e
,
"monthNamesShort"
),
monthNames
:
this
.
_get
(
e
,
"monthNames"
)}},
_formatDate
:
function
(
e
,
t
,
n
,
r
){
t
||
(
e
.
currentDay
=
e
.
selectedDay
,
e
.
currentMonth
=
e
.
selectedMonth
,
e
.
currentYear
=
e
.
selectedYear
);
var
i
=
t
?
typeof
t
==
"object"
?
t
:
this
.
_daylightSavingAdjust
(
new
Date
(
r
,
n
,
t
))
:
this
.
_daylightSavingAdjust
(
new
Date
(
e
.
currentYear
,
e
.
currentMonth
,
e
.
currentDay
));
return
this
.
formatDate
(
this
.
_get
(
e
,
"dateFormat"
),
i
,
this
.
_getFormatConfig
(
e
))}}),
$
.
fn
.
datepicker
=
function
(
e
){
if
(
!
this
.
length
)
return
this
;
$
.
datepicker
.
initialized
||
(
$
(
document
).
mousedown
(
$
.
datepicker
.
_checkExternalClick
).
find
(
document
.
body
).
append
(
$
.
datepicker
.
dpDiv
),
$
.
datepicker
.
initialized
=!
0
);
var
t
=
Array
.
prototype
.
slice
.
call
(
arguments
,
1
);
return
typeof
e
!=
"string"
||
e
!=
"isDisabled"
&&
e
!=
"getDate"
&&
e
!=
"widget"
?
e
==
"option"
&&
arguments
.
length
==
2
&&
typeof
arguments
[
1
]
==
"string"
?
$
.
datepicker
[
"_"
+
e
+
"Datepicker"
].
apply
(
$
.
datepicker
,[
this
[
0
]].
concat
(
t
))
:
this
.
each
(
function
(){
typeof
e
==
"string"
?
$
.
datepicker
[
"_"
+
e
+
"Datepicker"
].
apply
(
$
.
datepicker
,[
this
].
concat
(
t
))
:
$
.
datepicker
.
_attachDatepicker
(
this
,
e
)})
:
$
.
datepicker
[
"_"
+
e
+
"Datepicker"
].
apply
(
$
.
datepicker
,[
this
[
0
]].
concat
(
t
))},
$
.
datepicker
=
new
Datepicker
,
$
.
datepicker
.
initialized
=!
1
,
$
.
datepicker
.
uuid
=
(
new
Date
).
getTime
(),
$
.
datepicker
.
version
=
"1.9.1"
,
window
[
"DP_jQuery_"
+
dpuuid
]
=
$
})(
jQuery
);(
function
(
e
,
t
){
var
n
=
"ui-dialog ui-widget ui-widget-content ui-corner-all "
,
r
=
{
buttons
:!
0
,
height
:!
0
,
maxHeight
:!
0
,
maxWidth
:!
0
,
minHeight
:!
0
,
minWidth
:!
0
,
width
:!
0
},
i
=
{
maxHeight
:!
0
,
maxWidth
:!
0
,
minHeight
:!
0
,
minWidth
:!
0
};
e
.
widget
(
"ui.dialog"
,{
version
:
"1.9.1"
,
options
:
{
autoOpen
:!
0
,
buttons
:
{},
closeOnEscape
:!
0
,
closeText
:
"close"
,
dialogClass
:
""
,
draggable
:!
0
,
hide
:
null
,
height
:
"auto"
,
maxHeight
:!
1
,
maxWidth
:!
1
,
minHeight
:
150
,
minWidth
:
150
,
modal
:!
1
,
position
:
{
my
:
"center"
,
at
:
"center"
,
of
:
window
,
collision
:
"fit"
,
using
:
function
(
t
){
var
n
=
e
(
this
).
css
(
t
).
offset
().
top
;
n
<
0
&&
e
(
this
).
css
(
"top"
,
t
.
top
-
n
)}},
resizable
:!
0
,
show
:
null
,
stack
:!
0
,
title
:
""
,
width
:
300
,
zIndex
:
1e3
},
_create
:
function
(){
this
.
originalTitle
=
this
.
element
.
attr
(
"title"
),
typeof
this
.
originalTitle
!=
"string"
&&
(
this
.
originalTitle
=
""
),
this
.
oldPosition
=
{
parent
:
this
.
element
.
parent
(),
index
:
this
.
element
.
parent
().
children
().
index
(
this
.
element
)},
this
.
options
.
title
=
this
.
options
.
title
||
this
.
originalTitle
;
var
t
=
this
,
r
=
this
.
options
,
i
=
r
.
title
||
" "
,
s
,
o
,
u
,
a
,
f
;
s
=
(
this
.
uiDialog
=
e
(
"<div>"
)).
addClass
(
n
+
r
.
dialogClass
).
css
({
display
:
"none"
,
outline
:
0
,
zIndex
:
r
.
zIndex
}).
attr
(
"tabIndex"
,
-
1
).
keydown
(
function
(
n
){
r
.
closeOnEscape
&&!
n
.
isDefaultPrevented
()
&&
n
.
keyCode
&&
n
.
keyCode
===
e
.
ui
.
keyCode
.
ESCAPE
&&
(
t
.
close
(
n
),
n
.
preventDefault
())}).
mousedown
(
function
(
e
){
t
.
moveToTop
(
!
1
,
e
)}).
appendTo
(
"body"
),
this
.
element
.
show
().
removeAttr
(
"title"
).
addClass
(
"ui-dialog-content ui-widget-content"
).
appendTo
(
s
),
o
=
(
this
.
uiDialogTitlebar
=
e
(
"<div>"
)).
addClass
(
"ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix"
).
bind
(
"mousedown"
,
function
(){
s
.
focus
()}).
prependTo
(
s
),
u
=
e
(
"<a href='#'></a>"
).
addClass
(
"ui-dialog-titlebar-close ui-corner-all"
).
attr
(
"role"
,
"button"
).
click
(
function
(
e
){
e
.
preventDefault
(),
t
.
close
(
e
)}).
appendTo
(
o
),(
this
.
uiDialogTitlebarCloseText
=
e
(
"<span>"
)).
addClass
(
"ui-icon ui-icon-closethick"
).
text
(
r
.
closeText
).
appendTo
(
u
),
a
=
e
(
"<span>"
).
uniqueId
().
addClass
(
"ui-dialog-title"
).
html
(
i
).
prependTo
(
o
),
f
=
(
this
.
uiDialogButtonPane
=
e
(
"<div>"
)).
addClass
(
"ui-dialog-buttonpane ui-widget-content ui-helper-clearfix"
),(
this
.
uiButtonSet
=
e
(
"<div>"
)).
addClass
(
"ui-dialog-buttonset"
).
appendTo
(
f
),
s
.
attr
({
role
:
"dialog"
,
"aria-labelledby"
:
a
.
attr
(
"id"
)}),
o
.
find
(
"*"
).
add
(
o
).
disableSelection
(),
this
.
_hoverable
(
u
),
this
.
_focusable
(
u
),
r
.
draggable
&&
e
.
fn
.
draggable
&&
this
.
_makeDraggable
(),
r
.
resizable
&&
e
.
fn
.
resizable
&&
this
.
_makeResizable
(),
this
.
_createButtons
(
r
.
buttons
),
this
.
_isOpen
=!
1
,
e
.
fn
.
bgiframe
&&
s
.
bgiframe
(),
this
.
_on
(
s
,{
keydown
:
function
(
t
){
if
(
!
r
.
modal
||
t
.
keyCode
!==
e
.
ui
.
keyCode
.
TAB
)
return
;
var
n
=
e
(
":tabbable"
,
s
),
i
=
n
.
filter
(
":first"
),
o
=
n
.
filter
(
":last"
);
if
(
t
.
target
===
o
[
0
]
&&!
t
.
shiftKey
)
return
i
.
focus
(
1
),
!
1
;
if
(
t
.
target
===
i
[
0
]
&&
t
.
shiftKey
)
return
o
.
focus
(
1
),
!
1
}})},
_init
:
function
(){
this
.
options
.
autoOpen
&&
this
.
open
()},
_destroy
:
function
(){
var
e
,
t
=
this
.
oldPosition
;
this
.
overlay
&&
this
.
overlay
.
destroy
(),
this
.
uiDialog
.
hide
(),
this
.
element
.
removeClass
(
"ui-dialog-content ui-widget-content"
).
hide
().
appendTo
(
"body"
),
this
.
uiDialog
.
remove
(),
this
.
originalTitle
&&
this
.
element
.
attr
(
"title"
,
this
.
originalTitle
),
e
=
t
.
parent
.
children
().
eq
(
t
.
index
),
e
.
length
&&
e
[
0
]
!==
this
.
element
[
0
]
?
e
.
before
(
this
.
element
)
:
t
.
parent
.
append
(
this
.
element
)},
widget
:
function
(){
return
this
.
uiDialog
},
close
:
function
(
t
){
var
n
=
this
,
r
,
i
;
if
(
!
this
.
_isOpen
)
return
;
if
(
!
1
===
this
.
_trigger
(
"beforeClose"
,
t
))
return
;
return
this
.
_isOpen
=!
1
,
this
.
overlay
&&
this
.
overlay
.
destroy
(),
this
.
options
.
hide
?
this
.
_hide
(
this
.
uiDialog
,
this
.
options
.
hide
,
function
(){
n
.
_trigger
(
"close"
,
t
)})
:
(
this
.
uiDialog
.
hide
(),
this
.
_trigger
(
"close"
,
t
)),
e
.
ui
.
dialog
.
overlay
.
resize
(),
this
.
options
.
modal
&&
(
r
=
0
,
e
(
".ui-dialog"
).
each
(
function
(){
this
!==
n
.
uiDialog
[
0
]
&&
(
i
=
e
(
this
).
css
(
"z-index"
),
isNaN
(
i
)
||
(
r
=
Math
.
max
(
r
,
i
)))}),
e
.
ui
.
dialog
.
maxZ
=
r
),
this
},
isOpen
:
function
(){
return
this
.
_isOpen
},
moveToTop
:
function
(
t
,
n
){
var
r
=
this
.
options
,
i
;
return
r
.
modal
&&!
t
||!
r
.
stack
&&!
r
.
modal
?
this
.
_trigger
(
"focus"
,
n
)
:
(
r
.
zIndex
>
e
.
ui
.
dialog
.
maxZ
&&
(
e
.
ui
.
dialog
.
maxZ
=
r
.
zIndex
),
this
.
overlay
&&
(
e
.
ui
.
dialog
.
maxZ
+=
1
,
e
.
ui
.
dialog
.
overlay
.
maxZ
=
e
.
ui
.
dialog
.
maxZ
,
this
.
overlay
.
$el
.
css
(
"z-index"
,
e
.
ui
.
dialog
.
overlay
.
maxZ
)),
i
=
{
scrollTop
:
this
.
element
.
scrollTop
(),
scrollLeft
:
this
.
element
.
scrollLeft
()},
e
.
ui
.
dialog
.
maxZ
+=
1
,
this
.
uiDialog
.
css
(
"z-index"
,
e
.
ui
.
dialog
.
maxZ
),
this
.
element
.
attr
(
i
),
this
.
_trigger
(
"focus"
,
n
),
this
)},
open
:
function
(){
if
(
this
.
_isOpen
)
return
;
var
t
,
n
=
this
.
options
,
r
=
this
.
uiDialog
;
return
this
.
_size
(),
this
.
_position
(
n
.
position
),
r
.
show
(
n
.
show
),
this
.
overlay
=
n
.
modal
?
new
e
.
ui
.
dialog
.
overlay
(
this
)
:
null
,
this
.
moveToTop
(
!
0
),
t
=
this
.
element
.
find
(
":tabbable"
),
t
.
length
||
(
t
=
this
.
uiDialogButtonPane
.
find
(
":tabbable"
),
t
.
length
||
(
t
=
r
)),
t
.
eq
(
0
).
focus
(),
this
.
_isOpen
=!
0
,
this
.
_trigger
(
"open"
),
this
},
_createButtons
:
function
(
t
){
var
n
=
this
,
r
=!
1
;
this
.
uiDialogButtonPane
.
remove
(),
this
.
uiButtonSet
.
empty
(),
typeof
t
==
"object"
&&
t
!==
null
&&
e
.
each
(
t
,
function
(){
return
!
(
r
=!
0
)}),
r
?
(
e
.
each
(
t
,
function
(
t
,
r
){
r
=
e
.
isFunction
(
r
)
?
{
click
:
r
,
text
:
t
}
:
r
;
var
i
=
e
(
"<button type='button'></button>"
).
attr
(
r
,
!
0
).
unbind
(
"click"
).
click
(
function
(){
r
.
click
.
apply
(
n
.
element
[
0
],
arguments
)}).
appendTo
(
n
.
uiButtonSet
);
e
.
fn
.
button
&&
i
.
button
()}),
this
.
uiDialog
.
addClass
(
"ui-dialog-buttons"
),
this
.
uiDialogButtonPane
.
appendTo
(
this
.
uiDialog
))
:
this
.
uiDialog
.
removeClass
(
"ui-dialog-buttons"
)},
_makeDraggable
:
function
(){
function
r
(
e
){
return
{
position
:
e
.
position
,
offset
:
e
.
offset
}}
var
t
=
this
,
n
=
this
.
options
;
this
.
uiDialog
.
draggable
({
cancel
:
".ui-dialog-content, .ui-dialog-titlebar-close"
,
handle
:
".ui-dialog-titlebar"
,
containment
:
"document"
,
start
:
function
(
n
,
i
){
e
(
this
).
addClass
(
"ui-dialog-dragging"
),
t
.
_trigger
(
"dragStart"
,
n
,
r
(
i
))},
drag
:
function
(
e
,
n
){
t
.
_trigger
(
"drag"
,
e
,
r
(
n
))},
stop
:
function
(
i
,
s
){
n
.
position
=
[
s
.
position
.
left
-
t
.
document
.
scrollLeft
(),
s
.
position
.
top
-
t
.
document
.
scrollTop
()],
e
(
this
).
removeClass
(
"ui-dialog-dragging"
),
t
.
_trigger
(
"dragStop"
,
i
,
r
(
s
)),
e
.
ui
.
dialog
.
overlay
.
resize
()}})},
_makeResizable
:
function
(
n
){
function
u
(
e
){
return
{
originalPosition
:
e
.
originalPosition
,
originalSize
:
e
.
originalSize
,
position
:
e
.
position
,
size
:
e
.
size
}}
n
=
n
===
t
?
this
.
options
.
resizable
:
n
;
var
r
=
this
,
i
=
this
.
options
,
s
=
this
.
uiDialog
.
css
(
"position"
),
o
=
typeof
n
==
"string"
?
n
:
"n,e,s,w,se,sw,ne,nw"
;
this
.
uiDialog
.
resizable
({
cancel
:
".ui-dialog-content"
,
containment
:
"document"
,
alsoResize
:
this
.
element
,
maxWidth
:
i
.
maxWidth
,
maxHeight
:
i
.
maxHeight
,
minWidth
:
i
.
minWidth
,
minHeight
:
this
.
_minHeight
(),
handles
:
o
,
start
:
function
(
t
,
n
){
e
(
this
).
addClass
(
"ui-dialog-resizing"
),
r
.
_trigger
(
"resizeStart"
,
t
,
u
(
n
))},
resize
:
function
(
e
,
t
){
r
.
_trigger
(
"resize"
,
e
,
u
(
t
))},
stop
:
function
(
t
,
n
){
e
(
this
).
removeClass
(
"ui-dialog-resizing"
),
i
.
height
=
e
(
this
).
height
(),
i
.
width
=
e
(
this
).
width
(),
r
.
_trigger
(
"resizeStop"
,
t
,
u
(
n
)),
e
.
ui
.
dialog
.
overlay
.
resize
()}}).
css
(
"position"
,
s
).
find
(
".ui-resizable-se"
).
addClass
(
"ui-icon ui-icon-grip-diagonal-se"
)},
_minHeight
:
function
(){
var
e
=
this
.
options
;
return
e
.
height
===
"auto"
?
e
.
minHeight
:
Math
.
min
(
e
.
minHeight
,
e
.
height
)},
_position
:
function
(
t
){
var
n
=
[],
r
=
[
0
,
0
],
i
;
if
(
t
){
if
(
typeof
t
==
"string"
||
typeof
t
==
"object"
&&
"0"
in
t
)
n
=
t
.
split
?
t
.
split
(
" "
)
:
[
t
[
0
],
t
[
1
]],
n
.
length
===
1
&&
(
n
[
1
]
=
n
[
0
]),
e
.
each
([
"left"
,
"top"
],
function
(
e
,
t
){
+
n
[
e
]
===
n
[
e
]
&&
(
r
[
e
]
=
n
[
e
],
n
[
e
]
=
t
)}),
t
=
{
my
:
n
[
0
]
+
(
r
[
0
]
<
0
?
r
[
0
]
:
"+"
+
r
[
0
])
+
" "
+
n
[
1
]
+
(
r
[
1
]
<
0
?
r
[
1
]
:
"+"
+
r
[
1
]),
at
:
n
.
join
(
" "
)};
t
=
e
.
extend
({},
e
.
ui
.
dialog
.
prototype
.
options
.
position
,
t
)}
else
t
=
e
.
ui
.
dialog
.
prototype
.
options
.
position
;
i
=
this
.
uiDialog
.
is
(
":visible"
),
i
||
this
.
uiDialog
.
show
(),
this
.
uiDialog
.
position
(
t
),
i
||
this
.
uiDialog
.
hide
()},
_setOptions
:
function
(
t
){
var
n
=
this
,
s
=
{},
o
=!
1
;
e
.
each
(
t
,
function
(
e
,
t
){
n
.
_setOption
(
e
,
t
),
e
in
r
&&
(
o
=!
0
),
e
in
i
&&
(
s
[
e
]
=
t
)}),
o
&&
this
.
_size
(),
this
.
uiDialog
.
is
(
":data(resizable)"
)
&&
this
.
uiDialog
.
resizable
(
"option"
,
s
)},
_setOption
:
function
(
t
,
r
){
var
i
,
s
,
o
=
this
.
uiDialog
;
switch
(
t
){
case
"buttons"
:
this
.
_createButtons
(
r
);
break
;
case
"closeText"
:
this
.
uiDialogTitlebarCloseText
.
text
(
""
+
r
);
break
;
case
"dialogClass"
:
o
.
removeClass
(
this
.
options
.
dialogClass
).
addClass
(
n
+
r
);
break
;
case
"disabled"
:
r
?
o
.
addClass
(
"ui-dialog-disabled"
)
:
o
.
removeClass
(
"ui-dialog-disabled"
);
break
;
case
"draggable"
:
i
=
o
.
is
(
":data(draggable)"
),
i
&&!
r
&&
o
.
draggable
(
"destroy"
),
!
i
&&
r
&&
this
.
_makeDraggable
();
break
;
case
"position"
:
this
.
_position
(
r
);
break
;
case
"resizable"
:
s
=
o
.
is
(
":data(resizable)"
),
s
&&!
r
&&
o
.
resizable
(
"destroy"
),
s
&&
typeof
r
==
"string"
&&
o
.
resizable
(
"option"
,
"handles"
,
r
),
!
s
&&
r
!==!
1
&&
this
.
_makeResizable
(
r
);
break
;
case
"title"
:
e
(
".ui-dialog-title"
,
this
.
uiDialogTitlebar
).
html
(
""
+
(
r
||
" "
))}
this
.
_super
(
t
,
r
)},
_size
:
function
(){
var
t
,
n
,
r
,
i
=
this
.
options
,
s
=
this
.
uiDialog
.
is
(
":visible"
);
this
.
element
.
show
().
css
({
width
:
"auto"
,
minHeight
:
0
,
height
:
0
}),
i
.
minWidth
>
i
.
width
&&
(
i
.
width
=
i
.
minWidth
),
t
=
this
.
uiDialog
.
css
({
height
:
"auto"
,
width
:
i
.
width
}).
outerHeight
(),
n
=
Math
.
max
(
0
,
i
.
minHeight
-
t
),
i
.
height
===
"auto"
?
e
.
support
.
minHeight
?
this
.
element
.
css
({
minHeight
:
n
,
height
:
"auto"
})
:
(
this
.
uiDialog
.
show
(),
r
=
this
.
element
.
css
(
"height"
,
"auto"
).
height
(),
s
||
this
.
uiDialog
.
hide
(),
this
.
element
.
height
(
Math
.
max
(
r
,
n
)))
:
this
.
element
.
height
(
Math
.
max
(
i
.
height
-
t
,
0
)),
this
.
uiDialog
.
is
(
":data(resizable)"
)
&&
this
.
uiDialog
.
resizable
(
"option"
,
"minHeight"
,
this
.
_minHeight
())}}),
e
.
extend
(
e
.
ui
.
dialog
,{
uuid
:
0
,
maxZ
:
0
,
getTitleId
:
function
(
e
){
var
t
=
e
.
attr
(
"id"
);
return
t
||
(
this
.
uuid
+=
1
,
t
=
this
.
uuid
),
"ui-dialog-title-"
+
t
},
overlay
:
function
(
t
){
this
.
$el
=
e
.
ui
.
dialog
.
overlay
.
create
(
t
)}}),
e
.
extend
(
e
.
ui
.
dialog
.
overlay
,{
instances
:
[],
oldInstances
:
[],
maxZ
:
0
,
events
:
e
.
map
(
"focus,mousedown,mouseup,keydown,keypress,click"
.
split
(
","
),
function
(
e
){
return
e
+
".dialog-overlay"
}).
join
(
" "
),
create
:
function
(
t
){
this
.
instances
.
length
===
0
&&
(
setTimeout
(
function
(){
e
.
ui
.
dialog
.
overlay
.
instances
.
length
&&
e
(
document
).
bind
(
e
.
ui
.
dialog
.
overlay
.
events
,
function
(
t
){
if
(
e
(
t
.
target
).
zIndex
()
<
e
.
ui
.
dialog
.
overlay
.
maxZ
)
return
!
1
})},
1
),
e
(
window
).
bind
(
"resize.dialog-overlay"
,
e
.
ui
.
dialog
.
overlay
.
resize
));
var
n
=
this
.
oldInstances
.
pop
()
||
e
(
"<div>"
).
addClass
(
"ui-widget-overlay"
);
return
e
(
document
).
bind
(
"keydown.dialog-overlay"
,
function
(
r
){
var
i
=
e
.
ui
.
dialog
.
overlay
.
instances
;
i
.
length
!==
0
&&
i
[
i
.
length
-
1
]
===
n
&&
t
.
options
.
closeOnEscape
&&!
r
.
isDefaultPrevented
()
&&
r
.
keyCode
&&
r
.
keyCode
===
e
.
ui
.
keyCode
.
ESCAPE
&&
(
t
.
close
(
r
),
r
.
preventDefault
())}),
n
.
appendTo
(
document
.
body
).
css
({
width
:
this
.
width
(),
height
:
this
.
height
()}),
e
.
fn
.
bgiframe
&&
n
.
bgiframe
(),
this
.
instances
.
push
(
n
),
n
},
destroy
:
function
(
t
){
var
n
=
e
.
inArray
(
t
,
this
.
instances
),
r
=
0
;
n
!==-
1
&&
this
.
oldInstances
.
push
(
this
.
instances
.
splice
(
n
,
1
)[
0
]),
this
.
instances
.
length
===
0
&&
e
([
document
,
window
]).
unbind
(
".dialog-overlay"
),
t
.
height
(
0
).
width
(
0
).
remove
(),
e
.
each
(
this
.
instances
,
function
(){
r
=
Math
.
max
(
r
,
this
.
css
(
"z-index"
))}),
this
.
maxZ
=
r
},
height
:
function
(){
var
t
,
n
;
return
e
.
ui
.
ie
?
(
t
=
Math
.
max
(
document
.
documentElement
.
scrollHeight
,
document
.
body
.
scrollHeight
),
n
=
Math
.
max
(
document
.
documentElement
.
offsetHeight
,
document
.
body
.
offsetHeight
),
t
<
n
?
e
(
window
).
height
()
+
"px"
:
t
+
"px"
)
:
e
(
document
).
height
()
+
"px"
},
width
:
function
(){
var
t
,
n
;
return
e
.
ui
.
ie
?
(
t
=
Math
.
max
(
document
.
documentElement
.
scrollWidth
,
document
.
body
.
scrollWidth
),
n
=
Math
.
max
(
document
.
documentElement
.
offsetWidth
,
document
.
body
.
offsetWidth
),
t
<
n
?
e
(
window
).
width
()
+
"px"
:
t
+
"px"
)
:
e
(
document
).
width
()
+
"px"
},
resize
:
function
(){
var
t
=
e
([]);
e
.
each
(
e
.
ui
.
dialog
.
overlay
.
instances
,
function
(){
t
=
t
.
add
(
this
)}),
t
.
css
({
width
:
0
,
height
:
0
}).
css
({
width
:
e
.
ui
.
dialog
.
overlay
.
width
(),
height
:
e
.
ui
.
dialog
.
overlay
.
height
()})}}),
e
.
extend
(
e
.
ui
.
dialog
.
overlay
.
prototype
,{
destroy
:
function
(){
e
.
ui
.
dialog
.
overlay
.
destroy
(
this
.
$el
)}})})(
jQuery
);(
function
(
e
,
t
){
e
.
widget
(
"ui.draggable"
,
e
.
ui
.
mouse
,{
version
:
"1.9.1"
,
widgetEventPrefix
:
"drag"
,
options
:
{
addClasses
:!
0
,
appendTo
:
"parent"
,
axis
:!
1
,
connectToSortable
:!
1
,
containment
:!
1
,
cursor
:
"auto"
,
cursorAt
:!
1
,
grid
:!
1
,
handle
:!
1
,
helper
:
"original"
,
iframeFix
:!
1
,
opacity
:!
1
,
refreshPositions
:!
1
,
revert
:!
1
,
revertDuration
:
500
,
scope
:
"default"
,
scroll
:!
0
,
scrollSensitivity
:
20
,
scrollSpeed
:
20
,
snap
:!
1
,
snapMode
:
"both"
,
snapTolerance
:
20
,
stack
:!
1
,
zIndex
:!
1
},
_create
:
function
(){
this
.
options
.
helper
==
"original"
&&!
/^(?:r|a|f)/
.
test
(
this
.
element
.
css
(
"position"
))
&&
(
this
.
element
[
0
].
style
.
position
=
"relative"
),
this
.
options
.
addClasses
&&
this
.
element
.
addClass
(
"ui-draggable"
),
this
.
options
.
disabled
&&
this
.
element
.
addClass
(
"ui-draggable-disabled"
),
this
.
_mouseInit
()},
_destroy
:
function
(){
this
.
element
.
removeClass
(
"ui-draggable ui-draggable-dragging ui-draggable-disabled"
),
this
.
_mouseDestroy
()},
_mouseCapture
:
function
(
t
){
var
n
=
this
.
options
;
return
this
.
helper
||
n
.
disabled
||
e
(
t
.
target
).
is
(
".ui-resizable-handle"
)
?!
1
:
(
this
.
handle
=
this
.
_getHandle
(
t
),
this
.
handle
?
(
e
(
n
.
iframeFix
===!
0
?
"iframe"
:
n
.
iframeFix
).
each
(
function
(){
e
(
'<div class="ui-draggable-iframeFix" style="background: #fff;"></div>'
).
css
({
width
:
this
.
offsetWidth
+
"px"
,
height
:
this
.
offsetHeight
+
"px"
,
position
:
"absolute"
,
opacity
:
"0.001"
,
zIndex
:
1e3
}).
css
(
e
(
this
).
offset
()).
appendTo
(
"body"
)}),
!
0
)
:!
1
)},
_mouseStart
:
function
(
t
){
var
n
=
this
.
options
;
return
this
.
helper
=
this
.
_createHelper
(
t
),
this
.
helper
.
addClass
(
"ui-draggable-dragging"
),
this
.
_cacheHelperProportions
(),
e
.
ui
.
ddmanager
&&
(
e
.
ui
.
ddmanager
.
current
=
this
),
this
.
_cacheMargins
(),
this
.
cssPosition
=
this
.
helper
.
css
(
"position"
),
this
.
scrollParent
=
this
.
helper
.
scrollParent
(),
this
.
offset
=
this
.
positionAbs
=
this
.
element
.
offset
(),
this
.
offset
=
{
top
:
this
.
offset
.
top
-
this
.
margins
.
top
,
left
:
this
.
offset
.
left
-
this
.
margins
.
left
},
e
.
extend
(
this
.
offset
,{
click
:
{
left
:
t
.
pageX
-
this
.
offset
.
left
,
top
:
t
.
pageY
-
this
.
offset
.
top
},
parent
:
this
.
_getParentOffset
(),
relative
:
this
.
_getRelativeOffset
()}),
this
.
originalPosition
=
this
.
position
=
this
.
_generatePosition
(
t
),
this
.
originalPageX
=
t
.
pageX
,
this
.
originalPageY
=
t
.
pageY
,
n
.
cursorAt
&&
this
.
_adjustOffsetFromHelper
(
n
.
cursorAt
),
n
.
containment
&&
this
.
_setContainment
(),
this
.
_trigger
(
"start"
,
t
)
===!
1
?
(
this
.
_clear
(),
!
1
)
:
(
this
.
_cacheHelperProportions
(),
e
.
ui
.
ddmanager
&&!
n
.
dropBehaviour
&&
e
.
ui
.
ddmanager
.
prepareOffsets
(
this
,
t
),
this
.
_mouseDrag
(
t
,
!
0
),
e
.
ui
.
ddmanager
&&
e
.
ui
.
ddmanager
.
dragStart
(
this
,
t
),
!
0
)},
_mouseDrag
:
function
(
t
,
n
){
this
.
position
=
this
.
_generatePosition
(
t
),
this
.
positionAbs
=
this
.
_convertPositionTo
(
"absolute"
);
if
(
!
n
){
var
r
=
this
.
_uiHash
();
if
(
this
.
_trigger
(
"drag"
,
t
,
r
)
===!
1
)
return
this
.
_mouseUp
({}),
!
1
;
this
.
position
=
r
.
position
}
if
(
!
this
.
options
.
axis
||
this
.
options
.
axis
!=
"y"
)
this
.
helper
[
0
].
style
.
left
=
this
.
position
.
left
+
"px"
;
if
(
!
this
.
options
.
axis
||
this
.
options
.
axis
!=
"x"
)
this
.
helper
[
0
].
style
.
top
=
this
.
position
.
top
+
"px"
;
return
e
.
ui
.
ddmanager
&&
e
.
ui
.
ddmanager
.
drag
(
this
,
t
),
!
1
},
_mouseStop
:
function
(
t
){
var
n
=!
1
;
e
.
ui
.
ddmanager
&&!
this
.
options
.
dropBehaviour
&&
(
n
=
e
.
ui
.
ddmanager
.
drop
(
this
,
t
)),
this
.
dropped
&&
(
n
=
this
.
dropped
,
this
.
dropped
=!
1
);
var
r
=
this
.
element
[
0
],
i
=!
1
;
while
(
r
&&
(
r
=
r
.
parentNode
))
r
==
document
&&
(
i
=!
0
);
if
(
!
i
&&
this
.
options
.
helper
===
"original"
)
return
!
1
;
if
(
this
.
options
.
revert
==
"invalid"
&&!
n
||
this
.
options
.
revert
==
"valid"
&&
n
||
this
.
options
.
revert
===!
0
||
e
.
isFunction
(
this
.
options
.
revert
)
&&
this
.
options
.
revert
.
call
(
this
.
element
,
n
)){
var
s
=
this
;
e
(
this
.
helper
).
animate
(
this
.
originalPosition
,
parseInt
(
this
.
options
.
revertDuration
,
10
),
function
(){
s
.
_trigger
(
"stop"
,
t
)
!==!
1
&&
s
.
_clear
()})}
else
this
.
_trigger
(
"stop"
,
t
)
!==!
1
&&
this
.
_clear
();
return
!
1
},
_mouseUp
:
function
(
t
){
return
e
(
"div.ui-draggable-iframeFix"
).
each
(
function
(){
this
.
parentNode
.
removeChild
(
this
)}),
e
.
ui
.
ddmanager
&&
e
.
ui
.
ddmanager
.
dragStop
(
this
,
t
),
e
.
ui
.
mouse
.
prototype
.
_mouseUp
.
call
(
this
,
t
)},
cancel
:
function
(){
return
this
.
helper
.
is
(
".ui-draggable-dragging"
)
?
this
.
_mouseUp
({})
:
this
.
_clear
(),
this
},
_getHandle
:
function
(
t
){
var
n
=!
this
.
options
.
handle
||!
e
(
this
.
options
.
handle
,
this
.
element
).
length
?!
0
:!
1
;
return
e
(
this
.
options
.
handle
,
this
.
element
).
find
(
"*"
).
andSelf
().
each
(
function
(){
this
==
t
.
target
&&
(
n
=!
0
)}),
n
},
_createHelper
:
function
(
t
){
var
n
=
this
.
options
,
r
=
e
.
isFunction
(
n
.
helper
)
?
e
(
n
.
helper
.
apply
(
this
.
element
[
0
],[
t
]))
:
n
.
helper
==
"clone"
?
this
.
element
.
clone
().
removeAttr
(
"id"
)
:
this
.
element
;
return
r
.
parents
(
"body"
).
length
||
r
.
appendTo
(
n
.
appendTo
==
"parent"
?
this
.
element
[
0
].
parentNode
:
n
.
appendTo
),
r
[
0
]
!=
this
.
element
[
0
]
&&!
/(fixed|absolute)/
.
test
(
r
.
css
(
"position"
))
&&
r
.
css
(
"position"
,
"absolute"
),
r
},
_adjustOffsetFromHelper
:
function
(
t
){
typeof
t
==
"string"
&&
(
t
=
t
.
split
(
" "
)),
e
.
isArray
(
t
)
&&
(
t
=
{
left
:+
t
[
0
],
top
:+
t
[
1
]
||
0
}),
"left"
in
t
&&
(
this
.
offset
.
click
.
left
=
t
.
left
+
this
.
margins
.
left
),
"right"
in
t
&&
(
this
.
offset
.
click
.
left
=
this
.
helperProportions
.
width
-
t
.
right
+
this
.
margins
.
left
),
"top"
in
t
&&
(
this
.
offset
.
click
.
top
=
t
.
top
+
this
.
margins
.
top
),
"bottom"
in
t
&&
(
this
.
offset
.
click
.
top
=
this
.
helperProportions
.
height
-
t
.
bottom
+
this
.
margins
.
top
)},
_getParentOffset
:
function
(){
this
.
offsetParent
=
this
.
helper
.
offsetParent
();
var
t
=
this
.
offsetParent
.
offset
();
this
.
cssPosition
==
"absolute"
&&
this
.
scrollParent
[
0
]
!=
document
&&
e
.
contains
(
this
.
scrollParent
[
0
],
this
.
offsetParent
[
0
])
&&
(
t
.
left
+=
this
.
scrollParent
.
scrollLeft
(),
t
.
top
+=
this
.
scrollParent
.
scrollTop
());
if
(
this
.
offsetParent
[
0
]
==
document
.
body
||
this
.
offsetParent
[
0
].
tagName
&&
this
.
offsetParent
[
0
].
tagName
.
toLowerCase
()
==
"html"
&&
e
.
ui
.
ie
)
t
=
{
top
:
0
,
left
:
0
};
return
{
top
:
t
.
top
+
(
parseInt
(
this
.
offsetParent
.
css
(
"borderTopWidth"
),
10
)
||
0
),
left
:
t
.
left
+
(
parseInt
(
this
.
offsetParent
.
css
(
"borderLeftWidth"
),
10
)
||
0
)}},
_getRelativeOffset
:
function
(){
if
(
this
.
cssPosition
==
"relative"
){
var
e
=
this
.
element
.
position
();
return
{
top
:
e
.
top
-
(
parseInt
(
this
.
helper
.
css
(
"top"
),
10
)
||
0
)
+
this
.
scrollParent
.
scrollTop
(),
left
:
e
.
left
-
(
parseInt
(
this
.
helper
.
css
(
"left"
),
10
)
||
0
)
+
this
.
scrollParent
.
scrollLeft
()}}
return
{
top
:
0
,
left
:
0
}},
_cacheMargins
:
function
(){
this
.
margins
=
{
left
:
parseInt
(
this
.
element
.
css
(
"marginLeft"
),
10
)
||
0
,
top
:
parseInt
(
this
.
element
.
css
(
"marginTop"
),
10
)
||
0
,
right
:
parseInt
(
this
.
element
.
css
(
"marginRight"
),
10
)
||
0
,
bottom
:
parseInt
(
this
.
element
.
css
(
"marginBottom"
),
10
)
||
0
}},
_cacheHelperProportions
:
function
(){
this
.
helperProportions
=
{
width
:
this
.
helper
.
outerWidth
(),
height
:
this
.
helper
.
outerHeight
()}},
_setContainment
:
function
(){
var
t
=
this
.
options
;
t
.
containment
==
"parent"
&&
(
t
.
containment
=
this
.
helper
[
0
].
parentNode
);
if
(
t
.
containment
==
"document"
||
t
.
containment
==
"window"
)
this
.
containment
=
[
t
.
containment
==
"document"
?
0
:
e
(
window
).
scrollLeft
()
-
this
.
offset
.
relative
.
left
-
this
.
offset
.
parent
.
left
,
t
.
containment
==
"document"
?
0
:
e
(
window
).
scrollTop
()
-
this
.
offset
.
relative
.
top
-
this
.
offset
.
parent
.
top
,(
t
.
containment
==
"document"
?
0
:
e
(
window
).
scrollLeft
())
+
e
(
t
.
containment
==
"document"
?
document
:
window
).
width
()
-
this
.
helperProportions
.
width
-
this
.
margins
.
left
,(
t
.
containment
==
"document"
?
0
:
e
(
window
).
scrollTop
())
+
(
e
(
t
.
containment
==
"document"
?
document
:
window
).
height
()
||
document
.
body
.
parentNode
.
scrollHeight
)
-
this
.
helperProportions
.
height
-
this
.
margins
.
top
];
if
(
!
/^(document|window|parent)$/
.
test
(
t
.
containment
)
&&
t
.
containment
.
constructor
!=
Array
){
var
n
=
e
(
t
.
containment
),
r
=
n
[
0
];
if
(
!
r
)
return
;
var
i
=
n
.
offset
(),
s
=
e
(
r
).
css
(
"overflow"
)
!=
"hidden"
;
this
.
containment
=
[(
parseInt
(
e
(
r
).
css
(
"borderLeftWidth"
),
10
)
||
0
)
+
(
parseInt
(
e
(
r
).
css
(
"paddingLeft"
),
10
)
||
0
),(
parseInt
(
e
(
r
).
css
(
"borderTopWidth"
),
10
)
||
0
)
+
(
parseInt
(
e
(
r
).
css
(
"paddingTop"
),
10
)
||
0
),(
s
?
Math
.
max
(
r
.
scrollWidth
,
r
.
offsetWidth
)
:
r
.
offsetWidth
)
-
(
parseInt
(
e
(
r
).
css
(
"borderLeftWidth"
),
10
)
||
0
)
-
(
parseInt
(
e
(
r
).
css
(
"paddingRight"
),
10
)
||
0
)
-
this
.
helperProportions
.
width
-
this
.
margins
.
left
-
this
.
margins
.
right
,(
s
?
Math
.
max
(
r
.
scrollHeight
,
r
.
offsetHeight
)
:
r
.
offsetHeight
)
-
(
parseInt
(
e
(
r
).
css
(
"borderTopWidth"
),
10
)
||
0
)
-
(
parseInt
(
e
(
r
).
css
(
"paddingBottom"
),
10
)
||
0
)
-
this
.
helperProportions
.
height
-
this
.
margins
.
top
-
this
.
margins
.
bottom
],
this
.
relative_container
=
n
}
else
t
.
containment
.
constructor
==
Array
&&
(
this
.
containment
=
t
.
containment
)},
_convertPositionTo
:
function
(
t
,
n
){
n
||
(
n
=
this
.
position
);
var
r
=
t
==
"absolute"
?
1
:-
1
,
i
=
this
.
options
,
s
=
this
.
cssPosition
!=
"absolute"
||
this
.
scrollParent
[
0
]
!=
document
&&!!
e
.
contains
(
this
.
scrollParent
[
0
],
this
.
offsetParent
[
0
])
?
this
.
scrollParent
:
this
.
offsetParent
,
o
=
/(html|body)/i
.
test
(
s
[
0
].
tagName
);
return
{
top
:
n
.
top
+
this
.
offset
.
relative
.
top
*
r
+
this
.
offset
.
parent
.
top
*
r
-
(
this
.
cssPosition
==
"fixed"
?-
this
.
scrollParent
.
scrollTop
()
:
o
?
0
:
s
.
scrollTop
())
*
r
,
left
:
n
.
left
+
this
.
offset
.
relative
.
left
*
r
+
this
.
offset
.
parent
.
left
*
r
-
(
this
.
cssPosition
==
"fixed"
?-
this
.
scrollParent
.
scrollLeft
()
:
o
?
0
:
s
.
scrollLeft
())
*
r
}},
_generatePosition
:
function
(
t
){
var
n
=
this
.
options
,
r
=
this
.
cssPosition
!=
"absolute"
||
this
.
scrollParent
[
0
]
!=
document
&&!!
e
.
contains
(
this
.
scrollParent
[
0
],
this
.
offsetParent
[
0
])
?
this
.
scrollParent
:
this
.
offsetParent
,
i
=
/(html|body)/i
.
test
(
r
[
0
].
tagName
),
s
=
t
.
pageX
,
o
=
t
.
pageY
;
if
(
this
.
originalPosition
){
var
u
;
if
(
this
.
containment
){
if
(
this
.
relative_container
){
var
a
=
this
.
relative_container
.
offset
();
u
=
[
this
.
containment
[
0
]
+
a
.
left
,
this
.
containment
[
1
]
+
a
.
top
,
this
.
containment
[
2
]
+
a
.
left
,
this
.
containment
[
3
]
+
a
.
top
]}
else
u
=
this
.
containment
;
t
.
pageX
-
this
.
offset
.
click
.
left
<
u
[
0
]
&&
(
s
=
u
[
0
]
+
this
.
offset
.
click
.
left
),
t
.
pageY
-
this
.
offset
.
click
.
top
<
u
[
1
]
&&
(
o
=
u
[
1
]
+
this
.
offset
.
click
.
top
),
t
.
pageX
-
this
.
offset
.
click
.
left
>
u
[
2
]
&&
(
s
=
u
[
2
]
+
this
.
offset
.
click
.
left
),
t
.
pageY
-
this
.
offset
.
click
.
top
>
u
[
3
]
&&
(
o
=
u
[
3
]
+
this
.
offset
.
click
.
top
)}
if
(
n
.
grid
){
var
f
=
n
.
grid
[
1
]
?
this
.
originalPageY
+
Math
.
round
((
o
-
this
.
originalPageY
)
/
n
.
grid
[
1
])
*
n
.
grid
[
1
]
:
this
.
originalPageY
;
o
=
u
?
f
-
this
.
offset
.
click
.
top
<
u
[
1
]
||
f
-
this
.
offset
.
click
.
top
>
u
[
3
]
?
f
-
this
.
offset
.
click
.
top
<
u
[
1
]
?
f
+
n
.
grid
[
1
]
:
f
-
n
.
grid
[
1
]
:
f
:
f
;
var
l
=
n
.
grid
[
0
]
?
this
.
originalPageX
+
Math
.
round
((
s
-
this
.
originalPageX
)
/
n
.
grid
[
0
])
*
n
.
grid
[
0
]
:
this
.
originalPageX
;
s
=
u
?
l
-
this
.
offset
.
click
.
left
<
u
[
0
]
||
l
-
this
.
offset
.
click
.
left
>
u
[
2
]
?
l
-
this
.
offset
.
click
.
left
<
u
[
0
]
?
l
+
n
.
grid
[
0
]
:
l
-
n
.
grid
[
0
]
:
l
:
l
}}
return
{
top
:
o
-
this
.
offset
.
click
.
top
-
this
.
offset
.
relative
.
top
-
this
.
offset
.
parent
.
top
+
(
this
.
cssPosition
==
"fixed"
?-
this
.
scrollParent
.
scrollTop
()
:
i
?
0
:
r
.
scrollTop
()),
left
:
s
-
this
.
offset
.
click
.
left
-
this
.
offset
.
relative
.
left
-
this
.
offset
.
parent
.
left
+
(
this
.
cssPosition
==
"fixed"
?-
this
.
scrollParent
.
scrollLeft
()
:
i
?
0
:
r
.
scrollLeft
())}},
_clear
:
function
(){
this
.
helper
.
removeClass
(
"ui-draggable-dragging"
),
this
.
helper
[
0
]
!=
this
.
element
[
0
]
&&!
this
.
cancelHelperRemoval
&&
this
.
helper
.
remove
(),
this
.
helper
=
null
,
this
.
cancelHelperRemoval
=!
1
},
_trigger
:
function
(
t
,
n
,
r
){
return
r
=
r
||
this
.
_uiHash
(),
e
.
ui
.
plugin
.
call
(
this
,
t
,[
n
,
r
]),
t
==
"drag"
&&
(
this
.
positionAbs
=
this
.
_convertPositionTo
(
"absolute"
)),
e
.
Widget
.
prototype
.
_trigger
.
call
(
this
,
t
,
n
,
r
)},
plugins
:
{},
_uiHash
:
function
(
e
){
return
{
helper
:
this
.
helper
,
position
:
this
.
position
,
originalPosition
:
this
.
originalPosition
,
offset
:
this
.
positionAbs
}}}),
e
.
ui
.
plugin
.
add
(
"draggable"
,
"connectToSortable"
,{
start
:
function
(
t
,
n
){
var
r
=
e
(
this
).
data
(
"draggable"
),
i
=
r
.
options
,
s
=
e
.
extend
({},
n
,{
item
:
r
.
element
});
r
.
sortables
=
[],
e
(
i
.
connectToSortable
).
each
(
function
(){
var
n
=
e
.
data
(
this
,
"sortable"
);
n
&&!
n
.
options
.
disabled
&&
(
r
.
sortables
.
push
({
instance
:
n
,
shouldRevert
:
n
.
options
.
revert
}),
n
.
refreshPositions
(),
n
.
_trigger
(
"activate"
,
t
,
s
))})},
stop
:
function
(
t
,
n
){
var
r
=
e
(
this
).
data
(
"draggable"
),
i
=
e
.
extend
({},
n
,{
item
:
r
.
element
});
e
.
each
(
r
.
sortables
,
function
(){
this
.
instance
.
isOver
?
(
this
.
instance
.
isOver
=
0
,
r
.
cancelHelperRemoval
=!
0
,
this
.
instance
.
cancelHelperRemoval
=!
1
,
this
.
shouldRevert
&&
(
this
.
instance
.
options
.
revert
=!
0
),
this
.
instance
.
_mouseStop
(
t
),
this
.
instance
.
options
.
helper
=
this
.
instance
.
options
.
_helper
,
r
.
options
.
helper
==
"original"
&&
this
.
instance
.
currentItem
.
css
({
top
:
"auto"
,
left
:
"auto"
}))
:
(
this
.
instance
.
cancelHelperRemoval
=!
1
,
this
.
instance
.
_trigger
(
"deactivate"
,
t
,
i
))})},
drag
:
function
(
t
,
n
){
var
r
=
e
(
this
).
data
(
"draggable"
),
i
=
this
,
s
=
function
(
t
){
var
n
=
this
.
offset
.
click
.
top
,
r
=
this
.
offset
.
click
.
left
,
i
=
this
.
positionAbs
.
top
,
s
=
this
.
positionAbs
.
left
,
o
=
t
.
height
,
u
=
t
.
width
,
a
=
t
.
top
,
f
=
t
.
left
;
return
e
.
ui
.
isOver
(
i
+
n
,
s
+
r
,
a
,
f
,
o
,
u
)};
e
.
each
(
r
.
sortables
,
function
(
s
){
var
o
=!
1
,
u
=
this
;
this
.
instance
.
positionAbs
=
r
.
positionAbs
,
this
.
instance
.
helperProportions
=
r
.
helperProportions
,
this
.
instance
.
offset
.
click
=
r
.
offset
.
click
,
this
.
instance
.
_intersectsWith
(
this
.
instance
.
containerCache
)
&&
(
o
=!
0
,
e
.
each
(
r
.
sortables
,
function
(){
return
this
.
instance
.
positionAbs
=
r
.
positionAbs
,
this
.
instance
.
helperProportions
=
r
.
helperProportions
,
this
.
instance
.
offset
.
click
=
r
.
offset
.
click
,
this
!=
u
&&
this
.
instance
.
_intersectsWith
(
this
.
instance
.
containerCache
)
&&
e
.
ui
.
contains
(
u
.
instance
.
element
[
0
],
this
.
instance
.
element
[
0
])
&&
(
o
=!
1
),
o
})),
o
?
(
this
.
instance
.
isOver
||
(
this
.
instance
.
isOver
=
1
,
this
.
instance
.
currentItem
=
e
(
i
).
clone
().
removeAttr
(
"id"
).
appendTo
(
this
.
instance
.
element
).
data
(
"sortable-item"
,
!
0
),
this
.
instance
.
options
.
_helper
=
this
.
instance
.
options
.
helper
,
this
.
instance
.
options
.
helper
=
function
(){
return
n
.
helper
[
0
]},
t
.
target
=
this
.
instance
.
currentItem
[
0
],
this
.
instance
.
_mouseCapture
(
t
,
!
0
),
this
.
instance
.
_mouseStart
(
t
,
!
0
,
!
0
),
this
.
instance
.
offset
.
click
.
top
=
r
.
offset
.
click
.
top
,
this
.
instance
.
offset
.
click
.
left
=
r
.
offset
.
click
.
left
,
this
.
instance
.
offset
.
parent
.
left
-=
r
.
offset
.
parent
.
left
-
this
.
instance
.
offset
.
parent
.
left
,
this
.
instance
.
offset
.
parent
.
top
-=
r
.
offset
.
parent
.
top
-
this
.
instance
.
offset
.
parent
.
top
,
r
.
_trigger
(
"toSortable"
,
t
),
r
.
dropped
=
this
.
instance
.
element
,
r
.
currentItem
=
r
.
element
,
this
.
instance
.
fromOutside
=
r
),
this
.
instance
.
currentItem
&&
this
.
instance
.
_mouseDrag
(
t
))
:
this
.
instance
.
isOver
&&
(
this
.
instance
.
isOver
=
0
,
this
.
instance
.
cancelHelperRemoval
=!
0
,
this
.
instance
.
options
.
revert
=!
1
,
this
.
instance
.
_trigger
(
"out"
,
t
,
this
.
instance
.
_uiHash
(
this
.
instance
)),
this
.
instance
.
_mouseStop
(
t
,
!
0
),
this
.
instance
.
options
.
helper
=
this
.
instance
.
options
.
_helper
,
this
.
instance
.
currentItem
.
remove
(),
this
.
instance
.
placeholder
&&
this
.
instance
.
placeholder
.
remove
(),
r
.
_trigger
(
"fromSortable"
,
t
),
r
.
dropped
=!
1
)})}}),
e
.
ui
.
plugin
.
add
(
"draggable"
,
"cursor"
,{
start
:
function
(
t
,
n
){
var
r
=
e
(
"body"
),
i
=
e
(
this
).
data
(
"draggable"
).
options
;
r
.
css
(
"cursor"
)
&&
(
i
.
_cursor
=
r
.
css
(
"cursor"
)),
r
.
css
(
"cursor"
,
i
.
cursor
)},
stop
:
function
(
t
,
n
){
var
r
=
e
(
this
).
data
(
"draggable"
).
options
;
r
.
_cursor
&&
e
(
"body"
).
css
(
"cursor"
,
r
.
_cursor
)}}),
e
.
ui
.
plugin
.
add
(
"draggable"
,
"opacity"
,{
start
:
function
(
t
,
n
){
var
r
=
e
(
n
.
helper
),
i
=
e
(
this
).
data
(
"draggable"
).
options
;
r
.
css
(
"opacity"
)
&&
(
i
.
_opacity
=
r
.
css
(
"opacity"
)),
r
.
css
(
"opacity"
,
i
.
opacity
)},
stop
:
function
(
t
,
n
){
var
r
=
e
(
this
).
data
(
"draggable"
).
options
;
r
.
_opacity
&&
e
(
n
.
helper
).
css
(
"opacity"
,
r
.
_opacity
)}}),
e
.
ui
.
plugin
.
add
(
"draggable"
,
"scroll"
,{
start
:
function
(
t
,
n
){
var
r
=
e
(
this
).
data
(
"draggable"
);
r
.
scrollParent
[
0
]
!=
document
&&
r
.
scrollParent
[
0
].
tagName
!=
"HTML"
&&
(
r
.
overflowOffset
=
r
.
scrollParent
.
offset
())},
drag
:
function
(
t
,
n
){
var
r
=
e
(
this
).
data
(
"draggable"
),
i
=
r
.
options
,
s
=!
1
;
if
(
r
.
scrollParent
[
0
]
!=
document
&&
r
.
scrollParent
[
0
].
tagName
!=
"HTML"
){
if
(
!
i
.
axis
||
i
.
axis
!=
"x"
)
r
.
overflowOffset
.
top
+
r
.
scrollParent
[
0
].
offsetHeight
-
t
.
pageY
<
i
.
scrollSensitivity
?
r
.
scrollParent
[
0
].
scrollTop
=
s
=
r
.
scrollParent
[
0
].
scrollTop
+
i
.
scrollSpeed
:
t
.
pageY
-
r
.
overflowOffset
.
top
<
i
.
scrollSensitivity
&&
(
r
.
scrollParent
[
0
].
scrollTop
=
s
=
r
.
scrollParent
[
0
].
scrollTop
-
i
.
scrollSpeed
);
if
(
!
i
.
axis
||
i
.
axis
!=
"y"
)
r
.
overflowOffset
.
left
+
r
.
scrollParent
[
0
].
offsetWidth
-
t
.
pageX
<
i
.
scrollSensitivity
?
r
.
scrollParent
[
0
].
scrollLeft
=
s
=
r
.
scrollParent
[
0
].
scrollLeft
+
i
.
scrollSpeed
:
t
.
pageX
-
r
.
overflowOffset
.
left
<
i
.
scrollSensitivity
&&
(
r
.
scrollParent
[
0
].
scrollLeft
=
s
=
r
.
scrollParent
[
0
].
scrollLeft
-
i
.
scrollSpeed
)}
else
{
if
(
!
i
.
axis
||
i
.
axis
!=
"x"
)
t
.
pageY
-
e
(
document
).
scrollTop
()
<
i
.
scrollSensitivity
?
s
=
e
(
document
).
scrollTop
(
e
(
document
).
scrollTop
()
-
i
.
scrollSpeed
)
:
e
(
window
).
height
()
-
(
t
.
pageY
-
e
(
document
).
scrollTop
())
<
i
.
scrollSensitivity
&&
(
s
=
e
(
document
).
scrollTop
(
e
(
document
).
scrollTop
()
+
i
.
scrollSpeed
));
if
(
!
i
.
axis
||
i
.
axis
!=
"y"
)
t
.
pageX
-
e
(
document
).
scrollLeft
()
<
i
.
scrollSensitivity
?
s
=
e
(
document
).
scrollLeft
(
e
(
document
).
scrollLeft
()
-
i
.
scrollSpeed
)
:
e
(
window
).
width
()
-
(
t
.
pageX
-
e
(
document
).
scrollLeft
())
<
i
.
scrollSensitivity
&&
(
s
=
e
(
document
).
scrollLeft
(
e
(
document
).
scrollLeft
()
+
i
.
scrollSpeed
))}
s
!==!
1
&&
e
.
ui
.
ddmanager
&&!
i
.
dropBehaviour
&&
e
.
ui
.
ddmanager
.
prepareOffsets
(
r
,
t
)}}),
e
.
ui
.
plugin
.
add
(
"draggable"
,
"snap"
,{
start
:
function
(
t
,
n
){
var
r
=
e
(
this
).
data
(
"draggable"
),
i
=
r
.
options
;
r
.
snapElements
=
[],
e
(
i
.
snap
.
constructor
!=
String
?
i
.
snap
.
items
||
":data(draggable)"
:
i
.
snap
).
each
(
function
(){
var
t
=
e
(
this
),
n
=
t
.
offset
();
this
!=
r
.
element
[
0
]
&&
r
.
snapElements
.
push
({
item
:
this
,
width
:
t
.
outerWidth
(),
height
:
t
.
outerHeight
(),
top
:
n
.
top
,
left
:
n
.
left
})})},
drag
:
function
(
t
,
n
){
var
r
=
e
(
this
).
data
(
"draggable"
),
i
=
r
.
options
,
s
=
i
.
snapTolerance
,
o
=
n
.
offset
.
left
,
u
=
o
+
r
.
helperProportions
.
width
,
a
=
n
.
offset
.
top
,
f
=
a
+
r
.
helperProportions
.
height
;
for
(
var
l
=
r
.
snapElements
.
length
-
1
;
l
>=
0
;
l
--
){
var
c
=
r
.
snapElements
[
l
].
left
,
h
=
c
+
r
.
snapElements
[
l
].
width
,
p
=
r
.
snapElements
[
l
].
top
,
d
=
p
+
r
.
snapElements
[
l
].
height
;
if
(
!
(
c
-
s
<
o
&&
o
<
h
+
s
&&
p
-
s
<
a
&&
a
<
d
+
s
||
c
-
s
<
o
&&
o
<
h
+
s
&&
p
-
s
<
f
&&
f
<
d
+
s
||
c
-
s
<
u
&&
u
<
h
+
s
&&
p
-
s
<
a
&&
a
<
d
+
s
||
c
-
s
<
u
&&
u
<
h
+
s
&&
p
-
s
<
f
&&
f
<
d
+
s
)){
r
.
snapElements
[
l
].
snapping
&&
r
.
options
.
snap
.
release
&&
r
.
options
.
snap
.
release
.
call
(
r
.
element
,
t
,
e
.
extend
(
r
.
_uiHash
(),{
snapItem
:
r
.
snapElements
[
l
].
item
})),
r
.
snapElements
[
l
].
snapping
=!
1
;
continue
}
if
(
i
.
snapMode
!=
"inner"
){
var
v
=
Math
.
abs
(
p
-
f
)
<=
s
,
m
=
Math
.
abs
(
d
-
a
)
<=
s
,
g
=
Math
.
abs
(
c
-
u
)
<=
s
,
y
=
Math
.
abs
(
h
-
o
)
<=
s
;
v
&&
(
n
.
position
.
top
=
r
.
_convertPositionTo
(
"relative"
,{
top
:
p
-
r
.
helperProportions
.
height
,
left
:
0
}).
top
-
r
.
margins
.
top
),
m
&&
(
n
.
position
.
top
=
r
.
_convertPositionTo
(
"relative"
,{
top
:
d
,
left
:
0
}).
top
-
r
.
margins
.
top
),
g
&&
(
n
.
position
.
left
=
r
.
_convertPositionTo
(
"relative"
,{
top
:
0
,
left
:
c
-
r
.
helperProportions
.
width
}).
left
-
r
.
margins
.
left
),
y
&&
(
n
.
position
.
left
=
r
.
_convertPositionTo
(
"relative"
,{
top
:
0
,
left
:
h
}).
left
-
r
.
margins
.
left
)}
var
b
=
v
||
m
||
g
||
y
;
if
(
i
.
snapMode
!=
"outer"
){
var
v
=
Math
.
abs
(
p
-
a
)
<=
s
,
m
=
Math
.
abs
(
d
-
f
)
<=
s
,
g
=
Math
.
abs
(
c
-
o
)
<=
s
,
y
=
Math
.
abs
(
h
-
u
)
<=
s
;
v
&&
(
n
.
position
.
top
=
r
.
_convertPositionTo
(
"relative"
,{
top
:
p
,
left
:
0
}).
top
-
r
.
margins
.
top
),
m
&&
(
n
.
position
.
top
=
r
.
_convertPositionTo
(
"relative"
,{
top
:
d
-
r
.
helperProportions
.
height
,
left
:
0
}).
top
-
r
.
margins
.
top
),
g
&&
(
n
.
position
.
left
=
r
.
_convertPositionTo
(
"relative"
,{
top
:
0
,
left
:
c
}).
left
-
r
.
margins
.
left
),
y
&&
(
n
.
position
.
left
=
r
.
_convertPositionTo
(
"relative"
,{
top
:
0
,
left
:
h
-
r
.
helperProportions
.
width
}).
left
-
r
.
margins
.
left
)}
!
r
.
snapElements
[
l
].
snapping
&&
(
v
||
m
||
g
||
y
||
b
)
&&
r
.
options
.
snap
.
snap
&&
r
.
options
.
snap
.
snap
.
call
(
r
.
element
,
t
,
e
.
extend
(
r
.
_uiHash
(),{
snapItem
:
r
.
snapElements
[
l
].
item
})),
r
.
snapElements
[
l
].
snapping
=
v
||
m
||
g
||
y
||
b
}}}),
e
.
ui
.
plugin
.
add
(
"draggable"
,
"stack"
,{
start
:
function
(
t
,
n
){
var
r
=
e
(
this
).
data
(
"draggable"
).
options
,
i
=
e
.
makeArray
(
e
(
r
.
stack
)).
sort
(
function
(
t
,
n
){
return
(
parseInt
(
e
(
t
).
css
(
"zIndex"
),
10
)
||
0
)
-
(
parseInt
(
e
(
n
).
css
(
"zIndex"
),
10
)
||
0
)});
if
(
!
i
.
length
)
return
;
var
s
=
parseInt
(
i
[
0
].
style
.
zIndex
)
||
0
;
e
(
i
).
each
(
function
(
e
){
this
.
style
.
zIndex
=
s
+
e
}),
this
[
0
].
style
.
zIndex
=
s
+
i
.
length
}}),
e
.
ui
.
plugin
.
add
(
"draggable"
,
"zIndex"
,{
start
:
function
(
t
,
n
){
var
r
=
e
(
n
.
helper
),
i
=
e
(
this
).
data
(
"draggable"
).
options
;
r
.
css
(
"zIndex"
)
&&
(
i
.
_zIndex
=
r
.
css
(
"zIndex"
)),
r
.
css
(
"zIndex"
,
i
.
zIndex
)},
stop
:
function
(
t
,
n
){
var
r
=
e
(
this
).
data
(
"draggable"
).
options
;
r
.
_zIndex
&&
e
(
n
.
helper
).
css
(
"zIndex"
,
r
.
_zIndex
)}})})(
jQuery
);(
function
(
e
,
t
){
e
.
widget
(
"ui.droppable"
,{
version
:
"1.9.1"
,
widgetEventPrefix
:
"drop"
,
options
:
{
accept
:
"*"
,
activeClass
:!
1
,
addClasses
:!
0
,
greedy
:!
1
,
hoverClass
:!
1
,
scope
:
"default"
,
tolerance
:
"intersect"
},
_create
:
function
(){
var
t
=
this
.
options
,
n
=
t
.
accept
;
this
.
isover
=
0
,
this
.
isout
=
1
,
this
.
accept
=
e
.
isFunction
(
n
)
?
n
:
function
(
e
){
return
e
.
is
(
n
)},
this
.
proportions
=
{
width
:
this
.
element
[
0
].
offsetWidth
,
height
:
this
.
element
[
0
].
offsetHeight
},
e
.
ui
.
ddmanager
.
droppables
[
t
.
scope
]
=
e
.
ui
.
ddmanager
.
droppables
[
t
.
scope
]
||
[],
e
.
ui
.
ddmanager
.
droppables
[
t
.
scope
].
push
(
this
),
t
.
addClasses
&&
this
.
element
.
addClass
(
"ui-droppable"
)},
_destroy
:
function
(){
var
t
=
e
.
ui
.
ddmanager
.
droppables
[
this
.
options
.
scope
];
for
(
var
n
=
0
;
n
<
t
.
length
;
n
++
)
t
[
n
]
==
this
&&
t
.
splice
(
n
,
1
);
this
.
element
.
removeClass
(
"ui-droppable ui-droppable-disabled"
)},
_setOption
:
function
(
t
,
n
){
t
==
"accept"
&&
(
this
.
accept
=
e
.
isFunction
(
n
)
?
n
:
function
(
e
){
return
e
.
is
(
n
)}),
e
.
Widget
.
prototype
.
_setOption
.
apply
(
this
,
arguments
)},
_activate
:
function
(
t
){
var
n
=
e
.
ui
.
ddmanager
.
current
;
this
.
options
.
activeClass
&&
this
.
element
.
addClass
(
this
.
options
.
activeClass
),
n
&&
this
.
_trigger
(
"activate"
,
t
,
this
.
ui
(
n
))},
_deactivate
:
function
(
t
){
var
n
=
e
.
ui
.
ddmanager
.
current
;
this
.
options
.
activeClass
&&
this
.
element
.
removeClass
(
this
.
options
.
activeClass
),
n
&&
this
.
_trigger
(
"deactivate"
,
t
,
this
.
ui
(
n
))},
_over
:
function
(
t
){
var
n
=
e
.
ui
.
ddmanager
.
current
;
if
(
!
n
||
(
n
.
currentItem
||
n
.
element
)[
0
]
==
this
.
element
[
0
])
return
;
this
.
accept
.
call
(
this
.
element
[
0
],
n
.
currentItem
||
n
.
element
)
&&
(
this
.
options
.
hoverClass
&&
this
.
element
.
addClass
(
this
.
options
.
hoverClass
),
this
.
_trigger
(
"over"
,
t
,
this
.
ui
(
n
)))},
_out
:
function
(
t
){
var
n
=
e
.
ui
.
ddmanager
.
current
;
if
(
!
n
||
(
n
.
currentItem
||
n
.
element
)[
0
]
==
this
.
element
[
0
])
return
;
this
.
accept
.
call
(
this
.
element
[
0
],
n
.
currentItem
||
n
.
element
)
&&
(
this
.
options
.
hoverClass
&&
this
.
element
.
removeClass
(
this
.
options
.
hoverClass
),
this
.
_trigger
(
"out"
,
t
,
this
.
ui
(
n
)))},
_drop
:
function
(
t
,
n
){
var
r
=
n
||
e
.
ui
.
ddmanager
.
current
;
if
(
!
r
||
(
r
.
currentItem
||
r
.
element
)[
0
]
==
this
.
element
[
0
])
return
!
1
;
var
i
=!
1
;
return
this
.
element
.
find
(
":data(droppable)"
).
not
(
".ui-draggable-dragging"
).
each
(
function
(){
var
t
=
e
.
data
(
this
,
"droppable"
);
if
(
t
.
options
.
greedy
&&!
t
.
options
.
disabled
&&
t
.
options
.
scope
==
r
.
options
.
scope
&&
t
.
accept
.
call
(
t
.
element
[
0
],
r
.
currentItem
||
r
.
element
)
&&
e
.
ui
.
intersect
(
r
,
e
.
extend
(
t
,{
offset
:
t
.
element
.
offset
()}),
t
.
options
.
tolerance
))
return
i
=!
0
,
!
1
}),
i
?!
1
:
this
.
accept
.
call
(
this
.
element
[
0
],
r
.
currentItem
||
r
.
element
)
?
(
this
.
options
.
activeClass
&&
this
.
element
.
removeClass
(
this
.
options
.
activeClass
),
this
.
options
.
hoverClass
&&
this
.
element
.
removeClass
(
this
.
options
.
hoverClass
),
this
.
_trigger
(
"drop"
,
t
,
this
.
ui
(
r
)),
this
.
element
)
:!
1
},
ui
:
function
(
e
){
return
{
draggable
:
e
.
currentItem
||
e
.
element
,
helper
:
e
.
helper
,
position
:
e
.
position
,
offset
:
e
.
positionAbs
}}}),
e
.
ui
.
intersect
=
function
(
t
,
n
,
r
){
if
(
!
n
.
offset
)
return
!
1
;
var
i
=
(
t
.
positionAbs
||
t
.
position
.
absolute
).
left
,
s
=
i
+
t
.
helperProportions
.
width
,
o
=
(
t
.
positionAbs
||
t
.
position
.
absolute
).
top
,
u
=
o
+
t
.
helperProportions
.
height
,
a
=
n
.
offset
.
left
,
f
=
a
+
n
.
proportions
.
width
,
l
=
n
.
offset
.
top
,
c
=
l
+
n
.
proportions
.
height
;
switch
(
r
){
case
"fit"
:
return
a
<=
i
&&
s
<=
f
&&
l
<=
o
&&
u
<=
c
;
case
"intersect"
:
return
a
<
i
+
t
.
helperProportions
.
width
/
2
&&
s
-
t
.
helperProportions
.
width
/
2
<
f
&&
l
<
o
+
t
.
helperProportions
.
height
/
2
&&
u
-
t
.
helperProportions
.
height
/
2
<
c
;
case
"pointer"
:
var
h
=
(
t
.
positionAbs
||
t
.
position
.
absolute
).
left
+
(
t
.
clickOffset
||
t
.
offset
.
click
).
left
,
p
=
(
t
.
positionAbs
||
t
.
position
.
absolute
).
top
+
(
t
.
clickOffset
||
t
.
offset
.
click
).
top
,
d
=
e
.
ui
.
isOver
(
p
,
h
,
l
,
a
,
n
.
proportions
.
height
,
n
.
proportions
.
width
);
return
d
;
case
"touch"
:
return
(
o
>=
l
&&
o
<=
c
||
u
>=
l
&&
u
<=
c
||
o
<
l
&&
u
>
c
)
&&
(
i
>=
a
&&
i
<=
f
||
s
>=
a
&&
s
<=
f
||
i
<
a
&&
s
>
f
);
default
:
return
!
1
}},
e
.
ui
.
ddmanager
=
{
current
:
null
,
droppables
:
{
"default"
:
[]},
prepareOffsets
:
function
(
t
,
n
){
var
r
=
e
.
ui
.
ddmanager
.
droppables
[
t
.
options
.
scope
]
||
[],
i
=
n
?
n
.
type
:
null
,
s
=
(
t
.
currentItem
||
t
.
element
).
find
(
":data(droppable)"
).
andSelf
();
e
:
for
(
var
o
=
0
;
o
<
r
.
length
;
o
++
){
if
(
r
[
o
].
options
.
disabled
||
t
&&!
r
[
o
].
accept
.
call
(
r
[
o
].
element
[
0
],
t
.
currentItem
||
t
.
element
))
continue
;
for
(
var
u
=
0
;
u
<
s
.
length
;
u
++
)
if
(
s
[
u
]
==
r
[
o
].
element
[
0
]){
r
[
o
].
proportions
.
height
=
0
;
continue
e
}
r
[
o
].
visible
=
r
[
o
].
element
.
css
(
"display"
)
!=
"none"
;
if
(
!
r
[
o
].
visible
)
continue
;
i
==
"mousedown"
&&
r
[
o
].
_activate
.
call
(
r
[
o
],
n
),
r
[
o
].
offset
=
r
[
o
].
element
.
offset
(),
r
[
o
].
proportions
=
{
width
:
r
[
o
].
element
[
0
].
offsetWidth
,
height
:
r
[
o
].
element
[
0
].
offsetHeight
}}},
drop
:
function
(
t
,
n
){
var
r
=!
1
;
return
e
.
each
(
e
.
ui
.
ddmanager
.
droppables
[
t
.
options
.
scope
]
||
[],
function
(){
if
(
!
this
.
options
)
return
;
!
this
.
options
.
disabled
&&
this
.
visible
&&
e
.
ui
.
intersect
(
t
,
this
,
this
.
options
.
tolerance
)
&&
(
r
=
this
.
_drop
.
call
(
this
,
n
)
||
r
),
!
this
.
options
.
disabled
&&
this
.
visible
&&
this
.
accept
.
call
(
this
.
element
[
0
],
t
.
currentItem
||
t
.
element
)
&&
(
this
.
isout
=
1
,
this
.
isover
=
0
,
this
.
_deactivate
.
call
(
this
,
n
))}),
r
},
dragStart
:
function
(
t
,
n
){
t
.
element
.
parentsUntil
(
"body"
).
bind
(
"scroll.droppable"
,
function
(){
t
.
options
.
refreshPositions
||
e
.
ui
.
ddmanager
.
prepareOffsets
(
t
,
n
)})},
drag
:
function
(
t
,
n
){
t
.
options
.
refreshPositions
&&
e
.
ui
.
ddmanager
.
prepareOffsets
(
t
,
n
),
e
.
each
(
e
.
ui
.
ddmanager
.
droppables
[
t
.
options
.
scope
]
||
[],
function
(){
if
(
this
.
options
.
disabled
||
this
.
greedyChild
||!
this
.
visible
)
return
;
var
r
=
e
.
ui
.
intersect
(
t
,
this
,
this
.
options
.
tolerance
),
i
=!
r
&&
this
.
isover
==
1
?
"isout"
:
r
&&
this
.
isover
==
0
?
"isover"
:
null
;
if
(
!
i
)
return
;
var
s
;
if
(
this
.
options
.
greedy
){
var
o
=
this
.
options
.
scope
,
u
=
this
.
element
.
parents
(
":data(droppable)"
).
filter
(
function
(){
return
e
.
data
(
this
,
"droppable"
).
options
.
scope
===
o
});
u
.
length
&&
(
s
=
e
.
data
(
u
[
0
],
"droppable"
),
s
.
greedyChild
=
i
==
"isover"
?
1
:
0
)}
s
&&
i
==
"isover"
&&
(
s
.
isover
=
0
,
s
.
isout
=
1
,
s
.
_out
.
call
(
s
,
n
)),
this
[
i
]
=
1
,
this
[
i
==
"isout"
?
"isover"
:
"isout"
]
=
0
,
this
[
i
==
"isover"
?
"_over"
:
"_out"
].
call
(
this
,
n
),
s
&&
i
==
"isout"
&&
(
s
.
isout
=
0
,
s
.
isover
=
1
,
s
.
_over
.
call
(
s
,
n
))})},
dragStop
:
function
(
t
,
n
){
t
.
element
.
parentsUntil
(
"body"
).
unbind
(
"scroll.droppable"
),
t
.
options
.
refreshPositions
||
e
.
ui
.
ddmanager
.
prepareOffsets
(
t
,
n
)}}})(
jQuery
);
jQuery
.
effects
||
function
(
e
,
t
){
var
n
=
e
.
uiBackCompat
!==!
1
,
r
=
"ui-effects-"
;
e
.
effects
=
{
effect
:
{}},
function
(
t
,
n
){
function
p
(
e
,
t
,
n
){
var
r
=
a
[
t
.
type
]
||
{};
return
e
==
null
?
n
||!
t
.
def
?
null
:
t
.
def
:
(
e
=
r
.
floor
?~~
e
:
parseFloat
(
e
),
isNaN
(
e
)
?
t
.
def
:
r
.
mod
?
(
e
+
r
.
mod
)
%
r
.
mod
:
0
>
e
?
0
:
r
.
max
<
e
?
r
.
max
:
e
)}
function
d
(
e
){
var
n
=
o
(),
r
=
n
.
_rgba
=
[];
return
e
=
e
.
toLowerCase
(),
h
(
s
,
function
(
t
,
i
){
var
s
,
o
=
i
.
re
.
exec
(
e
),
a
=
o
&&
i
.
parse
(
o
),
f
=
i
.
space
||
"rgba"
;
if
(
a
)
return
s
=
n
[
f
](
a
),
n
[
u
[
f
].
cache
]
=
s
[
u
[
f
].
cache
],
r
=
n
.
_rgba
=
s
.
_rgba
,
!
1
}),
r
.
length
?
(
r
.
join
()
===
"0,0,0,0"
&&
t
.
extend
(
r
,
c
.
transparent
),
n
)
:
c
[
e
]}
function
v
(
e
,
t
,
n
){
return
n
=
(
n
+
1
)
%
1
,
n
*
6
<
1
?
e
+
(
t
-
e
)
*
n
*
6
:
n
*
2
<
1
?
t
:
n
*
3
<
2
?
e
+
(
t
-
e
)
*
(
2
/
3
-
n
)
*
6
:
e
}
var
r
=
"backgroundColor borderBottomColor borderLeftColor borderRightColor borderTopColor color columnRuleColor outlineColor textDecorationColor textEmphasisColor"
.
split
(
" "
),
i
=
/^([\-+])=\s*(\d+\.?\d*)/
,
s
=
[{
re
:
/rgba?\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*(?:,\s*(\d+(?:\.\d+)?)\s*)?\)/
,
parse
:
function
(
e
){
return
[
e
[
1
],
e
[
2
],
e
[
3
],
e
[
4
]]}},{
re
:
/rgba?\(\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d+(?:\.\d+)?)\s*)?\)/
,
parse
:
function
(
e
){
return
[
e
[
1
]
*
2.55
,
e
[
2
]
*
2.55
,
e
[
3
]
*
2.55
,
e
[
4
]]}},{
re
:
/#([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})/
,
parse
:
function
(
e
){
return
[
parseInt
(
e
[
1
],
16
),
parseInt
(
e
[
2
],
16
),
parseInt
(
e
[
3
],
16
)]}},{
re
:
/#([a-f0-9])([a-f0-9])([a-f0-9])/
,
parse
:
function
(
e
){
return
[
parseInt
(
e
[
1
]
+
e
[
1
],
16
),
parseInt
(
e
[
2
]
+
e
[
2
],
16
),
parseInt
(
e
[
3
]
+
e
[
3
],
16
)]}},{
re
:
/hsla?\(\s*(\d+(?:\.\d+)?)\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d+(?:\.\d+)?)\s*)?\)/
,
space
:
"hsla"
,
parse
:
function
(
e
){
return
[
e
[
1
],
e
[
2
]
/
100
,
e
[
3
]
/
100
,
e
[
4
]]}}],
o
=
t
.
Color
=
function
(
e
,
n
,
r
,
i
){
return
new
t
.
Color
.
fn
.
parse
(
e
,
n
,
r
,
i
)},
u
=
{
rgba
:
{
props
:
{
red
:
{
idx
:
0
,
type
:
"byte"
},
green
:
{
idx
:
1
,
type
:
"byte"
},
blue
:
{
idx
:
2
,
type
:
"byte"
}}},
hsla
:
{
props
:
{
hue
:
{
idx
:
0
,
type
:
"degrees"
},
saturation
:
{
idx
:
1
,
type
:
"percent"
},
lightness
:
{
idx
:
2
,
type
:
"percent"
}}}},
a
=
{
"byte"
:
{
floor
:!
0
,
max
:
255
},
percent
:
{
max
:
1
},
degrees
:
{
mod
:
360
,
floor
:!
0
}},
f
=
o
.
support
=
{},
l
=
t
(
"<p>"
)[
0
],
c
,
h
=
t
.
each
;
l
.
style
.
cssText
=
"background-color:rgba(1,1,1,.5)"
,
f
.
rgba
=
l
.
style
.
backgroundColor
.
indexOf
(
"rgba"
)
>-
1
,
h
(
u
,
function
(
e
,
t
){
t
.
cache
=
"_"
+
e
,
t
.
props
.
alpha
=
{
idx
:
3
,
type
:
"percent"
,
def
:
1
}}),
o
.
fn
=
t
.
extend
(
o
.
prototype
,{
parse
:
function
(
r
,
i
,
s
,
a
){
if
(
r
===
n
)
return
this
.
_rgba
=
[
null
,
null
,
null
,
null
],
this
;
if
(
r
.
jquery
||
r
.
nodeType
)
r
=
t
(
r
).
css
(
i
),
i
=
n
;
var
f
=
this
,
l
=
t
.
type
(
r
),
v
=
this
.
_rgba
=
[];
i
!==
n
&&
(
r
=
[
r
,
i
,
s
,
a
],
l
=
"array"
);
if
(
l
===
"string"
)
return
this
.
parse
(
d
(
r
)
||
c
.
_default
);
if
(
l
===
"array"
)
return
h
(
u
.
rgba
.
props
,
function
(
e
,
t
){
v
[
t
.
idx
]
=
p
(
r
[
t
.
idx
],
t
)}),
this
;
if
(
l
===
"object"
)
return
r
instanceof
o
?
h
(
u
,
function
(
e
,
t
){
r
[
t
.
cache
]
&&
(
f
[
t
.
cache
]
=
r
[
t
.
cache
].
slice
())})
:
h
(
u
,
function
(
t
,
n
){
var
i
=
n
.
cache
;
h
(
n
.
props
,
function
(
e
,
t
){
if
(
!
f
[
i
]
&&
n
.
to
){
if
(
e
===
"alpha"
||
r
[
e
]
==
null
)
return
;
f
[
i
]
=
n
.
to
(
f
.
_rgba
)}
f
[
i
][
t
.
idx
]
=
p
(
r
[
e
],
t
,
!
0
)}),
f
[
i
]
&&
e
.
inArray
(
null
,
f
[
i
].
slice
(
0
,
3
))
<
0
&&
(
f
[
i
][
3
]
=
1
,
n
.
from
&&
(
f
.
_rgba
=
n
.
from
(
f
[
i
])))}),
this
},
is
:
function
(
e
){
var
t
=
o
(
e
),
n
=!
0
,
r
=
this
;
return
h
(
u
,
function
(
e
,
i
){
var
s
,
o
=
t
[
i
.
cache
];
return
o
&&
(
s
=
r
[
i
.
cache
]
||
i
.
to
&&
i
.
to
(
r
.
_rgba
)
||
[],
h
(
i
.
props
,
function
(
e
,
t
){
if
(
o
[
t
.
idx
]
!=
null
)
return
n
=
o
[
t
.
idx
]
===
s
[
t
.
idx
],
n
})),
n
}),
n
},
_space
:
function
(){
var
e
=
[],
t
=
this
;
return
h
(
u
,
function
(
n
,
r
){
t
[
r
.
cache
]
&&
e
.
push
(
n
)}),
e
.
pop
()},
transition
:
function
(
e
,
t
){
var
n
=
o
(
e
),
r
=
n
.
_space
(),
i
=
u
[
r
],
s
=
this
.
alpha
()
===
0
?
o
(
"transparent"
)
:
this
,
f
=
s
[
i
.
cache
]
||
i
.
to
(
s
.
_rgba
),
l
=
f
.
slice
();
return
n
=
n
[
i
.
cache
],
h
(
i
.
props
,
function
(
e
,
r
){
var
i
=
r
.
idx
,
s
=
f
[
i
],
o
=
n
[
i
],
u
=
a
[
r
.
type
]
||
{};
if
(
o
===
null
)
return
;
s
===
null
?
l
[
i
]
=
o
:
(
u
.
mod
&&
(
o
-
s
>
u
.
mod
/
2
?
s
+=
u
.
mod
:
s
-
o
>
u
.
mod
/
2
&&
(
s
-=
u
.
mod
)),
l
[
i
]
=
p
((
o
-
s
)
*
t
+
s
,
r
))}),
this
[
r
](
l
)},
blend
:
function
(
e
){
if
(
this
.
_rgba
[
3
]
===
1
)
return
this
;
var
n
=
this
.
_rgba
.
slice
(),
r
=
n
.
pop
(),
i
=
o
(
e
).
_rgba
;
return
o
(
t
.
map
(
n
,
function
(
e
,
t
){
return
(
1
-
r
)
*
i
[
t
]
+
r
*
e
}))},
toRgbaString
:
function
(){
var
e
=
"rgba("
,
n
=
t
.
map
(
this
.
_rgba
,
function
(
e
,
t
){
return
e
==
null
?
t
>
2
?
1
:
0
:
e
});
return
n
[
3
]
===
1
&&
(
n
.
pop
(),
e
=
"rgb("
),
e
+
n
.
join
()
+
")"
},
toHslaString
:
function
(){
var
e
=
"hsla("
,
n
=
t
.
map
(
this
.
hsla
(),
function
(
e
,
t
){
return
e
==
null
&&
(
e
=
t
>
2
?
1
:
0
),
t
&&
t
<
3
&&
(
e
=
Math
.
round
(
e
*
100
)
+
"%"
),
e
});
return
n
[
3
]
===
1
&&
(
n
.
pop
(),
e
=
"hsl("
),
e
+
n
.
join
()
+
")"
},
toHexString
:
function
(
e
){
var
n
=
this
.
_rgba
.
slice
(),
r
=
n
.
pop
();
return
e
&&
n
.
push
(
~~
(
r
*
255
)),
"#"
+
t
.
map
(
n
,
function
(
e
){
return
e
=
(
e
||
0
).
toString
(
16
),
e
.
length
===
1
?
"0"
+
e
:
e
}).
join
(
""
)},
toString
:
function
(){
return
this
.
_rgba
[
3
]
===
0
?
"transparent"
:
this
.
toRgbaString
()}}),
o
.
fn
.
parse
.
prototype
=
o
.
fn
,
u
.
hsla
.
to
=
function
(
e
){
if
(
e
[
0
]
==
null
||
e
[
1
]
==
null
||
e
[
2
]
==
null
)
return
[
null
,
null
,
null
,
e
[
3
]];
var
t
=
e
[
0
]
/
255
,
n
=
e
[
1
]
/
255
,
r
=
e
[
2
]
/
255
,
i
=
e
[
3
],
s
=
Math
.
max
(
t
,
n
,
r
),
o
=
Math
.
min
(
t
,
n
,
r
),
u
=
s
-
o
,
a
=
s
+
o
,
f
=
a
*
.5
,
l
,
c
;
return
o
===
s
?
l
=
0
:
t
===
s
?
l
=
60
*
(
n
-
r
)
/
u
+
360
:
n
===
s
?
l
=
60
*
(
r
-
t
)
/
u
+
120
:
l
=
60
*
(
t
-
n
)
/
u
+
240
,
f
===
0
||
f
===
1
?
c
=
f
:
f
<=
.5
?
c
=
u
/
a
:
c
=
u
/
(
2
-
a
),[
Math
.
round
(
l
)
%
360
,
c
,
f
,
i
==
null
?
1
:
i
]},
u
.
hsla
.
from
=
function
(
e
){
if
(
e
[
0
]
==
null
||
e
[
1
]
==
null
||
e
[
2
]
==
null
)
return
[
null
,
null
,
null
,
e
[
3
]];
var
t
=
e
[
0
]
/
360
,
n
=
e
[
1
],
r
=
e
[
2
],
i
=
e
[
3
],
s
=
r
<=
.5
?
r
*
(
1
+
n
)
:
r
+
n
-
r
*
n
,
o
=
2
*
r
-
s
;
return
[
Math
.
round
(
v
(
o
,
s
,
t
+
1
/
3
)
*
255
),
Math
.
round
(
v
(
o
,
s
,
t
)
*
255
),
Math
.
round
(
v
(
o
,
s
,
t
-
1
/
3
)
*
255
),
i
]},
h
(
u
,
function
(
e
,
r
){
var
s
=
r
.
props
,
u
=
r
.
cache
,
a
=
r
.
to
,
f
=
r
.
from
;
o
.
fn
[
e
]
=
function
(
e
){
a
&&!
this
[
u
]
&&
(
this
[
u
]
=
a
(
this
.
_rgba
));
if
(
e
===
n
)
return
this
[
u
].
slice
();
var
r
,
i
=
t
.
type
(
e
),
l
=
i
===
"array"
||
i
===
"object"
?
e
:
arguments
,
c
=
this
[
u
].
slice
();
return
h
(
s
,
function
(
e
,
t
){
var
n
=
l
[
i
===
"object"
?
e
:
t
.
idx
];
n
==
null
&&
(
n
=
c
[
t
.
idx
]),
c
[
t
.
idx
]
=
p
(
n
,
t
)}),
f
?
(
r
=
o
(
f
(
c
)),
r
[
u
]
=
c
,
r
)
:
o
(
c
)},
h
(
s
,
function
(
n
,
r
){
if
(
o
.
fn
[
n
])
return
;
o
.
fn
[
n
]
=
function
(
s
){
var
o
=
t
.
type
(
s
),
u
=
n
===
"alpha"
?
this
.
_hsla
?
"hsla"
:
"rgba"
:
e
,
a
=
this
[
u
](),
f
=
a
[
r
.
idx
],
l
;
return
o
===
"undefined"
?
f
:
(
o
===
"function"
&&
(
s
=
s
.
call
(
this
,
f
),
o
=
t
.
type
(
s
)),
s
==
null
&&
r
.
empty
?
this
:
(
o
===
"string"
&&
(
l
=
i
.
exec
(
s
),
l
&&
(
s
=
f
+
parseFloat
(
l
[
2
])
*
(
l
[
1
]
===
"+"
?
1
:-
1
))),
a
[
r
.
idx
]
=
s
,
this
[
u
](
a
)))}})}),
h
(
r
,
function
(
e
,
n
){
t
.
cssHooks
[
n
]
=
{
set
:
function
(
e
,
r
){
var
i
,
s
,
u
=
""
;
if
(
t
.
type
(
r
)
!==
"string"
||
(
i
=
d
(
r
))){
r
=
o
(
i
||
r
);
if
(
!
f
.
rgba
&&
r
.
_rgba
[
3
]
!==
1
){
s
=
n
===
"backgroundColor"
?
e
.
parentNode
:
e
;
while
((
u
===
""
||
u
===
"transparent"
)
&&
s
&&
s
.
style
)
try
{
u
=
t
.
css
(
s
,
"backgroundColor"
),
s
=
s
.
parentNode
}
catch
(
a
){}
r
=
r
.
blend
(
u
&&
u
!==
"transparent"
?
u
:
"_default"
)}
r
=
r
.
toRgbaString
()}
try
{
e
.
style
[
n
]
=
r
}
catch
(
l
){}}},
t
.
fx
.
step
[
n
]
=
function
(
e
){
e
.
colorInit
||
(
e
.
start
=
o
(
e
.
elem
,
n
),
e
.
end
=
o
(
e
.
end
),
e
.
colorInit
=!
0
),
t
.
cssHooks
[
n
].
set
(
e
.
elem
,
e
.
start
.
transition
(
e
.
end
,
e
.
pos
))}}),
t
.
cssHooks
.
borderColor
=
{
expand
:
function
(
e
){
var
t
=
{};
return
h
([
"Top"
,
"Right"
,
"Bottom"
,
"Left"
],
function
(
n
,
r
){
t
[
"border"
+
r
+
"Color"
]
=
e
}),
t
}},
c
=
t
.
Color
.
names
=
{
aqua
:
"#00ffff"
,
black
:
"#000000"
,
blue
:
"#0000ff"
,
fuchsia
:
"#ff00ff"
,
gray
:
"#808080"
,
green
:
"#008000"
,
lime
:
"#00ff00"
,
maroon
:
"#800000"
,
navy
:
"#000080"
,
olive
:
"#808000"
,
purple
:
"#800080"
,
red
:
"#ff0000"
,
silver
:
"#c0c0c0"
,
teal
:
"#008080"
,
white
:
"#ffffff"
,
yellow
:
"#ffff00"
,
transparent
:
[
null
,
null
,
null
,
0
],
_default
:
"#ffffff"
}}(
jQuery
),
function
(){
function
i
(){
var
t
=
this
.
ownerDocument
.
defaultView
?
this
.
ownerDocument
.
defaultView
.
getComputedStyle
(
this
,
null
)
:
this
.
currentStyle
,
n
=
{},
r
,
i
;
if
(
t
&&
t
.
length
&&
t
[
0
]
&&
t
[
t
[
0
]]){
i
=
t
.
length
;
while
(
i
--
)
r
=
t
[
i
],
typeof
t
[
r
]
==
"string"
&&
(
n
[
e
.
camelCase
(
r
)]
=
t
[
r
])}
else
for
(
r
in
t
)
typeof
t
[
r
]
==
"string"
&&
(
n
[
r
]
=
t
[
r
]);
return
n
}
function
s
(
t
,
n
){
var
i
=
{},
s
,
o
;
for
(
s
in
n
)
o
=
n
[
s
],
t
[
s
]
!==
o
&&!
r
[
s
]
&&
(
e
.
fx
.
step
[
s
]
||!
isNaN
(
parseFloat
(
o
)))
&&
(
i
[
s
]
=
o
);
return
i
}
var
n
=
[
"add"
,
"remove"
,
"toggle"
],
r
=
{
border
:
1
,
borderBottom
:
1
,
borderColor
:
1
,
borderLeft
:
1
,
borderRight
:
1
,
borderTop
:
1
,
borderWidth
:
1
,
margin
:
1
,
padding
:
1
};
e
.
each
([
"borderLeftStyle"
,
"borderRightStyle"
,
"borderBottomStyle"
,
"borderTopStyle"
],
function
(
t
,
n
){
e
.
fx
.
step
[
n
]
=
function
(
e
){
if
(
e
.
end
!==
"none"
&&!
e
.
setAttr
||
e
.
pos
===
1
&&!
e
.
setAttr
)
jQuery
.
style
(
e
.
elem
,
n
,
e
.
end
),
e
.
setAttr
=!
0
}}),
e
.
effects
.
animateClass
=
function
(
t
,
r
,
o
,
u
){
var
a
=
e
.
speed
(
r
,
o
,
u
);
return
this
.
queue
(
function
(){
var
r
=
e
(
this
),
o
=
r
.
attr
(
"class"
)
||
""
,
u
,
f
=
a
.
children
?
r
.
find
(
"*"
).
andSelf
()
:
r
;
f
=
f
.
map
(
function
(){
var
t
=
e
(
this
);
return
{
el
:
t
,
start
:
i
.
call
(
this
)}}),
u
=
function
(){
e
.
each
(
n
,
function
(
e
,
n
){
t
[
n
]
&&
r
[
n
+
"Class"
](
t
[
n
])})},
u
(),
f
=
f
.
map
(
function
(){
return
this
.
end
=
i
.
call
(
this
.
el
[
0
]),
this
.
diff
=
s
(
this
.
start
,
this
.
end
),
this
}),
r
.
attr
(
"class"
,
o
),
f
=
f
.
map
(
function
(){
var
t
=
this
,
n
=
e
.
Deferred
(),
r
=
jQuery
.
extend
({},
a
,{
queue
:!
1
,
complete
:
function
(){
n
.
resolve
(
t
)}});
return
this
.
el
.
animate
(
this
.
diff
,
r
),
n
.
promise
()}),
e
.
when
.
apply
(
e
,
f
.
get
()).
done
(
function
(){
u
(),
e
.
each
(
arguments
,
function
(){
var
t
=
this
.
el
;
e
.
each
(
this
.
diff
,
function
(
e
){
t
.
css
(
e
,
""
)})}),
a
.
complete
.
call
(
r
[
0
])})})},
e
.
fn
.
extend
({
_addClass
:
e
.
fn
.
addClass
,
addClass
:
function
(
t
,
n
,
r
,
i
){
return
n
?
e
.
effects
.
animateClass
.
call
(
this
,{
add
:
t
},
n
,
r
,
i
)
:
this
.
_addClass
(
t
)},
_removeClass
:
e
.
fn
.
removeClass
,
removeClass
:
function
(
t
,
n
,
r
,
i
){
return
n
?
e
.
effects
.
animateClass
.
call
(
this
,{
remove
:
t
},
n
,
r
,
i
)
:
this
.
_removeClass
(
t
)},
_toggleClass
:
e
.
fn
.
toggleClass
,
toggleClass
:
function
(
n
,
r
,
i
,
s
,
o
){
return
typeof
r
==
"boolean"
||
r
===
t
?
i
?
e
.
effects
.
animateClass
.
call
(
this
,
r
?
{
add
:
n
}
:
{
remove
:
n
},
i
,
s
,
o
)
:
this
.
_toggleClass
(
n
,
r
)
:
e
.
effects
.
animateClass
.
call
(
this
,{
toggle
:
n
},
r
,
i
,
s
)},
switchClass
:
function
(
t
,
n
,
r
,
i
,
s
){
return
e
.
effects
.
animateClass
.
call
(
this
,{
add
:
n
,
remove
:
t
},
r
,
i
,
s
)}})}(),
function
(){
function
i
(
t
,
n
,
r
,
i
){
e
.
isPlainObject
(
t
)
&&
(
n
=
t
,
t
=
t
.
effect
),
t
=
{
effect
:
t
},
n
==
null
&&
(
n
=
{}),
e
.
isFunction
(
n
)
&&
(
i
=
n
,
r
=
null
,
n
=
{});
if
(
typeof
n
==
"number"
||
e
.
fx
.
speeds
[
n
])
i
=
r
,
r
=
n
,
n
=
{};
return
e
.
isFunction
(
r
)
&&
(
i
=
r
,
r
=
null
),
n
&&
e
.
extend
(
t
,
n
),
r
=
r
||
n
.
duration
,
t
.
duration
=
e
.
fx
.
off
?
0
:
typeof
r
==
"number"
?
r
:
r
in
e
.
fx
.
speeds
?
e
.
fx
.
speeds
[
r
]
:
e
.
fx
.
speeds
.
_default
,
t
.
complete
=
i
||
n
.
complete
,
t
}
function
s
(
t
){
return
!
t
||
typeof
t
==
"number"
||
e
.
fx
.
speeds
[
t
]
?!
0
:
typeof
t
==
"string"
&&!
e
.
effects
.
effect
[
t
]
?
n
&&
e
.
effects
[
t
]
?!
1
:!
0
:!
1
}
e
.
extend
(
e
.
effects
,{
version
:
"1.9.1"
,
save
:
function
(
e
,
t
){
for
(
var
n
=
0
;
n
<
t
.
length
;
n
++
)
t
[
n
]
!==
null
&&
e
.
data
(
r
+
t
[
n
],
e
[
0
].
style
[
t
[
n
]])},
restore
:
function
(
e
,
n
){
var
i
,
s
;
for
(
s
=
0
;
s
<
n
.
length
;
s
++
)
n
[
s
]
!==
null
&&
(
i
=
e
.
data
(
r
+
n
[
s
]),
i
===
t
&&
(
i
=
""
),
e
.
css
(
n
[
s
],
i
))},
setMode
:
function
(
e
,
t
){
return
t
===
"toggle"
&&
(
t
=
e
.
is
(
":hidden"
)
?
"show"
:
"hide"
),
t
},
getBaseline
:
function
(
e
,
t
){
var
n
,
r
;
switch
(
e
[
0
]){
case
"top"
:
n
=
0
;
break
;
case
"middle"
:
n
=
.5
;
break
;
case
"bottom"
:
n
=
1
;
break
;
default
:
n
=
e
[
0
]
/
t
.
height
}
switch
(
e
[
1
]){
case
"left"
:
r
=
0
;
break
;
case
"center"
:
r
=
.5
;
break
;
case
"right"
:
r
=
1
;
break
;
default
:
r
=
e
[
1
]
/
t
.
width
}
return
{
x
:
r
,
y
:
n
}},
createWrapper
:
function
(
t
){
if
(
t
.
parent
().
is
(
".ui-effects-wrapper"
))
return
t
.
parent
();
var
n
=
{
width
:
t
.
outerWidth
(
!
0
),
height
:
t
.
outerHeight
(
!
0
),
"float"
:
t
.
css
(
"float"
)},
r
=
e
(
"<div></div>"
).
addClass
(
"ui-effects-wrapper"
).
css
({
fontSize
:
"100%"
,
background
:
"transparent"
,
border
:
"none"
,
margin
:
0
,
padding
:
0
}),
i
=
{
width
:
t
.
width
(),
height
:
t
.
height
()},
s
=
document
.
activeElement
;
try
{
s
.
id
}
catch
(
o
){
s
=
document
.
body
}
return
t
.
wrap
(
r
),(
t
[
0
]
===
s
||
e
.
contains
(
t
[
0
],
s
))
&&
e
(
s
).
focus
(),
r
=
t
.
parent
(),
t
.
css
(
"position"
)
===
"static"
?
(
r
.
css
({
position
:
"relative"
}),
t
.
css
({
position
:
"relative"
}))
:
(
e
.
extend
(
n
,{
position
:
t
.
css
(
"position"
),
zIndex
:
t
.
css
(
"z-index"
)}),
e
.
each
([
"top"
,
"left"
,
"bottom"
,
"right"
],
function
(
e
,
r
){
n
[
r
]
=
t
.
css
(
r
),
isNaN
(
parseInt
(
n
[
r
],
10
))
&&
(
n
[
r
]
=
"auto"
)}),
t
.
css
({
position
:
"relative"
,
top
:
0
,
left
:
0
,
right
:
"auto"
,
bottom
:
"auto"
})),
t
.
css
(
i
),
r
.
css
(
n
).
show
()},
removeWrapper
:
function
(
t
){
var
n
=
document
.
activeElement
;
return
t
.
parent
().
is
(
".ui-effects-wrapper"
)
&&
(
t
.
parent
().
replaceWith
(
t
),(
t
[
0
]
===
n
||
e
.
contains
(
t
[
0
],
n
))
&&
e
(
n
).
focus
()),
t
},
setTransition
:
function
(
t
,
n
,
r
,
i
){
return
i
=
i
||
{},
e
.
each
(
n
,
function
(
e
,
n
){
var
s
=
t
.
cssUnit
(
n
);
s
[
0
]
>
0
&&
(
i
[
n
]
=
s
[
0
]
*
r
+
s
[
1
])}),
i
}}),
e
.
fn
.
extend
({
effect
:
function
(){
function
a
(
n
){
function
u
(){
e
.
isFunction
(
i
)
&&
i
.
call
(
r
[
0
]),
e
.
isFunction
(
n
)
&&
n
()}
var
r
=
e
(
this
),
i
=
t
.
complete
,
s
=
t
.
mode
;(
r
.
is
(
":hidden"
)
?
s
===
"hide"
:
s
===
"show"
)
?
u
()
:
o
.
call
(
r
[
0
],
t
,
u
)}
var
t
=
i
.
apply
(
this
,
arguments
),
r
=
t
.
mode
,
s
=
t
.
queue
,
o
=
e
.
effects
.
effect
[
t
.
effect
],
u
=!
o
&&
n
&&
e
.
effects
[
t
.
effect
];
return
e
.
fx
.
off
||!
o
&&!
u
?
r
?
this
[
r
](
t
.
duration
,
t
.
complete
)
:
this
.
each
(
function
(){
t
.
complete
&&
t
.
complete
.
call
(
this
)})
:
o
?
s
===!
1
?
this
.
each
(
a
)
:
this
.
queue
(
s
||
"fx"
,
a
)
:
u
.
call
(
this
,{
options
:
t
,
duration
:
t
.
duration
,
callback
:
t
.
complete
,
mode
:
t
.
mode
})},
_show
:
e
.
fn
.
show
,
show
:
function
(
e
){
if
(
s
(
e
))
return
this
.
_show
.
apply
(
this
,
arguments
);
var
t
=
i
.
apply
(
this
,
arguments
);
return
t
.
mode
=
"show"
,
this
.
effect
.
call
(
this
,
t
)},
_hide
:
e
.
fn
.
hide
,
hide
:
function
(
e
){
if
(
s
(
e
))
return
this
.
_hide
.
apply
(
this
,
arguments
);
var
t
=
i
.
apply
(
this
,
arguments
);
return
t
.
mode
=
"hide"
,
this
.
effect
.
call
(
this
,
t
)},
__toggle
:
e
.
fn
.
toggle
,
toggle
:
function
(
t
){
if
(
s
(
t
)
||
typeof
t
==
"boolean"
||
e
.
isFunction
(
t
))
return
this
.
__toggle
.
apply
(
this
,
arguments
);
var
n
=
i
.
apply
(
this
,
arguments
);
return
n
.
mode
=
"toggle"
,
this
.
effect
.
call
(
this
,
n
)},
cssUnit
:
function
(
t
){
var
n
=
this
.
css
(
t
),
r
=
[];
return
e
.
each
([
"em"
,
"px"
,
"%"
,
"pt"
],
function
(
e
,
t
){
n
.
indexOf
(
t
)
>
0
&&
(
r
=
[
parseFloat
(
n
),
t
])}),
r
}})}(),
function
(){
var
t
=
{};
e
.
each
([
"Quad"
,
"Cubic"
,
"Quart"
,
"Quint"
,
"Expo"
],
function
(
e
,
n
){
t
[
n
]
=
function
(
t
){
return
Math
.
pow
(
t
,
e
+
2
)}}),
e
.
extend
(
t
,{
Sine
:
function
(
e
){
return
1
-
Math
.
cos
(
e
*
Math
.
PI
/
2
)},
Circ
:
function
(
e
){
return
1
-
Math
.
sqrt
(
1
-
e
*
e
)},
Elastic
:
function
(
e
){
return
e
===
0
||
e
===
1
?
e
:-
Math
.
pow
(
2
,
8
*
(
e
-
1
))
*
Math
.
sin
(((
e
-
1
)
*
80
-
7.5
)
*
Math
.
PI
/
15
)},
Back
:
function
(
e
){
return
e
*
e
*
(
3
*
e
-
2
)},
Bounce
:
function
(
e
){
var
t
,
n
=
4
;
while
(
e
<
((
t
=
Math
.
pow
(
2
,
--
n
))
-
1
)
/
11
);
return
1
/
Math
.
pow
(
4
,
3
-
n
)
-
7.5625
*
Math
.
pow
((
t
*
3
-
2
)
/
22
-
e
,
2
)}}),
e
.
each
(
t
,
function
(
t
,
n
){
e
.
easing
[
"easeIn"
+
t
]
=
n
,
e
.
easing
[
"easeOut"
+
t
]
=
function
(
e
){
return
1
-
n
(
1
-
e
)},
e
.
easing
[
"easeInOut"
+
t
]
=
function
(
e
){
return
e
<
.5
?
n
(
e
*
2
)
/
2
:
1
-
n
(
e
*-
2
+
2
)
/
2
}})}()}(
jQuery
);(
function
(
e
,
t
){
var
n
=
/up|down|vertical/
,
r
=
/up|left|vertical|horizontal/
;
e
.
effects
.
effect
.
blind
=
function
(
t
,
i
){
var
s
=
e
(
this
),
o
=
[
"position"
,
"top"
,
"bottom"
,
"left"
,
"right"
,
"height"
,
"width"
],
u
=
e
.
effects
.
setMode
(
s
,
t
.
mode
||
"hide"
),
a
=
t
.
direction
||
"up"
,
f
=
n
.
test
(
a
),
l
=
f
?
"height"
:
"width"
,
c
=
f
?
"top"
:
"left"
,
h
=
r
.
test
(
a
),
p
=
{},
d
=
u
===
"show"
,
v
,
m
,
g
;
s
.
parent
().
is
(
".ui-effects-wrapper"
)
?
e
.
effects
.
save
(
s
.
parent
(),
o
)
:
e
.
effects
.
save
(
s
,
o
),
s
.
show
(),
v
=
e
.
effects
.
createWrapper
(
s
).
css
({
overflow
:
"hidden"
}),
m
=
v
[
l
](),
g
=
parseFloat
(
v
.
css
(
c
))
||
0
,
p
[
l
]
=
d
?
m
:
0
,
h
||
(
s
.
css
(
f
?
"bottom"
:
"right"
,
0
).
css
(
f
?
"top"
:
"left"
,
"auto"
).
css
({
position
:
"absolute"
}),
p
[
c
]
=
d
?
g
:
m
+
g
),
d
&&
(
v
.
css
(
l
,
0
),
h
||
v
.
css
(
c
,
g
+
m
)),
v
.
animate
(
p
,{
duration
:
t
.
duration
,
easing
:
t
.
easing
,
queue
:!
1
,
complete
:
function
(){
u
===
"hide"
&&
s
.
hide
(),
e
.
effects
.
restore
(
s
,
o
),
e
.
effects
.
removeWrapper
(
s
),
i
()}})}})(
jQuery
);(
function
(
e
,
t
){
e
.
effects
.
effect
.
bounce
=
function
(
t
,
n
){
var
r
=
e
(
this
),
i
=
[
"position"
,
"top"
,
"bottom"
,
"left"
,
"right"
,
"height"
,
"width"
],
s
=
e
.
effects
.
setMode
(
r
,
t
.
mode
||
"effect"
),
o
=
s
===
"hide"
,
u
=
s
===
"show"
,
a
=
t
.
direction
||
"up"
,
f
=
t
.
distance
,
l
=
t
.
times
||
5
,
c
=
l
*
2
+
(
u
||
o
?
1
:
0
),
h
=
t
.
duration
/
c
,
p
=
t
.
easing
,
d
=
a
===
"up"
||
a
===
"down"
?
"top"
:
"left"
,
v
=
a
===
"up"
||
a
===
"left"
,
m
,
g
,
y
,
b
=
r
.
queue
(),
w
=
b
.
length
;(
u
||
o
)
&&
i
.
push
(
"opacity"
),
e
.
effects
.
save
(
r
,
i
),
r
.
show
(),
e
.
effects
.
createWrapper
(
r
),
f
||
(
f
=
r
[
d
===
"top"
?
"outerHeight"
:
"outerWidth"
]()
/
3
),
u
&&
(
y
=
{
opacity
:
1
},
y
[
d
]
=
0
,
r
.
css
(
"opacity"
,
0
).
css
(
d
,
v
?-
f
*
2
:
f
*
2
).
animate
(
y
,
h
,
p
)),
o
&&
(
f
/=
Math
.
pow
(
2
,
l
-
1
)),
y
=
{},
y
[
d
]
=
0
;
for
(
m
=
0
;
m
<
l
;
m
++
)
g
=
{},
g
[
d
]
=
(
v
?
"-="
:
"+="
)
+
f
,
r
.
animate
(
g
,
h
,
p
).
animate
(
y
,
h
,
p
),
f
=
o
?
f
*
2
:
f
/
2
;
o
&&
(
g
=
{
opacity
:
0
},
g
[
d
]
=
(
v
?
"-="
:
"+="
)
+
f
,
r
.
animate
(
g
,
h
,
p
)),
r
.
queue
(
function
(){
o
&&
r
.
hide
(),
e
.
effects
.
restore
(
r
,
i
),
e
.
effects
.
removeWrapper
(
r
),
n
()}),
w
>
1
&&
b
.
splice
.
apply
(
b
,[
1
,
0
].
concat
(
b
.
splice
(
w
,
c
+
1
))),
r
.
dequeue
()}})(
jQuery
);(
function
(
e
,
t
){
e
.
effects
.
effect
.
clip
=
function
(
t
,
n
){
var
r
=
e
(
this
),
i
=
[
"position"
,
"top"
,
"bottom"
,
"left"
,
"right"
,
"height"
,
"width"
],
s
=
e
.
effects
.
setMode
(
r
,
t
.
mode
||
"hide"
),
o
=
s
===
"show"
,
u
=
t
.
direction
||
"vertical"
,
a
=
u
===
"vertical"
,
f
=
a
?
"height"
:
"width"
,
l
=
a
?
"top"
:
"left"
,
c
=
{},
h
,
p
,
d
;
e
.
effects
.
save
(
r
,
i
),
r
.
show
(),
h
=
e
.
effects
.
createWrapper
(
r
).
css
({
overflow
:
"hidden"
}),
p
=
r
[
0
].
tagName
===
"IMG"
?
h
:
r
,
d
=
p
[
f
](),
o
&&
(
p
.
css
(
f
,
0
),
p
.
css
(
l
,
d
/
2
)),
c
[
f
]
=
o
?
d
:
0
,
c
[
l
]
=
o
?
0
:
d
/
2
,
p
.
animate
(
c
,{
queue
:!
1
,
duration
:
t
.
duration
,
easing
:
t
.
easing
,
complete
:
function
(){
o
||
r
.
hide
(),
e
.
effects
.
restore
(
r
,
i
),
e
.
effects
.
removeWrapper
(
r
),
n
()}})}})(
jQuery
);(
function
(
e
,
t
){
e
.
effects
.
effect
.
drop
=
function
(
t
,
n
){
var
r
=
e
(
this
),
i
=
[
"position"
,
"top"
,
"bottom"
,
"left"
,
"right"
,
"opacity"
,
"height"
,
"width"
],
s
=
e
.
effects
.
setMode
(
r
,
t
.
mode
||
"hide"
),
o
=
s
===
"show"
,
u
=
t
.
direction
||
"left"
,
a
=
u
===
"up"
||
u
===
"down"
?
"top"
:
"left"
,
f
=
u
===
"up"
||
u
===
"left"
?
"pos"
:
"neg"
,
l
=
{
opacity
:
o
?
1
:
0
},
c
;
e
.
effects
.
save
(
r
,
i
),
r
.
show
(),
e
.
effects
.
createWrapper
(
r
),
c
=
t
.
distance
||
r
[
a
===
"top"
?
"outerHeight"
:
"outerWidth"
](
!
0
)
/
2
,
o
&&
r
.
css
(
"opacity"
,
0
).
css
(
a
,
f
===
"pos"
?-
c
:
c
),
l
[
a
]
=
(
o
?
f
===
"pos"
?
"+="
:
"-="
:
f
===
"pos"
?
"-="
:
"+="
)
+
c
,
r
.
animate
(
l
,{
queue
:!
1
,
duration
:
t
.
duration
,
easing
:
t
.
easing
,
complete
:
function
(){
s
===
"hide"
&&
r
.
hide
(),
e
.
effects
.
restore
(
r
,
i
),
e
.
effects
.
removeWrapper
(
r
),
n
()}})}})(
jQuery
);(
function
(
e
,
t
){
e
.
effects
.
effect
.
explode
=
function
(
t
,
n
){
function
y
(){
c
.
push
(
this
),
c
.
length
===
r
*
i
&&
b
()}
function
b
(){
s
.
css
({
visibility
:
"visible"
}),
e
(
c
).
remove
(),
u
||
s
.
hide
(),
n
()}
var
r
=
t
.
pieces
?
Math
.
round
(
Math
.
sqrt
(
t
.
pieces
))
:
3
,
i
=
r
,
s
=
e
(
this
),
o
=
e
.
effects
.
setMode
(
s
,
t
.
mode
||
"hide"
),
u
=
o
===
"show"
,
a
=
s
.
show
().
css
(
"visibility"
,
"hidden"
).
offset
(),
f
=
Math
.
ceil
(
s
.
outerWidth
()
/
i
),
l
=
Math
.
ceil
(
s
.
outerHeight
()
/
r
),
c
=
[],
h
,
p
,
d
,
v
,
m
,
g
;
for
(
h
=
0
;
h
<
r
;
h
++
){
v
=
a
.
top
+
h
*
l
,
g
=
h
-
(
r
-
1
)
/
2
;
for
(
p
=
0
;
p
<
i
;
p
++
)
d
=
a
.
left
+
p
*
f
,
m
=
p
-
(
i
-
1
)
/
2
,
s
.
clone
().
appendTo
(
"body"
).
wrap
(
"<div></div>"
).
css
({
position
:
"absolute"
,
visibility
:
"visible"
,
left
:-
p
*
f
,
top
:-
h
*
l
}).
parent
().
addClass
(
"ui-effects-explode"
).
css
({
position
:
"absolute"
,
overflow
:
"hidden"
,
width
:
f
,
height
:
l
,
left
:
d
+
(
u
?
m
*
f
:
0
),
top
:
v
+
(
u
?
g
*
l
:
0
),
opacity
:
u
?
0
:
1
}).
animate
({
left
:
d
+
(
u
?
0
:
m
*
f
),
top
:
v
+
(
u
?
0
:
g
*
l
),
opacity
:
u
?
1
:
0
},
t
.
duration
||
500
,
t
.
easing
,
y
)}}})(
jQuery
);(
function
(
e
,
t
){
e
.
effects
.
effect
.
fade
=
function
(
t
,
n
){
var
r
=
e
(
this
),
i
=
e
.
effects
.
setMode
(
r
,
t
.
mode
||
"toggle"
);
r
.
animate
({
opacity
:
i
},{
queue
:!
1
,
duration
:
t
.
duration
,
easing
:
t
.
easing
,
complete
:
n
})}})(
jQuery
);(
function
(
e
,
t
){
e
.
effects
.
effect
.
fold
=
function
(
t
,
n
){
var
r
=
e
(
this
),
i
=
[
"position"
,
"top"
,
"bottom"
,
"left"
,
"right"
,
"height"
,
"width"
],
s
=
e
.
effects
.
setMode
(
r
,
t
.
mode
||
"hide"
),
o
=
s
===
"show"
,
u
=
s
===
"hide"
,
a
=
t
.
size
||
15
,
f
=
/([0-9]+)%/
.
exec
(
a
),
l
=!!
t
.
horizFirst
,
c
=
o
!==
l
,
h
=
c
?
[
"width"
,
"height"
]
:
[
"height"
,
"width"
],
p
=
t
.
duration
/
2
,
d
,
v
,
m
=
{},
g
=
{};
e
.
effects
.
save
(
r
,
i
),
r
.
show
(),
d
=
e
.
effects
.
createWrapper
(
r
).
css
({
overflow
:
"hidden"
}),
v
=
c
?
[
d
.
width
(),
d
.
height
()]
:
[
d
.
height
(),
d
.
width
()],
f
&&
(
a
=
parseInt
(
f
[
1
],
10
)
/
100
*
v
[
u
?
0
:
1
]),
o
&&
d
.
css
(
l
?
{
height
:
0
,
width
:
a
}
:
{
height
:
a
,
width
:
0
}),
m
[
h
[
0
]]
=
o
?
v
[
0
]
:
a
,
g
[
h
[
1
]]
=
o
?
v
[
1
]
:
0
,
d
.
animate
(
m
,
p
,
t
.
easing
).
animate
(
g
,
p
,
t
.
easing
,
function
(){
u
&&
r
.
hide
(),
e
.
effects
.
restore
(
r
,
i
),
e
.
effects
.
removeWrapper
(
r
),
n
()})}})(
jQuery
);(
function
(
e
,
t
){
e
.
effects
.
effect
.
highlight
=
function
(
t
,
n
){
var
r
=
e
(
this
),
i
=
[
"backgroundImage"
,
"backgroundColor"
,
"opacity"
],
s
=
e
.
effects
.
setMode
(
r
,
t
.
mode
||
"show"
),
o
=
{
backgroundColor
:
r
.
css
(
"backgroundColor"
)};
s
===
"hide"
&&
(
o
.
opacity
=
0
),
e
.
effects
.
save
(
r
,
i
),
r
.
show
().
css
({
backgroundImage
:
"none"
,
backgroundColor
:
t
.
color
||
"#ffff99"
}).
animate
(
o
,{
queue
:!
1
,
duration
:
t
.
duration
,
easing
:
t
.
easing
,
complete
:
function
(){
s
===
"hide"
&&
r
.
hide
(),
e
.
effects
.
restore
(
r
,
i
),
n
()}})}})(
jQuery
);(
function
(
e
,
t
){
e
.
effects
.
effect
.
pulsate
=
function
(
t
,
n
){
var
r
=
e
(
this
),
i
=
e
.
effects
.
setMode
(
r
,
t
.
mode
||
"show"
),
s
=
i
===
"show"
,
o
=
i
===
"hide"
,
u
=
s
||
i
===
"hide"
,
a
=
(
t
.
times
||
5
)
*
2
+
(
u
?
1
:
0
),
f
=
t
.
duration
/
a
,
l
=
0
,
c
=
r
.
queue
(),
h
=
c
.
length
,
p
;
if
(
s
||!
r
.
is
(
":visible"
))
r
.
css
(
"opacity"
,
0
).
show
(),
l
=
1
;
for
(
p
=
1
;
p
<
a
;
p
++
)
r
.
animate
({
opacity
:
l
},
f
,
t
.
easing
),
l
=
1
-
l
;
r
.
animate
({
opacity
:
l
},
f
,
t
.
easing
),
r
.
queue
(
function
(){
o
&&
r
.
hide
(),
n
()}),
h
>
1
&&
c
.
splice
.
apply
(
c
,[
1
,
0
].
concat
(
c
.
splice
(
h
,
a
+
1
))),
r
.
dequeue
()}})(
jQuery
);(
function
(
e
,
t
){
e
.
effects
.
effect
.
puff
=
function
(
t
,
n
){
var
r
=
e
(
this
),
i
=
e
.
effects
.
setMode
(
r
,
t
.
mode
||
"hide"
),
s
=
i
===
"hide"
,
o
=
parseInt
(
t
.
percent
,
10
)
||
150
,
u
=
o
/
100
,
a
=
{
height
:
r
.
height
(),
width
:
r
.
width
()};
e
.
extend
(
t
,{
effect
:
"scale"
,
queue
:!
1
,
fade
:!
0
,
mode
:
i
,
complete
:
n
,
percent
:
s
?
o
:
100
,
from
:
s
?
a
:
{
height
:
a
.
height
*
u
,
width
:
a
.
width
*
u
}}),
r
.
effect
(
t
)},
e
.
effects
.
effect
.
scale
=
function
(
t
,
n
){
var
r
=
e
(
this
),
i
=
e
.
extend
(
!
0
,{},
t
),
s
=
e
.
effects
.
setMode
(
r
,
t
.
mode
||
"effect"
),
o
=
parseInt
(
t
.
percent
,
10
)
||
(
parseInt
(
t
.
percent
,
10
)
===
0
?
0
:
s
===
"hide"
?
0
:
100
),
u
=
t
.
direction
||
"both"
,
a
=
t
.
origin
,
f
=
{
height
:
r
.
height
(),
width
:
r
.
width
(),
outerHeight
:
r
.
outerHeight
(),
outerWidth
:
r
.
outerWidth
()},
l
=
{
y
:
u
!==
"horizontal"
?
o
/
100
:
1
,
x
:
u
!==
"vertical"
?
o
/
100
:
1
};
i
.
effect
=
"size"
,
i
.
queue
=!
1
,
i
.
complete
=
n
,
s
!==
"effect"
&&
(
i
.
origin
=
a
||
[
"middle"
,
"center"
],
i
.
restore
=!
0
),
i
.
from
=
t
.
from
||
(
s
===
"show"
?
{
height
:
0
,
width
:
0
}
:
f
),
i
.
to
=
{
height
:
f
.
height
*
l
.
y
,
width
:
f
.
width
*
l
.
x
,
outerHeight
:
f
.
outerHeight
*
l
.
y
,
outerWidth
:
f
.
outerWidth
*
l
.
x
},
i
.
fade
&&
(
s
===
"show"
&&
(
i
.
from
.
opacity
=
0
,
i
.
to
.
opacity
=
1
),
s
===
"hide"
&&
(
i
.
from
.
opacity
=
1
,
i
.
to
.
opacity
=
0
)),
r
.
effect
(
i
)},
e
.
effects
.
effect
.
size
=
function
(
t
,
n
){
var
r
,
i
,
s
,
o
=
e
(
this
),
u
=
[
"position"
,
"top"
,
"bottom"
,
"left"
,
"right"
,
"width"
,
"height"
,
"overflow"
,
"opacity"
],
a
=
[
"position"
,
"top"
,
"bottom"
,
"left"
,
"right"
,
"overflow"
,
"opacity"
],
f
=
[
"width"
,
"height"
,
"overflow"
],
l
=
[
"fontSize"
],
c
=
[
"borderTopWidth"
,
"borderBottomWidth"
,
"paddingTop"
,
"paddingBottom"
],
h
=
[
"borderLeftWidth"
,
"borderRightWidth"
,
"paddingLeft"
,
"paddingRight"
],
p
=
e
.
effects
.
setMode
(
o
,
t
.
mode
||
"effect"
),
d
=
t
.
restore
||
p
!==
"effect"
,
v
=
t
.
scale
||
"both"
,
m
=
t
.
origin
||
[
"middle"
,
"center"
],
g
=
o
.
css
(
"position"
),
y
=
d
?
u
:
a
,
b
=
{
height
:
0
,
width
:
0
};
p
===
"show"
&&
o
.
show
(),
r
=
{
height
:
o
.
height
(),
width
:
o
.
width
(),
outerHeight
:
o
.
outerHeight
(),
outerWidth
:
o
.
outerWidth
()},
t
.
mode
===
"toggle"
&&
p
===
"show"
?
(
o
.
from
=
t
.
to
||
b
,
o
.
to
=
t
.
from
||
r
)
:
(
o
.
from
=
t
.
from
||
(
p
===
"show"
?
b
:
r
),
o
.
to
=
t
.
to
||
(
p
===
"hide"
?
b
:
r
)),
s
=
{
from
:
{
y
:
o
.
from
.
height
/
r
.
height
,
x
:
o
.
from
.
width
/
r
.
width
},
to
:
{
y
:
o
.
to
.
height
/
r
.
height
,
x
:
o
.
to
.
width
/
r
.
width
}};
if
(
v
===
"box"
||
v
===
"both"
)
s
.
from
.
y
!==
s
.
to
.
y
&&
(
y
=
y
.
concat
(
c
),
o
.
from
=
e
.
effects
.
setTransition
(
o
,
c
,
s
.
from
.
y
,
o
.
from
),
o
.
to
=
e
.
effects
.
setTransition
(
o
,
c
,
s
.
to
.
y
,
o
.
to
)),
s
.
from
.
x
!==
s
.
to
.
x
&&
(
y
=
y
.
concat
(
h
),
o
.
from
=
e
.
effects
.
setTransition
(
o
,
h
,
s
.
from
.
x
,
o
.
from
),
o
.
to
=
e
.
effects
.
setTransition
(
o
,
h
,
s
.
to
.
x
,
o
.
to
));(
v
===
"content"
||
v
===
"both"
)
&&
s
.
from
.
y
!==
s
.
to
.
y
&&
(
y
=
y
.
concat
(
l
).
concat
(
f
),
o
.
from
=
e
.
effects
.
setTransition
(
o
,
l
,
s
.
from
.
y
,
o
.
from
),
o
.
to
=
e
.
effects
.
setTransition
(
o
,
l
,
s
.
to
.
y
,
o
.
to
)),
e
.
effects
.
save
(
o
,
y
),
o
.
show
(),
e
.
effects
.
createWrapper
(
o
),
o
.
css
(
"overflow"
,
"hidden"
).
css
(
o
.
from
),
m
&&
(
i
=
e
.
effects
.
getBaseline
(
m
,
r
),
o
.
from
.
top
=
(
r
.
outerHeight
-
o
.
outerHeight
())
*
i
.
y
,
o
.
from
.
left
=
(
r
.
outerWidth
-
o
.
outerWidth
())
*
i
.
x
,
o
.
to
.
top
=
(
r
.
outerHeight
-
o
.
to
.
outerHeight
)
*
i
.
y
,
o
.
to
.
left
=
(
r
.
outerWidth
-
o
.
to
.
outerWidth
)
*
i
.
x
),
o
.
css
(
o
.
from
);
if
(
v
===
"content"
||
v
===
"both"
)
c
=
c
.
concat
([
"marginTop"
,
"marginBottom"
]).
concat
(
l
),
h
=
h
.
concat
([
"marginLeft"
,
"marginRight"
]),
f
=
u
.
concat
(
c
).
concat
(
h
),
o
.
find
(
"*[width]"
).
each
(
function
(){
var
n
=
e
(
this
),
r
=
{
height
:
n
.
height
(),
width
:
n
.
width
()};
d
&&
e
.
effects
.
save
(
n
,
f
),
n
.
from
=
{
height
:
r
.
height
*
s
.
from
.
y
,
width
:
r
.
width
*
s
.
from
.
x
},
n
.
to
=
{
height
:
r
.
height
*
s
.
to
.
y
,
width
:
r
.
width
*
s
.
to
.
x
},
s
.
from
.
y
!==
s
.
to
.
y
&&
(
n
.
from
=
e
.
effects
.
setTransition
(
n
,
c
,
s
.
from
.
y
,
n
.
from
),
n
.
to
=
e
.
effects
.
setTransition
(
n
,
c
,
s
.
to
.
y
,
n
.
to
)),
s
.
from
.
x
!==
s
.
to
.
x
&&
(
n
.
from
=
e
.
effects
.
setTransition
(
n
,
h
,
s
.
from
.
x
,
n
.
from
),
n
.
to
=
e
.
effects
.
setTransition
(
n
,
h
,
s
.
to
.
x
,
n
.
to
)),
n
.
css
(
n
.
from
),
n
.
animate
(
n
.
to
,
t
.
duration
,
t
.
easing
,
function
(){
d
&&
e
.
effects
.
restore
(
n
,
f
)})});
o
.
animate
(
o
.
to
,{
queue
:!
1
,
duration
:
t
.
duration
,
easing
:
t
.
easing
,
complete
:
function
(){
o
.
to
.
opacity
===
0
&&
o
.
css
(
"opacity"
,
o
.
from
.
opacity
),
p
===
"hide"
&&
o
.
hide
(),
e
.
effects
.
restore
(
o
,
y
),
d
||
(
g
===
"static"
?
o
.
css
({
position
:
"relative"
,
top
:
o
.
to
.
top
,
left
:
o
.
to
.
left
})
:
e
.
each
([
"top"
,
"left"
],
function
(
e
,
t
){
o
.
css
(
t
,
function
(
t
,
n
){
var
r
=
parseInt
(
n
,
10
),
i
=
e
?
o
.
to
.
left
:
o
.
to
.
top
;
return
n
===
"auto"
?
i
+
"px"
:
r
+
i
+
"px"
})})),
e
.
effects
.
removeWrapper
(
o
),
n
()}})}})(
jQuery
);(
function
(
e
,
t
){
e
.
effects
.
effect
.
shake
=
function
(
t
,
n
){
var
r
=
e
(
this
),
i
=
[
"position"
,
"top"
,
"bottom"
,
"left"
,
"right"
,
"height"
,
"width"
],
s
=
e
.
effects
.
setMode
(
r
,
t
.
mode
||
"effect"
),
o
=
t
.
direction
||
"left"
,
u
=
t
.
distance
||
20
,
a
=
t
.
times
||
3
,
f
=
a
*
2
+
1
,
l
=
Math
.
round
(
t
.
duration
/
f
),
c
=
o
===
"up"
||
o
===
"down"
?
"top"
:
"left"
,
h
=
o
===
"up"
||
o
===
"left"
,
p
=
{},
d
=
{},
v
=
{},
m
,
g
=
r
.
queue
(),
y
=
g
.
length
;
e
.
effects
.
save
(
r
,
i
),
r
.
show
(),
e
.
effects
.
createWrapper
(
r
),
p
[
c
]
=
(
h
?
"-="
:
"+="
)
+
u
,
d
[
c
]
=
(
h
?
"+="
:
"-="
)
+
u
*
2
,
v
[
c
]
=
(
h
?
"-="
:
"+="
)
+
u
*
2
,
r
.
animate
(
p
,
l
,
t
.
easing
);
for
(
m
=
1
;
m
<
a
;
m
++
)
r
.
animate
(
d
,
l
,
t
.
easing
).
animate
(
v
,
l
,
t
.
easing
);
r
.
animate
(
d
,
l
,
t
.
easing
).
animate
(
p
,
l
/
2
,
t
.
easing
).
queue
(
function
(){
s
===
"hide"
&&
r
.
hide
(),
e
.
effects
.
restore
(
r
,
i
),
e
.
effects
.
removeWrapper
(
r
),
n
()}),
y
>
1
&&
g
.
splice
.
apply
(
g
,[
1
,
0
].
concat
(
g
.
splice
(
y
,
f
+
1
))),
r
.
dequeue
()}})(
jQuery
);(
function
(
e
,
t
){
e
.
effects
.
effect
.
slide
=
function
(
t
,
n
){
var
r
=
e
(
this
),
i
=
[
"position"
,
"top"
,
"bottom"
,
"left"
,
"right"
,
"width"
,
"height"
],
s
=
e
.
effects
.
setMode
(
r
,
t
.
mode
||
"show"
),
o
=
s
===
"show"
,
u
=
t
.
direction
||
"left"
,
a
=
u
===
"up"
||
u
===
"down"
?
"top"
:
"left"
,
f
=
u
===
"up"
||
u
===
"left"
,
l
,
c
=
{};
e
.
effects
.
save
(
r
,
i
),
r
.
show
(),
l
=
t
.
distance
||
r
[
a
===
"top"
?
"outerHeight"
:
"outerWidth"
](
!
0
),
e
.
effects
.
createWrapper
(
r
).
css
({
overflow
:
"hidden"
}),
o
&&
r
.
css
(
a
,
f
?
isNaN
(
l
)
?
"-"
+
l
:-
l
:
l
),
c
[
a
]
=
(
o
?
f
?
"+="
:
"-="
:
f
?
"-="
:
"+="
)
+
l
,
r
.
animate
(
c
,{
queue
:!
1
,
duration
:
t
.
duration
,
easing
:
t
.
easing
,
complete
:
function
(){
s
===
"hide"
&&
r
.
hide
(),
e
.
effects
.
restore
(
r
,
i
),
e
.
effects
.
removeWrapper
(
r
),
n
()}})}})(
jQuery
);(
function
(
e
,
t
){
e
.
effects
.
effect
.
transfer
=
function
(
t
,
n
){
var
r
=
e
(
this
),
i
=
e
(
t
.
to
),
s
=
i
.
css
(
"position"
)
===
"fixed"
,
o
=
e
(
"body"
),
u
=
s
?
o
.
scrollTop
()
:
0
,
a
=
s
?
o
.
scrollLeft
()
:
0
,
f
=
i
.
offset
(),
l
=
{
top
:
f
.
top
-
u
,
left
:
f
.
left
-
a
,
height
:
i
.
innerHeight
(),
width
:
i
.
innerWidth
()},
c
=
r
.
offset
(),
h
=
e
(
'<div class="ui-effects-transfer"></div>'
).
appendTo
(
document
.
body
).
addClass
(
t
.
className
).
css
({
top
:
c
.
top
-
u
,
left
:
c
.
left
-
a
,
height
:
r
.
innerHeight
(),
width
:
r
.
innerWidth
(),
position
:
s
?
"fixed"
:
"absolute"
}).
animate
(
l
,
t
.
duration
,
t
.
easing
,
function
(){
h
.
remove
(),
n
()})}})(
jQuery
);(
function
(
e
,
t
){
var
n
=!
1
;
e
.
widget
(
"ui.menu"
,{
version
:
"1.9.1"
,
defaultElement
:
"<ul>"
,
delay
:
300
,
options
:
{
icons
:
{
submenu
:
"ui-icon-carat-1-e"
},
menus
:
"ul"
,
position
:
{
my
:
"left top"
,
at
:
"right top"
},
role
:
"menu"
,
blur
:
null
,
focus
:
null
,
select
:
null
},
_create
:
function
(){
this
.
activeMenu
=
this
.
element
,
this
.
element
.
uniqueId
().
addClass
(
"ui-menu ui-widget ui-widget-content ui-corner-all"
).
toggleClass
(
"ui-menu-icons"
,
!!
this
.
element
.
find
(
".ui-icon"
).
length
).
attr
({
role
:
this
.
options
.
role
,
tabIndex
:
0
}).
bind
(
"click"
+
this
.
eventNamespace
,
e
.
proxy
(
function
(
e
){
this
.
options
.
disabled
&&
e
.
preventDefault
()},
this
)),
this
.
options
.
disabled
&&
this
.
element
.
addClass
(
"ui-state-disabled"
).
attr
(
"aria-disabled"
,
"true"
),
this
.
_on
({
"mousedown .ui-menu-item > a"
:
function
(
e
){
e
.
preventDefault
()},
"click .ui-state-disabled > a"
:
function
(
e
){
e
.
preventDefault
()},
"click .ui-menu-item:has(a)"
:
function
(
t
){
var
r
=
e
(
t
.
target
).
closest
(
".ui-menu-item"
);
!
n
&&
r
.
not
(
".ui-state-disabled"
).
length
&&
(
n
=!
0
,
this
.
select
(
t
),
r
.
has
(
".ui-menu"
).
length
?
this
.
expand
(
t
)
:
this
.
element
.
is
(
":focus"
)
||
(
this
.
element
.
trigger
(
"focus"
,[
!
0
]),
this
.
active
&&
this
.
active
.
parents
(
".ui-menu"
).
length
===
1
&&
clearTimeout
(
this
.
timer
)))},
"mouseenter .ui-menu-item"
:
function
(
t
){
var
n
=
e
(
t
.
currentTarget
);
n
.
siblings
().
children
(
".ui-state-active"
).
removeClass
(
"ui-state-active"
),
this
.
focus
(
t
,
n
)},
mouseleave
:
"collapseAll"
,
"mouseleave .ui-menu"
:
"collapseAll"
,
focus
:
function
(
e
,
t
){
var
n
=
this
.
active
||
this
.
element
.
children
(
".ui-menu-item"
).
eq
(
0
);
t
||
this
.
focus
(
e
,
n
)},
blur
:
function
(
t
){
this
.
_delay
(
function
(){
e
.
contains
(
this
.
element
[
0
],
this
.
document
[
0
].
activeElement
)
||
this
.
collapseAll
(
t
)})},
keydown
:
"_keydown"
}),
this
.
refresh
(),
this
.
_on
(
this
.
document
,{
click
:
function
(
t
){
e
(
t
.
target
).
closest
(
".ui-menu"
).
length
||
this
.
collapseAll
(
t
),
n
=!
1
}})},
_destroy
:
function
(){
this
.
element
.
removeAttr
(
"aria-activedescendant"
).
find
(
".ui-menu"
).
andSelf
().
removeClass
(
"ui-menu ui-widget ui-widget-content ui-corner-all ui-menu-icons"
).
removeAttr
(
"role"
).
removeAttr
(
"tabIndex"
).
removeAttr
(
"aria-labelledby"
).
removeAttr
(
"aria-expanded"
).
removeAttr
(
"aria-hidden"
).
removeAttr
(
"aria-disabled"
).
removeUniqueId
().
show
(),
this
.
element
.
find
(
".ui-menu-item"
).
removeClass
(
"ui-menu-item"
).
removeAttr
(
"role"
).
removeAttr
(
"aria-disabled"
).
children
(
"a"
).
removeUniqueId
().
removeClass
(
"ui-corner-all ui-state-hover"
).
removeAttr
(
"tabIndex"
).
removeAttr
(
"role"
).
removeAttr
(
"aria-haspopup"
).
children
().
each
(
function
(){
var
t
=
e
(
this
);
t
.
data
(
"ui-menu-submenu-carat"
)
&&
t
.
remove
()}),
this
.
element
.
find
(
".ui-menu-divider"
).
removeClass
(
"ui-menu-divider ui-widget-content"
)},
_keydown
:
function
(
t
){
function
a
(
e
){
return
e
.
replace
(
/[\-\[\]{}()*+?.,\\\^$|#\s]/g
,
"\\$&"
)}
var
n
,
r
,
i
,
s
,
o
,
u
=!
0
;
switch
(
t
.
keyCode
){
case
e
.
ui
.
keyCode
.
PAGE_UP
:
this
.
previousPage
(
t
);
break
;
case
e
.
ui
.
keyCode
.
PAGE_DOWN
:
this
.
nextPage
(
t
);
break
;
case
e
.
ui
.
keyCode
.
HOME
:
this
.
_move
(
"first"
,
"first"
,
t
);
break
;
case
e
.
ui
.
keyCode
.
END
:
this
.
_move
(
"last"
,
"last"
,
t
);
break
;
case
e
.
ui
.
keyCode
.
UP
:
this
.
previous
(
t
);
break
;
case
e
.
ui
.
keyCode
.
DOWN
:
this
.
next
(
t
);
break
;
case
e
.
ui
.
keyCode
.
LEFT
:
this
.
collapse
(
t
);
break
;
case
e
.
ui
.
keyCode
.
RIGHT
:
this
.
active
&&!
this
.
active
.
is
(
".ui-state-disabled"
)
&&
this
.
expand
(
t
);
break
;
case
e
.
ui
.
keyCode
.
ENTER
:
case
e
.
ui
.
keyCode
.
SPACE
:
this
.
_activate
(
t
);
break
;
case
e
.
ui
.
keyCode
.
ESCAPE
:
this
.
collapse
(
t
);
break
;
default
:
u
=!
1
,
r
=
this
.
previousFilter
||
""
,
i
=
String
.
fromCharCode
(
t
.
keyCode
),
s
=!
1
,
clearTimeout
(
this
.
filterTimer
),
i
===
r
?
s
=!
0
:
i
=
r
+
i
,
o
=
new
RegExp
(
"^"
+
a
(
i
),
"i"
),
n
=
this
.
activeMenu
.
children
(
".ui-menu-item"
).
filter
(
function
(){
return
o
.
test
(
e
(
this
).
children
(
"a"
).
text
())}),
n
=
s
&&
n
.
index
(
this
.
active
.
next
())
!==-
1
?
this
.
active
.
nextAll
(
".ui-menu-item"
)
:
n
,
n
.
length
||
(
i
=
String
.
fromCharCode
(
t
.
keyCode
),
o
=
new
RegExp
(
"^"
+
a
(
i
),
"i"
),
n
=
this
.
activeMenu
.
children
(
".ui-menu-item"
).
filter
(
function
(){
return
o
.
test
(
e
(
this
).
children
(
"a"
).
text
())})),
n
.
length
?
(
this
.
focus
(
t
,
n
),
n
.
length
>
1
?
(
this
.
previousFilter
=
i
,
this
.
filterTimer
=
this
.
_delay
(
function
(){
delete
this
.
previousFilter
},
1e3
))
:
delete
this
.
previousFilter
)
:
delete
this
.
previousFilter
}
u
&&
t
.
preventDefault
()},
_activate
:
function
(
e
){
this
.
active
.
is
(
".ui-state-disabled"
)
||
(
this
.
active
.
children
(
"a[aria-haspopup='true']"
).
length
?
this
.
expand
(
e
)
:
this
.
select
(
e
))},
refresh
:
function
(){
var
t
,
n
=
this
.
options
.
icons
.
submenu
,
r
=
this
.
element
.
find
(
this
.
options
.
menus
+
":not(.ui-menu)"
).
addClass
(
"ui-menu ui-widget ui-widget-content ui-corner-all"
).
hide
().
attr
({
role
:
this
.
options
.
role
,
"aria-hidden"
:
"true"
,
"aria-expanded"
:
"false"
});
t
=
r
.
add
(
this
.
element
),
t
.
children
(
":not(.ui-menu-item):has(a)"
).
addClass
(
"ui-menu-item"
).
attr
(
"role"
,
"presentation"
).
children
(
"a"
).
uniqueId
().
addClass
(
"ui-corner-all"
).
attr
({
tabIndex
:-
1
,
role
:
this
.
_itemRole
()}),
t
.
children
(
":not(.ui-menu-item)"
).
each
(
function
(){
var
t
=
e
(
this
);
/[^\-—–\s]/
.
test
(
t
.
text
())
||
t
.
addClass
(
"ui-widget-content ui-menu-divider"
)}),
t
.
children
(
".ui-state-disabled"
).
attr
(
"aria-disabled"
,
"true"
),
r
.
each
(
function
(){
var
t
=
e
(
this
),
r
=
t
.
prev
(
"a"
),
i
=
e
(
"<span>"
).
addClass
(
"ui-menu-icon ui-icon "
+
n
).
data
(
"ui-menu-submenu-carat"
,
!
0
);
r
.
attr
(
"aria-haspopup"
,
"true"
).
prepend
(
i
),
t
.
attr
(
"aria-labelledby"
,
r
.
attr
(
"id"
))}),
this
.
active
&&!
e
.
contains
(
this
.
element
[
0
],
this
.
active
[
0
])
&&
this
.
blur
()},
_itemRole
:
function
(){
return
{
menu
:
"menuitem"
,
listbox
:
"option"
}[
this
.
options
.
role
]},
focus
:
function
(
e
,
t
){
var
n
,
r
;
this
.
blur
(
e
,
e
&&
e
.
type
===
"focus"
),
this
.
_scrollIntoView
(
t
),
this
.
active
=
t
.
first
(),
r
=
this
.
active
.
children
(
"a"
).
addClass
(
"ui-state-focus"
),
this
.
options
.
role
&&
this
.
element
.
attr
(
"aria-activedescendant"
,
r
.
attr
(
"id"
)),
this
.
active
.
parent
().
closest
(
".ui-menu-item"
).
children
(
"a:first"
).
addClass
(
"ui-state-active"
),
e
&&
e
.
type
===
"keydown"
?
this
.
_close
()
:
this
.
timer
=
this
.
_delay
(
function
(){
this
.
_close
()},
this
.
delay
),
n
=
t
.
children
(
".ui-menu"
),
n
.
length
&&
/^mouse/
.
test
(
e
.
type
)
&&
this
.
_startOpening
(
n
),
this
.
activeMenu
=
t
.
parent
(),
this
.
_trigger
(
"focus"
,
e
,{
item
:
t
})},
_scrollIntoView
:
function
(
t
){
var
n
,
r
,
i
,
s
,
o
,
u
;
this
.
_hasScroll
()
&&
(
n
=
parseFloat
(
e
.
css
(
this
.
activeMenu
[
0
],
"borderTopWidth"
))
||
0
,
r
=
parseFloat
(
e
.
css
(
this
.
activeMenu
[
0
],
"paddingTop"
))
||
0
,
i
=
t
.
offset
().
top
-
this
.
activeMenu
.
offset
().
top
-
n
-
r
,
s
=
this
.
activeMenu
.
scrollTop
(),
o
=
this
.
activeMenu
.
height
(),
u
=
t
.
height
(),
i
<
0
?
this
.
activeMenu
.
scrollTop
(
s
+
i
)
:
i
+
u
>
o
&&
this
.
activeMenu
.
scrollTop
(
s
+
i
-
o
+
u
))},
blur
:
function
(
e
,
t
){
t
||
clearTimeout
(
this
.
timer
);
if
(
!
this
.
active
)
return
;
this
.
active
.
children
(
"a"
).
removeClass
(
"ui-state-focus"
),
this
.
active
=
null
,
this
.
_trigger
(
"blur"
,
e
,{
item
:
this
.
active
})},
_startOpening
:
function
(
e
){
clearTimeout
(
this
.
timer
);
if
(
e
.
attr
(
"aria-hidden"
)
!==
"true"
)
return
;
this
.
timer
=
this
.
_delay
(
function
(){
this
.
_close
(),
this
.
_open
(
e
)},
this
.
delay
)},
_open
:
function
(
t
){
var
n
=
e
.
extend
({
of
:
this
.
active
},
this
.
options
.
position
);
clearTimeout
(
this
.
timer
),
this
.
element
.
find
(
".ui-menu"
).
not
(
t
.
parents
(
".ui-menu"
)).
hide
().
attr
(
"aria-hidden"
,
"true"
),
t
.
show
().
removeAttr
(
"aria-hidden"
).
attr
(
"aria-expanded"
,
"true"
).
position
(
n
)},
collapseAll
:
function
(
t
,
n
){
clearTimeout
(
this
.
timer
),
this
.
timer
=
this
.
_delay
(
function
(){
var
r
=
n
?
this
.
element
:
e
(
t
&&
t
.
target
).
closest
(
this
.
element
.
find
(
".ui-menu"
));
r
.
length
||
(
r
=
this
.
element
),
this
.
_close
(
r
),
this
.
blur
(
t
),
this
.
activeMenu
=
r
},
this
.
delay
)},
_close
:
function
(
e
){
e
||
(
e
=
this
.
active
?
this
.
active
.
parent
()
:
this
.
element
),
e
.
find
(
".ui-menu"
).
hide
().
attr
(
"aria-hidden"
,
"true"
).
attr
(
"aria-expanded"
,
"false"
).
end
().
find
(
"a.ui-state-active"
).
removeClass
(
"ui-state-active"
)},
collapse
:
function
(
e
){
var
t
=
this
.
active
&&
this
.
active
.
parent
().
closest
(
".ui-menu-item"
,
this
.
element
);
t
&&
t
.
length
&&
(
this
.
_close
(),
this
.
focus
(
e
,
t
))},
expand
:
function
(
e
){
var
t
=
this
.
active
&&
this
.
active
.
children
(
".ui-menu "
).
children
(
".ui-menu-item"
).
first
();
t
&&
t
.
length
&&
(
this
.
_open
(
t
.
parent
()),
this
.
_delay
(
function
(){
this
.
focus
(
e
,
t
)}))},
next
:
function
(
e
){
this
.
_move
(
"next"
,
"first"
,
e
)},
previous
:
function
(
e
){
this
.
_move
(
"prev"
,
"last"
,
e
)},
isFirstItem
:
function
(){
return
this
.
active
&&!
this
.
active
.
prevAll
(
".ui-menu-item"
).
length
},
isLastItem
:
function
(){
return
this
.
active
&&!
this
.
active
.
nextAll
(
".ui-menu-item"
).
length
},
_move
:
function
(
e
,
t
,
n
){
var
r
;
this
.
active
&&
(
e
===
"first"
||
e
===
"last"
?
r
=
this
.
active
[
e
===
"first"
?
"prevAll"
:
"nextAll"
](
".ui-menu-item"
).
eq
(
-
1
)
:
r
=
this
.
active
[
e
+
"All"
](
".ui-menu-item"
).
eq
(
0
));
if
(
!
r
||!
r
.
length
||!
this
.
active
)
r
=
this
.
activeMenu
.
children
(
".ui-menu-item"
)[
t
]();
this
.
focus
(
n
,
r
)},
nextPage
:
function
(
t
){
var
n
,
r
,
i
;
if
(
!
this
.
active
){
this
.
next
(
t
);
return
}
if
(
this
.
isLastItem
())
return
;
this
.
_hasScroll
()
?
(
r
=
this
.
active
.
offset
().
top
,
i
=
this
.
element
.
height
(),
this
.
active
.
nextAll
(
".ui-menu-item"
).
each
(
function
(){
return
n
=
e
(
this
),
n
.
offset
().
top
-
r
-
i
<
0
}),
this
.
focus
(
t
,
n
))
:
this
.
focus
(
t
,
this
.
activeMenu
.
children
(
".ui-menu-item"
)[
this
.
active
?
"last"
:
"first"
]())},
previousPage
:
function
(
t
){
var
n
,
r
,
i
;
if
(
!
this
.
active
){
this
.
next
(
t
);
return
}
if
(
this
.
isFirstItem
())
return
;
this
.
_hasScroll
()
?
(
r
=
this
.
active
.
offset
().
top
,
i
=
this
.
element
.
height
(),
this
.
active
.
prevAll
(
".ui-menu-item"
).
each
(
function
(){
return
n
=
e
(
this
),
n
.
offset
().
top
-
r
+
i
>
0
}),
this
.
focus
(
t
,
n
))
:
this
.
focus
(
t
,
this
.
activeMenu
.
children
(
".ui-menu-item"
).
first
())},
_hasScroll
:
function
(){
return
this
.
element
.
outerHeight
()
<
this
.
element
.
prop
(
"scrollHeight"
)},
select
:
function
(
t
){
this
.
active
=
this
.
active
||
e
(
t
.
target
).
closest
(
".ui-menu-item"
);
var
n
=
{
item
:
this
.
active
};
this
.
active
.
has
(
".ui-menu"
).
length
||
this
.
collapseAll
(
t
,
!
0
),
this
.
_trigger
(
"select"
,
t
,
n
)}})})(
jQuery
);(
function
(
e
,
t
){
e
.
widget
(
"ui.progressbar"
,{
version
:
"1.9.1"
,
options
:
{
value
:
0
,
max
:
100
},
min
:
0
,
_create
:
function
(){
this
.
element
.
addClass
(
"ui-progressbar ui-widget ui-widget-content ui-corner-all"
).
attr
({
role
:
"progressbar"
,
"aria-valuemin"
:
this
.
min
,
"aria-valuemax"
:
this
.
options
.
max
,
"aria-valuenow"
:
this
.
_value
()}),
this
.
valueDiv
=
e
(
"<div class='ui-progressbar-value ui-widget-header ui-corner-left'></div>"
).
appendTo
(
this
.
element
),
this
.
oldValue
=
this
.
_value
(),
this
.
_refreshValue
()},
_destroy
:
function
(){
this
.
element
.
removeClass
(
"ui-progressbar ui-widget ui-widget-content ui-corner-all"
).
removeAttr
(
"role"
).
removeAttr
(
"aria-valuemin"
).
removeAttr
(
"aria-valuemax"
).
removeAttr
(
"aria-valuenow"
),
this
.
valueDiv
.
remove
()},
value
:
function
(
e
){
return
e
===
t
?
this
.
_value
()
:
(
this
.
_setOption
(
"value"
,
e
),
this
)},
_setOption
:
function
(
e
,
t
){
e
===
"value"
&&
(
this
.
options
.
value
=
t
,
this
.
_refreshValue
(),
this
.
_value
()
===
this
.
options
.
max
&&
this
.
_trigger
(
"complete"
)),
this
.
_super
(
e
,
t
)},
_value
:
function
(){
var
e
=
this
.
options
.
value
;
return
typeof
e
!=
"number"
&&
(
e
=
0
),
Math
.
min
(
this
.
options
.
max
,
Math
.
max
(
this
.
min
,
e
))},
_percentage
:
function
(){
return
100
*
this
.
_value
()
/
this
.
options
.
max
},
_refreshValue
:
function
(){
var
e
=
this
.
value
(),
t
=
this
.
_percentage
();
this
.
oldValue
!==
e
&&
(
this
.
oldValue
=
e
,
this
.
_trigger
(
"change"
)),
this
.
valueDiv
.
toggle
(
e
>
this
.
min
).
toggleClass
(
"ui-corner-right"
,
e
===
this
.
options
.
max
).
width
(
t
.
toFixed
(
0
)
+
"%"
),
this
.
element
.
attr
(
"aria-valuenow"
,
e
)}})})(
jQuery
);(
function
(
e
,
t
){
e
.
widget
(
"ui.resizable"
,
e
.
ui
.
mouse
,{
version
:
"1.9.1"
,
widgetEventPrefix
:
"resize"
,
options
:
{
alsoResize
:!
1
,
animate
:!
1
,
animateDuration
:
"slow"
,
animateEasing
:
"swing"
,
aspectRatio
:!
1
,
autoHide
:!
1
,
containment
:!
1
,
ghost
:!
1
,
grid
:!
1
,
handles
:
"e,s,se"
,
helper
:!
1
,
maxHeight
:
null
,
maxWidth
:
null
,
minHeight
:
10
,
minWidth
:
10
,
zIndex
:
1e3
},
_create
:
function
(){
var
t
=
this
,
n
=
this
.
options
;
this
.
element
.
addClass
(
"ui-resizable"
),
e
.
extend
(
this
,{
_aspectRatio
:!!
n
.
aspectRatio
,
aspectRatio
:
n
.
aspectRatio
,
originalElement
:
this
.
element
,
_proportionallyResizeElements
:
[],
_helper
:
n
.
helper
||
n
.
ghost
||
n
.
animate
?
n
.
helper
||
"ui-resizable-helper"
:
null
}),
this
.
element
[
0
].
nodeName
.
match
(
/canvas|textarea|input|select|button|img/i
)
&&
(
this
.
element
.
wrap
(
e
(
'<div class="ui-wrapper" style="overflow: hidden;"></div>'
).
css
({
position
:
this
.
element
.
css
(
"position"
),
width
:
this
.
element
.
outerWidth
(),
height
:
this
.
element
.
outerHeight
(),
top
:
this
.
element
.
css
(
"top"
),
left
:
this
.
element
.
css
(
"left"
)})),
this
.
element
=
this
.
element
.
parent
().
data
(
"resizable"
,
this
.
element
.
data
(
"resizable"
)),
this
.
elementIsWrapper
=!
0
,
this
.
element
.
css
({
marginLeft
:
this
.
originalElement
.
css
(
"marginLeft"
),
marginTop
:
this
.
originalElement
.
css
(
"marginTop"
),
marginRight
:
this
.
originalElement
.
css
(
"marginRight"
),
marginBottom
:
this
.
originalElement
.
css
(
"marginBottom"
)}),
this
.
originalElement
.
css
({
marginLeft
:
0
,
marginTop
:
0
,
marginRight
:
0
,
marginBottom
:
0
}),
this
.
originalResizeStyle
=
this
.
originalElement
.
css
(
"resize"
),
this
.
originalElement
.
css
(
"resize"
,
"none"
),
this
.
_proportionallyResizeElements
.
push
(
this
.
originalElement
.
css
({
position
:
"static"
,
zoom
:
1
,
display
:
"block"
})),
this
.
originalElement
.
css
({
margin
:
this
.
originalElement
.
css
(
"margin"
)}),
this
.
_proportionallyResize
()),
this
.
handles
=
n
.
handles
||
(
e
(
".ui-resizable-handle"
,
this
.
element
).
length
?
{
n
:
".ui-resizable-n"
,
e
:
".ui-resizable-e"
,
s
:
".ui-resizable-s"
,
w
:
".ui-resizable-w"
,
se
:
".ui-resizable-se"
,
sw
:
".ui-resizable-sw"
,
ne
:
".ui-resizable-ne"
,
nw
:
".ui-resizable-nw"
}
:
"e,s,se"
);
if
(
this
.
handles
.
constructor
==
String
){
this
.
handles
==
"all"
&&
(
this
.
handles
=
"n,e,s,w,se,sw,ne,nw"
);
var
r
=
this
.
handles
.
split
(
","
);
this
.
handles
=
{};
for
(
var
i
=
0
;
i
<
r
.
length
;
i
++
){
var
s
=
e
.
trim
(
r
[
i
]),
o
=
"ui-resizable-"
+
s
,
u
=
e
(
'<div class="ui-resizable-handle '
+
o
+
'"></div>'
);
u
.
css
({
zIndex
:
n
.
zIndex
}),
"se"
==
s
&&
u
.
addClass
(
"ui-icon ui-icon-gripsmall-diagonal-se"
),
this
.
handles
[
s
]
=
".ui-resizable-"
+
s
,
this
.
element
.
append
(
u
)}}
this
.
_renderAxis
=
function
(
t
){
t
=
t
||
this
.
element
;
for
(
var
n
in
this
.
handles
){
this
.
handles
[
n
].
constructor
==
String
&&
(
this
.
handles
[
n
]
=
e
(
this
.
handles
[
n
],
this
.
element
).
show
());
if
(
this
.
elementIsWrapper
&&
this
.
originalElement
[
0
].
nodeName
.
match
(
/textarea|input|select|button/i
)){
var
r
=
e
(
this
.
handles
[
n
],
this
.
element
),
i
=
0
;
i
=
/sw|ne|nw|se|n|s/
.
test
(
n
)
?
r
.
outerHeight
()
:
r
.
outerWidth
();
var
s
=
[
"padding"
,
/ne|nw|n/
.
test
(
n
)
?
"Top"
:
/se|sw|s/
.
test
(
n
)
?
"Bottom"
:
/^e$/
.
test
(
n
)
?
"Right"
:
"Left"
].
join
(
""
);
t
.
css
(
s
,
i
),
this
.
_proportionallyResize
()}
if
(
!
e
(
this
.
handles
[
n
]).
length
)
continue
}},
this
.
_renderAxis
(
this
.
element
),
this
.
_handles
=
e
(
".ui-resizable-handle"
,
this
.
element
).
disableSelection
(),
this
.
_handles
.
mouseover
(
function
(){
if
(
!
t
.
resizing
){
if
(
this
.
className
)
var
e
=
this
.
className
.
match
(
/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i
);
t
.
axis
=
e
&&
e
[
1
]
?
e
[
1
]
:
"se"
}}),
n
.
autoHide
&&
(
this
.
_handles
.
hide
(),
e
(
this
.
element
).
addClass
(
"ui-resizable-autohide"
).
mouseenter
(
function
(){
if
(
n
.
disabled
)
return
;
e
(
this
).
removeClass
(
"ui-resizable-autohide"
),
t
.
_handles
.
show
()}).
mouseleave
(
function
(){
if
(
n
.
disabled
)
return
;
t
.
resizing
||
(
e
(
this
).
addClass
(
"ui-resizable-autohide"
),
t
.
_handles
.
hide
())})),
this
.
_mouseInit
()},
_destroy
:
function
(){
this
.
_mouseDestroy
();
var
t
=
function
(
t
){
e
(
t
).
removeClass
(
"ui-resizable ui-resizable-disabled ui-resizable-resizing"
).
removeData
(
"resizable"
).
removeData
(
"ui-resizable"
).
unbind
(
".resizable"
).
find
(
".ui-resizable-handle"
).
remove
()};
if
(
this
.
elementIsWrapper
){
t
(
this
.
element
);
var
n
=
this
.
element
;
this
.
originalElement
.
css
({
position
:
n
.
css
(
"position"
),
width
:
n
.
outerWidth
(),
height
:
n
.
outerHeight
(),
top
:
n
.
css
(
"top"
),
left
:
n
.
css
(
"left"
)}).
insertAfter
(
n
),
n
.
remove
()}
return
this
.
originalElement
.
css
(
"resize"
,
this
.
originalResizeStyle
),
t
(
this
.
originalElement
),
this
},
_mouseCapture
:
function
(
t
){
var
n
=!
1
;
for
(
var
r
in
this
.
handles
)
e
(
this
.
handles
[
r
])[
0
]
==
t
.
target
&&
(
n
=!
0
);
return
!
this
.
options
.
disabled
&&
n
},
_mouseStart
:
function
(
t
){
var
r
=
this
.
options
,
i
=
this
.
element
.
position
(),
s
=
this
.
element
;
this
.
resizing
=!
0
,
this
.
documentScroll
=
{
top
:
e
(
document
).
scrollTop
(),
left
:
e
(
document
).
scrollLeft
()},(
s
.
is
(
".ui-draggable"
)
||
/absolute/
.
test
(
s
.
css
(
"position"
)))
&&
s
.
css
({
position
:
"absolute"
,
top
:
i
.
top
,
left
:
i
.
left
}),
this
.
_renderProxy
();
var
o
=
n
(
this
.
helper
.
css
(
"left"
)),
u
=
n
(
this
.
helper
.
css
(
"top"
));
r
.
containment
&&
(
o
+=
e
(
r
.
containment
).
scrollLeft
()
||
0
,
u
+=
e
(
r
.
containment
).
scrollTop
()
||
0
),
this
.
offset
=
this
.
helper
.
offset
(),
this
.
position
=
{
left
:
o
,
top
:
u
},
this
.
size
=
this
.
_helper
?
{
width
:
s
.
outerWidth
(),
height
:
s
.
outerHeight
()}
:
{
width
:
s
.
width
(),
height
:
s
.
height
()},
this
.
originalSize
=
this
.
_helper
?
{
width
:
s
.
outerWidth
(),
height
:
s
.
outerHeight
()}
:
{
width
:
s
.
width
(),
height
:
s
.
height
()},
this
.
originalPosition
=
{
left
:
o
,
top
:
u
},
this
.
sizeDiff
=
{
width
:
s
.
outerWidth
()
-
s
.
width
(),
height
:
s
.
outerHeight
()
-
s
.
height
()},
this
.
originalMousePosition
=
{
left
:
t
.
pageX
,
top
:
t
.
pageY
},
this
.
aspectRatio
=
typeof
r
.
aspectRatio
==
"number"
?
r
.
aspectRatio
:
this
.
originalSize
.
width
/
this
.
originalSize
.
height
||
1
;
var
a
=
e
(
".ui-resizable-"
+
this
.
axis
).
css
(
"cursor"
);
return
e
(
"body"
).
css
(
"cursor"
,
a
==
"auto"
?
this
.
axis
+
"-resize"
:
a
),
s
.
addClass
(
"ui-resizable-resizing"
),
this
.
_propagate
(
"start"
,
t
),
!
0
},
_mouseDrag
:
function
(
e
){
var
t
=
this
.
helper
,
n
=
this
.
options
,
r
=
{},
i
=
this
,
s
=
this
.
originalMousePosition
,
o
=
this
.
axis
,
u
=
e
.
pageX
-
s
.
left
||
0
,
a
=
e
.
pageY
-
s
.
top
||
0
,
f
=
this
.
_change
[
o
];
if
(
!
f
)
return
!
1
;
var
l
=
f
.
apply
(
this
,[
e
,
u
,
a
]);
this
.
_updateVirtualBoundaries
(
e
.
shiftKey
);
if
(
this
.
_aspectRatio
||
e
.
shiftKey
)
l
=
this
.
_updateRatio
(
l
,
e
);
return
l
=
this
.
_respectSize
(
l
,
e
),
this
.
_propagate
(
"resize"
,
e
),
t
.
css
({
top
:
this
.
position
.
top
+
"px"
,
left
:
this
.
position
.
left
+
"px"
,
width
:
this
.
size
.
width
+
"px"
,
height
:
this
.
size
.
height
+
"px"
}),
!
this
.
_helper
&&
this
.
_proportionallyResizeElements
.
length
&&
this
.
_proportionallyResize
(),
this
.
_updateCache
(
l
),
this
.
_trigger
(
"resize"
,
e
,
this
.
ui
()),
!
1
},
_mouseStop
:
function
(
t
){
this
.
resizing
=!
1
;
var
n
=
this
.
options
,
r
=
this
;
if
(
this
.
_helper
){
var
i
=
this
.
_proportionallyResizeElements
,
s
=
i
.
length
&&
/textarea/i
.
test
(
i
[
0
].
nodeName
),
o
=
s
&&
e
.
ui
.
hasScroll
(
i
[
0
],
"left"
)
?
0
:
r
.
sizeDiff
.
height
,
u
=
s
?
0
:
r
.
sizeDiff
.
width
,
a
=
{
width
:
r
.
helper
.
width
()
-
u
,
height
:
r
.
helper
.
height
()
-
o
},
f
=
parseInt
(
r
.
element
.
css
(
"left"
),
10
)
+
(
r
.
position
.
left
-
r
.
originalPosition
.
left
)
||
null
,
l
=
parseInt
(
r
.
element
.
css
(
"top"
),
10
)
+
(
r
.
position
.
top
-
r
.
originalPosition
.
top
)
||
null
;
n
.
animate
||
this
.
element
.
css
(
e
.
extend
(
a
,{
top
:
l
,
left
:
f
})),
r
.
helper
.
height
(
r
.
size
.
height
),
r
.
helper
.
width
(
r
.
size
.
width
),
this
.
_helper
&&!
n
.
animate
&&
this
.
_proportionallyResize
()}
return
e
(
"body"
).
css
(
"cursor"
,
"auto"
),
this
.
element
.
removeClass
(
"ui-resizable-resizing"
),
this
.
_propagate
(
"stop"
,
t
),
this
.
_helper
&&
this
.
helper
.
remove
(),
!
1
},
_updateVirtualBoundaries
:
function
(
e
){
var
t
=
this
.
options
,
n
,
i
,
s
,
o
,
u
;
u
=
{
minWidth
:
r
(
t
.
minWidth
)
?
t
.
minWidth
:
0
,
maxWidth
:
r
(
t
.
maxWidth
)
?
t
.
maxWidth
:
Infinity
,
minHeight
:
r
(
t
.
minHeight
)
?
t
.
minHeight
:
0
,
maxHeight
:
r
(
t
.
maxHeight
)
?
t
.
maxHeight
:
Infinity
};
if
(
this
.
_aspectRatio
||
e
)
n
=
u
.
minHeight
*
this
.
aspectRatio
,
s
=
u
.
minWidth
/
this
.
aspectRatio
,
i
=
u
.
maxHeight
*
this
.
aspectRatio
,
o
=
u
.
maxWidth
/
this
.
aspectRatio
,
n
>
u
.
minWidth
&&
(
u
.
minWidth
=
n
),
s
>
u
.
minHeight
&&
(
u
.
minHeight
=
s
),
i
<
u
.
maxWidth
&&
(
u
.
maxWidth
=
i
),
o
<
u
.
maxHeight
&&
(
u
.
maxHeight
=
o
);
this
.
_vBoundaries
=
u
},
_updateCache
:
function
(
e
){
var
t
=
this
.
options
;
this
.
offset
=
this
.
helper
.
offset
(),
r
(
e
.
left
)
&&
(
this
.
position
.
left
=
e
.
left
),
r
(
e
.
top
)
&&
(
this
.
position
.
top
=
e
.
top
),
r
(
e
.
height
)
&&
(
this
.
size
.
height
=
e
.
height
),
r
(
e
.
width
)
&&
(
this
.
size
.
width
=
e
.
width
)},
_updateRatio
:
function
(
e
,
t
){
var
n
=
this
.
options
,
i
=
this
.
position
,
s
=
this
.
size
,
o
=
this
.
axis
;
return
r
(
e
.
height
)
?
e
.
width
=
e
.
height
*
this
.
aspectRatio
:
r
(
e
.
width
)
&&
(
e
.
height
=
e
.
width
/
this
.
aspectRatio
),
o
==
"sw"
&&
(
e
.
left
=
i
.
left
+
(
s
.
width
-
e
.
width
),
e
.
top
=
null
),
o
==
"nw"
&&
(
e
.
top
=
i
.
top
+
(
s
.
height
-
e
.
height
),
e
.
left
=
i
.
left
+
(
s
.
width
-
e
.
width
)),
e
},
_respectSize
:
function
(
e
,
t
){
var
n
=
this
.
helper
,
i
=
this
.
_vBoundaries
,
s
=
this
.
_aspectRatio
||
t
.
shiftKey
,
o
=
this
.
axis
,
u
=
r
(
e
.
width
)
&&
i
.
maxWidth
&&
i
.
maxWidth
<
e
.
width
,
a
=
r
(
e
.
height
)
&&
i
.
maxHeight
&&
i
.
maxHeight
<
e
.
height
,
f
=
r
(
e
.
width
)
&&
i
.
minWidth
&&
i
.
minWidth
>
e
.
width
,
l
=
r
(
e
.
height
)
&&
i
.
minHeight
&&
i
.
minHeight
>
e
.
height
;
f
&&
(
e
.
width
=
i
.
minWidth
),
l
&&
(
e
.
height
=
i
.
minHeight
),
u
&&
(
e
.
width
=
i
.
maxWidth
),
a
&&
(
e
.
height
=
i
.
maxHeight
);
var
c
=
this
.
originalPosition
.
left
+
this
.
originalSize
.
width
,
h
=
this
.
position
.
top
+
this
.
size
.
height
,
p
=
/sw|nw|w/
.
test
(
o
),
d
=
/nw|ne|n/
.
test
(
o
);
f
&&
p
&&
(
e
.
left
=
c
-
i
.
minWidth
),
u
&&
p
&&
(
e
.
left
=
c
-
i
.
maxWidth
),
l
&&
d
&&
(
e
.
top
=
h
-
i
.
minHeight
),
a
&&
d
&&
(
e
.
top
=
h
-
i
.
maxHeight
);
var
v
=!
e
.
width
&&!
e
.
height
;
return
v
&&!
e
.
left
&&
e
.
top
?
e
.
top
=
null
:
v
&&!
e
.
top
&&
e
.
left
&&
(
e
.
left
=
null
),
e
},
_proportionallyResize
:
function
(){
var
t
=
this
.
options
;
if
(
!
this
.
_proportionallyResizeElements
.
length
)
return
;
var
n
=
this
.
helper
||
this
.
element
;
for
(
var
r
=
0
;
r
<
this
.
_proportionallyResizeElements
.
length
;
r
++
){
var
i
=
this
.
_proportionallyResizeElements
[
r
];
if
(
!
this
.
borderDif
){
var
s
=
[
i
.
css
(
"borderTopWidth"
),
i
.
css
(
"borderRightWidth"
),
i
.
css
(
"borderBottomWidth"
),
i
.
css
(
"borderLeftWidth"
)],
o
=
[
i
.
css
(
"paddingTop"
),
i
.
css
(
"paddingRight"
),
i
.
css
(
"paddingBottom"
),
i
.
css
(
"paddingLeft"
)];
this
.
borderDif
=
e
.
map
(
s
,
function
(
e
,
t
){
var
n
=
parseInt
(
e
,
10
)
||
0
,
r
=
parseInt
(
o
[
t
],
10
)
||
0
;
return
n
+
r
})}
i
.
css
({
height
:
n
.
height
()
-
this
.
borderDif
[
0
]
-
this
.
borderDif
[
2
]
||
0
,
width
:
n
.
width
()
-
this
.
borderDif
[
1
]
-
this
.
borderDif
[
3
]
||
0
})}},
_renderProxy
:
function
(){
var
t
=
this
.
element
,
n
=
this
.
options
;
this
.
elementOffset
=
t
.
offset
();
if
(
this
.
_helper
){
this
.
helper
=
this
.
helper
||
e
(
'<div style="overflow:hidden;"></div>'
);
var
r
=
e
.
ui
.
ie6
?
1
:
0
,
i
=
e
.
ui
.
ie6
?
2
:-
1
;
this
.
helper
.
addClass
(
this
.
_helper
).
css
({
width
:
this
.
element
.
outerWidth
()
+
i
,
height
:
this
.
element
.
outerHeight
()
+
i
,
position
:
"absolute"
,
left
:
this
.
elementOffset
.
left
-
r
+
"px"
,
top
:
this
.
elementOffset
.
top
-
r
+
"px"
,
zIndex
:++
n
.
zIndex
}),
this
.
helper
.
appendTo
(
"body"
).
disableSelection
()}
else
this
.
helper
=
this
.
element
},
_change
:
{
e
:
function
(
e
,
t
,
n
){
return
{
width
:
this
.
originalSize
.
width
+
t
}},
w
:
function
(
e
,
t
,
n
){
var
r
=
this
.
options
,
i
=
this
.
originalSize
,
s
=
this
.
originalPosition
;
return
{
left
:
s
.
left
+
t
,
width
:
i
.
width
-
t
}},
n
:
function
(
e
,
t
,
n
){
var
r
=
this
.
options
,
i
=
this
.
originalSize
,
s
=
this
.
originalPosition
;
return
{
top
:
s
.
top
+
n
,
height
:
i
.
height
-
n
}},
s
:
function
(
e
,
t
,
n
){
return
{
height
:
this
.
originalSize
.
height
+
n
}},
se
:
function
(
t
,
n
,
r
){
return
e
.
extend
(
this
.
_change
.
s
.
apply
(
this
,
arguments
),
this
.
_change
.
e
.
apply
(
this
,[
t
,
n
,
r
]))},
sw
:
function
(
t
,
n
,
r
){
return
e
.
extend
(
this
.
_change
.
s
.
apply
(
this
,
arguments
),
this
.
_change
.
w
.
apply
(
this
,[
t
,
n
,
r
]))},
ne
:
function
(
t
,
n
,
r
){
return
e
.
extend
(
this
.
_change
.
n
.
apply
(
this
,
arguments
),
this
.
_change
.
e
.
apply
(
this
,[
t
,
n
,
r
]))},
nw
:
function
(
t
,
n
,
r
){
return
e
.
extend
(
this
.
_change
.
n
.
apply
(
this
,
arguments
),
this
.
_change
.
w
.
apply
(
this
,[
t
,
n
,
r
]))}},
_propagate
:
function
(
t
,
n
){
e
.
ui
.
plugin
.
call
(
this
,
t
,[
n
,
this
.
ui
()]),
t
!=
"resize"
&&
this
.
_trigger
(
t
,
n
,
this
.
ui
())},
plugins
:
{},
ui
:
function
(){
return
{
originalElement
:
this
.
originalElement
,
element
:
this
.
element
,
helper
:
this
.
helper
,
position
:
this
.
position
,
size
:
this
.
size
,
originalSize
:
this
.
originalSize
,
originalPosition
:
this
.
originalPosition
}}}),
e
.
ui
.
plugin
.
add
(
"resizable"
,
"alsoResize"
,{
start
:
function
(
t
,
n
){
var
r
=
e
(
this
).
data
(
"resizable"
),
i
=
r
.
options
,
s
=
function
(
t
){
e
(
t
).
each
(
function
(){
var
t
=
e
(
this
);
t
.
data
(
"resizable-alsoresize"
,{
width
:
parseInt
(
t
.
width
(),
10
),
height
:
parseInt
(
t
.
height
(),
10
),
left
:
parseInt
(
t
.
css
(
"left"
),
10
),
top
:
parseInt
(
t
.
css
(
"top"
),
10
)})})};
typeof
i
.
alsoResize
==
"object"
&&!
i
.
alsoResize
.
parentNode
?
i
.
alsoResize
.
length
?
(
i
.
alsoResize
=
i
.
alsoResize
[
0
],
s
(
i
.
alsoResize
))
:
e
.
each
(
i
.
alsoResize
,
function
(
e
){
s
(
e
)})
:
s
(
i
.
alsoResize
)},
resize
:
function
(
t
,
n
){
var
r
=
e
(
this
).
data
(
"resizable"
),
i
=
r
.
options
,
s
=
r
.
originalSize
,
o
=
r
.
originalPosition
,
u
=
{
height
:
r
.
size
.
height
-
s
.
height
||
0
,
width
:
r
.
size
.
width
-
s
.
width
||
0
,
top
:
r
.
position
.
top
-
o
.
top
||
0
,
left
:
r
.
position
.
left
-
o
.
left
||
0
},
a
=
function
(
t
,
r
){
e
(
t
).
each
(
function
(){
var
t
=
e
(
this
),
i
=
e
(
this
).
data
(
"resizable-alsoresize"
),
s
=
{},
o
=
r
&&
r
.
length
?
r
:
t
.
parents
(
n
.
originalElement
[
0
]).
length
?
[
"width"
,
"height"
]
:
[
"width"
,
"height"
,
"top"
,
"left"
];
e
.
each
(
o
,
function
(
e
,
t
){
var
n
=
(
i
[
t
]
||
0
)
+
(
u
[
t
]
||
0
);
n
&&
n
>=
0
&&
(
s
[
t
]
=
n
||
null
)}),
t
.
css
(
s
)})};
typeof
i
.
alsoResize
==
"object"
&&!
i
.
alsoResize
.
nodeType
?
e
.
each
(
i
.
alsoResize
,
function
(
e
,
t
){
a
(
e
,
t
)})
:
a
(
i
.
alsoResize
)},
stop
:
function
(
t
,
n
){
e
(
this
).
removeData
(
"resizable-alsoresize"
)}}),
e
.
ui
.
plugin
.
add
(
"resizable"
,
"animate"
,{
stop
:
function
(
t
,
n
){
var
r
=
e
(
this
).
data
(
"resizable"
),
i
=
r
.
options
,
s
=
r
.
_proportionallyResizeElements
,
o
=
s
.
length
&&
/textarea/i
.
test
(
s
[
0
].
nodeName
),
u
=
o
&&
e
.
ui
.
hasScroll
(
s
[
0
],
"left"
)
?
0
:
r
.
sizeDiff
.
height
,
a
=
o
?
0
:
r
.
sizeDiff
.
width
,
f
=
{
width
:
r
.
size
.
width
-
a
,
height
:
r
.
size
.
height
-
u
},
l
=
parseInt
(
r
.
element
.
css
(
"left"
),
10
)
+
(
r
.
position
.
left
-
r
.
originalPosition
.
left
)
||
null
,
c
=
parseInt
(
r
.
element
.
css
(
"top"
),
10
)
+
(
r
.
position
.
top
-
r
.
originalPosition
.
top
)
||
null
;
r
.
element
.
animate
(
e
.
extend
(
f
,
c
&&
l
?
{
top
:
c
,
left
:
l
}
:
{}),{
duration
:
i
.
animateDuration
,
easing
:
i
.
animateEasing
,
step
:
function
(){
var
n
=
{
width
:
parseInt
(
r
.
element
.
css
(
"width"
),
10
),
height
:
parseInt
(
r
.
element
.
css
(
"height"
),
10
),
top
:
parseInt
(
r
.
element
.
css
(
"top"
),
10
),
left
:
parseInt
(
r
.
element
.
css
(
"left"
),
10
)};
s
&&
s
.
length
&&
e
(
s
[
0
]).
css
({
width
:
n
.
width
,
height
:
n
.
height
}),
r
.
_updateCache
(
n
),
r
.
_propagate
(
"resize"
,
t
)}})}}),
e
.
ui
.
plugin
.
add
(
"resizable"
,
"containment"
,{
start
:
function
(
t
,
r
){
var
i
=
e
(
this
).
data
(
"resizable"
),
s
=
i
.
options
,
o
=
i
.
element
,
u
=
s
.
containment
,
a
=
u
instanceof
e
?
u
.
get
(
0
)
:
/parent/
.
test
(
u
)
?
o
.
parent
().
get
(
0
)
:
u
;
if
(
!
a
)
return
;
i
.
containerElement
=
e
(
a
);
if
(
/document/
.
test
(
u
)
||
u
==
document
)
i
.
containerOffset
=
{
left
:
0
,
top
:
0
},
i
.
containerPosition
=
{
left
:
0
,
top
:
0
},
i
.
parentData
=
{
element
:
e
(
document
),
left
:
0
,
top
:
0
,
width
:
e
(
document
).
width
(),
height
:
e
(
document
).
height
()
||
document
.
body
.
parentNode
.
scrollHeight
};
else
{
var
f
=
e
(
a
),
l
=
[];
e
([
"Top"
,
"Right"
,
"Left"
,
"Bottom"
]).
each
(
function
(
e
,
t
){
l
[
e
]
=
n
(
f
.
css
(
"padding"
+
t
))}),
i
.
containerOffset
=
f
.
offset
(),
i
.
containerPosition
=
f
.
position
(),
i
.
containerSize
=
{
height
:
f
.
innerHeight
()
-
l
[
3
],
width
:
f
.
innerWidth
()
-
l
[
1
]};
var
c
=
i
.
containerOffset
,
h
=
i
.
containerSize
.
height
,
p
=
i
.
containerSize
.
width
,
d
=
e
.
ui
.
hasScroll
(
a
,
"left"
)
?
a
.
scrollWidth
:
p
,
v
=
e
.
ui
.
hasScroll
(
a
)
?
a
.
scrollHeight
:
h
;
i
.
parentData
=
{
element
:
a
,
left
:
c
.
left
,
top
:
c
.
top
,
width
:
d
,
height
:
v
}}},
resize
:
function
(
t
,
n
){
var
r
=
e
(
this
).
data
(
"resizable"
),
i
=
r
.
options
,
s
=
r
.
containerSize
,
o
=
r
.
containerOffset
,
u
=
r
.
size
,
a
=
r
.
position
,
f
=
r
.
_aspectRatio
||
t
.
shiftKey
,
l
=
{
top
:
0
,
left
:
0
},
c
=
r
.
containerElement
;
c
[
0
]
!=
document
&&
/static/
.
test
(
c
.
css
(
"position"
))
&&
(
l
=
o
),
a
.
left
<
(
r
.
_helper
?
o
.
left
:
0
)
&&
(
r
.
size
.
width
=
r
.
size
.
width
+
(
r
.
_helper
?
r
.
position
.
left
-
o
.
left
:
r
.
position
.
left
-
l
.
left
),
f
&&
(
r
.
size
.
height
=
r
.
size
.
width
/
r
.
aspectRatio
),
r
.
position
.
left
=
i
.
helper
?
o
.
left
:
0
),
a
.
top
<
(
r
.
_helper
?
o
.
top
:
0
)
&&
(
r
.
size
.
height
=
r
.
size
.
height
+
(
r
.
_helper
?
r
.
position
.
top
-
o
.
top
:
r
.
position
.
top
),
f
&&
(
r
.
size
.
width
=
r
.
size
.
height
*
r
.
aspectRatio
),
r
.
position
.
top
=
r
.
_helper
?
o
.
top
:
0
),
r
.
offset
.
left
=
r
.
parentData
.
left
+
r
.
position
.
left
,
r
.
offset
.
top
=
r
.
parentData
.
top
+
r
.
position
.
top
;
var
h
=
Math
.
abs
((
r
.
_helper
?
r
.
offset
.
left
-
l
.
left
:
r
.
offset
.
left
-
l
.
left
)
+
r
.
sizeDiff
.
width
),
p
=
Math
.
abs
((
r
.
_helper
?
r
.
offset
.
top
-
l
.
top
:
r
.
offset
.
top
-
o
.
top
)
+
r
.
sizeDiff
.
height
),
d
=
r
.
containerElement
.
get
(
0
)
==
r
.
element
.
parent
().
get
(
0
),
v
=
/relative|absolute/
.
test
(
r
.
containerElement
.
css
(
"position"
));
d
&&
v
&&
(
h
-=
r
.
parentData
.
left
),
h
+
r
.
size
.
width
>=
r
.
parentData
.
width
&&
(
r
.
size
.
width
=
r
.
parentData
.
width
-
h
,
f
&&
(
r
.
size
.
height
=
r
.
size
.
width
/
r
.
aspectRatio
)),
p
+
r
.
size
.
height
>=
r
.
parentData
.
height
&&
(
r
.
size
.
height
=
r
.
parentData
.
height
-
p
,
f
&&
(
r
.
size
.
width
=
r
.
size
.
height
*
r
.
aspectRatio
))},
stop
:
function
(
t
,
n
){
var
r
=
e
(
this
).
data
(
"resizable"
),
i
=
r
.
options
,
s
=
r
.
position
,
o
=
r
.
containerOffset
,
u
=
r
.
containerPosition
,
a
=
r
.
containerElement
,
f
=
e
(
r
.
helper
),
l
=
f
.
offset
(),
c
=
f
.
outerWidth
()
-
r
.
sizeDiff
.
width
,
h
=
f
.
outerHeight
()
-
r
.
sizeDiff
.
height
;
r
.
_helper
&&!
i
.
animate
&&
/relative/
.
test
(
a
.
css
(
"position"
))
&&
e
(
this
).
css
({
left
:
l
.
left
-
u
.
left
-
o
.
left
,
width
:
c
,
height
:
h
}),
r
.
_helper
&&!
i
.
animate
&&
/static/
.
test
(
a
.
css
(
"position"
))
&&
e
(
this
).
css
({
left
:
l
.
left
-
u
.
left
-
o
.
left
,
width
:
c
,
height
:
h
})}}),
e
.
ui
.
plugin
.
add
(
"resizable"
,
"ghost"
,{
start
:
function
(
t
,
n
){
var
r
=
e
(
this
).
data
(
"resizable"
),
i
=
r
.
options
,
s
=
r
.
size
;
r
.
ghost
=
r
.
originalElement
.
clone
(),
r
.
ghost
.
css
({
opacity
:
.25
,
display
:
"block"
,
position
:
"relative"
,
height
:
s
.
height
,
width
:
s
.
width
,
margin
:
0
,
left
:
0
,
top
:
0
}).
addClass
(
"ui-resizable-ghost"
).
addClass
(
typeof
i
.
ghost
==
"string"
?
i
.
ghost
:
""
),
r
.
ghost
.
appendTo
(
r
.
helper
)},
resize
:
function
(
t
,
n
){
var
r
=
e
(
this
).
data
(
"resizable"
),
i
=
r
.
options
;
r
.
ghost
&&
r
.
ghost
.
css
({
position
:
"relative"
,
height
:
r
.
size
.
height
,
width
:
r
.
size
.
width
})},
stop
:
function
(
t
,
n
){
var
r
=
e
(
this
).
data
(
"resizable"
),
i
=
r
.
options
;
r
.
ghost
&&
r
.
helper
&&
r
.
helper
.
get
(
0
).
removeChild
(
r
.
ghost
.
get
(
0
))}}),
e
.
ui
.
plugin
.
add
(
"resizable"
,
"grid"
,{
resize
:
function
(
t
,
n
){
var
r
=
e
(
this
).
data
(
"resizable"
),
i
=
r
.
options
,
s
=
r
.
size
,
o
=
r
.
originalSize
,
u
=
r
.
originalPosition
,
a
=
r
.
axis
,
f
=
i
.
_aspectRatio
||
t
.
shiftKey
;
i
.
grid
=
typeof
i
.
grid
==
"number"
?
[
i
.
grid
,
i
.
grid
]
:
i
.
grid
;
var
l
=
Math
.
round
((
s
.
width
-
o
.
width
)
/
(
i
.
grid
[
0
]
||
1
))
*
(
i
.
grid
[
0
]
||
1
),
c
=
Math
.
round
((
s
.
height
-
o
.
height
)
/
(
i
.
grid
[
1
]
||
1
))
*
(
i
.
grid
[
1
]
||
1
);
/^(se|s|e)$/
.
test
(
a
)
?
(
r
.
size
.
width
=
o
.
width
+
l
,
r
.
size
.
height
=
o
.
height
+
c
)
:
/^(ne)$/
.
test
(
a
)
?
(
r
.
size
.
width
=
o
.
width
+
l
,
r
.
size
.
height
=
o
.
height
+
c
,
r
.
position
.
top
=
u
.
top
-
c
)
:
/^(sw)$/
.
test
(
a
)
?
(
r
.
size
.
width
=
o
.
width
+
l
,
r
.
size
.
height
=
o
.
height
+
c
,
r
.
position
.
left
=
u
.
left
-
l
)
:
(
r
.
size
.
width
=
o
.
width
+
l
,
r
.
size
.
height
=
o
.
height
+
c
,
r
.
position
.
top
=
u
.
top
-
c
,
r
.
position
.
left
=
u
.
left
-
l
)}});
var
n
=
function
(
e
){
return
parseInt
(
e
,
10
)
||
0
},
r
=
function
(
e
){
return
!
isNaN
(
parseInt
(
e
,
10
))}})(
jQuery
);(
function
(
e
,
t
){
e
.
widget
(
"ui.selectable"
,
e
.
ui
.
mouse
,{
version
:
"1.9.1"
,
options
:
{
appendTo
:
"body"
,
autoRefresh
:!
0
,
distance
:
0
,
filter
:
"*"
,
tolerance
:
"touch"
},
_create
:
function
(){
var
t
=
this
;
this
.
element
.
addClass
(
"ui-selectable"
),
this
.
dragged
=!
1
;
var
n
;
this
.
refresh
=
function
(){
n
=
e
(
t
.
options
.
filter
,
t
.
element
[
0
]),
n
.
addClass
(
"ui-selectee"
),
n
.
each
(
function
(){
var
t
=
e
(
this
),
n
=
t
.
offset
();
e
.
data
(
this
,
"selectable-item"
,{
element
:
this
,
$element
:
t
,
left
:
n
.
left
,
top
:
n
.
top
,
right
:
n
.
left
+
t
.
outerWidth
(),
bottom
:
n
.
top
+
t
.
outerHeight
(),
startselected
:!
1
,
selected
:
t
.
hasClass
(
"ui-selected"
),
selecting
:
t
.
hasClass
(
"ui-selecting"
),
unselecting
:
t
.
hasClass
(
"ui-unselecting"
)})})},
this
.
refresh
(),
this
.
selectees
=
n
.
addClass
(
"ui-selectee"
),
this
.
_mouseInit
(),
this
.
helper
=
e
(
"<div class='ui-selectable-helper'></div>"
)},
_destroy
:
function
(){
this
.
selectees
.
removeClass
(
"ui-selectee"
).
removeData
(
"selectable-item"
),
this
.
element
.
removeClass
(
"ui-selectable ui-selectable-disabled"
),
this
.
_mouseDestroy
()},
_mouseStart
:
function
(
t
){
var
n
=
this
;
this
.
opos
=
[
t
.
pageX
,
t
.
pageY
];
if
(
this
.
options
.
disabled
)
return
;
var
r
=
this
.
options
;
this
.
selectees
=
e
(
r
.
filter
,
this
.
element
[
0
]),
this
.
_trigger
(
"start"
,
t
),
e
(
r
.
appendTo
).
append
(
this
.
helper
),
this
.
helper
.
css
({
left
:
t
.
clientX
,
top
:
t
.
clientY
,
width
:
0
,
height
:
0
}),
r
.
autoRefresh
&&
this
.
refresh
(),
this
.
selectees
.
filter
(
".ui-selected"
).
each
(
function
(){
var
r
=
e
.
data
(
this
,
"selectable-item"
);
r
.
startselected
=!
0
,
!
t
.
metaKey
&&!
t
.
ctrlKey
&&
(
r
.
$element
.
removeClass
(
"ui-selected"
),
r
.
selected
=!
1
,
r
.
$element
.
addClass
(
"ui-unselecting"
),
r
.
unselecting
=!
0
,
n
.
_trigger
(
"unselecting"
,
t
,{
unselecting
:
r
.
element
}))}),
e
(
t
.
target
).
parents
().
andSelf
().
each
(
function
(){
var
r
=
e
.
data
(
this
,
"selectable-item"
);
if
(
r
){
var
i
=!
t
.
metaKey
&&!
t
.
ctrlKey
||!
r
.
$element
.
hasClass
(
"ui-selected"
);
return
r
.
$element
.
removeClass
(
i
?
"ui-unselecting"
:
"ui-selected"
).
addClass
(
i
?
"ui-selecting"
:
"ui-unselecting"
),
r
.
unselecting
=!
i
,
r
.
selecting
=
i
,
r
.
selected
=
i
,
i
?
n
.
_trigger
(
"selecting"
,
t
,{
selecting
:
r
.
element
})
:
n
.
_trigger
(
"unselecting"
,
t
,{
unselecting
:
r
.
element
}),
!
1
}})},
_mouseDrag
:
function
(
t
){
var
n
=
this
;
this
.
dragged
=!
0
;
if
(
this
.
options
.
disabled
)
return
;
var
r
=
this
.
options
,
i
=
this
.
opos
[
0
],
s
=
this
.
opos
[
1
],
o
=
t
.
pageX
,
u
=
t
.
pageY
;
if
(
i
>
o
){
var
a
=
o
;
o
=
i
,
i
=
a
}
if
(
s
>
u
){
var
a
=
u
;
u
=
s
,
s
=
a
}
return
this
.
helper
.
css
({
left
:
i
,
top
:
s
,
width
:
o
-
i
,
height
:
u
-
s
}),
this
.
selectees
.
each
(
function
(){
var
a
=
e
.
data
(
this
,
"selectable-item"
);
if
(
!
a
||
a
.
element
==
n
.
element
[
0
])
return
;
var
f
=!
1
;
r
.
tolerance
==
"touch"
?
f
=!
(
a
.
left
>
o
||
a
.
right
<
i
||
a
.
top
>
u
||
a
.
bottom
<
s
)
:
r
.
tolerance
==
"fit"
&&
(
f
=
a
.
left
>
i
&&
a
.
right
<
o
&&
a
.
top
>
s
&&
a
.
bottom
<
u
),
f
?
(
a
.
selected
&&
(
a
.
$element
.
removeClass
(
"ui-selected"
),
a
.
selected
=!
1
),
a
.
unselecting
&&
(
a
.
$element
.
removeClass
(
"ui-unselecting"
),
a
.
unselecting
=!
1
),
a
.
selecting
||
(
a
.
$element
.
addClass
(
"ui-selecting"
),
a
.
selecting
=!
0
,
n
.
_trigger
(
"selecting"
,
t
,{
selecting
:
a
.
element
})))
:
(
a
.
selecting
&&
((
t
.
metaKey
||
t
.
ctrlKey
)
&&
a
.
startselected
?
(
a
.
$element
.
removeClass
(
"ui-selecting"
),
a
.
selecting
=!
1
,
a
.
$element
.
addClass
(
"ui-selected"
),
a
.
selected
=!
0
)
:
(
a
.
$element
.
removeClass
(
"ui-selecting"
),
a
.
selecting
=!
1
,
a
.
startselected
&&
(
a
.
$element
.
addClass
(
"ui-unselecting"
),
a
.
unselecting
=!
0
),
n
.
_trigger
(
"unselecting"
,
t
,{
unselecting
:
a
.
element
}))),
a
.
selected
&&!
t
.
metaKey
&&!
t
.
ctrlKey
&&!
a
.
startselected
&&
(
a
.
$element
.
removeClass
(
"ui-selected"
),
a
.
selected
=!
1
,
a
.
$element
.
addClass
(
"ui-unselecting"
),
a
.
unselecting
=!
0
,
n
.
_trigger
(
"unselecting"
,
t
,{
unselecting
:
a
.
element
})))}),
!
1
},
_mouseStop
:
function
(
t
){
var
n
=
this
;
this
.
dragged
=!
1
;
var
r
=
this
.
options
;
return
e
(
".ui-unselecting"
,
this
.
element
[
0
]).
each
(
function
(){
var
r
=
e
.
data
(
this
,
"selectable-item"
);
r
.
$element
.
removeClass
(
"ui-unselecting"
),
r
.
unselecting
=!
1
,
r
.
startselected
=!
1
,
n
.
_trigger
(
"unselected"
,
t
,{
unselected
:
r
.
element
})}),
e
(
".ui-selecting"
,
this
.
element
[
0
]).
each
(
function
(){
var
r
=
e
.
data
(
this
,
"selectable-item"
);
r
.
$element
.
removeClass
(
"ui-selecting"
).
addClass
(
"ui-selected"
),
r
.
selecting
=!
1
,
r
.
selected
=!
0
,
r
.
startselected
=!
0
,
n
.
_trigger
(
"selected"
,
t
,{
selected
:
r
.
element
})}),
this
.
_trigger
(
"stop"
,
t
),
this
.
helper
.
remove
(),
!
1
}})})(
jQuery
);(
function
(
e
,
t
){
var
n
=
5
;
e
.
widget
(
"ui.slider"
,
e
.
ui
.
mouse
,{
version
:
"1.9.1"
,
widgetEventPrefix
:
"slide"
,
options
:
{
animate
:!
1
,
distance
:
0
,
max
:
100
,
min
:
0
,
orientation
:
"horizontal"
,
range
:!
1
,
step
:
1
,
value
:
0
,
values
:
null
},
_create
:
function
(){
var
t
,
r
,
i
=
this
.
options
,
s
=
this
.
element
.
find
(
".ui-slider-handle"
).
addClass
(
"ui-state-default ui-corner-all"
),
o
=
"<a class='ui-slider-handle ui-state-default ui-corner-all' href='#'></a>"
,
u
=
[];
this
.
_keySliding
=!
1
,
this
.
_mouseSliding
=!
1
,
this
.
_animateOff
=!
0
,
this
.
_handleIndex
=
null
,
this
.
_detectOrientation
(),
this
.
_mouseInit
(),
this
.
element
.
addClass
(
"ui-slider ui-slider-"
+
this
.
orientation
+
" ui-widget"
+
" ui-widget-content"
+
" ui-corner-all"
+
(
i
.
disabled
?
" ui-slider-disabled ui-disabled"
:
""
)),
this
.
range
=
e
([]),
i
.
range
&&
(
i
.
range
===!
0
&&
(
i
.
values
||
(
i
.
values
=
[
this
.
_valueMin
(),
this
.
_valueMin
()]),
i
.
values
.
length
&&
i
.
values
.
length
!==
2
&&
(
i
.
values
=
[
i
.
values
[
0
],
i
.
values
[
0
]])),
this
.
range
=
e
(
"<div></div>"
).
appendTo
(
this
.
element
).
addClass
(
"ui-slider-range ui-widget-header"
+
(
i
.
range
===
"min"
||
i
.
range
===
"max"
?
" ui-slider-range-"
+
i
.
range
:
""
))),
r
=
i
.
values
&&
i
.
values
.
length
||
1
;
for
(
t
=
s
.
length
;
t
<
r
;
t
++
)
u
.
push
(
o
);
this
.
handles
=
s
.
add
(
e
(
u
.
join
(
""
)).
appendTo
(
this
.
element
)),
this
.
handle
=
this
.
handles
.
eq
(
0
),
this
.
handles
.
add
(
this
.
range
).
filter
(
"a"
).
click
(
function
(
e
){
e
.
preventDefault
()}).
mouseenter
(
function
(){
i
.
disabled
||
e
(
this
).
addClass
(
"ui-state-hover"
)}).
mouseleave
(
function
(){
e
(
this
).
removeClass
(
"ui-state-hover"
)}).
focus
(
function
(){
i
.
disabled
?
e
(
this
).
blur
()
:
(
e
(
".ui-slider .ui-state-focus"
).
removeClass
(
"ui-state-focus"
),
e
(
this
).
addClass
(
"ui-state-focus"
))}).
blur
(
function
(){
e
(
this
).
removeClass
(
"ui-state-focus"
)}),
this
.
handles
.
each
(
function
(
t
){
e
(
this
).
data
(
"ui-slider-handle-index"
,
t
)}),
this
.
_on
(
this
.
handles
,{
keydown
:
function
(
t
){
var
r
,
i
,
s
,
o
,
u
=
e
(
t
.
target
).
data
(
"ui-slider-handle-index"
);
switch
(
t
.
keyCode
){
case
e
.
ui
.
keyCode
.
HOME
:
case
e
.
ui
.
keyCode
.
END
:
case
e
.
ui
.
keyCode
.
PAGE_UP
:
case
e
.
ui
.
keyCode
.
PAGE_DOWN
:
case
e
.
ui
.
keyCode
.
UP
:
case
e
.
ui
.
keyCode
.
RIGHT
:
case
e
.
ui
.
keyCode
.
DOWN
:
case
e
.
ui
.
keyCode
.
LEFT
:
t
.
preventDefault
();
if
(
!
this
.
_keySliding
){
this
.
_keySliding
=!
0
,
e
(
t
.
target
).
addClass
(
"ui-state-active"
),
r
=
this
.
_start
(
t
,
u
);
if
(
r
===!
1
)
return
}}
o
=
this
.
options
.
step
,
this
.
options
.
values
&&
this
.
options
.
values
.
length
?
i
=
s
=
this
.
values
(
u
)
:
i
=
s
=
this
.
value
();
switch
(
t
.
keyCode
){
case
e
.
ui
.
keyCode
.
HOME
:
s
=
this
.
_valueMin
();
break
;
case
e
.
ui
.
keyCode
.
END
:
s
=
this
.
_valueMax
();
break
;
case
e
.
ui
.
keyCode
.
PAGE_UP
:
s
=
this
.
_trimAlignValue
(
i
+
(
this
.
_valueMax
()
-
this
.
_valueMin
())
/
n
);
break
;
case
e
.
ui
.
keyCode
.
PAGE_DOWN
:
s
=
this
.
_trimAlignValue
(
i
-
(
this
.
_valueMax
()
-
this
.
_valueMin
())
/
n
);
break
;
case
e
.
ui
.
keyCode
.
UP
:
case
e
.
ui
.
keyCode
.
RIGHT
:
if
(
i
===
this
.
_valueMax
())
return
;
s
=
this
.
_trimAlignValue
(
i
+
o
);
break
;
case
e
.
ui
.
keyCode
.
DOWN
:
case
e
.
ui
.
keyCode
.
LEFT
:
if
(
i
===
this
.
_valueMin
())
return
;
s
=
this
.
_trimAlignValue
(
i
-
o
)}
this
.
_slide
(
t
,
u
,
s
)},
keyup
:
function
(
t
){
var
n
=
e
(
t
.
target
).
data
(
"ui-slider-handle-index"
);
this
.
_keySliding
&&
(
this
.
_keySliding
=!
1
,
this
.
_stop
(
t
,
n
),
this
.
_change
(
t
,
n
),
e
(
t
.
target
).
removeClass
(
"ui-state-active"
))}}),
this
.
_refreshValue
(),
this
.
_animateOff
=!
1
},
_destroy
:
function
(){
this
.
handles
.
remove
(),
this
.
range
.
remove
(),
this
.
element
.
removeClass
(
"ui-slider ui-slider-horizontal ui-slider-vertical ui-slider-disabled ui-widget ui-widget-content ui-corner-all"
),
this
.
_mouseDestroy
()},
_mouseCapture
:
function
(
t
){
var
n
,
r
,
i
,
s
,
o
,
u
,
a
,
f
,
l
=
this
,
c
=
this
.
options
;
return
c
.
disabled
?!
1
:
(
this
.
elementSize
=
{
width
:
this
.
element
.
outerWidth
(),
height
:
this
.
element
.
outerHeight
()},
this
.
elementOffset
=
this
.
element
.
offset
(),
n
=
{
x
:
t
.
pageX
,
y
:
t
.
pageY
},
r
=
this
.
_normValueFromMouse
(
n
),
i
=
this
.
_valueMax
()
-
this
.
_valueMin
()
+
1
,
this
.
handles
.
each
(
function
(
t
){
var
n
=
Math
.
abs
(
r
-
l
.
values
(
t
));
i
>
n
&&
(
i
=
n
,
s
=
e
(
this
),
o
=
t
)}),
c
.
range
===!
0
&&
this
.
values
(
1
)
===
c
.
min
&&
(
o
+=
1
,
s
=
e
(
this
.
handles
[
o
])),
u
=
this
.
_start
(
t
,
o
),
u
===!
1
?!
1
:
(
this
.
_mouseSliding
=!
0
,
this
.
_handleIndex
=
o
,
s
.
addClass
(
"ui-state-active"
).
focus
(),
a
=
s
.
offset
(),
f
=!
e
(
t
.
target
).
parents
().
andSelf
().
is
(
".ui-slider-handle"
),
this
.
_clickOffset
=
f
?
{
left
:
0
,
top
:
0
}
:
{
left
:
t
.
pageX
-
a
.
left
-
s
.
width
()
/
2
,
top
:
t
.
pageY
-
a
.
top
-
s
.
height
()
/
2
-
(
parseInt
(
s
.
css
(
"borderTopWidth"
),
10
)
||
0
)
-
(
parseInt
(
s
.
css
(
"borderBottomWidth"
),
10
)
||
0
)
+
(
parseInt
(
s
.
css
(
"marginTop"
),
10
)
||
0
)},
this
.
handles
.
hasClass
(
"ui-state-hover"
)
||
this
.
_slide
(
t
,
o
,
r
),
this
.
_animateOff
=!
0
,
!
0
))},
_mouseStart
:
function
(){
return
!
0
},
_mouseDrag
:
function
(
e
){
var
t
=
{
x
:
e
.
pageX
,
y
:
e
.
pageY
},
n
=
this
.
_normValueFromMouse
(
t
);
return
this
.
_slide
(
e
,
this
.
_handleIndex
,
n
),
!
1
},
_mouseStop
:
function
(
e
){
return
this
.
handles
.
removeClass
(
"ui-state-active"
),
this
.
_mouseSliding
=!
1
,
this
.
_stop
(
e
,
this
.
_handleIndex
),
this
.
_change
(
e
,
this
.
_handleIndex
),
this
.
_handleIndex
=
null
,
this
.
_clickOffset
=
null
,
this
.
_animateOff
=!
1
,
!
1
},
_detectOrientation
:
function
(){
this
.
orientation
=
this
.
options
.
orientation
===
"vertical"
?
"vertical"
:
"horizontal"
},
_normValueFromMouse
:
function
(
e
){
var
t
,
n
,
r
,
i
,
s
;
return
this
.
orientation
===
"horizontal"
?
(
t
=
this
.
elementSize
.
width
,
n
=
e
.
x
-
this
.
elementOffset
.
left
-
(
this
.
_clickOffset
?
this
.
_clickOffset
.
left
:
0
))
:
(
t
=
this
.
elementSize
.
height
,
n
=
e
.
y
-
this
.
elementOffset
.
top
-
(
this
.
_clickOffset
?
this
.
_clickOffset
.
top
:
0
)),
r
=
n
/
t
,
r
>
1
&&
(
r
=
1
),
r
<
0
&&
(
r
=
0
),
this
.
orientation
===
"vertical"
&&
(
r
=
1
-
r
),
i
=
this
.
_valueMax
()
-
this
.
_valueMin
(),
s
=
this
.
_valueMin
()
+
r
*
i
,
this
.
_trimAlignValue
(
s
)},
_start
:
function
(
e
,
t
){
var
n
=
{
handle
:
this
.
handles
[
t
],
value
:
this
.
value
()};
return
this
.
options
.
values
&&
this
.
options
.
values
.
length
&&
(
n
.
value
=
this
.
values
(
t
),
n
.
values
=
this
.
values
()),
this
.
_trigger
(
"start"
,
e
,
n
)},
_slide
:
function
(
e
,
t
,
n
){
var
r
,
i
,
s
;
this
.
options
.
values
&&
this
.
options
.
values
.
length
?
(
r
=
this
.
values
(
t
?
0
:
1
),
this
.
options
.
values
.
length
===
2
&&
this
.
options
.
range
===!
0
&&
(
t
===
0
&&
n
>
r
||
t
===
1
&&
n
<
r
)
&&
(
n
=
r
),
n
!==
this
.
values
(
t
)
&&
(
i
=
this
.
values
(),
i
[
t
]
=
n
,
s
=
this
.
_trigger
(
"slide"
,
e
,{
handle
:
this
.
handles
[
t
],
value
:
n
,
values
:
i
}),
r
=
this
.
values
(
t
?
0
:
1
),
s
!==!
1
&&
this
.
values
(
t
,
n
,
!
0
)))
:
n
!==
this
.
value
()
&&
(
s
=
this
.
_trigger
(
"slide"
,
e
,{
handle
:
this
.
handles
[
t
],
value
:
n
}),
s
!==!
1
&&
this
.
value
(
n
))},
_stop
:
function
(
e
,
t
){
var
n
=
{
handle
:
this
.
handles
[
t
],
value
:
this
.
value
()};
this
.
options
.
values
&&
this
.
options
.
values
.
length
&&
(
n
.
value
=
this
.
values
(
t
),
n
.
values
=
this
.
values
()),
this
.
_trigger
(
"stop"
,
e
,
n
)},
_change
:
function
(
e
,
t
){
if
(
!
this
.
_keySliding
&&!
this
.
_mouseSliding
){
var
n
=
{
handle
:
this
.
handles
[
t
],
value
:
this
.
value
()};
this
.
options
.
values
&&
this
.
options
.
values
.
length
&&
(
n
.
value
=
this
.
values
(
t
),
n
.
values
=
this
.
values
()),
this
.
_trigger
(
"change"
,
e
,
n
)}},
value
:
function
(
e
){
if
(
arguments
.
length
){
this
.
options
.
value
=
this
.
_trimAlignValue
(
e
),
this
.
_refreshValue
(),
this
.
_change
(
null
,
0
);
return
}
return
this
.
_value
()},
values
:
function
(
t
,
n
){
var
r
,
i
,
s
;
if
(
arguments
.
length
>
1
){
this
.
options
.
values
[
t
]
=
this
.
_trimAlignValue
(
n
),
this
.
_refreshValue
(),
this
.
_change
(
null
,
t
);
return
}
if
(
!
arguments
.
length
)
return
this
.
_values
();
if
(
!
e
.
isArray
(
arguments
[
0
]))
return
this
.
options
.
values
&&
this
.
options
.
values
.
length
?
this
.
_values
(
t
)
:
this
.
value
();
r
=
this
.
options
.
values
,
i
=
arguments
[
0
];
for
(
s
=
0
;
s
<
r
.
length
;
s
+=
1
)
r
[
s
]
=
this
.
_trimAlignValue
(
i
[
s
]),
this
.
_change
(
null
,
s
);
this
.
_refreshValue
()},
_setOption
:
function
(
t
,
n
){
var
r
,
i
=
0
;
e
.
isArray
(
this
.
options
.
values
)
&&
(
i
=
this
.
options
.
values
.
length
),
e
.
Widget
.
prototype
.
_setOption
.
apply
(
this
,
arguments
);
switch
(
t
){
case
"disabled"
:
n
?
(
this
.
handles
.
filter
(
".ui-state-focus"
).
blur
(),
this
.
handles
.
removeClass
(
"ui-state-hover"
),
this
.
handles
.
prop
(
"disabled"
,
!
0
),
this
.
element
.
addClass
(
"ui-disabled"
))
:
(
this
.
handles
.
prop
(
"disabled"
,
!
1
),
this
.
element
.
removeClass
(
"ui-disabled"
));
break
;
case
"orientation"
:
this
.
_detectOrientation
(),
this
.
element
.
removeClass
(
"ui-slider-horizontal ui-slider-vertical"
).
addClass
(
"ui-slider-"
+
this
.
orientation
),
this
.
_refreshValue
();
break
;
case
"value"
:
this
.
_animateOff
=!
0
,
this
.
_refreshValue
(),
this
.
_change
(
null
,
0
),
this
.
_animateOff
=!
1
;
break
;
case
"values"
:
this
.
_animateOff
=!
0
,
this
.
_refreshValue
();
for
(
r
=
0
;
r
<
i
;
r
+=
1
)
this
.
_change
(
null
,
r
);
this
.
_animateOff
=!
1
;
break
;
case
"min"
:
case
"max"
:
this
.
_animateOff
=!
0
,
this
.
_refreshValue
(),
this
.
_animateOff
=!
1
}},
_value
:
function
(){
var
e
=
this
.
options
.
value
;
return
e
=
this
.
_trimAlignValue
(
e
),
e
},
_values
:
function
(
e
){
var
t
,
n
,
r
;
if
(
arguments
.
length
)
return
t
=
this
.
options
.
values
[
e
],
t
=
this
.
_trimAlignValue
(
t
),
t
;
n
=
this
.
options
.
values
.
slice
();
for
(
r
=
0
;
r
<
n
.
length
;
r
+=
1
)
n
[
r
]
=
this
.
_trimAlignValue
(
n
[
r
]);
return
n
},
_trimAlignValue
:
function
(
e
){
if
(
e
<=
this
.
_valueMin
())
return
this
.
_valueMin
();
if
(
e
>=
this
.
_valueMax
())
return
this
.
_valueMax
();
var
t
=
this
.
options
.
step
>
0
?
this
.
options
.
step
:
1
,
n
=
(
e
-
this
.
_valueMin
())
%
t
,
r
=
e
-
n
;
return
Math
.
abs
(
n
)
*
2
>=
t
&&
(
r
+=
n
>
0
?
t
:-
t
),
parseFloat
(
r
.
toFixed
(
5
))},
_valueMin
:
function
(){
return
this
.
options
.
min
},
_valueMax
:
function
(){
return
this
.
options
.
max
},
_refreshValue
:
function
(){
var
t
,
n
,
r
,
i
,
s
,
o
=
this
.
options
.
range
,
u
=
this
.
options
,
a
=
this
,
f
=
this
.
_animateOff
?!
1
:
u
.
animate
,
l
=
{};
this
.
options
.
values
&&
this
.
options
.
values
.
length
?
this
.
handles
.
each
(
function
(
r
){
n
=
(
a
.
values
(
r
)
-
a
.
_valueMin
())
/
(
a
.
_valueMax
()
-
a
.
_valueMin
())
*
100
,
l
[
a
.
orientation
===
"horizontal"
?
"left"
:
"bottom"
]
=
n
+
"%"
,
e
(
this
).
stop
(
1
,
1
)[
f
?
"animate"
:
"css"
](
l
,
u
.
animate
),
a
.
options
.
range
===!
0
&&
(
a
.
orientation
===
"horizontal"
?
(
r
===
0
&&
a
.
range
.
stop
(
1
,
1
)[
f
?
"animate"
:
"css"
]({
left
:
n
+
"%"
},
u
.
animate
),
r
===
1
&&
a
.
range
[
f
?
"animate"
:
"css"
]({
width
:
n
-
t
+
"%"
},{
queue
:!
1
,
duration
:
u
.
animate
}))
:
(
r
===
0
&&
a
.
range
.
stop
(
1
,
1
)[
f
?
"animate"
:
"css"
]({
bottom
:
n
+
"%"
},
u
.
animate
),
r
===
1
&&
a
.
range
[
f
?
"animate"
:
"css"
]({
height
:
n
-
t
+
"%"
},{
queue
:!
1
,
duration
:
u
.
animate
}))),
t
=
n
})
:
(
r
=
this
.
value
(),
i
=
this
.
_valueMin
(),
s
=
this
.
_valueMax
(),
n
=
s
!==
i
?
(
r
-
i
)
/
(
s
-
i
)
*
100
:
0
,
l
[
this
.
orientation
===
"horizontal"
?
"left"
:
"bottom"
]
=
n
+
"%"
,
this
.
handle
.
stop
(
1
,
1
)[
f
?
"animate"
:
"css"
](
l
,
u
.
animate
),
o
===
"min"
&&
this
.
orientation
===
"horizontal"
&&
this
.
range
.
stop
(
1
,
1
)[
f
?
"animate"
:
"css"
]({
width
:
n
+
"%"
},
u
.
animate
),
o
===
"max"
&&
this
.
orientation
===
"horizontal"
&&
this
.
range
[
f
?
"animate"
:
"css"
]({
width
:
100
-
n
+
"%"
},{
queue
:!
1
,
duration
:
u
.
animate
}),
o
===
"min"
&&
this
.
orientation
===
"vertical"
&&
this
.
range
.
stop
(
1
,
1
)[
f
?
"animate"
:
"css"
]({
height
:
n
+
"%"
},
u
.
animate
),
o
===
"max"
&&
this
.
orientation
===
"vertical"
&&
this
.
range
[
f
?
"animate"
:
"css"
]({
height
:
100
-
n
+
"%"
},{
queue
:!
1
,
duration
:
u
.
animate
}))}})})(
jQuery
);(
function
(
e
,
t
){
e
.
widget
(
"ui.sortable"
,
e
.
ui
.
mouse
,{
version
:
"1.9.1"
,
widgetEventPrefix
:
"sort"
,
ready
:!
1
,
options
:
{
appendTo
:
"parent"
,
axis
:!
1
,
connectWith
:!
1
,
containment
:!
1
,
cursor
:
"auto"
,
cursorAt
:!
1
,
dropOnEmpty
:!
0
,
forcePlaceholderSize
:!
1
,
forceHelperSize
:!
1
,
grid
:!
1
,
handle
:!
1
,
helper
:
"original"
,
items
:
"> *"
,
opacity
:!
1
,
placeholder
:!
1
,
revert
:!
1
,
scroll
:!
0
,
scrollSensitivity
:
20
,
scrollSpeed
:
20
,
scope
:
"default"
,
tolerance
:
"intersect"
,
zIndex
:
1e3
},
_create
:
function
(){
var
e
=
this
.
options
;
this
.
containerCache
=
{},
this
.
element
.
addClass
(
"ui-sortable"
),
this
.
refresh
(),
this
.
floating
=
this
.
items
.
length
?
e
.
axis
===
"x"
||
/left|right/
.
test
(
this
.
items
[
0
].
item
.
css
(
"float"
))
||
/inline|table-cell/
.
test
(
this
.
items
[
0
].
item
.
css
(
"display"
))
:!
1
,
this
.
offset
=
this
.
element
.
offset
(),
this
.
_mouseInit
(),
this
.
ready
=!
0
},
_destroy
:
function
(){
this
.
element
.
removeClass
(
"ui-sortable ui-sortable-disabled"
),
this
.
_mouseDestroy
();
for
(
var
e
=
this
.
items
.
length
-
1
;
e
>=
0
;
e
--
)
this
.
items
[
e
].
item
.
removeData
(
this
.
widgetName
+
"-item"
);
return
this
},
_setOption
:
function
(
t
,
n
){
t
===
"disabled"
?
(
this
.
options
[
t
]
=
n
,
this
.
widget
().
toggleClass
(
"ui-sortable-disabled"
,
!!
n
))
:
e
.
Widget
.
prototype
.
_setOption
.
apply
(
this
,
arguments
)},
_mouseCapture
:
function
(
t
,
n
){
var
r
=
this
;
if
(
this
.
reverting
)
return
!
1
;
if
(
this
.
options
.
disabled
||
this
.
options
.
type
==
"static"
)
return
!
1
;
this
.
_refreshItems
(
t
);
var
i
=
null
,
s
=
e
(
t
.
target
).
parents
().
each
(
function
(){
if
(
e
.
data
(
this
,
r
.
widgetName
+
"-item"
)
==
r
)
return
i
=
e
(
this
),
!
1
});
e
.
data
(
t
.
target
,
r
.
widgetName
+
"-item"
)
==
r
&&
(
i
=
e
(
t
.
target
));
if
(
!
i
)
return
!
1
;
if
(
this
.
options
.
handle
&&!
n
){
var
o
=!
1
;
e
(
this
.
options
.
handle
,
i
).
find
(
"*"
).
andSelf
().
each
(
function
(){
this
==
t
.
target
&&
(
o
=!
0
)});
if
(
!
o
)
return
!
1
}
return
this
.
currentItem
=
i
,
this
.
_removeCurrentsFromItems
(),
!
0
},
_mouseStart
:
function
(
t
,
n
,
r
){
var
i
=
this
.
options
;
this
.
currentContainer
=
this
,
this
.
refreshPositions
(),
this
.
helper
=
this
.
_createHelper
(
t
),
this
.
_cacheHelperProportions
(),
this
.
_cacheMargins
(),
this
.
scrollParent
=
this
.
helper
.
scrollParent
(),
this
.
offset
=
this
.
currentItem
.
offset
(),
this
.
offset
=
{
top
:
this
.
offset
.
top
-
this
.
margins
.
top
,
left
:
this
.
offset
.
left
-
this
.
margins
.
left
},
e
.
extend
(
this
.
offset
,{
click
:
{
left
:
t
.
pageX
-
this
.
offset
.
left
,
top
:
t
.
pageY
-
this
.
offset
.
top
},
parent
:
this
.
_getParentOffset
(),
relative
:
this
.
_getRelativeOffset
()}),
this
.
helper
.
css
(
"position"
,
"absolute"
),
this
.
cssPosition
=
this
.
helper
.
css
(
"position"
),
this
.
originalPosition
=
this
.
_generatePosition
(
t
),
this
.
originalPageX
=
t
.
pageX
,
this
.
originalPageY
=
t
.
pageY
,
i
.
cursorAt
&&
this
.
_adjustOffsetFromHelper
(
i
.
cursorAt
),
this
.
domPosition
=
{
prev
:
this
.
currentItem
.
prev
()[
0
],
parent
:
this
.
currentItem
.
parent
()[
0
]},
this
.
helper
[
0
]
!=
this
.
currentItem
[
0
]
&&
this
.
currentItem
.
hide
(),
this
.
_createPlaceholder
(),
i
.
containment
&&
this
.
_setContainment
(),
i
.
cursor
&&
(
e
(
"body"
).
css
(
"cursor"
)
&&
(
this
.
_storedCursor
=
e
(
"body"
).
css
(
"cursor"
)),
e
(
"body"
).
css
(
"cursor"
,
i
.
cursor
)),
i
.
opacity
&&
(
this
.
helper
.
css
(
"opacity"
)
&&
(
this
.
_storedOpacity
=
this
.
helper
.
css
(
"opacity"
)),
this
.
helper
.
css
(
"opacity"
,
i
.
opacity
)),
i
.
zIndex
&&
(
this
.
helper
.
css
(
"zIndex"
)
&&
(
this
.
_storedZIndex
=
this
.
helper
.
css
(
"zIndex"
)),
this
.
helper
.
css
(
"zIndex"
,
i
.
zIndex
)),
this
.
scrollParent
[
0
]
!=
document
&&
this
.
scrollParent
[
0
].
tagName
!=
"HTML"
&&
(
this
.
overflowOffset
=
this
.
scrollParent
.
offset
()),
this
.
_trigger
(
"start"
,
t
,
this
.
_uiHash
()),
this
.
_preserveHelperProportions
||
this
.
_cacheHelperProportions
();
if
(
!
r
)
for
(
var
s
=
this
.
containers
.
length
-
1
;
s
>=
0
;
s
--
)
this
.
containers
[
s
].
_trigger
(
"activate"
,
t
,
this
.
_uiHash
(
this
));
return
e
.
ui
.
ddmanager
&&
(
e
.
ui
.
ddmanager
.
current
=
this
),
e
.
ui
.
ddmanager
&&!
i
.
dropBehaviour
&&
e
.
ui
.
ddmanager
.
prepareOffsets
(
this
,
t
),
this
.
dragging
=!
0
,
this
.
helper
.
addClass
(
"ui-sortable-helper"
),
this
.
_mouseDrag
(
t
),
!
0
},
_mouseDrag
:
function
(
t
){
this
.
position
=
this
.
_generatePosition
(
t
),
this
.
positionAbs
=
this
.
_convertPositionTo
(
"absolute"
),
this
.
lastPositionAbs
||
(
this
.
lastPositionAbs
=
this
.
positionAbs
);
if
(
this
.
options
.
scroll
){
var
n
=
this
.
options
,
r
=!
1
;
this
.
scrollParent
[
0
]
!=
document
&&
this
.
scrollParent
[
0
].
tagName
!=
"HTML"
?
(
this
.
overflowOffset
.
top
+
this
.
scrollParent
[
0
].
offsetHeight
-
t
.
pageY
<
n
.
scrollSensitivity
?
this
.
scrollParent
[
0
].
scrollTop
=
r
=
this
.
scrollParent
[
0
].
scrollTop
+
n
.
scrollSpeed
:
t
.
pageY
-
this
.
overflowOffset
.
top
<
n
.
scrollSensitivity
&&
(
this
.
scrollParent
[
0
].
scrollTop
=
r
=
this
.
scrollParent
[
0
].
scrollTop
-
n
.
scrollSpeed
),
this
.
overflowOffset
.
left
+
this
.
scrollParent
[
0
].
offsetWidth
-
t
.
pageX
<
n
.
scrollSensitivity
?
this
.
scrollParent
[
0
].
scrollLeft
=
r
=
this
.
scrollParent
[
0
].
scrollLeft
+
n
.
scrollSpeed
:
t
.
pageX
-
this
.
overflowOffset
.
left
<
n
.
scrollSensitivity
&&
(
this
.
scrollParent
[
0
].
scrollLeft
=
r
=
this
.
scrollParent
[
0
].
scrollLeft
-
n
.
scrollSpeed
))
:
(
t
.
pageY
-
e
(
document
).
scrollTop
()
<
n
.
scrollSensitivity
?
r
=
e
(
document
).
scrollTop
(
e
(
document
).
scrollTop
()
-
n
.
scrollSpeed
)
:
e
(
window
).
height
()
-
(
t
.
pageY
-
e
(
document
).
scrollTop
())
<
n
.
scrollSensitivity
&&
(
r
=
e
(
document
).
scrollTop
(
e
(
document
).
scrollTop
()
+
n
.
scrollSpeed
)),
t
.
pageX
-
e
(
document
).
scrollLeft
()
<
n
.
scrollSensitivity
?
r
=
e
(
document
).
scrollLeft
(
e
(
document
).
scrollLeft
()
-
n
.
scrollSpeed
)
:
e
(
window
).
width
()
-
(
t
.
pageX
-
e
(
document
).
scrollLeft
())
<
n
.
scrollSensitivity
&&
(
r
=
e
(
document
).
scrollLeft
(
e
(
document
).
scrollLeft
()
+
n
.
scrollSpeed
))),
r
!==!
1
&&
e
.
ui
.
ddmanager
&&!
n
.
dropBehaviour
&&
e
.
ui
.
ddmanager
.
prepareOffsets
(
this
,
t
)}
this
.
positionAbs
=
this
.
_convertPositionTo
(
"absolute"
);
if
(
!
this
.
options
.
axis
||
this
.
options
.
axis
!=
"y"
)
this
.
helper
[
0
].
style
.
left
=
this
.
position
.
left
+
"px"
;
if
(
!
this
.
options
.
axis
||
this
.
options
.
axis
!=
"x"
)
this
.
helper
[
0
].
style
.
top
=
this
.
position
.
top
+
"px"
;
for
(
var
i
=
this
.
items
.
length
-
1
;
i
>=
0
;
i
--
){
var
s
=
this
.
items
[
i
],
o
=
s
.
item
[
0
],
u
=
this
.
_intersectsWithPointer
(
s
);
if
(
!
u
)
continue
;
if
(
s
.
instance
!==
this
.
currentContainer
)
continue
;
if
(
o
!=
this
.
currentItem
[
0
]
&&
this
.
placeholder
[
u
==
1
?
"next"
:
"prev"
]()[
0
]
!=
o
&&!
e
.
contains
(
this
.
placeholder
[
0
],
o
)
&&
(
this
.
options
.
type
==
"semi-dynamic"
?!
e
.
contains
(
this
.
element
[
0
],
o
)
:!
0
)){
this
.
direction
=
u
==
1
?
"down"
:
"up"
;
if
(
this
.
options
.
tolerance
!=
"pointer"
&&!
this
.
_intersectsWithSides
(
s
))
break
;
this
.
_rearrange
(
t
,
s
),
this
.
_trigger
(
"change"
,
t
,
this
.
_uiHash
());
break
}}
return
this
.
_contactContainers
(
t
),
e
.
ui
.
ddmanager
&&
e
.
ui
.
ddmanager
.
drag
(
this
,
t
),
this
.
_trigger
(
"sort"
,
t
,
this
.
_uiHash
()),
this
.
lastPositionAbs
=
this
.
positionAbs
,
!
1
},
_mouseStop
:
function
(
t
,
n
){
if
(
!
t
)
return
;
e
.
ui
.
ddmanager
&&!
this
.
options
.
dropBehaviour
&&
e
.
ui
.
ddmanager
.
drop
(
this
,
t
);
if
(
this
.
options
.
revert
){
var
r
=
this
,
i
=
this
.
placeholder
.
offset
();
this
.
reverting
=!
0
,
e
(
this
.
helper
).
animate
({
left
:
i
.
left
-
this
.
offset
.
parent
.
left
-
this
.
margins
.
left
+
(
this
.
offsetParent
[
0
]
==
document
.
body
?
0
:
this
.
offsetParent
[
0
].
scrollLeft
),
top
:
i
.
top
-
this
.
offset
.
parent
.
top
-
this
.
margins
.
top
+
(
this
.
offsetParent
[
0
]
==
document
.
body
?
0
:
this
.
offsetParent
[
0
].
scrollTop
)},
parseInt
(
this
.
options
.
revert
,
10
)
||
500
,
function
(){
r
.
_clear
(
t
)})}
else
this
.
_clear
(
t
,
n
);
return
!
1
},
cancel
:
function
(){
if
(
this
.
dragging
){
this
.
_mouseUp
({
target
:
null
}),
this
.
options
.
helper
==
"original"
?
this
.
currentItem
.
css
(
this
.
_storedCSS
).
removeClass
(
"ui-sortable-helper"
)
:
this
.
currentItem
.
show
();
for
(
var
t
=
this
.
containers
.
length
-
1
;
t
>=
0
;
t
--
)
this
.
containers
[
t
].
_trigger
(
"deactivate"
,
null
,
this
.
_uiHash
(
this
)),
this
.
containers
[
t
].
containerCache
.
over
&&
(
this
.
containers
[
t
].
_trigger
(
"out"
,
null
,
this
.
_uiHash
(
this
)),
this
.
containers
[
t
].
containerCache
.
over
=
0
)}
return
this
.
placeholder
&&
(
this
.
placeholder
[
0
].
parentNode
&&
this
.
placeholder
[
0
].
parentNode
.
removeChild
(
this
.
placeholder
[
0
]),
this
.
options
.
helper
!=
"original"
&&
this
.
helper
&&
this
.
helper
[
0
].
parentNode
&&
this
.
helper
.
remove
(),
e
.
extend
(
this
,{
helper
:
null
,
dragging
:!
1
,
reverting
:!
1
,
_noFinalSort
:
null
}),
this
.
domPosition
.
prev
?
e
(
this
.
domPosition
.
prev
).
after
(
this
.
currentItem
)
:
e
(
this
.
domPosition
.
parent
).
prepend
(
this
.
currentItem
)),
this
},
serialize
:
function
(
t
){
var
n
=
this
.
_getItemsAsjQuery
(
t
&&
t
.
connected
),
r
=
[];
return
t
=
t
||
{},
e
(
n
).
each
(
function
(){
var
n
=
(
e
(
t
.
item
||
this
).
attr
(
t
.
attribute
||
"id"
)
||
""
).
match
(
t
.
expression
||
/(.+)[-=_](.+)/
);
n
&&
r
.
push
((
t
.
key
||
n
[
1
]
+
"[]"
)
+
"="
+
(
t
.
key
&&
t
.
expression
?
n
[
1
]
:
n
[
2
]))}),
!
r
.
length
&&
t
.
key
&&
r
.
push
(
t
.
key
+
"="
),
r
.
join
(
"&"
)},
toArray
:
function
(
t
){
var
n
=
this
.
_getItemsAsjQuery
(
t
&&
t
.
connected
),
r
=
[];
return
t
=
t
||
{},
n
.
each
(
function
(){
r
.
push
(
e
(
t
.
item
||
this
).
attr
(
t
.
attribute
||
"id"
)
||
""
)}),
r
},
_intersectsWith
:
function
(
e
){
var
t
=
this
.
positionAbs
.
left
,
n
=
t
+
this
.
helperProportions
.
width
,
r
=
this
.
positionAbs
.
top
,
i
=
r
+
this
.
helperProportions
.
height
,
s
=
e
.
left
,
o
=
s
+
e
.
width
,
u
=
e
.
top
,
a
=
u
+
e
.
height
,
f
=
this
.
offset
.
click
.
top
,
l
=
this
.
offset
.
click
.
left
,
c
=
r
+
f
>
u
&&
r
+
f
<
a
&&
t
+
l
>
s
&&
t
+
l
<
o
;
return
this
.
options
.
tolerance
==
"pointer"
||
this
.
options
.
forcePointerForContainers
||
this
.
options
.
tolerance
!=
"pointer"
&&
this
.
helperProportions
[
this
.
floating
?
"width"
:
"height"
]
>
e
[
this
.
floating
?
"width"
:
"height"
]
?
c
:
s
<
t
+
this
.
helperProportions
.
width
/
2
&&
n
-
this
.
helperProportions
.
width
/
2
<
o
&&
u
<
r
+
this
.
helperProportions
.
height
/
2
&&
i
-
this
.
helperProportions
.
height
/
2
<
a
},
_intersectsWithPointer
:
function
(
t
){
var
n
=
this
.
options
.
axis
===
"x"
||
e
.
ui
.
isOverAxis
(
this
.
positionAbs
.
top
+
this
.
offset
.
click
.
top
,
t
.
top
,
t
.
height
),
r
=
this
.
options
.
axis
===
"y"
||
e
.
ui
.
isOverAxis
(
this
.
positionAbs
.
left
+
this
.
offset
.
click
.
left
,
t
.
left
,
t
.
width
),
i
=
n
&&
r
,
s
=
this
.
_getDragVerticalDirection
(),
o
=
this
.
_getDragHorizontalDirection
();
return
i
?
this
.
floating
?
o
&&
o
==
"right"
||
s
==
"down"
?
2
:
1
:
s
&&
(
s
==
"down"
?
2
:
1
)
:!
1
},
_intersectsWithSides
:
function
(
t
){
var
n
=
e
.
ui
.
isOverAxis
(
this
.
positionAbs
.
top
+
this
.
offset
.
click
.
top
,
t
.
top
+
t
.
height
/
2
,
t
.
height
),
r
=
e
.
ui
.
isOverAxis
(
this
.
positionAbs
.
left
+
this
.
offset
.
click
.
left
,
t
.
left
+
t
.
width
/
2
,
t
.
width
),
i
=
this
.
_getDragVerticalDirection
(),
s
=
this
.
_getDragHorizontalDirection
();
return
this
.
floating
&&
s
?
s
==
"right"
&&
r
||
s
==
"left"
&&!
r
:
i
&&
(
i
==
"down"
&&
n
||
i
==
"up"
&&!
n
)},
_getDragVerticalDirection
:
function
(){
var
e
=
this
.
positionAbs
.
top
-
this
.
lastPositionAbs
.
top
;
return
e
!=
0
&&
(
e
>
0
?
"down"
:
"up"
)},
_getDragHorizontalDirection
:
function
(){
var
e
=
this
.
positionAbs
.
left
-
this
.
lastPositionAbs
.
left
;
return
e
!=
0
&&
(
e
>
0
?
"right"
:
"left"
)},
refresh
:
function
(
e
){
return
this
.
_refreshItems
(
e
),
this
.
refreshPositions
(),
this
},
_connectWith
:
function
(){
var
e
=
this
.
options
;
return
e
.
connectWith
.
constructor
==
String
?
[
e
.
connectWith
]
:
e
.
connectWith
},
_getItemsAsjQuery
:
function
(
t
){
var
n
=
[],
r
=
[],
i
=
this
.
_connectWith
();
if
(
i
&&
t
)
for
(
var
s
=
i
.
length
-
1
;
s
>=
0
;
s
--
){
var
o
=
e
(
i
[
s
]);
for
(
var
u
=
o
.
length
-
1
;
u
>=
0
;
u
--
){
var
a
=
e
.
data
(
o
[
u
],
this
.
widgetName
);
a
&&
a
!=
this
&&!
a
.
options
.
disabled
&&
r
.
push
([
e
.
isFunction
(
a
.
options
.
items
)
?
a
.
options
.
items
.
call
(
a
.
element
)
:
e
(
a
.
options
.
items
,
a
.
element
).
not
(
".ui-sortable-helper"
).
not
(
".ui-sortable-placeholder"
),
a
])}}
r
.
push
([
e
.
isFunction
(
this
.
options
.
items
)
?
this
.
options
.
items
.
call
(
this
.
element
,
null
,{
options
:
this
.
options
,
item
:
this
.
currentItem
})
:
e
(
this
.
options
.
items
,
this
.
element
).
not
(
".ui-sortable-helper"
).
not
(
".ui-sortable-placeholder"
),
this
]);
for
(
var
s
=
r
.
length
-
1
;
s
>=
0
;
s
--
)
r
[
s
][
0
].
each
(
function
(){
n
.
push
(
this
)});
return
e
(
n
)},
_removeCurrentsFromItems
:
function
(){
var
t
=
this
.
currentItem
.
find
(
":data("
+
this
.
widgetName
+
"-item)"
);
this
.
items
=
e
.
grep
(
this
.
items
,
function
(
e
){
for
(
var
n
=
0
;
n
<
t
.
length
;
n
++
)
if
(
t
[
n
]
==
e
.
item
[
0
])
return
!
1
;
return
!
0
})},
_refreshItems
:
function
(
t
){
this
.
items
=
[],
this
.
containers
=
[
this
];
var
n
=
this
.
items
,
r
=
[[
e
.
isFunction
(
this
.
options
.
items
)
?
this
.
options
.
items
.
call
(
this
.
element
[
0
],
t
,{
item
:
this
.
currentItem
})
:
e
(
this
.
options
.
items
,
this
.
element
),
this
]],
i
=
this
.
_connectWith
();
if
(
i
&&
this
.
ready
)
for
(
var
s
=
i
.
length
-
1
;
s
>=
0
;
s
--
){
var
o
=
e
(
i
[
s
]);
for
(
var
u
=
o
.
length
-
1
;
u
>=
0
;
u
--
){
var
a
=
e
.
data
(
o
[
u
],
this
.
widgetName
);
a
&&
a
!=
this
&&!
a
.
options
.
disabled
&&
(
r
.
push
([
e
.
isFunction
(
a
.
options
.
items
)
?
a
.
options
.
items
.
call
(
a
.
element
[
0
],
t
,{
item
:
this
.
currentItem
})
:
e
(
a
.
options
.
items
,
a
.
element
),
a
]),
this
.
containers
.
push
(
a
))}}
for
(
var
s
=
r
.
length
-
1
;
s
>=
0
;
s
--
){
var
f
=
r
[
s
][
1
],
l
=
r
[
s
][
0
];
for
(
var
u
=
0
,
c
=
l
.
length
;
u
<
c
;
u
++
){
var
h
=
e
(
l
[
u
]);
h
.
data
(
this
.
widgetName
+
"-item"
,
f
),
n
.
push
({
item
:
h
,
instance
:
f
,
width
:
0
,
height
:
0
,
left
:
0
,
top
:
0
})}}},
refreshPositions
:
function
(
t
){
this
.
offsetParent
&&
this
.
helper
&&
(
this
.
offset
.
parent
=
this
.
_getParentOffset
());
for
(
var
n
=
this
.
items
.
length
-
1
;
n
>=
0
;
n
--
){
var
r
=
this
.
items
[
n
];
if
(
r
.
instance
!=
this
.
currentContainer
&&
this
.
currentContainer
&&
r
.
item
[
0
]
!=
this
.
currentItem
[
0
])
continue
;
var
i
=
this
.
options
.
toleranceElement
?
e
(
this
.
options
.
toleranceElement
,
r
.
item
)
:
r
.
item
;
t
||
(
r
.
width
=
i
.
outerWidth
(),
r
.
height
=
i
.
outerHeight
());
var
s
=
i
.
offset
();
r
.
left
=
s
.
left
,
r
.
top
=
s
.
top
}
if
(
this
.
options
.
custom
&&
this
.
options
.
custom
.
refreshContainers
)
this
.
options
.
custom
.
refreshContainers
.
call
(
this
);
else
for
(
var
n
=
this
.
containers
.
length
-
1
;
n
>=
0
;
n
--
){
var
s
=
this
.
containers
[
n
].
element
.
offset
();
this
.
containers
[
n
].
containerCache
.
left
=
s
.
left
,
this
.
containers
[
n
].
containerCache
.
top
=
s
.
top
,
this
.
containers
[
n
].
containerCache
.
width
=
this
.
containers
[
n
].
element
.
outerWidth
(),
this
.
containers
[
n
].
containerCache
.
height
=
this
.
containers
[
n
].
element
.
outerHeight
()}
return
this
},
_createPlaceholder
:
function
(
t
){
t
=
t
||
this
;
var
n
=
t
.
options
;
if
(
!
n
.
placeholder
||
n
.
placeholder
.
constructor
==
String
){
var
r
=
n
.
placeholder
;
n
.
placeholder
=
{
element
:
function
(){
var
n
=
e
(
document
.
createElement
(
t
.
currentItem
[
0
].
nodeName
)).
addClass
(
r
||
t
.
currentItem
[
0
].
className
+
" ui-sortable-placeholder"
).
removeClass
(
"ui-sortable-helper"
)[
0
];
return
r
||
(
n
.
style
.
visibility
=
"hidden"
),
n
},
update
:
function
(
e
,
i
){
if
(
r
&&!
n
.
forcePlaceholderSize
)
return
;
i
.
height
()
||
i
.
height
(
t
.
currentItem
.
innerHeight
()
-
parseInt
(
t
.
currentItem
.
css
(
"paddingTop"
)
||
0
,
10
)
-
parseInt
(
t
.
currentItem
.
css
(
"paddingBottom"
)
||
0
,
10
)),
i
.
width
()
||
i
.
width
(
t
.
currentItem
.
innerWidth
()
-
parseInt
(
t
.
currentItem
.
css
(
"paddingLeft"
)
||
0
,
10
)
-
parseInt
(
t
.
currentItem
.
css
(
"paddingRight"
)
||
0
,
10
))}}}
t
.
placeholder
=
e
(
n
.
placeholder
.
element
.
call
(
t
.
element
,
t
.
currentItem
)),
t
.
currentItem
.
after
(
t
.
placeholder
),
n
.
placeholder
.
update
(
t
,
t
.
placeholder
)},
_contactContainers
:
function
(
t
){
var
n
=
null
,
r
=
null
;
for
(
var
i
=
this
.
containers
.
length
-
1
;
i
>=
0
;
i
--
){
if
(
e
.
contains
(
this
.
currentItem
[
0
],
this
.
containers
[
i
].
element
[
0
]))
continue
;
if
(
this
.
_intersectsWith
(
this
.
containers
[
i
].
containerCache
)){
if
(
n
&&
e
.
contains
(
this
.
containers
[
i
].
element
[
0
],
n
.
element
[
0
]))
continue
;
n
=
this
.
containers
[
i
],
r
=
i
}
else
this
.
containers
[
i
].
containerCache
.
over
&&
(
this
.
containers
[
i
].
_trigger
(
"out"
,
t
,
this
.
_uiHash
(
this
)),
this
.
containers
[
i
].
containerCache
.
over
=
0
)}
if
(
!
n
)
return
;
if
(
this
.
containers
.
length
===
1
)
this
.
containers
[
r
].
_trigger
(
"over"
,
t
,
this
.
_uiHash
(
this
)),
this
.
containers
[
r
].
containerCache
.
over
=
1
;
else
{
var
s
=
1e4
,
o
=
null
,
u
=
this
.
containers
[
r
].
floating
?
"left"
:
"top"
,
a
=
this
.
containers
[
r
].
floating
?
"width"
:
"height"
,
f
=
this
.
positionAbs
[
u
]
+
this
.
offset
.
click
[
u
];
for
(
var
l
=
this
.
items
.
length
-
1
;
l
>=
0
;
l
--
){
if
(
!
e
.
contains
(
this
.
containers
[
r
].
element
[
0
],
this
.
items
[
l
].
item
[
0
]))
continue
;
if
(
this
.
items
[
l
].
item
[
0
]
==
this
.
currentItem
[
0
])
continue
;
var
c
=
this
.
items
[
l
].
item
.
offset
()[
u
],
h
=!
1
;
Math
.
abs
(
c
-
f
)
>
Math
.
abs
(
c
+
this
.
items
[
l
][
a
]
-
f
)
&&
(
h
=!
0
,
c
+=
this
.
items
[
l
][
a
]),
Math
.
abs
(
c
-
f
)
<
s
&&
(
s
=
Math
.
abs
(
c
-
f
),
o
=
this
.
items
[
l
],
this
.
direction
=
h
?
"up"
:
"down"
)}
if
(
!
o
&&!
this
.
options
.
dropOnEmpty
)
return
;
this
.
currentContainer
=
this
.
containers
[
r
],
o
?
this
.
_rearrange
(
t
,
o
,
null
,
!
0
)
:
this
.
_rearrange
(
t
,
null
,
this
.
containers
[
r
].
element
,
!
0
),
this
.
_trigger
(
"change"
,
t
,
this
.
_uiHash
()),
this
.
containers
[
r
].
_trigger
(
"change"
,
t
,
this
.
_uiHash
(
this
)),
this
.
options
.
placeholder
.
update
(
this
.
currentContainer
,
this
.
placeholder
),
this
.
containers
[
r
].
_trigger
(
"over"
,
t
,
this
.
_uiHash
(
this
)),
this
.
containers
[
r
].
containerCache
.
over
=
1
}},
_createHelper
:
function
(
t
){
var
n
=
this
.
options
,
r
=
e
.
isFunction
(
n
.
helper
)
?
e
(
n
.
helper
.
apply
(
this
.
element
[
0
],[
t
,
this
.
currentItem
]))
:
n
.
helper
==
"clone"
?
this
.
currentItem
.
clone
()
:
this
.
currentItem
;
return
r
.
parents
(
"body"
).
length
||
e
(
n
.
appendTo
!=
"parent"
?
n
.
appendTo
:
this
.
currentItem
[
0
].
parentNode
)[
0
].
appendChild
(
r
[
0
]),
r
[
0
]
==
this
.
currentItem
[
0
]
&&
(
this
.
_storedCSS
=
{
width
:
this
.
currentItem
[
0
].
style
.
width
,
height
:
this
.
currentItem
[
0
].
style
.
height
,
position
:
this
.
currentItem
.
css
(
"position"
),
top
:
this
.
currentItem
.
css
(
"top"
),
left
:
this
.
currentItem
.
css
(
"left"
)}),(
r
[
0
].
style
.
width
==
""
||
n
.
forceHelperSize
)
&&
r
.
width
(
this
.
currentItem
.
width
()),(
r
[
0
].
style
.
height
==
""
||
n
.
forceHelperSize
)
&&
r
.
height
(
this
.
currentItem
.
height
()),
r
},
_adjustOffsetFromHelper
:
function
(
t
){
typeof
t
==
"string"
&&
(
t
=
t
.
split
(
" "
)),
e
.
isArray
(
t
)
&&
(
t
=
{
left
:+
t
[
0
],
top
:+
t
[
1
]
||
0
}),
"left"
in
t
&&
(
this
.
offset
.
click
.
left
=
t
.
left
+
this
.
margins
.
left
),
"right"
in
t
&&
(
this
.
offset
.
click
.
left
=
this
.
helperProportions
.
width
-
t
.
right
+
this
.
margins
.
left
),
"top"
in
t
&&
(
this
.
offset
.
click
.
top
=
t
.
top
+
this
.
margins
.
top
),
"bottom"
in
t
&&
(
this
.
offset
.
click
.
top
=
this
.
helperProportions
.
height
-
t
.
bottom
+
this
.
margins
.
top
)},
_getParentOffset
:
function
(){
this
.
offsetParent
=
this
.
helper
.
offsetParent
();
var
t
=
this
.
offsetParent
.
offset
();
this
.
cssPosition
==
"absolute"
&&
this
.
scrollParent
[
0
]
!=
document
&&
e
.
contains
(
this
.
scrollParent
[
0
],
this
.
offsetParent
[
0
])
&&
(
t
.
left
+=
this
.
scrollParent
.
scrollLeft
(),
t
.
top
+=
this
.
scrollParent
.
scrollTop
());
if
(
this
.
offsetParent
[
0
]
==
document
.
body
||
this
.
offsetParent
[
0
].
tagName
&&
this
.
offsetParent
[
0
].
tagName
.
toLowerCase
()
==
"html"
&&
e
.
ui
.
ie
)
t
=
{
top
:
0
,
left
:
0
};
return
{
top
:
t
.
top
+
(
parseInt
(
this
.
offsetParent
.
css
(
"borderTopWidth"
),
10
)
||
0
),
left
:
t
.
left
+
(
parseInt
(
this
.
offsetParent
.
css
(
"borderLeftWidth"
),
10
)
||
0
)}},
_getRelativeOffset
:
function
(){
if
(
this
.
cssPosition
==
"relative"
){
var
e
=
this
.
currentItem
.
position
();
return
{
top
:
e
.
top
-
(
parseInt
(
this
.
helper
.
css
(
"top"
),
10
)
||
0
)
+
this
.
scrollParent
.
scrollTop
(),
left
:
e
.
left
-
(
parseInt
(
this
.
helper
.
css
(
"left"
),
10
)
||
0
)
+
this
.
scrollParent
.
scrollLeft
()}}
return
{
top
:
0
,
left
:
0
}},
_cacheMargins
:
function
(){
this
.
margins
=
{
left
:
parseInt
(
this
.
currentItem
.
css
(
"marginLeft"
),
10
)
||
0
,
top
:
parseInt
(
this
.
currentItem
.
css
(
"marginTop"
),
10
)
||
0
}},
_cacheHelperProportions
:
function
(){
this
.
helperProportions
=
{
width
:
this
.
helper
.
outerWidth
(),
height
:
this
.
helper
.
outerHeight
()}},
_setContainment
:
function
(){
var
t
=
this
.
options
;
t
.
containment
==
"parent"
&&
(
t
.
containment
=
this
.
helper
[
0
].
parentNode
);
if
(
t
.
containment
==
"document"
||
t
.
containment
==
"window"
)
this
.
containment
=
[
0
-
this
.
offset
.
relative
.
left
-
this
.
offset
.
parent
.
left
,
0
-
this
.
offset
.
relative
.
top
-
this
.
offset
.
parent
.
top
,
e
(
t
.
containment
==
"document"
?
document
:
window
).
width
()
-
this
.
helperProportions
.
width
-
this
.
margins
.
left
,(
e
(
t
.
containment
==
"document"
?
document
:
window
).
height
()
||
document
.
body
.
parentNode
.
scrollHeight
)
-
this
.
helperProportions
.
height
-
this
.
margins
.
top
];
if
(
!
/^(document|window|parent)$/
.
test
(
t
.
containment
)){
var
n
=
e
(
t
.
containment
)[
0
],
r
=
e
(
t
.
containment
).
offset
(),
i
=
e
(
n
).
css
(
"overflow"
)
!=
"hidden"
;
this
.
containment
=
[
r
.
left
+
(
parseInt
(
e
(
n
).
css
(
"borderLeftWidth"
),
10
)
||
0
)
+
(
parseInt
(
e
(
n
).
css
(
"paddingLeft"
),
10
)
||
0
)
-
this
.
margins
.
left
,
r
.
top
+
(
parseInt
(
e
(
n
).
css
(
"borderTopWidth"
),
10
)
||
0
)
+
(
parseInt
(
e
(
n
).
css
(
"paddingTop"
),
10
)
||
0
)
-
this
.
margins
.
top
,
r
.
left
+
(
i
?
Math
.
max
(
n
.
scrollWidth
,
n
.
offsetWidth
)
:
n
.
offsetWidth
)
-
(
parseInt
(
e
(
n
).
css
(
"borderLeftWidth"
),
10
)
||
0
)
-
(
parseInt
(
e
(
n
).
css
(
"paddingRight"
),
10
)
||
0
)
-
this
.
helperProportions
.
width
-
this
.
margins
.
left
,
r
.
top
+
(
i
?
Math
.
max
(
n
.
scrollHeight
,
n
.
offsetHeight
)
:
n
.
offsetHeight
)
-
(
parseInt
(
e
(
n
).
css
(
"borderTopWidth"
),
10
)
||
0
)
-
(
parseInt
(
e
(
n
).
css
(
"paddingBottom"
),
10
)
||
0
)
-
this
.
helperProportions
.
height
-
this
.
margins
.
top
]}},
_convertPositionTo
:
function
(
t
,
n
){
n
||
(
n
=
this
.
position
);
var
r
=
t
==
"absolute"
?
1
:-
1
,
i
=
this
.
options
,
s
=
this
.
cssPosition
!=
"absolute"
||
this
.
scrollParent
[
0
]
!=
document
&&!!
e
.
contains
(
this
.
scrollParent
[
0
],
this
.
offsetParent
[
0
])
?
this
.
scrollParent
:
this
.
offsetParent
,
o
=
/(html|body)/i
.
test
(
s
[
0
].
tagName
);
return
{
top
:
n
.
top
+
this
.
offset
.
relative
.
top
*
r
+
this
.
offset
.
parent
.
top
*
r
-
(
this
.
cssPosition
==
"fixed"
?-
this
.
scrollParent
.
scrollTop
()
:
o
?
0
:
s
.
scrollTop
())
*
r
,
left
:
n
.
left
+
this
.
offset
.
relative
.
left
*
r
+
this
.
offset
.
parent
.
left
*
r
-
(
this
.
cssPosition
==
"fixed"
?-
this
.
scrollParent
.
scrollLeft
()
:
o
?
0
:
s
.
scrollLeft
())
*
r
}},
_generatePosition
:
function
(
t
){
var
n
=
this
.
options
,
r
=
this
.
cssPosition
!=
"absolute"
||
this
.
scrollParent
[
0
]
!=
document
&&!!
e
.
contains
(
this
.
scrollParent
[
0
],
this
.
offsetParent
[
0
])
?
this
.
scrollParent
:
this
.
offsetParent
,
i
=
/(html|body)/i
.
test
(
r
[
0
].
tagName
);
this
.
cssPosition
==
"relative"
&&
(
this
.
scrollParent
[
0
]
==
document
||
this
.
scrollParent
[
0
]
==
this
.
offsetParent
[
0
])
&&
(
this
.
offset
.
relative
=
this
.
_getRelativeOffset
());
var
s
=
t
.
pageX
,
o
=
t
.
pageY
;
if
(
this
.
originalPosition
){
this
.
containment
&&
(
t
.
pageX
-
this
.
offset
.
click
.
left
<
this
.
containment
[
0
]
&&
(
s
=
this
.
containment
[
0
]
+
this
.
offset
.
click
.
left
),
t
.
pageY
-
this
.
offset
.
click
.
top
<
this
.
containment
[
1
]
&&
(
o
=
this
.
containment
[
1
]
+
this
.
offset
.
click
.
top
),
t
.
pageX
-
this
.
offset
.
click
.
left
>
this
.
containment
[
2
]
&&
(
s
=
this
.
containment
[
2
]
+
this
.
offset
.
click
.
left
),
t
.
pageY
-
this
.
offset
.
click
.
top
>
this
.
containment
[
3
]
&&
(
o
=
this
.
containment
[
3
]
+
this
.
offset
.
click
.
top
));
if
(
n
.
grid
){
var
u
=
this
.
originalPageY
+
Math
.
round
((
o
-
this
.
originalPageY
)
/
n
.
grid
[
1
])
*
n
.
grid
[
1
];
o
=
this
.
containment
?
u
-
this
.
offset
.
click
.
top
<
this
.
containment
[
1
]
||
u
-
this
.
offset
.
click
.
top
>
this
.
containment
[
3
]
?
u
-
this
.
offset
.
click
.
top
<
this
.
containment
[
1
]
?
u
+
n
.
grid
[
1
]
:
u
-
n
.
grid
[
1
]
:
u
:
u
;
var
a
=
this
.
originalPageX
+
Math
.
round
((
s
-
this
.
originalPageX
)
/
n
.
grid
[
0
])
*
n
.
grid
[
0
];
s
=
this
.
containment
?
a
-
this
.
offset
.
click
.
left
<
this
.
containment
[
0
]
||
a
-
this
.
offset
.
click
.
left
>
this
.
containment
[
2
]
?
a
-
this
.
offset
.
click
.
left
<
this
.
containment
[
0
]
?
a
+
n
.
grid
[
0
]
:
a
-
n
.
grid
[
0
]
:
a
:
a
}}
return
{
top
:
o
-
this
.
offset
.
click
.
top
-
this
.
offset
.
relative
.
top
-
this
.
offset
.
parent
.
top
+
(
this
.
cssPosition
==
"fixed"
?-
this
.
scrollParent
.
scrollTop
()
:
i
?
0
:
r
.
scrollTop
()),
left
:
s
-
this
.
offset
.
click
.
left
-
this
.
offset
.
relative
.
left
-
this
.
offset
.
parent
.
left
+
(
this
.
cssPosition
==
"fixed"
?-
this
.
scrollParent
.
scrollLeft
()
:
i
?
0
:
r
.
scrollLeft
())}},
_rearrange
:
function
(
e
,
t
,
n
,
r
){
n
?
n
[
0
].
appendChild
(
this
.
placeholder
[
0
])
:
t
.
item
[
0
].
parentNode
.
insertBefore
(
this
.
placeholder
[
0
],
this
.
direction
==
"down"
?
t
.
item
[
0
]
:
t
.
item
[
0
].
nextSibling
),
this
.
counter
=
this
.
counter
?++
this
.
counter
:
1
;
var
i
=
this
.
counter
;
this
.
_delay
(
function
(){
i
==
this
.
counter
&&
this
.
refreshPositions
(
!
r
)})},
_clear
:
function
(
t
,
n
){
this
.
reverting
=!
1
;
var
r
=
[];
!
this
.
_noFinalSort
&&
this
.
currentItem
.
parent
().
length
&&
this
.
placeholder
.
before
(
this
.
currentItem
),
this
.
_noFinalSort
=
null
;
if
(
this
.
helper
[
0
]
==
this
.
currentItem
[
0
]){
for
(
var
i
in
this
.
_storedCSS
)
if
(
this
.
_storedCSS
[
i
]
==
"auto"
||
this
.
_storedCSS
[
i
]
==
"static"
)
this
.
_storedCSS
[
i
]
=
""
;
this
.
currentItem
.
css
(
this
.
_storedCSS
).
removeClass
(
"ui-sortable-helper"
)}
else
this
.
currentItem
.
show
();
this
.
fromOutside
&&!
n
&&
r
.
push
(
function
(
e
){
this
.
_trigger
(
"receive"
,
e
,
this
.
_uiHash
(
this
.
fromOutside
))}),(
this
.
fromOutside
||
this
.
domPosition
.
prev
!=
this
.
currentItem
.
prev
().
not
(
".ui-sortable-helper"
)[
0
]
||
this
.
domPosition
.
parent
!=
this
.
currentItem
.
parent
()[
0
])
&&!
n
&&
r
.
push
(
function
(
e
){
this
.
_trigger
(
"update"
,
e
,
this
.
_uiHash
())}),
this
!==
this
.
currentContainer
&&
(
n
||
(
r
.
push
(
function
(
e
){
this
.
_trigger
(
"remove"
,
e
,
this
.
_uiHash
())}),
r
.
push
(
function
(
e
){
return
function
(
t
){
e
.
_trigger
(
"receive"
,
t
,
this
.
_uiHash
(
this
))}}.
call
(
this
,
this
.
currentContainer
)),
r
.
push
(
function
(
e
){
return
function
(
t
){
e
.
_trigger
(
"update"
,
t
,
this
.
_uiHash
(
this
))}}.
call
(
this
,
this
.
currentContainer
))));
for
(
var
i
=
this
.
containers
.
length
-
1
;
i
>=
0
;
i
--
)
n
||
r
.
push
(
function
(
e
){
return
function
(
t
){
e
.
_trigger
(
"deactivate"
,
t
,
this
.
_uiHash
(
this
))}}.
call
(
this
,
this
.
containers
[
i
])),
this
.
containers
[
i
].
containerCache
.
over
&&
(
r
.
push
(
function
(
e
){
return
function
(
t
){
e
.
_trigger
(
"out"
,
t
,
this
.
_uiHash
(
this
))}}.
call
(
this
,
this
.
containers
[
i
])),
this
.
containers
[
i
].
containerCache
.
over
=
0
);
this
.
_storedCursor
&&
e
(
"body"
).
css
(
"cursor"
,
this
.
_storedCursor
),
this
.
_storedOpacity
&&
this
.
helper
.
css
(
"opacity"
,
this
.
_storedOpacity
),
this
.
_storedZIndex
&&
this
.
helper
.
css
(
"zIndex"
,
this
.
_storedZIndex
==
"auto"
?
""
:
this
.
_storedZIndex
),
this
.
dragging
=!
1
;
if
(
this
.
cancelHelperRemoval
){
if
(
!
n
){
this
.
_trigger
(
"beforeStop"
,
t
,
this
.
_uiHash
());
for
(
var
i
=
0
;
i
<
r
.
length
;
i
++
)
r
[
i
].
call
(
this
,
t
);
this
.
_trigger
(
"stop"
,
t
,
this
.
_uiHash
())}
return
this
.
fromOutside
=!
1
,
!
1
}
n
||
this
.
_trigger
(
"beforeStop"
,
t
,
this
.
_uiHash
()),
this
.
placeholder
[
0
].
parentNode
.
removeChild
(
this
.
placeholder
[
0
]),
this
.
helper
[
0
]
!=
this
.
currentItem
[
0
]
&&
this
.
helper
.
remove
(),
this
.
helper
=
null
;
if
(
!
n
){
for
(
var
i
=
0
;
i
<
r
.
length
;
i
++
)
r
[
i
].
call
(
this
,
t
);
this
.
_trigger
(
"stop"
,
t
,
this
.
_uiHash
())}
return
this
.
fromOutside
=!
1
,
!
0
},
_trigger
:
function
(){
e
.
Widget
.
prototype
.
_trigger
.
apply
(
this
,
arguments
)
===!
1
&&
this
.
cancel
()},
_uiHash
:
function
(
t
){
var
n
=
t
||
this
;
return
{
helper
:
n
.
helper
,
placeholder
:
n
.
placeholder
||
e
([]),
position
:
n
.
position
,
originalPosition
:
n
.
originalPosition
,
offset
:
n
.
positionAbs
,
item
:
n
.
currentItem
,
sender
:
t
?
t
.
element
:
null
}}})})(
jQuery
);(
function
(
e
){
function
t
(
e
){
return
function
(){
var
t
=
this
.
element
.
val
();
e
.
apply
(
this
,
arguments
),
this
.
_refresh
(),
t
!==
this
.
element
.
val
()
&&
this
.
_trigger
(
"change"
)}}
e
.
widget
(
"ui.spinner"
,{
version
:
"1.9.1"
,
defaultElement
:
"<input>"
,
widgetEventPrefix
:
"spin"
,
options
:
{
culture
:
null
,
icons
:
{
down
:
"ui-icon-triangle-1-s"
,
up
:
"ui-icon-triangle-1-n"
},
incremental
:!
0
,
max
:
null
,
min
:
null
,
numberFormat
:
null
,
page
:
10
,
step
:
1
,
change
:
null
,
spin
:
null
,
start
:
null
,
stop
:
null
},
_create
:
function
(){
this
.
_setOption
(
"max"
,
this
.
options
.
max
),
this
.
_setOption
(
"min"
,
this
.
options
.
min
),
this
.
_setOption
(
"step"
,
this
.
options
.
step
),
this
.
_value
(
this
.
element
.
val
(),
!
0
),
this
.
_draw
(),
this
.
_on
(
this
.
_events
),
this
.
_refresh
(),
this
.
_on
(
this
.
window
,{
beforeunload
:
function
(){
this
.
element
.
removeAttr
(
"autocomplete"
)}})},
_getCreateOptions
:
function
(){
var
t
=
{},
n
=
this
.
element
;
return
e
.
each
([
"min"
,
"max"
,
"step"
],
function
(
e
,
r
){
var
i
=
n
.
attr
(
r
);
i
!==
undefined
&&
i
.
length
&&
(
t
[
r
]
=
i
)}),
t
},
_events
:
{
keydown
:
function
(
e
){
this
.
_start
(
e
)
&&
this
.
_keydown
(
e
)
&&
e
.
preventDefault
()},
keyup
:
"_stop"
,
focus
:
function
(){
this
.
previous
=
this
.
element
.
val
()},
blur
:
function
(
e
){
if
(
this
.
cancelBlur
){
delete
this
.
cancelBlur
;
return
}
this
.
_refresh
(),
this
.
previous
!==
this
.
element
.
val
()
&&
this
.
_trigger
(
"change"
,
e
)},
mousewheel
:
function
(
e
,
t
){
if
(
!
t
)
return
;
if
(
!
this
.
spinning
&&!
this
.
_start
(
e
))
return
!
1
;
this
.
_spin
((
t
>
0
?
1
:-
1
)
*
this
.
options
.
step
,
e
),
clearTimeout
(
this
.
mousewheelTimer
),
this
.
mousewheelTimer
=
this
.
_delay
(
function
(){
this
.
spinning
&&
this
.
_stop
(
e
)},
100
),
e
.
preventDefault
()},
"mousedown .ui-spinner-button"
:
function
(
t
){
function
r
(){
var
e
=
this
.
element
[
0
]
===
this
.
document
[
0
].
activeElement
;
e
||
(
this
.
element
.
focus
(),
this
.
previous
=
n
,
this
.
_delay
(
function
(){
this
.
previous
=
n
}))}
var
n
;
n
=
this
.
element
[
0
]
===
this
.
document
[
0
].
activeElement
?
this
.
previous
:
this
.
element
.
val
(),
t
.
preventDefault
(),
r
.
call
(
this
),
this
.
cancelBlur
=!
0
,
this
.
_delay
(
function
(){
delete
this
.
cancelBlur
,
r
.
call
(
this
)});
if
(
this
.
_start
(
t
)
===!
1
)
return
;
this
.
_repeat
(
null
,
e
(
t
.
currentTarget
).
hasClass
(
"ui-spinner-up"
)
?
1
:-
1
,
t
)},
"mouseup .ui-spinner-button"
:
"_stop"
,
"mouseenter .ui-spinner-button"
:
function
(
t
){
if
(
!
e
(
t
.
currentTarget
).
hasClass
(
"ui-state-active"
))
return
;
if
(
this
.
_start
(
t
)
===!
1
)
return
!
1
;
this
.
_repeat
(
null
,
e
(
t
.
currentTarget
).
hasClass
(
"ui-spinner-up"
)
?
1
:-
1
,
t
)},
"mouseleave .ui-spinner-button"
:
"_stop"
},
_draw
:
function
(){
var
e
=
this
.
uiSpinner
=
this
.
element
.
addClass
(
"ui-spinner-input"
).
attr
(
"autocomplete"
,
"off"
).
wrap
(
this
.
_uiSpinnerHtml
()).
parent
().
append
(
this
.
_buttonHtml
());
this
.
element
.
attr
(
"role"
,
"spinbutton"
),
this
.
buttons
=
e
.
find
(
".ui-spinner-button"
).
attr
(
"tabIndex"
,
-
1
).
button
().
removeClass
(
"ui-corner-all"
),
this
.
buttons
.
height
()
>
Math
.
ceil
(
e
.
height
()
*
.5
)
&&
e
.
height
()
>
0
&&
e
.
height
(
e
.
height
()),
this
.
options
.
disabled
&&
this
.
disable
()},
_keydown
:
function
(
t
){
var
n
=
this
.
options
,
r
=
e
.
ui
.
keyCode
;
switch
(
t
.
keyCode
){
case
r
.
UP
:
return
this
.
_repeat
(
null
,
1
,
t
),
!
0
;
case
r
.
DOWN
:
return
this
.
_repeat
(
null
,
-
1
,
t
),
!
0
;
case
r
.
PAGE_UP
:
return
this
.
_repeat
(
null
,
n
.
page
,
t
),
!
0
;
case
r
.
PAGE_DOWN
:
return
this
.
_repeat
(
null
,
-
n
.
page
,
t
),
!
0
}
return
!
1
},
_uiSpinnerHtml
:
function
(){
return
"<span class='ui-spinner ui-widget ui-widget-content ui-corner-all'></span>"
},
_buttonHtml
:
function
(){
return
"<a class='ui-spinner-button ui-spinner-up ui-corner-tr'><span class='ui-icon "
+
this
.
options
.
icons
.
up
+
"'>▲</span>"
+
"</a>"
+
"<a class='ui-spinner-button ui-spinner-down ui-corner-br'>"
+
"<span class='ui-icon "
+
this
.
options
.
icons
.
down
+
"'>▼</span>"
+
"</a>"
},
_start
:
function
(
e
){
return
!
this
.
spinning
&&
this
.
_trigger
(
"start"
,
e
)
===!
1
?!
1
:
(
this
.
counter
||
(
this
.
counter
=
1
),
this
.
spinning
=!
0
,
!
0
)},
_repeat
:
function
(
e
,
t
,
n
){
e
=
e
||
500
,
clearTimeout
(
this
.
timer
),
this
.
timer
=
this
.
_delay
(
function
(){
this
.
_repeat
(
40
,
t
,
n
)},
e
),
this
.
_spin
(
t
*
this
.
options
.
step
,
n
)},
_spin
:
function
(
e
,
t
){
var
n
=
this
.
value
()
||
0
;
this
.
counter
||
(
this
.
counter
=
1
),
n
=
this
.
_adjustValue
(
n
+
e
*
this
.
_increment
(
this
.
counter
));
if
(
!
this
.
spinning
||
this
.
_trigger
(
"spin"
,
t
,{
value
:
n
})
!==!
1
)
this
.
_value
(
n
),
this
.
counter
++
},
_increment
:
function
(
t
){
var
n
=
this
.
options
.
incremental
;
return
n
?
e
.
isFunction
(
n
)
?
n
(
t
)
:
Math
.
floor
(
t
*
t
*
t
/
5e4
-
t
*
t
/
500
+
17
*
t
/
200
+
1
)
:
1
},
_precision
:
function
(){
var
e
=
this
.
_precisionOf
(
this
.
options
.
step
);
return
this
.
options
.
min
!==
null
&&
(
e
=
Math
.
max
(
e
,
this
.
_precisionOf
(
this
.
options
.
min
))),
e
},
_precisionOf
:
function
(
e
){
var
t
=
e
.
toString
(),
n
=
t
.
indexOf
(
"."
);
return
n
===-
1
?
0
:
t
.
length
-
n
-
1
},
_adjustValue
:
function
(
e
){
var
t
,
n
,
r
=
this
.
options
;
return
t
=
r
.
min
!==
null
?
r
.
min
:
0
,
n
=
e
-
t
,
n
=
Math
.
round
(
n
/
r
.
step
)
*
r
.
step
,
e
=
t
+
n
,
e
=
parseFloat
(
e
.
toFixed
(
this
.
_precision
())),
r
.
max
!==
null
&&
e
>
r
.
max
?
r
.
max
:
r
.
min
!==
null
&&
e
<
r
.
min
?
r
.
min
:
e
},
_stop
:
function
(
e
){
if
(
!
this
.
spinning
)
return
;
clearTimeout
(
this
.
timer
),
clearTimeout
(
this
.
mousewheelTimer
),
this
.
counter
=
0
,
this
.
spinning
=!
1
,
this
.
_trigger
(
"stop"
,
e
)},
_setOption
:
function
(
e
,
t
){
if
(
e
===
"culture"
||
e
===
"numberFormat"
){
var
n
=
this
.
_parse
(
this
.
element
.
val
());
this
.
options
[
e
]
=
t
,
this
.
element
.
val
(
this
.
_format
(
n
));
return
}(
e
===
"max"
||
e
===
"min"
||
e
===
"step"
)
&&
typeof
t
==
"string"
&&
(
t
=
this
.
_parse
(
t
)),
this
.
_super
(
e
,
t
),
e
===
"disabled"
&&
(
t
?
(
this
.
element
.
prop
(
"disabled"
,
!
0
),
this
.
buttons
.
button
(
"disable"
))
:
(
this
.
element
.
prop
(
"disabled"
,
!
1
),
this
.
buttons
.
button
(
"enable"
)))},
_setOptions
:
t
(
function
(
e
){
this
.
_super
(
e
),
this
.
_value
(
this
.
element
.
val
())}),
_parse
:
function
(
e
){
return
typeof
e
==
"string"
&&
e
!==
""
&&
(
e
=
window
.
Globalize
&&
this
.
options
.
numberFormat
?
Globalize
.
parseFloat
(
e
,
10
,
this
.
options
.
culture
)
:+
e
),
e
===
""
||
isNaN
(
e
)
?
null
:
e
},
_format
:
function
(
e
){
return
e
===
""
?
""
:
window
.
Globalize
&&
this
.
options
.
numberFormat
?
Globalize
.
format
(
e
,
this
.
options
.
numberFormat
,
this
.
options
.
culture
)
:
e
},
_refresh
:
function
(){
this
.
element
.
attr
({
"aria-valuemin"
:
this
.
options
.
min
,
"aria-valuemax"
:
this
.
options
.
max
,
"aria-valuenow"
:
this
.
_parse
(
this
.
element
.
val
())})},
_value
:
function
(
e
,
t
){
var
n
;
e
!==
""
&&
(
n
=
this
.
_parse
(
e
),
n
!==
null
&&
(
t
||
(
n
=
this
.
_adjustValue
(
n
)),
e
=
this
.
_format
(
n
))),
this
.
element
.
val
(
e
),
this
.
_refresh
()},
_destroy
:
function
(){
this
.
element
.
removeClass
(
"ui-spinner-input"
).
prop
(
"disabled"
,
!
1
).
removeAttr
(
"autocomplete"
).
removeAttr
(
"role"
).
removeAttr
(
"aria-valuemin"
).
removeAttr
(
"aria-valuemax"
).
removeAttr
(
"aria-valuenow"
),
this
.
uiSpinner
.
replaceWith
(
this
.
element
)},
stepUp
:
t
(
function
(
e
){
this
.
_stepUp
(
e
)}),
_stepUp
:
function
(
e
){
this
.
_spin
((
e
||
1
)
*
this
.
options
.
step
)},
stepDown
:
t
(
function
(
e
){
this
.
_stepDown
(
e
)}),
_stepDown
:
function
(
e
){
this
.
_spin
((
e
||
1
)
*-
this
.
options
.
step
)},
pageUp
:
t
(
function
(
e
){
this
.
_stepUp
((
e
||
1
)
*
this
.
options
.
page
)}),
pageDown
:
t
(
function
(
e
){
this
.
_stepDown
((
e
||
1
)
*
this
.
options
.
page
)}),
value
:
function
(
e
){
if
(
!
arguments
.
length
)
return
this
.
_parse
(
this
.
element
.
val
());
t
(
this
.
_value
).
call
(
this
,
e
)},
widget
:
function
(){
return
this
.
uiSpinner
}})})(
jQuery
);(
function
(
e
,
t
){
function
i
(){
return
++
n
}
function
s
(
e
){
return
e
.
hash
.
length
>
1
&&
e
.
href
.
replace
(
r
,
""
)
===
location
.
href
.
replace
(
r
,
""
)}
var
n
=
0
,
r
=
/#.*$/
;
e
.
widget
(
"ui.tabs"
,{
version
:
"1.9.1"
,
delay
:
300
,
options
:
{
active
:
null
,
collapsible
:!
1
,
event
:
"click"
,
heightStyle
:
"content"
,
hide
:
null
,
show
:
null
,
activate
:
null
,
beforeActivate
:
null
,
beforeLoad
:
null
,
load
:
null
},
_create
:
function
(){
var
t
=
this
,
n
=
this
.
options
,
r
=
n
.
active
,
i
=
location
.
hash
.
substring
(
1
);
this
.
running
=!
1
,
this
.
element
.
addClass
(
"ui-tabs ui-widget ui-widget-content ui-corner-all"
).
toggleClass
(
"ui-tabs-collapsible"
,
n
.
collapsible
).
delegate
(
".ui-tabs-nav > li"
,
"mousedown"
+
this
.
eventNamespace
,
function
(
t
){
e
(
this
).
is
(
".ui-state-disabled"
)
&&
t
.
preventDefault
()}).
delegate
(
".ui-tabs-anchor"
,
"focus"
+
this
.
eventNamespace
,
function
(){
e
(
this
).
closest
(
"li"
).
is
(
".ui-state-disabled"
)
&&
this
.
blur
()}),
this
.
_processTabs
();
if
(
r
===
null
){
i
&&
this
.
tabs
.
each
(
function
(
t
,
n
){
if
(
e
(
n
).
attr
(
"aria-controls"
)
===
i
)
return
r
=
t
,
!
1
}),
r
===
null
&&
(
r
=
this
.
tabs
.
index
(
this
.
tabs
.
filter
(
".ui-tabs-active"
)));
if
(
r
===
null
||
r
===-
1
)
r
=
this
.
tabs
.
length
?
0
:!
1
}
r
!==!
1
&&
(
r
=
this
.
tabs
.
index
(
this
.
tabs
.
eq
(
r
)),
r
===-
1
&&
(
r
=
n
.
collapsible
?!
1
:
0
)),
n
.
active
=
r
,
!
n
.
collapsible
&&
n
.
active
===!
1
&&
this
.
anchors
.
length
&&
(
n
.
active
=
0
),
e
.
isArray
(
n
.
disabled
)
&&
(
n
.
disabled
=
e
.
unique
(
n
.
disabled
.
concat
(
e
.
map
(
this
.
tabs
.
filter
(
".ui-state-disabled"
),
function
(
e
){
return
t
.
tabs
.
index
(
e
)}))).
sort
()),
this
.
options
.
active
!==!
1
&&
this
.
anchors
.
length
?
this
.
active
=
this
.
_findActive
(
this
.
options
.
active
)
:
this
.
active
=
e
(),
this
.
_refresh
(),
this
.
active
.
length
&&
this
.
load
(
n
.
active
)},
_getCreateEventData
:
function
(){
return
{
tab
:
this
.
active
,
panel
:
this
.
active
.
length
?
this
.
_getPanelForTab
(
this
.
active
)
:
e
()}},
_tabKeydown
:
function
(
t
){
var
n
=
e
(
this
.
document
[
0
].
activeElement
).
closest
(
"li"
),
r
=
this
.
tabs
.
index
(
n
),
i
=!
0
;
if
(
this
.
_handlePageNav
(
t
))
return
;
switch
(
t
.
keyCode
){
case
e
.
ui
.
keyCode
.
RIGHT
:
case
e
.
ui
.
keyCode
.
DOWN
:
r
++
;
break
;
case
e
.
ui
.
keyCode
.
UP
:
case
e
.
ui
.
keyCode
.
LEFT
:
i
=!
1
,
r
--
;
break
;
case
e
.
ui
.
keyCode
.
END
:
r
=
this
.
anchors
.
length
-
1
;
break
;
case
e
.
ui
.
keyCode
.
HOME
:
r
=
0
;
break
;
case
e
.
ui
.
keyCode
.
SPACE
:
t
.
preventDefault
(),
clearTimeout
(
this
.
activating
),
this
.
_activate
(
r
);
return
;
case
e
.
ui
.
keyCode
.
ENTER
:
t
.
preventDefault
(),
clearTimeout
(
this
.
activating
),
this
.
_activate
(
r
===
this
.
options
.
active
?!
1
:
r
);
return
;
default
:
return
}
t
.
preventDefault
(),
clearTimeout
(
this
.
activating
),
r
=
this
.
_focusNextTab
(
r
,
i
),
t
.
ctrlKey
||
(
n
.
attr
(
"aria-selected"
,
"false"
),
this
.
tabs
.
eq
(
r
).
attr
(
"aria-selected"
,
"true"
),
this
.
activating
=
this
.
_delay
(
function
(){
this
.
option
(
"active"
,
r
)},
this
.
delay
))},
_panelKeydown
:
function
(
t
){
if
(
this
.
_handlePageNav
(
t
))
return
;
t
.
ctrlKey
&&
t
.
keyCode
===
e
.
ui
.
keyCode
.
UP
&&
(
t
.
preventDefault
(),
this
.
active
.
focus
())},
_handlePageNav
:
function
(
t
){
if
(
t
.
altKey
&&
t
.
keyCode
===
e
.
ui
.
keyCode
.
PAGE_UP
)
return
this
.
_activate
(
this
.
_focusNextTab
(
this
.
options
.
active
-
1
,
!
1
)),
!
0
;
if
(
t
.
altKey
&&
t
.
keyCode
===
e
.
ui
.
keyCode
.
PAGE_DOWN
)
return
this
.
_activate
(
this
.
_focusNextTab
(
this
.
options
.
active
+
1
,
!
0
)),
!
0
},
_findNextTab
:
function
(
t
,
n
){
function
i
(){
return
t
>
r
&&
(
t
=
0
),
t
<
0
&&
(
t
=
r
),
t
}
var
r
=
this
.
tabs
.
length
-
1
;
while
(
e
.
inArray
(
i
(),
this
.
options
.
disabled
)
!==-
1
)
t
=
n
?
t
+
1
:
t
-
1
;
return
t
},
_focusNextTab
:
function
(
e
,
t
){
return
e
=
this
.
_findNextTab
(
e
,
t
),
this
.
tabs
.
eq
(
e
).
focus
(),
e
},
_setOption
:
function
(
e
,
t
){
if
(
e
===
"active"
){
this
.
_activate
(
t
);
return
}
if
(
e
===
"disabled"
){
this
.
_setupDisabled
(
t
);
return
}
this
.
_super
(
e
,
t
),
e
===
"collapsible"
&&
(
this
.
element
.
toggleClass
(
"ui-tabs-collapsible"
,
t
),
!
t
&&
this
.
options
.
active
===!
1
&&
this
.
_activate
(
0
)),
e
===
"event"
&&
this
.
_setupEvents
(
t
),
e
===
"heightStyle"
&&
this
.
_setupHeightStyle
(
t
)},
_tabId
:
function
(
e
){
return
e
.
attr
(
"aria-controls"
)
||
"ui-tabs-"
+
i
()},
_sanitizeSelector
:
function
(
e
){
return
e
?
e
.
replace
(
/[!"$%&'()*+,.\/:;<=>?@\[\]\^`{|}~]/g
,
"\\$&"
)
:
""
},
refresh
:
function
(){
var
t
=
this
.
options
,
n
=
this
.
tablist
.
children
(
":has(a[href])"
);
t
.
disabled
=
e
.
map
(
n
.
filter
(
".ui-state-disabled"
),
function
(
e
){
return
n
.
index
(
e
)}),
this
.
_processTabs
(),
t
.
active
===!
1
||!
this
.
anchors
.
length
?
(
t
.
active
=!
1
,
this
.
active
=
e
())
:
this
.
active
.
length
&&!
e
.
contains
(
this
.
tablist
[
0
],
this
.
active
[
0
])
?
this
.
tabs
.
length
===
t
.
disabled
.
length
?
(
t
.
active
=!
1
,
this
.
active
=
e
())
:
this
.
_activate
(
this
.
_findNextTab
(
Math
.
max
(
0
,
t
.
active
-
1
),
!
1
))
:
t
.
active
=
this
.
tabs
.
index
(
this
.
active
),
this
.
_refresh
()},
_refresh
:
function
(){
this
.
_setupDisabled
(
this
.
options
.
disabled
),
this
.
_setupEvents
(
this
.
options
.
event
),
this
.
_setupHeightStyle
(
this
.
options
.
heightStyle
),
this
.
tabs
.
not
(
this
.
active
).
attr
({
"aria-selected"
:
"false"
,
tabIndex
:-
1
}),
this
.
panels
.
not
(
this
.
_getPanelForTab
(
this
.
active
)).
hide
().
attr
({
"aria-expanded"
:
"false"
,
"aria-hidden"
:
"true"
}),
this
.
active
.
length
?
(
this
.
active
.
addClass
(
"ui-tabs-active ui-state-active"
).
attr
({
"aria-selected"
:
"true"
,
tabIndex
:
0
}),
this
.
_getPanelForTab
(
this
.
active
).
show
().
attr
({
"aria-expanded"
:
"true"
,
"aria-hidden"
:
"false"
}))
:
this
.
tabs
.
eq
(
0
).
attr
(
"tabIndex"
,
0
)},
_processTabs
:
function
(){
var
t
=
this
;
this
.
tablist
=
this
.
_getList
().
addClass
(
"ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all"
).
attr
(
"role"
,
"tablist"
),
this
.
tabs
=
this
.
tablist
.
find
(
"> li:has(a[href])"
).
addClass
(
"ui-state-default ui-corner-top"
).
attr
({
role
:
"tab"
,
tabIndex
:-
1
}),
this
.
anchors
=
this
.
tabs
.
map
(
function
(){
return
e
(
"a"
,
this
)[
0
]}).
addClass
(
"ui-tabs-anchor"
).
attr
({
role
:
"presentation"
,
tabIndex
:-
1
}),
this
.
panels
=
e
(),
this
.
anchors
.
each
(
function
(
n
,
r
){
var
i
,
o
,
u
,
a
=
e
(
r
).
uniqueId
().
attr
(
"id"
),
f
=
e
(
r
).
closest
(
"li"
),
l
=
f
.
attr
(
"aria-controls"
);
s
(
r
)
?
(
i
=
r
.
hash
,
o
=
t
.
element
.
find
(
t
.
_sanitizeSelector
(
i
)))
:
(
u
=
t
.
_tabId
(
f
),
i
=
"#"
+
u
,
o
=
t
.
element
.
find
(
i
),
o
.
length
||
(
o
=
t
.
_createPanel
(
u
),
o
.
insertAfter
(
t
.
panels
[
n
-
1
]
||
t
.
tablist
)),
o
.
attr
(
"aria-live"
,
"polite"
)),
o
.
length
&&
(
t
.
panels
=
t
.
panels
.
add
(
o
)),
l
&&
f
.
data
(
"ui-tabs-aria-controls"
,
l
),
f
.
attr
({
"aria-controls"
:
i
.
substring
(
1
),
"aria-labelledby"
:
a
}),
o
.
attr
(
"aria-labelledby"
,
a
)}),
this
.
panels
.
addClass
(
"ui-tabs-panel ui-widget-content ui-corner-bottom"
).
attr
(
"role"
,
"tabpanel"
)},
_getList
:
function
(){
return
this
.
element
.
find
(
"ol,ul"
).
eq
(
0
)},
_createPanel
:
function
(
t
){
return
e
(
"<div>"
).
attr
(
"id"
,
t
).
addClass
(
"ui-tabs-panel ui-widget-content ui-corner-bottom"
).
data
(
"ui-tabs-destroy"
,
!
0
)},
_setupDisabled
:
function
(
t
){
e
.
isArray
(
t
)
&&
(
t
.
length
?
t
.
length
===
this
.
anchors
.
length
&&
(
t
=!
0
)
:
t
=!
1
);
for
(
var
n
=
0
,
r
;
r
=
this
.
tabs
[
n
];
n
++
)
t
===!
0
||
e
.
inArray
(
n
,
t
)
!==-
1
?
e
(
r
).
addClass
(
"ui-state-disabled"
).
attr
(
"aria-disabled"
,
"true"
)
:
e
(
r
).
removeClass
(
"ui-state-disabled"
).
removeAttr
(
"aria-disabled"
);
this
.
options
.
disabled
=
t
},
_setupEvents
:
function
(
t
){
var
n
=
{
click
:
function
(
e
){
e
.
preventDefault
()}};
t
&&
e
.
each
(
t
.
split
(
" "
),
function
(
e
,
t
){
n
[
t
]
=
"_eventHandler"
}),
this
.
_off
(
this
.
anchors
.
add
(
this
.
tabs
).
add
(
this
.
panels
)),
this
.
_on
(
this
.
anchors
,
n
),
this
.
_on
(
this
.
tabs
,{
keydown
:
"_tabKeydown"
}),
this
.
_on
(
this
.
panels
,{
keydown
:
"_panelKeydown"
}),
this
.
_focusable
(
this
.
tabs
),
this
.
_hoverable
(
this
.
tabs
)},
_setupHeightStyle
:
function
(
t
){
var
n
,
r
,
i
=
this
.
element
.
parent
();
t
===
"fill"
?
(
e
.
support
.
minHeight
||
(
r
=
i
.
css
(
"overflow"
),
i
.
css
(
"overflow"
,
"hidden"
)),
n
=
i
.
height
(),
this
.
element
.
siblings
(
":visible"
).
each
(
function
(){
var
t
=
e
(
this
),
r
=
t
.
css
(
"position"
);
if
(
r
===
"absolute"
||
r
===
"fixed"
)
return
;
n
-=
t
.
outerHeight
(
!
0
)}),
r
&&
i
.
css
(
"overflow"
,
r
),
this
.
element
.
children
().
not
(
this
.
panels
).
each
(
function
(){
n
-=
e
(
this
).
outerHeight
(
!
0
)}),
this
.
panels
.
each
(
function
(){
e
(
this
).
height
(
Math
.
max
(
0
,
n
-
e
(
this
).
innerHeight
()
+
e
(
this
).
height
()))}).
css
(
"overflow"
,
"auto"
))
:
t
===
"auto"
&&
(
n
=
0
,
this
.
panels
.
each
(
function
(){
n
=
Math
.
max
(
n
,
e
(
this
).
height
(
""
).
height
())}).
height
(
n
))},
_eventHandler
:
function
(
t
){
var
n
=
this
.
options
,
r
=
this
.
active
,
i
=
e
(
t
.
currentTarget
),
s
=
i
.
closest
(
"li"
),
o
=
s
[
0
]
===
r
[
0
],
u
=
o
&&
n
.
collapsible
,
a
=
u
?
e
()
:
this
.
_getPanelForTab
(
s
),
f
=
r
.
length
?
this
.
_getPanelForTab
(
r
)
:
e
(),
l
=
{
oldTab
:
r
,
oldPanel
:
f
,
newTab
:
u
?
e
()
:
s
,
newPanel
:
a
};
t
.
preventDefault
();
if
(
s
.
hasClass
(
"ui-state-disabled"
)
||
s
.
hasClass
(
"ui-tabs-loading"
)
||
this
.
running
||
o
&&!
n
.
collapsible
||
this
.
_trigger
(
"beforeActivate"
,
t
,
l
)
===!
1
)
return
;
n
.
active
=
u
?!
1
:
this
.
tabs
.
index
(
s
),
this
.
active
=
o
?
e
()
:
s
,
this
.
xhr
&&
this
.
xhr
.
abort
(),
!
f
.
length
&&!
a
.
length
&&
e
.
error
(
"jQuery UI Tabs: Mismatching fragment identifier."
),
a
.
length
&&
this
.
load
(
this
.
tabs
.
index
(
s
),
t
),
this
.
_toggle
(
t
,
l
)},
_toggle
:
function
(
t
,
n
){
function
o
(){
r
.
running
=!
1
,
r
.
_trigger
(
"activate"
,
t
,
n
)}
function
u
(){
n
.
newTab
.
closest
(
"li"
).
addClass
(
"ui-tabs-active ui-state-active"
),
i
.
length
&&
r
.
options
.
show
?
r
.
_show
(
i
,
r
.
options
.
show
,
o
)
:
(
i
.
show
(),
o
())}
var
r
=
this
,
i
=
n
.
newPanel
,
s
=
n
.
oldPanel
;
this
.
running
=!
0
,
s
.
length
&&
this
.
options
.
hide
?
this
.
_hide
(
s
,
this
.
options
.
hide
,
function
(){
n
.
oldTab
.
closest
(
"li"
).
removeClass
(
"ui-tabs-active ui-state-active"
),
u
()})
:
(
n
.
oldTab
.
closest
(
"li"
).
removeClass
(
"ui-tabs-active ui-state-active"
),
s
.
hide
(),
u
()),
s
.
attr
({
"aria-expanded"
:
"false"
,
"aria-hidden"
:
"true"
}),
n
.
oldTab
.
attr
(
"aria-selected"
,
"false"
),
i
.
length
&&
s
.
length
?
n
.
oldTab
.
attr
(
"tabIndex"
,
-
1
)
:
i
.
length
&&
this
.
tabs
.
filter
(
function
(){
return
e
(
this
).
attr
(
"tabIndex"
)
===
0
}).
attr
(
"tabIndex"
,
-
1
),
i
.
attr
({
"aria-expanded"
:
"true"
,
"aria-hidden"
:
"false"
}),
n
.
newTab
.
attr
({
"aria-selected"
:
"true"
,
tabIndex
:
0
})},
_activate
:
function
(
t
){
var
n
,
r
=
this
.
_findActive
(
t
);
if
(
r
[
0
]
===
this
.
active
[
0
])
return
;
r
.
length
||
(
r
=
this
.
active
),
n
=
r
.
find
(
".ui-tabs-anchor"
)[
0
],
this
.
_eventHandler
({
target
:
n
,
currentTarget
:
n
,
preventDefault
:
e
.
noop
})},
_findActive
:
function
(
t
){
return
t
===!
1
?
e
()
:
this
.
tabs
.
eq
(
t
)},
_getIndex
:
function
(
e
){
return
typeof
e
==
"string"
&&
(
e
=
this
.
anchors
.
index
(
this
.
anchors
.
filter
(
"[href$='"
+
e
+
"']"
))),
e
},
_destroy
:
function
(){
this
.
xhr
&&
this
.
xhr
.
abort
(),
this
.
element
.
removeClass
(
"ui-tabs ui-widget ui-widget-content ui-corner-all ui-tabs-collapsible"
),
this
.
tablist
.
removeClass
(
"ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all"
).
removeAttr
(
"role"
),
this
.
anchors
.
removeClass
(
"ui-tabs-anchor"
).
removeAttr
(
"role"
).
removeAttr
(
"tabIndex"
).
removeData
(
"href.tabs"
).
removeData
(
"load.tabs"
).
removeUniqueId
(),
this
.
tabs
.
add
(
this
.
panels
).
each
(
function
(){
e
.
data
(
this
,
"ui-tabs-destroy"
)
?
e
(
this
).
remove
()
:
e
(
this
).
removeClass
(
"ui-state-default ui-state-active ui-state-disabled ui-corner-top ui-corner-bottom ui-widget-content ui-tabs-active ui-tabs-panel"
).
removeAttr
(
"tabIndex"
).
removeAttr
(
"aria-live"
).
removeAttr
(
"aria-busy"
).
removeAttr
(
"aria-selected"
).
removeAttr
(
"aria-labelledby"
).
removeAttr
(
"aria-hidden"
).
removeAttr
(
"aria-expanded"
).
removeAttr
(
"role"
)}),
this
.
tabs
.
each
(
function
(){
var
t
=
e
(
this
),
n
=
t
.
data
(
"ui-tabs-aria-controls"
);
n
?
t
.
attr
(
"aria-controls"
,
n
)
:
t
.
removeAttr
(
"aria-controls"
)}),
this
.
options
.
heightStyle
!==
"content"
&&
this
.
panels
.
css
(
"height"
,
""
)},
enable
:
function
(
n
){
var
r
=
this
.
options
.
disabled
;
if
(
r
===!
1
)
return
;
n
===
t
?
r
=!
1
:
(
n
=
this
.
_getIndex
(
n
),
e
.
isArray
(
r
)
?
r
=
e
.
map
(
r
,
function
(
e
){
return
e
!==
n
?
e
:
null
})
:
r
=
e
.
map
(
this
.
tabs
,
function
(
e
,
t
){
return
t
!==
n
?
t
:
null
})),
this
.
_setupDisabled
(
r
)},
disable
:
function
(
n
){
var
r
=
this
.
options
.
disabled
;
if
(
r
===!
0
)
return
;
if
(
n
===
t
)
r
=!
0
;
else
{
n
=
this
.
_getIndex
(
n
);
if
(
e
.
inArray
(
n
,
r
)
!==-
1
)
return
;
e
.
isArray
(
r
)
?
r
=
e
.
merge
([
n
],
r
).
sort
()
:
r
=
[
n
]}
this
.
_setupDisabled
(
r
)},
load
:
function
(
t
,
n
){
t
=
this
.
_getIndex
(
t
);
var
r
=
this
,
i
=
this
.
tabs
.
eq
(
t
),
o
=
i
.
find
(
".ui-tabs-anchor"
),
u
=
this
.
_getPanelForTab
(
i
),
a
=
{
tab
:
i
,
panel
:
u
};
if
(
s
(
o
[
0
]))
return
;
this
.
xhr
=
e
.
ajax
(
this
.
_ajaxSettings
(
o
,
n
,
a
)),
this
.
xhr
&&
this
.
xhr
.
statusText
!==
"canceled"
&&
(
i
.
addClass
(
"ui-tabs-loading"
),
u
.
attr
(
"aria-busy"
,
"true"
),
this
.
xhr
.
success
(
function
(
e
){
setTimeout
(
function
(){
u
.
html
(
e
),
r
.
_trigger
(
"load"
,
n
,
a
)},
1
)}).
complete
(
function
(
e
,
t
){
setTimeout
(
function
(){
t
===
"abort"
&&
r
.
panels
.
stop
(
!
1
,
!
0
),
i
.
removeClass
(
"ui-tabs-loading"
),
u
.
removeAttr
(
"aria-busy"
),
e
===
r
.
xhr
&&
delete
r
.
xhr
},
1
)}))},
_ajaxSettings
:
function
(
t
,
n
,
r
){
var
i
=
this
;
return
{
url
:
t
.
attr
(
"href"
),
beforeSend
:
function
(
t
,
s
){
return
i
.
_trigger
(
"beforeLoad"
,
n
,
e
.
extend
({
jqXHR
:
t
,
ajaxSettings
:
s
},
r
))}}},
_getPanelForTab
:
function
(
t
){
var
n
=
e
(
t
).
attr
(
"aria-controls"
);
return
this
.
element
.
find
(
this
.
_sanitizeSelector
(
"#"
+
n
))}}),
e
.
uiBackCompat
!==!
1
&&
(
e
.
ui
.
tabs
.
prototype
.
_ui
=
function
(
e
,
t
){
return
{
tab
:
e
,
panel
:
t
,
index
:
this
.
anchors
.
index
(
e
)}},
e
.
widget
(
"ui.tabs"
,
e
.
ui
.
tabs
,{
url
:
function
(
e
,
t
){
this
.
anchors
.
eq
(
e
).
attr
(
"href"
,
t
)}}),
e
.
widget
(
"ui.tabs"
,
e
.
ui
.
tabs
,{
options
:
{
ajaxOptions
:
null
,
cache
:!
1
},
_create
:
function
(){
this
.
_super
();
var
t
=
this
;
this
.
_on
({
tabsbeforeload
:
function
(
n
,
r
){
if
(
e
.
data
(
r
.
tab
[
0
],
"cache.tabs"
)){
n
.
preventDefault
();
return
}
r
.
jqXHR
.
success
(
function
(){
t
.
options
.
cache
&&
e
.
data
(
r
.
tab
[
0
],
"cache.tabs"
,
!
0
)})}})},
_ajaxSettings
:
function
(
t
,
n
,
r
){
var
i
=
this
.
options
.
ajaxOptions
;
return
e
.
extend
({},
i
,{
error
:
function
(
e
,
t
){
try
{
i
.
error
(
e
,
t
,
r
.
tab
.
closest
(
"li"
).
index
(),
r
.
tab
[
0
])}
catch
(
n
){}}},
this
.
_superApply
(
arguments
))},
_setOption
:
function
(
e
,
t
){
e
===
"cache"
&&
t
===!
1
&&
this
.
anchors
.
removeData
(
"cache.tabs"
),
this
.
_super
(
e
,
t
)},
_destroy
:
function
(){
this
.
anchors
.
removeData
(
"cache.tabs"
),
this
.
_super
()},
url
:
function
(
e
){
this
.
anchors
.
eq
(
e
).
removeData
(
"cache.tabs"
),
this
.
_superApply
(
arguments
)}}),
e
.
widget
(
"ui.tabs"
,
e
.
ui
.
tabs
,{
abort
:
function
(){
this
.
xhr
&&
this
.
xhr
.
abort
()}}),
e
.
widget
(
"ui.tabs"
,
e
.
ui
.
tabs
,{
options
:
{
spinner
:
"<em>Loading…</em>"
},
_create
:
function
(){
this
.
_super
(),
this
.
_on
({
tabsbeforeload
:
function
(
e
,
t
){
if
(
e
.
target
!==
this
.
element
[
0
]
||!
this
.
options
.
spinner
)
return
;
var
n
=
t
.
tab
.
find
(
"span"
),
r
=
n
.
html
();
n
.
html
(
this
.
options
.
spinner
),
t
.
jqXHR
.
complete
(
function
(){
n
.
html
(
r
)})}})}}),
e
.
widget
(
"ui.tabs"
,
e
.
ui
.
tabs
,{
options
:
{
enable
:
null
,
disable
:
null
},
enable
:
function
(
t
){
var
n
=
this
.
options
,
r
;
if
(
t
&&
n
.
disabled
===!
0
||
e
.
isArray
(
n
.
disabled
)
&&
e
.
inArray
(
t
,
n
.
disabled
)
!==-
1
)
r
=!
0
;
this
.
_superApply
(
arguments
),
r
&&
this
.
_trigger
(
"enable"
,
null
,
this
.
_ui
(
this
.
anchors
[
t
],
this
.
panels
[
t
]))},
disable
:
function
(
t
){
var
n
=
this
.
options
,
r
;
if
(
t
&&
n
.
disabled
===!
1
||
e
.
isArray
(
n
.
disabled
)
&&
e
.
inArray
(
t
,
n
.
disabled
)
===-
1
)
r
=!
0
;
this
.
_superApply
(
arguments
),
r
&&
this
.
_trigger
(
"disable"
,
null
,
this
.
_ui
(
this
.
anchors
[
t
],
this
.
panels
[
t
]))}}),
e
.
widget
(
"ui.tabs"
,
e
.
ui
.
tabs
,{
options
:
{
add
:
null
,
remove
:
null
,
tabTemplate
:
"<li><a href='#{href}'><span>#{label}</span></a></li>"
},
add
:
function
(
n
,
r
,
i
){
i
===
t
&&
(
i
=
this
.
anchors
.
length
);
var
s
,
o
,
u
=
this
.
options
,
a
=
e
(
u
.
tabTemplate
.
replace
(
/#\{href\}/g
,
n
).
replace
(
/#\{label\}/g
,
r
)),
f
=
n
.
indexOf
(
"#"
)
?
this
.
_tabId
(
a
)
:
n
.
replace
(
"#"
,
""
);
return
a
.
addClass
(
"ui-state-default ui-corner-top"
).
data
(
"ui-tabs-destroy"
,
!
0
),
a
.
attr
(
"aria-controls"
,
f
),
s
=
i
>=
this
.
tabs
.
length
,
o
=
this
.
element
.
find
(
"#"
+
f
),
o
.
length
||
(
o
=
this
.
_createPanel
(
f
),
s
?
i
>
0
?
o
.
insertAfter
(
this
.
panels
.
eq
(
-
1
))
:
o
.
appendTo
(
this
.
element
)
:
o
.
insertBefore
(
this
.
panels
[
i
])),
o
.
addClass
(
"ui-tabs-panel ui-widget-content ui-corner-bottom"
).
hide
(),
s
?
a
.
appendTo
(
this
.
tablist
)
:
a
.
insertBefore
(
this
.
tabs
[
i
]),
u
.
disabled
=
e
.
map
(
u
.
disabled
,
function
(
e
){
return
e
>=
i
?++
e
:
e
}),
this
.
refresh
(),
this
.
tabs
.
length
===
1
&&
u
.
active
===!
1
&&
this
.
option
(
"active"
,
0
),
this
.
_trigger
(
"add"
,
null
,
this
.
_ui
(
this
.
anchors
[
i
],
this
.
panels
[
i
])),
this
},
remove
:
function
(
t
){
t
=
this
.
_getIndex
(
t
);
var
n
=
this
.
options
,
r
=
this
.
tabs
.
eq
(
t
).
remove
(),
i
=
this
.
_getPanelForTab
(
r
).
remove
();
return
r
.
hasClass
(
"ui-tabs-active"
)
&&
this
.
anchors
.
length
>
2
&&
this
.
_activate
(
t
+
(
t
+
1
<
this
.
anchors
.
length
?
1
:-
1
)),
n
.
disabled
=
e
.
map
(
e
.
grep
(
n
.
disabled
,
function
(
e
){
return
e
!==
t
}),
function
(
e
){
return
e
>=
t
?--
e
:
e
}),
this
.
refresh
(),
this
.
_trigger
(
"remove"
,
null
,
this
.
_ui
(
r
.
find
(
"a"
)[
0
],
i
[
0
])),
this
}}),
e
.
widget
(
"ui.tabs"
,
e
.
ui
.
tabs
,{
length
:
function
(){
return
this
.
anchors
.
length
}}),
e
.
widget
(
"ui.tabs"
,
e
.
ui
.
tabs
,{
options
:
{
idPrefix
:
"ui-tabs-"
},
_tabId
:
function
(
t
){
var
n
=
t
.
is
(
"li"
)
?
t
.
find
(
"a[href]"
)
:
t
;
return
n
=
n
[
0
],
e
(
n
).
closest
(
"li"
).
attr
(
"aria-controls"
)
||
n
.
title
&&
n
.
title
.
replace
(
/\s/g
,
"_"
).
replace
(
/[^\w\u00c0-\uFFFF\-]/g
,
""
)
||
this
.
options
.
idPrefix
+
i
()}}),
e
.
widget
(
"ui.tabs"
,
e
.
ui
.
tabs
,{
options
:
{
panelTemplate
:
"<div></div>"
},
_createPanel
:
function
(
t
){
return
e
(
this
.
options
.
panelTemplate
).
attr
(
"id"
,
t
).
addClass
(
"ui-tabs-panel ui-widget-content ui-corner-bottom"
).
data
(
"ui-tabs-destroy"
,
!
0
)}}),
e
.
widget
(
"ui.tabs"
,
e
.
ui
.
tabs
,{
_create
:
function
(){
var
e
=
this
.
options
;
e
.
active
===
null
&&
e
.
selected
!==
t
&&
(
e
.
active
=
e
.
selected
===-
1
?!
1
:
e
.
selected
),
this
.
_super
(),
e
.
selected
=
e
.
active
,
e
.
selected
===!
1
&&
(
e
.
selected
=-
1
)},
_setOption
:
function
(
e
,
t
){
if
(
e
!==
"selected"
)
return
this
.
_super
(
e
,
t
);
var
n
=
this
.
options
;
this
.
_super
(
"active"
,
t
===-
1
?!
1
:
t
),
n
.
selected
=
n
.
active
,
n
.
selected
===!
1
&&
(
n
.
selected
=-
1
)},
_eventHandler
:
function
(){
this
.
_superApply
(
arguments
),
this
.
options
.
selected
=
this
.
options
.
active
,
this
.
options
.
selected
===!
1
&&
(
this
.
options
.
selected
=-
1
)}}),
e
.
widget
(
"ui.tabs"
,
e
.
ui
.
tabs
,{
options
:
{
show
:
null
,
select
:
null
},
_create
:
function
(){
this
.
_super
(),
this
.
options
.
active
!==!
1
&&
this
.
_trigger
(
"show"
,
null
,
this
.
_ui
(
this
.
active
.
find
(
".ui-tabs-anchor"
)[
0
],
this
.
_getPanelForTab
(
this
.
active
)[
0
]))},
_trigger
:
function
(
e
,
t
,
n
){
var
r
=
this
.
_superApply
(
arguments
);
return
r
?
(
e
===
"beforeActivate"
&&
n
.
newTab
.
length
?
r
=
this
.
_super
(
"select"
,
t
,{
tab
:
n
.
newTab
.
find
(
".ui-tabs-anchor"
)[
0
],
panel
:
n
.
newPanel
[
0
],
index
:
n
.
newTab
.
closest
(
"li"
).
index
()})
:
e
===
"activate"
&&
n
.
newTab
.
length
&&
(
r
=
this
.
_super
(
"show"
,
t
,{
tab
:
n
.
newTab
.
find
(
".ui-tabs-anchor"
)[
0
],
panel
:
n
.
newPanel
[
0
],
index
:
n
.
newTab
.
closest
(
"li"
).
index
()})),
r
)
:!
1
}}),
e
.
widget
(
"ui.tabs"
,
e
.
ui
.
tabs
,{
select
:
function
(
e
){
e
=
this
.
_getIndex
(
e
);
if
(
e
===-
1
){
if
(
!
this
.
options
.
collapsible
||
this
.
options
.
selected
===-
1
)
return
;
e
=
this
.
options
.
selected
}
this
.
anchors
.
eq
(
e
).
trigger
(
this
.
options
.
event
+
this
.
eventNamespace
)}}),
function
(){
var
t
=
0
;
e
.
widget
(
"ui.tabs"
,
e
.
ui
.
tabs
,{
options
:
{
cookie
:
null
},
_create
:
function
(){
var
e
=
this
.
options
,
t
;
e
.
active
==
null
&&
e
.
cookie
&&
(
t
=
parseInt
(
this
.
_cookie
(),
10
),
t
===-
1
&&
(
t
=!
1
),
e
.
active
=
t
),
this
.
_super
()},
_cookie
:
function
(
n
){
var
r
=
[
this
.
cookie
||
(
this
.
cookie
=
this
.
options
.
cookie
.
name
||
"ui-tabs-"
+
++
t
)];
return
arguments
.
length
&&
(
r
.
push
(
n
===!
1
?-
1
:
n
),
r
.
push
(
this
.
options
.
cookie
)),
e
.
cookie
.
apply
(
null
,
r
)},
_refresh
:
function
(){
this
.
_super
(),
this
.
options
.
cookie
&&
this
.
_cookie
(
this
.
options
.
active
,
this
.
options
.
cookie
)},
_eventHandler
:
function
(){
this
.
_superApply
(
arguments
),
this
.
options
.
cookie
&&
this
.
_cookie
(
this
.
options
.
active
,
this
.
options
.
cookie
)},
_destroy
:
function
(){
this
.
_super
(),
this
.
options
.
cookie
&&
this
.
_cookie
(
null
,
this
.
options
.
cookie
)}})}(),
e
.
widget
(
"ui.tabs"
,
e
.
ui
.
tabs
,{
_trigger
:
function
(
t
,
n
,
r
){
var
i
=
e
.
extend
({},
r
);
return
t
===
"load"
&&
(
i
.
panel
=
i
.
panel
[
0
],
i
.
tab
=
i
.
tab
.
find
(
".ui-tabs-anchor"
)[
0
]),
this
.
_super
(
t
,
n
,
i
)}}),
e
.
widget
(
"ui.tabs"
,
e
.
ui
.
tabs
,{
options
:
{
fx
:
null
},
_getFx
:
function
(){
var
t
,
n
,
r
=
this
.
options
.
fx
;
return
r
&&
(
e
.
isArray
(
r
)
?
(
t
=
r
[
0
],
n
=
r
[
1
])
:
t
=
n
=
r
),
r
?
{
show
:
n
,
hide
:
t
}
:
null
},
_toggle
:
function
(
e
,
t
){
function
o
(){
n
.
running
=!
1
,
n
.
_trigger
(
"activate"
,
e
,
t
)}
function
u
(){
t
.
newTab
.
closest
(
"li"
).
addClass
(
"ui-tabs-active ui-state-active"
),
r
.
length
&&
s
.
show
?
r
.
animate
(
s
.
show
,
s
.
show
.
duration
,
function
(){
o
()})
:
(
r
.
show
(),
o
())}
var
n
=
this
,
r
=
t
.
newPanel
,
i
=
t
.
oldPanel
,
s
=
this
.
_getFx
();
if
(
!
s
)
return
this
.
_super
(
e
,
t
);
n
.
running
=!
0
,
i
.
length
&&
s
.
hide
?
i
.
animate
(
s
.
hide
,
s
.
hide
.
duration
,
function
(){
t
.
oldTab
.
closest
(
"li"
).
removeClass
(
"ui-tabs-active ui-state-active"
),
u
()})
:
(
t
.
oldTab
.
closest
(
"li"
).
removeClass
(
"ui-tabs-active ui-state-active"
),
i
.
hide
(),
u
())}}))})(
jQuery
);(
function
(
e
){
function
n
(
t
,
n
){
var
r
=
(
t
.
attr
(
"aria-describedby"
)
||
""
).
split
(
/\s+/
);
r
.
push
(
n
),
t
.
data
(
"ui-tooltip-id"
,
n
).
attr
(
"aria-describedby"
,
e
.
trim
(
r
.
join
(
" "
)))}
function
r
(
t
){
var
n
=
t
.
data
(
"ui-tooltip-id"
),
r
=
(
t
.
attr
(
"aria-describedby"
)
||
""
).
split
(
/\s+/
),
i
=
e
.
inArray
(
n
,
r
);
i
!==-
1
&&
r
.
splice
(
i
,
1
),
t
.
removeData
(
"ui-tooltip-id"
),
r
=
e
.
trim
(
r
.
join
(
" "
)),
r
?
t
.
attr
(
"aria-describedby"
,
r
)
:
t
.
removeAttr
(
"aria-describedby"
)}
var
t
=
0
;
e
.
widget
(
"ui.tooltip"
,{
version
:
"1.9.1"
,
options
:
{
content
:
function
(){
return
e
(
this
).
attr
(
"title"
)},
hide
:!
0
,
items
:
"[title]:not([disabled])"
,
position
:
{
my
:
"left top+15"
,
at
:
"left bottom"
,
collision
:
"flipfit flipfit"
},
show
:!
0
,
tooltipClass
:
null
,
track
:!
1
,
close
:
null
,
open
:
null
},
_create
:
function
(){
this
.
_on
({
mouseover
:
"open"
,
focusin
:
"open"
}),
this
.
tooltips
=
{},
this
.
parents
=
{},
this
.
options
.
disabled
&&
this
.
_disable
()},
_setOption
:
function
(
t
,
n
){
var
r
=
this
;
if
(
t
===
"disabled"
){
this
[
n
?
"_disable"
:
"_enable"
](),
this
.
options
[
t
]
=
n
;
return
}
this
.
_super
(
t
,
n
),
t
===
"content"
&&
e
.
each
(
this
.
tooltips
,
function
(
e
,
t
){
r
.
_updateContent
(
t
)})},
_disable
:
function
(){
var
t
=
this
;
e
.
each
(
this
.
tooltips
,
function
(
n
,
r
){
var
i
=
e
.
Event
(
"blur"
);
i
.
target
=
i
.
currentTarget
=
r
[
0
],
t
.
close
(
i
,
!
0
)}),
this
.
element
.
find
(
this
.
options
.
items
).
andSelf
().
each
(
function
(){
var
t
=
e
(
this
);
t
.
is
(
"[title]"
)
&&
t
.
data
(
"ui-tooltip-title"
,
t
.
attr
(
"title"
)).
attr
(
"title"
,
""
)})},
_enable
:
function
(){
this
.
element
.
find
(
this
.
options
.
items
).
andSelf
().
each
(
function
(){
var
t
=
e
(
this
);
t
.
data
(
"ui-tooltip-title"
)
&&
t
.
attr
(
"title"
,
t
.
data
(
"ui-tooltip-title"
))})},
open
:
function
(
t
){
var
n
=
this
,
r
=
e
(
t
?
t
.
target
:
this
.
element
).
closest
(
this
.
options
.
items
);
if
(
!
r
.
length
)
return
;
if
(
this
.
options
.
track
&&
r
.
data
(
"ui-tooltip-id"
)){
this
.
_find
(
r
).
position
(
e
.
extend
({
of
:
r
},
this
.
options
.
position
)),
this
.
_off
(
this
.
document
,
"mousemove"
);
return
}
r
.
attr
(
"title"
)
&&
r
.
data
(
"ui-tooltip-title"
,
r
.
attr
(
"title"
)),
r
.
data
(
"tooltip-open"
,
!
0
),
t
&&
t
.
type
===
"mouseover"
&&
r
.
parents
().
each
(
function
(){
var
t
;
e
(
this
).
data
(
"tooltip-open"
)
&&
(
t
=
e
.
Event
(
"blur"
),
t
.
target
=
t
.
currentTarget
=
this
,
n
.
close
(
t
,
!
0
)),
this
.
title
&&
(
e
(
this
).
uniqueId
(),
n
.
parents
[
this
.
id
]
=
{
element
:
this
,
title
:
this
.
title
},
this
.
title
=
""
)}),
this
.
_updateContent
(
r
,
t
)},
_updateContent
:
function
(
e
,
t
){
var
n
,
r
=
this
.
options
.
content
,
i
=
this
;
if
(
typeof
r
==
"string"
)
return
this
.
_open
(
t
,
e
,
r
);
n
=
r
.
call
(
e
[
0
],
function
(
n
){
if
(
!
e
.
data
(
"tooltip-open"
))
return
;
i
.
_delay
(
function
(){
this
.
_open
(
t
,
e
,
n
)})}),
n
&&
this
.
_open
(
t
,
e
,
n
)},
_open
:
function
(
t
,
r
,
i
){
function
f
(
e
){
a
.
of
=
e
;
if
(
s
.
is
(
":hidden"
))
return
;
s
.
position
(
a
)}
var
s
,
o
,
u
,
a
=
e
.
extend
({},
this
.
options
.
position
);
if
(
!
i
)
return
;
s
=
this
.
_find
(
r
);
if
(
s
.
length
){
s
.
find
(
".ui-tooltip-content"
).
html
(
i
);
return
}
r
.
is
(
"[title]"
)
&&
(
t
&&
t
.
type
===
"mouseover"
?
r
.
attr
(
"title"
,
""
)
:
r
.
removeAttr
(
"title"
)),
s
=
this
.
_tooltip
(
r
),
n
(
r
,
s
.
attr
(
"id"
)),
s
.
find
(
".ui-tooltip-content"
).
html
(
i
),
this
.
options
.
track
&&
t
&&
/^mouse/
.
test
(
t
.
originalEvent
.
type
)
?
(
this
.
_on
(
this
.
document
,{
mousemove
:
f
}),
f
(
t
))
:
s
.
position
(
e
.
extend
({
of
:
r
},
this
.
options
.
position
)),
s
.
hide
(),
this
.
_show
(
s
,
this
.
options
.
show
),
this
.
options
.
show
&&
this
.
options
.
show
.
delay
&&
(
u
=
setInterval
(
function
(){
s
.
is
(
":visible"
)
&&
(
f
(
a
.
of
),
clearInterval
(
u
))},
e
.
fx
.
interval
)),
this
.
_trigger
(
"open"
,
t
,{
tooltip
:
s
}),
o
=
{
keyup
:
function
(
t
){
if
(
t
.
keyCode
===
e
.
ui
.
keyCode
.
ESCAPE
){
var
n
=
e
.
Event
(
t
);
n
.
currentTarget
=
r
[
0
],
this
.
close
(
n
,
!
0
)}},
remove
:
function
(){
this
.
_removeTooltip
(
s
)}};
if
(
!
t
||
t
.
type
===
"mouseover"
)
o
.
mouseleave
=
"close"
;
if
(
!
t
||
t
.
type
===
"focusin"
)
o
.
focusout
=
"close"
;
this
.
_on
(
r
,
o
)},
close
:
function
(
t
){
var
n
=
this
,
i
=
e
(
t
?
t
.
currentTarget
:
this
.
element
),
s
=
this
.
_find
(
i
);
if
(
this
.
closing
)
return
;
i
.
data
(
"ui-tooltip-title"
)
&&
i
.
attr
(
"title"
,
i
.
data
(
"ui-tooltip-title"
)),
r
(
i
),
s
.
stop
(
!
0
),
this
.
_hide
(
s
,
this
.
options
.
hide
,
function
(){
n
.
_removeTooltip
(
e
(
this
))}),
i
.
removeData
(
"tooltip-open"
),
this
.
_off
(
i
,
"mouseleave focusout keyup"
),
i
[
0
]
!==
this
.
element
[
0
]
&&
this
.
_off
(
i
,
"remove"
),
this
.
_off
(
this
.
document
,
"mousemove"
),
t
&&
t
.
type
===
"mouseleave"
&&
e
.
each
(
this
.
parents
,
function
(
e
,
t
){
t
.
element
.
title
=
t
.
title
,
delete
n
.
parents
[
e
]}),
this
.
closing
=!
0
,
this
.
_trigger
(
"close"
,
t
,{
tooltip
:
s
}),
this
.
closing
=!
1
},
_tooltip
:
function
(
n
){
var
r
=
"ui-tooltip-"
+
t
++
,
i
=
e
(
"<div>"
).
attr
({
id
:
r
,
role
:
"tooltip"
}).
addClass
(
"ui-tooltip ui-widget ui-corner-all ui-widget-content "
+
(
this
.
options
.
tooltipClass
||
""
));
return
e
(
"<div>"
).
addClass
(
"ui-tooltip-content"
).
appendTo
(
i
),
i
.
appendTo
(
this
.
document
[
0
].
body
),
e
.
fn
.
bgiframe
&&
i
.
bgiframe
(),
this
.
tooltips
[
r
]
=
n
,
i
},
_find
:
function
(
t
){
var
n
=
t
.
data
(
"ui-tooltip-id"
);
return
n
?
e
(
"#"
+
n
)
:
e
()},
_removeTooltip
:
function
(
e
){
e
.
remove
(),
delete
this
.
tooltips
[
e
.
attr
(
"id"
)]},
_destroy
:
function
(){
var
t
=
this
;
e
.
each
(
this
.
tooltips
,
function
(
n
,
r
){
var
i
=
e
.
Event
(
"blur"
);
i
.
target
=
i
.
currentTarget
=
r
[
0
],
t
.
close
(
i
,
!
0
),
e
(
"#"
+
n
).
remove
(),
r
.
data
(
"ui-tooltip-title"
)
&&
(
r
.
attr
(
"title"
,
r
.
data
(
"ui-tooltip-title"
)),
r
.
removeData
(
"ui-tooltip-title"
))})}})})(
jQuery
);
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Thu, Apr 9, 3:17 PM (8 h, 44 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
536731
Default Alt Text
jquery-ui-1.9.1.custom.min.js (231 KB)
Attached To
Mode
R3 roundcubemail
Attached
Detach File
Event Timeline
Log In to Comment