2009-09-12 08:50:19 -07:00
; jQuery . ui || ( function ( $ ){ var _remove = $ . fn . remove , isFF2 = $ . browser . mozilla && ( parseFloat ( $ . browser . version ) < 1.9 ); $ . ui = { version : "1.7.2" , plugin : { add : function ( module , option , set ){ var proto = $ . ui [ module ]. prototype ; for ( var i in set ){ proto . plugins [ i ] = proto . plugins [ i ] || []; proto . plugins [ i ]. push ([ option , set [ i ]]);}}, call : function ( instance , name , args ){ var set = instance . plugins [ name ]; if ( ! set ||! instance . element [ 0 ]. parentNode ){ return ;}
for ( var i = 0 ; i < set . length ; i ++ ){ if ( instance . options [ set [ i ][ 0 ]]){ set [ i ][ 1 ]. apply ( instance . element , args );}}}}, contains : function ( a , b ){ return document . compareDocumentPosition ? a . compareDocumentPosition ( b ) & 16 : a !== b && a . contains ( b );}, hasScroll : function ( el , a ){ if ( $ ( el ). css ( 'overflow' ) == 'hidden' ){ return false ;}
var scroll = ( a && a == 'left' ) ? 'scrollLeft' : 'scrollTop' , has = false ; if ( el [ scroll ] > 0 ){ return true ;}
el [ scroll ] = 1 ; has = ( el [ scroll ] > 0 ); el [ scroll ] = 0 ; return has ;}, isOverAxis : function ( x , reference , size ){ return ( x > reference ) && ( x < ( reference + size ));}, isOver : function ( y , x , top , left , height , width ){ return $ . ui . isOverAxis ( y , top , height ) && $ . ui . isOverAxis ( x , left , width );}, keyCode : { BACKSPACE : 8 , CAPS_LOCK : 20 , COMMA : 188 , CONTROL : 17 , DELETE : 46 , DOWN : 40 , END : 35 , ENTER : 13 , ESCAPE : 27 , HOME : 36 , INSERT : 45 , 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 , SHIFT : 16 , SPACE : 32 , TAB : 9 , UP : 38 }}; if ( isFF2 ){ var attr = $ . attr , removeAttr = $ . fn . removeAttr , ariaNS = "http://www.w3.org/2005/07/aaa" , ariaState = /^aria-/ , ariaRole = /^wairole:/ ; $ . attr = function ( elem , name , value ){ var set = value !== undefined ; return ( name == 'role' ? ( set ? attr . call ( this , elem , name , "wairole:" + value ) : ( attr . apply ( this , arguments ) || "" ). replace ( ariaRole , "" )) : ( ariaState . test ( name ) ? ( set ? elem . setAttributeNS ( ariaNS , name . replace ( ariaState , "aaa:" ), value ) : attr . call ( this , elem , name . replace ( ariaState , "aaa:" ))) : attr . apply ( this , arguments )));}; $ . fn . removeAttr = function ( name ){ return ( ariaState . test ( name ) ? this . each ( function (){ this . removeAttributeNS ( ariaNS , name . replace ( ariaState , "" ));}) : removeAttr . call ( this , name ));};}
$ . fn . extend ({ remove : function (){ $ ( "*" , this ). add ( this ). each ( function (){ $ ( this ). triggerHandler ( "remove" );}); return _remove . apply ( this , arguments );}, enableSelection : function (){ return this . attr ( 'unselectable' , 'off' ). css ( 'MozUserSelect' , '' ). unbind ( 'selectstart.ui' );}, disableSelection : function (){ return this . attr ( 'unselectable' , 'on' ). css ( 'MozUserSelect' , 'none' ). bind ( 'selectstart.ui' , function (){ return false ;});}, scrollParent : function (){ var scrollParent ; if (( $ . browser . msie && ( /(static|relative)/ ). test ( this . css ( 'position' ))) || ( /absolute/ ). test ( this . css ( 'position' ))){ scrollParent = this . parents (). filter ( function (){ return ( /(relative|absolute|fixed)/ ). test ( $ . curCSS ( this , 'position' , 1 )) && ( /(auto|scroll)/ ). test ( $ . curCSS ( this , 'overflow' , 1 ) + $ . curCSS ( this , 'overflow-y' , 1 ) + $ . curCSS ( this , 'overflow-x' , 1 ));}). eq ( 0 );} else { scrollParent = this . parents (). filter ( function (){ return ( /(auto|scroll)/ ). test ( $ . curCSS ( this , 'overflow' , 1 ) + $ . curCSS ( this , 'overflow-y' , 1 ) + $ . curCSS ( this , 'overflow-x' , 1 ));}). eq ( 0 );}
return ( /fixed/ ). test ( this . css ( 'position' )) ||! scrollParent . length ? $ ( document ) : scrollParent ;}}); $ . extend ( $ . expr [ ':' ],{ data : function ( elem , i , match ){ return !! $ . data ( elem , match [ 3 ]);}, focusable : function ( element ){ var nodeName = element . nodeName . toLowerCase (), tabIndex = $ . attr ( element , 'tabindex' ); return ( /input|select|textarea|button|object/ . test ( nodeName ) ?! element . disabled : 'a' == nodeName || 'area' == nodeName ? element . href ||! isNaN ( tabIndex ) :! isNaN ( tabIndex )) &&! $ ( element )[ 'area' == nodeName ? 'parents' : 'closest' ]( ':hidden' ). length ;}, tabbable : function ( element ){ var tabIndex = $ . attr ( element , 'tabindex' ); return ( isNaN ( tabIndex ) || tabIndex >= 0 ) && $ ( element ). is ( ':focusable' );}}); function getter ( namespace , plugin , method , args ){ function getMethods ( type ){ var methods = $ [ namespace ][ plugin ][ type ] || []; return ( typeof methods == 'string' ? methods . split ( /,?\s+/ ) : methods );}
var methods = getMethods ( 'getter' ); if ( args . length == 1 && typeof args [ 0 ] == 'string' ){ methods = methods . concat ( getMethods ( 'getterSetter' ));}
return ( $ . inArray ( method , methods ) !=- 1 );}
$ . widget = function ( name , prototype ){ var namespace = name . split ( "." )[ 0 ]; name = name . split ( "." )[ 1 ]; $ . fn [ name ] = function ( options ){ var isMethodCall = ( typeof options == 'string' ), args = Array . prototype . slice . call ( arguments , 1 ); if ( isMethodCall && options . substring ( 0 , 1 ) == '_' ){ return this ;}
if ( isMethodCall && getter ( namespace , name , options , args )){ var instance = $ . data ( this [ 0 ], name ); return ( instance ? instance [ options ]. apply ( instance , args ) : undefined );}
return this . each ( function (){ var instance = $ . data ( this , name );( ! instance &&! isMethodCall && $ . data ( this , name , new $ [ namespace ][ name ]( this , options )). _init ());( instance && isMethodCall && $ . isFunction ( instance [ options ]) && instance [ options ]. apply ( instance , args ));});}; $ [ namespace ] = $ [ namespace ] || {}; $ [ namespace ][ name ] = function ( element , options ){ var self = this ; this . namespace = namespace ; this . widgetName = name ; this . widgetEventPrefix = $ [ namespace ][ name ]. eventPrefix || name ; this . widgetBaseClass = namespace + '-' + name ; this . options = $ . extend ({}, $ . widget . defaults , $ [ namespace ][ name ]. defaults , $ . metadata && $ . metadata . get ( element )[ name ], options ); this . element = $ ( element ). bind ( 'setData.' + name , function ( event , key , value ){ if ( event . target == element ){ return self . _setData ( key , value );}}). bind ( 'getData.' + name , function ( event , key ){ if ( event . target == element ){ return self . _getData ( key );}}). bind ( 'remove' , function (){ return self . destroy ();});}; $ [ namespace ][ name ]. prototype = $ . extend ({}, $ . widget . prototype , prototype ); $ [ namespace ][ name ]. getterSetter = 'option' ;}; $ . widget . prototype = { _init : function (){}, destroy : function (){ this . element . removeData ( this . widgetName ). removeClass ( this . widgetBaseClass + '-disabled' + ' ' + this . namespace + '-state-disabled' ). removeAttr ( 'aria-disabled' );}, option : function ( key , value ){ var options = key , self = this ; if ( typeof key == "string" ){ if ( value === undefined ){ return this . _getData ( key );}
options = {}; options [ key ] = value ;}
$ . each ( options , function ( key , value ){ self . _setData ( key , value );});}, _getData : function ( key ){ return this . options [ key ];}, _setData : function ( key , value ){ this . options [ key ] = value ; if ( key == 'disabled' ){ this . element
[ value ? 'addClass' : 'removeClass' ]( this . widgetBaseClass + '-disabled' + ' ' +
this . namespace + '-state-disabled' ). attr ( "aria-disabled" , value );}}, enable : function (){ this . _setData ( 'disabled' , false );}, disable : function (){ this . _setData ( 'disabled' , true );}, _trigger : function ( type , event , data ){ var callback = this . options [ type ], eventName = ( type == this . widgetEventPrefix ? type : this . widgetEventPrefix + type ); event = $ . Event ( event ); event . type = eventName ; if ( event . originalEvent ){ for ( var i = $ . event . props . length , prop ; i ;){ prop = $ . event . props [ -- i ]; event [ prop ] = event . originalEvent [ prop ];}}
this . element . trigger ( event , data ); return ! ( $ . isFunction ( callback ) && callback . call ( this . element [ 0 ], event , data ) === false || event . isDefaultPrevented ());}}; $ . widget . defaults = { disabled : false }; $ . ui . mouse = { _mouseInit : function (){ var self = this ; this . element . bind ( 'mousedown.' + this . widgetName , function ( event ){ return self . _mouseDown ( event );}). bind ( 'click.' + this . widgetName , function ( event ){ if ( self . _preventClickEvent ){ self . _preventClickEvent = false ; event . stopImmediatePropagation (); return false ;}}); if ( $ . browser . msie ){ this . _mouseUnselectable = this . element . attr ( 'unselectable' ); this . element . attr ( 'unselectable' , 'on' );}
this . started = false ;}, _mouseDestroy : function (){ this . element . unbind ( '.' + this . widgetName );( $ . browser . msie && this . element . attr ( 'unselectable' , this . _mouseUnselectable ));}, _mouseDown : function ( event ){ event . originalEvent = event . originalEvent || {}; if ( event . originalEvent . mouseHandled ){ return ;}
( this . _mouseStarted && this . _mouseUp ( event )); this . _mouseDownEvent = event ; var self = this , btnIsLeft = ( event . which == 1 ), elIsCancel = ( typeof this . options . cancel == "string" ? $ ( event . target ). parents (). add ( event . target ). filter ( this . options . cancel ). length : false ); if ( ! btnIsLeft || elIsCancel ||! this . _mouseCapture ( event )){ return true ;}
this . mouseDelayMet =! this . options . delay ; if ( ! this . mouseDelayMet ){ this . _mouseDelayTimer = setTimeout ( function (){ self . mouseDelayMet = true ;}, this . options . delay );}
if ( this . _mouseDistanceMet ( event ) && this . _mouseDelayMet ( event )){ this . _mouseStarted = ( this . _mouseStart ( event ) !== false ); if ( ! this . _mouseStarted ){ event . preventDefault (); return true ;}}
this . _mouseMoveDelegate = function ( event ){ return self . _mouseMove ( event );}; this . _mouseUpDelegate = function ( event ){ return self . _mouseUp ( event );}; $ ( document ). bind ( 'mousemove.' + this . widgetName , this . _mouseMoveDelegate ). bind ( 'mouseup.' + this . widgetName , this . _mouseUpDelegate );( $ . browser . safari || event . preventDefault ()); event . originalEvent . mouseHandled = true ; return true ;}, _mouseMove : function ( event ){ if ( $ . browser . msie &&! event . button ){ return this . _mouseUp ( event );}
if ( this . _mouseStarted ){ this . _mouseDrag ( event ); return event . preventDefault ();}
if ( this . _mouseDistanceMet ( event ) && this . _mouseDelayMet ( event )){ this . _mouseStarted = ( this . _mouseStart ( this . _mouseDownEvent , event ) !== false );( this . _mouseStarted ? this . _mouseDrag ( event ) : this . _mouseUp ( event ));}
return ! this . _mouseStarted ;}, _mouseUp : function ( event ){ $ ( document ). unbind ( 'mousemove.' + this . widgetName , this . _mouseMoveDelegate ). unbind ( 'mouseup.' + this . widgetName , this . _mouseUpDelegate ); if ( this . _mouseStarted ){ this . _mouseStarted = false ; this . _preventClickEvent = ( event . target == this . _mouseDownEvent . target ); this . _mouseStop ( event );}
return false ;}, _mouseDistanceMet : function ( event ){ return ( Math . max ( Math . abs ( this . _mouseDownEvent . pageX - event . pageX ), Math . abs ( this . _mouseDownEvent . pageY - event . pageY )) >= this . options . distance );}, _mouseDelayMet : function ( event ){ return this . mouseDelayMet ;}, _mouseStart : function ( event ){}, _mouseDrag : function ( event ){}, _mouseStop : function ( event ){}, _mouseCapture : function ( event ){ return true ;}}; $ . ui . mouse . defaults = { cancel : null , distance : 1 , delay : 0 };})( jQuery );( function ( $ ){ $ . widget ( "ui.draggable" , $ . extend ({}, $ . ui . mouse ,{ _init : function (){ if ( 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 (){ if ( ! this . element . data ( 'draggable' )) return ; this . element . removeData ( "draggable" ). unbind ( ".draggable" ). removeClass ( "ui-draggable"
+ " ui-draggable-dragging"
+ " ui-draggable-disabled" ); this . _mouseDestroy ();}, _mouseCapture : function ( event ){ var o = this . options ; if ( this . helper || o . disabled || $ ( event . target ). is ( '.ui-resizable-handle' ))
return false ; this . handle = this . _getHandle ( event ); if ( ! this . handle )
return false ; return true ;}, _mouseStart : function ( event ){ var o = this . options ; this . helper = this . _createHelper ( event ); this . _cacheHelperProportions (); if ( $ . ui . ddmanager )
$ . ui . ddmanager . current = this ; this . _cacheMargins (); this . cssPosition = this . helper . css ( "position" ); this . scrollParent = this . helper . scrollParent (); this . offset = this . element . offset (); this . offset = { top : this . offset . top - this . margins . top , left : this . offset . left - this . margins . left }; $ . extend ( this . offset ,{ click : { left : event . pageX - this . offset . left , top : event . pageY - this . offset . top }, parent : this . _getParentOffset (), relative : this . _getRelativeOffset ()}); this . originalPosition = this . _generatePosition ( event ); this . originalPageX = event . pageX ; this . originalPageY = event . pageY ; if ( o . cursorAt )
this . _adjustOffsetFromHelper ( o . cursorAt ); if ( o . containment )
this . _setContainment (); this . _trigger ( "start" , event ); this . _cacheHelperProportions (); if ( $ . ui . ddmanager &&! o . dropBehaviour )
$ . ui . ddmanager . prepareOffsets ( this , event ); this . helper . addClass ( "ui-draggable-dragging" ); this . _mouseDrag ( event , true ); return true ;}, _mouseDrag : function ( event , noPropagation ){ this . position = this . _generatePosition ( event ); this . positionAbs = this . _convertPositionTo ( "absolute" ); if ( ! noPropagation ){ var ui = this . _uiHash (); this . _trigger ( 'drag' , event , ui ); this . position = ui . 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' ; if ( $ . ui . ddmanager ) $ . ui . ddmanager . drag ( this , event ); return false ;}, _mouseStop : function ( event ){ var dropped = false ; if ( $ . ui . ddmanager &&! this . options . dropBehaviour )
dropped = $ . ui . ddmanager . drop ( this , event ); if ( this . dropped ){ dropped = this . dropped ; this . dropped = false ;}
if (( this . options . revert == "invalid" &&! dropped ) || ( this . options . revert == "valid" && dropped ) || this . options . revert === true || ( $ . isFunction ( this . options . revert ) && this . options . revert . call ( this . element , dropped ))){ var self = this ; $ ( this . helper ). animate ( this . originalPosition , parseInt ( this . options . revertDuration , 10 ), function (){ self . _trigger ( "stop" , event ); self . _clear ();});} else { this . _trigger ( "stop" , event ); this . _clear ();}
return false ;}, _getHandle : function ( event ){ var handle =! this . options . handle ||! $ ( this . options . handle , this . element ). length ? true : false ; $ ( this . options . handle , this . element ). find ( "*" ). andSelf (). each ( function (){ if ( this == event . target ) handle = true ;}); return handle ;}, _createHelper : function ( event ){ var o = this . options ; var helper = $ . isFunction ( o . helper ) ? $ ( o . helper . apply ( this . element [ 0 ],[ event ])) : ( o . helper == 'clone' ? this . element . clone () : this . element ); if ( ! helper . parents ( 'body' ). length )
helper . appendTo (( o . appendTo == 'parent' ? this . element [ 0 ]. parentNode : o . appendTo )); if ( helper [ 0 ] != this . element [ 0 ] &&! ( /(fixed|absolute)/ ). test ( helper . css ( "position" )))
helper . css ( "position" , "absolute" ); return helper ;}, _adjustOffsetFromHelper : function ( obj ){ if ( obj . left != undefined ) this . offset . click . left = obj . left + this . margins . left ; if ( obj . right != undefined ) this . offset . click . left = this . helperProportions . width - obj . right + this . margins . left ; if ( obj . top != undefined ) this . offset . click . top = obj . top + this . margins . top ; if ( obj . bottom != undefined ) this . offset . click . top = this . helperProportions . height - obj . bottom + this . margins . top ;}, _getParentOffset : function (){ this . offsetParent = this . helper . offsetParent (); var po = this . offsetParent . offset (); if ( this . cssPosition == 'absolute' && this . scrollParent [ 0 ] != document && $ . ui . contains ( this . scrollParent [ 0 ], this . offsetParent [ 0 ])){ po . left += this . scrollParent . scrollLeft (); po . top += this . scrollParent . scrollTop ();}
if (( this . offsetParent [ 0 ] == document . body ) || ( this . offsetParent [ 0 ]. tagName && this . offsetParent [ 0 ]. tagName . toLowerCase () == 'html' && $ . browser . msie ))
po = { top : 0 , left : 0 }; return { top : po . top + ( parseInt ( this . offsetParent . css ( "borderTopWidth" ), 10 ) || 0 ), left : po . left + ( parseInt ( this . offsetParent . css ( "borderLeftWidth" ), 10 ) || 0 )};}, _getRelativeOffset : function (){ if ( this . cssPosition == "relative" ){ var p = this . element . position (); return { top : p . top - ( parseInt ( this . helper . css ( "top" ), 10 ) || 0 ) + this . scrollParent . scrollTop (), left : p . left - ( parseInt ( this . helper . css ( "left" ), 10 ) || 0 ) + this . scrollParent . scrollLeft ()};} else { 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 )};}, _cacheHelperProportions : function (){ this . helperProportions = { width : this . helper . outerWidth (), height : this . helper . outerHeight ()};}, _setContainment : function (){ var o = this . options ; if ( o . containment == 'parent' ) o . containment = this . helper [ 0 ]. parentNode ; if ( o . containment == 'document' || o . containment == 'window' ) this . containment = [ 0 - this . offset . relative . left - this . offset . parent . left , 0 - this . offset . relative . top - this . offset . parent . top , $ ( o . containment == 'document' ? document : window ). width () - this . helperProportions . width - this . margins . left ,( $ ( o . containment == 'document' ? document : window ). height () || document . body . parentNode . scrollHeight ) - this . helperProportions . height - this . margins . top ]; if ( ! ( /^(document|window|parent)$/ ). test ( o . containment ) && o . containment . constructor != Array ){ var ce = $ ( o . containment )[ 0 ]; if ( ! ce ) return ; var co = $ ( o . containment ). offset (); var over = ( $ ( ce ). css ( "overflow" ) != 'hidden' ); this . containment = [ co . left + ( parseInt ( $ ( ce ). css ( "borderLeftWidth" ), 10 ) || 0 ) + ( parseInt ( $ ( ce ). css ( "paddingLeft" ), 10 ) || 0 ) - this . margins . left , co . top + ( parseInt ( $ ( ce ). css ( "borderTopWidth" ), 10 ) || 0 ) + ( parseInt ( $ ( ce ). css ( "paddingTop" ), 10 ) || 0 ) - this . margins . top , co . left + ( over ? Math . max ( ce . scrollWidth , ce . offsetWidth ) : ce . offsetWidth ) - ( parseInt ( $ ( ce ). css ( "borderLeftWidth" ), 10 ) || 0 ) - ( parseInt ( $ ( ce ). css ( "paddingRight" ), 10 ) || 0 ) - this . helperProportions . width - this . margins . left , co . top + ( over ? Math . max ( ce . scrollHeight , ce . offsetHeight ) : ce . offsetHeight ) - ( parseInt ( $ ( ce ). css ( "borderTopWidth" ), 10 ) || 0 ) - ( parseInt ( $ ( ce ). css ( "paddingBottom" ), 10 ) || 0 ) - this . helperProportions . height - this . margins . top ];} else if ( o . containment . constructor == Array ){ this . containment = o . containment ;}}, _convertPositionTo : function ( d , pos ){ if ( ! pos ) pos = this . position ; var mod = d == "absolute" ? 1 :- 1 ; var o = this . options , scroll = this . cssPosition == 'absolute' &&! ( this . scrollParent [ 0 ] != document && $ . ui . contains ( this . scrollParent [ 0 ], this . offsetParent [ 0 ])) ? this . offsetParent : this . scrollParent , scrollIsRootNode = ( /(html|body)/i ). test ( scroll [ 0 ]. tagName ); return { top : ( pos . top
+ this . offset . relative . top * mod
+ this . offset . parent . top * mod
- ( $ . browser . safari && this . cssPosition == 'fixed' ? 0 : ( this . cssPosition == 'fixed' ?- this . scrollParent . scrollTop () : ( scrollIsRootNode ? 0 : scroll . scrollTop ())) * mod )), left : ( pos . left
+ this . offset . relative . left * mod
+ this . offset . parent . left * mod
- ( $ . browser . safari && this . cssPosition == 'fixed' ? 0 : ( this . cssPosition == 'fixed' ?- this . scrollParent . scrollLeft () : scrollIsRootNode ? 0 : scroll . scrollLeft ()) * mod ))};}, _generatePosition : function ( event ){ var o = this . options , scroll = this . cssPosition == 'absolute' &&! ( this . scrollParent [ 0 ] != document && $ . ui . contains ( this . scrollParent [ 0 ], this . offsetParent [ 0 ])) ? this . offsetParent : this . scrollParent , scrollIsRootNode = ( /(html|body)/i ). test ( scroll [ 0 ]. tagName ); if ( this . cssPosition == 'relative' &&! ( this . scrollParent [ 0 ] != document && this . scrollParent [ 0 ] != this . offsetParent [ 0 ])){ this . offset . relative = this . _getRelativeOffset ();}
var pageX = event . pageX ; var pageY = event . pageY ; if ( this . originalPosition ){ if ( this . containment ){ if ( event . pageX - this . offset . click . left < this . containment [ 0 ]) pageX = this . containment [ 0 ] + this . offset . click . left ; if ( event . pageY - this . offset . click . top < this . containment [ 1 ]) pageY = this . containment [ 1 ] + this . offset . click . top ; if ( event . pageX - this . offset . click . left > this . containment [ 2 ]) pageX = this . containment [ 2 ] + this . offset . click . left ; if ( event . pageY - this . offset . click . top > this . containment [ 3 ]) pageY = this . containment [ 3 ] + this . offset . click . top ;}
if ( o . grid ){ var top = this . originalPageY + Math . round (( pageY - this . originalPageY ) / o . grid [ 1 ]) * o . grid [ 1 ]; pageY = this . containment ? ( ! ( top - this . offset . click . top < this . containment [ 1 ] || top - this . offset . click . top > this . containment [ 3 ]) ? top : ( ! ( top - this . offset . click . top < this . containment [ 1 ]) ? top - o . grid [ 1 ] : top + o . grid [ 1 ])) : top ; var left = this . originalPageX + Math . round (( pageX - this . originalPageX ) / o . grid [ 0 ]) * o . grid [ 0 ]; pageX = this . containment ? ( ! ( left - this . offset . click . left < this . containment [ 0 ] || left - this . offset . click . left > this . containment [ 2 ]) ? left : ( ! ( left - this . offset . click . left < this . containment [ 0 ]) ? left - o . grid [ 0 ] : left + o . grid [ 0 ])) : left ;}}
return { top : ( pageY
- this . offset . click . top
- this . offset . relative . top
- this . offset . parent . top
+ ( $ . browser . safari && this . cssPosition == 'fixed' ? 0 : ( this . cssPosition == 'fixed' ?- this . scrollParent . scrollTop () : ( scrollIsRootNode ? 0 : scroll . scrollTop ())))), left : ( pageX
- this . offset . click . left
- this . offset . relative . left
- this . offset . parent . left
+ ( $ . browser . safari && this . cssPosition == 'fixed' ? 0 : ( this . cssPosition == 'fixed' ?- this . scrollParent . scrollLeft () : scrollIsRootNode ? 0 : scroll . scrollLeft ())))};}, _clear : function (){ this . helper . removeClass ( "ui-draggable-dragging" ); if ( this . helper [ 0 ] != this . element [ 0 ] &&! this . cancelHelperRemoval ) this . helper . remove (); this . helper = null ; this . cancelHelperRemoval = false ;}, _trigger : function ( type , event , ui ){ ui = ui || this . _uiHash (); $ . ui . plugin . call ( this , type ,[ event , ui ]); if ( type == "drag" ) this . positionAbs = this . _convertPositionTo ( "absolute" ); return $ . widget . prototype . _trigger . call ( this , type , event , ui );}, plugins : {}, _uiHash : function ( event ){ return { helper : this . helper , position : this . position , absolutePosition : this . positionAbs , offset : this . positionAbs };}})); $ . extend ( $ . ui . draggable ,{ version : "1.7.2" , eventPrefix : "drag" , defaults : { addClasses : true , appendTo : "parent" , axis : false , cancel : ":input,option" , connectToSortable : false , containment : false , cursor : "auto" , cursorAt : false , delay : 0 , distance : 1 , grid : false , handle : false , helper : "original" , iframeFix : false , opacity : false , refreshPositions : false , revert : false , revertDuration : 500 , scope : "default" , scroll : true , scrollSensitivity : 20 , scrollSpeed : 20 , snap : false , snapMode : "both" , snapTolerance : 20 , stack : false , zIndex : false }}); $ . ui . plugin . add ( "draggable" , "connectToSortable" ,{ start : function ( event , ui ){ var inst = $ ( this ). data ( "draggable" ), o = inst . options , uiSortable = $ . extend ({}, ui ,{ item : inst . element }); inst . sortables = []; $ ( o . connectToSortable ). each ( function (){ var sortable = $ . data ( this , 'sortable' ); if ( sortable &&! sortable . options . disabled ){ inst . sortables . push ({ instance : sortable , shouldRevert : sortable . options . revert }); sortable . _refreshItems (); sortable . _trigger ( "activate" , event , uiSortable );}});}, stop : function ( event , ui ){ var inst = $ ( this ). data ( "draggable" ), uiSortable = $ . extend ({}, ui ,{ item : inst . element }); $ . each ( inst . sortables , function (){ if ( this . instance . isOver ){ this . instance . isOver = 0 ; inst . cancelHelperRemoval = true ; this . instance . cancelHelperRemoval = false ; if ( this . shouldRevert ) this . instance . options . revert = true ; this . instance . _mouseStop ( event ); this . instance . options . helper = this . instance . options . _helper ; if ( inst . options . helper == 'original' )
this . instance . currentItem . css ({ top : 'auto' , left : 'auto' });} else { this . instance . cancelHelperRemoval = false ; this . instance . _trigger ( "deactivate" , event , uiSortable );}});}, drag : function ( event , ui ){ var inst = $ ( this ). data ( "draggable" ), self = this ; var checkPos = function ( o ){ var dyClick = this . offset . click . top , dxClick = this . offset . click . left ; var helperTop = this . positionAbs . top , helperLeft = this . positionAbs . left ; var itemHeight = o . height , itemWidth = o . width ; var itemTop = o . top , itemLeft = o . left ; return $ . ui . isOver ( helperTop + dyClick , helperLeft + dxClick , itemTop , itemLeft , itemHeight , itemWidth );}; $ . each ( inst . sortables , function ( i ){ this . instance . positionAbs = inst . positionAbs ; this . instance . helperProportions = inst . helperProportions ; this . instance . offset . click = inst . offset . click ; if ( this . instance . _intersectsWith ( this . instance . containerCache )){ if ( ! this . instance . isOver ){ this . instance . isOver = 1 ; this . instance . currentItem = $ ( self ). clone (). appendTo ( this . instance . element ). data ( "sortable-item" , true ); this . instance . options . _helper = this . instance . options . helper ; this . instance . options . helper = function (){ return ui . helper [ 0 ];}; event . target = this . instance . currentItem [ 0 ]; this . instance . _mouseCapture ( event , true ); this . instance . _mouseStart ( event , true , true ); this . instance . offset . click . top = inst . offset . click . top ; this . instance . offset . click . left = inst . offset . click . left ; this . instance . offset . parent . left -= inst . offset . parent . left - this . instance . offset . parent . left ; this . instance . offset . parent . top -= inst . offset . parent . top - this . instance . offset . parent . top ; inst . _trigger ( "toSortable" , event ); inst . dropped = this . instance . element ; inst . currentItem = inst . element ; this . instance . fromOutside = inst ;}
if ( this . instance . currentItem ) this . instance . _mouseDrag ( event );} else { if ( this . instance . isOver ){ this . instance . isOver = 0 ; this . instance . cancelHelperRemoval = true ; this . instance . options . revert = false ; this . instance . _trigger ( 'out' , event , this . instance . _uiHash ( this . instance )); this . instance . _mouseStop ( event , true ); this . instance . options . helper = this . instance . options . _helper ; this . instance . currentItem . remove (); if ( this . instance . placeholder ) this . instance . placeholder . remove (); inst . _trigger ( "fromSortable" , event ); inst . dropped = false ;}};});}}); $ . ui . plugin . add ( "draggable" , "cursor" ,{ start : function ( event , ui ){ var t = $ ( 'body' ), o = $ ( this ). data ( 'draggable' ). options ; if ( t . css ( "cursor" )) o . _cursor = t . css ( "cursor" ); t . css ( "cursor" , o . cursor );}, stop : function ( event , ui ){ var o = $ ( this ). data ( 'draggable' ). options ; if ( o . _cursor ) $ ( 'body' ). css ( "cursor" , o . _cursor );}}); $ . ui . plugin . add ( "draggable" , "iframeFix" ,{ start : function ( event , ui ){ var o = $ ( this ). data ( 'draggable' ). options ; $ ( o . iframeFix === true ? "iframe" : o . iframeFix ). each ( function (){ $ ( '<div class="ui-draggable-iframeFix" style="background: #fff;"></div>' ). css ({ width : this . offsetWidth + "px" , height : this . offsetHeight + "px" , position : "absolute" , opacity : "0.001" , zIndex : 1000 }). css ( $ ( this ). offset ()). appendTo ( "body" );});}, stop : function ( event , ui ){ $ ( "div.ui-draggable-iframeFix" ). each ( function (){ this . parentNode . removeChild ( this );});}}); $ . ui . plugin . add ( "draggable" , "opacity" ,{ start : function ( event , ui ){ var t = $ ( ui . helper ), o = $ ( this ). data ( 'draggable' ). options ; if ( t . css ( "opacity" )) o . _opacity = t . css ( "opacity" ); t . css ( 'opacity' , o . opacity );}, stop : function ( event , ui ){ var o = $ ( this ). data ( 'draggable' ). options ; if ( o . _opacity ) $ ( ui . helper ). css ( 'opacity' , o . _opacity );}}); $ . ui . plugin . add ( "draggable" , "scroll" ,{ start : function ( event , ui ){ var i = $ ( this ). data ( "draggable" ); if ( i . scrollParent [ 0 ] != document && i . scrollParent [ 0 ]. tagName != 'HTML' ) i . overflowOffset = i . scrollParent . offset ();}, drag : function ( event , ui ){ var i = $ ( this ). data ( "draggable" ), o = i . options , scrolled = false ; if ( i . scrollParent [ 0 ] != document && i . scrollParent [ 0 ]. tagName != 'HTML' ){ if ( ! o . axis || o . axis != 'x' ){ if (( i . overflowOffset . top + i . scrollParent [ 0 ]. offsetHeight ) - event . pageY < o . scrollSensitivity )
i . scrollParent [ 0 ]. scrollTop = scrolled = i . scrollParent [ 0 ]. scrollTop + o . scrollSpeed ; else if ( event . pageY - i . overflowOffset . top < o . scrollSensitivity )
i . scrollParent [ 0 ]. scrollTop = scrolled = i . scrollParent [ 0 ]. scrollTop - o . scrollSpeed ;}
if ( ! o . axis || o . axis != 'y' ){ if (( i . overflowOffset . left + i . scrollParent [ 0 ]. offsetWidth ) - event . pageX < o . scrollSensitivity )
i . scrollParent [ 0 ]. scrollLeft = scrolled = i . scrollParent [ 0 ]. scrollLeft + o . scrollSpeed ; else if ( event . pageX - i . overflowOffset . left < o . scrollSensitivity )
i . scrollParent [ 0 ]. scrollLeft = scrolled = i . scrollParent [ 0 ]. scrollLeft - o . scrollSpeed ;}} else { if ( ! o . axis || o . axis != 'x' ){ if ( event . pageY - $ ( document ). scrollTop () < o . scrollSensitivity )
scrolled = $ ( document ). scrollTop ( $ ( document ). scrollTop () - o . scrollSpeed ); else if ( $ ( window ). height () - ( event . pageY - $ ( document ). scrollTop ()) < o . scrollSensitivity )
scrolled = $ ( document ). scrollTop ( $ ( document ). scrollTop () + o . scrollSpeed );}
if ( ! o . axis || o . axis != 'y' ){ if ( event . pageX - $ ( document ). scrollLeft () < o . scrollSensitivity )
scrolled = $ ( document ). scrollLeft ( $ ( document ). scrollLeft () - o . scrollSpeed ); else if ( $ ( window ). width () - ( event . pageX - $ ( document ). scrollLeft ()) < o . scrollSensitivity )
scrolled = $ ( document ). scrollLeft ( $ ( document ). scrollLeft () + o . scrollSpeed );}}
if ( scrolled !== false && $ . ui . ddmanager &&! o . dropBehaviour )
$ . ui . ddmanager . prepareOffsets ( i , event );}}); $ . ui . plugin . add ( "draggable" , "snap" ,{ start : function ( event , ui ){ var i = $ ( this ). data ( "draggable" ), o = i . options ; i . snapElements = []; $ ( o . snap . constructor != String ? ( o . snap . items || ':data(draggable)' ) : o . snap ). each ( function (){ var $t = $ ( this ); var $o = $t . offset (); if ( this != i . element [ 0 ]) i . snapElements . push ({ item : this , width : $t . outerWidth (), height : $t . outerHeight (), top : $o . top , left : $o . left });});}, drag : function ( event , ui ){ var inst = $ ( this ). data ( "draggable" ), o = inst . options ; var d = o . snapTolerance ; var x1 = ui . offset . left , x2 = x1 + inst . helperProportions . width , y1 = ui . offset . top , y2 = y1 + inst . helperProportions . height ; for ( var i = inst . snapElements . length - 1 ; i >= 0 ; i -- ){ var l = inst . snapElements [ i ]. left , r = l + inst . snapElements [ i ]. width , t = inst . snapElements [ i ]. top , b = t + inst . snapElements [ i ]. height ; if ( ! (( l - d < x1 && x1 < r + d && t - d < y1 && y1 < b + d ) || ( l - d < x1 && x1 < r + d && t - d < y2 && y2 < b + d ) || ( l - d < x2 && x2 < r + d && t - d < y1 && y1 < b + d ) || ( l - d < x2 && x2 < r + d && t - d < y2 && y2 < b + d ))){ if ( inst . snapElements [ i ]. snapping )( inst . options . snap . release && inst . options . snap . release . call ( inst . element , event , $ . extend ( inst . _uiHash (),{ snapItem : inst . snapElements [ i ]. item }))); inst . snapElements [ i ]. snapping = false ; continue ;}
if ( o . snapMode != 'inner' ){ var ts = Math . abs ( t - y2 ) <= d ; var bs = Math . abs ( b - y1 ) <= d ; var ls = Math . abs ( l - x2 ) <= d ; var rs = Math . abs ( r - x1 ) <= d ; if ( ts ) ui . position . top = inst . _convertPositionTo ( "relative" ,{ top : t - inst . helperProportions . height , left : 0 }). top - inst . margins . top ; if ( bs ) ui . position . top = inst . _convertPositionTo ( "relative" ,{ top : b , left : 0 }). top - inst . margins . top ; if ( ls ) ui . position . left = inst . _convertPositionTo ( "relative" ,{ top : 0 , left : l - inst . helperProportions . width }). left - inst . margins . left ; if ( rs ) ui . position . left = inst . _convertPositionTo ( "relative" ,{ top : 0 , left : r }). left - inst . margins . left ;}
var first = ( ts || bs || ls || rs ); if ( o . snapMode != 'outer' ){ var ts = Math . abs ( t - y1 ) <= d ; var bs = Math . abs ( b - y2 ) <= d ; var ls = Math . abs ( l - x1 ) <= d ; var rs = Math . abs ( r - x2 ) <= d ; if ( ts ) ui . position . top = inst . _convertPositionTo ( "relative" ,{ top : t , left : 0 }). top - inst . margins . top ; if ( bs ) ui . position . top = inst . _convertPositionTo ( "relative" ,{ top : b - inst . helperProportions . height , left : 0 }). top - inst . margins . top ; if ( ls ) ui . position . left = inst . _convertPositionTo ( "relative" ,{ top : 0 , left : l }). left - inst . margins . left ; if ( rs ) ui . position . left = inst . _convertPositionTo ( "relative" ,{ top : 0 , left : r - inst . helperProportions . width }). left - inst . margins . left ;}
if ( ! inst . snapElements [ i ]. snapping && ( ts || bs || ls || rs || first ))
( inst . options . snap . snap && inst . options . snap . snap . call ( inst . element , event , $ . extend ( inst . _uiHash (),{ snapItem : inst . snapElements [ i ]. item }))); inst . snapElements [ i ]. snapping = ( ts || bs || ls || rs || first );};}}); $ . ui . plugin . add ( "draggable" , "stack" ,{ start : function ( event , ui ){ var o = $ ( this ). data ( "draggable" ). options ; var group = $ . makeArray ( $ ( o . stack . group )). sort ( function ( a , b ){ return ( parseInt ( $ ( a ). css ( "zIndex" ), 10 ) || o . stack . min ) - ( parseInt ( $ ( b ). css ( "zIndex" ), 10 ) || o . stack . min );}); $ ( group ). each ( function ( i ){ this . style . zIndex = o . stack . min + i ;}); this [ 0 ]. style . zIndex = o . stack . min + group . length ;}}); $ . ui . plugin . add ( "draggable" , "zIndex" ,{ start : function ( event , ui ){ var t = $ ( ui . helper ), o = $ ( this ). data ( "draggable" ). options ; if ( t . css ( "zIndex" )) o . _zIndex = t . css ( "zIndex" ); t . css ( 'zIndex' , o . zIndex );}, stop : function ( event , ui ){ var o = $ ( this ). data ( "draggable" ). options ; if ( o . _zIndex ) $ ( ui . helper ). css ( 'zIndex' , o . _zIndex );}});})( jQuery );( function ( $ ){ $ . widget ( "ui.droppable" ,{ _init : function (){ var o = this . options , accept = o . accept ; this . isover = 0 ; this . isout = 1 ; this . options . accept = this . options . accept && $ . isFunction ( this . options . accept ) ? this . options . accept : function ( d ){ return d . is ( accept );}; this . proportions = { width : this . element [ 0 ]. offsetWidth , height : this . element [ 0 ]. offsetHeight }; $ . ui . ddmanager . droppables [ this . options . scope ] = $ . ui . ddmanager . droppables [ this . options . scope ] || []; $ . ui . ddmanager . droppables [ this . options . scope ]. push ( this );( this . options . addClasses && this . element . addClass ( "ui-droppable" ));}, destroy : function (){ var drop = $ . ui . ddmanager . droppables [ this . options . scope ]; for ( var i = 0 ; i < drop . length ; i ++ )
if ( drop [ i ] == this )
drop . splice ( i , 1 ); this . element . removeClass ( "ui-droppable ui-droppable-disabled" ). removeData ( "droppable" ). unbind ( ".droppable" );}, _setData : function ( key , value ){ if ( key == 'accept' ){ this . options . accept = value && $ . isFunction ( value ) ? value : function ( d ){ return d . is ( value );};} else { $ . widget . prototype . _setData . apply ( this , arguments );}}, _activate : function ( event ){ var draggable = $ . ui . ddmanager . current ; if ( this . options . activeClass ) this . element . addClass ( this . options . activeClass );( draggable && this . _trigger ( 'activate' , event , this . ui ( draggable )));}, _deactivate : function ( event ){ var draggable = $ . ui . ddmanager . current ; if ( this . options . activeClass ) this . element . removeClass ( this . options . activeClass );( draggable && this . _trigger ( 'deactivate' , event , this . ui ( draggable )));}, _over : function ( event ){ var draggable = $ . ui . ddmanager . current ; if ( ! draggable || ( draggable . currentItem || draggable . element )[ 0 ] == this . element [ 0 ]) return ; if ( this . options . accept . call ( this . element [ 0 ],( draggable . currentItem || draggable . element ))){ if ( this . options . hoverClass ) this . element . addClass ( this . options . hoverClass ); this . _trigger ( 'over' , event , this . ui ( draggable ));}}, _out : function ( event ){ var draggable = $ . ui . ddmanager . current ; if ( ! draggable || ( draggable . currentItem || draggable . element )[ 0 ] == this . element [ 0 ]) return ; if ( this . options . accept . call ( this . element [ 0 ],( draggable . currentItem || draggable . element ))){ if ( this . options . hoverClass ) this . element . removeClass ( this . options . hoverClass ); this . _trigger ( 'out' , event , this . ui ( draggable ));}}, _drop : function ( event , custom ){ var draggable = custom || $ . ui . ddmanager . current ; if ( ! draggable || ( draggable . currentItem || draggable . element )[ 0 ] == this . element [ 0 ]) return false ; var childrenIntersection = false ; this . element . find ( ":data(droppable)" ). not ( ".ui-draggable-dragging" ). each ( function (){ var inst = $ . data ( this , 'droppable' ); if ( inst . options . greedy && $ . ui . intersect ( draggable , $ . extend ( inst ,{ offset : inst . element . offset ()}), inst . options . tolerance )){ childrenIntersection = true ; return false ;}}); if ( childrenIntersection ) return false ; if ( this . options . accept . call ( this . element [ 0 ],( draggable . currentItem || draggable . element ))){ if ( this . options . activeClass ) this . element . removeClass ( this . options . activeClass ); if ( this . options . hoverClass ) this . element . removeClass ( this . options . hoverClass ); this . _trigger ( 'drop' , event , this . ui ( draggable )); return this . element ;}
return false ;}, ui : function ( c ){ return { draggable : ( c . currentItem || c . element ), helper : c . helper , position : c . position , absolutePosition : c . positionAbs , offset : c . positionAbs };}}); $ . extend ( $ . ui . droppable ,{ version : "1.7.2" , eventPrefix : 'drop' , defaults : { accept : '*' , activeClass : false , addClasses : true , greedy : false , hoverClass : false , scope : 'default' , tolerance : 'intersect' }}); $ . ui . intersect = function ( draggable , droppable , toleranceMode ){ if ( ! droppable . offset ) return false ; var x1 = ( draggable . positionAbs || draggable . position . absolute ). left , x2 = x1 + draggable . helperProportions . width , y1 = ( draggable . positionAbs || draggable . position . absolute ). top , y2 = y1 + draggable . helperProportions . height ; var l = droppable . offset . left , r = l + droppable . proportions . width , t = droppable . offset . top , b = t + droppable . proportions . height ; switch ( toleranceMode ){ case 'fit' : return ( l < x1 && x2 < r && t < y1 && y2 < b ); break ; case 'intersect' : return ( l < x1 + ( draggable . helperProportions . width / 2 ) && x2 - ( draggable . helperProportions . width / 2 ) < r && t < y1 + ( draggable . helperProportions . height / 2 ) && y2 - ( draggable . helperProportions . height / 2 ) < b ); break ; case 'pointer' : var draggableLeft = (( draggable . positionAbs || draggable . position . absolute ). left + ( draggable . clickOffset || draggable . offset . click ). left ), draggableTop = (( draggable . positionAbs || draggable . position . absolute ). top + ( draggable . clickOffset || draggable . offset . click ). top ), isOver = $ . ui . isOver ( draggableTop , draggableLeft , t , l , droppable . proportions . height , droppable . proportions . width ); return isOver ; break ; case 'touch' : return (( y1 >= t && y1 <= b ) || ( y2 >= t && y2 <= b ) || ( y1 < t && y2 > b )) && (( x1 >= l && x1 <= r ) || ( x2 >= l && x2 <= r ) || ( x1 < l && x2 > r )); break ; default : return false ; break ;}}; $ . ui . ddmanager = { current : null , droppables : { 'default' : []}, prepareOffsets : function ( t , event ){ var m = $ . ui . ddmanager . droppables [ t . options . scope ]; var type = event ? event . type : null ; var list = ( t . currentItem || t . element ). find ( ":data(droppable)" ). andSelf (); droppablesLoop : for ( var i = 0 ; i < m . length ; i ++ ){ if ( m [ i ]. options . disabled || ( t &&! m [ i ]. options . accept . call ( m [ i ]. element [ 0 ],( t . currentItem || t . element )))) continue ; for ( var j = 0 ; j < list . length ; j ++ ){ if ( list [ j ] == m [ i ]. element [ 0 ]){ m [ i ]. proportions . height = 0 ; continue droppablesLoop ;}}; m [ i ]. visible = m [ i ]. element . css ( "display" ) != "none" ; if ( ! m [ i ]. visible ) continue ; m [ i ]. offset = m [ i ]. element . offset (); m [ i ]. proportions = { width : m [ i ]. element [ 0 ]. offsetWidth , height : m [ i ]. element [ 0 ]. offsetHeight }; if ( type == "mousedown" ) m [ i ]. _activate . call ( m [ i ], event );}}, drop : function ( draggable , event ){ var dropped = false ; $ . each ( $ . ui . ddmanager . droppables [ draggable . options . scope ], function (){ if ( ! this . options ) return ; if ( ! this . options . disabled && this . visible && $ . ui . intersect ( draggable , this , this . options . tolerance ))
dropped = this . _drop . call ( this , event ); if ( ! this . options . disabled && this . visible && this . options . accept . call ( this . element [ 0 ],( draggable . currentItem || draggable . element ))){ this . isout = 1 ; this . isover = 0 ; this . _deactivate . call ( this , event );}}); return dropped ;}, drag : function ( draggable , event ){ if ( draggable . options . refreshPositions ) $ . ui . ddmanager . prepareOffsets ( draggable , event ); $ . each ( $ . ui . ddmanager . droppables [ draggable . options . scope ], function (){ if ( this . options . disabled || this . greedyChild ||! this . visible ) return ; var intersects = $ . ui . intersect ( draggable , this , this . options . tolerance ); var c =! intersects && this . isover == 1 ? 'isout' : ( intersects && this . isover == 0 ? 'isover' : null ); if ( ! c ) return ; var parentInstance ; if ( this . options . greedy ){ var parent = this . element . parents ( ':data(droppable):eq(0)' ); if ( parent . length ){ parentInstance = $ . data ( parent [ 0 ], 'droppable' ); parentInstance . greedyChild = ( c == 'isover' ? 1 : 0 );}}
if ( parentInstance && c == 'isover' ){ parentInstance [ 'isover' ] = 0 ; parentInstance [ 'isout' ] = 1 ; parentInstance . _out . call ( parentInstance , event );}
this [ c ] = 1 ; this [ c == 'isout' ? 'isover' : 'isout' ] = 0 ; this [ c == "isover" ? "_over" : "_out" ]. call ( this , event ); if ( parentInstance && c == 'isout' ){ parentInstance [ 'isout' ] = 0 ; parentInstance [ 'isover' ] = 1 ; parentInstance . _over . call ( parentInstance , event );}});}};})( jQuery );( function ( $ ){ $ . widget ( "ui.resizable" , $ . extend ({}, $ . ui . mouse ,{ _init : function (){ var self = this , o = this . options ; this . element . addClass ( "ui-resizable" ); $ . extend ( this ,{ _aspectRatio :!! ( o . aspectRatio ), aspectRatio : o . aspectRatio , originalElement : this . element , _proportionallyResizeElements : [], _helper : o . helper || o . ghost || o . animate ? o . helper || 'ui-resizable-helper' : null }); if ( this . element [ 0 ]. nodeName . match ( /canvas|textarea|input|select|button|img/i )){ if ( /relative/ . test ( this . element . css ( 'position' )) && $ . browser . opera )
this . element . css ({ position : 'relative' , top : 'auto' , left : 'auto' }); this . element . wrap ( $ ( '<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 = true ; 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 = o . handles || ( ! $ ( '.ui-resizable-handle' , this . element ). length ? "e,s,se" : { 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' }); if ( this . handles . constructor == String ){ if ( this . handles == 'all' ) this . handles = 'n,e,s,w,se,sw,ne,nw' ; var n = this . handles . split ( "," ); this . handles = {}; for ( var i = 0 ; i < n . length ; i ++ ){ var handle = $ . trim ( n [ i ]), hname = 'ui-resizable-' + handle ; var axis = $ ( '<div class="ui-resizable-handle ' + hname + '"></div>' ); if ( /sw|se|ne|nw/ . test ( handle )) axis . css ({ zIndex :++ o . zIndex }); if ( 'se' == handle ){ axis . addClass ( 'ui-icon ui-icon-gripsmall-diagonal-se' );}; this . handles [ handle ] = '.ui-resizable-' + handle ; this . element . append ( axis );}}
this . _renderAxis = function ( target ){ target = target || this . element ; for ( var i in this . handles ){ if ( this . handles [ i ]. constructor == String )
this . handles [ i ] = $ ( this . handles [ i ], this . element ). show (); if ( this . elementIsWrapper && this . originalElement [ 0 ]. nodeName . match ( /textarea|input|select|button/i )){ var axis = $ ( this . handles [ i ], this . element ), padWrapper = 0 ; padWrapper = /sw|ne|nw|se|n|s/ . test ( i ) ? axis . outerHeight () : axis . outerWidth (); var padPos = [ 'padding' , /ne|nw|n/ . test ( i ) ? 'Top' : /se|sw|s/ . test ( i ) ? 'Bottom' : /^e$/ . test ( i ) ? 'Right' : 'Left' ]. join ( "" ); target . css ( padPos , padWrapper ); this . _proportionallyResize ();}
if ( ! $ ( this . handles [ i ]). length )
continue ;}}; this . _renderAxis ( this . element ); this . _handles = $ ( '.ui-resizable-handle' , this . element ). disableSelection (); this . _handles . mouseover ( function (){ if ( ! self . resizing ){ if ( this . className )
var axis = this . className . match ( /ui-resizable-(se|sw|ne|nw|n|e|s|w)/i ); self . axis = axis && axis [ 1 ] ? axis [ 1 ] : 'se' ;}}); if ( o . autoHide ){ this . _handles . hide (); $ ( this . element ). addClass ( "ui-resizable-autohide" ). hover ( function (){ $ ( this ). removeClass ( "ui-resizable-autohide" ); self . _handles . show ();}, function (){ if ( ! self . resizing ){ $ ( this ). addClass ( "ui-resizable-autohide" ); self . _handles . hide ();}});}
this . _mouseInit ();}, destroy : function (){ this . _mouseDestroy (); var _destroy = function ( exp ){ $ ( exp ). removeClass ( "ui-resizable ui-resizable-disabled ui-resizable-resizing" ). removeData ( "resizable" ). unbind ( ".resizable" ). find ( '.ui-resizable-handle' ). remove ();}; if ( this . elementIsWrapper ){ _destroy ( this . element ); var wrapper = this . element ; wrapper . parent (). append ( this . originalElement . css ({ position : wrapper . css ( 'position' ), width : wrapper . outerWidth (), height : wrapper . outerHeight (), top : wrapper . css ( 'top' ), left : wrapper . css ( 'left' )})). end (). remove ();}
this . originalElement . css ( 'resize' , this . originalResizeStyle ); _destroy ( this . originalElement );}, _mouseCapture : function ( event ){ var handle = false ; for ( var i in this . handles ){ if ( $ ( this . handles [ i ])[ 0 ] == event . target ) handle = true ;}
return this . options . disabled ||!! handle ;}, _mouseStart : function ( event ){ var o = this . options , iniPos = this . element . position (), el = this . element ; this . resizing = true ; this . documentScroll = { top : $ ( document ). scrollTop (), left : $ ( document ). scrollLeft ()}; if ( el . is ( '.ui-draggable' ) || ( /absolute/ ). test ( el . css ( 'position' ))){ el . css ({ position : 'absolute' , top : iniPos . top , left : iniPos . left });}
if ( $ . browser . opera && ( /relative/ ). test ( el . css ( 'position' )))
el . css ({ position : 'relative' , top : 'auto' , left : 'auto' }); this . _renderProxy (); var curleft = num ( this . helper . css ( 'left' )), curtop = num ( this . helper . css ( 'top' )); if ( o . containment ){ curleft += $ ( o . containment ). scrollLeft () || 0 ; curtop += $ ( o . containment ). scrollTop () || 0 ;}
this . offset = this . helper . offset (); this . position = { left : curleft , top : curtop }; this . size = this . _helper ? { width : el . outerWidth (), height : el . outerHeight ()} : { width : el . width (), height : el . height ()}; this . originalSize = this . _helper ? { width : el . outerWidth (), height : el . outerHeight ()} : { width : el . width (), height : el . height ()}; this . originalPosition = { left : curleft , top : curtop }; this . sizeDiff = { width : el . outerWidth () - el . width (), height : el . outerHeight () - el . height ()}; this . originalMousePosition = { left : event . pageX , top : event . pageY }; this . aspectRatio = ( typeof o . aspectRatio == 'number' ) ? o . aspectRatio : (( this . originalSize . width / this . originalSize . height ) || 1 ); var cursor = $ ( '.ui-resizable-' + this . axis ). css ( 'cursor' ); $ ( 'body' ). css ( 'cursor' , cursor == 'auto' ? this . axis + '-resize' : cursor ); el . addClass ( "ui-resizable-resizing" ); this . _propagate ( "start" , event ); return true ;}, _mouseDrag : function ( event ){ var el = this . helper , o = this . options , props = {}, self = this , smp = this . originalMousePosition , a = this . axis ; var dx = ( event . pageX - smp . left ) || 0 , dy = ( event . pageY - smp . top ) || 0 ; var trigger = this . _change [ a ]; if ( ! trigger ) return false ; var data = trigger . apply ( this ,[ event , dx , dy ]), ie6 = $ . browser . msie && $ . browser . version < 7 , csdif = this . sizeDiff ; if ( this . _aspectRatio || event . shiftKey )
data = this . _updateRatio ( data , event ); data = this . _respectSize ( data , event ); this . _propagate ( "resize" , event ); el . css ({ top : this . position . top + "px" , left : this . position . left + "px" , width : this . size . width + "px" , height : this . size . height + "px" }); if ( ! this . _helper && this . _proportionallyResizeElements . length )
this . _proportionallyResize (); this . _updateCache ( data ); this . _trigger ( 'resize' , event , this . ui ()); return false ;}, _mouseStop : function ( event ){ this . resizing = false ; var o = this . options , self = this ; if ( this . _helper ){ var pr = this . _proportionallyResizeElements , ista = pr . length && ( /textarea/i ). test ( pr [ 0 ]. nodeName ), soffseth = ista && $ . ui . hasScroll ( pr [ 0 ], 'left' ) ? 0 : self . sizeDiff . height , soffsetw = ista ? 0 : self . sizeDiff . width ; var s = { width : ( self . size . width - soffsetw ), height : ( self . size . height - soffseth )}, left = ( parseInt ( self . element . css ( 'left' ), 10 ) + ( self . position . left - self . originalPosition . left )) || null , top = ( parseInt ( self . element . css ( 'top' ), 10 ) + ( self . position . top - self . originalPosition . top )) || null ; if ( ! o . animate )
this . element . css ( $ . extend ( s ,{ top : top , left : left })); self . helper . height ( self . size . height ); self . helper . width ( self . size . width ); if ( this . _helper &&! o . animate ) this . _proportionallyResize ();}
$ ( 'body' ). css ( 'cursor' , 'auto' ); this . element . removeClass ( "ui-resizable-resizing" ); this . _propagate ( "stop" , event ); if ( this . _helper ) this . helper . remove (); return false ;}, _updateCache : function ( data ){ var o = this . options ; this . offset = this . helper . offset (); if ( isNumber ( data . left )) this . position . left = data . left ; if ( isNumber ( data . top )) this . position . top = data . top ; if ( isNumber ( data . height )) this . size . height = data . height ; if ( isNumber ( data . width )) this . size . width = data . width ;}, _updateRatio : function ( data , event ){ var o = this . options , cpos = this . position , csize = this . size , a = this . axis ; if ( data . height ) data . width = ( csize . height * this . aspectRatio ); else if ( data . width ) data . height = ( csize . width / this . aspectRatio ); if ( a == 'sw' ){ data . left = cpos . left + ( csize . width - data . width ); data . top = null ;}
if ( a == 'nw' ){ data . top = cpos . top + ( csize . height - data . height ); data . left = cpos . left + ( csize . width - data . width );}
return data ;}, _respectSize : function ( data , event ){ var el = this . helper , o = this . options , pRatio = this . _aspectRatio || event . shiftKey , a = this . axis , ismaxw = isNumber ( data . width ) && o . maxWidth && ( o . maxWidth < data . width ), ismaxh = isNumber ( data . height ) && o . maxHeight && ( o . maxHeight < data . height ), isminw = isNumber ( data . width ) && o . minWidth && ( o . minWidth > data . width ), isminh = isNumber ( data . height ) && o . minHeight && ( o . minHeight > data . height ); if ( isminw ) data . width = o . minWidth ; if ( isminh ) data . height = o . minHeight ; if ( ismaxw ) data . width = o . maxWidth ; if ( ismaxh ) data . height = o . maxHeight ; var dw = this . originalPosition . left + this . originalSize . width , dh = this . position . top + this . size . height ; var cw = /sw|nw|w/ . test ( a ), ch = /nw|ne|n/ . test ( a ); if ( isminw && cw ) data . left = dw - o . minWidth ; if ( ismaxw && cw ) data . left = dw - o . maxWidth ; if ( isminh && ch ) data . top = dh - o . minHeight ; if ( ismaxh && ch ) data . top = dh - o . maxHeight ; var isNotwh =! data . width &&! data . height ; if ( isNotwh &&! data . left && data . top ) data . top = null ; else if ( isNotwh &&! data . top && data . left ) data . left = null ; return data ;}, _proportionallyResize : function (){ var o = this . options ; if ( ! this . _proportionallyResizeElements . length ) return ; var element = this . helper || this . element ; for ( var i = 0 ; i < this . _proportionallyResizeElements . length ; i ++ ){ var prel = this . _proportionallyResizeElements [ i ]; if ( ! this . borderDif ){ var b = [ prel . css ( 'borderTopWidth' ), prel . css ( 'borderRightWidth' ), prel . css ( 'borderBottomWidth' ), prel . css ( 'borderLeftWidth' )], p = [ prel . css ( 'paddingTop' ), prel . css ( 'paddingRight' ), prel . css ( 'paddingBottom' ), prel . css ( 'paddingLeft' )]; this . borderDif = $ . map ( b , function ( v , i ){ var border = parseInt ( v , 10 ) || 0 , padding = parseInt ( p [ i ], 10 ) || 0 ; return border + padding ;});}
if ( $ . browser . msie &&! ( ! ( $ ( element ). is ( ':hidden' ) || $ ( element ). parents ( ':hidden' ). length )))
continue ; prel . css ({ height : ( element . height () - this . borderDif [ 0 ] - this . borderDif [ 2 ]) || 0 , width : ( element . width () - this . borderDif [ 1 ] - this . borderDif [ 3 ]) || 0 });};}, _renderProxy : function (){ var el = this . element , o = this . options ; this . elementOffset = el . offset (); if ( this . _helper ){ this . helper = this . helper || $ ( '<div style="overflow:hidden;"></div>' ); var ie6 = $ . browser . msie && $ . browser . version < 7 , ie6offset = ( ie6 ? 1 : 0 ), pxyoffset = ( ie6 ? 2 :- 1 ); this . helper . addClass ( this . _helper ). css ({ width : this . element . outerWidth () + pxyoffset , height : this . element . outerHeight () + pxyoffset , position : 'absolute' , left : this . elementOffset . left - ie6offset + 'px' , top : this . elementOffset . top - ie6offset + 'px' , zIndex :++ o . zIndex }); this . helper . appendTo ( "body" ). disableSelection ();} else { this . helper = this . element ;}}, _change : { e : function ( event , dx , dy ){ return { width : this . originalSize . width + dx };}, w : function ( event , dx , dy ){ var o = this . options , cs = this . originalSize , sp = this . originalPosition ; return { left : sp . left + dx , width : cs . width - dx };}, n : function ( event , dx , dy ){ var o = this . options , cs = this . originalSize , sp = this . originalPosition ; return { top : sp . top + dy , height : cs . height - dy };}, s : function ( event , dx , dy ){ return { height : this . originalSize . height + dy };}, se : function ( event , dx , dy ){ return $ . extend ( this . _change . s . apply ( this , arguments ), this . _change . e . apply ( this ,[ event , dx , dy ]));}, sw : function ( event , dx , dy ){ return $ . extend ( this . _change . s . apply ( this , arguments ), this . _change . w . apply ( this ,[ event , dx , dy ]));}, ne : function ( event , dx , dy ){ return $ . extend ( this . _change . n . apply ( this , arguments ), this . _change . e . apply ( this ,[ event , dx , dy ]));}, nw : function ( event , dx , dy ){ return $ . extend ( this . _change . n . apply ( this , arguments ), this . _change . w . apply ( this ,[ event , dx , dy ]));}}, _propagate : function ( n , event ){ $ . ui . plugin . call ( this , n ,[ event , this . ui ()]);( n != "resize" && this . _trigger ( n , event , 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 };}})); $ . extend ( $ . ui . resizable ,{ version : "1.7.2" , eventPrefix : "resize" , defaults : { alsoResize : false , animate : false , animateDuration : "slow" , animateEasing : "swing" , aspectRatio : false , autoHide : false , cancel : ":input,option" , containment : false , delay : 0 , distance : 1 , ghost : false , grid : false , handles : "e,s,se" , helper : false , maxHeight : null , maxWidth : null , minHeight : 10 , minWidth : 10 , zIndex : 1000 }}); $ . ui . plugin . add ( "resizable" , "alsoResize" ,{ start : function ( event , ui ){ var self = $ ( this ). data ( "resizable" ), o = self . options ; _store = function ( exp ){ $ ( exp ). each ( function (){ $ ( this ). data ( "resizable-alsoresize" ,{ width : parseInt ( $ ( this ). width (), 10 ), height : parseInt ( $ ( this ). height (), 10 ), left : parseInt ( $ ( this ). css ( 'left' ), 10 ), top : parseInt ( $ ( this ). css ( 'top' ), 10 )});});}; if ( typeof ( o . alsoResize ) == 'object' &&! o . alsoResize . parentNode ){ if ( o . alsoResize . length ){ o . alsoResize = o . alsoResize [ 0 ]; _store ( o . alsoResize );}
else { $ . each ( o . alsoResize , function ( exp , c ){ _store ( exp );});}} else { _store ( o . alsoResize );}}, resize : function ( event , ui ){ var self = $ ( this ). data ( "resizable" ), o = self . options , os = self . originalSize , op = self . originalPosition ; var delta = { height : ( self . size . height - os . height ) || 0 , width : ( self . size . width - os . width ) || 0 , top : ( self . position . top - op . top ) || 0 , left : ( self . position . left - op . left ) || 0 }, _alsoResize = function ( exp , c ){ $ ( exp ). each ( function (){ var el = $ ( this ), start = $ ( this ). data ( "resizable-alsoresize" ), style = {}, css = c && c . length ? c : [ 'width' , 'height' , 'top' , 'left' ]; $ . each ( css || [ 'width' , 'height' , 'top' , 'left' ], function ( i , prop ){ var sum = ( start [ prop ] || 0 ) + ( delta [ prop ] || 0 ); if ( sum && sum >= 0 )
style [ prop ] = sum || null ;}); if ( /relative/ . test ( el . css ( 'position' )) && $ . browser . opera ){ self . _revertToRelativePosition = true ; el . css ({ position : 'absolute' , top : 'auto' , left : 'auto' });}
el . css ( style );});}; if ( typeof ( o . alsoResize ) == 'object' &&! o . alsoResize . nodeType ){ $ . each ( o . alsoResize , function ( exp , c ){ _alsoResize ( exp , c );});} else { _alsoResize ( o . alsoResize );}}, stop : function ( event , ui ){ var self = $ ( this ). data ( "resizable" ); if ( self . _revertToRelativePosition && $ . browser . opera ){ self . _revertToRelativePosition = false ; el . css ({ position : 'relative' });}
$ ( this ). removeData ( "resizable-alsoresize-start" );}}); $ . ui . plugin . add ( "resizable" , "animate" ,{ stop : function ( event , ui ){ var self = $ ( this ). data ( "resizable" ), o = self . options ; var pr = self . _proportionallyResizeElements , ista = pr . length && ( /textarea/i ). test ( pr [ 0 ]. nodeName ), soffseth = ista && $ . ui . hasScroll ( pr [ 0 ], 'left' ) ? 0 : self . sizeDiff . height , soffsetw = ista ? 0 : self . sizeDiff . width ; var style = { width : ( self . size . width - soffsetw ), height : ( self . size . height - soffseth )}, left = ( parseInt ( self . element . css ( 'left' ), 10 ) + ( self . position . left - self . originalPosition . left )) || null , top = ( parseInt ( self . element . css ( 'top' ), 10 ) + ( self . position . top - self . originalPosition . top )) || null ; self . element . animate ( $ . extend ( style , top && left ? { top : top , left : left } : {}),{ duration : o . animateDuration , easing : o . animateEasing , step : function (){ var data = { width : parseInt ( self . element . css ( 'width' ), 10 ), height : parseInt ( self . element . css ( 'height' ), 10 ), top : parseInt ( self . element . css ( 'top' ), 10 ), left : parseInt ( self . element . css ( 'left' ), 10 )}; if ( pr && pr . length ) $ ( pr [ 0 ]). css ({ width : data . width , height : data . height }); self . _updateCache ( data ); self . _propagate ( "resize" , event );}});}}); $ . ui . plugin . add ( "resizable" , "containment" ,{ start : function ( event , ui ){ var self = $ ( this ). data ( "resizable" ), o = self . options , el = self . element ; var oc = o . containment , ce = ( oc instanceof $ ) ? oc . get ( 0 ) : ( /parent/ . test ( oc )) ? el . parent (). get ( 0 ) : oc ; if ( ! ce ) return ; self . containerElement = $ ( ce ); if ( /document/ . test ( oc ) || oc == document ){ self . containerOffset = { left : 0 , top : 0 }; self . containerPosition = { left : 0 , top : 0 }; self . parentData = { element : $ ( document ), left : 0 , top : 0 , width : $ ( document ). width (), height : $ ( document ). height () || document . body . parentNode . scrollHeight };}
else { var element = $ ( ce ), p = []; $ ([ "Top" , "Right" , "Left" , "Bottom" ]). each ( function ( i , name ){ p [ i ] = num ( element . css ( "padding" + name ));}); self . containerOffset = element . offset (); self . containerPosition = element . position (); self . containerSize = { height : ( element . innerHeight () - p [ 3 ]), width : ( element . innerWidth () - p [ 1 ])}; var co = self . containerOffset , ch = self . containerSize . height , cw = self . containerSize . width , width = ( $ . ui . hasScroll ( ce , "left" ) ? ce . scrollWidth : cw ), height = ( $ . ui . hasScroll ( ce ) ? ce . scrollHeight : ch ); self . parentData = { element : ce , left : co . left , top : co . top , width : width , height : height };}}, resize : function ( event , ui ){ var self = $ ( this ). data ( "resizable" ), o = self . options , ps = self . containerSize , co = self . containerOffset , cs = self . size , cp = self . position , pRatio = self . _aspectRatio || event . shiftKey , cop = { top : 0 , left : 0 }, ce = self . containerElement ; if ( ce [ 0 ] != document && ( /static/ ). test ( ce . css ( 'position' ))) cop = co ; if ( cp . left < ( self . _helper ? co . left : 0 )){ self . size . width = self . size . width + ( self . _helper ? ( self . position . left - co . left ) : ( self . position . left - cop . left )); if ( pRatio ) self . size . height = self . size . width / o . aspectRatio ; self . position . left = o . helper ? co . left : 0 ;}
if ( cp . top < ( self . _helper ? co . top : 0 )){ self . size . height = self . size . height + ( self . _helper ? ( self . position . top - co . top ) : self . position . top ); if ( pRatio ) self . size . width = self . size . height * o . aspectRatio ; self . position . top = self . _helper ? co . top : 0 ;}
self . offset . left = self . parentData . left + self . position . left ; self . offset . top = self . parentData . top + self . position . top ; var woset = Math . abs (( self . _helper ? self . offset . left - cop . left : ( self . offset . left - cop . left )) + self . sizeDiff . width ), hoset = Math . abs (( self . _helper ? self . offset . top - cop . top : ( self . offset . top - co . top )) + self . sizeDiff . height ); var isParent = self . containerElement . get ( 0 ) == self . element . parent (). get ( 0 ), isOffsetRelative = /relative|absolute/ . test ( self . containerElement . css ( 'position' )); if ( isParent && isOffsetRelative ) woset -= self . parentData . left ; if ( woset + self . size . width >= self . parentData . width ){ self . size . width = self . parentData . width - woset ; if ( pRatio ) self . size . height = self . size . width / self . aspectRatio ;}
if ( hoset + self . size . height >= self . parentData . height ){ self . size . height = self . parentData . height - hoset ; if ( pRatio ) self . size . width = self . size . height * self . aspectRatio ;}}, stop : function ( event , ui ){ var self = $ ( this ). data ( "resizable" ), o = self . options , cp = self . position , co = self . containerOffset , cop = self . containerPosition , ce = self . containerElement ; var helper = $ ( self . helper ), ho = helper . offset (), w = helper . outerWidth () - self . sizeDiff . width , h = helper . outerHeight () - self . sizeDiff . height ; if ( self . _helper &&! o . animate && ( /relative/ ). test ( ce . css ( 'position' )))
$ ( this ). css ({ left : ho . left - cop . left - co . left , width : w , height : h }); if ( self . _helper &&! o . animate && ( /static/ ). test ( ce . css ( 'position' )))
$ ( this ). css ({ left : ho . left - cop . left - co . left , width : w , height : h });}}); $ . ui . plugin . add ( "resizable" , "ghost" ,{ start : function ( event , ui ){ var self = $ ( this ). data ( "resizable" ), o = self . options , cs = self . size ; self . ghost = self . originalElement . clone (); self . ghost . css ({ opacity : . 25 , display : 'block' , position : 'relative' , height : cs . height , width : cs . width , margin : 0 , left : 0 , top : 0 }). addClass ( 'ui-resizable-ghost' ). addClass ( typeof o . ghost == 'string' ? o . ghost : '' ); self . ghost . appendTo ( self . helper );}, resize : function ( event , ui ){ var self = $ ( this ). data ( "resizable" ), o = self . options ; if ( self . ghost ) self . ghost . css ({ position : 'relative' , height : self . size . height , width : self . size . width });}, stop : function ( event , ui ){ var self = $ ( this ). data ( "resizable" ), o = self . options ; if ( self . ghost && self . helper ) self . helper . get ( 0 ). removeChild ( self . ghost . get ( 0 ));}}); $ . ui . plugin . add ( "resizable" , "grid" ,{ resize : function ( event , ui ){ var self = $ ( this ). data ( "resizable" ), o = self . options , cs = self . size , os = self . originalSize , op = self . originalPosition , a = self . axis , ratio = o . _aspectRatio || event . shiftKey ; o . grid = typeof o . grid == "number" ? [ o . grid , o . grid ] : o . grid ; var ox = Math . round (( cs . width - os . width ) / ( o . grid [ 0 ] || 1 )) * ( o . grid [ 0 ] || 1 ), oy = Math . round (( cs . height - os . height ) / ( o . grid [ 1 ] || 1 )) * ( o . grid [ 1 ] || 1 ); if ( /^(se|s|e)$/ . test ( a )){ self . size . width = os . width + ox ; self . size . height = os . height + oy ;}
else if ( /^(ne)$/ . test ( a )){ self . size . width = os . width + ox ; self . size . height = os . height + oy ; self . position . top = op . top - oy ;}
else if ( /^(sw)$/ . test ( a )){ self . size . width = os . width + ox ; self . size . height = os . height + oy ; self . position . left = op . left - ox ;}
2009-09-16 08:46:55 -07:00
else { self . size . width = os . width + ox ; self . size . height = os . height + oy ; self . position . top = op . top - oy ; self . position . left = op . left - ox ;}}}); var num = function ( v ){ return parseInt ( v , 10 ) || 0 ;}; var isNumber = function ( value ){ return ! isNaN ( parseInt ( value , 10 ));};})( jQuery );( function ( $ ){ $ . widget ( "ui.selectable" , $ . extend ({}, $ . ui . mouse ,{ _init : function (){ var self = this ; this . element . addClass ( "ui-selectable" ); this . dragged = false ; var selectees ; this . refresh = function (){ selectees = $ ( self . options . filter , self . element [ 0 ]); selectees . each ( function (){ var $this = $ ( this ); var pos = $this . offset (); $ . data ( this , "selectable-item" ,{ element : this , $element : $this , left : pos . left , top : pos . top , right : pos . left + $this . outerWidth (), bottom : pos . top + $this . outerHeight (), startselected : false , selected : $this . hasClass ( 'ui-selected' ), selecting : $this . hasClass ( 'ui-selecting' ), unselecting : $this . hasClass ( 'ui-unselecting' )});});}; this . refresh (); this . selectees = selectees . addClass ( "ui-selectee" ); this . _mouseInit (); this . helper = $ ( document . createElement ( 'div' )). css ({ border : '1px dotted black' }). addClass ( "ui-selectable-helper" ); this . element . bind ( "mousedown.selectable" , function ( event ){ if ( event . pageX > self . element [ 0 ]. scrollWidth + self . element . offset (). left ){ return ;}
var selectee = self . _targetIsSelectable ( event . target ); if ( ! selectee ){ return ;}
var test = $ ( ".ui-selected" ). length ; if ( ! event . ctrlKey && $ ( ".ui-selected" ). length > 1 && $ ( selectee ). hasClass ( "ui-selected" )){ return ( self . _listenForMouseUp = 1 );}
if ( ! event . ctrlKey ){ $ ( ".ui-selected" ). each ( function (){ self . _removeSelection ( this , event );});}
self . _toggleSelection ( selectee , event ); event . preventDefault ();}). bind ( "mouseup.selectable" , function ( event ){ if ( self . _listenForMouseUp ){ self . _listenForMouseUp = 0 ; var selectee = self . _targetIsSelectable ( event . target ); if ( ! selectee ){ return ;}
self . _addSelection ( selectee , event ); event . preventDefault ();}})}, _addSelection : function ( selectee , event ){ $ ( selectee ). addClass ( "ui-selecting" ); this . _trigger ( "selecting" , event ,{ selecting : selectee }); $ ( selectee ). removeClass ( 'ui-selecting' ). addClass ( 'ui-selected' ); this . _trigger ( "selected" , event ,{ selected : selectee });}, _removeSelection : function ( selected , event ){ $ ( selected ). removeClass ( 'ui-selected' ). addClass ( 'ui-unselecting' ); this . _trigger ( "unselecting" , event ,{ unselecting : selected }); $ ( selected ). removeClass ( 'ui-unselecting' ); this . _trigger ( "unselected" , event ,{ unselected : selected });}, _toggleSelection : function ( selectee , event ){ if ( $ ( selectee ). hasClass ( "ui-selected" )){ this . _removeSelection ( selectee , event );} else { this . _addSelection ( selectee , event );}}, _targetIsSelectable : function ( target ){ var found = $ ( target ). parents (). andSelf (). filter ( ".ui-selectee" ); return found . length && found ;}, destroy : function (){ this . element . removeClass ( "ui-selectable ui-selectable-disabled" ). removeData ( "selectable" ). unbind ( ".selectable" ); this . _mouseDestroy ();}, _mouseStart : function ( event ){ var self = this ; if ( event . pageX > this . element [ 0 ]. scrollWidth + this . element . offset (). left ){ this . opos = null ; return ;}
this . opos = [ event . pageX , event . pageY ]; if ( this . options . disabled )
return ; var options = this . options , appendTo = $ ( options . appendTo ), parentOffset = appendTo . css ( 'position' ) == 'static' ? appendTo . offsetParent (). offset () : appendTo . offset (); this . selectees = $ ( options . filter , this . element [ 0 ]); this . _trigger ( "start" , event ); appendTo . append ( this . helper ); this . helper . css ({ "z-index" : 100 , "position" : "absolute" , "left" : event . clientX - parentOffset . left , "top" : event . clientY - parentOffset . top , "width" : 0 , "height" : 0 }); if ( options . autoRefresh ){ this . refresh ();}
this . selectees . filter ( '.ui-selected' ). each ( function (){ var selectee = $ . data ( this , "selectable-item" ); selectee . startselected = true ; if ( ! event . metaKey ){ selectee . $element . removeClass ( 'ui-selected' ); selectee . selected = false ; selectee . $element . addClass ( 'ui-unselecting' ); selectee . unselecting = true ; self . _trigger ( "unselecting" , event ,{ unselecting : selectee . element });}}); $ ( event . target ). parents (). andSelf (). each ( function (){ var selectee = $ . data ( this , "selectable-item" ); if ( selectee ){ selectee . $element . removeClass ( "ui-unselecting" ). addClass ( 'ui-selecting' ); selectee . unselecting = false ; selectee . selecting = true ; selectee . selected = true ; self . _trigger ( "selecting" , event ,{ selecting : selectee . element }); return false ;}});}, _mouseDrag : function ( event ){ var self = this ; if ( ! this . opos ){ return ;}
this . dragged = true ; if ( this . options . disabled )
return ; var options = this . options ; var x1 = this . opos [ 0 ], y1 = this . opos [ 1 ], x2 = event . pageX , y2 = event . pageY , appendTo = $ ( options . appendTo ), parentOffset = appendTo . css ( 'position' ) == 'static' ? appendTo . offsetParent (). offset () : appendTo . offset (); if ( x1 > x2 ){ var tmp = x2 ; x2 = x1 ; x1 = tmp ;}
2009-09-12 08:50:19 -07:00
if ( y1 > y2 ){ var tmp = y2 ; y2 = y1 ; y1 = tmp ;}
2009-09-16 08:46:55 -07:00
this . helper . css ({ left : x1 - parentOffset . left , top : y1 - parentOffset . top , width : x2 - x1 , height : y2 - y1 }); this . selectees . each ( function (){ var selectee = $ . data ( this , "selectable-item" ); if ( ! selectee || selectee . element == self . element [ 0 ])
2009-09-12 08:50:19 -07:00
return ; var hit = false ; if ( options . tolerance == 'touch' ){ hit = ( ! ( selectee . left > x2 || selectee . right < x1 || selectee . top > y2 || selectee . bottom < y1 ));} else if ( options . tolerance == 'fit' ){ hit = ( selectee . left > x1 && selectee . right < x2 && selectee . top > y1 && selectee . bottom < y2 );}
if ( hit ){ if ( selectee . selected ){ selectee . $element . removeClass ( 'ui-selected' ); selectee . selected = false ;}
if ( selectee . unselecting ){ selectee . $element . removeClass ( 'ui-unselecting' ); selectee . unselecting = false ;}
if ( ! selectee . selecting ){ selectee . $element . addClass ( 'ui-selecting' ); selectee . selecting = true ; self . _trigger ( "selecting" , event ,{ selecting : selectee . element });}} else { if ( selectee . selecting ){ if ( event . metaKey && selectee . startselected ){ selectee . $element . removeClass ( 'ui-selecting' ); selectee . selecting = false ; selectee . $element . addClass ( 'ui-selected' ); selectee . selected = true ;} else { selectee . $element . removeClass ( 'ui-selecting' ); selectee . selecting = false ; if ( selectee . startselected ){ selectee . $element . addClass ( 'ui-unselecting' ); selectee . unselecting = true ;}
self . _trigger ( "unselecting" , event ,{ unselecting : selectee . element });}}
2009-09-16 08:46:55 -07:00
if ( selectee . selected ){ if ( ! event . metaKey &&! selectee . startselected ){ selectee . $element . removeClass ( 'ui-selected' ); selectee . selected = false ; selectee . $element . addClass ( 'ui-unselecting' ); selectee . unselecting = true ; self . _trigger ( "unselecting" , event ,{ unselecting : selectee . element });}}}}); return false ;}, _mouseStop : function ( event ){ var self = this ; if ( ! this . opos ){ return ;}
this . dragged = false ; var options = this . options ; $ ( '.ui-unselecting' , this . element [ 0 ]). each ( function (){ var selectee = $ . data ( this , "selectable-item" ); selectee . $element . removeClass ( 'ui-unselecting' ); selectee . unselecting = false ; selectee . startselected = false ; self . _trigger ( "unselected" , event ,{ unselected : selectee . element });}); $ ( '.ui-selecting' , this . element [ 0 ]). each ( function (){ var selectee = $ . data ( this , "selectable-item" ); selectee . $element . removeClass ( 'ui-selecting' ). addClass ( 'ui-selected' ); selectee . selecting = false ; selectee . selected = true ; selectee . startselected = true ; self . _trigger ( "selected" , event ,{ selected : selectee . element });}); this . _trigger ( "stop" , event ); this . helper . remove (); return false ;}})); $ . extend ( $ . ui . selectable ,{ version : "1.7.2" , defaults : { appendTo : 'body' , autoRefresh : true , cancel : ":input,option" , delay : 0 , distance : 0 , filter : '*' , tolerance : 'touch' }});})( jQuery );( function ( $ ){ $ . widget ( "ui.sortable" , $ . extend ({}, $ . ui . mouse ,{ _init : function (){ var o = this . options ; this . containerCache = {}; this . element . addClass ( "ui-sortable" ); this . refresh (); this . floating = this . items . length ? ( /left|right/ ). test ( this . items [ 0 ]. item . css ( 'float' )) : false ; this . offset = this . element . offset (); this . _mouseInit ();}, destroy : function (){ this . element . removeClass ( "ui-sortable ui-sortable-disabled" ). removeData ( "sortable" ). unbind ( ".sortable" ); this . _mouseDestroy (); for ( var i = this . items . length - 1 ; i >= 0 ; i -- )
2009-09-12 08:50:19 -07:00
this . items [ i ]. item . removeData ( "sortable-item" );}, _mouseCapture : function ( event , overrideHandle ){ if ( this . reverting ){ return false ;}
if ( this . options . disabled || this . options . type == 'static' ) return false ; this . _refreshItems ( event ); var currentItem = null , self = this , nodes = $ ( event . target ). parents (). each ( function (){ if ( $ . data ( this , 'sortable-item' ) == self ){ currentItem = $ ( this ); return false ;}}); if ( $ . data ( event . target , 'sortable-item' ) == self ) currentItem = $ ( event . target ); if ( ! currentItem ) return false ; if ( this . options . handle &&! overrideHandle ){ var validHandle = false ; $ ( this . options . handle , currentItem ). find ( "*" ). andSelf (). each ( function (){ if ( this == event . target ) validHandle = true ;}); if ( ! validHandle ) return false ;}
this . currentItem = currentItem ; this . _removeCurrentsFromItems (); return true ;}, _mouseStart : function ( event , overrideHandle , noActivation ){ var o = this . options , self = this ; this . currentContainer = this ; this . refreshPositions (); this . helper = this . _createHelper ( event ); 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 }; this . helper . css ( "position" , "absolute" ); this . cssPosition = this . helper . css ( "position" ); $ . extend ( this . offset ,{ click : { left : event . pageX - this . offset . left , top : event . pageY - this . offset . top }, parent : this . _getParentOffset (), relative : this . _getRelativeOffset ()}); this . originalPosition = this . _generatePosition ( event ); this . originalPageX = event . pageX ; this . originalPageY = event . pageY ; if ( o . cursorAt )
this . _adjustOffsetFromHelper ( o . cursorAt ); this . domPosition = { prev : this . currentItem . prev ()[ 0 ], parent : this . currentItem . parent ()[ 0 ]}; if ( this . helper [ 0 ] != this . currentItem [ 0 ]){ this . currentItem . hide ();}
this . _createPlaceholder (); if ( o . containment )
this . _setContainment (); if ( o . cursor ){ if ( $ ( 'body' ). css ( "cursor" )) this . _storedCursor = $ ( 'body' ). css ( "cursor" ); $ ( 'body' ). css ( "cursor" , o . cursor );}
if ( o . opacity ){ if ( this . helper . css ( "opacity" )) this . _storedOpacity = this . helper . css ( "opacity" ); this . helper . css ( "opacity" , o . opacity );}
if ( o . zIndex ){ if ( this . helper . css ( "zIndex" )) this . _storedZIndex = this . helper . css ( "zIndex" ); this . helper . css ( "zIndex" , o . zIndex );}
if ( this . scrollParent [ 0 ] != document && this . scrollParent [ 0 ]. tagName != 'HTML' )
this . overflowOffset = this . scrollParent . offset (); this . _trigger ( "start" , event , this . _uiHash ()); if ( ! this . _preserveHelperProportions )
this . _cacheHelperProportions (); if ( ! noActivation ){ for ( var i = this . containers . length - 1 ; i >= 0 ; i -- ){ this . containers [ i ]. _trigger ( "activate" , event , self . _uiHash ( this ));}}
if ( $ . ui . ddmanager )
$ . ui . ddmanager . current = this ; if ( $ . ui . ddmanager &&! o . dropBehaviour )
$ . ui . ddmanager . prepareOffsets ( this , event ); this . dragging = true ; this . helper . addClass ( "ui-sortable-helper" ); this . _mouseDrag ( event ); return true ;}, _mouseDrag : function ( event ){ this . position = this . _generatePosition ( event ); this . positionAbs = this . _convertPositionTo ( "absolute" ); if ( ! this . lastPositionAbs ){ this . lastPositionAbs = this . positionAbs ;}
if ( this . options . scroll ){ var o = this . options , scrolled = false ; if ( this . scrollParent [ 0 ] != document && this . scrollParent [ 0 ]. tagName != 'HTML' ){ if (( this . overflowOffset . top + this . scrollParent [ 0 ]. offsetHeight ) - event . pageY < o . scrollSensitivity )
this . scrollParent [ 0 ]. scrollTop = scrolled = this . scrollParent [ 0 ]. scrollTop + o . scrollSpeed ; else if ( event . pageY - this . overflowOffset . top < o . scrollSensitivity )
this . scrollParent [ 0 ]. scrollTop = scrolled = this . scrollParent [ 0 ]. scrollTop - o . scrollSpeed ; if (( this . overflowOffset . left + this . scrollParent [ 0 ]. offsetWidth ) - event . pageX < o . scrollSensitivity )
this . scrollParent [ 0 ]. scrollLeft = scrolled = this . scrollParent [ 0 ]. scrollLeft + o . scrollSpeed ; else if ( event . pageX - this . overflowOffset . left < o . scrollSensitivity )
this . scrollParent [ 0 ]. scrollLeft = scrolled = this . scrollParent [ 0 ]. scrollLeft - o . scrollSpeed ;} else { if ( event . pageY - $ ( document ). scrollTop () < o . scrollSensitivity )
scrolled = $ ( document ). scrollTop ( $ ( document ). scrollTop () - o . scrollSpeed ); else if ( $ ( window ). height () - ( event . pageY - $ ( document ). scrollTop ()) < o . scrollSensitivity )
scrolled = $ ( document ). scrollTop ( $ ( document ). scrollTop () + o . scrollSpeed ); if ( event . pageX - $ ( document ). scrollLeft () < o . scrollSensitivity )
scrolled = $ ( document ). scrollLeft ( $ ( document ). scrollLeft () - o . scrollSpeed ); else if ( $ ( window ). width () - ( event . pageX - $ ( document ). scrollLeft ()) < o . scrollSensitivity )
scrolled = $ ( document ). scrollLeft ( $ ( document ). scrollLeft () + o . scrollSpeed );}
if ( scrolled !== false && $ . ui . ddmanager &&! o . dropBehaviour )
$ . ui . ddmanager . prepareOffsets ( this , event );}
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 item = this . items [ i ], itemElement = item . item [ 0 ], intersection = this . _intersectsWithPointer ( item ); if ( ! intersection ) continue ; if ( itemElement != this . currentItem [ 0 ] && this . placeholder [ intersection == 1 ? "next" : "prev" ]()[ 0 ] != itemElement &&! $ . ui . contains ( this . placeholder [ 0 ], itemElement ) && ( this . options . type == 'semi-dynamic' ?! $ . ui . contains ( this . element [ 0 ], itemElement ) : true )){ this . direction = intersection == 1 ? "down" : "up" ; if ( this . options . tolerance == "pointer" || this . _intersectsWithSides ( item )){ this . _rearrange ( event , item );} else { break ;}
this . _trigger ( "change" , event , this . _uiHash ()); break ;}}
this . _contactContainers ( event ); if ( $ . ui . ddmanager ) $ . ui . ddmanager . drag ( this , event ); this . _trigger ( 'sort' , event , this . _uiHash ()); this . lastPositionAbs = this . positionAbs ; return false ;}, _mouseStop : function ( event , noPropagation ){ if ( ! event ) return ; if ( $ . ui . ddmanager &&! this . options . dropBehaviour )
$ . ui . ddmanager . drop ( this , event ); if ( this . options . revert ){ var self = this ; var cur = self . placeholder . offset (); self . reverting = true ; $ ( this . helper ). animate ({ left : cur . left - this . offset . parent . left - self . margins . left + ( this . offsetParent [ 0 ] == document . body ? 0 : this . offsetParent [ 0 ]. scrollLeft ), top : cur . top - this . offset . parent . top - self . margins . top + ( this . offsetParent [ 0 ] == document . body ? 0 : this . offsetParent [ 0 ]. scrollTop )}, parseInt ( this . options . revert , 10 ) || 500 , function (){ self . _clear ( event );});} else { this . _clear ( event , noPropagation );}
return false ;}, cancel : function (){ var self = this ; if ( this . dragging ){ this . _mouseUp (); if ( this . options . helper == "original" )
this . currentItem . css ( this . _storedCSS ). removeClass ( "ui-sortable-helper" ); else
this . currentItem . show (); for ( var i = this . containers . length - 1 ; i >= 0 ; i -- ){ this . containers [ i ]. _trigger ( "deactivate" , null , self . _uiHash ( this )); if ( this . containers [ i ]. containerCache . over ){ this . containers [ i ]. _trigger ( "out" , null , self . _uiHash ( this )); this . containers [ i ]. containerCache . over = 0 ;}}}
if ( this . placeholder [ 0 ]. parentNode ) this . placeholder [ 0 ]. parentNode . removeChild ( this . placeholder [ 0 ]); if ( this . options . helper != "original" && this . helper && this . helper [ 0 ]. parentNode ) this . helper . remove (); $ . extend ( this ,{ helper : null , dragging : false , reverting : false , _noFinalSort : null }); if ( this . domPosition . prev ){ $ ( this . domPosition . prev ). after ( this . currentItem );} else { $ ( this . domPosition . parent ). prepend ( this . currentItem );}
return true ;}, serialize : function ( o ){ var items = this . _getItemsAsjQuery ( o && o . connected ); var str = []; o = o || {}; $ ( items ). each ( function (){ var res = ( $ ( o . item || this ). attr ( o . attribute || 'id' ) || '' ). match ( o . expression || ( /(.+)[-=_](.+)/ )); if ( res ) str . push (( o . key || res [ 1 ] + '[]' ) + '=' + ( o . key && o . expression ? res [ 1 ] : res [ 2 ]));}); return str . join ( '&' );}, toArray : function ( o ){ var items = this . _getItemsAsjQuery ( o && o . connected ); var ret = []; o = o || {}; items . each ( function (){ ret . push ( $ ( o . item || this ). attr ( o . attribute || 'id' ) || '' );}); return ret ;}, _intersectsWith : function ( item ){ var x1 = this . positionAbs . left , x2 = x1 + this . helperProportions . width , y1 = this . positionAbs . top , y2 = y1 + this . helperProportions . height ; var l = item . left , r = l + item . width , t = item . top , b = t + item . height ; var dyClick = this . offset . click . top , dxClick = this . offset . click . left ; var isOverElement = ( y1 + dyClick ) > t && ( y1 + dyClick ) < b && ( x1 + dxClick ) > l && ( x1 + dxClick ) < r ; if ( this . options . tolerance == "pointer" || this . options . forcePointerForContainers || ( this . options . tolerance != "pointer" && this . helperProportions [ this . floating ? 'width' : 'height' ] > item [ this . floating ? 'width' : 'height' ])){ return isOverElement ;} else { return ( l < x1 + ( this . helperProportions . width / 2 ) && x2 - ( this . helperProportions . width / 2 ) < r && t < y1 + ( this . helperProportions . height / 2 ) && y2 - ( this . helperProportions . height / 2 ) < b );}}, _intersectsWithPointer : function ( item ){ var isOverElementHeight = $ . ui . isOverAxis ( this . positionAbs . top + this . offset . click . top , item . top , item . height ), isOverElementWidth = $ . ui . isOverAxis ( this . positionAbs . left + this . offset . click . left , item . left , item . width ), isOverElement = isOverElementHeight && isOverElementWidth , verticalDirection = this . _getDragVerticalDirection (), horizontalDirection = this . _getDragHorizontalDirection (); if ( ! isOverElement )
return false ; return this . floating ? ((( horizontalDirection && horizontalDirection == "right" ) || verticalDirection == "down" ) ? 2 : 1 ) : ( verticalDirection && ( verticalDirection == "down" ? 2 : 1 ));}, _intersectsWithSides : function ( item ){ var isOverBottomHalf = $ . ui . isOverAxis ( this . positionAbs . top + this . offset . click . top , item . top + ( item . height / 2 ), item . height ), isOverRightHalf = $ . ui . isOverAxis ( this . positionAbs . left + this . offset . click . left , item . left + ( item . width / 2 ), item . width ), verticalDirection = this . _getDragVerticalDirection (), horizontalDirection = this . _getDragHorizontalDirection (); if ( this . floating && horizontalDirection ){ return (( horizontalDirection == "right" && isOverRightHalf ) || ( horizontalDirection == "left" &&! isOverRightHalf ));} else { return verticalDirection && (( verticalDirection == "down" && isOverBottomHalf ) || ( verticalDirection == "up" &&! isOverBottomHalf ));}}, _getDragVerticalDirection : function (){ var delta = this . positionAbs . top - this . lastPositionAbs . top ; return delta != 0 && ( delta > 0 ? "down" : "up" );}, _getDragHorizontalDirection : function (){ var delta = this . positionAbs . left - this . lastPositionAbs . left ; return delta != 0 && ( delta > 0 ? "right" : "left" );}, refresh : function ( event ){ this . _refreshItems ( event ); this . refreshPositions ();}, _connectWith : function (){ var options = this . options ; return options . connectWith . constructor == String ? [ options . connectWith ] : options . connectWith ;}, _getItemsAsjQuery : function ( connected ){ var self = this ; var items = []; var queries = []; var connectWith = this . _connectWith (); if ( connectWith && connected ){ for ( var i = connectWith . length - 1 ; i >= 0 ; i -- ){ var cur = $ ( connectWith [ i ]); for ( var j = cur . length - 1 ; j >= 0 ; j -- ){ var inst = $ . data ( cur [ j ], 'sortable' ); if ( inst && inst != this &&! inst . options . disabled ){ queries . push ([ $ . isFunction ( inst . options . items ) ? inst . options . items . call ( inst . element ) : $ ( inst . options . items , inst . element ). not ( ".ui-sortable-helper" ), inst ]);}};};}
queries . push ([ $ . isFunction ( this . options . items ) ? this . options . items . call ( this . element , null ,{ options : this . options , item : this . currentItem }) : $ ( this . options . items , this . element ). not ( ".ui-sortable-helper" ), this ]); for ( var i = queries . length - 1 ; i >= 0 ; i -- ){ queries [ i ][ 0 ]. each ( function (){ items . push ( this );});}; return $ ( items );}, _removeCurrentsFromItems : function (){ var list = this . currentItem . find ( ":data(sortable-item)" ); for ( var i = 0 ; i < this . items . length ; i ++ ){ for ( var j = 0 ; j < list . length ; j ++ ){ if ( list [ j ] == this . items [ i ]. item [ 0 ])
this . items . splice ( i , 1 );};};}, _refreshItems : function ( event ){ this . items = []; this . containers = [ this ]; var items = this . items ; var self = this ; var queries = [[ $ . isFunction ( this . options . items ) ? this . options . items . call ( this . element [ 0 ], event ,{ item : this . currentItem }) : $ ( this . options . items , this . element ), this ]]; var connectWith = this . _connectWith (); if ( connectWith ){ for ( var i = connectWith . length - 1 ; i >= 0 ; i -- ){ var cur = $ ( connectWith [ i ]); for ( var j = cur . length - 1 ; j >= 0 ; j -- ){ var inst = $ . data ( cur [ j ], 'sortable' ); if ( inst && inst != this &&! inst . options . disabled ){ queries . push ([ $ . isFunction ( inst . options . items ) ? inst . options . items . call ( inst . element [ 0 ], event ,{ item : this . currentItem }) : $ ( inst . options . items , inst . element ), inst ]); this . containers . push ( inst );}};};}
for ( var i = queries . length - 1 ; i >= 0 ; i -- ){ var targetData = queries [ i ][ 1 ]; var _queries = queries [ i ][ 0 ]; for ( var j = 0 , queriesLength = _queries . length ; j < queriesLength ; j ++ ){ var item = $ ( _queries [ j ]); item . data ( 'sortable-item' , targetData ); items . push ({ item : item , instance : targetData , width : 0 , height : 0 , left : 0 , top : 0 });};};}, refreshPositions : function ( fast ){ if ( this . offsetParent && this . helper ){ this . offset . parent = this . _getParentOffset ();}
for ( var i = this . items . length - 1 ; i >= 0 ; i -- ){ var item = this . items [ i ]; if ( item . instance != this . currentContainer && this . currentContainer && item . item [ 0 ] != this . currentItem [ 0 ])
continue ; var t = this . options . toleranceElement ? $ ( this . options . toleranceElement , item . item ) : item . item ; if ( ! fast ){ item . width = t . outerWidth (); item . height = t . outerHeight ();}
var p = t . offset (); item . left = p . left ; item . top = p . top ;}; if ( this . options . custom && this . options . custom . refreshContainers ){ this . options . custom . refreshContainers . call ( this );} else { for ( var i = this . containers . length - 1 ; i >= 0 ; i -- ){ var p = this . containers [ i ]. element . offset (); this . containers [ i ]. containerCache . left = p . left ; this . containers [ i ]. containerCache . top = p . top ; this . containers [ i ]. containerCache . width = this . containers [ i ]. element . outerWidth (); this . containers [ i ]. containerCache . height = this . containers [ i ]. element . outerHeight ();};}}, _createPlaceholder : function ( that ){ var self = that || this , o = self . options ; if ( ! o . placeholder || o . placeholder . constructor == String ){ var className = o . placeholder ; o . placeholder = { element : function (){ var el = $ ( document . createElement ( self . currentItem [ 0 ]. nodeName )). addClass ( className || self . currentItem [ 0 ]. className + " ui-sortable-placeholder" ). removeClass ( "ui-sortable-helper" )[ 0 ]; if ( ! className )
el . style . visibility = "hidden" ; return el ;}, update : function ( container , p ){ if ( className &&! o . forcePlaceholderSize ) return ; if ( ! p . height ()){ p . height ( self . currentItem . innerHeight () - parseInt ( self . currentItem . css ( 'paddingTop' ) || 0 , 10 ) - parseInt ( self . currentItem . css ( 'paddingBottom' ) || 0 , 10 ));}; if ( ! p . width ()){ p . width ( self . currentItem . innerWidth () - parseInt ( self . currentItem . css ( 'paddingLeft' ) || 0 , 10 ) - parseInt ( self . currentItem . css ( 'paddingRight' ) || 0 , 10 ));};}};}
self . placeholder = $ ( o . placeholder . element . call ( self . element , self . currentItem )); self . currentItem . after ( self . placeholder ); o . placeholder . update ( self , self . placeholder );}, _contactContainers : function ( event ){ for ( var i = this . containers . length - 1 ; i >= 0 ; i -- ){ if ( this . _intersectsWith ( this . containers [ i ]. containerCache )){ if ( ! this . containers [ i ]. containerCache . over ){ if ( this . currentContainer != this . containers [ i ]){ var dist = 10000 ; var itemWithLeastDistance = null ; var base = this . positionAbs [ this . containers [ i ]. floating ? 'left' : 'top' ]; for ( var j = this . items . length - 1 ; j >= 0 ; j -- ){ if ( ! $ . ui . contains ( this . containers [ i ]. element [ 0 ], this . items [ j ]. item [ 0 ])) continue ; var cur = this . items [ j ][ this . containers [ i ]. floating ? 'left' : 'top' ]; if ( Math . abs ( cur - base ) < dist ){ dist = Math . abs ( cur - base ); itemWithLeastDistance = this . items [ j ];}}
if ( ! itemWithLeastDistance &&! this . options . dropOnEmpty )
continue ; this . currentContainer = this . containers [ i ]; itemWithLeastDistance ? this . _rearrange ( event , itemWithLeastDistance , null , true ) : this . _rearrange ( event , null , this . containers [ i ]. element , true ); this . _trigger ( "change" , event , this . _uiHash ()); this . containers [ i ]. _trigger ( "change" , event , this . _uiHash ( this )); this . options . placeholder . update ( this . currentContainer , this . placeholder );}
this . containers [ i ]. _trigger ( "over" , event , this . _uiHash ( this )); this . containers [ i ]. containerCache . over = 1 ;}} else { if ( this . containers [ i ]. containerCache . over ){ this . containers [ i ]. _trigger ( "out" , event , this . _uiHash ( this )); this . containers [ i ]. containerCache . over = 0 ;}}};}, _createHelper : function ( event ){ var o = this . options ; var helper = $ . isFunction ( o . helper ) ? $ ( o . helper . apply ( this . element [ 0 ],[ event , this . currentItem ])) : ( o . helper == 'clone' ? this . currentItem . clone () : this . currentItem ); if ( ! helper . parents ( 'body' ). length )
$ ( o . appendTo != 'parent' ? o . appendTo : this . currentItem [ 0 ]. parentNode )[ 0 ]. appendChild ( helper [ 0 ]); if ( helper [ 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" )}; if ( helper [ 0 ]. style . width == '' || o . forceHelperSize ) helper . width ( this . currentItem . width ()); if ( helper [ 0 ]. style . height == '' || o . forceHelperSize ) helper . height ( this . currentItem . height ()); return helper ;}, _adjustOffsetFromHelper : function ( obj ){ if ( obj . left != undefined ) this . offset . click . left = obj . left + this . margins . left ; if ( obj . right != undefined ) this . offset . click . left = this . helperProportions . width - obj . right + this . margins . left ; if ( obj . top != undefined ) this . offset . click . top = obj . top + this . margins . top ; if ( obj . bottom != undefined ) this . offset . click . top = this . helperProportions . height - obj . bottom + this . margins . top ;}, _getParentOffset : function (){ this . offsetParent = this . helper . offsetParent (); var po = this . offsetParent . offset (); if ( this . cssPosition == 'absolute' && this . scrollParent [ 0 ] != document && $ . ui . contains ( this . scrollParent [ 0 ], this . offsetParent [ 0 ])){ po . left += this . scrollParent . scrollLeft (); po . top += this . scrollParent . scrollTop ();}
if (( this . offsetParent [ 0 ] == document . body ) || ( this . offsetParent [ 0 ]. tagName && this . offsetParent [ 0 ]. tagName . toLowerCase () == 'html' && $ . browser . msie ))
po = { top : 0 , left : 0 }; return { top : po . top + ( parseInt ( this . offsetParent . css ( "borderTopWidth" ), 10 ) || 0 ), left : po . left + ( parseInt ( this . offsetParent . css ( "borderLeftWidth" ), 10 ) || 0 )};}, _getRelativeOffset : function (){ if ( this . cssPosition == "relative" ){ var p = this . currentItem . position (); return { top : p . top - ( parseInt ( this . helper . css ( "top" ), 10 ) || 0 ) + this . scrollParent . scrollTop (), left : p . left - ( parseInt ( this . helper . css ( "left" ), 10 ) || 0 ) + this . scrollParent . scrollLeft ()};} else { 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 o = this . options ; if ( o . containment == 'parent' ) o . containment = this . helper [ 0 ]. parentNode ; if ( o . containment == 'document' || o . containment == 'window' ) this . containment = [ 0 - this . offset . relative . left - this . offset . parent . left , 0 - this . offset . relative . top - this . offset . parent . top , $ ( o . containment == 'document' ? document : window ). width () - this . helperProportions . width - this . margins . left ,( $ ( o . containment == 'document' ? document : window ). height () || document . body . parentNode . scrollHeight ) - this . helperProportions . height - this . margins . top ]; if ( ! ( /^(document|window|parent)$/ ). test ( o . containment )){ var ce = $ ( o . containment )[ 0 ]; var co = $ ( o . containment ). offset (); var over = ( $ ( ce ). css ( "overflow" ) != 'hidden' ); this . containment = [ co . left + ( parseInt ( $ ( ce ). css ( "borderLeftWidth" ), 10 ) || 0 ) + ( parseInt ( $ ( ce ). css ( "paddingLeft" ), 10 ) || 0 ) - this . margins . left , co . top + ( parseInt ( $ ( ce ). css ( "borderTopWidth" ), 10 ) || 0 ) + ( parseInt ( $ ( ce ). css ( "paddingTop" ), 10 ) || 0 ) - this . margins . top , co . left + ( over ? Math . max ( ce . scrollWidth , ce . offsetWidth ) : ce . offsetWidth ) - ( parseInt ( $ ( ce ). css ( "borderLeftWidth" ), 10 ) || 0 ) - ( parseInt ( $ ( ce ). css ( "paddingRight" ), 10 ) || 0 ) - this . helperProportions . width - this . margins . left , co . top + ( over ? Math . max ( ce . scrollHeight , ce . offsetHeight ) : ce . offsetHeight ) - ( parseInt ( $ ( ce ). css ( "borderTopWidth" ), 10 ) || 0 ) - ( parseInt ( $ ( ce ). css ( "paddingBottom" ), 10 ) || 0 ) - this . helperProportions . height - this . margins . top ];}}, _convertPositionTo : function ( d , pos ){ if ( ! pos ) pos = this . position ; var mod = d == "absolute" ? 1 :- 1 ; var o = this . options , scroll = this . cssPosition == 'absolute' &&! ( this . scrollParent [ 0 ] != document && $ . ui . contains ( this . scrollParent [ 0 ], this . offsetParent [ 0 ])) ? this . offsetParent : this . scrollParent , scrollIsRootNode = ( /(html|body)/i ). test ( scroll [ 0 ]. tagName ); return { top : ( pos . top
+ this . offset . relative . top * mod
+ this . offset . parent . top * mod
- ( $ . browser . safari && this . cssPosition == 'fixed' ? 0 : ( this . cssPosition == 'fixed' ?- this . scrollParent . scrollTop () : ( scrollIsRootNode ? 0 : scroll . scrollTop ())) * mod )), left : ( pos . left
+ this . offset . relative . left * mod
+ this . offset . parent . left * mod
- ( $ . browser . safari && this . cssPosition == 'fixed' ? 0 : ( this . cssPosition == 'fixed' ?- this . scrollParent . scrollLeft () : scrollIsRootNode ? 0 : scroll . scrollLeft ()) * mod ))};}, _generatePosition : function ( event ){ var o = this . options , scroll = this . cssPosition == 'absolute' &&! ( this . scrollParent [ 0 ] != document && $ . ui . contains ( this . scrollParent [ 0 ], this . offsetParent [ 0 ])) ? this . offsetParent : this . scrollParent , scrollIsRootNode = ( /(html|body)/i ). test ( scroll [ 0 ]. tagName ); if ( this . cssPosition == 'relative' &&! ( this . scrollParent [ 0 ] != document && this . scrollParent [ 0 ] != this . offsetParent [ 0 ])){ this . offset . relative = this . _getRelativeOffset ();}
var pageX = event . pageX ; var pageY = event . pageY ; if ( this . originalPosition ){ if ( this . containment ){ if ( event . pageX - this . offset . click . left < this . containment [ 0 ]) pageX = this . containment [ 0 ] + this . offset . click . left ; if ( event . pageY - this . offset . click . top < this . containment [ 1 ]) pageY = this . containment [ 1 ] + this . offset . click . top ; if ( event . pageX - this . offset . click . left > this . containment [ 2 ]) pageX = this . containment [ 2 ] + this . offset . click . left ; if ( event . pageY - this . offset . click . top > this . containment [ 3 ]) pageY = this . containment [ 3 ] + this . offset . click . top ;}
if ( o . grid ){ var top = this . originalPageY + Math . round (( pageY - this . originalPageY ) / o . grid [ 1 ]) * o . grid [ 1 ]; pageY = this . containment ? ( ! ( top - this . offset . click . top < this . containment [ 1 ] || top - this . offset . click . top > this . containment [ 3 ]) ? top : ( ! ( top - this . offset . click . top < this . containment [ 1 ]) ? top - o . grid [ 1 ] : top + o . grid [ 1 ])) : top ; var left = this . originalPageX + Math . round (( pageX - this . originalPageX ) / o . grid [ 0 ]) * o . grid [ 0 ]; pageX = this . containment ? ( ! ( left - this . offset . click . left < this . containment [ 0 ] || left - this . offset . click . left > this . containment [ 2 ]) ? left : ( ! ( left - this . offset . click . left < this . containment [ 0 ]) ? left - o . grid [ 0 ] : left + o . grid [ 0 ])) : left ;}}
return { top : ( pageY
- this . offset . click . top
- this . offset . relative . top
- this . offset . parent . top
+ ( $ . browser . safari && this . cssPosition == 'fixed' ? 0 : ( this . cssPosition == 'fixed' ?- this . scrollParent . scrollTop () : ( scrollIsRootNode ? 0 : scroll . scrollTop ())))), left : ( pageX
- this . offset . click . left
- this . offset . relative . left
- this . offset . parent . left
+ ( $ . browser . safari && this . cssPosition == 'fixed' ? 0 : ( this . cssPosition == 'fixed' ?- this . scrollParent . scrollLeft () : scrollIsRootNode ? 0 : scroll . scrollLeft ())))};}, _rearrange : function ( event , i , a , hardRefresh ){ a ? a [ 0 ]. appendChild ( this . placeholder [ 0 ]) : i . item [ 0 ]. parentNode . insertBefore ( this . placeholder [ 0 ],( this . direction == 'down' ? i . item [ 0 ] : i . item [ 0 ]. nextSibling )); this . counter = this . counter ?++ this . counter : 1 ; var self = this , counter = this . counter ; window . setTimeout ( function (){ if ( counter == self . counter ) self . refreshPositions ( ! hardRefresh );}, 0 );}, _clear : function ( event , noPropagation ){ this . reverting = false ; var delayedTriggers = [], self = this ; if ( ! this . _noFinalSort && this . currentItem [ 0 ]. parentNode ) 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 ();}
if ( this . fromOutside &&! noPropagation ) delayedTriggers . push ( function ( event ){ this . _trigger ( "receive" , event , this . _uiHash ( this . fromOutside ));}); if (( this . fromOutside || this . domPosition . prev != this . currentItem . prev (). not ( ".ui-sortable-helper" )[ 0 ] || this . domPosition . parent != this . currentItem . parent ()[ 0 ]) &&! noPropagation ) delayedTriggers . push ( function ( event ){ this . _trigger ( "update" , event , this . _uiHash ());}); if ( ! $ . ui . contains ( this . element [ 0 ], this . currentItem [ 0 ])){ if ( ! noPropagation ) delayedTriggers . push ( function ( event ){ this . _trigger ( "remove" , event , this . _uiHash ());}); for ( var i = this . containers . length - 1 ; i >= 0 ; i -- ){ if ( $ . ui . contains ( this . containers [ i ]. element [ 0 ], this . currentItem [ 0 ]) &&! noPropagation ){ delayedTriggers . push (( function ( c ){ return function ( event ){ c . _trigger ( "receive" , event , this . _uiHash ( this ));};}). call ( this , this . containers [ i ])); delayedTriggers . push (( function ( c ){ return function ( event ){ c . _trigger ( "update" , event , this . _uiHash ( this ));};}). call ( this , this . containers [ i ]));}};}; for ( var i = this . containers . length - 1 ; i >= 0 ; i -- ){ if ( ! noPropagation ) delayedTriggers . push (( function ( c ){ return function ( event ){ c . _trigger ( "deactivate" , event , this . _uiHash ( this ));};}). call ( this , this . containers [ i ])); if ( this . containers [ i ]. containerCache . over ){ delayedTriggers . push (( function ( c ){ return function ( event ){ c . _trigger ( "out" , event , this . _uiHash ( this ));};}). call ( this , this . containers [ i ])); this . containers [ i ]. containerCache . over = 0 ;}}
if ( this . _storedCursor ) $ ( 'body' ). css ( "cursor" , this . _storedCursor ); if ( this . _storedOpacity ) this . helper . css ( "opacity" , this . _storedOpacity ); if ( this . _storedZIndex ) this . helper . css ( "zIndex" , this . _storedZIndex == 'auto' ? '' : this . _storedZIndex ); this . dragging = false ; if ( this . cancelHelperRemoval ){ if ( ! noPropagation ){ this . _trigger ( "beforeStop" , event , this . _uiHash ()); for ( var i = 0 ; i < delayedTriggers . length ; i ++ ){ delayedTriggers [ i ]. call ( this , event );}; this . _trigger ( "stop" , event , this . _uiHash ());}
return false ;}
if ( ! noPropagation ) this . _trigger ( "beforeStop" , event , this . _uiHash ()); this . placeholder [ 0 ]. parentNode . removeChild ( this . placeholder [ 0 ]); if ( this . helper [ 0 ] != this . currentItem [ 0 ]) this . helper . remove (); this . helper = null ; if ( ! noPropagation ){ for ( var i = 0 ; i < delayedTriggers . length ; i ++ ){ delayedTriggers [ i ]. call ( this , event );}; this . _trigger ( "stop" , event , this . _uiHash ());}
this . fromOutside = false ; return true ;}, _trigger : function (){ if ( $ . widget . prototype . _trigger . apply ( this , arguments ) === false ){ this . cancel ();}}, _uiHash : function ( inst ){ var self = inst || this ; return { helper : self . helper , placeholder : self . placeholder || $ ([]), position : self . position , absolutePosition : self . positionAbs , offset : self . positionAbs , item : self . currentItem , sender : inst ? inst . element : null };}})); $ . extend ( $ . ui . sortable ,{ getter : "serialize toArray" , version : "1.7.2" , eventPrefix : "sort" , defaults : { appendTo : "parent" , axis : false , cancel : ":input,option" , connectWith : false , containment : false , cursor : 'auto' , cursorAt : false , delay : 0 , distance : 1 , dropOnEmpty : true , forcePlaceholderSize : false , forceHelperSize : false , grid : false , handle : false , helper : "original" , items : '> *' , opacity : false , placeholder : false , revert : false , scroll : true , scrollSensitivity : 20 , scrollSpeed : 20 , scope : "default" , tolerance : "intersect" , zIndex : 1000 }});})( jQuery );( function ( $ ){ $ . widget ( "ui.accordion" ,{ _init : function (){ var o = this . options , self = this ; this . running = 0 ; if ( o . collapsible == $ . ui . accordion . defaults . collapsible && o . alwaysOpen != $ . ui . accordion . defaults . alwaysOpen ){ o . collapsible =! o . alwaysOpen ;}
if ( o . navigation ){ var current = this . element . find ( "a" ). filter ( o . navigationFilter ); if ( current . length ){ if ( current . filter ( o . header ). length ){ this . active = current ;} else { this . active = current . parent (). parent (). prev (); current . addClass ( "ui-accordion-content-active" );}}}
this . element . addClass ( "ui-accordion ui-widget ui-helper-reset" ); if ( this . element [ 0 ]. nodeName == "UL" ){ this . element . children ( "li" ). addClass ( "ui-accordion-li-fix" );}
this . headers = this . element . find ( o . header ). addClass ( "ui-accordion-header ui-helper-reset ui-state-default ui-corner-all" ). bind ( "mouseenter.accordion" , function (){ $ ( this ). addClass ( 'ui-state-hover' );}). bind ( "mouseleave.accordion" , function (){ $ ( this ). removeClass ( 'ui-state-hover' );}). bind ( "focus.accordion" , function (){ $ ( this ). addClass ( 'ui-state-focus' );}). bind ( "blur.accordion" , function (){ $ ( this ). removeClass ( 'ui-state-focus' );}); this . headers . next (). addClass ( "ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom" ); this . active = this . _findActive ( this . active || o . active ). toggleClass ( "ui-state-default" ). toggleClass ( "ui-state-active" ). toggleClass ( "ui-corner-all" ). toggleClass ( "ui-corner-top" ); this . active . next (). addClass ( 'ui-accordion-content-active' ); $ ( "<span/>" ). addClass ( "ui-icon " + o . icons . header ). prependTo ( this . headers ); this . active . find ( ".ui-icon" ). toggleClass ( o . icons . header ). toggleClass ( o . icons . headerSelected ); if ( $ . browser . msie ){ this . element . find ( 'a' ). css ( 'zoom' , '1' );}
this . resize (); this . element . attr ( 'role' , 'tablist' ); this . headers . attr ( 'role' , 'tab' ). bind ( 'keydown' , function ( event ){ return self . _keydown ( event );}). next (). attr ( 'role' , 'tabpanel' ); this . headers . not ( this . active || "" ). attr ( 'aria-expanded' , 'false' ). attr ( "tabIndex" , "-1" ). next (). hide (); if ( ! this . active . length ){ this . headers . eq ( 0 ). attr ( 'tabIndex' , '0' );} else { this . active . attr ( 'aria-expanded' , 'true' ). attr ( 'tabIndex' , '0' );}
if ( ! $ . browser . safari )
this . headers . find ( 'a' ). attr ( 'tabIndex' , '-1' ); if ( o . event ){ this . headers . bind (( o . event ) + ".accordion" , function ( event ){ return self . _clickHandler . call ( self , event , this );});}}, destroy : function (){ var o = this . options ; this . element . removeClass ( "ui-accordion ui-widget ui-helper-reset" ). removeAttr ( "role" ). unbind ( '.accordion' ). removeData ( 'accordion' ); this . headers . unbind ( ".accordion" ). removeClass ( "ui-accordion-header ui-helper-reset ui-state-default ui-corner-all ui-state-active ui-corner-top" ). removeAttr ( "role" ). removeAttr ( "aria-expanded" ). removeAttr ( "tabindex" ); this . headers . find ( "a" ). removeAttr ( "tabindex" ); this . headers . children ( ".ui-icon" ). remove (); var contents = this . headers . next (). css ( "display" , "" ). removeAttr ( "role" ). removeClass ( "ui-helper-reset ui-widget-content ui-corner-bottom ui-accordion-content ui-accordion-content-active" ); if ( o . autoHeight || o . fillHeight ){ contents . css ( "height" , "" );}}, _setData : function ( key , value ){ if ( key == 'alwaysOpen' ){ key = 'collapsible' ; value =! value ;}
$ . widget . prototype . _setData . apply ( this , arguments );}, _keydown : function ( event ){ var o = this . options , keyCode = $ . ui . keyCode ; if ( o . disabled || event . altKey || event . ctrlKey )
return ; var length = this . headers . length ; var currentIndex = this . headers . index ( event . target ); var toFocus = false ; switch ( event . keyCode ){ case keyCode . RIGHT : case keyCode . DOWN : toFocus = this . headers [( currentIndex + 1 ) % length ]; break ; case keyCode . LEFT : case keyCode . UP : toFocus = this . headers [( currentIndex - 1 + length ) % length ]; break ; case keyCode . SPACE : case keyCode . ENTER : return this . _clickHandler ({ target : event . target }, event . target );}
if ( toFocus ){ $ ( event . target ). attr ( 'tabIndex' , '-1' ); $ ( toFocus ). attr ( 'tabIndex' , '0' ); toFocus . focus (); return false ;}
return true ;}, resize : function (){ var o = this . options , maxHeight ; if ( o . fillSpace ){ if ( $ . browser . msie ){ var defOverflow = this . element . parent (). css ( 'overflow' ); this . element . parent (). css ( 'overflow' , 'hidden' );}
maxHeight = this . element . parent (). height (); if ( $ . browser . msie ){ this . element . parent (). css ( 'overflow' , defOverflow );}
this . headers . each ( function (){ maxHeight -= $ ( this ). outerHeight ();}); var maxPadding = 0 ; this . headers . next (). each ( function (){ maxPadding = Math . max ( maxPadding , $ ( this ). innerHeight () - $ ( this ). height ());}). height ( Math . max ( 0 , maxHeight - maxPadding )). css ( 'overflow' , 'auto' );} else if ( o . autoHeight ){ maxHeight = 0 ; this . headers . next (). each ( function (){ maxHeight = Math . max ( maxHeight , $ ( this ). outerHeight ());}). height ( maxHeight );}}, activate : function ( index ){ var active = this . _findActive ( index )[ 0 ]; this . _clickHandler ({ target : active }, active );}, _findActive : function ( selector ){ return selector ? typeof selector == "number" ? this . headers . filter ( ":eq(" + selector + ")" ) : this . headers . not ( this . headers . not ( selector )) : selector === false ? $ ([]) : this . headers . filter ( ":eq(0)" );}, _clickHandler : function ( event , target ){ var o = this . options ; if ( o . disabled ) return false ; if ( ! event . target && o . collapsible ){ this . active . removeClass ( "ui-state-active ui-corner-top" ). addClass ( "ui-state-default ui-corner-all" ). find ( ".ui-icon" ). removeClass ( o . icons . headerSelected ). addClass ( o . icons . header ); this . active . next (). addClass ( 'ui-accordion-content-active' ); var toHide = this . active . next (), data = { options : o , newHeader : $ ([]), oldHeader : o . active , newContent : $ ([]), oldContent : toHide }, toShow = ( this . active = $ ([])); this . _toggle ( toShow , toHide , data ); return false ;}
var clicked = $ ( event . currentTarget || target ); var clickedIsActive = clicked [ 0 ] == this . active [ 0 ]; if ( this . running || ( ! o . collapsible && clickedIsActive )){ return false ;}
this . active . removeClass ( "ui-state-active ui-corner-top" ). addClass ( "ui-state-default ui-corner-all" ). find ( ".ui-icon" ). removeClass ( o . icons . headerSelected ). addClass ( o . icons . header ); this . active . next (). addClass ( 'ui-accordion-content-active' ); if ( ! clickedIsActive ){ clicked . removeClass ( "ui-state-default ui-corner-all" ). addClass ( "ui-state-active ui-corner-top" ). find ( ".ui-icon" ). removeClass ( o . icons . header ). addClass ( o . icons . headerSelected ); clicked . next (). addClass ( 'ui-accordion-content-active' );}
var toShow = clicked . next (), toHide = this . active . next (), data = { options : o , newHeader : clickedIsActive && o . collapsible ? $ ([]) : clicked , oldHeader : this . active , newContent : clickedIsActive && o . collapsible ? $ ([]) : toShow . find ( '> *' ), oldContent : toHide . find ( '> *' )}, down = this . headers . index ( this . active [ 0 ]) > this . headers . index ( clicked [ 0 ]); this . active = clickedIsActive ? $ ([]) : clicked ; this . _toggle ( toShow , toHide , data , clickedIsActive , down ); return false ;}, _toggle : function ( toShow , toHide , data , clickedIsActive , down ){ var o = this . options , self = this ; this . toShow = toShow ; this . toHide = toHide ; this . data = data ; var complete = function (){ if ( ! self ) return ; return self . _completed . apply ( self , arguments );}; this . _trigger ( "changestart" , null , this . data ); this . running = toHide . size () === 0 ? toShow . size () : toHide . size (); if ( o . animated ){ var animOptions = {}; if ( o . collapsible && clickedIsActive ){ animOptions = { toShow : $ ([]), toHide : toHide , complete : complete , down : down , autoHeight : o . autoHeight || o . fillSpace };} else { animOptions = { toShow : toShow , toHide : toHide , complete : complete , down : down , autoHeight : o . autoHeight || o . fillSpace };}
if ( ! o . proxied ){ o . proxied = o . animated ;}
if ( ! o . proxiedDuration ){ o . proxiedDuration = o . duration ;}
o . animated = $ . isFunction ( o . proxied ) ? o . proxied ( animOptions ) : o . proxied ; o . duration = $ . isFunction ( o . proxiedDuration ) ? o . proxiedDuration ( animOptions ) : o . proxiedDuration ; var animations = $ . ui . accordion . animations , duration = o . duration , easing = o . animated ; if ( ! animations [ easing ]){ animations [ easing ] = function ( options ){ this . slide ( options ,{ easing : easing , duration : duration || 700 });};}
animations [ easing ]( animOptions );} else { if ( o . collapsible && clickedIsActive ){ toShow . toggle ();} else { toHide . hide (); toShow . show ();}
complete ( true );}
toHide . prev (). attr ( 'aria-expanded' , 'false' ). attr ( "tabIndex" , "-1" ). blur (); toShow . prev (). attr ( 'aria-expanded' , 'true' ). attr ( "tabIndex" , "0" ). focus ();}, _completed : function ( cancel ){ var o = this . options ; this . running = cancel ? 0 :-- this . running ; if ( this . running ) return ; if ( o . clearStyle ){ this . toShow . add ( this . toHide ). css ({ height : "" , overflow : "" });}
this . _trigger ( 'change' , null , this . data );}}); $ . extend ( $ . ui . accordion ,{ version : "1.7.2" , defaults : { active : null , alwaysOpen : true , animated : 'slide' , autoHeight : true , clearStyle : false , collapsible : false , event : "click" , fillSpace : false , header : "> li > :first-child,> :not(li):even" , icons : { header : "ui-icon-triangle-1-e" , headerSelected : "ui-icon-triangle-1-s" }, navigation : false , navigationFilter : function (){ return this . href . toLowerCase () == location . href . toLowerCase ();}}, animations : { slide : function ( options , additions ){ options = $ . extend ({ easing : "swing" , duration : 300 }, options , additions ); if ( ! options . toHide . size ()){ options . toShow . animate ({ height : "show" }, options ); return ;}
if ( ! options . toShow . size ()){ options . toHide . animate ({ height : "hide" }, options ); return ;}
var overflow = options . toShow . css ( 'overflow' ), percentDone , showProps = {}, hideProps = {}, fxAttrs = [ "height" , "paddingTop" , "paddingBottom" ], originalWidth ; var s = options . toShow ; originalWidth = s [ 0 ]. style . width ; s . width ( parseInt ( s . parent (). width (), 10 ) - parseInt ( s . css ( "paddingLeft" ), 10 ) - parseInt ( s . css ( "paddingRight" ), 10 ) - ( parseInt ( s . css ( "borderLeftWidth" ), 10 ) || 0 ) - ( parseInt ( s . css ( "borderRightWidth" ), 10 ) || 0 )); $ . each ( fxAttrs , function ( i , prop ){ hideProps [ prop ] = 'hide' ; var parts = ( '' + $ . css ( options . toShow [ 0 ], prop )). match ( /^([\d+-.]+)(.*)$/ ); showProps [ prop ] = { value : parts [ 1 ], unit : parts [ 2 ] || 'px' };}); options . toShow . css ({ height : 0 , overflow : 'hidden' }). show (); options . toHide . filter ( ":hidden" ). each ( options . complete ). end (). filter ( ":visible" ). animate ( hideProps ,{ step : function ( now , settings ){ if ( settings . prop == 'height' ){ percentDone = ( settings . now - settings . start ) / ( settings . end - settings . start );}
options . toShow [ 0 ]. style [ settings . prop ] = ( percentDone * showProps [ settings . prop ]. value ) + showProps [ settings . prop ]. unit ;}, duration : options . duration , easing : options . easing , complete : function (){ if ( ! options . autoHeight ){ options . toShow . css ( "height" , "" );}
options . toShow . css ( "width" , originalWidth ); options . toShow . css ({ overflow : overflow }); options . complete ();}});}, bounceslide : function ( options ){ this . slide ( options ,{ easing : options . down ? "easeOutBounce" : "swing" , duration : options . down ? 1000 : 200 });}, easeslide : function ( options ){ this . slide ( options ,{ easing : "easeinout" , duration : 700 });}}});})( jQuery );( function ( $ ){ var setDataSwitch = { dragStart : "start.draggable" , drag : "drag.draggable" , dragStop : "stop.draggable" , maxHeight : "maxHeight.resizable" , minHeight : "minHeight.resizable" , maxWidth : "maxWidth.resizable" , minWidth : "minWidth.resizable" , resizeStart : "start.resizable" , resize : "drag.resizable" , resizeStop : "stop.resizable" }, uiDialogClasses = 'ui-dialog ' + 'ui-widget ' + 'ui-widget-content ' + 'ui-corner-all ' ; $ . widget ( "ui.dialog" ,{ _init : function (){ this . originalTitle = this . element . attr ( 'title' ); var self = this , options = this . options , title = options . title || this . originalTitle || ' ' , titleId = $ . ui . dialog . getTitleId ( this . element ), uiDialog = ( this . uiDialog = $ ( '<div/>' )). appendTo ( document . body ). hide (). addClass ( uiDialogClasses + options . dialogClass ). css ({ position : 'absolute' , overflow : 'hidden' , zIndex : options . zIndex }). attr ( 'tabIndex' , - 1 ). css ( 'outline' , 0 ). keydown ( function ( event ){( options . closeOnEscape && event . keyCode && event . keyCode == $ . ui . keyCode . ESCAPE && self . close ( event ));}). attr ({ role : 'dialog' , 'aria-labelledby' : titleId }). mousedown ( function ( event ){ self . moveToTop ( false , event );}), uiDialogContent = this . element . show (). removeAttr ( 'title' ). addClass ( 'ui-dialog-content ' + 'ui-widget-content' ). appendTo ( uiDialog ), uiDialogTitlebar = ( this . uiDialogTitlebar = $ ( '<div></div>' )). addClass ( 'ui-dialog-titlebar ' + 'ui-widget-header ' + 'ui-corner-all ' + 'ui-helper-clearfix' ). prependTo ( uiDialog ), uiDialogTitlebarClose = $ ( '<a href="#"/>' ). addClass ( 'ui-dialog-titlebar-close ' + 'ui-corner-all' ). attr ( 'role' , 'button' ). hover ( function (){ uiDialogTitlebarClose . addClass ( 'ui-state-hover' );}, function (){ uiDialogTitlebarClose . removeClass ( 'ui-state-hover' );}). focus ( function (){ uiDialogTitlebarClose . addClass ( 'ui-state-focus' );}). blur ( function (){ uiDialogTitlebarClose . removeClass ( 'ui-state-focus' );}). mousedown ( function ( ev ){ ev . stopPropagation ();}). click ( function ( event ){ self . close ( event ); return false ;}). appendTo ( uiDialogTitlebar ), uiDialogTitlebarCloseText = ( this . uiDialogTitlebarCloseText = $ ( '<span/>' )). addClass ( 'ui-icon ' + 'ui-icon-closethick' ). text ( options . closeText ). appendTo ( uiDialogTitlebarClose ), uiDialogTitle = $ ( '<span/>' ). addClass ( 'ui-dialog-title' ). attr ( 'id' , titleId ). html ( title ). prependTo ( uiDialogTitlebar ); uiDialogTitlebar . find ( "*" ). add ( uiDialogTitlebar ). disableSelection ();( options . draggable && $ . fn . draggable && this . _makeDraggable ());( options . resizable && $ . fn . resizable && this . _makeResizable ()); this . _createButtons ( options . buttons ); this . _isOpen = false ;( options . bgiframe && $ . fn . bgiframe && uiDialog . bgiframe ());( options . autoOpen && this . open ());}, destroy : function (){( this . overlay && this . overlay . destroy ()); this . uiDialog . hide (); this . element . unbind ( '.dialog' ). removeData ( 'dialog' ). removeClass ( 'ui-dialog-content ui-widget-content' ). hide (). appendTo ( 'body' ); this . uiDialog . remove ();( this . originalTitle && this . element . attr ( 'title' , this . originalTitle ));}, close : function ( event ){ var self = this ; if ( false === self . _trigger ( 'beforeclose' , event )){ return ;}
( self . overlay && self . overlay . destroy ()); self . uiDialog . unbind ( 'keypress.ui-dialog' );( self . options . hide ? self . uiDialog . hide ( self . options . hide , function (){ self . _trigger ( 'close' , event );}) : self . uiDialog . hide () && self . _trigger ( 'close' , event )); $ . ui . dialog . overlay . resize (); self . _isOpen = false ; if ( self . options . modal ){ var maxZ = 0 ; $ ( '.ui-dialog' ). each ( function (){ if ( this != self . uiDialog [ 0 ]){ maxZ = Math . max ( maxZ , $ ( this ). css ( 'z-index' ));}}); $ . ui . dialog . maxZ = maxZ ;}}, isOpen : function (){ return this . _isOpen ;}, moveToTop : function ( force , event ){ if (( this . options . modal &&! force ) || ( ! this . options . stack &&! this . options . modal )){ return this . _trigger ( 'focus' , event );}
if ( this . options . zIndex > $ . ui . dialog . maxZ ){ $ . ui . dialog . maxZ = this . options . zIndex ;}
( this . overlay && this . overlay . $el . css ( 'z-index' , $ . ui . dialog . overlay . maxZ =++ $ . ui . dialog . maxZ )); var saveScroll = { scrollTop : this . element . attr ( 'scrollTop' ), scrollLeft : this . element . attr ( 'scrollLeft' )}; this . uiDialog . css ( 'z-index' , ++ $ . ui . dialog . maxZ ); this . element . attr ( saveScroll ); this . _trigger ( 'focus' , event );}, open : function (){ if ( this . _isOpen ){ return ;}
var options = this . options , uiDialog = this . uiDialog ; this . overlay = options . modal ? new $ . ui . dialog . overlay ( this ) : null ;( uiDialog . next (). length && uiDialog . appendTo ( 'body' )); this . _size (); this . _position ( options . position ); uiDialog . show ( options . show ); this . moveToTop ( true );( options . modal && uiDialog . bind ( 'keypress.ui-dialog' , function ( event ){ if ( event . keyCode != $ . ui . keyCode . TAB ){ return ;}
var tabbables = $ ( ':tabbable' , this ), first = tabbables . filter ( ':first' )[ 0 ], last = tabbables . filter ( ':last' )[ 0 ]; if ( event . target == last &&! event . shiftKey ){ setTimeout ( function (){ first . focus ();}, 1 );} else if ( event . target == first && event . shiftKey ){ setTimeout ( function (){ last . focus ();}, 1 );}})); $ ([]). add ( uiDialog . find ( '.ui-dialog-content :tabbable:first' )). add ( uiDialog . find ( '.ui-dialog-buttonpane :tabbable:first' )). add ( uiDialog ). filter ( ':first' ). focus (); this . _trigger ( 'open' ); this . _isOpen = true ;}, _createButtons : function ( buttons ){ var self = this , hasButtons = false , uiDialogButtonPane = $ ( '<div></div>' ). addClass ( 'ui-dialog-buttonpane ' + 'ui-widget-content ' + 'ui-helper-clearfix' ); this . uiDialog . find ( '.ui-dialog-buttonpane' ). remove ();( typeof buttons == 'object' && buttons !== null && $ . each ( buttons , function (){ return ! ( hasButtons = true );})); if ( hasButtons ){ $ . each ( buttons , function ( name , fn ){ $ ( '<button type="button"></button>' ). addClass ( 'ui-state-default ' + 'ui-corner-all' ). text ( name ). click ( function (){ fn . apply ( self . element [ 0 ], arguments );}). hover ( function (){ $ ( this ). addClass ( 'ui-state-hover' );}, function (){ $ ( this ). removeClass ( 'ui-state-hover' );}). focus ( function (){ $ ( this ). addClass ( 'ui-state-focus' );}). blur ( function (){ $ ( this ). removeClass ( 'ui-state-focus' );}). appendTo ( uiDialogButtonPane );}); uiDialogButtonPane . appendTo ( this . uiDialog );}}, _makeDraggable : function (){ var self = this , options = this . options , heightBeforeDrag ; this . uiDialog . draggable ({ cancel : '.ui-dialog-content' , handle : '.ui-dialog-titlebar' , containment : 'document' , start : function (){ heightBeforeDrag = options . height ; $ ( this ). height ( $ ( this ). height ()). addClass ( "ui-dialog-dragging" );( options . dragStart && options . dragStart . apply ( self . element [ 0 ], arguments ));}, drag : function (){( options . drag && options . drag . apply ( self . element [ 0 ], arguments ));}, stop : function (){ $ ( this ). removeClass ( "ui-dialog-dragging" ). height ( heightBeforeDrag );( options . dragStop && options . dragStop . apply ( self . element [ 0 ], arguments )); $ . ui . dialog . overlay . resize ();}});}, _makeResizable : function ( handles ){ handles = ( handles === undefined ? this . options . resizable : handles ); var self = this , options = this . options , resizeHandles = typeof handles == 'string' ? handles : 'n,e,s,w,se,sw,ne,nw' ; this . uiDialog . resizable ({ cancel : '.ui-dialog-content' , alsoResize : this . element , maxWidth : options . maxWidth , maxHeight : options . maxHeight , minWidth : options . minWidth , minHeight : options . minHeight , start : function (){ $ ( this ). addClass ( "ui-dialog-resizing" );( options . resizeStart && options . resizeStart . apply ( self . element [ 0 ], arguments ));}, resize : function (){( options . resize && options . resize . apply ( self . element [ 0 ], arguments ));}, handles : resizeHandles , stop : function (){ $ ( this ). removeClass ( "ui-dialog-resizing" ); options . height = $ ( this ). height (); options . width = $ ( this ). width ();( options . resizeStop && options . resizeStop . apply ( self . element [ 0 ], arguments )); $ . ui . dialog . overlay . resize ();}}). find ( '.ui-resizable-se' ). addClass ( 'ui-icon ui-icon-grip-diagonal-se' );}, _position : function ( pos ){ var wnd = $ ( window ), doc = $ ( document ), pTop = doc . scrollTop (), pLeft = doc . scrollLeft (), minTop = pTop ; if ( $ . inArray ( pos ,[ 'center' , 'top' , 'right' , 'bottom' , 'left' ]) >= 0 ){ pos = [ pos == 'right' || pos == 'left' ? pos : 'center' , pos == 'top' || pos == 'bottom' ? pos : 'middle' ];}
if ( pos . constructor != Array ){ pos = [ 'center' , 'middle' ];}
if ( pos [ 0 ]. constructor == Number ){ pLeft += pos [ 0 ];} else { switch ( pos [ 0 ]){ case 'left' : pLeft += 0 ; break ; case 'right' : pLeft += wnd . width () - this . uiDialog . outerWidth (); break ; default : case 'center' : pLeft += ( wnd . width () - this . uiDialog . outerWidth ()) / 2 ;}}
if ( pos [ 1 ]. constructor == Number ){ pTop += pos [ 1 ];} else { switch ( pos [ 1 ]){ case 'top' : pTop += 0 ; break ; case 'bottom' : pTop += wnd . height () - this . uiDialog . outerHeight (); break ; default : case 'middle' : pTop += ( wnd . height () - this . uiDialog . outerHeight ()) / 2 ;}}
pTop = Math . max ( pTop , minTop ); this . uiDialog . css ({ top : pTop , left : pLeft });}, _setData : function ( key , value ){( setDataSwitch [ key ] && this . uiDialog . data ( setDataSwitch [ key ], value )); switch ( key ){ case "buttons" : this . _createButtons ( value ); break ; case "closeText" : this . uiDialogTitlebarCloseText . text ( value ); break ; case "dialogClass" : this . uiDialog . removeClass ( this . options . dialogClass ). addClass ( uiDialogClasses + value ); break ; case "draggable" : ( value ? this . _makeDraggable () : this . uiDialog . draggable ( 'destroy' )); break ; case "height" : this . uiDialog . height ( value ); break ; case "position" : this . _position ( value ); break ; case "resizable" : var uiDialog = this . uiDialog , isResizable = this . uiDialog . is ( ':data(resizable)' );( isResizable &&! value && uiDialog . resizable ( 'destroy' ));( isResizable && typeof value == 'string' && uiDialog . resizable ( 'option' , 'handles' , value ));( isResizable || this . _makeResizable ( value )); break ; case "title" : $ ( ".ui-dialog-title" , this . uiDialogTitlebar ). html ( value || ' ' ); break ; case "width" : this . uiDialog . width ( value ); break ;}
$ . widget . prototype . _setData . apply ( this , arguments );}, _size : function (){ var options = this . options ; this . element . css ({ height : 0 , minHeight : 0 , width : 'auto' }); var nonContentHeight = this . uiDialog . css ({ height : 'auto' , width : options . width }). height (); this . element . css ({ minHeight : Math . max ( options . minHeight - nonContentHeight , 0 ), height : options . height == 'auto' ? 'auto' : Math . max ( options . height - nonContentHeight , 0 )});}}); $ . extend ( $ . ui . dialog ,{ version : "1.7.2" , defaults : { autoOpen : true , bgiframe : false , buttons : {}, closeOnEscape : true , closeText : 'close' , dialogClass : '' , draggable : true , hide : null , height : 'auto' , maxHeight : false , maxWidth : false , minHeight : 150 , minWidth : 150 , modal : false , position : 'center' , resizable : true , show : null , stack : true , title : '' , width : 300 , zIndex : 1000 }, getter : 'isOpen' , uuid : 0 , maxZ : 0 , getTitleId : function ( $el ){ return 'ui-dialog-title-' + ( $el . attr ( 'id' ) ||++ this . uuid );}, overlay : function ( dialog ){ this . $el = $ . ui . dialog . overlay . create ( dialog );}}); $ . extend ( $ . ui . dialog . overlay ,{ instances : [], maxZ : 0 , events : $ . map ( 'focus,mousedown,mouseup,keydown,keypress,click' . split ( ',' ), function ( event ){ return event + '.dialog-overlay' ;}). join ( ' ' ), create : function ( dialog ){ if ( this . instances . length === 0 ){ setTimeout ( function (){ if ( $ . ui . dialog . overlay . instances . length ){ $ ( document ). bind ( $ . ui . dialog . overlay . events , function ( event ){ var dialogZ = $ ( event . target ). parents ( '.ui-dialog' ). css ( 'zIndex' ) || 0 ; return ( dialogZ > $ . ui . dialog . overlay . maxZ );});}}, 1 ); $ ( document ). bind ( 'keydown.dialog-overlay' , function ( event ){( dialog . options . closeOnEscape && event . keyCode && event . keyCode == $ . ui . keyCode . ESCAPE && dialog . close ( event ));}); $ ( window ). bind ( 'resize.dialog-overlay' , $ . ui . dialog . overlay . resize );}
var $el = $ ( '<div></div>' ). appendTo ( document . body ). addClass ( 'ui-widget-overlay' ). css ({ width : this . width (), height : this . height ()});( dialog . options . bgiframe && $ . fn . bgiframe && $el . bgiframe ()); this . instances . push ( $el ); return $el ;}, destroy : function ( $el ){ this . instances . splice ( $ . inArray ( this . instances , $el ), 1 ); if ( this . instances . length === 0 ){ $ ([ document , window ]). unbind ( '.dialog-overlay' );}
$el . remove (); var maxZ = 0 ; $ . each ( this . instances , function (){ maxZ = Math . max ( maxZ , this . css ( 'z-index' ));}); this . maxZ = maxZ ;}, height : function (){ if ( $ . browser . msie && $ . browser . version < 7 ){ var scrollHeight = Math . max ( document . documentElement . scrollHeight , document . body . scrollHeight ); var offsetHeight = Math . max ( document . documentElement . offsetHeight , document . body . offsetHeight ); if ( scrollHeight < offsetHeight ){ return $ ( window ). height () + 'px' ;} else { return scrollHeight + 'px' ;}} else { return $ ( document ). height () + 'px' ;}}, width : function (){ if ( $ . browser . msie && $ . browser . version < 7 ){ var scrollWidth = Math . max ( document . documentElement . scrollWidth , document . body . scrollWidth ); var offsetWidth = Math . max ( document . documentElement . offsetWidth , document . body . offsetWidth ); if ( scrollWidth < offsetWidth ){ return $ ( window ). width () + 'px' ;} else { return scrollWidth + 'px' ;}} else { return $ ( document ). width () + 'px' ;}}, resize : function (){ var $overlays = $ ([]); $ . each ( $ . ui . dialog . overlay . instances , function (){ $overlays = $overlays . add ( this );}); $overlays . css ({ width : 0 , height : 0 }). css ({ width : $ . ui . dialog . overlay . width (), height : $ . ui . dialog . overlay . height ()});}}); $ . extend ( $ . ui . dialog . overlay . prototype ,{ destroy : function (){ $ . ui . dialog . overlay . destroy ( this . $el );}});})( jQuery );( function ( $ ){ $ . widget ( "ui.tabs" ,{ _init : function (){ if ( this . options . deselectable !== undefined ){ this . options . collapsible = this . options . deselectable ;}
this . _tabify ( true );}, _setData : function ( key , value ){ if ( key == 'selected' ){ if ( this . options . collapsible && value == this . options . selected ){ return ;}
this . select ( value );}
else { this . options [ key ] = value ; if ( key == 'deselectable' ){ this . options . collapsible = value ;}
this . _tabify ();}}, _tabId : function ( a ){ return a . title && a . title . replace ( /\s/g , '_' ). replace ( /[^A-Za-z0-9\-_:\.]/g , '' ) || this . options . idPrefix + $ . data ( a );}, _sanitizeSelector : function ( hash ){ return hash . replace ( /:/g , '\\:' );}, _cookie : function (){ var cookie = this . cookie || ( this . cookie = this . options . cookie . name || 'ui-tabs-' + $ . data ( this . list [ 0 ])); return $ . cookie . apply ( null ,[ cookie ]. concat ( $ . makeArray ( arguments )));}, _ui : function ( tab , panel ){ return { tab : tab , panel : panel , index : this . anchors . index ( tab )};}, _cleanup : function (){ this . lis . filter ( '.ui-state-processing' ). removeClass ( 'ui-state-processing' ). find ( 'span:data(label.tabs)' ). each ( function (){ var el = $ ( this ); el . html ( el . data ( 'label.tabs' )). removeData ( 'label.tabs' );});}, _tabify : function ( init ){ this . list = this . element . children ( 'ul:first' ); this . lis = $ ( 'li:has(a[href])' , this . list ); this . anchors = this . lis . map ( function (){ return $ ( 'a' , this )[ 0 ];}); this . panels = $ ([]); var self = this , o = this . options ; var fragmentId = /^#.+/ ; this . anchors . each ( function ( i , a ){ var href = $ ( a ). attr ( 'href' ); var hrefBase = href . split ( '#' )[ 0 ], baseEl ; if ( hrefBase && ( hrefBase === location . toString (). split ( '#' )[ 0 ] || ( baseEl = $ ( 'base' )[ 0 ]) && hrefBase === baseEl . href )){ href = a . hash ; a . href = href ;}
if ( fragmentId . test ( href )){ self . panels = self . panels . add ( self . _sanitizeSelector ( href ));}
else if ( href != '#' ){ $ . data ( a , 'href.tabs' , href ); $ . data ( a , 'load.tabs' , href . replace ( /#.*$/ , '' )); var id = self . _tabId ( a ); a . href = '#' + id ; var $panel = $ ( '#' + id ); if ( ! $panel . length ){ $panel = $ ( o . panelTemplate ). attr ( 'id' , id ). addClass ( 'ui-tabs-panel ui-widget-content ui-corner-bottom' ). insertAfter ( self . panels [ i - 1 ] || self . list ); $panel . data ( 'destroy.tabs' , true );}
self . panels = self . panels . add ( $panel );}
else { o . disabled . push ( i );}}); if ( init ){ this . element . addClass ( 'ui-tabs ui-widget ui-widget-content ui-corner-all' ); this . list . addClass ( 'ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all' ); this . lis . addClass ( 'ui-state-default ui-corner-top' ); this . panels . addClass ( 'ui-tabs-panel ui-widget-content ui-corner-bottom' ); if ( o . selected === undefined ){ if ( location . hash ){ this . anchors . each ( function ( i , a ){ if ( a . hash == location . hash ){ o . selected = i ; return false ;}});}
if ( typeof o . selected != 'number' && o . cookie ){ o . selected = parseInt ( self . _cookie (), 10 );}
if ( typeof o . selected != 'number' && this . lis . filter ( '.ui-tabs-selected' ). length ){ o . selected = this . lis . index ( this . lis . filter ( '.ui-tabs-selected' ));}
o . selected = o . selected || 0 ;}
else if ( o . selected === null ){ o . selected =- 1 ;}
o . selected = (( o . selected >= 0 && this . anchors [ o . selected ]) || o . selected < 0 ) ? o . selected : 0 ; o . disabled = $ . unique ( o . disabled . concat ( $ . map ( this . lis . filter ( '.ui-state-disabled' ), function ( n , i ){ return self . lis . index ( n );}))). sort (); if ( $ . inArray ( o . selected , o . disabled ) !=- 1 ){ o . disabled . splice ( $ . inArray ( o . selected , o . disabled ), 1 );}
this . panels . addClass ( 'ui-tabs-hide' ); this . lis . removeClass ( 'ui-tabs-selected ui-state-active' ); if ( o . selected >= 0 && this . anchors . length ){ this . panels . eq ( o . selected ). removeClass ( 'ui-tabs-hide' ); this . lis . eq ( o . selected ). addClass ( 'ui-tabs-selected ui-state-active' ); self . element . queue ( "tabs" , function (){ self . _trigger ( 'show' , null , self . _ui ( self . anchors [ o . selected ], self . panels [ o . selected ]));}); this . load ( o . selected );}
$ ( window ). bind ( 'unload' , function (){ self . lis . add ( self . anchors ). unbind ( '.tabs' ); self . lis = self . anchors = self . panels = null ;});}
else { o . selected = this . lis . index ( this . lis . filter ( '.ui-tabs-selected' ));}
this . element [ o . collapsible ? 'addClass' : 'removeClass' ]( 'ui-tabs-collapsible' ); if ( o . cookie ){ this . _cookie ( o . selected , o . cookie );}
for ( var i = 0 , li ;( li = this . lis [ i ]); i ++ ){ $ ( li )[ $ . inArray ( i , o . disabled ) !=- 1 &&! $ ( li ). hasClass ( 'ui-tabs-selected' ) ? 'addClass' : 'removeClass' ]( 'ui-state-disabled' );}
if ( o . cache === false ){ this . anchors . removeData ( 'cache.tabs' );}
this . lis . add ( this . anchors ). unbind ( '.tabs' ); if ( o . event != 'mouseover' ){ var addState = function ( state , el ){ if ( el . is ( ':not(.ui-state-disabled)' )){ el . addClass ( 'ui-state-' + state );}}; var removeState = function ( state , el ){ el . removeClass ( 'ui-state-' + state );}; this . lis . bind ( 'mouseover.tabs' , function (){ addState ( 'hover' , $ ( this ));}); this . lis . bind ( 'mouseout.tabs' , function (){ removeState ( 'hover' , $ ( this ));}); this . anchors . bind ( 'focus.tabs' , function (){ addState ( 'focus' , $ ( this ). closest ( 'li' ));}); this . anchors . bind ( 'blur.tabs' , function (){ removeState ( 'focus' , $ ( this ). closest ( 'li' ));});}
var hideFx , showFx ; if ( o . fx ){ if ( $ . isArray ( o . fx )){ hideFx = o . fx [ 0 ]; showFx = o . fx [ 1 ];}
else { hideFx = showFx = o . fx ;}}
function resetStyle ( $el , fx ){ $el . css ({ display : '' }); if ( $ . browser . msie && fx . opacity ){ $el [ 0 ]. style . removeAttribute ( 'filter' );}}
var showTab = showFx ? function ( clicked , $show ){ $ ( clicked ). closest ( 'li' ). removeClass ( 'ui-state-default' ). addClass ( 'ui-tabs-selected ui-state-active' ); $show . hide (). removeClass ( 'ui-tabs-hide' ). animate ( showFx , showFx . duration || 'normal' , function (){ resetStyle ( $show , showFx ); self . _trigger ( 'show' , null , self . _ui ( clicked , $show [ 0 ]));});} : function ( clicked , $show ){ $ ( clicked ). closest ( 'li' ). removeClass ( 'ui-state-default' ). addClass ( 'ui-tabs-selected ui-state-active' ); $show . removeClass ( 'ui-tabs-hide' ); self . _trigger ( 'show' , null , self . _ui ( clicked , $show [ 0 ]));}; var hideTab = hideFx ? function ( clicked , $hide ){ $hide . animate ( hideFx , hideFx . duration || 'normal' , function (){ self . lis . removeClass ( 'ui-tabs-selected ui-state-active' ). addClass ( 'ui-state-default' ); $hide . addClass ( 'ui-tabs-hide' ); resetStyle ( $hide , hideFx ); self . element . dequeue ( "tabs" );});} : function ( clicked , $hide , $show ){ self . lis . removeClass ( 'ui-tabs-selected ui-state-active' ). addClass ( 'ui-state-default' ); $hide . addClass ( 'ui-tabs-hide' ); self . element . dequeue ( "tabs" );}; this . anchors . bind ( o . event + '.tabs' , function (){ var el = this , $li = $ ( this ). closest ( 'li' ), $hide = self . panels . filter ( ':not(.ui-tabs-hide)' ), $show = $ ( self . _sanitizeSelector ( this . hash )); if (( $li . hasClass ( 'ui-tabs-selected' ) &&! o . collapsible ) || $li . hasClass ( 'ui-state-disabled' ) || $li . hasClass ( 'ui-state-processing' ) || self . _trigger ( 'select' , null , self . _ui ( this , $show [ 0 ])) === false ){ this . blur (); return false ;}
o . selected = self . anchors . index ( this ); self . abort (); if ( o . collapsible ){ if ( $li . hasClass ( 'ui-tabs-selected' )){ o . selected =- 1 ; if ( o . cookie ){ self . _cookie ( o . selected , o . cookie );}
self . element . queue ( "tabs" , function (){ hideTab ( el , $hide );}). dequeue ( "tabs" ); this . blur (); return false ;}
else if ( ! $hide . length ){ if ( o . cookie ){ self . _cookie ( o . selected , o . cookie );}
self . element . queue ( "tabs" , function (){ showTab ( el , $show );}); self . load ( self . anchors . index ( this )); this . blur (); return false ;}}
if ( o . cookie ){ self . _cookie ( o . selected , o . cookie );}
if ( $show . length ){ if ( $hide . length ){ self . element . queue ( "tabs" , function (){ hideTab ( el , $hide );});}
self . element . queue ( "tabs" , function (){ showTab ( el , $show );}); self . load ( self . anchors . index ( this ));}
else { throw 'jQuery UI Tabs: Mismatching fragment identifier.' ;}
if ( $ . browser . msie ){ this . blur ();}}); this . anchors . bind ( 'click.tabs' , function (){ return false ;});}, destroy : function (){ var o = this . options ; this . abort (); this . element . unbind ( '.tabs' ). removeClass ( 'ui-tabs ui-widget ui-widget-content ui-corner-all ui-tabs-collapsible' ). removeData ( 'tabs' ); this . list . removeClass ( 'ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all' ); this . anchors . each ( function (){ var href = $ . data ( this , 'href.tabs' ); if ( href ){ this . href = href ;}
var $this = $ ( this ). unbind ( '.tabs' ); $ . each ([ 'href' , 'load' , 'cache' ], function ( i , prefix ){ $this . removeData ( prefix + '.tabs' );});}); this . lis . unbind ( '.tabs' ). add ( this . panels ). each ( function (){ if ( $ . data ( this , 'destroy.tabs' )){ $ ( this ). remove ();}
else { $ ( this ). removeClass ([ 'ui-state-default' , 'ui-corner-top' , 'ui-tabs-selected' , 'ui-state-active' , 'ui-state-hover' , 'ui-state-focus' , 'ui-state-disabled' , 'ui-tabs-panel' , 'ui-widget-content' , 'ui-corner-bottom' , 'ui-tabs-hide' ]. join ( ' ' ));}}); if ( o . cookie ){ this . _cookie ( null , o . cookie );}}, add : function ( url , label , index ){ if ( index === undefined ){ index = this . anchors . length ;}
var self = this , o = this . options , $li = $ ( o . tabTemplate . replace ( /#\{href\}/g , url ). replace ( /#\{label\}/g , label )), id =! url . indexOf ( '#' ) ? url . replace ( '#' , '' ) : this . _tabId ( $ ( 'a' , $li )[ 0 ]); $li . addClass ( 'ui-state-default ui-corner-top' ). data ( 'destroy.tabs' , true ); var $panel = $ ( '#' + id ); if ( ! $panel . length ){ $panel = $ ( o . panelTemplate ). attr ( 'id' , id ). data ( 'destroy.tabs' , true );}
$panel . addClass ( 'ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide' ); if ( index >= this . lis . length ){ $li . appendTo ( this . list ); $panel . appendTo ( this . list [ 0 ]. parentNode );}
else { $li . insertBefore ( this . lis [ index ]); $panel . insertBefore ( this . panels [ index ]);}
o . disabled = $ . map ( o . disabled , function ( n , i ){ return n >= index ?++ n : n ;}); this . _tabify (); if ( this . anchors . length == 1 ){ $li . addClass ( 'ui-tabs-selected ui-state-active' ); $panel . removeClass ( 'ui-tabs-hide' ); this . element . queue ( "tabs" , function (){ self . _trigger ( 'show' , null , self . _ui ( self . anchors [ 0 ], self . panels [ 0 ]));}); this . load ( 0 );}
this . _trigger ( 'add' , null , this . _ui ( this . anchors [ index ], this . panels [ index ]));}, remove : function ( index ){ var o = this . options , $li = this . lis . eq ( index ). remove (), $panel = this . panels . eq ( index ). remove (); if ( $li . hasClass ( 'ui-tabs-selected' ) && this . anchors . length > 1 ){ this . select ( index + ( index + 1 < this . anchors . length ? 1 :- 1 ));}
o . disabled = $ . map ( $ . grep ( o . disabled , function ( n , i ){ return n != index ;}), function ( n , i ){ return n >= index ?-- n : n ;}); this . _tabify (); this . _trigger ( 'remove' , null , this . _ui ( $li . find ( 'a' )[ 0 ], $panel [ 0 ]));}, enable : function ( index ){ var o = this . options ; if ( $ . inArray ( index , o . disabled ) ==- 1 ){ return ;}
this . lis . eq ( index ). removeClass ( 'ui-state-disabled' ); o . disabled = $ . grep ( o . disabled , function ( n , i ){ return n != index ;}); this . _trigger ( 'enable' , null , this . _ui ( this . anchors [ index ], this . panels [ index ]));}, disable : function ( index ){ var self = this , o = this . options ; if ( index != o . selected ){ this . lis . eq ( index ). addClass ( 'ui-state-disabled' ); o . disabled . push ( index ); o . disabled . sort (); this . _trigger ( 'disable' , null , this . _ui ( this . anchors [ index ], this . panels [ index ]));}}, select : function ( index ){ if ( typeof index == 'string' ){ index = this . anchors . index ( this . anchors . filter ( '[href$=' + index + ']' ));}
else if ( index === null ){ index =- 1 ;}
if ( index ==- 1 && this . options . collapsible ){ index = this . options . selected ;}
this . anchors . eq ( index ). trigger ( this . options . event + '.tabs' );}, load : function ( index ){ var self = this , o = this . options , a = this . anchors . eq ( index )[ 0 ], url = $ . data ( a , 'load.tabs' ); this . abort (); if ( ! url || this . element . queue ( "tabs" ). length !== 0 && $ . data ( a , 'cache.tabs' )){ this . element . dequeue ( "tabs" ); return ;}
this . lis . eq ( index ). addClass ( 'ui-state-processing' ); if ( o . spinner ){ var span = $ ( 'span' , a ); span . data ( 'label.tabs' , span . html ()). html ( o . spinner );}
this . xhr = $ . ajax ( $ . extend ({}, o . ajaxOptions ,{ url : url , success : function ( r , s ){ $ ( self . _sanitizeSelector ( a . hash )). html ( r ); self . _cleanup (); if ( o . cache ){ $ . data ( a , 'cache.tabs' , true );}
self . _trigger ( 'load' , null , self . _ui ( self . anchors [ index ], self . panels [ index ])); try { o . ajaxOptions . success ( r , s );}
catch ( e ){}
self . element . dequeue ( "tabs" );}}));}, abort : function (){ this . element . queue ([]); this . panels . stop ( false , true ); if ( this . xhr ){ this . xhr . abort (); delete this . xhr ;}
this . _cleanup ();}, url : function ( index , url ){ this . anchors . eq ( index ). removeData ( 'cache.tabs' ). data ( 'load.tabs' , url );}, length : function (){ return this . anchors . length ;}}); $ . extend ( $ . ui . tabs ,{ version : '1.7.2' , getter : 'length' , defaults : { ajaxOptions : null , cache : false , cookie : null , collapsible : false , disabled : [], event : 'click' , fx : null , idPrefix : 'ui-tabs-' , panelTemplate : '<div></div>' , spinner : '<em>Loading…</em>' , tabTemplate : '<li><a href="#{href}"><span>#{label}</span></a></li>' }}); $ . extend ( $ . ui . tabs . prototype ,{ rotation : null , rotate : function ( ms , continuing ){ var self = this , o = this . options ; var rotate = self . _rotate || ( self . _rotate = function ( e ){ clearTimeout ( self . rotation ); self . rotation = setTimeout ( function (){ var t = o . selected ; self . select ( ++ t < self . anchors . length ? t : 0 );}, ms ); if ( e ){ e . stopPropagation ();}}); var stop = self . _unrotate || ( self . _unrotate =! continuing ? function ( e ){ if ( e . clientX ){ self . rotate ( null );}} : function ( e ){ t = o . selected ; rotate ();}); if ( ms ){ this . element . bind ( 'tabsshow' , rotate ); this . anchors . bind ( o . event + '.tabs' , stop ); rotate ();}
else { clearTimeout ( self . rotation ); this . element . unbind ( 'tabsshow' , rotate ); this . anchors . unbind ( o . event + '.tabs' , stop ); delete this . _rotate ; delete this . _unrotate ;}}});})( jQuery );( function ( $ ){ $ . widget ( "ui.progressbar" ,{ _init : function (){ this . element . addClass ( "ui-progressbar"
+ " ui-widget"
+ " ui-widget-content"
+ " ui-corner-all" ). attr ({ role : "progressbar" , "aria-valuemin" : this . _valueMin (), "aria-valuemax" : this . _valueMax (), "aria-valuenow" : this . _value ()}); this . valueDiv = $ ( '<div class="ui-progressbar-value ui-widget-header ui-corner-left"></div>' ). appendTo ( this . element ); 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" ). removeData ( "progressbar" ). unbind ( ".progressbar" ); this . valueDiv . remove (); $ . widget . prototype . destroy . apply ( this , arguments );}, value : function ( newValue ){ if ( newValue === undefined ){ return this . _value ();}
this . _setData ( 'value' , newValue ); return this ;}, _setData : function ( key , value ){ switch ( key ){ case 'value' : this . options . value = value ; this . _refreshValue (); this . _trigger ( 'change' , null ,{}); break ;}
$ . widget . prototype . _setData . apply ( this , arguments );}, _value : function (){ var val = this . options . value ; if ( val < this . _valueMin ()) val = this . _valueMin (); if ( val > this . _valueMax ()) val = this . _valueMax (); return val ;}, _valueMin : function (){ var valueMin = 0 ; return valueMin ;}, _valueMax : function (){ var valueMax = 100 ; return valueMax ;}, _refreshValue : function (){ var value = this . value (); this . valueDiv [ value == this . _valueMax () ? 'addClass' : 'removeClass' ]( "ui-corner-right" ); this . valueDiv . width ( value + '%' ); this . element . attr ( "aria-valuenow" , value );}}); $ . extend ( $ . ui . progressbar ,{ version : "1.7.2" , defaults : { value : 0 }});})( jQuery );; jQuery . effects || ( function ( $ ){ $ . effects = { version : "1.7.2" , save : function ( element , set ){ for ( var i = 0 ; i < set . length ; i ++ ){ if ( set [ i ] !== null ) element . data ( "ec.storage." + set [ i ], element [ 0 ]. style [ set [ i ]]);}}, restore : function ( element , set ){ for ( var i = 0 ; i < set . length ; i ++ ){ if ( set [ i ] !== null ) element . css ( set [ i ], element . data ( "ec.storage." + set [ i ]));}}, setMode : function ( el , mode ){ if ( mode == 'toggle' ) mode = el . is ( ':hidden' ) ? 'show' : 'hide' ; return mode ;}, getBaseline : function ( origin , original ){ var y , x ; switch ( origin [ 0 ]){ case 'top' : y = 0 ; break ; case 'middle' : y = 0.5 ; break ; case 'bottom' : y = 1 ; break ; default : y = origin [ 0 ] / original . height ;}; switch ( origin [ 1 ]){ case 'left' : x = 0 ; break ; case 'center' : x = 0.5 ; break ; case 'right' : x = 1 ; break ; default : x = origin [ 1 ] / original . width ;}; return { x : x , y : y };}, createWrapper : function ( element ){ if ( element . parent (). is ( '.ui-effects-wrapper' ))
return element . parent (); var props = { width : element . outerWidth ( true ), height : element . outerHeight ( true ), 'float' : element . css ( 'float' )}; element . wrap ( '<div class="ui-effects-wrapper" style="font-size:100%;background:transparent;border:none;margin:0;padding:0"></div>' ); var wrapper = element . parent (); if ( element . css ( 'position' ) == 'static' ){ wrapper . css ({ position : 'relative' }); element . css ({ position : 'relative' });} else { var top = element . css ( 'top' ); if ( isNaN ( parseInt ( top , 10 ))) top = 'auto' ; var left = element . css ( 'left' ); if ( isNaN ( parseInt ( left , 10 ))) left = 'auto' ; wrapper . css ({ position : element . css ( 'position' ), top : top , left : left , zIndex : element . css ( 'z-index' )}). show (); element . css ({ position : 'relative' , top : 0 , left : 0 });}
wrapper . css ( props ); return wrapper ;}, removeWrapper : function ( element ){ if ( element . parent (). is ( '.ui-effects-wrapper' ))
return element . parent (). replaceWith ( element ); return element ;}, setTransition : function ( element , list , factor , value ){ value = value || {}; $ . each ( list , function ( i , x ){ unit = element . cssUnit ( x ); if ( unit [ 0 ] > 0 ) value [ x ] = unit [ 0 ] * factor + unit [ 1 ];}); return value ;}, animateClass : function ( value , duration , easing , callback ){ var cb = ( typeof easing == "function" ? easing : ( callback ? callback : null )); var ea = ( typeof easing == "string" ? easing : null ); return this . each ( function (){ var offset = {}; var that = $ ( this ); var oldStyleAttr = that . attr ( "style" ) || '' ; if ( typeof oldStyleAttr == 'object' ) oldStyleAttr = oldStyleAttr [ "cssText" ]; if ( value . toggle ){ that . hasClass ( value . toggle ) ? value . remove = value . toggle : value . add = value . toggle ;}
var oldStyle = $ . extend ({},( document . defaultView ? document . defaultView . getComputedStyle ( this , null ) : this . currentStyle )); if ( value . add ) that . addClass ( value . add ); if ( value . remove ) that . removeClass ( value . remove ); var newStyle = $ . extend ({},( document . defaultView ? document . defaultView . getComputedStyle ( this , null ) : this . currentStyle )); if ( value . add ) that . removeClass ( value . add ); if ( value . remove ) that . addClass ( value . remove ); for ( var n in newStyle ){ if ( typeof newStyle [ n ] != "function" && newStyle [ n ] && n . indexOf ( "Moz" ) ==- 1 && n . indexOf ( "length" ) ==- 1 && newStyle [ n ] != oldStyle [ n ] && ( n . match ( /color/i ) || ( ! n . match ( /color/i ) &&! isNaN ( parseInt ( newStyle [ n ], 10 )))) && ( oldStyle . position != "static" || ( oldStyle . position == "static" &&! n . match ( /left|top|bottom|right/ )))) offset [ n ] = newStyle [ n ];}
that . animate ( offset , duration , ea , function (){ if ( typeof $ ( this ). attr ( "style" ) == 'object' ){ $ ( this ). attr ( "style" )[ "cssText" ] = "" ; $ ( this ). attr ( "style" )[ "cssText" ] = oldStyleAttr ;} else $ ( this ). attr ( "style" , oldStyleAttr ); if ( value . add ) $ ( this ). addClass ( value . add ); if ( value . remove ) $ ( this ). removeClass ( value . remove ); if ( cb ) cb . apply ( this , arguments );});});}}; function _normalizeArguments ( a , m ){ var o = a [ 1 ] && a [ 1 ]. constructor == Object ? a [ 1 ] : {}; if ( m ) o . mode = m ; var speed = a [ 1 ] && a [ 1 ]. constructor != Object ? a [ 1 ] : ( o . duration ? o . duration : a [ 2 ]); speed = $ . fx . off ? 0 : typeof speed === "number" ? speed : $ . fx . speeds [ speed ] || $ . fx . speeds . _default ; var callback = o . callback || ( $ . isFunction ( a [ 1 ]) && a [ 1 ]) || ( $ . isFunction ( a [ 2 ]) && a [ 2 ]) || ( $ . isFunction ( a [ 3 ]) && a [ 3 ]); return [ a [ 0 ], o , speed , callback ];}
$ . fn . extend ({ _show : $ . fn . show , _hide : $ . fn . hide , __toggle : $ . fn . toggle , _addClass : $ . fn . addClass , _removeClass : $ . fn . removeClass , _toggleClass : $ . fn . toggleClass , effect : function ( fx , options , speed , callback ){ return $ . effects [ fx ] ? $ . effects [ fx ]. call ( this ,{ method : fx , options : options || {}, duration : speed , callback : callback }) : null ;}, show : function (){ if ( ! arguments [ 0 ] || ( arguments [ 0 ]. constructor == Number || ( /(slow|normal|fast)/ ). test ( arguments [ 0 ])))
return this . _show . apply ( this , arguments ); else { return this . effect . apply ( this , _normalizeArguments ( arguments , 'show' ));}}, hide : function (){ if ( ! arguments [ 0 ] || ( arguments [ 0 ]. constructor == Number || ( /(slow|normal|fast)/ ). test ( arguments [ 0 ])))
return this . _hide . apply ( this , arguments ); else { return this . effect . apply ( this , _normalizeArguments ( arguments , 'hide' ));}}, toggle : function (){ if ( ! arguments [ 0 ] || ( arguments [ 0 ]. constructor == Number || ( /(slow|normal|fast)/ ). test ( arguments [ 0 ])) || ( $ . isFunction ( arguments [ 0 ]) || typeof arguments [ 0 ] == 'boolean' )){ return this . __toggle . apply ( this , arguments );} else { return this . effect . apply ( this , _normalizeArguments ( arguments , 'toggle' ));}}, addClass : function ( classNames , speed , easing , callback ){ return speed ? $ . effects . animateClass . apply ( this ,[{ add : classNames }, speed , easing , callback ]) : this . _addClass ( classNames );}, removeClass : function ( classNames , speed , easing , callback ){ return speed ? $ . effects . animateClass . apply ( this ,[{ remove : classNames }, speed , easing , callback ]) : this . _removeClass ( classNames );}, toggleClass : function ( classNames , speed , easing , callback ){ return (( typeof speed !== "boolean" ) && speed ) ? $ . effects . animateClass . apply ( this ,[{ toggle : classNames }, speed , easing , callback ]) : this . _toggleClass ( classNames , speed );}, morph : function ( remove , add , speed , easing , callback ){ return $ . effects . animateClass . apply ( this ,[{ add : add , remove : remove }, speed , easing , callback ]);}, switchClass : function (){ return this . morph . apply ( this , arguments );}, cssUnit : function ( key ){ var style = this . css ( key ), val = []; $ . each ([ 'em' , 'px' , '%' , 'pt' ], function ( i , unit ){ if ( style . indexOf ( unit ) > 0 )
val = [ parseFloat ( style ), unit ];}); return val ;}}); $ . each ([ 'backgroundColor' , 'borderBottomColor' , 'borderLeftColor' , 'borderRightColor' , 'borderTopColor' , 'color' , 'outlineColor' ], function ( i , attr ){ $ . fx . step [ attr ] = function ( fx ){ if ( fx . state == 0 ){ fx . start = getColor ( fx . elem , attr ); fx . end = getRGB ( fx . end );}
fx . elem . style [ attr ] = "rgb(" + [ Math . max ( Math . min ( parseInt (( fx . pos * ( fx . end [ 0 ] - fx . start [ 0 ])) + fx . start [ 0 ], 10 ), 255 ), 0 ), Math . max ( Math . min ( parseInt (( fx . pos * ( fx . end [ 1 ] - fx . start [ 1 ])) + fx . start [ 1 ], 10 ), 255 ), 0 ), Math . max ( Math . min ( parseInt (( fx . pos * ( fx . end [ 2 ] - fx . start [ 2 ])) + fx . start [ 2 ], 10 ), 255 ), 0 )]. join ( "," ) + ")" ;};}); function getRGB ( color ){ var result ; if ( color && color . constructor == Array && color . length == 3 )
return color ; if ( result = /rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/ . exec ( color ))
return [ parseInt ( result [ 1 ], 10 ), parseInt ( result [ 2 ], 10 ), parseInt ( result [ 3 ], 10 )]; if ( result = /rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/ . exec ( color ))
return [ parseFloat ( result [ 1 ]) * 2.55 , parseFloat ( result [ 2 ]) * 2.55 , parseFloat ( result [ 3 ]) * 2.55 ]; if ( result = /#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/ . exec ( color ))
return [ parseInt ( result [ 1 ], 16 ), parseInt ( result [ 2 ], 16 ), parseInt ( result [ 3 ], 16 )]; if ( result = /#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/ . exec ( color ))
return [ parseInt ( result [ 1 ] + result [ 1 ], 16 ), parseInt ( result [ 2 ] + result [ 2 ], 16 ), parseInt ( result [ 3 ] + result [ 3 ], 16 )]; if ( result = /rgba\(0, 0, 0, 0\)/ . exec ( color ))
return colors [ 'transparent' ]; return colors [ $ . trim ( color ). toLowerCase ()];}
function getColor ( elem , attr ){ var color ; do { color = $ . curCSS ( elem , attr ); if ( color != '' && color != 'transparent' || $ . nodeName ( elem , "body" ))
break ; attr = "backgroundColor" ;} while ( elem = elem . parentNode ); return getRGB ( color );}; var colors = { aqua : [ 0 , 255 , 255 ], azure : [ 240 , 255 , 255 ], beige : [ 245 , 245 , 220 ], black : [ 0 , 0 , 0 ], blue : [ 0 , 0 , 255 ], brown : [ 165 , 42 , 42 ], cyan : [ 0 , 255 , 255 ], darkblue : [ 0 , 0 , 139 ], darkcyan : [ 0 , 139 , 139 ], darkgrey : [ 169 , 169 , 169 ], darkgreen : [ 0 , 100 , 0 ], darkkhaki : [ 189 , 183 , 107 ], darkmagenta : [ 139 , 0 , 139 ], darkolivegreen : [ 85 , 107 , 47 ], darkorange : [ 255 , 140 , 0 ], darkorchid : [ 153 , 50 , 204 ], darkred : [ 139 , 0 , 0 ], darksalmon : [ 233 , 150 , 122 ], darkviolet : [ 148 , 0 , 211 ], fuchsia : [ 255 , 0 , 255 ], gold : [ 255 , 215 , 0 ], green : [ 0 , 128 , 0 ], indigo : [ 75 , 0 , 130 ], khaki : [ 240 , 230 , 140 ], lightblue : [ 173 , 216 , 230 ], lightcyan : [ 224 , 255 , 255 ], lightgreen : [ 144 , 238 , 144 ], lightgrey : [ 211 , 211 , 211 ], lightpink : [ 255 , 182 , 193 ], lightyellow : [ 255 , 255 , 224 ], lime : [ 0 , 255 , 0 ], magenta : [ 255 , 0 , 255 ], maroon : [ 128 , 0 , 0 ], navy : [ 0 , 0 , 128 ], olive : [ 128 , 128 , 0 ], orange : [ 255 , 165 , 0 ], pink : [ 255 , 192 , 203 ], purple : [ 128 , 0 , 128 ], violet : [ 128 , 0 , 128 ], red : [ 255 , 0 , 0 ], silver : [ 192 , 192 , 192 ], white : [ 255 , 255 , 255 ], yellow : [ 255 , 255 , 0 ], transparent : [ 255 , 255 , 255 ]}; $ . easing . jswing = $ . easing . swing ; $ . extend ( $ . easing ,{ def : 'easeOutQuad' , swing : function ( x , t , b , c , d ){ return $ . easing [ $ . easing . def ]( x , t , b , c , d );}, easeInQuad : function ( x , t , b , c , d ){ return c * ( t /= d ) * t + b ;}, easeOutQuad : function ( x , t , b , c , d ){ return - c * ( t /= d ) * ( t - 2 ) + b ;}, easeInOutQuad : function ( x , t , b , c , d ){ if (( t /= d / 2 ) < 1 ) return c / 2 * t * t + b ; return - c / 2 * (( -- t ) * ( t - 2 ) - 1 ) + b ;}, easeInCubic : function ( x , t , b , c , d ){ return c * ( t /= d ) * t * t + b ;}, easeOutCubic : function ( x , t , b , c , d ){ return c * (( t = t / d - 1 ) * t * t + 1 ) + b ;}, easeInOutCubic : function ( x , t , b , c , d ){ if (( t /= d / 2 ) < 1 ) return c / 2 * t * t * t + b ; return c / 2 * (( t -= 2 ) * t * t + 2 ) + b ;}, easeInQuart : function ( x , t , b , c , d ){ return c * ( t /= d ) * t * t * t + b ;}, easeOutQuart : function ( x , t , b , c , d ){ return - c * (( t = t / d - 1 ) * t * t * t - 1 ) + b ;}, easeInOutQuart : function ( x , t , b , c , d ){ if (( t /= d / 2 ) < 1 ) return c / 2 * t * t * t * t + b ; return - c / 2 * (( t -= 2 ) * t * t * t - 2 ) + b ;}, easeInQuint : function ( x , t , b , c , d ){ return c * ( t /= d ) * t * t * t * t + b ;}, easeOutQuint : function ( x , t , b , c , d ){ return c * (( t = t / d - 1 ) * t * t * t * t + 1 ) + b ;}, easeInOutQuint : function ( x , t , b , c , d ){ if (( t /= d / 2 ) < 1 ) return c / 2 * t * t * t * t * t + b ; return c / 2 * (( t -= 2 ) * t * t * t * t + 2 ) + b ;}, easeInSine : function ( x , t , b , c , d ){ return - c * Math . cos ( t / d * ( Math . PI / 2 )) + c + b ;}, easeOutSine : function ( x , t , b , c , d ){ return c * Math . sin ( t / d * ( Math . PI / 2 )) + b ;}, easeInOutSine : function ( x , t , b , c , d ){ return - c / 2 * ( Math . cos ( Math . PI * t / d ) - 1 ) + b ;}, easeInExpo : function ( x , t , b , c , d ){ return ( t == 0 ) ? b : c * Math . pow ( 2 , 10 * ( t / d - 1 )) + b ;}, easeOutExpo : function ( x , t , b , c , d ){ return ( t == d ) ? b + c : c * ( - Math . pow ( 2 , - 10 * t / d ) + 1 ) + b ;}, easeInOutExpo : function ( x , t , b , c , d ){ if ( t == 0 ) return b ; if ( t == d ) return b + c ; if (( t /= d / 2 ) < 1 ) return c / 2 * Math . pow ( 2 , 10 * ( t - 1 )) + b ; return c / 2 * ( - Math . pow ( 2 , - 10 *-- t ) + 2 ) + b ;}, easeInCirc : function ( x , t , b , c , d ){ return - c * ( Math . sqrt ( 1 - ( t /= d ) * t ) - 1 ) + b ;}, easeOutCirc : function ( x , t , b , c , d ){ return c * Math . sqrt ( 1 - ( t = t / d - 1 ) * t ) + b ;}, easeInOutCirc : function ( x , t , b , c , d ){ if (( t /= d / 2 ) < 1 ) return - c / 2 * ( Math . sqrt ( 1 - t * t ) - 1 ) + b ; return c / 2 * ( Math . sqrt ( 1 - ( t -= 2 ) * t ) + 1 ) + b ;}, easeInElastic : function ( x , t , b , c , d ){ var s = 1.70158 ; var p = 0 ; var a = c ; if ( t == 0 ) return b ; if (( t /= d ) == 1 ) return b + c ; if ( ! p ) p = d * . 3 ; if ( a < Math . abs ( c )){ a = c ; var s = p / 4 ;}
else var s = p / ( 2 * Math . PI ) * Math . asin ( c / a ); return - ( a * Math . pow ( 2 , 10 * ( t -= 1 )) * Math . sin (( t * d - s ) * ( 2 * Math . PI ) / p )) + b ;}, easeOutElastic : function ( x , t , b , c , d ){ var s = 1.70158 ; var p = 0 ; var a = c ; if ( t == 0 ) return b ; if (( t /= d ) == 1 ) return b + c ; if ( ! p ) p = d * . 3 ; if ( a < Math . abs ( c )){ a = c ; var s = p / 4 ;}
else var s = p / ( 2 * Math . PI ) * Math . asin ( c / a ); return a * Math . pow ( 2 , - 10 * t ) * Math . sin (( t * d - s ) * ( 2 * Math . PI ) / p ) + c + b ;}, easeInOutElastic : function ( x , t , b , c , d ){ var s = 1.70158 ; var p = 0 ; var a = c ; if ( t == 0 ) return b ; if (( t /= d / 2 ) == 2 ) return b + c ; if ( ! p ) p = d * (. 3 * 1.5 ); if ( a < Math . abs ( c )){ a = c ; var s = p / 4 ;}
else var s = p / ( 2 * Math . PI ) * Math . asin ( c / a ); if ( t < 1 ) return - . 5 * ( a * Math . pow ( 2 , 10 * ( t -= 1 )) * Math . sin (( t * d - s ) * ( 2 * Math . PI ) / p )) + b ; return a * Math . pow ( 2 , - 10 * ( t -= 1 )) * Math . sin (( t * d - s ) * ( 2 * Math . PI ) / p ) * . 5 + c + b ;}, easeInBack : function ( x , t , b , c , d , s ){ if ( s == undefined ) s = 1.70158 ; return c * ( t /= d ) * t * (( s + 1 ) * t - s ) + b ;}, easeOutBack : function ( x , t , b , c , d , s ){ if ( s == undefined ) s = 1.70158 ; return c * (( t = t / d - 1 ) * t * (( s + 1 ) * t + s ) + 1 ) + b ;}, easeInOutBack : function ( x , t , b , c , d , s ){ if ( s == undefined ) s = 1.70158 ; if (( t /= d / 2 ) < 1 ) return c / 2 * ( t * t * ((( s *= ( 1.525 )) + 1 ) * t - s )) + b ; return c / 2 * (( t -= 2 ) * t * ((( s *= ( 1.525 )) + 1 ) * t + s ) + 2 ) + b ;}, easeInBounce : function ( x , t , b , c , d ){ return c - $ . easing . easeOutBounce ( x , d - t , 0 , c , d ) + b ;}, easeOutBounce : function ( x , t , b , c , d ){ if (( t /= d ) < ( 1 / 2.75 )){ return c * ( 7.5625 * t * t ) + b ;} else if ( t < ( 2 / 2.75 )){ return c * ( 7.5625 * ( t -= ( 1.5 / 2.75 )) * t + . 75 ) + b ;} else if ( t < ( 2.5 / 2.75 )){ return c * ( 7.5625 * ( t -= ( 2.25 / 2.75 )) * t + . 9375 ) + b ;} else { return c * ( 7.5625 * ( t -= ( 2.625 / 2.75 )) * t + . 984375 ) + b ;}}, easeInOutBounce : function ( x , t , b , c , d ){ if ( t < d / 2 ) return $ . easing . easeInBounce ( x , t * 2 , 0 , c , d ) * . 5 + b ; return $ . easing . easeOutBounce ( x , t * 2 - d , 0 , c , d ) * . 5 + c * . 5 + b ;}});})( jQuery );( function ( $ ){ $ . effects . highlight = function ( o ){ return this . queue ( function (){ var el = $ ( this ), props = [ 'backgroundImage' , 'backgroundColor' , 'opacity' ]; var mode = $ . effects . setMode ( el , o . options . mode || 'show' ); var color = o . options . color || "#ffff99" ; var oldColor = el . css ( "backgroundColor" ); $ . effects . save ( el , props ); el . show (); el . css ({ backgroundImage : 'none' , backgroundColor : color }); var animation = { backgroundColor : oldColor }; if ( mode == "hide" ) animation [ 'opacity' ] = 0 ; el . animate ( animation ,{ queue : false , duration : o . duration , easing : o . options . easing , complete : function (){ if ( mode == "hide" ) el . hide (); $ . effects . restore ( el , props ); if ( mode == "show" && $ . browser . msie ) this . style . removeAttribute ( 'filter' ); if ( o . callback ) o . callback . apply ( this , arguments ); el . dequeue ();}});});};})( jQuery );( function ( $ ){ $ . effects . transfer = function ( o ){ return this . queue ( function (){ var elem = $ ( this ), target = $ ( o . options . to ), endPosition = target . offset (), animation = { top : endPosition . top , left : endPosition . left , height : target . innerHeight (), width : target . innerWidth ()}, startPosition = elem . offset (), transfer = $ ( '<div class="ui-effects-transfer"></div>' ). appendTo ( document . body ). addClass ( o . options . className ). css ({ top : startPosition . top , left : startPosition . left , height : elem . innerHeight (), width : elem . innerWidth (), position : 'absolute' }). animate ( animation , o . duration , o . options . easing , function (){ transfer . remove ();( o . callback && o . callback . apply ( elem [ 0 ], arguments )); elem . dequeue ();});});};})( jQuery );