2013-04-04 09:26:00 +00: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 ; } }
2013-04-04 09:26:02 +00:00
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 && ! ( document . documentMode >= 9 ) && ! event . button ) { return this . _mouseUp ( event ) ; }
2013-04-04 09:26:00 +00:00
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 ; }
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 ; }
if ( y1 > y2 ) { var tmp = y2 ; y2 = y1 ; y1 = tmp ; }
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 ] )
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 } ) ; } }
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 -- )
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 ) ;