]>
git.immae.eu Git - github/shaarli/Shaarli.git/blob - inc/jquery-ui.custom.min.js
4 * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
5 * Dual licensed under the MIT or GPL Version 2 licenses.
6 * http://jquery.org/license
8 * http://docs.jquery.com/UI
10 ( function ( c
, j
){ function k ( a
, b
){ var d
= a
. nodeName
. toLowerCase (); if ( "area" === d
){ b
= a
. parentNode
; d
= b
. name
; if (! a
. href
||! d
|| b
. nodeName
. toLowerCase ()!== "map" ) return false ; a
= c ( "img[usemap=#" + d
+ "]" )[ 0 ]; return !! a
&& l ( a
)} return ( /input|select|textarea|button|object/ . test ( d
)?! a
. disabled : "a" == d
? a
. href
|| b : b
)&& l ( a
)} function l ( a
){ return ! c ( a
). parents (). andSelf (). filter ( function (){ return c
. curCSS ( this , "visibility" )=== "hidden" || c
. expr
. filters
. hidden ( this )}). length
} c
. ui
= c
. ui
||{}; if (! c
. ui
. version
){ c
. extend ( c
. ui
,{ version : "1.8.16" ,
11 keyCode :{ ALT : 18 , BACKSPACE : 8 , CAPS_LOCK : 20 , COMMA : 188 , COMMAND : 91 , COMMAND_LEFT : 91 , COMMAND_RIGHT : 93 , CONTROL : 17 , DELETE : 46 , DOWN : 40 , END : 35 , ENTER : 13 , ESCAPE : 27 , HOME : 36 , INSERT : 45 , LEFT : 37 , MENU : 93 , 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 , SHIFT : 16 , SPACE : 32 , TAB : 9 , UP : 38 , WINDOWS : 91 }}); c
. fn
. extend ({ propAttr : c
. fn
. prop
|| c
. fn
. attr
, _focus : c
. fn
. focus
, focus : function ( a
, b
){ return typeof a
=== "number" ? this . each ( function (){ var d
=
12 this ; setTimeout ( function (){ c ( d
). focus (); b
&& b
. call ( d
)}, a
)}): this . _focus
. apply ( this , arguments
)}, scrollParent : function (){ var a
; a
= c
. browser
. msie
&& /(static|relative)/ . test ( this . css ( "position" ))|| /absolute/ . test ( this . css ( "position" ))? this . parents (). filter ( function (){ return /(relative|absolute|fixed)/ . test ( c
. curCSS ( this , "position" , 1 ))&& /(auto|scroll)/ . test ( c
. curCSS ( this , "overflow" , 1 )+ c
. curCSS ( this , "overflow-y" , 1 )+ c
. curCSS ( this , "overflow-x" , 1 ))}). eq ( 0 ): this . parents (). filter ( function (){ return /(auto|scroll)/ . test ( c
. curCSS ( this ,
13 "overflow" , 1 )+ c
. curCSS ( this , "overflow-y" , 1 )+ c
. curCSS ( this , "overflow-x" , 1 ))}). eq ( 0 ); return /fixed/ . test ( this . css ( "position" ))||! a
. length
? c ( document
): a
}, zIndex : function ( a
){ if ( a
!== j
) return this . css ( "zIndex" , a
); if ( this . length
){ a
= c ( this [ 0 ]); for ( var b
; a
. length
&& a
[ 0 ]!== document
;){ b
= a
. css ( "position" ); if ( b
=== "absolute" || b
=== "relative" || b
=== "fixed" ){ b
= parseInt ( a
. css ( "zIndex" ), 10 ); if (! isNaN ( b
)&& b
!== 0 ) return b
} a
= a
. parent ()}} return 0 }, disableSelection : function (){ return this . bind (( c
. support
. selectstart
? "selectstart" :
14 "mousedown" )+ ".ui-disableSelection" , function ( a
){ a
. preventDefault ()})}, enableSelection : function (){ return this . unbind ( ".ui-disableSelection" )}}); c
. each ([ "Width" , "Height" ], function ( a
, b
){ function d ( f
, g
, m
, n
){ c
. each ( e
, function (){ g
-= parseFloat ( c
. curCSS ( f
, "padding" + this , true ))|| 0 ; if ( m
) g
-= parseFloat ( c
. curCSS ( f
, "border" + this + "Width" , true ))|| 0 ; if ( n
) g
-= parseFloat ( c
. curCSS ( f
, "margin" + this , true ))|| 0 }); return g
} var e
= b
=== "Width" ?[ "Left" , "Right" ]:[ "Top" , "Bottom" ], h
= b
. toLowerCase (), i
={ innerWidth : c
. fn
. innerWidth
, innerHeight : c
. fn
. innerHeight
,
15 outerWidth : c
. fn
. outerWidth
, outerHeight : c
. fn
. outerHeight
}; c
. fn
[ "inner" + b
]= function ( f
){ if ( f
=== j
) return i
[ "inner" + b
]. call ( this ); return this . each ( function (){ c ( this ). css ( h
, d ( this , f
)+ "px" )})}; c
. fn
[ "outer" + b
]= function ( f
, g
){ if ( typeof f
!== "number" ) return i
[ "outer" + b
]. call ( this , f
); return this . each ( function (){ c ( this ). css ( h
, d ( this , f
, true , g
)+ "px" )})}}); c
. extend ( c
. expr
[ ":" ],{ data : function ( a
, b
, d
){ return !! c
. data ( a
, d
[ 3 ])}, focusable : function ( a
){ return k ( a
,! isNaN ( c
. attr ( a
, "tabindex" )))}, tabbable : function ( a
){ var b
= c
. attr ( a
,
16 "tabindex" ), d
= isNaN ( b
); return ( d
|| b
>= 0 )&& k ( a
,! d
)}}); c ( function (){ var a
= document
. body
, b
= a
. appendChild ( b
= document
. createElement ( "div" )); c
. extend ( b
. style
,{ minHeight : "100px" , height : "auto" , padding : 0 , borderWidth : 0 }); c
. support
. minHeight
= b
. offsetHeight
=== 100 ; c
. support
. selectstart
= "onselectstart" in b
; a
. removeChild ( b
). style
. display
= "none" }); c
. extend ( c
. ui
,{ plugin :{ add : function ( a
, b
, d
){ a
= c
. ui
[ a
]. prototype ; for ( var e
in d
){ a
. plugins
[ e
]= a
. plugins
[ e
]||[]; a
. plugins
[ e
]. push ([ b
, d
[ e
]])}}, call : function ( a
, b
, d
){ if (( b
= a
. plugins
[ b
])&&
17 a
. element
[ 0 ]. parentNode
) for ( var e
= 0 ; e
< b
. length
; e
++) a
. options
[ b
[ e
][ 0 ]]&& b
[ e
][ 1 ]. apply ( a
. element
, d
)}}, contains : function ( a
, b
){ return document
. compareDocumentPosition
? a
. compareDocumentPosition ( b
)& 16 : a
!== b
&& a
. contains ( b
)}, hasScroll : function ( a
, b
){ if ( c ( a
). css ( "overflow" )=== "hidden" ) return false ; b
= b
&& b
=== "left" ? "scrollLeft" : "scrollTop" ; var d
= false ; if ( a
[ b
]> 0 ) return true ; a
[ b
]= 1 ; d
= a
[ b
]> 0 ; a
[ b
]= 0 ; return d
}, isOverAxis : function ( a
, b
, d
){ return a
> b
&& a
< b
+ d
}, isOver : function ( a
, b
, d
, e
, h
, i
){ return c
. ui
. isOverAxis ( a
, d
, h
)&&
18 c
. ui
. isOverAxis ( b
, e
, i
)}})}})( jQuery
);
20 * jQuery UI Widget 1.8.16
22 * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
23 * Dual licensed under the MIT or GPL Version 2 licenses.
24 * http://jquery.org/license
26 * http://docs.jquery.com/UI/Widget
28 ( function ( b
, j
){ if ( b
. cleanData
){ var k
= b
. cleanData
; b
. cleanData = function ( a
){ for ( var c
= 0 , d
;( d
= a
[ c
])!= null ; c
++) try { b ( d
). triggerHandler ( "remove" )} catch ( e
){} k ( a
)}} else { var l
= b
. fn
. remove
; b
. fn
. remove = function ( a
, c
){ return this . each ( function (){ if (! c
) if (! a
|| b
. filter ( a
,[ this ]). length
) b ( "*" , this ). add ([ this ]). each ( function (){ try { b ( this ). triggerHandler ( "remove" )} catch ( d
){}}); return l
. call ( b ( this ), a
, c
)})}} b
. widget = function ( a
, c
, d
){ var e
= a
. split ( "." )[ 0 ], f
; a
= a
. split ( "." )[ 1 ]; f
= e
+ "-" + a
; if (! d
){ d
= c
; c
= b
. Widget
} b
. expr
[ ":" ][ f
]=
29 function ( h
){ return !! b
. data ( h
, a
)}; b
[ e
]= b
[ e
]||{}; b
[ e
][ a
]= function ( h
, g
){ arguments
. length
&& this . _createWidget ( h
, g
)}; c
= new c
; c
. options
= b
. extend ( true ,{}, c
. options
); b
[ e
][ a
]. prototype = b
. extend ( true , c
,{ namespace : e
, widgetName : a
, widgetEventPrefix : b
[ e
][ a
]. prototype . widgetEventPrefix
|| a
, widgetBaseClass : f
}, d
); b
. widget
. bridge ( a
, b
[ e
][ a
])}; b
. widget
. bridge = function ( a
, c
){ b
. fn
[ a
]= function ( d
){ var e
= typeof d
=== "string" , f
= Array
. prototype . slice
. call ( arguments
, 1 ), h
= this ; d
=! e
&& f
. length
? b
. extend
. apply ( null ,[ true , d
]. concat ( f
)):
30 d
; if ( e
&& d
. charAt ( 0 )=== "_" ) return h
; e
? this . each ( function (){ var g
= b
. data ( this , a
), i
= g
&& b
. isFunction ( g
[ d
])? g
[ d
]. apply ( g
, f
): g
; if ( i
!== g
&& i
!== j
){ h
= i
; return false }}): this . each ( function (){ var g
= b
. data ( this , a
); g
? g
. option ( d
||{}). _init (): b
. data ( this , a
, new c ( d
, this ))}); return h
}}; b
. Widget = function ( a
, c
){ arguments
. length
&& this . _createWidget ( a
, c
)}; b
. Widget
. prototype ={ widgetName : "widget" , widgetEventPrefix : "" , options :{ disabled : false }, _createWidget : function ( a
, c
){ b
. data ( c
, this . widgetName
, this ); this . element
= b ( c
); this . options
=
31 b
. extend ( true ,{}, this . options
, this . _getCreateOptions (), a
); var d
= this ; this . element
. bind ( "remove." + this . widgetName
, function (){ d
. destroy ()}); this . _create (); this . _trigger ( "create" ); this . _init ()}, _getCreateOptions : function (){ return b
. metadata
&& b
. metadata
. get ( this . element
[ 0 ])[ this . widgetName
]}, _create : function (){}, _init : function (){}, destroy : function (){ this . element
. unbind ( "." + this . widgetName
). removeData ( this . widgetName
); this . widget (). unbind ( "." + this . widgetName
). removeAttr ( "aria-disabled" ). removeClass ( this . widgetBaseClass
+
32 "-disabled ui-state-disabled" )}, widget : function (){ return this . element
}, option : function ( a
, c
){ var d
= a
; if ( arguments
. length
=== 0 ) return b
. extend ({}, this . options
); if ( typeof a
=== "string" ){ if ( c
=== j
) return this . options
[ a
]; d
={}; d
[ a
]= c
} this . _setOptions ( d
); return this }, _setOptions : function ( a
){ var c
= this ; b
. each ( a
, function ( d
, e
){ c
. _setOption ( d
, e
)}); return this }, _setOption : function ( a
, c
){ this . options
[ a
]= c
; if ( a
=== "disabled" ) this . widget ()[ c
? "addClass" : "removeClass" ]( this . widgetBaseClass
+ "-disabled ui-state-disabled" ). attr ( "aria-disabled" ,
33 c
); return this }, enable : function (){ return this . _setOption ( "disabled" , false )}, disable : function (){ return this . _setOption ( "disabled" , true )}, _trigger : function ( a
, c
, d
){ var e
= this . options
[ a
]; c
= b
. Event ( c
); c
. type
=( a
=== this . widgetEventPrefix
? a : this . widgetEventPrefix
+ a
). toLowerCase (); d
= d
||{}; if ( c
. originalEvent
){ a
= b
. event
. props
. length
; for ( var f
; a
;){ f
= b
. event
. props
[-- a
]; c
[ f
]= c
. originalEvent
[ f
]}} this . element
. trigger ( c
, d
); return !( b
. isFunction ( e
)&& e
. call ( this . element
[ 0 ], c
, d
)=== false || c
. isDefaultPrevented ())}}})( jQuery
);
35 * jQuery UI Position 1.8.16
37 * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
38 * Dual licensed under the MIT or GPL Version 2 licenses.
39 * http://jquery.org/license
41 * http://docs.jquery.com/UI/Position
43 ( function ( c
){ c
. ui
= c
. ui
||{}; var n
= /left|center|right/ , o
= /top|center|bottom/ , t
= c
. fn
. position
, u
= c
. fn
. offset
; c
. fn
. position = function ( b
){ if (! b
||! b
. of ) return t
. apply ( this , arguments
); b
= c
. extend ({}, b
); var a
= c ( b
. of ), d
= a
[ 0 ], g
=( b
. collision
|| "flip" ). split ( " " ), e
= b
. offset
? b
. offset
. split ( " " ):[ 0 , 0 ], h
, k
, j
; if ( d
. nodeType
=== 9 ){ h
= a
. width (); k
= a
. height (); j
={ top : 0 , left : 0 }} else if ( d
. setTimeout
){ h
= a
. width (); k
= a
. height (); j
={ top : a
. scrollTop (), left : a
. scrollLeft ()}} else if ( d
. preventDefault
){ b
. at
= "left top" ; h
= k
= 0 ; j
={ top : b
. of . pageY
,
44 left : b
. of . pageX
}} else { h
= a
. outerWidth (); k
= a
. outerHeight (); j
= a
. offset ()} c
. each ([ "my" , "at" ], function (){ var f
=( b
[ this ]|| "" ). split ( " " ); if ( f
. length
=== 1 ) f
= n
. test ( f
[ 0 ])? f
. concat ([ "center" ]): o
. test ( f
[ 0 ])?[ "center" ]. concat ( f
):[ "center" , "center" ]; f
[ 0 ]= n
. test ( f
[ 0 ])? f
[ 0 ]: "center" ; f
[ 1 ]= o
. test ( f
[ 1 ])? f
[ 1 ]: "center" ; b
[ this ]= f
}); if ( g
. length
=== 1 ) g
[ 1 ]= g
[ 0 ]; e
[ 0 ]= parseInt ( e
[ 0 ], 10 )|| 0 ; if ( e
. length
=== 1 ) e
[ 1 ]= e
[ 0 ]; e
[ 1 ]= parseInt ( e
[ 1 ], 10 )|| 0 ; if ( b
. at
[ 0 ]=== "right" ) j
. left
+= h
; else if ( b
. at
[ 0 ]=== "center" ) j
. left
+= h
/ 2 ; if ( b
. at
[ 1 ]=== "bottom" ) j
. top
+=
45 k
; else if ( b
. at
[ 1 ]=== "center" ) j
. top
+= k
/ 2 ; j
. left
+= e
[ 0 ]; j
. top
+= e
[ 1 ]; return this . each ( function (){ var f
= c ( this ), l
= f
. outerWidth (), m
= f
. outerHeight (), p
= parseInt ( c
. curCSS ( this , "marginLeft" , true ))|| 0 , q
= parseInt ( c
. curCSS ( this , "marginTop" , true ))|| 0 , v
= l
+ p
+( parseInt ( c
. curCSS ( this , "marginRight" , true ))|| 0 ), w
= m
+ q
+( parseInt ( c
. curCSS ( this , "marginBottom" , true ))|| 0 ), i
= c
. extend ({}, j
), r
; if ( b
. my
[ 0 ]=== "right" ) i
. left
-= l
; else if ( b
. my
[ 0 ]=== "center" ) i
. left
-= l
/ 2 ; if ( b
. my
[ 1 ]=== "bottom" ) i
. top
-= m
; else if ( b
. my
[ 1 ]=== "center" ) i
. top
-=
46 m
/ 2 ; i
. left
= Math
. round ( i
. left
); i
. top
= Math
. round ( i
. top
); r
={ left : i
. left
- p
, top : i
. top
- q
}; c
. each ([ "left" , "top" ], function ( s
, x
){ c
. ui
. position
[ g
[ s
]]&& c
. ui
. position
[ g
[ s
]][ x
]( i
,{ targetWidth : h
, targetHeight : k
, elemWidth : l
, elemHeight : m
, collisionPosition : r
, collisionWidth : v
, collisionHeight : w
, offset : e
, my : b
. my
, at : b
. at
})}); c
. fn
. bgiframe
&& f
. bgiframe (); f
. offset ( c
. extend ( i
,{ using : b
. using
}))})}; c
. ui
. position
={ fit :{ left : function ( b
, a
){ var d
= c ( window
); d
= a
. collisionPosition
. left
+ a
. collisionWidth
- d
. width ()- d
. scrollLeft (); b
. left
=
47 d
> 0 ? b
. left
- d : Math
. max ( b
. left
- a
. collisionPosition
. left
, b
. left
)}, top : function ( b
, a
){ var d
= c ( window
); d
= a
. collisionPosition
. top
+ a
. collisionHeight
- d
. height ()- d
. scrollTop (); b
. top
= d
> 0 ? b
. top
- d : Math
. max ( b
. top
- a
. collisionPosition
. top
, b
. top
)}}, flip :{ left : function ( b
, a
){ if ( a
. at
[ 0 ]!== "center" ){ var d
= c ( window
); d
= a
. collisionPosition
. left
+ a
. collisionWidth
- d
. width ()- d
. scrollLeft (); var g
= a
. my
[ 0 ]=== "left" ?- a
. elemWidth : a
. my
[ 0 ]=== "right" ? a
. elemWidth : 0 , e
= a
. at
[ 0 ]=== "left" ? a
. targetWidth :- a
. targetWidth
, h
=- 2 * a
. offset
[ 0 ]; b
. left
+=
48 a
. collisionPosition
. left
< 0 ? g
+ e
+ h : d
> 0 ? g
+ e
+ h : 0 }}, top : function ( b
, a
){ if ( a
. at
[ 1 ]!== "center" ){ var d
= c ( window
); d
= a
. collisionPosition
. top
+ a
. collisionHeight
- d
. height ()- d
. scrollTop (); var g
= a
. my
[ 1 ]=== "top" ?- a
. elemHeight : a
. my
[ 1 ]=== "bottom" ? a
. elemHeight : 0 , e
= a
. at
[ 1 ]=== "top" ? a
. targetHeight :- a
. targetHeight
, h
=- 2 * a
. offset
[ 1 ]; b
. top
+= a
. collisionPosition
. top
< 0 ? g
+ e
+ h : d
> 0 ? g
+ e
+ h : 0 }}}}; if (! c
. offset
. setOffset
){ c
. offset
. setOffset = function ( b
, a
){ if ( /static/ . test ( c
. curCSS ( b
, "position" ))) b
. style
. position
= "relative" ; var d
= c ( b
),
49 g
= d
. offset (), e
= parseInt ( c
. curCSS ( b
, "top" , true ), 10 )|| 0 , h
= parseInt ( c
. curCSS ( b
, "left" , true ), 10 )|| 0 ; g
={ top : a
. top
- g
. top
+ e
, left : a
. left
- g
. left
+ h
}; "using" in a
? a
. using
. call ( b
, g
): d
. css ( g
)}; c
. fn
. offset = function ( b
){ var a
= this [ 0 ]; if (! a
||! a
. ownerDocument
) return null ; if ( b
) return this . each ( function (){ c
. offset
. setOffset ( this , b
)}); return u
. call ( this )}}})( jQuery
);
51 * jQuery UI Autocomplete 1.8.16
53 * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
54 * Dual licensed under the MIT or GPL Version 2 licenses.
55 * http://jquery.org/license
57 * http://docs.jquery.com/UI/Autocomplete
62 * jquery.ui.position.js
64 ( function ( d
){ var e
= 0 ; d
. widget ( "ui.autocomplete" ,{ options :{ appendTo : "body" , autoFocus : false , delay : 300 , minLength : 1 , position :{ my : "left top" , at : "left bottom" , collision : "none" }, source : null }, pending : 0 , _create : function (){ var a
= this , b
= this . element
[ 0 ]. ownerDocument
, g
; this . element
. addClass ( "ui-autocomplete-input" ). attr ( "autocomplete" , "off" ). attr ({ role : "textbox" , "aria-autocomplete" : "list" , "aria-haspopup" : "true" }). bind ( "keydown.autocomplete" , function ( c
){ if (!( a
. options
. disabled
|| a
. element
. propAttr ( "readOnly" ))){ g
=
65 false ; var f
= d
. ui
. keyCode
; switch ( c
. keyCode
){ case f
. PAGE_UP : a
. _move ( "previousPage" , c
); break ; case f
. PAGE_DOWN : a
. _move ( "nextPage" , c
); break ; case f
. UP : a
. _move ( "previous" , c
); c
. preventDefault (); break ; case f
. DOWN : a
. _move ( "next" , c
); c
. preventDefault (); break ; case f
. ENTER : case f
. NUMPAD_ENTER : if ( a
. menu
. active
){ g
= true ; c
. preventDefault ()} case f
. TAB : if (! a
. menu
. active
) return ; a
. menu
. select ( c
); break ; case f
. ESCAPE : a
. element
. val ( a
. term
); a
. close ( c
); break ; default : clearTimeout ( a
. searching
); a
. searching
= setTimeout ( function (){ if ( a
. term
!=
66 a
. element
. val ()){ a
. selectedItem
= null ; a
. search ( null , c
)}}, a
. options
. delay
); break }}}). bind ( "keypress.autocomplete" , function ( c
){ if ( g
){ g
= false ; c
. preventDefault ()}}). bind ( "focus.autocomplete" , function (){ if (! a
. options
. disabled
){ a
. selectedItem
= null ; a
. previous
= a
. element
. val ()}}). bind ( "blur.autocomplete" , function ( c
){ if (! a
. options
. disabled
){ clearTimeout ( a
. searching
); a
. closing
= setTimeout ( function (){ a
. close ( c
); a
. _change ( c
)}, 150 )}}); this . _initSource (); this . response = function (){ return a
. _response
. apply ( a
, arguments
)};
67 this . menu
= d ( "<ul></ul>" ). addClass ( "ui-autocomplete" ). appendTo ( d ( this . options
. appendTo
|| "body" , b
)[ 0 ]). mousedown ( function ( c
){ var f
= a
. menu
. element
[ 0 ]; d ( c
. target
). closest ( ".ui-menu-item" ). length
|| setTimeout ( function (){ d ( document
). one ( "mousedown" , function ( h
){ h
. target
!== a
. element
[ 0 ]&& h
. target
!== f
&&! d
. ui
. contains ( f
, h
. target
)&& a
. close ()})}, 1 ); setTimeout ( function (){ clearTimeout ( a
. closing
)}, 13 )}). menu ({ focus : function ( c
, f
){ f
= f
. item
. data ( "item.autocomplete" ); false !== a
. _trigger ( "focus" , c
,{ item : f
})&& /^key/ . test ( c
. originalEvent
. type
)&&
68 a
. element
. val ( f
. value
)}, selected : function ( c
, f
){ var h
= f
. item
. data ( "item.autocomplete" ), i
= a
. previous
; if ( a
. element
[ 0 ]!== b
. activeElement
){ a
. element
. focus (); a
. previous
= i
; setTimeout ( function (){ a
. previous
= i
; a
. selectedItem
= h
}, 1 )} false !== a
. _trigger ( "select" , c
,{ item : h
})&& a
. element
. val ( h
. value
); a
. term
= a
. element
. val (); a
. close ( c
); a
. selectedItem
= h
}, blur : function (){ a
. menu
. element
. is ( ":visible" )&& a
. element
. val ()!== a
. term
&& a
. element
. val ( a
. term
)}}). zIndex ( this . element
. zIndex ()+ 1 ). css ({ top : 0 , left : 0 }). hide (). data ( "menu" );
69 d
. fn
. bgiframe
&& this . menu
. element
. bgiframe ()}, destroy : function (){ this . element
. removeClass ( "ui-autocomplete-input" ). removeAttr ( "autocomplete" ). removeAttr ( "role" ). removeAttr ( "aria-autocomplete" ). removeAttr ( "aria-haspopup" ); this . menu
. element
. remove (); d
. Widget
. prototype . destroy
. call ( this )}, _setOption : function ( a
, b
){ d
. Widget
. prototype . _setOption
. apply ( this , arguments
); a
=== "source" && this . _initSource (); if ( a
=== "appendTo" ) this . menu
. element
. appendTo ( d ( b
|| "body" , this . element
[ 0 ]. ownerDocument
)[ 0 ]); a
=== "disabled" &&
70 b
&& this . xhr
&& this . xhr
. abort ()}, _initSource : function (){ var a
= this , b
, g
; if ( d
. isArray ( this . options
. source
)){ b
= this . options
. source
; this . source = function ( c
, f
){ f ( d
. ui
. autocomplete
. filter ( b
, c
. term
))}} else if ( typeof this . options
. source
=== "string" ){ g
= this . options
. source
; this . source = function ( c
, f
){ a
. xhr
&& a
. xhr
. abort (); a
. xhr
= d
. ajax ({ url : g
, data : c
, dataType : "json" , autocompleteRequest :++ e
, success : function ( h
){ this . autocompleteRequest
=== e
&& f ( h
)}, error : function (){ this . autocompleteRequest
=== e
&& f ([])}})}} else this . source
=
71 this . options
. source
}, search : function ( a
, b
){ a
= a
!= null ? a : this . element
. val (); this . term
= this . element
. val (); if ( a
. length
< this . options
. minLength
) return this . close ( b
); clearTimeout ( this . closing
); if ( this . _trigger ( "search" , b
)!== false ) return this . _search ( a
)}, _search : function ( a
){ this . pending
++; this . element
. addClass ( "ui-autocomplete-loading" ); this . source ({ term : a
}, this . response
)}, _response : function ( a
){ if (! this . options
. disabled
&& a
&& a
. length
){ a
= this . _normalize ( a
); this . _suggest ( a
); this . _trigger ( "open" )} else this . close ();
72 this . pending
--; this . pending
|| this . element
. removeClass ( "ui-autocomplete-loading" )}, close : function ( a
){ clearTimeout ( this . closing
); if ( this . menu
. element
. is ( ":visible" )){ this . menu
. element
. hide (); this . menu
. deactivate (); this . _trigger ( "close" , a
)}}, _change : function ( a
){ this . previous
!== this . element
. val ()&& this . _trigger ( "change" , a
,{ item : this . selectedItem
})}, _normalize : function ( a
){ if ( a
. length
&& a
[ 0 ]. label
&& a
[ 0 ]. value
) return a
; return d
. map ( a
, function ( b
){ if ( typeof b
=== "string" ) return { label : b
, value : b
}; return d
. extend ({ label : b
. label
||
73 b
. value
, value : b
. value
|| b
. label
}, b
)})}, _suggest : function ( a
){ var b
= this . menu
. element
. empty (). zIndex ( this . element
. zIndex ()+ 1 ); this . _renderMenu ( b
, a
); this . menu
. deactivate (); this . menu
. refresh (); b
. show (); this . _resizeMenu (); b
. position ( d
. extend ({ of : this . element
}, this . options
. position
)); this . options
. autoFocus
&& this . menu
. next ( new d
. Event ( "mouseover" ))}, _resizeMenu : function (){ var a
= this . menu
. element
; a
. outerWidth ( Math
. max ( a
. width ( "" ). outerWidth (), this . element
. outerWidth ()))}, _renderMenu : function ( a
, b
){ var g
= this ;
74 d
. each ( b
, function ( c
, f
){ g
. _renderItem ( a
, f
)})}, _renderItem : function ( a
, b
){ return d ( "<li></li>" ). data ( "item.autocomplete" , b
). append ( d ( "<a></a>" ). text ( b
. label
)). appendTo ( a
)}, _move : function ( a
, b
){ if ( this . menu
. element
. is ( ":visible" )) if ( this . menu
. first ()&& /^previous/ . test ( a
)|| this . menu
. last ()&& /^next/ . test ( a
)){ this . element
. val ( this . term
); this . menu
. deactivate ()} else this . menu
[ a
]( b
); else this . search ( null , b
)}, widget : function (){ return this . menu
. element
}}); d
. extend ( d
. ui
. autocomplete
,{ escapeRegex : function ( a
){ return a
. replace ( /[-[\]{}()*+?.,\\^$|#\s]/g ,
75 " \\ $&" )}, filter : function ( a
, b
){ var g
= new RegExp ( d
. ui
. autocomplete
. escapeRegex ( b
), "i" ); return d
. grep ( a
, function ( c
){ return g
. test ( c
. label
|| c
. value
|| c
)})}})})( jQuery
);
76 ( function ( d
){ d
. widget ( "ui.menu" ,{ _create : function (){ var e
= this ; this . element
. addClass ( "ui-menu ui-widget ui-widget-content ui-corner-all" ). attr ({ role : "listbox" , "aria-activedescendant" : "ui-active-menuitem" }). click ( function ( a
){ if ( d ( a
. target
). closest ( ".ui-menu-item a" ). length
){ a
. preventDefault (); e
. select ( a
)}}); this . refresh ()}, refresh : function (){ var e
= this ; this . element
. children ( "li:not(.ui-menu-item):has(a)" ). addClass ( "ui-menu-item" ). attr ( "role" , "menuitem" ). children ( "a" ). addClass ( "ui-corner-all" ). attr ( "tabindex" ,
77 - 1 ). mouseenter ( function ( a
){ e
. activate ( a
, d ( this ). parent ())}). mouseleave ( function (){ e
. deactivate ()})}, activate : function ( e
, a
){ this . deactivate (); if ( this . hasScroll ()){ var b
= a
. offset (). top
- this . element
. offset (). top
, g
= this . element
. scrollTop (), c
= this . element
. height (); if ( b
< 0 ) this . element
. scrollTop ( g
+ b
); else b
>= c
&& this . element
. scrollTop ( g
+ b
- c
+ a
. height ())} this . active
= a
. eq ( 0 ). children ( "a" ). addClass ( "ui-state-hover" ). attr ( "id" , "ui-active-menuitem" ). end (); this . _trigger ( "focus" , e
,{ item : a
})}, deactivate : function (){ if ( this . active
){ this . active
. children ( "a" ). removeClass ( "ui-state-hover" ). removeAttr ( "id" );
78 this . _trigger ( "blur" ); this . active
= null }}, next : function ( e
){ this . move ( "next" , ".ui-menu-item:first" , e
)}, previous : function ( e
){ this . move ( "prev" , ".ui-menu-item:last" , e
)}, first : function (){ return this . active
&&! this . active
. prevAll ( ".ui-menu-item" ). length
}, last : function (){ return this . active
&&! this . active
. nextAll ( ".ui-menu-item" ). length
}, move : function ( e
, a
, b
){ if ( this . active
){ e
= this . active
[ e
+ "All" ]( ".ui-menu-item" ). eq ( 0 ); e
. length
? this . activate ( b
, e
): this . activate ( b
, this . element
. children ( a
))} else this . activate ( b
,
79 this . element
. children ( a
))}, nextPage : function ( e
){ if ( this . hasScroll ()) if (! this . active
|| this . last ()) this . activate ( e
, this . element
. children ( ".ui-menu-item:first" )); else { var a
= this . active
. offset (). top
, b
= this . element
. height (), g
= this . element
. children ( ".ui-menu-item" ). filter ( function (){ var c
= d ( this ). offset (). top
- a
- b
+ d ( this ). height (); return c
< 10 && c
>- 10 }); g
. length
||( g
= this . element
. children ( ".ui-menu-item:last" )); this . activate ( e
, g
)} else this . activate ( e
, this . element
. children ( ".ui-menu-item" ). filter (! this . active
||
80 this . last ()? ":first" : ":last" ))}, previousPage : function ( e
){ if ( this . hasScroll ()) if (! this . active
|| this . first ()) this . activate ( e
, this . element
. children ( ".ui-menu-item:last" )); else { var a
= this . active
. offset (). top
, b
= this . element
. height (); result
= this . element
. children ( ".ui-menu-item" ). filter ( function (){ var g
= d ( this ). offset (). top
- a
+ b
- d ( this ). height (); return g
< 10 && g
>- 10 }); result
. length
||( result
= this . element
. children ( ".ui-menu-item:first" )); this . activate ( e
, result
)} else this . activate ( e
, this . element
. children ( ".ui-menu-item" ). filter (! this . active
||
81 this . first ()? ":last" : ":first" ))}, hasScroll : function (){ return this . element
. height ()< this . element
[ d
. fn
. prop
? "prop" : "attr" ]( "scrollHeight" )}, select : function ( e
){ this . _trigger ( "selected" , e
,{ item : this . active
})}})})( jQuery
);