2009-01-16 07:51:31 +00:00
;( function ( $ ){ var _remove = $ . fn . remove , isFF2 = $ . browser . mozilla && ( parseFloat ( $ . browser . version ) < 1.9 ); $ . ui = { version : "1.6rc4" , 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 ){ 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 ){ var safari2 = $ . browser . safari && $ . browser . version < 522 ; if ( a . contains &&! safari2 ){ return a . contains ( b );}
if ( a . compareDocumentPosition )
return !! ( a . compareDocumentPosition ( b ) & 16 ); while ( b = b . parentNode )
if ( b == a ) return true ; return false ;}, cssCache : {}, css : function ( name ){ if ( $ . ui . cssCache [ name ]){ return $ . ui . cssCache [ name ];}
var tmp = $ ( '<div class="ui-gen">' ). addClass ( name ). css ({ position : 'absolute' , top : '-5000px' , left : '-5000px' , display : 'block' }). appendTo ( 'body' ); $ . ui . cssCache [ name ] =!! (( ! ( /auto|default/ ). test ( tmp . css ( 'cursor' )) || ( /^[1-9]/ ). test ( tmp . css ( 'height' )) || ( /^[1-9]/ ). test ( tmp . css ( 'width' )) ||! ( /none/ ). test ( tmp . css ( 'backgroundImage' )) ||! ( /transparent|rgba\(0, 0, 0, 0\)/ ). test ( tmp . css ( 'backgroundColor' )))); try { $ ( 'body' ). get ( 0 ). removeChild ( tmp . get ( 0 ));} catch ( e ){}
2009-01-10 06:25:44 +00:00
return $ . ui . cssCache [ name ];}, 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 );}
2009-01-16 07:51:31 +00:00
return ( /fixed/ ). test ( this . css ( 'position' )) ||! scrollParent . length ? $ ( document ) : scrollParent ;}}); $ . extend ( $ . expr [ ':' ],{ data : function ( a , i , m ){ return !! $ . data ( a , m [ 3 ]);}, tabbable : function ( a , i , m ){ var nodeName = a . nodeName . toLowerCase (); function isVisible ( element ){ return ! ( $ ( element ). is ( ':hidden' ) || $ ( element ). parents ( ':hidden' ). length );}
return ( a . tabIndex >= 0 && (( 'a' == nodeName && a . href ) || ( /input|select|textarea|button/ . test ( nodeName ) && 'hidden' != a . type &&! a . disabled )) && isVisible ( a ));}}); function getter ( namespace , plugin , method , args ){ function getMethods ( type ){ var methods = $ [ namespace ][ plugin ][ type ] || []; return ( typeof methods == 'string' ? methods . split ( /,?\s+/ ) : methods );}
2008-12-25 08:14:41 +00:00
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 );}
2009-01-10 06:25:44 +00:00
return this . each ( function (){ var instance = $ . data ( this , name );( ! instance &&! isMethodCall && $ . data ( this , name , new $ [ namespace ][ name ]( this , options )));( 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 ();}); this . _init ();}; $ [ 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 );}
2008-12-25 08:14:41 +00:00
options = {}; options [ key ] = value ;}
2009-01-10 06:25:44 +00:00
$ . 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' + ' ' +
2009-01-16 07:51:31 +00:00
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 eventName = ( type == this . widgetEventPrefix ? type : this . widgetEventPrefix + type ); event = event || $ . event . fix ({ type : eventName , target : this . element [ 0 ]}); return this . element . triggerHandler ( eventName ,[ event , data ], this . options [ type ]);}}; $ . 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 ; return false ;}}); if ( $ . browser . msie ){ this . _mouseUnselectable = this . element . attr ( 'unselectable' ); this . element . attr ( 'unselectable' , 'on' );}
2009-01-10 06:25:44 +00:00
this . started = false ;}, _mouseDestroy : function (){ this . element . unbind ( '.' + this . widgetName );( $ . browser . msie && this . element . attr ( 'unselectable' , this . _mouseUnselectable ));}, _mouseDown : function ( event ){( 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 ;}
2008-12-25 08:14:41 +00:00
this . mouseDelayMet =! this . options . delay ; if ( ! this . mouseDelayMet ){ this . _mouseDelayTimer = setTimeout ( function (){ self . mouseDelayMet = true ;}, this . options . delay );}
2009-01-10 06:25:44 +00:00
if ( this . _mouseDistanceMet ( event ) && this . _mouseDelayMet ( event )){ this . _mouseStarted = ( this . _mouseStart ( event ) !== false ); if ( ! this . _mouseStarted ){ event . preventDefault (); return true ;}}
2009-01-16 07:51:31 +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 ); if ( ! $ . browser . safari ) event . preventDefault (); return true ;}, _mouseMove : function ( event ){ if ( $ . browser . msie &&! event . button ){ return this . _mouseUp ( event );}
2009-01-10 06:25:44 +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 = true ; 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" )))
2009-01-16 07:51:31 +00:00
this . element [ 0 ]. style . position = 'relative' ;( this . options . cssNamespace && this . element . addClass ( this . options . cssNamespace + "-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' ))
2009-01-10 06:25:44 +00:00
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 )
2009-01-16 07:51:31 +00:00
$ . 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 ()}); if ( o . cursorAt )
this . _adjustOffsetFromHelper ( o . cursorAt ); this . originalPosition = this . _generatePosition ( event ); if ( o . containment )
this . _setContainment (); this . _propagate ( "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 ) this . position = this . _propagate ( "drag" , event ) || this . 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 )
var dropped = $ . ui . ddmanager . drop ( this , event ); 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 . _propagate ( "stop" , event ); self . _clear ();});} else { this . _propagate ( "stop" , event ); this . _clear ();}
2009-01-10 06:25:44 +00:00
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 )
2008-12-25 08:14:41 +00:00
helper . appendTo (( o . appendTo == 'parent' ? this . element [ 0 ]. parentNode : o . appendTo )); if ( helper [ 0 ] != this . element [ 0 ] &&! ( /(fixed|absolute)/ ). test ( helper . css ( "position" )))
2009-01-16 07:51:31 +00:00
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 . offsetParent [ 0 ] == document . body && $ . browser . mozilla ) || ( 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 . offset . relative . left - this . offset . parent . left - this . helperProportions . width - this . margins . left - ( parseInt ( this . element . css ( "marginRight" ), 10 ) || 0 ),( $ ( o . containment == 'document' ? document : window ). height () || document . body . parentNode . scrollHeight ) - this . offset . relative . top - this . offset . parent . top - this . helperProportions . height - this . margins . top - ( parseInt ( this . element . css ( "marginBottom" ), 10 ) || 0 )]; 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 ) - this . offset . relative . left - this . offset . parent . left - this . margins . left , co . top + ( parseInt ( $ ( ce ). css ( "borderTopWidth" ), 10 ) || 0 ) - this . offset . relative . top - this . offset . parent . top - this . margins . top , co . left + ( over ? Math . max ( ce . scrollWidth , ce . offsetWidth ) : ce . offsetWidth ) - ( parseInt ( $ ( ce ). css ( "borderLeftWidth" ), 10 ) || 0 ) - this . offset . relative . left - this . offset . parent . left - this . helperProportions . width - this . margins . left , co . top + ( over ? Math . max ( ce . scrollHeight , ce . offsetHeight ) : ce . offsetHeight ) - ( parseInt ( $ ( ce ). css ( "borderTopWidth" ), 10 ) || 0 ) - this . offset . relative . top - this . offset . parent . top - this . helperProportions . height - this . margins . top ];}}, _convertPositionTo : function ( d , pos ){ if ( ! pos ) pos = this . position ; var mod = d == "absolute" ? 1 :- 1 ; var scroll = this [( this . cssPosition == 'absolute' ? 'offset' : 'scroll' ) + 'Parent' ], scrollIsRootNode = ( /(html|body)/i ). test ( scroll [ 0 ]. tagName ); return { top : ( pos . top
2008-12-25 08:14:41 +00:00
+ this . offset . relative . top * mod
+ this . offset . parent . top * mod
2009-01-16 07:51:31 +00:00
+ ( this . cssPosition == 'fixed' ?- this . scrollParent . scrollTop () : ( scrollIsRootNode ? 0 : scroll . scrollTop ())) * mod
+ this . margins . top * mod ), left : ( pos . left
2008-12-25 08:14:41 +00:00
+ this . offset . relative . left * mod
+ this . offset . parent . left * mod
2009-01-16 07:51:31 +00:00
+ ( this . cssPosition == 'fixed' ?- this . scrollParent . scrollLeft () : ( scrollIsRootNode ? 0 : scroll . scrollLeft ())) * mod
+ this . margins . left * mod )};}, _generatePosition : function ( event ){ var o = this . options , scroll = this [( this . cssPosition == 'absolute' ? 'offset' : 'scroll' ) + 'Parent' ], scrollIsRootNode = ( /(html|body)/i ). test ( scroll [ 0 ]. tagName ); var position = { top : ( event . pageY
2008-12-25 08:14:41 +00:00
- this . offset . click . top
- this . offset . relative . top
- this . offset . parent . top
2009-01-16 07:51:31 +00:00
+ ( this . cssPosition == 'fixed' ?- this . scrollParent . scrollTop () : ( scrollIsRootNode ? 0 : scroll . scrollTop ()))), left : ( event . pageX
2008-12-25 08:14:41 +00:00
- this . offset . click . left
- this . offset . relative . left
- this . offset . parent . left
2009-01-16 07:51:31 +00:00
+ ( this . cssPosition == 'fixed' ?- this . scrollParent . scrollLeft () : scrollIsRootNode ? 0 : scroll . scrollLeft ()))}; if ( ! this . originalPosition ) return position ; if ( this . containment ){ if ( position . left < this . containment [ 0 ]) position . left = this . containment [ 0 ]; if ( position . top < this . containment [ 1 ]) position . top = this . containment [ 1 ]; if ( position . left > this . containment [ 2 ]) position . left = this . containment [ 2 ]; if ( position . top > this . containment [ 3 ]) position . top = this . containment [ 3 ];}
if ( o . grid ){ var top = this . originalPosition . top + Math . round (( position . top - this . originalPosition . top ) / o . grid [ 1 ]) * o . grid [ 1 ]; position . top = this . containment ? ( ! ( top < this . containment [ 1 ] || top > this . containment [ 3 ]) ? top : ( ! ( top < this . containment [ 1 ]) ? top - o . grid [ 1 ] : top + o . grid [ 1 ])) : top ; var left = this . originalPosition . left + Math . round (( position . left - this . originalPosition . left ) / o . grid [ 0 ]) * o . grid [ 0 ]; position . left = this . containment ? ( ! ( left < this . containment [ 0 ] || left > this . containment [ 2 ]) ? left : ( ! ( left < this . containment [ 0 ]) ? left - o . grid [ 0 ] : left + o . grid [ 0 ])) : left ;}
return position ;}, _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 ;}, _propagate : function ( n , event ){ $ . ui . plugin . call ( this , n ,[ event , this . _uiHash ()]); if ( n == "drag" ) this . positionAbs = this . _convertPositionTo ( "absolute" ); return this . element . triggerHandler ( n == "drag" ? n : "drag" + n ,[ event , this . _uiHash ()], this . options [ n ]);}, plugins : {}, _uiHash : function ( event ){ return { helper : this . helper , position : this . position , absolutePosition : this . positionAbs , options : this . options };}})); $ . extend ( $ . ui . draggable ,{ version : "1.6rc4" , defaults : { appendTo : "parent" , axis : false , cancel : ":input" , connectToSortable : false , containment : false , cssNamespace : "ui" , cursor : "default" , cursorAt : null , delay : 0 , distance : 1 , grid : false , handle : false , helper : "original" , iframeFix : false , opacity : 1 , refreshPositions : false , revert : false , revertDuration : 500 , scope : "default" , scroll : true , scrollSensitivity : 20 , scrollSpeed : 20 , snap : false , snapMode : "both" , snapTolerance : 20 , stack : false , zIndex : null }}); $ . ui . plugin . add ( "draggable" , "connectToSortable" ,{ start : function ( event , ui ){ var inst = $ ( this ). data ( "draggable" ); inst . sortables = []; $ ( ui . options . connectToSortable ). each ( function (){ $ ( this + '' ). each ( function (){ if ( $ . data ( this , 'sortable' )){ var sortable = $ . data ( this , 'sortable' ); inst . sortables . push ({ instance : sortable , shouldRevert : sortable . options . revert }); sortable . _refreshItems (); sortable . _propagate ( "activate" , event , inst );}});});}, stop : function ( event , ui ){ var inst = $ ( this ). data ( "draggable" ); $ . 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 . element . triggerHandler ( "sortreceive" ,[ event , $ . extend ( this . instance . _ui (),{ sender : inst . element })], this . instance . options [ "receive" ]); 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 . _propagate ( "deactivate" , event , inst );}});}, 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 ){ if ( checkPos . call ( inst , 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 . _propagate ( "toSortable" , event );}
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 . _mouseStop ( event , true ); this . instance . options . helper = this . instance . options . _helper ; this . instance . currentItem . remove (); if ( this . instance . placeholder ) this . instance . placeholder . remove (); inst . _propagate ( "fromSortable" , event );}};});}}); $ . ui . plugin . add ( "draggable" , "cursor" ,{ start : function ( event , ui ){ var t = $ ( 'body' ); if ( t . css ( "cursor" )) ui . options . _cursor = t . css ( "cursor" ); t . css ( "cursor" , ui . options . cursor );}, stop : function ( event , ui ){ if ( ui . options . _cursor ) $ ( 'body' ). css ( "cursor" , ui . options . _cursor );}}); $ . ui . plugin . add ( "draggable" , "iframeFix" ,{ start : function ( event , ui ){ $ ( ui . options . iframeFix === true ? "iframe" : ui . options . 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 ); if ( t . css ( "opacity" )) ui . options . _opacity = t . css ( "opacity" ); t . css ( 'opacity' , ui . options . opacity );}, stop : function ( event , ui ){ if ( ui . options . _opacity ) $ ( ui . helper ). css ( 'opacity' , ui . options . _opacity );}}); $ . ui . plugin . add ( "draggable" , "scroll" ,{ start : function ( event , ui ){ var o = ui . options ; 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 o = ui . options , scrolled = false ; var i = $ ( this ). data ( "draggable" ); if ( i . scrollParent [ 0 ] != document && i . scrollParent [ 0 ]. tagName != 'HTML' ){ if (( i . overflowOffset . top + i . scrollParent [ 0 ]. offsetHeight ) - event . pageY < o . scrollSensitivity )
2009-01-10 06:25:44 +00:00
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 (( 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 ( 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 )
2008-12-25 08:14:41 +00:00
scrolled = $ ( document ). scrollLeft ( $ ( document ). scrollLeft () + o . scrollSpeed );}
2009-01-10 06:25:44 +00:00
if ( scrolled !== false && $ . ui . ddmanager &&! o . dropBehaviour )
2009-01-16 07:51:31 +00:00
$ . ui . ddmanager . prepareOffsets ( i , event ); if ( scrolled !== false && i . cssPosition == 'absolute' && i . scrollParent [ 0 ] != document && $ . ui . contains ( i . scrollParent [ 0 ], i . offsetParent [ 0 ])){ i . offset . parent = i . _getParentOffset ();}
if ( scrolled !== false && i . cssPosition == 'relative' &&! ( i . scrollParent [ 0 ] != document && i . scrollParent [ 0 ] != i . offsetParent [ 0 ])){ i . offset . relative = i . _getRelativeOffset ();}}}); $ . ui . plugin . add ( "draggable" , "snap" ,{ start : function ( event , ui ){ var inst = $ ( this ). data ( "draggable" ); inst . snapElements = []; $ ( ui . options . snap . constructor != String ? ( ui . options . snap . items || ':data(draggable)' ) : ui . options . snap ). each ( function (){ var $t = $ ( this ); var $o = $t . offset (); if ( this != inst . element [ 0 ]) inst . 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" ); var d = ui . options . snapTolerance ; var x1 = ui . absolutePosition . left , x2 = x1 + inst . helperProportions . width , y1 = ui . absolutePosition . 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 ;}
2008-12-25 08:14:41 +00:00
if ( ui . options . 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 ; if ( bs ) ui . position . top = inst . _convertPositionTo ( "relative" ,{ top : b , left : 0 }). top ; if ( ls ) ui . position . left = inst . _convertPositionTo ( "relative" ,{ top : 0 , left : l - inst . helperProportions . width }). left ; if ( rs ) ui . position . left = inst . _convertPositionTo ( "relative" ,{ top : 0 , left : r }). left ;}
var first = ( ts || bs || ls || rs ); if ( ui . options . 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 ; if ( bs ) ui . position . top = inst . _convertPositionTo ( "relative" ,{ top : b - inst . helperProportions . height , left : 0 }). top ; if ( ls ) ui . position . left = inst . _convertPositionTo ( "relative" ,{ top : 0 , left : l }). left ; if ( rs ) ui . position . left = inst . _convertPositionTo ( "relative" ,{ top : 0 , left : r - inst . helperProportions . width }). left ;}
if ( ! inst . snapElements [ i ]. snapping && ( ts || bs || ls || rs || first ))
2009-01-10 06:25:44 +00:00
( 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 group = $ . makeArray ( $ ( ui . options . stack . group )). sort ( function ( a , b ){ return ( parseInt ( $ ( a ). css ( "zIndex" ), 10 ) || ui . options . stack . min ) - ( parseInt ( $ ( b ). css ( "zIndex" ), 10 ) || ui . options . stack . min );}); $ ( group ). each ( function ( i ){ this . style . zIndex = ui . options . stack . min + i ;}); this [ 0 ]. style . zIndex = ui . options . stack . min + group . length ;}}); $ . ui . plugin . add ( "draggable" , "zIndex" ,{ start : function ( event , ui ){ var t = $ ( ui . helper ); if ( t . css ( "zIndex" )) ui . options . _zIndex = t . css ( "zIndex" ); t . css ( 'zIndex' , ui . options . zIndex );}, stop : function ( event , ui ){ if ( ui . options . _zIndex ) $ ( ui . helper ). css ( 'zIndex' , ui . options . _zIndex );}});})( jQuery );( function ( $ ){ $ . widget ( "ui.resizable" , $ . extend ({}, $ . ui . mouse ,{ _init : function (){ var self = this , o = this . options ; var elpos = this . element . css ( 'position' ); this . originalElement = this . element ; this . element . addClass ( "ui-resizable" ). css ({ position : /static/ . test ( elpos ) ? 'relative' : elpos }); $ . extend ( o ,{ _aspectRatio :!! ( o . aspectRatio ), helper : o . helper || o . ghost || o . animate ? o . helper || 'ui-resizable-helper' : null , knobHandles : o . knobHandles === true ? 'ui-resizable-knob-handle' : o . knobHandles }); var aBorder = '1px solid #DEDEDE' ; o . defaultTheme = { 'ui-resizable' : { display : 'block' }, 'ui-resizable-handle' : { position : 'absolute' , background : '#F2F2F2' , fontSize : '0.1px' }, 'ui-resizable-n' : { cursor : 'n-resize' , height : '4px' , left : '0px' , right : '0px' , borderTop : aBorder }, 'ui-resizable-s' : { cursor : 's-resize' , height : '4px' , left : '0px' , right : '0px' , borderBottom : aBorder }, 'ui-resizable-e' : { cursor : 'e-resize' , width : '4px' , top : '0px' , bottom : '0px' , borderRight : aBorder }, 'ui-resizable-w' : { cursor : 'w-resize' , width : '4px' , top : '0px' , bottom : '0px' , borderLeft : aBorder }, 'ui-resizable-se' : { cursor : 'se-resize' , width : '4px' , height : '4px' , borderRight : aBorder , borderBottom : aBorder }, 'ui-resizable-sw' : { cursor : 'sw-resize' , width : '4px' , height : '4px' , borderBottom : aBorder , borderLeft : aBorder }, 'ui-resizable-ne' : { cursor : 'ne-resize' , width : '4px' , height : '4px' , borderRight : aBorder , borderTop : aBorder }, 'ui-resizable-nw' : { cursor : 'nw-resize' , width : '4px' , height : '4px' , borderLeft : aBorder , borderTop : aBorder }}; o . knobTheme = { 'ui-resizable-handle' : { background : '#F2F2F2' , border : '1px solid #808080' , height : '8px' , width : '8px' }, 'ui-resizable-n' : { cursor : 'n-resize' , top : '0px' , left : '45%' }, 'ui-resizable-s' : { cursor : 's-resize' , bottom : '0px' , left : '45%' }, 'ui-resizable-e' : { cursor : 'e-resize' , right : '0px' , top : '45%' }, 'ui-resizable-w' : { cursor : 'w-resize' , left : '0px' , top : '45%' }, 'ui-resizable-se' : { cursor : 'se-resize' , right : '0px' , bottom : '0px' }, 'ui-resizable-sw' : { cursor : 'sw-resize' , left : '0px' , bottom : '0px' }, 'ui-resizable-nw' : { cursor : 'nw-resize' , left : '0px' , top : '0px' }, 'ui-resizable-ne' : { cursor : 'ne-resize' , right : '0px' , top : '0px' }}; o . _nodeName = this . element [ 0 ]. nodeName ; if ( o . _nodeName . match ( /canvas|textarea|input|select|button|img/i )){ var el = this . element ; if ( /relative/ . test ( el . css ( 'position' )) && $ . browser . opera )
2008-12-25 08:14:41 +00:00
el . css ({ position : 'relative' , top : 'auto' , left : 'auto' }); el . wrap ( $ ( '<div class="ui-wrapper" style="overflow: hidden;"></div>' ). css ({ position : el . css ( 'position' ), width : el . outerWidth (), height : el . outerHeight (), top : el . css ( 'top' ), left : el . css ( 'left' )})); var oel = this . element ; this . element = this . element . parent (); this . element . data ( 'resizable' , this ); this . element . css ({ marginLeft : oel . css ( "marginLeft" ), marginTop : oel . css ( "marginTop" ), marginRight : oel . css ( "marginRight" ), marginBottom : oel . css ( "marginBottom" )}); oel . css ({ marginLeft : 0 , marginTop : 0 , marginRight : 0 , marginBottom : 0 }); if ( $ . browser . safari && o . preventDefault ) oel . css ( 'resize' , 'none' ); o . proportionallyResize = oel . css ({ position : 'static' , zoom : 1 , display : 'block' }); this . element . css ({ margin : oel . css ( 'margin' )}); this . _proportionallyResize ();}
2009-01-16 07:51:31 +00:00
if ( ! o . 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 ( o . handles . constructor == String ){ o . zIndex = o . zIndex || 1000 ; if ( o . handles == 'all' ) o . handles = 'n,e,s,w,se,sw,ne,nw' ; var n = o . handles . split ( "," ); o . handles = {}; var insertionsDefault = { handle : 'position: absolute; display: none; overflow:hidden;' , n : 'top: 0pt; width:100%;' , e : 'right: 0pt; height:100%;' , s : 'bottom: 0pt; width:100%;' , w : 'left: 0pt; height:100%;' , se : 'bottom: 0pt; right: 0px;' , sw : 'bottom: 0pt; left: 0px;' , ne : 'top: 0pt; right: 0px;' , nw : 'top: 0pt; left: 0px;' }; for ( var i = 0 ; i < n . length ; i ++ ){ var handle = $ . trim ( n [ i ]), dt = o . defaultTheme , hname = 'ui-resizable-' + handle , loadDefault =! $ . ui . css ( hname ) &&! o . knobHandles , userKnobClass = $ . ui . css ( 'ui-resizable-knob-handle' ), allDefTheme = $ . extend ( dt [ hname ], dt [ 'ui-resizable-handle' ]), allKnobTheme = $ . extend ( o . knobTheme [ hname ], ! userKnobClass ? o . knobTheme [ 'ui-resizable-handle' ] : {}); var applyZIndex = /sw|se|ne|nw/ . test ( handle ) ? { zIndex :++ o . zIndex } : {}; var defCss = ( loadDefault ? insertionsDefault [ handle ] : '' ), axis = $ ([ '<div class="ui-resizable-handle ' , hname , '" style="' , defCss , insertionsDefault . handle , '"></div>' ]. join ( '' )). css ( applyZIndex ); o . handles [ handle ] = '.ui-resizable-' + handle ; this . element . append ( axis . css ( loadDefault ? allDefTheme : {}). css ( o . knobHandles ? allKnobTheme : {}). addClass ( o . knobHandles ? 'ui-resizable-knob-handle' : '' ). addClass ( o . knobHandles ));}
2008-12-25 08:14:41 +00:00
if ( o . knobHandles ) this . element . addClass ( 'ui-resizable-knob' ). css ( ! $ . ui . css ( 'ui-resizable-knob' ) ? {} : {});}
this . _renderAxis = function ( target ){ target = target || this . element ; for ( var i in o . handles ){ if ( o . handles [ i ]. constructor == String )
o . handles [ i ] = $ ( o . handles [ i ], this . element ). show (); if ( o . transparent )
o . handles [ i ]. css ({ opacity : 0 }); if ( this . element . is ( '.ui-wrapper' ) && o . _nodeName . match ( /textarea|input|select|button/i )){ var axis = $ ( o . 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 ( "" ); if ( ! o . transparent )
target . css ( padPos , padWrapper ); this . _proportionallyResize ();}
if ( ! $ ( o . handles [ i ]). length ) continue ;}}; this . _renderAxis ( this . element ); o . _handles = $ ( '.ui-resizable-handle' , self . element ); if ( o . disableSelection )
2009-01-10 06:25:44 +00:00
o . _handles . disableSelection (); o . _handles . mouseover ( function (){ if ( ! o . resizing ){ if ( this . className )
2008-12-25 08:14:41 +00:00
var axis = this . className . match ( /ui-resizable-(se|sw|ne|nw|n|e|s|w)/i ); self . axis = o . axis = axis && axis [ 1 ] ? axis [ 1 ] : 'se' ;}}); if ( o . autoHide ){ o . _handles . hide (); $ ( self . element ). addClass ( "ui-resizable-autohide" ). hover ( function (){ $ ( this ). removeClass ( "ui-resizable-autohide" ); o . _handles . show ();}, function (){ if ( ! o . resizing ){ $ ( this ). addClass ( "ui-resizable-autohide" ); o . _handles . hide ();}});}
2009-01-10 06:25:44 +00:00
this . _mouseInit ();}, destroy : function (){ var el = this . element , wrapped = el . children ( ".ui-resizable" ). get ( 0 ); this . _mouseDestroy (); var _destroy = function ( exp ){ $ ( exp ). removeClass ( "ui-resizable ui-resizable-disabled" ). removeData ( "resizable" ). unbind ( ".resizable" ). find ( '.ui-resizable-handle' ). remove ();}; _destroy ( el ); if ( el . is ( '.ui-wrapper' ) && wrapped ){ el . parent (). append ( $ ( wrapped ). css ({ position : el . css ( 'position' ), width : el . outerWidth (), height : el . outerHeight (), top : el . css ( 'top' ), left : el . css ( 'left' )})). end (). remove (); _destroy ( wrapped );}}, _mouseCapture : function ( event ){ if ( this . options . disabled ) return false ; var handle = false ; for ( var i in this . options . handles ){ if ( $ ( this . options . handles [ i ])[ 0 ] == event . target ) handle = true ;}
if ( ! handle ) return false ; return true ;}, _mouseStart : function ( event ){ var o = this . options , iniPos = this . element . position (), el = this . element , num = function ( v ){ return parseInt ( v , 10 ) || 0 ;}, ie6 = $ . browser . msie && $ . browser . version < 7 ; o . resizing = true ; o . documentScroll = { top : $ ( document ). scrollTop (), left : $ ( document ). scrollLeft ()}; if ( el . is ( '.ui-draggable' ) || ( /absolute/ ). test ( el . css ( 'position' ))){ var sOffset = $ . browser . msie &&! o . containment && ( /absolute/ ). test ( el . css ( 'position' )) &&! ( /relative/ ). test ( el . parent (). css ( 'position' )); var dscrollt = sOffset ? o . documentScroll . top : 0 , dscrolll = sOffset ? o . documentScroll . left : 0 ; el . css ({ position : 'absolute' , top : ( iniPos . top + dscrollt ), left : ( iniPos . left + dscrolll )});}
if ( $ . browser . opera && ( /relative/ ). test ( el . css ( 'position' )))
2008-12-25 08:14:41 +00:00
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 ;}
2009-01-10 06:25:44 +00:00
this . offset = this . helper . offset (); this . position = { left : curleft , top : curtop }; this . size = o . helper || ie6 ? { width : el . outerWidth (), height : el . outerHeight ()} : { width : el . width (), height : el . height ()}; this . originalSize = o . helper || ie6 ? { 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 }; o . aspectRatio = ( typeof o . aspectRatio == 'number' ) ? o . aspectRatio : (( this . originalSize . width / this . originalSize . height ) || 1 ); if ( o . preserveCursor ){ var cursor = $ ( '.ui-resizable-' + this . axis ). css ( 'cursor' ); $ ( 'body' ). css ( 'cursor' , cursor == 'auto' ? this . axis + '-resize' : cursor );}
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 ( o . _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 ( ! o . helper && o . proportionallyResize )
2009-01-16 07:51:31 +00:00
this . _proportionallyResize (); this . _updateCache ( data ); this . element . triggerHandler ( "resize" ,[ event , this . ui ()], this . options [ "resize" ]); return false ;}, _mouseStop : function ( event ){ this . options . resizing = false ; var o = this . options , num = function ( v ){ return parseInt ( v , 10 ) || 0 ;}, self = this ; if ( o . helper ){ var pr = o . proportionallyResize , ista = pr && ( /textarea/i ). test ( pr . get ( 0 ). nodeName ), soffseth = ista && $ . ui . hasScroll ( pr . get ( 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 )
2008-12-25 08:14:41 +00:00
this . element . css ( $ . extend ( s ,{ top : top , left : left })); if ( o . helper &&! o . animate ) this . _proportionallyResize ();}
if ( o . preserveCursor )
2009-01-10 06:25:44 +00:00
$ ( 'body' ). css ( 'cursor' , 'auto' ); this . _propagate ( "stop" , event ); if ( o . helper ) this . helper . remove (); return false ;}, _updateCache : function ( data ){ var o = this . options ; this . offset = this . helper . offset (); if ( data . left ) this . position . left = data . left ; if ( data . top ) this . position . top = data . top ; if ( data . height ) this . size . height = data . height ; if ( 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 * o . aspectRatio ); else if ( data . width ) data . height = ( csize . width / o . aspectRatio ); if ( a == 'sw' ){ data . left = cpos . left + ( csize . width - data . width ); data . top = null ;}
2008-12-25 08:14:41 +00:00
if ( a == 'nw' ){ data . top = cpos . top + ( csize . height - data . height ); data . left = cpos . left + ( csize . width - data . width );}
2009-01-10 06:25:44 +00:00
return data ;}, _respectSize : function ( data , event ){ var el = this . helper , o = this . options , pRatio = o . _aspectRatio || event . shiftKey , a = this . axis , ismaxw = data . width && o . maxWidth && o . maxWidth < data . width , ismaxh = data . height && o . maxHeight && o . maxHeight < data . height , isminw = data . width && o . minWidth && o . minWidth > data . width , isminh = 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 ( ! o . proportionallyResize ) return ; var prel = o . proportionallyResize , el = this . helper || this . element ; if ( ! o . 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' )]; o . borderDif = $ . map ( b , function ( v , i ){ var border = parseInt ( v , 10 ) || 0 , padding = parseInt ( p [ i ], 10 ) || 0 ; return border + padding ;});}
2009-01-16 07:51:31 +00:00
prel . css ({ height : ( el . height () - o . borderDif [ 0 ] - o . borderDif [ 2 ]) + "px" , width : ( el . width () - o . borderDif [ 1 ] - o . borderDif [ 3 ]) + "px" });}, _renderProxy : function (){ var el = this . element , o = this . options ; this . elementOffset = el . offset (); if ( o . 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 ( o . helper ). css ({ width : el . outerWidth () + pxyoffset , height : el . outerHeight () + pxyoffset , position : 'absolute' , left : this . elementOffset . left - ie6offset + 'px' , top : this . elementOffset . top - ie6offset + 'px' , zIndex :++ o . zIndex }); this . helper . appendTo ( "body" ); if ( o . disableSelection )
this . helper . disableSelection ();} else { this . helper = el ;}}, _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 ()]); if ( n != "resize" ) this . element . triggerHandler ([ "resize" , n ]. join ( "" ),[ event , this . ui ()], this . options [ n ]);}, plugins : {}, ui : function (){ return { originalElement : this . originalElement , element : this . element , helper : this . helper , position : this . position , size : this . size , options : this . options , originalSize : this . originalSize , originalPosition : this . originalPosition };}})); $ . extend ( $ . ui . resizable ,{ version : "1.6rc4" , defaults : { alsoResize : false , animate : false , animateDuration : "slow" , animateEasing : "swing" , aspectRatio : false , autoHide : false , cancel : ":input" , containment : false , delay : 0 , disableSelection : true , distance : 1 , ghost : false , grid : false , knobHandles : false , maxHeight : null , maxWidth : null , minHeight : 10 , minWidth : 10 , preserveCursor : true , preventDefault : true , proportionallyResize : false , transparent : false }}); $ . ui . plugin . add ( "resizable" , "alsoResize" ,{ start : function ( event , ui ){ var o = ui . options , self = $ ( this ). data ( "resizable" ), _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 o = ui . options , self = $ ( this ). data ( "resizable" ), 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 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 ;}); $ ( this ). 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 ){ $ ( this ). removeData ( "resizable-alsoresize-start" );}}); $ . ui . plugin . add ( "resizable" , "animate" ,{ stop : function ( event , ui ){ var o = ui . options , self = $ ( this ). data ( "resizable" ); var pr = o . proportionallyResize , ista = pr && ( /textarea/i ). test ( pr . get ( 0 ). nodeName ), soffseth = ista && $ . ui . hasScroll ( pr . get ( 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 . css ({ width : data . width , height : data . height }); self . _updateCache ( data ); self . _propagate ( "animate" , event );}});}}); $ . ui . plugin . add ( "resizable" , "containment" ,{ start : function ( event , ui ){ var o = ui . options , self = $ ( this ). data ( "resizable" ), 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 };}
2009-01-10 06:25:44 +00:00
else { self . containerOffset = $ ( ce ). offset (); self . containerPosition = $ ( ce ). position (); self . containerSize = { height : $ ( ce ). innerHeight (), width : $ ( ce ). innerWidth ()}; 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 o = ui . options , self = $ ( this ). data ( "resizable" ), ps = self . containerSize , co = self . containerOffset , cs = self . size , cp = self . position , pRatio = o . _aspectRatio || event . shiftKey , cop = { top : 0 , left : 0 }, ce = self . containerElement ; if ( ce [ 0 ] != document && ( /static/ ). test ( ce . css ( 'position' )))
cop = self . containerPosition ; if ( cp . left < ( o . helper ? co . left : 0 )){ self . size . width = self . size . width + ( o . 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 ;}
2008-12-25 08:14:41 +00:00
if ( cp . top < ( o . helper ? co . top : 0 )){ self . size . height = self . size . height + ( o . helper ? ( self . position . top - co . top ) : self . position . top ); if ( pRatio ) self . size . width = self . size . height * o . aspectRatio ; self . position . top = o . helper ? co . top : 0 ;}
2009-01-10 06:25:44 +00:00
var woset = Math . abs (( o . helper ? self . offset . left - cop . left : ( self . offset . left - cop . left )) + self . sizeDiff . width ), hoset = Math . abs (( o . helper ? self . offset . top - cop . top : ( self . offset . top - co . top )) + self . sizeDiff . height ); if ( woset + self . size . width >= self . parentData . width ){ self . size . width = self . parentData . width - woset ; if ( pRatio ) self . size . height = self . size . width / o . aspectRatio ;}
if ( hoset + self . size . height >= self . parentData . height ){ self . size . height = self . parentData . height - hoset ; if ( pRatio ) self . size . width = self . size . height * o . aspectRatio ;}}, stop : function ( event , ui ){ var o = ui . options , self = $ ( this ). data ( "resizable" ), 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 ( o . helper &&! o . animate && ( /relative/ ). test ( ce . css ( 'position' )))
$ ( this ). css ({ left : ho . left - cop . left - co . left , width : w , height : h }); if ( o . 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 o = ui . options , self = $ ( this ). data ( "resizable" ), pr = o . proportionallyResize , cs = self . size ; if ( ! pr ) self . ghost = self . element . clone (); else self . ghost = pr . 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 o = ui . options , self = $ ( this ). data ( "resizable" ), pr = o . proportionallyResize ; if ( self . ghost ) self . ghost . css ({ position : 'relative' , height : self . size . height , width : self . size . width });}, stop : function ( event , ui ){ var o = ui . options , self = $ ( this ). data ( "resizable" ), pr = o . proportionallyResize ; if ( self . ghost && self . helper ) self . helper . get ( 0 ). removeChild ( self . ghost . get ( 0 ));}}); $ . ui . plugin . add ( "resizable" , "grid" ,{ resize : function ( event , ui ){ var o = ui . options , self = $ ( this ). data ( "resizable" ), 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 ;}
2008-12-25 08:14:41 +00:00
else if ( /^(ne)$/ . test ( a )){ self . size . width = os . width + ox ; self . size . height = os . height + oy ; self . position . top = op . top - oy ;}
else if ( /^(sw)$/ . test ( a )){ self . size . width = os . width + ox ; self . size . height = os . height + oy ; self . position . left = op . left - ox ;}
2009-01-16 07:51:31 +00:00
else { self . size . width = os . width + ox ; self . size . height = os . height + oy ; self . position . top = op . top - oy ; self . position . left = op . left - ox ;}}});})( jQuery );( function ( $ ){ $ . widget ( "ui.sortable" , $ . extend ({}, $ . ui . mouse ,{ _init : function (){ var o = this . options ; this . containerCache = {}; this . element . addClass ( "ui-sortable" ); this . refresh (); this . floating = this . items . length ? ( /left|right/ ). test ( this . items [ 0 ]. item . css ( 'float' )) : false ; this . offset = this . element . offset (); this . _mouseInit ();}, destroy : function (){ this . element . removeClass ( "ui-sortable ui-sortable-disabled" ). removeData ( "sortable" ). unbind ( ".sortable" ); this . _mouseDestroy (); for ( var i = this . items . length - 1 ; i >= 0 ; i -- )
2009-01-10 06:25:44 +00:00
this . items [ i ]. item . removeData ( "sortable-item" );}, _mouseCapture : function ( event , overrideHandle ){ if ( this . reverting ){ return false ;}
if ( this . options . disabled || this . options . type == 'static' ) return false ; this . _refreshItems ( event ); var currentItem = null , self = this , nodes = $ ( event . target ). parents (). each ( function (){ if ( $ . data ( this , 'sortable-item' ) == self ){ currentItem = $ ( this ); return false ;}}); if ( $ . data ( event . target , 'sortable-item' ) == self ) currentItem = $ ( event . target ); if ( ! currentItem ) return false ; if ( this . options . handle &&! overrideHandle ){ var validHandle = false ; $ ( this . options . handle , currentItem ). find ( "*" ). andSelf (). each ( function (){ if ( this == event . target ) validHandle = true ;}); if ( ! validHandle ) return false ;}
2009-01-16 07:51:31 +00:00
this . currentItem = currentItem ; this . _removeCurrentsFromItems (); return true ;}, _mouseStart : function ( event , overrideHandle , noActivation ){ var o = this . options ; 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 ()}); if ( o . cursorAt )
this . _adjustOffsetFromHelper ( o . cursorAt ); this . originalPosition = this . _generatePosition ( event ); this . domPosition = { prev : this . currentItem . prev ()[ 0 ], parent : this . currentItem . parent ()[ 0 ]}; if ( this . helper [ 0 ] != this . currentItem [ 0 ]){ this . currentItem . hide ();}
2009-01-10 06:25:44 +00:00
this . _createPlaceholder (); if ( o . containment )
2009-01-16 07:51:31 +00:00
this . _setContainment (); this . _propagate ( "start" , event ); if ( ! this . _preserveHelperProportions )
this . _cacheHelperProportions (); if ( ! noActivation ){ for ( var i = this . containers . length - 1 ; i >= 0 ; i -- ){ this . containers [ i ]. _propagate ( "activate" , event , this );}}
2009-01-10 06:25:44 +00:00
if ( $ . ui . ddmanager )
$ . ui . ddmanager . current = this ; if ( $ . ui . ddmanager &&! o . dropBehaviour )
2009-01-16 07:51:31 +00:00
$ . 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 ;}
$ . ui . plugin . call ( this , "sort" ,[ event , this . _ui ()]); 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 . options . sortIndicator . call ( this , event , item );} else { break ;}
this . _propagate ( "change" , event ); break ;}}
this . _contactContainers ( event ); if ( $ . ui . ddmanager ) $ . ui . ddmanager . drag ( this , event ); this . _trigger ( 'sort' , event , this . _ui ()); this . lastPositionAbs = this . positionAbs ; return false ;}, _mouseStop : function ( event , noPropagation ){ if ( ! event ) return ; if ( $ . ui . ddmanager &&! this . options . dropBehaviour )
2009-01-10 06:25:44 +00:00
$ . 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 (){ if ( this . dragging ){ this . _mouseUp (); if ( this . options . helper == "original" )
2009-01-16 07:51:31 +00:00
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 ]. _propagate ( "deactivate" , null , this ); if ( this . containers [ i ]. containerCache . over ){ this . containers [ i ]. _propagate ( "out" , null , this ); this . containers [ i ]. containerCache . over = 0 ;}}}
2009-01-10 06:25:44 +00:00
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 )
2009-01-16 07:51:31 +00:00
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 ();}, _getItemsAsjQuery : function ( connected ){ var self = this ; var items = []; var queries = []; if ( this . options . connectWith && connected ){ for ( var i = this . options . connectWith . length - 1 ; i >= 0 ; i -- ){ var cur = $ ( this . options . 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 ])
2009-01-10 06:25:44 +00:00
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 ]]; if ( this . options . connectWith ){ for ( var i = this . options . connectWith . length - 1 ; i >= 0 ; i -- ){ var cur = $ ( this . options . 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 ){ if ( this . options . accurateIntersection ){ item . width = t . outerWidth (); item . height = t . outerHeight ();}
else { item . width = t [ 0 ]. offsetWidth ; item . height = t [ 0 ]. offsetHeight ;}}
2009-01-16 07:51:31 +00:00
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" ; document . body . appendChild ( el ); el . innerHTML = self . currentItem [ 0 ]. innerHTML . replace ( /name\=\"[^\"\']+\"/g , '' ). replace ( /jQuery[0-9]+\=\"[^\"\']+\"/g , '' ); document . body . removeChild ( el );}; 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 ));};}};}
2009-01-10 06:25:44 +00:00
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 )
2009-01-16 07:51:31 +00:00
continue ; this . currentContainer = this . containers [ i ]; itemWithLeastDistance ? this . options . sortIndicator . call ( this , event , itemWithLeastDistance , null , true ) : this . options . sortIndicator . call ( this , event , null , this . containers [ i ]. element , true ); this . _propagate ( "change" , event ); this . containers [ i ]. _propagate ( "change" , event , this ); this . options . placeholder . update ( this . currentContainer , this . placeholder );}
this . containers [ i ]. _propagate ( "over" , event , this ); this . containers [ i ]. containerCache . over = 1 ;}} else { if ( this . containers [ i ]. containerCache . over ){ this . containers [ i ]. _propagate ( "out" , event , 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 )
2009-01-10 06:25:44 +00:00
$ ( o . appendTo != 'parent' ? o . appendTo : this . currentItem [ 0 ]. parentNode )[ 0 ]. appendChild ( helper [ 0 ]); if ( helper [ 0 ] == this . currentItem [ 0 ])
2009-01-16 07:51:31 +00:00
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 . offsetParent [ 0 ] == document . body && $ . browser . mozilla ) || ( 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 . offset . relative . left - this . offset . parent . left - this . margins . left - ( parseInt ( this . currentItem . css ( "marginRight" ), 10 ) || 0 ),( $ ( o . containment == 'document' ? document : window ). height () || document . body . parentNode . scrollHeight ) - this . offset . relative . top - this . offset . parent . top - this . margins . top - ( parseInt ( this . currentItem . css ( "marginBottom" ), 10 ) || 0 )]; 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 ) - this . offset . relative . left - this . offset . parent . left - this . margins . left , co . top + ( parseInt ( $ ( ce ). css ( "borderTopWidth" ), 10 ) || 0 ) - this . offset . relative . top - this . offset . parent . top - this . margins . top , co . left + ( over ? Math . max ( ce . scrollWidth , ce . offsetWidth ) : ce . offsetWidth ) - ( parseInt ( $ ( ce ). css ( "borderLeftWidth" ), 10 ) || 0 ) - this . offset . relative . left - this . offset . parent . left - this . margins . left , co . top + ( over ? Math . max ( ce . scrollHeight , ce . offsetHeight ) : ce . offsetHeight ) - ( parseInt ( $ ( ce ). css ( "borderTopWidth" ), 10 ) || 0 ) - this . offset . relative . top - this . offset . parent . top - this . margins . top ];}}, _convertPositionTo : function ( d , pos ){ if ( ! pos ) pos = this . position ; var mod = d == "absolute" ? 1 :- 1 ; var scroll = this [( this . cssPosition == 'absolute' ? 'offset' : 'scroll' ) + 'Parent' ], scrollIsRootNode = ( /(html|body)/i ). test ( scroll [ 0 ]. tagName ); return { top : ( pos . top
2009-01-10 06:25:44 +00:00
+ this . offset . relative . top * mod
+ this . offset . parent . top * mod
2009-01-16 07:51:31 +00:00
+ ( this . cssPosition == 'fixed' ?- this . scrollParent . scrollTop () : ( scrollIsRootNode ? 0 : scroll . scrollTop ())) * mod
+ this . margins . top * mod ), left : ( pos . left
2009-01-10 06:25:44 +00:00
+ this . offset . relative . left * mod
+ this . offset . parent . left * mod
2009-01-16 07:51:31 +00:00
+ ( this . cssPosition == 'fixed' ?- this . scrollParent . scrollLeft () : ( scrollIsRootNode ? 0 : scroll . scrollLeft ())) * mod
+ this . margins . left * mod )};}, _generatePosition : function ( event ){ var o = this . options , scroll = this [( this . cssPosition == 'absolute' ? 'offset' : 'scroll' ) + 'Parent' ], scrollIsRootNode = ( /(html|body)/i ). test ( scroll [ 0 ]. tagName ); var position = { top : ( event . pageY
2009-01-10 06:25:44 +00:00
- this . offset . click . top
- this . offset . relative . top
- this . offset . parent . top
2009-01-16 07:51:31 +00:00
+ ( this . cssPosition == 'fixed' ?- this . scrollParent . scrollTop () : ( scrollIsRootNode ? 0 : scroll . scrollTop ()))), left : ( event . pageX
2009-01-10 06:25:44 +00:00
- this . offset . click . left
- this . offset . relative . left
- this . offset . parent . left
2009-01-16 07:51:31 +00:00
+ ( this . cssPosition == 'fixed' ?- this . scrollParent . scrollLeft () : ( scrollIsRootNode ? 0 : scroll . scrollLeft ())))}; if ( ! this . originalPosition ) return position ; if ( this . containment ){ if ( position . left < this . containment [ 0 ]) position . left = this . containment [ 0 ]; if ( position . top < this . containment [ 1 ]) position . top = this . containment [ 1 ]; if ( position . left + this . helperProportions . width > this . containment [ 2 ]) position . left = this . containment [ 2 ] - this . helperProportions . width ; if ( position . top + this . helperProportions . height > this . containment [ 3 ]) position . top = this . containment [ 3 ] - this . helperProportions . height ;}
if ( o . grid ){ var top = this . originalPosition . top + Math . round (( position . top - this . originalPosition . top ) / o . grid [ 1 ]) * o . grid [ 1 ]; position . top = this . containment ? ( ! ( top < this . containment [ 1 ] || top > this . containment [ 3 ]) ? top : ( ! ( top < this . containment [ 1 ]) ? top - o . grid [ 1 ] : top + o . grid [ 1 ])) : top ; var left = this . originalPosition . left + Math . round (( position . left - this . originalPosition . left ) / o . grid [ 0 ]) * o . grid [ 0 ]; position . left = this . containment ? ( ! ( left < this . containment [ 0 ] || left > this . containment [ 2 ]) ? left : ( ! ( left < this . containment [ 0 ]) ? left - o . grid [ 0 ] : left + o . grid [ 0 ])) : left ;}
return position ;}, _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 ; if ( ! this . _noFinalSort ) 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 . domPosition . prev != this . currentItem . prev (). not ( ".ui-sortable-helper" )[ 0 ] || this . domPosition . parent != this . currentItem . parent ()[ 0 ]) this . _propagate ( "update" , event , null , noPropagation ); if ( ! $ . ui . contains ( this . element [ 0 ], this . currentItem [ 0 ])){ this . _propagate ( "remove" , event , null , noPropagation ); for ( var i = this . containers . length - 1 ; i >= 0 ; i -- ){ if ( $ . ui . contains ( this . containers [ i ]. element [ 0 ], this . currentItem [ 0 ])){ this . containers [ i ]. _propagate ( "update" , event , this , noPropagation ); this . containers [ i ]. _propagate ( "receive" , event , this , noPropagation );}};}; for ( var i = this . containers . length - 1 ; i >= 0 ; i -- ){ this . containers [ i ]. _propagate ( "deactivate" , event , this , noPropagation ); if ( this . containers [ i ]. containerCache . over ){ this . containers [ i ]. _propagate ( "out" , event , this ); this . containers [ i ]. containerCache . over = 0 ;}}
this . dragging = false ; if ( this . cancelHelperRemoval ){ this . _propagate ( "beforeStop" , event , null , noPropagation ); this . _propagate ( "stop" , event , null , noPropagation ); return false ;}
this . _propagate ( "beforeStop" , event , null , noPropagation ); this . placeholder [ 0 ]. parentNode . removeChild ( this . placeholder [ 0 ]); if ( this . options . helper != "original" ) this . helper . remove (); this . helper = null ; this . _propagate ( "stop" , event , null , noPropagation ); return true ;}, _propagate : function ( n , event , inst , noPropagation ){ $ . ui . plugin . call ( this , n ,[ event , this . _ui ( inst )]); var dontCancel =! noPropagation ? this . element . triggerHandler ( n == "sort" ? n : "sort" + n ,[ event , this . _ui ( inst )], this . options [ n ]) : true ; if ( dontCancel === false ) this . cancel ();}, plugins : {}, _ui : function ( inst ){ var self = inst || this ; return { helper : self . helper , placeholder : self . placeholder || $ ([]), position : self . position , absolutePosition : self . positionAbs , item : self . currentItem , sender : inst ? inst . element : null };}})); $ . extend ( $ . ui . sortable ,{ getter : "serialize toArray" , version : "1.6rc4" , defaults : { accurateIntersection : true , appendTo : "parent" , cancel : ":input" , delay : 0 , distance : 1 , dropOnEmpty : true , forcePlaceholderSize : false , forceHelperSize : false , helper : "original" , items : '> *' , scope : "default" , scroll : true , scrollSensitivity : 20 , scrollSpeed : 20 , sortIndicator : $ . ui . sortable . prototype . _rearrange , tolerance : "default" , zIndex : 1000 }}); $ . ui . plugin . add ( "sortable" , "cursor" ,{ start : function ( event , ui ){ var t = $ ( 'body' ), i = $ ( this ). data ( 'sortable' ); if ( t . css ( "cursor" )) i . options . _cursor = t . css ( "cursor" ); t . css ( "cursor" , i . options . cursor );}, beforeStop : function ( event , ui ){ var i = $ ( this ). data ( 'sortable' ); if ( i . options . _cursor ) $ ( 'body' ). css ( "cursor" , i . options . _cursor );}}); $ . ui . plugin . add ( "sortable" , "opacity" ,{ start : function ( event , ui ){ var t = ui . helper , i = $ ( this ). data ( 'sortable' ); if ( t . css ( "opacity" )) i . options . _opacity = t . css ( "opacity" ); t . css ( 'opacity' , i . options . opacity );}, beforeStop : function ( event , ui ){ var i = $ ( this ). data ( 'sortable' ); if ( i . options . _opacity ) $ ( ui . helper ). css ( 'opacity' , i . options . _opacity );}}); $ . ui . plugin . add ( "sortable" , "scroll" ,{ start : function ( event , ui ){ var i = $ ( this ). data ( "sortable" ), o = i . options ; if ( i . scrollParent [ 0 ] != document && i . scrollParent [ 0 ]. tagName != 'HTML' ) i . overflowOffset = i . scrollParent . offset ();}, sort : function ( event , ui ){ var i = $ ( this ). data ( "sortable" ), o = i . options , scrolled = false ; if ( i . scrollParent [ 0 ] != document && i . scrollParent [ 0 ]. tagName != 'HTML' ){ if (( i . overflowOffset . top + i . scrollParent [ 0 ]. offsetHeight ) - event . pageY < o . scrollSensitivity )
2009-01-10 06:25:44 +00:00
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 (( 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 ( 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 )
2009-01-16 07:51:31 +00:00
$ . ui . ddmanager . prepareOffsets ( i , event ); if ( scrolled !== false && i . cssPosition == 'absolute' && i . scrollParent [ 0 ] != document && $ . ui . contains ( i . scrollParent [ 0 ], i . offsetParent [ 0 ])){ i . offset . parent = i . _getParentOffset ();}
if ( scrolled !== false && i . cssPosition == 'relative' &&! ( i . scrollParent [ 0 ] != document && i . scrollParent [ 0 ] != i . offsetParent [ 0 ])){ i . offset . relative = i . _getRelativeOffset ();}}}); $ . ui . plugin . add ( "sortable" , "zIndex" ,{ start : function ( event , ui ){ var t = ui . helper , i = $ ( this ). data ( 'sortable' ); if ( t . css ( "zIndex" )) i . options . _zIndex = t . css ( "zIndex" ); t . css ( 'zIndex' , i . options . zIndex );}, beforeStop : function ( event , ui ){ var i = $ ( this ). data ( 'sortable' ); if ( i . options . _zIndex ) $ ( ui . helper ). css ( 'zIndex' , i . options . _zIndex == 'auto' ? '' : i . options . _zIndex );}});})( 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" }; $ . widget ( "ui.dialog" ,{ _init : function (){ this . originalTitle = this . element . attr ( 'title' ); this . options . title = this . options . title || this . originalTitle ; var self = this , options = this . options , title = options . title || ' ' , titleId = $ . ui . dialog . getTitleId ( this . element ), uiDialog = ( this . uiDialog = $ ( '<div/>' )). appendTo ( document . body ). hide (). addClass ( 'ui-dialog ' + 'ui-widget ' + 'ui-widget-content ' + 'ui-corner-all ' +
options . dialogClass ). css ({ position : 'absolute' , overflow : 'hidden' , zIndex : options . zIndex }). attr ( 'tabIndex' , - 1 ). css ( 'outline' , 0 ). keydown ( function ( ev ){( options . closeOnEscape && ev . keyCode && ev . keyCode == $ . ui . keyCode . ESCAPE && self . close ());}). attr ({ role : 'dialog' , 'aria-labelledby' : titleId }). mousedown ( function (){ self . moveToTop ();}), uiDialogContent = this . element . 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 (){ self . close (); 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 ), uiDialogButtonPane = ( this . uiDialogButtonPane = $ ( '<div></div>' )). addClass ( 'ui-dialog-buttonpane ' + 'ui-widget-content ' + 'ui-helper-clearfix' ). appendTo ( uiDialog ); 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 (){ if ( false === this . _trigger ( 'beforeclose' , null ,{ options : this . options })){ return ;}
( this . overlay && this . overlay . destroy ()); this . uiDialog . hide ( this . options . hide ). unbind ( 'keypress.ui-dialog' ); this . _trigger ( 'close' , null ,{ options : this . options }); $ . ui . dialog . overlay . resize (); this . _isOpen = false ;}, isOpen : function (){ return this . _isOpen ;}, moveToTop : function ( force ){ if (( this . options . modal &&! force ) || ( ! this . options . stack &&! this . options . modal )){ return this . _trigger ( 'focus' , null ,{ options : this . options });}
var maxZ = this . options . zIndex , options = this . options ; $ ( '.ui-dialog:visible' ). each ( function (){ maxZ = Math . max ( maxZ , parseInt ( $ ( this ). css ( 'z-index' ), 10 ) || options . zIndex );});( this . overlay && this . overlay . $el . css ( 'z-index' , ++ maxZ )); var saveScroll = { scrollTop : this . element . attr ( 'scrollTop' ), scrollLeft : this . element . attr ( 'scrollLeft' )}; this . uiDialog . css ( 'z-index' , ++ maxZ ); this . element . attr ( saveScroll ); this . _trigger ( 'focus' , null ,{ options : this . options });}, open : function (){ if ( this . _isOpen ){ return ;}
2009-01-10 06:25:44 +00:00
this . overlay = this . options . modal ? new $ . ui . dialog . overlay ( this ) : null ;( this . uiDialog . next (). length && this . uiDialog . appendTo ( 'body' )); this . _size (); this . _position ( this . options . position ); this . uiDialog . show ( this . options . show ); this . moveToTop ( true );( this . options . modal && this . uiDialog . bind ( 'keypress.ui-dialog' , function ( event ){ if ( event . keyCode != $ . ui . keyCode . TAB ){ return ;}
2009-01-16 07:51:31 +00:00
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 );}})); this . uiDialog . find ( ':tabbable:first' ). focus (); this . _trigger ( 'open' , null ,{ options : this . options }); this . _isOpen = true ;}, _createButtons : function ( buttons ){ var self = this , hasButtons = false , uiDialogButtonPane = this . uiDialogButtonPane ; uiDialogButtonPane . empty (). hide (); $ . each ( buttons , function (){ return ! ( hasButtons = true );}); if ( hasButtons ){ uiDialogButtonPane . show (); $ . 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 );});}}, _makeDraggable : function (){ var self = this , options = this . options ; this . uiDialog . draggable ({ cancel : '.ui-dialog-content' , helper : options . dragHelper , handle : '.ui-dialog-titlebar' , start : function (){( options . dragStart && options . dragStart . apply ( self . element [ 0 ], arguments ));}, drag : function (){( options . drag && options . drag . apply ( self . element [ 0 ], arguments ));}, stop : function (){( 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 , helper : options . resizeHelper , maxWidth : options . maxWidth , maxHeight : options . maxHeight , minWidth : options . minWidth , minHeight : options . minHeight , start : function (){( options . resizeStart && options . resizeStart . apply ( self . element [ 0 ], arguments ));}, resize : function (){( options . resize && options . resize . apply ( self . element [ 0 ], arguments ));}, handles : resizeHandles , stop : function (){( 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' ];}
2008-12-25 08:14:41 +00:00
if ( pos . constructor != Array ){ pos = [ 'center' , 'middle' ];}
2009-01-10 06:25:44 +00:00
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 ;}}
2009-01-16 07:51:31 +00:00
if ( pos [ 1 ]. constructor == Number ){ pTop += pos [ 1 ];} else { switch ( pos [ 1 ]){ case 'top' : pTop += 0 ; break ; case 'bottom' : pTop += ( $ . browser . opera ? window . innerHeight : wnd . height ()) - this . uiDialog . outerHeight (); break ; default : case 'middle' : pTop += (( $ . browser . opera ? window . innerHeight : wnd . height ()) - this . uiDialog . outerHeight ()) / 2 ;}}
2009-01-10 06:25:44 +00:00
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 "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 ;}
2009-01-16 07:51:31 +00:00
$ . widget . prototype . _setData . apply ( this , arguments );}, _size : function (){ var options = this . options ; this . element . css ({ height : 0 , width : 'auto' }); var nonContentHeight = this . uiDialog . css ({ height : 'auto' , width : options . width }). height (); this . element . css ({ minHeight : options . minHeight - nonContentHeight , height : options . height == 'auto' ? 'auto' : options . height - nonContentHeight });}}); $ . extend ( $ . ui . dialog ,{ version : "1.6rc4" , defaults : { autoOpen : true , bgiframe : false , buttons : {}, closeOnEscape : true , closeText : 'close' , draggable : true , height : 'auto' , minHeight : 150 , minWidth : 150 , modal : false , overlay : {}, position : 'center' , resizable : true , stack : true , width : 300 , zIndex : 1000 }, getter : 'isOpen' , uuid : 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 : [], 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 (){ $ ( 'a, :input' ). bind ( $ . ui . dialog . overlay . events , function (){ var allow = false ; var $dialog = $ ( this ). parents ( '.ui-dialog' ); if ( $dialog . length ){ var $overlays = $ ( '.ui-dialog-overlay' ); if ( $overlays . length ){ var maxZ = parseInt ( $overlays . css ( 'z-index' ), 10 ); $overlays . each ( function (){ maxZ = Math . max ( maxZ , parseInt ( $ ( this ). css ( 'z-index' ), 10 ));}); allow = parseInt ( $dialog . css ( 'z-index' ), 10 ) > maxZ ;} else { allow = true ;}}
2009-01-10 06:25:44 +00:00
return allow ;});}, 1 ); $ ( document ). bind ( 'keydown.dialog-overlay' , function ( event ){( dialog . options . closeOnEscape && event . keyCode && event . keyCode == $ . ui . keyCode . ESCAPE && dialog . close ());}); $ ( window ). bind ( 'resize.dialog-overlay' , $ . ui . dialog . overlay . resize );}
var $el = $ ( '<div></div>' ). appendTo ( document . body ). addClass ( 'ui-dialog-overlay' ). css ( $ . extend ({ borderWidth : 0 , margin : 0 , padding : 0 , position : 'absolute' , top : 0 , left : 0 , width : this . width (), height : this . height ()}, dialog . options . overlay ));( 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 ){ $ ( 'a, :input' ). add ([ document , window ]). unbind ( '.dialog-overlay' );}
2009-01-16 07:51:31 +00:00
$el . remove ();}, 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 if ( $ . browser . opera ){ return Math . max ( window . innerHeight , $ ( document ). height ()) + '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 if ( $ . browser . opera ){ return Math . max ( window . innerWidth , $ ( document ). width ()) + '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 (){ this . _tabify ( true );}, destroy : function (){ var o = this . options ; this . element . unbind ( '.tabs' ). removeClass ( o . navClass ). removeData ( 'tabs' ); this . $tabs . 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 . add ( this . $panels ). each ( function (){ if ( $ . data ( this , 'destroy.tabs' ))
$ ( this ). remove (); else
$ ( this ). removeClass ([ o . tabClass , o . selectedClass , o . deselectableClass , o . disabledClass , o . panelClass , o . hideClass ]. join ( ' ' ));}); if ( o . cookie )
this . _cookie ( null , o . cookie );}, _setData : function ( key , value ){ if (( /^selected/ ). test ( key ))
this . select ( value ); else { this . options [ key ] = value ; this . _tabify ();}}, length : function (){ return this . $tabs . length ;}, _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 = 'ui-tabs-' + $ . data ( this . element [ 0 ])); return $ . cookie . apply ( null ,[ cookie ]. concat ( $ . makeArray ( arguments )));}, _tabify : function ( init ){ this . $lis = $ ( 'li:has(a[href])' , this . element . is ( 'div' ) ? $ ( '> ul:first' , this . element ) : this . element ); this . $tabs = this . $lis . map ( function (){ return $ ( 'a' , this )[ 0 ];}); this . $panels = $ ([]); var self = this , o = this . options ; this . $lis . hover ( function (){ $ ( this ). addClass ( 'ui-state-hover' );}, function (){ $ ( this ). removeClass ( 'ui-state-hover' );}); this . $tabs . focus ( function (){ $ ( this ). parent (). addClass ( 'ui-state-focus' );}). blur ( function (){ $ ( this ). parent (). removeClass ( 'ui-state-focus' );}); this . $tabs . each ( function ( i , a ){ if ( a . hash && a . hash . replace ( '#' , '' ))
self . $panels = self . $panels . add ( self . _sanitizeSelector ( a . hash )); else if ( $ ( a ). attr ( 'href' ) != '#' ){ $ . data ( a , 'href.tabs' , a . href ); $ . data ( a , 'load.tabs' , a . href ); var id = self . _tabId ( a ); a . href = '#' + id ; var $panel = $ ( '#' + id ); if ( ! $panel . length ){ $panel = $ ( o . panelTemplate ). attr ( 'id' , id ). addClass ( o . panelClass ). insertAfter ( self . $panels [ i - 1 ] || self . element ); $panel . data ( 'destroy.tabs' , true );}
self . $panels = self . $panels . add ( $panel );}
else
o . disabled . push ( i + 1 );}); if ( init ){ if ( this . element . is ( 'div' )){ this . element . addClass ( 'ui-tabs ui-widget ui-widget-content ui-corner-all' ); $ ( '> ul:first' , this . element ). addClass ( o . navClass );}
else { this . element . addClass ( o . navClass );}
this . $lis . addClass ( o . tabClass ); this . $panels . addClass ( o . panelClass ); if ( o . selected === undefined ){ if ( location . hash ){ this . $tabs . each ( function ( i , a ){ if ( a . hash == location . hash ){ o . selected = i ; return false ;}});}
else if ( o . cookie ){ var index = parseInt ( self . _cookie (), 10 ); if ( index && self . $tabs [ index ]) o . selected = index ;}
else if ( self . $lis . filter ( '.' + o . selectedClass ). length )
o . selected = self . $lis . index ( self . $lis . filter ( '.' + o . selectedClass )[ 0 ]);}
o . selected = o . selected === null || o . selected !== undefined ? o . selected : 0 ; o . disabled = $ . unique ( o . disabled . concat ( $ . map ( this . $lis . filter ( '.' + o . disabledClass ), 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 ( o . hideClass ); this . $lis . removeClass ( o . selectedClass ); if ( o . selected !== null ){ this . $panels . eq ( o . selected ). removeClass ( o . hideClass ); var classes = [ o . selectedClass ]; if ( o . deselectable ) classes . push ( o . deselectableClass ); this . $lis . eq ( o . selected ). addClass ( classes . join ( ' ' )); var onShow = function (){ self . _trigger ( 'show' , null , self . ui ( self . $tabs [ o . selected ], self . $panels [ o . selected ]));}; if ( $ . data ( this . $tabs [ o . selected ], 'load.tabs' ))
this . load ( o . selected , onShow ); else onShow ();}
$ ( window ). bind ( 'unload' , function (){ self . $tabs . unbind ( '.tabs' ); self . $lis = self . $tabs = self . $panels = null ;});}
else
o . selected = this . $lis . index ( this . $lis . filter ( '.' + o . selectedClass )[ 0 ]); 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 ( o . selectedClass ) ? 'addClass' : 'removeClass' ]( o . disabledClass ); if ( o . cache === false ) this . $tabs . removeData ( 'cache.tabs' ); var hideFx , showFx ; if ( o . fx ){ if ( o . fx . constructor == Array ){ 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 ){ $show . animate ( showFx , showFx . duration || 'normal' , function (){ $show . removeClass ( o . hideClass ); resetStyle ( $show , showFx ); self . _trigger ( 'show' , null , self . ui ( clicked , $show [ 0 ]));});} : function ( clicked , $show ){ $show . removeClass ( o . hideClass ); self . _trigger ( 'show' , null , self . ui ( clicked , $show [ 0 ]));}; var hideTab = hideFx ? function ( clicked , $hide , $show ){ $hide . animate ( hideFx , hideFx . duration || 'normal' , function (){ $hide . addClass ( o . hideClass ); resetStyle ( $hide , hideFx ); if ( $show ) showTab ( clicked , $show , $hide );});} : function ( clicked , $hide , $show ){ $hide . addClass ( o . hideClass ); if ( $show ) showTab ( clicked , $show );}; function switchTab ( clicked , $li , $hide , $show ){ var classes = [ o . selectedClass ]; if ( o . deselectable ) classes . push ( o . deselectableClass ); $li . removeClass ( 'ui-state-default' ). addClass ( classes . join ( ' ' )). siblings (). removeClass ( classes . join ( ' ' )). addClass ( 'ui-state-default' ); hideTab ( clicked , $hide , $show );}
this . $tabs . unbind ( '.tabs' ). bind ( o . event + '.tabs' , function (){ var $li = $ ( this ). parents ( 'li:eq(0)' ), $hide = self . $panels . filter ( ':visible' ), $show = $ ( self . _sanitizeSelector ( this . hash )); if (( $li . hasClass ( 'ui-state-active' ) &&! o . deselectable ) || $li . hasClass ( o . disabledClass ) || $ ( this ). hasClass ( o . loadingClass ) || self . _trigger ( 'select' , null , self . ui ( this , $show [ 0 ])) === false ){ this . blur (); return false ;}
o . selected = self . $tabs . index ( this ); if ( o . deselectable ){ if ( $li . hasClass ( 'ui-state-active' )){ self . options . selected = null ; $li . removeClass ([ o . selectedClass , o . deselectableClass ]. join ( ' ' )). addClass ( 'ui-state-default' ); self . $panels . stop (); hideTab ( this , $hide ); this . blur (); return false ;} else if ( ! $hide . length ){ self . $panels . stop (); var a = this ; self . load ( self . $tabs . index ( this ), function (){ $li . addClass ([ o . selectedClass , o . deselectableClass ]. join ( ' ' )). removeClass ( 'ui-state-default' ); showTab ( a , $show );}); this . blur (); return false ;}}
if ( o . cookie ) self . _cookie ( o . selected , o . cookie ); self . $panels . stop (); if ( $show . length ){ var a = this ; self . load ( self . $tabs . index ( this ), $hide . length ? function (){ switchTab ( a , $li , $hide , $show );} : function (){ $li . addClass ( o . selectedClass ). removeClass ( 'ui-state-default' ); showTab ( a , $show );});} else
throw 'jQuery UI Tabs: Mismatching fragment identifier.' ; if ( $ . browser . msie ) this . blur (); return false ;}); if ( o . event != 'click' ) this . $tabs . bind ( 'click.tabs' , function (){ return false ;});}, add : function ( url , label , index ){ if ( index == undefined )
index = this . $tabs . length ; var o = this . options ; var $li = $ ( o . tabTemplate . replace ( /#\{href\}/g , url ). replace ( /#\{label\}/g , label )); $li . addClass ( o . tabClass ). data ( 'destroy.tabs' , true ); var id = url . indexOf ( '#' ) == 0 ? url . replace ( '#' , '' ) : this . _tabId ( $ ( 'a:first-child' , $li )[ 0 ]); var $panel = $ ( '#' + id ); if ( ! $panel . length ){ $panel = $ ( o . panelTemplate ). attr ( 'id' , id ). addClass ( o . hideClass ). data ( 'destroy.tabs' , true );}
$panel . addClass ( o . panelClass ); if ( index >= this . $lis . length ){ $li . appendTo ( this . element ); $panel . appendTo ( this . element [ 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 . $tabs . length == 1 ){ $li . addClass ( o . selectedClass ); $panel . removeClass ( o . hideClass ); var href = $ . data ( this . $tabs [ 0 ], 'load.tabs' ); if ( href ) this . load ( index , href );}
this . _trigger ( 'add' , null , this . ui ( this . $tabs [ 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 ( o . selectedClass ) && this . $tabs . length > 1 )
this . select ( index + ( index + 1 < this . $tabs . 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 ; var $li = this . $lis . eq ( index ). removeClass ( o . disabledClass ); if ( $ . browser . safari ){ $li . css ( 'display' , 'inline-block' ); setTimeout ( function (){ $li . css ( 'display' , 'block' );}, 0 );}
o . disabled = $ . grep ( o . disabled , function ( n , i ){ return n != index ;}); this . _trigger ( 'enable' , null , this . ui ( this . $tabs [ index ], this . $panels [ index ]));}, disable : function ( index ){ var self = this , o = this . options ; if ( index != o . selected ){ this . $lis . eq ( index ). addClass ( o . disabledClass ); o . disabled . push ( index ); o . disabled . sort (); this . _trigger ( 'disable' , null , this . ui ( this . $tabs [ index ], this . $panels [ index ]));}}, select : function ( index ){ if ( typeof index == 'string' )
index = this . $tabs . index ( this . $tabs . filter ( '[href$=' + index + ']' )[ 0 ]); this . $tabs . eq ( index ). trigger ( this . options . event + '.tabs' );}, load : function ( index , callback ){ var self = this , o = this . options , $a = this . $tabs . eq ( index ), a = $a [ 0 ], bypassCache = callback == undefined || callback === false , url = $a . data ( 'load.tabs' ); callback = callback || function (){}; if ( ! url ||! bypassCache && $ . data ( a , 'cache.tabs' )){ callback (); return ;}
var inner = function ( parent ){ var $parent = $ ( parent ), $inner = $parent . find ( '*:last' ); return $inner . length && $inner . is ( ':not(img)' ) && $inner || $parent ;}; var cleanup = function (){ self . $tabs . filter ( '.' + o . loadingClass ). removeClass ( o . loadingClass ). each ( function (){ if ( o . spinner )
inner ( this ). parent (). html ( inner ( this ). data ( 'label.tabs' ));}); self . xhr = null ;}; if ( o . spinner ){ var label = inner ( a ). html (); inner ( a ). wrapInner ( '<em></em>' ). find ( 'em' ). data ( 'label.tabs' , label ). html ( o . spinner );}
var ajaxOptions = $ . extend ({}, o . ajaxOptions ,{ url : url , success : function ( r , s ){ $ ( self . _sanitizeSelector ( a . hash )). html ( r ); cleanup (); if ( o . cache )
$ . data ( a , 'cache.tabs' , true ); self . _trigger ( 'load' , null , self . ui ( self . $tabs [ index ], self . $panels [ index ])); try { o . ajaxOptions . success ( r , s );}
catch ( event ){}
callback ();}}); if ( this . xhr ){ this . xhr . abort (); cleanup ();}
$a . addClass ( o . loadingClass ); self . xhr = $ . ajax ( ajaxOptions );}, url : function ( index , url ){ this . $tabs . eq ( index ). removeData ( 'cache.tabs' ). data ( 'load.tabs' , url );}, ui : function ( tab , panel ){ return { options : this . options , tab : tab , panel : panel , index : this . $tabs . index ( tab )};}}); $ . extend ( $ . ui . tabs ,{ version : '1.6rc4' , getter : 'length' , defaults : { ajaxOptions : null , cache : false , cookie : null , deselectable : false , deselectableClass : 'ui-tabs-deselectable' , disabled : [], disabledClass : 'ui-state-disabled' , event : 'click' , fx : null , hideClass : 'ui-tabs-hide' , idPrefix : 'ui-tabs-' , loadingClass : 'ui-tabs-loading' , navClass : 'ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all' , tabClass : 'ui-state-default ui-corner-top' , panelClass : 'ui-tabs-panel ui-widget-content ui-corner-bottom' , panelTemplate : '<div></div>' , selectedClass : 'ui-tabs-selected ui-state-active' , spinner : 'Loading…' , tabTemplate : '<li><a href="#{href}"><span>#{label}</span></a></li>' }}); $ . extend ( $ . ui . tabs . prototype ,{ rotation : null , rotate : function ( ms , continuing ){ continuing = continuing || false ; var self = this , t = this . options . selected ; function start (){ self . rotation = setInterval ( function (){ t =++ t < self . $tabs . length ? t : 0 ; self . select ( t );}, ms );}
function stop ( event ){ if ( ! event || event . clientX ){ clearInterval ( self . rotation );}}
if ( ms ){ start (); if ( ! continuing )
this . $tabs . bind ( this . options . event + '.tabs' , stop ); else
this . $tabs . bind ( this . options . event + '.tabs' , function (){ stop (); t = self . options . selected ; start ();});}
else { stop (); this . $tabs . unbind ( this . options . event + '.tabs' , stop );}}});})( jQuery );( function ( $ ){ $ . extend ( $ . ui ,{ datepicker : { version : "1.6rc4" }}); var PROP_NAME = 'datepicker' ; function Datepicker (){ this . debug = false ; this . _curInst = null ; this . _keyEvent = false ; this . _disabledInputs = []; this . _datepickerShowing = false ; this . _inDialog = false ; this . _mainDivId = 'ui-datepicker-div' ; this . _inlineClass = 'ui-datepicker-inline' ; this . _appendClass = 'ui-datepicker-append' ; this . _triggerClass = 'ui-datepicker-trigger' ; this . _dialogClass = 'ui-datepicker-dialog' ; this . _disableClass = 'ui-datepicker-disabled' ; this . _unselectableClass = 'ui-datepicker-unselectable' ; this . _currentClass = 'ui-datepicker-current-day' ; this . _dayOverClass = 'ui-datepicker-days-cell-over' ; this . regional = []; this . regional [ '' ] = { clearText : 'Clear' , closeText : 'Done' , prevText : 'Prev' , prevBigText : '<<' , nextText : 'Next' , nextBigText : '>>' , currentText : 'Today' , monthNames : [ 'January' , 'February' , 'March' , 'April' , 'May' , 'June' , 'July' , 'August' , 'September' , 'October' , 'November' , 'December' ], monthNamesShort : [ 'Jan' , 'Feb' , 'Mar' , 'Apr' , 'May' , 'Jun' , 'Jul' , 'Aug' , 'Sep' , 'Oct' , 'Nov' , 'Dec' ], dayNames : [ 'Sunday' , 'Monday' , 'Tuesday' , 'Wednesday' , 'Thursday' , 'Friday' , 'Saturday' ], dayNamesShort : [ 'Sun' , 'Mon' , 'Tue' , 'Wed' , 'Thu' , 'Fri' , 'Sat' ], dayNamesMin : [ 'Su' , 'Mo' , 'Tu' , 'We' , 'Th' , 'Fr' , 'Sa' ], dateFormat : 'mm/dd/yy' , firstDay : 0 , isRTL : false }; this . _defaults = { showOn : 'focus' , showAnim : 'show' , showOptions : {}, defaultDate : null , appendText : '' , buttonText : '...' , buttonImage : '' , buttonImageOnly : false , hideIfNoPrevNext : false , navigationAsDateFormat : false , gotoCurrent : false , changeMonth : false , changeYear : false , showMonthAfterYear : false , yearRange : '-10:+10' , showOtherMonths : false , calculateWeek : this . iso8601Week , shortYearCutoff : '+10' , minDate : null , maxDate : null , duration : 'normal' , beforeShowDay : null , beforeShow : null , onSelect : null , onChangeMonthYear : null , onClose : null , numberOfMonths : 1 , showCurrentAtPos : 0 , stepMonths : 1 , stepBigMonths : 12 , altField : '' , altFormat : '' , constrainInput : true , showButtonPanel : false }; $ . extend ( this . _defaults , this . regional [ '' ]); this . dpDiv = $ ( '<div id="' + this . _mainDivId + '" class="ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all ui-helper-hidden-accessible"></div>' );}
2009-01-10 06:25:44 +00:00
$ . extend ( Datepicker . prototype ,{ markerClassName : 'hasDatepicker' , log : function (){ if ( this . debug )
console . log . apply ( '' , arguments );}, setDefaults : function ( settings ){ extendRemove ( this . _defaults , settings || {}); return this ;}, _attachDatepicker : function ( target , settings ){ var inlineSettings = null ; for ( var attrName in this . _defaults ){ var attrValue = target . getAttribute ( 'date:' + attrName ); if ( attrValue ){ inlineSettings = inlineSettings || {}; try { inlineSettings [ attrName ] = eval ( attrValue );} catch ( err ){ inlineSettings [ attrName ] = attrValue ;}}}
var nodeName = target . nodeName . toLowerCase (); var inline = ( nodeName == 'div' || nodeName == 'span' ); if ( ! target . id )
target . id = 'dp' + ( ++ this . uuid ); var inst = this . _newInst ( $ ( target ), inline ); inst . settings = $ . extend ({}, settings || {}, inlineSettings || {}); if ( nodeName == 'input' ){ this . _connectDatepicker ( target , inst );} else if ( inline ){ this . _inlineDatepicker ( target , inst );}}, _newInst : function ( target , inline ){ var id = target [ 0 ]. id . replace ( /([:\[\]\.])/g , '\\\\$1' ); return { id : id , input : target , selectedDay : 0 , selectedMonth : 0 , selectedYear : 0 , drawMonth : 0 , drawYear : 0 , inline : inline , dpDiv : ( ! inline ? this . dpDiv : $ ( '<div class="' + this . _inlineClass + ' ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all"></div>' ))};}, _connectDatepicker : function ( target , inst ){ var input = $ ( target ); if ( input . hasClass ( this . markerClassName ))
return ; var appendText = this . _get ( inst , 'appendText' ); var isRTL = this . _get ( inst , 'isRTL' ); if ( appendText )
input [ isRTL ? 'before' : 'after' ]( '<span class="' + this . _appendClass + '">' + appendText + '</span>' ); var showOn = this . _get ( inst , 'showOn' ); if ( showOn == 'focus' || showOn == 'both' )
input . focus ( this . _showDatepicker ); if ( showOn == 'button' || showOn == 'both' ){ var buttonText = this . _get ( inst , 'buttonText' ); var buttonImage = this . _get ( inst , 'buttonImage' ); var trigger = $ ( this . _get ( inst , 'buttonImageOnly' ) ? $ ( '<img/>' ). addClass ( this . _triggerClass ). attr ({ src : buttonImage , alt : buttonText , title : buttonText }) : $ ( '<button type="button"></button>' ). addClass ( this . _triggerClass ). html ( buttonImage == '' ? buttonText : $ ( '<img/>' ). attr ({ src : buttonImage , alt : buttonText , title : buttonText }))); input [ isRTL ? 'before' : 'after' ]( trigger ); trigger . click ( function (){ if ( $ . datepicker . _datepickerShowing && $ . datepicker . _lastInput == target )
$ . datepicker . _hideDatepicker (); else
$ . datepicker . _showDatepicker ( target ); return false ;});}
input . addClass ( this . markerClassName ). keydown ( this . _doKeyDown ). keypress ( this . _doKeyPress ). bind ( "setData.datepicker" , function ( event , key , value ){ inst . settings [ key ] = value ;}). bind ( "getData.datepicker" , function ( event , key ){ return this . _get ( inst , key );}); $ . data ( target , PROP_NAME , inst );}, _inlineDatepicker : function ( target , inst ){ var divSpan = $ ( target ); if ( divSpan . hasClass ( this . markerClassName ))
return ; divSpan . addClass ( this . markerClassName ). append ( inst . dpDiv ). bind ( "setData.datepicker" , function ( event , key , value ){ inst . settings [ key ] = value ;}). bind ( "getData.datepicker" , function ( event , key ){ return this . _get ( inst , key );}); $ . data ( target , PROP_NAME , inst ); this . _setDate ( inst , this . _getDefaultDate ( inst )); this . _updateDatepicker ( inst ); this . _updateAlternate ( inst );}, _dialogDatepicker : function ( input , dateText , onSelect , settings , pos ){ var inst = this . _dialogInst ; if ( ! inst ){ var id = 'dp' + ( ++ this . uuid ); this . _dialogInput = $ ( '<input type="text" id="' + id + '" size="1" style="position: absolute; top: -100px;"/>' ); this . _dialogInput . keydown ( this . _doKeyDown ); $ ( 'body' ). append ( this . _dialogInput ); inst = this . _dialogInst = this . _newInst ( this . _dialogInput , false ); inst . settings = {}; $ . data ( this . _dialogInput [ 0 ], PROP_NAME , inst );}
extendRemove ( inst . settings , settings || {}); this . _dialogInput . val ( dateText ); this . _pos = ( pos ? ( pos . length ? pos : [ pos . pageX , pos . pageY ]) : null ); if ( ! this . _pos ){ var browserWidth = window . innerWidth || document . documentElement . clientWidth || document . body . clientWidth ; var browserHeight = window . innerHeight || document . documentElement . clientHeight || document . body . clientHeight ; var scrollX = document . documentElement . scrollLeft || document . body . scrollLeft ; var scrollY = document . documentElement . scrollTop || document . body . scrollTop ; this . _pos = [( browserWidth / 2 ) - 100 + scrollX ,( browserHeight / 2 ) - 150 + scrollY ];}
this . _dialogInput . css ( 'left' , this . _pos [ 0 ] + 'px' ). css ( 'top' , this . _pos [ 1 ] + 'px' ); inst . settings . onSelect = onSelect ; this . _inDialog = true ; this . dpDiv . addClass ( this . _dialogClass ); this . _showDatepicker ( this . _dialogInput [ 0 ]); if ( $ . blockUI )
$ . blockUI ( this . dpDiv ); $ . data ( this . _dialogInput [ 0 ], PROP_NAME , inst ); return this ;}, _destroyDatepicker : function ( target ){ var $target = $ ( target ); if ( ! $target . hasClass ( this . markerClassName )){ return ;}
var nodeName = target . nodeName . toLowerCase (); $ . removeData ( target , PROP_NAME ); if ( nodeName == 'input' ){ $target . siblings ( '.' + this . _appendClass ). remove (). end (). siblings ( '.' + this . _triggerClass ). remove (). end (). removeClass ( this . markerClassName ). unbind ( 'focus' , this . _showDatepicker ). unbind ( 'keydown' , this . _doKeyDown ). unbind ( 'keypress' , this . _doKeyPress );} else if ( nodeName == 'div' || nodeName == 'span' )
$target . removeClass ( this . markerClassName ). empty ();}, _enableDatepicker : function ( target ){ var $target = $ ( target ); if ( ! $target . hasClass ( this . markerClassName )){ return ;}
var nodeName = target . nodeName . toLowerCase (); if ( nodeName == 'input' ){ target . disabled = false ; $target . siblings ( 'button.' + this . _triggerClass ). each ( function (){ this . disabled = false ;}). end (). siblings ( 'img.' + this . _triggerClass ). css ({ opacity : '1.0' , cursor : '' });}
else if ( nodeName == 'div' || nodeName == 'span' ){ var inline = $target . children ( '.' + this . _inlineClass ); inline . children (). removeClass ( 'ui-state-disabled' );}
this . _disabledInputs = $ . map ( this . _disabledInputs , function ( value ){ return ( value == target ? null : value );});}, _disableDatepicker : function ( target ){ var $target = $ ( target ); if ( ! $target . hasClass ( this . markerClassName )){ return ;}
var nodeName = target . nodeName . toLowerCase (); if ( nodeName == 'input' ){ target . disabled = true ; $target . siblings ( 'button.' + this . _triggerClass ). each ( function (){ this . disabled = true ;}). end (). siblings ( 'img.' + this . _triggerClass ). css ({ opacity : '0.5' , cursor : 'default' });}
else if ( nodeName == 'div' || nodeName == 'span' ){ var inline = $target . children ( '.' + this . _inlineClass ); inline . children (). addClass ( 'ui-state-disabled' );}
this . _disabledInputs = $ . map ( this . _disabledInputs , function ( value ){ return ( value == target ? null : value );}); this . _disabledInputs [ this . _disabledInputs . length ] = target ;}, _isDisabledDatepicker : function ( target ){ if ( ! target ){ return false ;}
for ( var i = 0 ; i < this . _disabledInputs . length ; i ++ ){ if ( this . _disabledInputs [ i ] == target )
return true ;}
return false ;}, _getInst : function ( target ){ try { return $ . data ( target , PROP_NAME );}
catch ( err ){ throw 'Missing instance data for this datepicker' ;}}, _optionDatepicker : function ( target , name , value ){ var settings = name || {}; if ( typeof name == 'string' ){ settings = {}; settings [ name ] = value ;}
var inst = this . _getInst ( target ); if ( inst ){ if ( this . _curInst == inst ){ this . _hideDatepicker ( null );}
extendRemove ( inst . settings , settings ); var date = new Date (); extendRemove ( inst ,{ rangeStart : null , endDay : null , endMonth : null , endYear : null , selectedDay : date . getDate (), selectedMonth : date . getMonth (), selectedYear : date . getFullYear (), currentDay : date . getDate (), currentMonth : date . getMonth (), currentYear : date . getFullYear (), drawMonth : date . getMonth (), drawYear : date . getFullYear ()}); this . _updateDatepicker ( inst );}}, _changeDatepicker : function ( target , name , value ){ this . _optionDatepicker ( target , name , value );}, _refreshDatepicker : function ( target ){ var inst = this . _getInst ( target ); if ( inst ){ this . _updateDatepicker ( inst );}}, _setDateDatepicker : function ( target , date , endDate ){ var inst = this . _getInst ( target ); if ( inst ){ this . _setDate ( inst , date , endDate ); this . _updateDatepicker ( inst ); this . _updateAlternate ( inst );}}, _getDateDatepicker : function ( target ){ var inst = this . _getInst ( target ); if ( inst &&! inst . inline )
this . _setDateFromField ( inst ); return ( inst ? this . _getDate ( inst ) : null );}, _doKeyDown : function ( event ){ var inst = $ . datepicker . _getInst ( event . target ); var handled = true ; var isRTL = inst . dpDiv . is ( '.ui-datepicker-rtl' ); inst . _keyEvent = true ; if ( $ . datepicker . _datepickerShowing )
switch ( event . keyCode ){ case 9 : $ . datepicker . _hideDatepicker ( null , '' ); break ; case 13 : var sel = $ ( 'td.' + $ . datepicker . _dayOverClass + ', td.' + $ . datepicker . _currentClass , inst . dpDiv ); if ( sel [ 0 ])
$ . datepicker . _selectDay ( event . target , inst . selectedMonth , inst . selectedYear , sel [ 0 ]); else
$ . datepicker . _hideDatepicker ( null , $ . datepicker . _get ( inst , 'duration' )); return false ; break ; case 27 : $ . datepicker . _hideDatepicker ( null , $ . datepicker . _get ( inst , 'duration' )); break ; case 33 : $ . datepicker . _adjustDate ( event . target ,( event . ctrlKey ?- $ . datepicker . _get ( inst , 'stepBigMonths' ) :- $ . datepicker . _get ( inst , 'stepMonths' )), 'M' ); break ; case 34 : $ . datepicker . _adjustDate ( event . target ,( event . ctrlKey ?+ $ . datepicker . _get ( inst , 'stepBigMonths' ) :+ $ . datepicker . _get ( inst , 'stepMonths' )), 'M' ); break ; case 35 : if ( event . ctrlKey || event . metaKey ) $ . datepicker . _clearDate ( event . target ); handled = event . ctrlKey || event . metaKey ; break ; case 36 : if ( event . ctrlKey || event . metaKey ) $ . datepicker . _gotoToday ( event . target ); handled = event . ctrlKey || event . metaKey ; break ; case 37 : if ( event . ctrlKey || event . metaKey ) $ . datepicker . _adjustDate ( event . target ,( isRTL ?+ 1 :- 1 ), 'D' ); handled = event . ctrlKey || event . metaKey ; if ( event . originalEvent . altKey ) $ . datepicker . _adjustDate ( event . target ,( event . ctrlKey ?- $ . datepicker . _get ( inst , 'stepBigMonths' ) :- $ . datepicker . _get ( inst , 'stepMonths' )), 'M' ); break ; case 38 : if ( event . ctrlKey || event . metaKey ) $ . datepicker . _adjustDate ( event . target , - 7 , 'D' ); handled = event . ctrlKey || event . metaKey ; break ; case 39 : if ( event . ctrlKey || event . metaKey ) $ . datepicker . _adjustDate ( event . target ,( isRTL ?- 1 :+ 1 ), 'D' ); handled = event . ctrlKey || event . metaKey ; if ( event . originalEvent . altKey ) $ . datepicker . _adjustDate ( event . target ,( event . ctrlKey ?+ $ . datepicker . _get ( inst , 'stepBigMonths' ) :+ $ . datepicker . _get ( inst , 'stepMonths' )), 'M' ); break ; case 40 : if ( event . ctrlKey || event . metaKey ) $ . datepicker . _adjustDate ( event . target , + 7 , 'D' ); handled = event . ctrlKey || event . metaKey ; break ; default : handled = false ;}
else if ( event . keyCode == 36 && event . ctrlKey )
$ . datepicker . _showDatepicker ( this ); else { handled = false ;}
if ( handled ){ event . preventDefault (); event . stopPropagation ();}}, _doKeyPress : function ( event ){ var inst = $ . datepicker . _getInst ( event . target ); if ( $ . datepicker . _get ( inst , 'constrainInput' )){ var chars = $ . datepicker . _possibleChars ( $ . datepicker . _get ( inst , 'dateFormat' )); var chr = String . fromCharCode ( event . charCode == undefined ? event . keyCode : event . charCode ); return event . ctrlKey || ( chr < ' ' ||! chars || chars . indexOf ( chr ) >- 1 );}}, _showDatepicker : function ( input ){ input = input . target || input ; if ( input . nodeName . toLowerCase () != 'input' )
input = $ ( 'input' , input . parentNode )[ 0 ]; if ( $ . datepicker . _isDisabledDatepicker ( input ) || $ . datepicker . _lastInput == input )
return ; var inst = $ . datepicker . _getInst ( input ); var beforeShow = $ . datepicker . _get ( inst , 'beforeShow' ); extendRemove ( inst . settings ,( beforeShow ? beforeShow . apply ( input ,[ input , inst ]) : {})); $ . datepicker . _hideDatepicker ( null , '' ); $ . datepicker . _lastInput = input ; $ . datepicker . _setDateFromField ( inst ); if ( $ . datepicker . _inDialog )
input . value = '' ; if ( ! $ . datepicker . _pos ){ $ . datepicker . _pos = $ . datepicker . _findPos ( input ); $ . datepicker . _pos [ 1 ] += input . offsetHeight ;}
var isFixed = false ; $ ( input ). parents (). each ( function (){ isFixed |= $ ( this ). css ( 'position' ) == 'fixed' ; return ! isFixed ;}); if ( isFixed && $ . browser . opera ){ $ . datepicker . _pos [ 0 ] -= document . documentElement . scrollLeft ; $ . datepicker . _pos [ 1 ] -= document . documentElement . scrollTop ;}
var offset = { left : $ . datepicker . _pos [ 0 ], top : $ . datepicker . _pos [ 1 ]}; $ . datepicker . _pos = null ; inst . rangeStart = null ; inst . dpDiv . css ({ position : 'absolute' , display : 'block' , top : '-1000px' }); $ . datepicker . _updateDatepicker ( inst ); offset = $ . datepicker . _checkOffset ( inst , offset , isFixed ); inst . dpDiv . css ({ position : ( $ . datepicker . _inDialog && $ . blockUI ? 'static' : ( isFixed ? 'fixed' : 'absolute' )), display : 'none' , left : offset . left + 'px' , top : offset . top + 'px' }); if ( ! inst . inline ){ var showAnim = $ . datepicker . _get ( inst , 'showAnim' ) || 'show' ; var duration = $ . datepicker . _get ( inst , 'duration' ); var postProcess = function (){ $ . datepicker . _datepickerShowing = true ; if ( $ . browser . msie && parseInt ( $ . browser . version , 10 ) < 7 )
$ ( 'iframe.ui-datepicker-cover' ). css ({ width : inst . dpDiv . width () + 4 , height : inst . dpDiv . height () + 4 });}; if ( $ . effects && $ . effects [ showAnim ])
inst . dpDiv . show ( showAnim , $ . datepicker . _get ( inst , 'showOptions' ), duration , postProcess ); else
inst . dpDiv [ showAnim ]( duration , postProcess ); if ( duration == '' )
postProcess (); if ( inst . input [ 0 ]. type != 'hidden' )
2009-01-16 07:51:31 +00:00
inst . input [ 0 ]. focus (); $ . datepicker . _curInst = inst ;}}, _updateDatepicker : function ( inst ){ var dims = { width : inst . dpDiv . width () + 4 , height : inst . dpDiv . height () + 4 }; var self = this ; inst . dpDiv . empty (). append ( this . _generateHTML ( inst )). find ( 'iframe.ui-datepicker-cover' ). css ({ width : dims . width , height : dims . height }). end (). find ( 'button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a' ). bind ( 'mouseout' , function (){ $ ( this ). removeClass ( 'ui-state-hover' );}). bind ( 'mouseover' , function (){ if ( ! self . _isDisabledDatepicker ( inst . inline ? inst . dpDiv . parent ()[ 0 ] : inst . input [ 0 ])){ $ ( this ). parents ( '.ui-datepicker-calendar' ). find ( 'a' ). removeClass ( 'ui-state-hover' ); $ ( this ). addClass ( 'ui-state-hover' );}}). end (). find ( '.' + this . _dayOverClass + ' a' ). trigger ( 'mouseover' ). end (); var numMonths = this . _getNumberOfMonths ( inst ); var cols = numMonths [ 1 ]; var width = 17 ; if ( cols > 1 ){ inst . dpDiv . addClass ( 'ui-datepicker-multi-' + cols ). css ( 'width' ,( width * cols ) + 'em' );} else { inst . dpDiv . removeClass ( 'ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4' ). width ( '' );}
2009-01-10 06:25:44 +00:00
inst . dpDiv [( numMonths [ 0 ] != 1 || numMonths [ 1 ] != 1 ? 'add' : 'remove' ) + 'Class' ]( 'ui-datepicker-multi' ); inst . dpDiv [( this . _get ( inst , 'isRTL' ) ? 'add' : 'remove' ) + 'Class' ]( 'ui-datepicker-rtl' ); if ( inst . input && inst . input [ 0 ]. type != 'hidden' && inst == $ . datepicker . _curInst )
2009-01-16 07:51:31 +00:00
$ ( inst . input [ 0 ]). focus ();}, _checkOffset : function ( inst , offset , isFixed ){ var pos = inst . input ? this . _findPos ( inst . input [ 0 ]) : null ; var browserWidth = window . innerWidth || ( document . documentElement ? document . documentElement . clientWidth : document . body . clientWidth ); var browserHeight = window . innerHeight || ( document . documentElement ? document . documentElement . clientHeight : document . body . clientHeight ); var scrollX = document . documentElement . scrollLeft || document . body . scrollLeft ; var scrollY = document . documentElement . scrollTop || document . body . scrollTop ; if ( this . _get ( inst , 'isRTL' ) || ( offset . left + inst . dpDiv . width () - scrollX ) > browserWidth )
offset . left = Math . max (( isFixed ? 0 : scrollX ), pos [ 0 ] + ( inst . input ? inst . input . width () : 0 ) - ( isFixed ? scrollX : 0 ) - inst . dpDiv . width () -
( isFixed && $ . browser . opera ? document . documentElement . scrollLeft : 0 )); else
offset . left -= ( isFixed ? scrollX : 0 ); if (( offset . top + inst . dpDiv . height () - scrollY ) > browserHeight )
offset . top = Math . max (( isFixed ? 0 : scrollY ), pos [ 1 ] - ( isFixed ? scrollY : 0 ) - ( this . _inDialog ? 0 : inst . dpDiv . height ()) -
( isFixed && $ . browser . opera ? document . documentElement . scrollTop : 0 )); else
offset . top -= ( isFixed ? scrollY : 0 ); return offset ;}, _findPos : function ( obj ){ while ( obj && ( obj . type == 'hidden' || obj . nodeType != 1 )){ obj = obj . nextSibling ;}
2009-01-10 06:25:44 +00:00
var position = $ ( obj ). offset (); return [ position . left , position . top ];}, _hideDatepicker : function ( input , duration ){ var inst = this . _curInst ; if ( ! inst || ( input && inst != $ . data ( input , PROP_NAME )))
return ; if ( inst . stayOpen )
this . _selectDate ( '#' + inst . id , this . _formatDate ( inst , inst . currentDay , inst . currentMonth , inst . currentYear )); inst . stayOpen = false ; if ( this . _datepickerShowing ){ duration = ( duration != null ? duration : this . _get ( inst , 'duration' )); var showAnim = this . _get ( inst , 'showAnim' ); var postProcess = function (){ $ . datepicker . _tidyDialog ( inst );}; if ( duration != '' && $ . effects && $ . effects [ showAnim ])
inst . dpDiv . hide ( showAnim , $ . datepicker . _get ( inst , 'showOptions' ), duration , postProcess ); else
inst . dpDiv [( duration == '' ? 'hide' : ( showAnim == 'slideDown' ? 'slideUp' : ( showAnim == 'fadeIn' ? 'fadeOut' : 'hide' )))]( duration , postProcess ); if ( duration == '' )
this . _tidyDialog ( inst ); var onClose = this . _get ( inst , 'onClose' ); if ( onClose )
onClose . apply (( inst . input ? inst . input [ 0 ] : null ),[( inst . input ? inst . input . val () : '' ), inst ]); this . _datepickerShowing = false ; this . _lastInput = null ; if ( this . _inDialog ){ this . _dialogInput . css ({ position : 'absolute' , left : '0' , top : '-100px' }); if ( $ . blockUI ){ $ . unblockUI (); $ ( 'body' ). append ( this . dpDiv );}}
this . _inDialog = false ;}
this . _curInst = null ;}, _tidyDialog : function ( inst ){ inst . dpDiv . removeClass ( this . _dialogClass ). unbind ( '.ui-datepicker-calendar' );}, _checkExternalClick : function ( event ){ if ( ! $ . datepicker . _curInst )
return ; var $target = $ ( event . target ); if (( $target . parents ( '#' + $ . datepicker . _mainDivId ). length == 0 ) &&! $target . hasClass ( $ . datepicker . markerClassName ) &&! $target . hasClass ( $ . datepicker . _triggerClass ) && $ . datepicker . _datepickerShowing &&! ( $ . datepicker . _inDialog && $ . blockUI ))
$ . datepicker . _hideDatepicker ( null , '' );}, _adjustDate : function ( id , offset , period ){ var target = $ ( id ); var inst = this . _getInst ( target [ 0 ]); if ( this . _isDisabledDatepicker ( target [ 0 ])){ return ;}
this . _adjustInstDate ( inst , offset , period ); this . _updateDatepicker ( inst );}, _gotoToday : function ( id ){ var target = $ ( id ); var inst = this . _getInst ( target [ 0 ]); if ( this . _get ( inst , 'gotoCurrent' ) && inst . currentDay ){ inst . selectedDay = inst . currentDay ; inst . drawMonth = inst . selectedMonth = inst . currentMonth ; inst . drawYear = inst . selectedYear = inst . currentYear ;}
else { var date = new Date (); inst . selectedDay = date . getDate (); inst . drawMonth = inst . selectedMonth = date . getMonth (); inst . drawYear = inst . selectedYear = date . getFullYear ();}
this . _notifyChange ( inst ); this . _adjustDate ( target );}, _selectMonthYear : function ( id , select , period ){ var target = $ ( id ); var inst = this . _getInst ( target [ 0 ]); inst . _selectingMonthYear = false ; inst [ 'selected' + ( period == 'M' ? 'Month' : 'Year' )] = inst [ 'draw' + ( period == 'M' ? 'Month' : 'Year' )] = parseInt ( select . options [ select . selectedIndex ]. value , 10 ); this . _notifyChange ( inst ); this . _adjustDate ( target );}, _clickMonthYear : function ( id ){ var target = $ ( id ); var inst = this . _getInst ( target [ 0 ]); if ( inst . input && inst . _selectingMonthYear &&! $ . browser . msie )
inst . input [ 0 ]. focus (); inst . _selectingMonthYear =! inst . _selectingMonthYear ;}, _selectDay : function ( id , month , year , td ){ var target = $ ( id ); if ( $ ( td ). hasClass ( this . _unselectableClass ) || this . _isDisabledDatepicker ( target [ 0 ])){ return ;}
var inst = this . _getInst ( target [ 0 ]); inst . selectedDay = inst . currentDay = $ ( 'a' , td ). html (); inst . selectedMonth = inst . currentMonth = month ; inst . selectedYear = inst . currentYear = year ; if ( inst . stayOpen ){ inst . endDay = inst . endMonth = inst . endYear = null ;}
this . _selectDate ( id , this . _formatDate ( inst , inst . currentDay , inst . currentMonth , inst . currentYear )); if ( inst . stayOpen ){ inst . rangeStart = this . _daylightSavingAdjust ( new Date ( inst . currentYear , inst . currentMonth , inst . currentDay )); this . _updateDatepicker ( inst );}}, _clearDate : function ( id ){ var target = $ ( id ); var inst = this . _getInst ( target [ 0 ]); inst . stayOpen = false ; inst . endDay = inst . endMonth = inst . endYear = inst . rangeStart = null ; this . _selectDate ( target , '' );}, _selectDate : function ( id , dateStr ){ var target = $ ( id ); var inst = this . _getInst ( target [ 0 ]); dateStr = ( dateStr != null ? dateStr : this . _formatDate ( inst )); if ( inst . input )
inst . input . val ( dateStr ); this . _updateAlternate ( inst ); var onSelect = this . _get ( inst , 'onSelect' ); if ( onSelect )
onSelect . apply (( inst . input ? inst . input [ 0 ] : null ),[ dateStr , inst ]); else if ( inst . input )
inst . input . trigger ( 'change' ); if ( inst . inline )
this . _updateDatepicker ( inst ); else if ( ! inst . stayOpen ){ this . _hideDatepicker ( null , this . _get ( inst , 'duration' )); this . _lastInput = inst . input [ 0 ]; if ( typeof ( inst . input [ 0 ]) != 'object' )
inst . input [ 0 ]. focus (); this . _lastInput = null ;}}, _updateAlternate : function ( inst ){ var altField = this . _get ( inst , 'altField' ); if ( altField ){ var altFormat = this . _get ( inst , 'altFormat' ) || this . _get ( inst , 'dateFormat' ); var date = this . _getDate ( inst ); dateStr = this . formatDate ( altFormat , date , this . _getFormatConfig ( inst )); $ ( altField ). each ( function (){ $ ( this ). val ( dateStr );});}}, noWeekends : function ( date ){ var day = date . getDay (); return [( day > 0 && day < 6 ), '' ];}, iso8601Week : function ( date ){ var checkDate = new Date ( date . getFullYear (), date . getMonth (), date . getDate ()); var firstMon = new Date ( checkDate . getFullYear (), 1 - 1 , 4 ); var firstDay = firstMon . getDay () || 7 ; firstMon . setDate ( firstMon . getDate () + 1 - firstDay ); if ( firstDay < 4 && checkDate < firstMon ){ checkDate . setDate ( checkDate . getDate () - 3 ); return $ . datepicker . iso8601Week ( checkDate );} else if ( checkDate > new Date ( checkDate . getFullYear (), 12 - 1 , 28 )){ firstDay = new Date ( checkDate . getFullYear () + 1 , 1 - 1 , 4 ). getDay () || 7 ; if ( firstDay > 4 && ( checkDate . getDay () || 7 ) < firstDay - 3 ){ return 1 ;}}
return Math . floor ((( checkDate - firstMon ) / 86400000 ) / 7 ) + 1 ;}, parseDate : function ( format , value , settings ){ if ( format == null || value == null )
throw 'Invalid arguments' ; value = ( typeof value == 'object' ? value . toString () : value + '' ); if ( value == '' )
return null ; var shortYearCutoff = ( settings ? settings . shortYearCutoff : null ) || this . _defaults . shortYearCutoff ; var dayNamesShort = ( settings ? settings . dayNamesShort : null ) || this . _defaults . dayNamesShort ; var dayNames = ( settings ? settings . dayNames : null ) || this . _defaults . dayNames ; var monthNamesShort = ( settings ? settings . monthNamesShort : null ) || this . _defaults . monthNamesShort ; var monthNames = ( settings ? settings . monthNames : null ) || this . _defaults . monthNames ; var year =- 1 ; var month =- 1 ; var day =- 1 ; var doy =- 1 ; var literal = false ; var lookAhead = function ( match ){ var matches = ( iFormat + 1 < format . length && format . charAt ( iFormat + 1 ) == match ); if ( matches )
iFormat ++ ; return matches ;}; var getNumber = function ( match ){ lookAhead ( match ); var origSize = ( match == '@' ? 14 : ( match == 'y' ? 4 : ( match == 'o' ? 3 : 2 ))); var size = origSize ; var num = 0 ; while ( size > 0 && iValue < value . length && value . charAt ( iValue ) >= '0' && value . charAt ( iValue ) <= '9' ){ num = num * 10 + parseInt ( value . charAt ( iValue ++ ), 10 ); size -- ;}
if ( size == origSize )
throw 'Missing number at position ' + iValue ; return num ;}; var getName = function ( match , shortNames , longNames ){ var names = ( lookAhead ( match ) ? longNames : shortNames ); var size = 0 ; for ( var j = 0 ; j < names . length ; j ++ )
size = Math . max ( size , names [ j ]. length ); var name = '' ; var iInit = iValue ; while ( size > 0 && iValue < value . length ){ name += value . charAt ( iValue ++ ); for ( var i = 0 ; i < names . length ; i ++ )
if ( name == names [ i ])
return i + 1 ; size -- ;}
throw 'Unknown name at position ' + iInit ;}; var checkLiteral = function (){ if ( value . charAt ( iValue ) != format . charAt ( iFormat ))
throw 'Unexpected literal at position ' + iValue ; iValue ++ ;}; var iValue = 0 ; for ( var iFormat = 0 ; iFormat < format . length ; iFormat ++ ){ if ( literal )
if ( format . charAt ( iFormat ) == "'" &&! lookAhead ( "'" ))
literal = false ; else
checkLiteral (); else
switch ( format . charAt ( iFormat )){ case 'd' : day = getNumber ( 'd' ); break ; case 'D' : getName ( 'D' , dayNamesShort , dayNames ); break ; case 'o' : doy = getNumber ( 'o' ); break ; case 'm' : month = getNumber ( 'm' ); break ; case 'M' : month = getName ( 'M' , monthNamesShort , monthNames ); break ; case 'y' : year = getNumber ( 'y' ); break ; case '@' : var date = new Date ( getNumber ( '@' )); year = date . getFullYear (); month = date . getMonth () + 1 ; day = date . getDate (); break ; case "'" : if ( lookAhead ( "'" ))
checkLiteral (); else
literal = true ; break ; default : checkLiteral ();}}
if ( year ==- 1 )
year = new Date (). getFullYear (); else if ( year < 100 )
year += new Date (). getFullYear () - new Date (). getFullYear () % 100 +
( year <= shortYearCutoff ? 0 :- 100 ); if ( doy >- 1 ){ month = 1 ; day = doy ; do { var dim = this . _getDaysInMonth ( year , month - 1 ); if ( day <= dim )
break ; month ++ ; day -= dim ;} while ( true );}
var date = this . _daylightSavingAdjust ( new Date ( year , month - 1 , day )); if ( date . getFullYear () != year || date . getMonth () + 1 != month || date . getDate () != day )
throw 'Invalid date' ; return date ;}, ATOM : 'yy-mm-dd' , COOKIE : 'D, dd M yy' , ISO_8601 : 'yy-mm-dd' , RFC_822 : 'D, d M y' , RFC_850 : 'DD, dd-M-y' , RFC_1036 : 'D, d M y' , RFC_1123 : 'D, d M yy' , RFC_2822 : 'D, d M yy' , RSS : 'D, d M y' , TIMESTAMP : '@' , W3C : 'yy-mm-dd' , formatDate : function ( format , date , settings ){ if ( ! date )
return '' ; var dayNamesShort = ( settings ? settings . dayNamesShort : null ) || this . _defaults . dayNamesShort ; var dayNames = ( settings ? settings . dayNames : null ) || this . _defaults . dayNames ; var monthNamesShort = ( settings ? settings . monthNamesShort : null ) || this . _defaults . monthNamesShort ; var monthNames = ( settings ? settings . monthNames : null ) || this . _defaults . monthNames ; var lookAhead = function ( match ){ var matches = ( iFormat + 1 < format . length && format . charAt ( iFormat + 1 ) == match ); if ( matches )
iFormat ++ ; return matches ;}; var formatNumber = function ( match , value , len ){ var num = '' + value ; if ( lookAhead ( match ))
while ( num . length < len )
num = '0' + num ; return num ;}; var formatName = function ( match , value , shortNames , longNames ){ return ( lookAhead ( match ) ? longNames [ value ] : shortNames [ value ]);}; var output = '' ; var literal = false ; if ( date )
for ( var iFormat = 0 ; iFormat < format . length ; iFormat ++ ){ if ( literal )
if ( format . charAt ( iFormat ) == "'" &&! lookAhead ( "'" ))
literal = false ; else
output += format . charAt ( iFormat ); else
switch ( format . charAt ( iFormat )){ case 'd' : output += formatNumber ( 'd' , date . getDate (), 2 ); break ; case 'D' : output += formatName ( 'D' , date . getDay (), dayNamesShort , dayNames ); break ; case 'o' : var doy = date . getDate (); for ( var m = date . getMonth () - 1 ; m >= 0 ; m -- )
doy += this . _getDaysInMonth ( date . getFullYear (), m ); output += formatNumber ( 'o' , doy , 3 ); break ; case 'm' : output += formatNumber ( 'm' , date . getMonth () + 1 , 2 ); break ; case 'M' : output += formatName ( 'M' , date . getMonth (), monthNamesShort , monthNames ); break ; case 'y' : output += ( lookAhead ( 'y' ) ? date . getFullYear () : ( date . getYear () % 100 < 10 ? '0' : '' ) + date . getYear () % 100 ); break ; case '@' : output += date . getTime (); break ; case "'" : if ( lookAhead ( "'" ))
output += "'" ; else
literal = true ; break ; default : output += format . charAt ( iFormat );}}
return output ;}, _possibleChars : function ( format ){ var chars = '' ; var literal = false ; for ( var iFormat = 0 ; iFormat < format . length ; iFormat ++ )
if ( literal )
if ( format . charAt ( iFormat ) == "'" &&! lookAhead ( "'" ))
literal = false ; else
chars += format . charAt ( iFormat ); else
switch ( format . charAt ( iFormat )){ case 'd' : case 'm' : case 'y' : case '@' : chars += '0123456789' ; break ; case 'D' : case 'M' : return null ; case "'" : if ( lookAhead ( "'" ))
chars += "'" ; else
literal = true ; break ; default : chars += format . charAt ( iFormat );}
return chars ;}, _get : function ( inst , name ){ return inst . settings [ name ] !== undefined ? inst . settings [ name ] : this . _defaults [ name ];}, _setDateFromField : function ( inst ){ var dateFormat = this . _get ( inst , 'dateFormat' ); var dates = inst . input ? inst . input . val () : null ; inst . endDay = inst . endMonth = inst . endYear = null ; var date = defaultDate = this . _getDefaultDate ( inst ); var settings = this . _getFormatConfig ( inst ); try { date = this . parseDate ( dateFormat , dates , settings ) || defaultDate ;} catch ( event ){ this . log ( event ); date = defaultDate ;}
inst . selectedDay = date . getDate (); inst . drawMonth = inst . selectedMonth = date . getMonth (); inst . drawYear = inst . selectedYear = date . getFullYear (); inst . currentDay = ( dates ? date . getDate () : 0 ); inst . currentMonth = ( dates ? date . getMonth () : 0 ); inst . currentYear = ( dates ? date . getFullYear () : 0 ); this . _adjustInstDate ( inst );}, _getDefaultDate : function ( inst ){ var date = this . _determineDate ( this . _get ( inst , 'defaultDate' ), new Date ()); var minDate = this . _getMinMaxDate ( inst , 'min' , true ); var maxDate = this . _getMinMaxDate ( inst , 'max' ); date = ( minDate && date < minDate ? minDate : date ); date = ( maxDate && date > maxDate ? maxDate : date ); return date ;}, _determineDate : function ( date , defaultDate ){ var offsetNumeric = function ( offset ){ var date = new Date (); date . setDate ( date . getDate () + offset ); return date ;}; var offsetString = function ( offset , getDaysInMonth ){ var date = new Date (); var year = date . getFullYear (); var month = date . getMonth (); var day = date . getDate (); var pattern = /([+-]?[0-9]+)\s*(d|D|w|W|m|M|y|Y)?/g ; var matches = pattern . exec ( offset ); while ( matches ){ switch ( matches [ 2 ] || 'd' ){ case 'd' : case 'D' : day += parseInt ( matches [ 1 ], 10 ); break ; case 'w' : case 'W' : day += parseInt ( matches [ 1 ], 10 ) * 7 ; break ; case 'm' : case 'M' : month += parseInt ( matches [ 1 ], 10 ); day = Math . min ( day , getDaysInMonth ( year , month )); break ; case 'y' : case 'Y' : year += parseInt ( matches [ 1 ], 10 ); day = Math . min ( day , getDaysInMonth ( year , month )); break ;}
matches = pattern . exec ( offset );}
return new Date ( year , month , day );}; date = ( date == null ? defaultDate : ( typeof date == 'string' ? offsetString ( date , this . _getDaysInMonth ) : ( typeof date == 'number' ? ( isNaN ( date ) ? defaultDate : offsetNumeric ( date )) : date ))); date = ( date && date . toString () == 'Invalid Date' ? defaultDate : date ); if ( date ){ date . setHours ( 0 ); date . setMinutes ( 0 ); date . setSeconds ( 0 ); date . setMilliseconds ( 0 );}
return this . _daylightSavingAdjust ( date );}, _daylightSavingAdjust : function ( date ){ if ( ! date ) return null ; date . setHours ( date . getHours () > 12 ? date . getHours () + 2 : 0 ); return date ;}, _setDate : function ( inst , date , endDate ){ var clear =! ( date ); var origMonth = inst . selectedMonth ; var origYear = inst . selectedYear ; date = this . _determineDate ( date , new Date ()); inst . selectedDay = inst . currentDay = date . getDate (); inst . drawMonth = inst . selectedMonth = inst . currentMonth = date . getMonth (); inst . drawYear = inst . selectedYear = inst . currentYear = date . getFullYear (); if ( origMonth != inst . selectedMonth || origYear != inst . selectedYear )
this . _notifyChange ( inst ); this . _adjustInstDate ( inst ); if ( inst . input ){ inst . input . val ( clear ? '' : this . _formatDate ( inst ));}}, _getDate : function ( inst ){ var startDate = ( ! inst . currentYear || ( inst . input && inst . input . val () == '' ) ? null : this . _daylightSavingAdjust ( new Date ( inst . currentYear , inst . currentMonth , inst . currentDay ))); return startDate ;}, _generateHTML : function ( inst ){ var today = new Date (); today = this . _daylightSavingAdjust ( new Date ( today . getFullYear (), today . getMonth (), today . getDate ())); var isRTL = this . _get ( inst , 'isRTL' ); var showButtonPanel = this . _get ( inst , 'showButtonPanel' ); var hideIfNoPrevNext = this . _get ( inst , 'hideIfNoPrevNext' ); var navigationAsDateFormat = this . _get ( inst , 'navigationAsDateFormat' ); var numMonths = this . _getNumberOfMonths ( inst ); var showCurrentAtPos = this . _get ( inst , 'showCurrentAtPos' ); var stepMonths = this . _get ( inst , 'stepMonths' ); var stepBigMonths = this . _get ( inst , 'stepBigMonths' ); var isMultiMonth = ( numMonths [ 0 ] != 1 || numMonths [ 1 ] != 1 ); var currentDate = this . _daylightSavingAdjust (( ! inst . currentDay ? new Date ( 9999 , 9 , 9 ) : new Date ( inst . currentYear , inst . currentMonth , inst . currentDay ))); var minDate = this . _getMinMaxDate ( inst , 'min' , true ); var maxDate = this . _getMinMaxDate ( inst , 'max' ); var drawMonth = inst . drawMonth - showCurrentAtPos ; var drawYear = inst . drawYear ; if ( drawMonth < 0 ){ drawMonth += 12 ; drawYear -- ;}
if ( maxDate ){ var maxDraw = this . _daylightSavingAdjust ( new Date ( maxDate . getFullYear (), maxDate . getMonth () - numMonths [ 1 ] + 1 , maxDate . getDate ())); maxDraw = ( minDate && maxDraw < minDate ? minDate : maxDraw ); while ( this . _daylightSavingAdjust ( new Date ( drawYear , drawMonth , 1 )) > maxDraw ){ drawMonth -- ; if ( drawMonth < 0 ){ drawMonth = 11 ; drawYear -- ;}}}
var prevText = this . _get ( inst , 'prevText' ); prevText = ( ! navigationAsDateFormat ? prevText : this . formatDate ( prevText , this . _daylightSavingAdjust ( new Date ( drawYear , drawMonth - stepMonths , 1 )), this . _getFormatConfig ( inst ))); var prev = ( this . _canAdjustMonth ( inst , - 1 , drawYear , drawMonth ) ? '<a class="ui-datepicker-prev ui-corner-all" onclick="jQuery.datepicker._adjustDate(\'#' + inst . id + '\', -' + stepMonths + ', \'M\');"' + ' title="' + prevText + '"><span class="ui-icon ui-icon-circle-triangle-' + ( isRTL ? 'e' : 'w' ) + '">' + prevText + '</span></a>' : ( hideIfNoPrevNext ? '' : '<a class="ui-datepicker-prev ui-corner-all ui-state-disabled" title="' + prevText + '"><span class="ui-icon ui-icon-circle-triangle-' + ( isRTL ? 'e' : 'w' ) + '">' + prevText + '</span></a>' )); var nextText = this . _get ( inst , 'nextText' ); nextText = ( ! navigationAsDateFormat ? nextText : this . formatDate ( nextText , this . _daylightSavingAdjust ( new Date ( drawYear , drawMonth + stepMonths , 1 )), this . _getFormatConfig ( inst ))); var next = ( this . _canAdjustMonth ( inst , + 1 , drawYear , drawMonth ) ? '<a class="ui-datepicker-next ui-corner-all" onclick="jQuery.datepicker._adjustDate(\'#' + inst . id + '\', +' + stepMonths + ', \'M\');"' + ' title="' + nextText + '"><span class="ui-icon ui-icon-circle-triangle-' + ( isRTL ? 'w' : 'e' ) + '">' + nextText + '</span></a>' : ( hideIfNoPrevNext ? '' : '<a class="ui-datepicker-next ui-corner-all ui-state-disabled" title="' + nextText + '"><span class="ui-icon ui-icon-circle-triangle-' + ( isRTL ? 'w' : 'e' ) + '">' + nextText + '</span></a>' )); var currentText = this . _get ( inst , 'currentText' ); var gotoDate = ( this . _get ( inst , 'gotoCurrent' ) && inst . currentDay ? currentDate : today ); currentText = ( ! navigationAsDateFormat ? currentText : this . formatDate ( currentText , gotoDate , this . _getFormatConfig ( inst ))); var controls = '<button type="button" class="ui-datepicker-close ui-state-default ui-priority-primary ui-corner-all" onclick="jQuery.datepicker._hideDatepicker();">' + this . _get ( inst , 'closeText' ) + '</button>' ; var buttonPanel = ( showButtonPanel ) ? '<div class="ui-datepicker-buttonpane ui-widget-content">' + ( isRTL ? controls : '' ) +
2009-01-16 07:51:31 +00:00
( this . _isInRange ( inst , gotoDate ) ? '<button type="button" class="ui-datepicker-current ui-state-default ui-priority-secondary ui-corner-all" onclick="jQuery.datepicker._gotoToday(\'#' + inst . id + '\');"' + '>' + currentText + '</button>' : '' ) + ( isRTL ? '' : controls ) + '</div>' : '' ; var firstDay = parseInt ( this . _get ( inst , 'firstDay' )); firstDay = ( isNaN ( firstDay ) ? 0 : firstDay ); var dayNames = this . _get ( inst , 'dayNames' ); var dayNamesShort = this . _get ( inst , 'dayNamesShort' ); var dayNamesMin = this . _get ( inst , 'dayNamesMin' ); var monthNames = this . _get ( inst , 'monthNames' ); var monthNamesShort = this . _get ( inst , 'monthNamesShort' ); var beforeShowDay = this . _get ( inst , 'beforeShowDay' ); var showOtherMonths = this . _get ( inst , 'showOtherMonths' ); var calculateWeek = this . _get ( inst , 'calculateWeek' ) || this . iso8601Week ; var endDate = inst . endDay ? this . _daylightSavingAdjust ( new Date ( inst . endYear , inst . endMonth , inst . endDay )) : currentDate ; var defaultDate = this . _getDefaultDate ( inst ); var html = '' ; for ( var row = 0 ; row < numMonths [ 0 ]; row ++ ){ var group = '' ; for ( var col = 0 ; col < numMonths [ 1 ]; col ++ ){ var selectedDate = this . _daylightSavingAdjust ( new Date ( drawYear , drawMonth , inst . selectedDay )); var cornerClass = ' ui-corner-all' ; var calender = '' ; if ( isMultiMonth ){ calender += '<div class="ui-datepicker-group ui-datepicker-group-' ; switch ( col ){ case 0 : calender += 'first' ; cornerClass = ' ui-corner-' + ( isRTL ? 'right' : 'left' ); break ; case numMonths [ 1 ] - 1 : calender += 'last' ; cornerClass = ' ui-corner-' + ( isRTL ? 'left' : 'right' ); break ; default : calender += 'middle' ; cornerClass = '' ; break ;}
2009-01-10 06:25:44 +00:00
calender += '">' ;}
calender += '<div class="ui-datepicker-header ui-widget-header ui-helper-clearfix' + cornerClass + '">' +
( /all|left/ . test ( cornerClass ) && row == 0 ? ( isRTL ? next : prev ) : '' ) +
( /all|right/ . test ( cornerClass ) && row == 0 ? ( isRTL ? prev : next ) : '' ) +
this . _generateMonthYearHeader ( inst , drawMonth , drawYear , minDate , maxDate , selectedDate , row > 0 || col > 0 , monthNames , monthNamesShort ) + '</div><table class="ui-datepicker-calendar"><thead>' + '<tr>' ; var thead = '' ; for ( var dow = 0 ; dow < 7 ; dow ++ ){ var day = ( dow + firstDay ) % 7 ; thead += '<th' + (( dow + firstDay + 6 ) % 7 >= 5 ? ' class="ui-datepicker-week-end"' : '' ) + '>' + '<span title="' + dayNames [ day ] + '">' + dayNamesMin [ day ] + '</span></th>' ;}
calender += thead + '</tr></thead><tbody>' ; var daysInMonth = this . _getDaysInMonth ( drawYear , drawMonth ); if ( drawYear == inst . selectedYear && drawMonth == inst . selectedMonth )
inst . selectedDay = Math . min ( inst . selectedDay , daysInMonth ); var leadDays = ( this . _getFirstDayOfMonth ( drawYear , drawMonth ) - firstDay + 7 ) % 7 ; var numRows = ( isMultiMonth ? 6 : Math . ceil (( leadDays + daysInMonth ) / 7 )); var printDate = this . _daylightSavingAdjust ( new Date ( drawYear , drawMonth , 1 - leadDays )); for ( var dRow = 0 ; dRow < numRows ; dRow ++ ){ calender += '<tr>' ; var tbody = '' ; for ( var dow = 0 ; dow < 7 ; dow ++ ){ var daySettings = ( beforeShowDay ? beforeShowDay . apply (( inst . input ? inst . input [ 0 ] : null ),[ printDate ]) : [ true , '' ]); var otherMonth = ( printDate . getMonth () != drawMonth ); var unselectable = otherMonth ||! daySettings [ 0 ] || ( minDate && printDate < minDate ) || ( maxDate && printDate > maxDate ); tbody += '<td class="' +
(( dow + firstDay + 6 ) % 7 >= 5 ? ' ui-datepicker-week-end' : '' ) +
( otherMonth ? ' ui-datepicker-other-month' : '' ) +
(( printDate . getTime () == selectedDate . getTime () && drawMonth == inst . selectedMonth && inst . _keyEvent ) || ( defaultDate . getTime () == printDate . getTime () && defaultDate . getTime () == selectedDate . getTime ()) ? ' ' + this . _dayOverClass : '' ) +
( unselectable ? ' ' + this . _unselectableClass + ' ui-state-disabled' : '' ) +
( otherMonth &&! showOtherMonths ? '' : ' ' + daySettings [ 1 ] +
( printDate . getTime () >= currentDate . getTime () && printDate . getTime () <= endDate . getTime () ? ' ' + this . _currentClass : '' ) +
( printDate . getTime () == today . getTime () ? ' ui-datepicker-today' : '' )) + '"' +
(( ! otherMonth || showOtherMonths ) && daySettings [ 2 ] ? ' title="' + daySettings [ 2 ] + '"' : '' ) +
( unselectable ? '' : ' onclick="jQuery.datepicker._selectDay(\'#' +
inst . id + '\',' + drawMonth + ',' + drawYear + ', this);return false;"' ) + '>' +
2009-01-16 07:51:31 +00:00
( otherMonth ? ( showOtherMonths ? printDate . getDate () : ' ' ) : ( unselectable ? printDate . getDate () : '<a class="ui-state-default' +
2009-01-10 06:25:44 +00:00
( printDate . getTime () == today . getTime () ? ' ui-state-highlight' : '' ) +
( printDate . getTime () >= currentDate . getTime () && printDate . getTime () <= endDate . getTime () ? ' ui-state-active' : '' ) + '" href="#">' + printDate . getDate () + '</a>' )) + '</td>' ; printDate . setDate ( printDate . getDate () + 1 ); printDate = this . _daylightSavingAdjust ( printDate );}
calender += tbody + '</tr>' ;}
drawMonth ++ ; if ( drawMonth > 11 ){ drawMonth = 0 ; drawYear ++ ;}
calender += '</tbody></table>' + ( isMultiMonth ? '</div>' : '' ); group += calender ;}
html += group ;}
html += ( ! inst . inline ? buttonPanel : '' ) +
( $ . browser . msie && parseInt ( $ . browser . version , 10 ) < 7 &&! inst . inline ? '<iframe src="javascript:false;" class="ui-datepicker-cover" frameborder="0"></iframe>' : '' ); inst . _keyEvent = false ; return html ;}, _generateMonthYearHeader : function ( inst , drawMonth , drawYear , minDate , maxDate , selectedDate , secondary , monthNames , monthNamesShort ){ minDate = ( inst . rangeStart && minDate && selectedDate < minDate ? selectedDate : minDate ); var changeMonth = this . _get ( inst , 'changeMonth' ); var changeYear = this . _get ( inst , 'changeYear' ); var showMonthAfterYear = this . _get ( inst , 'showMonthAfterYear' ); var html = '<div class="ui-datepicker-title">' ; var monthHtml = '' ; if ( secondary ||! changeMonth )
monthHtml += '<span class="ui-datepicker-month">' + monthNames [ drawMonth ] + '</span> ' ; else { var inMinYear = ( minDate && minDate . getFullYear () == drawYear ); var inMaxYear = ( maxDate && maxDate . getFullYear () == drawYear ); monthHtml += '<select class="ui-datepicker-month" ' + 'onchange="jQuery.datepicker._selectMonthYear(\'#' + inst . id + '\', this, \'M\');" ' + 'onclick="jQuery.datepicker._clickMonthYear(\'#' + inst . id + '\');"' + '>' ; for ( var month = 0 ; month < 12 ; month ++ ){ if (( ! inMinYear || month >= minDate . getMonth ()) && ( ! inMaxYear || month <= maxDate . getMonth ()))
monthHtml += '<option value="' + month + '"' +
( month == drawMonth ? ' selected="selected"' : '' ) + '>' + monthNamesShort [ month ] + '</option>' ;}
monthHtml += '</select>' ;}
if ( ! showMonthAfterYear )
html += monthHtml + (( secondary || changeMonth || changeYear ) && ( ! ( changeMonth && changeYear )) ? ' ' : '' ); if ( secondary ||! changeYear )
html += '<span class="ui-datepicker-year">' + drawYear + '</span>' ; else { var years = this . _get ( inst , 'yearRange' ). split ( ':' ); var year = 0 ; var endYear = 0 ; if ( years . length != 2 ){ year = drawYear - 10 ; endYear = drawYear + 10 ;} else if ( years [ 0 ]. charAt ( 0 ) == '+' || years [ 0 ]. charAt ( 0 ) == '-' ){ year = endYear = new Date (). getFullYear (); year += parseInt ( years [ 0 ], 10 ); endYear += parseInt ( years [ 1 ], 10 );} else { year = parseInt ( years [ 0 ], 10 ); endYear = parseInt ( years [ 1 ], 10 );}
year = ( minDate ? Math . max ( year , minDate . getFullYear ()) : year ); endYear = ( maxDate ? Math . min ( endYear , maxDate . getFullYear ()) : endYear ); html += '<select class="ui-datepicker-year" ' + 'onchange="jQuery.datepicker._selectMonthYear(\'#' + inst . id + '\', this, \'Y\');" ' + 'onclick="jQuery.datepicker._clickMonthYear(\'#' + inst . id + '\');"' + '>' ; for (; year <= endYear ; year ++ ){ html += '<option value="' + year + '"' +
( year == drawYear ? ' selected="selected"' : '' ) + '>' + year + '</option>' ;}
html += '</select>' ;}
if ( showMonthAfterYear )
html += ( secondary || changeMonth || changeYear ? ' ' : '' ) + monthHtml ; html += '</div>' ; return html ;}, _adjustInstDate : function ( inst , offset , period ){ var year = inst . drawYear + ( period == 'Y' ? offset : 0 ); var month = inst . drawMonth + ( period == 'M' ? offset : 0 ); var day = Math . min ( inst . selectedDay , this . _getDaysInMonth ( year , month )) +
( period == 'D' ? offset : 0 ); var date = this . _daylightSavingAdjust ( new Date ( year , month , day )); var minDate = this . _getMinMaxDate ( inst , 'min' , true ); var maxDate = this . _getMinMaxDate ( inst , 'max' ); date = ( minDate && date < minDate ? minDate : date ); date = ( maxDate && date > maxDate ? maxDate : date ); inst . selectedDay = date . getDate (); inst . drawMonth = inst . selectedMonth = date . getMonth (); inst . drawYear = inst . selectedYear = date . getFullYear (); if ( period == 'M' || period == 'Y' )
this . _notifyChange ( inst );}, _notifyChange : function ( inst ){ var onChange = this . _get ( inst , 'onChangeMonthYear' ); if ( onChange )
onChange . apply (( inst . input ? inst . input [ 0 ] : null ),[ inst . selectedYear , inst . selectedMonth + 1 , inst ]);}, _getNumberOfMonths : function ( inst ){ var numMonths = this . _get ( inst , 'numberOfMonths' ); return ( numMonths == null ? [ 1 , 1 ] : ( typeof numMonths == 'number' ? [ 1 , numMonths ] : numMonths ));}, _getMinMaxDate : function ( inst , minMax , checkRange ){ var date = this . _determineDate ( this . _get ( inst , minMax + 'Date' ), null ); return ( ! checkRange ||! inst . rangeStart ? date : ( ! date || inst . rangeStart > date ? inst . rangeStart : date ));}, _getDaysInMonth : function ( year , month ){ return 32 - new Date ( year , month , 32 ). getDate ();}, _getFirstDayOfMonth : function ( year , month ){ return new Date ( year , month , 1 ). getDay ();}, _canAdjustMonth : function ( inst , offset , curYear , curMonth ){ var numMonths = this . _getNumberOfMonths ( inst ); var date = this . _daylightSavingAdjust ( new Date ( curYear , curMonth + ( offset < 0 ? offset : numMonths [ 1 ]), 1 )); if ( offset < 0 )
date . setDate ( this . _getDaysInMonth ( date . getFullYear (), date . getMonth ())); return this . _isInRange ( inst , date );}, _isInRange : function ( inst , date ){ var newMinDate = ( ! inst . rangeStart ? null : this . _daylightSavingAdjust ( new Date ( inst . selectedYear , inst . selectedMonth , inst . selectedDay ))); newMinDate = ( newMinDate && inst . rangeStart < newMinDate ? inst . rangeStart : newMinDate ); var minDate = newMinDate || this . _getMinMaxDate ( inst , 'min' ); var maxDate = this . _getMinMaxDate ( inst , 'max' ); return (( ! minDate || date >= minDate ) && ( ! maxDate || date <= maxDate ));}, _getFormatConfig : function ( inst ){ var shortYearCutoff = this . _get ( inst , 'shortYearCutoff' ); shortYearCutoff = ( typeof shortYearCutoff != 'string' ? shortYearCutoff : new Date (). getFullYear () % 100 + parseInt ( shortYearCutoff , 10 )); return { shortYearCutoff : shortYearCutoff , dayNamesShort : this . _get ( inst , 'dayNamesShort' ), dayNames : this . _get ( inst , 'dayNames' ), monthNamesShort : this . _get ( inst , 'monthNamesShort' ), monthNames : this . _get ( inst , 'monthNames' )};}, _formatDate : function ( inst , day , month , year ){ if ( ! day ){ inst . currentDay = inst . selectedDay ; inst . currentMonth = inst . selectedMonth ; inst . currentYear = inst . selectedYear ;}
var date = ( day ? ( typeof day == 'object' ? day : this . _daylightSavingAdjust ( new Date ( year , month , day ))) : this . _daylightSavingAdjust ( new Date ( inst . currentYear , inst . currentMonth , inst . currentDay ))); return this . formatDate ( this . _get ( inst , 'dateFormat' ), date , this . _getFormatConfig ( inst ));}}); function extendRemove ( target , props ){ $ . extend ( target , props ); for ( var name in props )
if ( props [ name ] == null || props [ name ] == undefined )
target [ name ] = props [ name ]; return target ;}; function isArray ( a ){ return ( a && (( $ . browser . safari && typeof a == 'object' && a . length ) || ( a . constructor && a . constructor . toString (). match ( /\Array\(\)/ ))));}; $ . fn . datepicker = function ( options ){ if ( ! $ . datepicker . initialized ){ $ ( document . body ). append ( $ . datepicker . dpDiv ). mousedown ( $ . datepicker . _checkExternalClick ); $ . datepicker . initialized = true ;}
var otherArgs = Array . prototype . slice . call ( arguments , 1 ); if ( typeof options == 'string' && ( options == 'isDisabled' || options == 'getDate' ))
2009-01-16 07:51:31 +00:00
return $ . datepicker [ '_' + options + 'Datepicker' ]. apply ( $ . datepicker ,[ this [ 0 ]]. concat ( otherArgs )); return this . each ( function (){ typeof options == 'string' ? $ . datepicker [ '_' + options + 'Datepicker' ]. apply ( $ . datepicker ,[ this ]. concat ( otherArgs )) : $ . datepicker . _attachDatepicker ( this , options );});}; $ . datepicker = new Datepicker (); $ . datepicker . initialized = false ; $ . datepicker . uuid = new Date (). getTime (); $ . datepicker . version = "1.6rc4" ;})( jQuery );( function ( $ ){ $ . widget ( "ui.progressbar" ,{ _init : function (){ var self = this , options = this . options ; this . element . addClass ( "ui-progressbar"
2009-01-10 06:25:44 +00:00
+ " 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 ){ arguments . length && this . _setData ( "value" , newValue ); return this . _value ();}, _setData : function ( key , value ){ switch ( key ){ case 'value' : this . options . value = value ; this . _refreshValue (); this . _trigger ( 'change' , null ,{}); break ;}
2009-01-16 07:51:31 +00:00
$ . 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.6rc4" , defaults : { value : 0 }});})( jQuery );;( function ( $ ){ $ . effects = $ . effects || {}; $ . extend ( $ . effects ,{ version : "1.6rc4" , save : function ( el , set ){ for ( var i = 0 ; i < set . length ; i ++ ){ if ( set [ i ] !== null ) $ . data ( el [ 0 ], "ec.storage." + set [ i ], el [ 0 ]. style [ set [ i ]]);}}, restore : function ( el , set ){ for ( var i = 0 ; i < set . length ; i ++ ){ if ( set [ i ] !== null ) el . css ( set [ i ], $ . data ( el [ 0 ], "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 ( el ){ if ( el . parent (). attr ( 'id' ) == 'fxWrapper' )
return el ; var props = { width : el . outerWidth ({ margin : true }), height : el . outerHeight ({ margin : true }), 'float' : el . css ( 'float' )}; el . wrap ( '<div id="fxWrapper" style="font-size:100%;background:transparent;border:none;margin:0;padding:0"></div>' ); var wrapper = el . parent (); if ( el . css ( 'position' ) == 'static' ){ wrapper . css ({ position : 'relative' }); el . css ({ position : 'relative' });} else { var top = el . css ( 'top' ); if ( isNaN ( parseInt ( top ))) top = 'auto' ; var left = el . css ( 'left' ); if ( isNaN ( parseInt ( left ))) left = 'auto' ; wrapper . css ({ position : el . css ( 'position' ), top : top , left : left , zIndex : el . css ( 'z-index' )}). show (); el . css ({ position : 'relative' , top : 0 , left : 0 });}
wrapper . css ( props ); return wrapper ;}, removeWrapper : function ( el ){ if ( el . parent (). attr ( 'id' ) == 'fxWrapper' )
return el . parent (). replaceWith ( el ); return el ;}, setTransition : function ( el , list , factor , val ){ val = val || {}; $ . each ( list , function ( i , x ){ unit = el . cssUnit ( x ); if ( unit [ 0 ] > 0 ) val [ x ] = unit [ 0 ] * factor + unit [ 1 ];}); return val ;}, animateClass : function ( value , duration , easing , callback ){ var cb = ( typeof easing == "function" ? easing : ( callback ? callback : null )); var ea = ( typeof easing == "object" ? 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 ;}
2009-01-10 06:25:44 +00:00
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 ];}
2009-01-16 07:51:31 +00:00
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 );});});}}); $ . fn . extend ({ _show : $ . fn . show , _hide : $ . fn . hide , __toggle : $ . fn . toggle , _addClass : $ . fn . addClass , _removeClass : $ . fn . removeClass , _toggleClass : $ . fn . toggleClass , effect : function ( fx , o , speed , callback ){ return $ . effects [ fx ] ? $ . effects [ fx ]. call ( this ,{ method : fx , options : o || {}, 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 { var o = arguments [ 1 ] || {}; o [ 'mode' ] = 'show' ; return this . effect . apply ( this ,[ arguments [ 0 ], o , arguments [ 2 ] || o . duration , arguments [ 3 ] || o . callback ]);}}, hide : function (){ if ( ! arguments [ 0 ] || ( arguments [ 0 ]. constructor == Number || /(slow|normal|fast)/ . test ( arguments [ 0 ])))
return this . _hide . apply ( this , arguments ); else { var o = arguments [ 1 ] || {}; o [ 'mode' ] = 'hide' ; return this . effect . apply ( this ,[ arguments [ 0 ], o , arguments [ 2 ] || o . duration , arguments [ 3 ] || o . callback ]);}}, toggle : function (){ if ( ! arguments [ 0 ] || ( arguments [ 0 ]. constructor == Number || /(slow|normal|fast)/ . test ( arguments [ 0 ])) || ( arguments [ 0 ]. constructor == Function ))
2009-01-10 06:25:44 +00:00
return this . __toggle . apply ( this , arguments ); else { var o = arguments [ 1 ] || {}; o [ 'mode' ] = 'toggle' ; return this . effect . apply ( this ,[ arguments [ 0 ], o , arguments [ 2 ] || o . duration , arguments [ 3 ] || o . callback ]);}}, 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 speed ? $ . effects . animateClass . apply ( this ,[{ toggle : classNames }, speed , easing , callback ]) : this . _toggleClass ( classNames );}, 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 );}
2009-01-16 07:51:31 +00:00
fx . elem . style [ attr ] = "rgb(" + [ Math . max ( Math . min ( parseInt (( fx . pos * ( fx . end [ 0 ] - fx . start [ 0 ])) + fx . start [ 0 ]), 255 ), 0 ), Math . max ( Math . min ( parseInt (( fx . pos * ( fx . end [ 1 ] - fx . start [ 1 ])) + fx . start [ 1 ]), 255 ), 0 ), Math . max ( Math . min ( parseInt (( fx . pos * ( fx . end [ 2 ] - fx . start [ 2 ])) + fx . start [ 2 ]), 255 ), 0 )]. join ( "," ) + ")" ;}}); function getRGB ( color ){ var result ; if ( color && color . constructor == Array && color . length == 3 )
2009-01-10 06:25:44 +00:00
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 ))
2009-01-16 07:51:31 +00:00
return [ parseInt ( result [ 1 ]), parseInt ( result [ 2 ]), parseInt ( result [ 3 ])]; if ( result = /rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/ . exec ( color ))
2009-01-10 06:25:44 +00:00
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 ;}
2009-01-10 07:32:25 +00:00
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 el = $ ( this ); var mode = $ . effects . setMode ( el , o . options . mode || 'effect' ); var target = $ ( o . options . to ); var position = el . offset (); var transfer = $ ( '<div class="ui-effects-transfer"></div>' ). appendTo ( document . body ); if ( o . options . className ) transfer . addClass ( o . options . className ); transfer . addClass ( o . options . className ); transfer . css ({ top : position . top , left : position . left , height : el . outerHeight () - parseInt ( transfer . css ( 'borderTopWidth' )) - parseInt ( transfer . css ( 'borderBottomWidth' )), width : el . outerWidth () - parseInt ( transfer . css ( 'borderLeftWidth' )) - parseInt ( transfer . css ( 'borderRightWidth' )), position : 'absolute' }); position = target . offset (); animation = { top : position . top , left : position . left , height : target . outerHeight () - parseInt ( transfer . css ( 'borderTopWidth' )) - parseInt ( transfer . css ( 'borderBottomWidth' )), width : target . outerWidth () - parseInt ( transfer . css ( 'borderLeftWidth' )) - parseInt ( transfer . css ( 'borderRightWidth' ))}; transfer . animate ( animation , o . duration , o . options . easing , function (){ transfer . remove (); if ( o . callback ) o . callback . apply ( el [ 0 ], arguments ); el . dequeue ();});});};})( jQuery );