2008-10-01 11:52:39 +00:00
/ *
2008-06-09 08:55:06 +00:00
* jQuery UI Effects @ VERSION
2008-06-06 20:08:52 +00:00
*
* Copyright ( c ) 2008 Aaron Eisenberger ( aaronchi @ gmail . com )
* Dual licensed under the MIT ( MIT - LICENSE . txt )
* and GPL ( GPL - LICENSE . txt ) licenses .
2008-09-19 14:20:14 +00:00
*
2008-06-06 20:08:52 +00:00
* http : //docs.jquery.com/UI/Effects/
* /
2008-05-23 09:26:18 +00:00
; ( function ( $ ) {
2008-06-06 19:54:38 +00:00
$ . effects = $ . effects || { } ; //Add the 'effects' scope
2008-05-23 09:26:18 +00:00
2008-06-06 19:47:31 +00:00
$ . extend ( $ . effects , {
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' ; // Set for toggle
return mode ;
} ,
getBaseline : function ( origin , original ) { // Translates a [top,left] array into a baseline value
// this should be a little more flexible in the future to handle a string & hash
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 {
2008-06-30 18:52:57 +00:00
var top = el . css ( 'top' ) ; if ( isNaN ( parseInt ( top ) ) ) top = 'auto' ;
var left = el . css ( 'left' ) ; if ( isNaN ( parseInt ( left ) ) ) left = 'auto' ;
2008-06-06 19:47:31 +00:00
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" ] ; /* Stupidly in IE, style is a object.. */
if ( value . toggle ) { that . hasClass ( value . toggle ) ? value . remove = value . toggle : value . add = value . toggle ; }
//Let's get a style offset
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 ) ;
// The main function to form the object for animation
for ( var n in newStyle ) {
if ( typeof newStyle [ n ] != "function" && newStyle [ n ] /* No functions and null properties */
&& n . indexOf ( "Moz" ) == - 1 && n . indexOf ( "length" ) == - 1 /* No mozilla spezific render properties. */
&& newStyle [ n ] != oldStyle [ n ] /* Only values that have changed are used for the animation */
&& ( n . match ( /color/i ) || ( ! n . match ( /color/i ) && ! isNaN ( parseInt ( newStyle [ n ] , 10 ) ) ) ) /* Only things that can be parsed to integers or colors */
&& ( oldStyle . position != "static" || ( oldStyle . position == "static" && ! n . match ( /left|top|bottom|right/ ) ) ) /* No need for positions when dealing with static positions */
) offset [ n ] = newStyle [ n ] ;
}
that . animate ( offset , duration , ea , function ( ) { // Animate the newly constructed offset object
// Change style attribute back to original. For stupid IE, we need to clear the damn object.
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 ) ;
} ) ;
} ) ;
}
} ) ;
//Extend the methods of jQuery
$ . fn . extend ( {
//Save old methods
_show : $ . fn . show ,
_hide : $ . fn . hide ,
_ _toggle : $ . fn . toggle ,
_addClass : $ . fn . addClass ,
_removeClass : $ . fn . removeClass ,
_toggleClass : $ . fn . toggleClass ,
// New ec methods
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 ) )
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 ) ;
} ,
// helper functions
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 ;
}
} ) ;
/ *
* jQuery Color Animations
* Copyright 2007 John Resig
* Released under the MIT and GPL licenses .
* /
// We override the animation for all of these color styles
jQuery . each ( [ 'backgroundColor' , 'borderBottomColor' , 'borderLeftColor' , 'borderRightColor' , 'borderTopColor' , 'color' , 'outlineColor' ] , function ( i , attr ) {
jQuery . fx . step [ attr ] = function ( fx ) {
if ( fx . state == 0 ) {
fx . start = getColor ( fx . elem , attr ) ;
fx . end = getRGB ( fx . end ) ;
}
fx . elem . style [ attr ] = "rgb(" + [
Math . max ( Math . min ( parseInt ( ( fx . pos * ( fx . end [ 0 ] - fx . start [ 0 ] ) ) + fx . start [ 0 ] ) , 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 ( "," ) + ")" ;
}
} ) ;
// Color Conversion functions from highlightFade
// By Blair Mitchelmore
// http://jquery.offput.ca/highlightFade/
// Parse strings looking for color tuples [255,255,255]
function getRGB ( color ) {
var result ;
// Check if we're already dealing with an array of colors
if ( color && color . constructor == Array && color . length == 3 )
return color ;
// Look for rgb(num,num,num)
if ( result = /rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/ . exec ( color ) )
return [ parseInt ( result [ 1 ] ) , parseInt ( result [ 2 ] ) , parseInt ( result [ 3 ] ) ] ;
// Look for rgb(num%,num%,num%)
if ( result = /rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/ . exec ( color ) )
return [ parseFloat ( result [ 1 ] ) * 2.55 , parseFloat ( result [ 2 ] ) * 2.55 , parseFloat ( result [ 3 ] ) * 2.55 ] ;
// Look for #a0b1c2
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 ) ] ;
// Look for #fff
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 ) ] ;
// Look for rgba(0, 0, 0, 0) == transparent in Safari 3
if ( result = /rgba\(0, 0, 0, 0\)/ . exec ( color ) )
2008-10-01 11:52:39 +00:00
return colors [ 'transparent' ] ;
2008-06-06 19:47:31 +00:00
// Otherwise, we're most likely dealing with a named color
return colors [ jQuery . trim ( color ) . toLowerCase ( ) ] ;
}
function getColor ( elem , attr ) {
var color ;
do {
color = jQuery . curCSS ( elem , attr ) ;
// Keep going until we find an element that has color, or we hit the body
if ( color != '' && color != 'transparent' || jQuery . nodeName ( elem , "body" ) )
break ;
attr = "backgroundColor" ;
} while ( elem = elem . parentNode ) ;
return getRGB ( color ) ;
} ;
// Some named colors to work with
// From Interface by Stefan Petre
// http://interface.eyecon.ro/
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 ]
} ;
2008-09-19 14:20:14 +00:00
2008-05-23 09:26:18 +00:00
/ *
* jQuery Easing v1 . 3 - http : //gsgd.co.uk/sandbox/jquery/easing/
*
* Uses the built in easing capabilities added In jQuery 1.1
* to offer multiple easing options
*
* TERMS OF USE - jQuery Easing
2008-09-19 14:20:14 +00:00
*
* Open source under the BSD License .
*
2008-06-06 19:47:31 +00:00
* Copyright © 2008 George McGinley Smith
2008-05-23 09:26:18 +00:00
* All rights reserved .
2008-09-19 14:20:14 +00:00
*
2008-09-20 03:23:42 +00:00
* Redistribution and use in source and binary forms , with or without modification ,
2008-05-23 09:26:18 +00:00
* are permitted provided that the following conditions are met :
2008-09-19 14:20:14 +00:00
*
* Redistributions of source code must retain the above copyright notice , this list of
2008-05-23 09:26:18 +00:00
* conditions and the following disclaimer .
2008-09-19 14:20:14 +00:00
* Redistributions in binary form must reproduce the above copyright notice , this list
* of conditions and the following disclaimer in the documentation and / or other materials
2008-05-23 09:26:18 +00:00
* provided with the distribution .
2008-09-19 14:20:14 +00:00
*
* Neither the name of the author nor the names of contributors may be used to endorse
2008-05-23 09:26:18 +00:00
* or promote products derived from this software without specific prior written permission .
2008-09-19 14:20:14 +00:00
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
2008-05-23 09:26:18 +00:00
* EXPRESS OR IMPLIED WARRANTIES , INCLUDING , BUT NOT LIMITED TO , THE IMPLIED WARRANTIES OF
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED . IN NO EVENT SHALL THE
2008-06-06 19:47:31 +00:00
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT , INDIRECT , INCIDENTAL , SPECIAL ,
* EXEMPLARY , OR CONSEQUENTIAL DAMAGES ( INCLUDING , BUT NOT LIMITED TO , PROCUREMENT OF SUBSTITUTE
2008-09-19 14:20:14 +00:00
* GOODS OR SERVICES ; LOSS OF USE , DATA , OR PROFITS ; OR BUSINESS INTERRUPTION ) HOWEVER CAUSED
2008-05-23 09:26:18 +00:00
* AND ON ANY THEORY OF LIABILITY , WHETHER IN CONTRACT , STRICT LIABILITY , OR TORT ( INCLUDING
2008-09-19 14:20:14 +00:00
* NEGLIGENCE OR OTHERWISE ) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE , EVEN IF ADVISED
* OF THE POSSIBILITY OF SUCH DAMAGE .
2008-05-23 09:26:18 +00:00
*
* /
// t: current time, b: begInnIng value, c: change In value, d: duration
jQuery . easing [ 'jswing' ] = jQuery . easing [ 'swing' ] ;
jQuery . extend ( jQuery . easing ,
{
def : 'easeOutQuad' ,
swing : function ( x , t , b , c , d ) {
//alert(jQuery.easing.default);
return jQuery . easing [ jQuery . easing . def ] ( x , t , b , c , d ) ;
} ,
easeInQuad : function ( x , t , b , c , d ) {
return c * ( t /= d ) * t + b ;
} ,
easeOutQuad : function ( x , t , b , c , d ) {
return - c * ( t /= d ) * ( t - 2 ) + b ;
} ,
easeInOutQuad : function ( x , t , b , c , d ) {
if ( ( t /= d / 2 ) < 1 ) return c / 2 * t * t + b ;
return - c / 2 * ( ( -- t ) * ( t - 2 ) - 1 ) + b ;
} ,
easeInCubic : function ( x , t , b , c , d ) {
return c * ( t /= d ) * t * t + b ;
} ,
easeOutCubic : function ( x , t , b , c , d ) {
return c * ( ( t = t / d - 1 ) * t * t + 1 ) + b ;
} ,
easeInOutCubic : function ( x , t , b , c , d ) {
if ( ( t /= d / 2 ) < 1 ) return c / 2 * t * t * t + b ;
return c / 2 * ( ( t -= 2 ) * t * t + 2 ) + b ;
} ,
easeInQuart : function ( x , t , b , c , d ) {
return c * ( t /= d ) * t * t * t + b ;
} ,
easeOutQuart : function ( x , t , b , c , d ) {
return - c * ( ( t = t / d - 1 ) * t * t * t - 1 ) + b ;
} ,
easeInOutQuart : function ( x , t , b , c , d ) {
if ( ( t /= d / 2 ) < 1 ) return c / 2 * t * t * t * t + b ;
return - c / 2 * ( ( t -= 2 ) * t * t * t - 2 ) + b ;
} ,
easeInQuint : function ( x , t , b , c , d ) {
return c * ( t /= d ) * t * t * t * t + b ;
} ,
easeOutQuint : function ( x , t , b , c , d ) {
return c * ( ( t = t / d - 1 ) * t * t * t * t + 1 ) + b ;
} ,
easeInOutQuint : function ( x , t , b , c , d ) {
if ( ( t /= d / 2 ) < 1 ) return c / 2 * t * t * t * t * t + b ;
return c / 2 * ( ( t -= 2 ) * t * t * t * t + 2 ) + b ;
} ,
easeInSine : function ( x , t , b , c , d ) {
return - c * Math . cos ( t / d * ( Math . PI / 2 ) ) + c + b ;
} ,
easeOutSine : function ( x , t , b , c , d ) {
return c * Math . sin ( t / d * ( Math . PI / 2 ) ) + b ;
} ,
easeInOutSine : function ( x , t , b , c , d ) {
return - c / 2 * ( Math . cos ( Math . PI * t / d ) - 1 ) + b ;
} ,
easeInExpo : function ( x , t , b , c , d ) {
return ( t == 0 ) ? b : c * Math . pow ( 2 , 10 * ( t / d - 1 ) ) + b ;
} ,
easeOutExpo : function ( x , t , b , c , d ) {
return ( t == d ) ? b + c : c * ( - Math . pow ( 2 , - 10 * t / d ) + 1 ) + b ;
} ,
easeInOutExpo : function ( x , t , b , c , d ) {
if ( t == 0 ) return b ;
if ( t == d ) return b + c ;
if ( ( t /= d / 2 ) < 1 ) return c / 2 * Math . pow ( 2 , 10 * ( t - 1 ) ) + b ;
return c / 2 * ( - Math . pow ( 2 , - 10 * -- t ) + 2 ) + b ;
} ,
easeInCirc : function ( x , t , b , c , d ) {
return - c * ( Math . sqrt ( 1 - ( t /= d ) * t ) - 1 ) + b ;
} ,
easeOutCirc : function ( x , t , b , c , d ) {
return c * Math . sqrt ( 1 - ( t = t / d - 1 ) * t ) + b ;
} ,
easeInOutCirc : function ( x , t , b , c , d ) {
if ( ( t /= d / 2 ) < 1 ) return - c / 2 * ( Math . sqrt ( 1 - t * t ) - 1 ) + b ;
return c / 2 * ( Math . sqrt ( 1 - ( t -= 2 ) * t ) + 1 ) + b ;
} ,
easeInElastic : function ( x , t , b , c , d ) {
var s = 1.70158 ; var p = 0 ; var a = c ;
if ( t == 0 ) return b ; if ( ( t /= d ) == 1 ) return b + c ; if ( ! p ) p = d * . 3 ;
if ( a < Math . abs ( c ) ) { a = c ; var s = p / 4 ; }
else var s = p / ( 2 * Math . PI ) * Math . asin ( c / a ) ;
return - ( a * Math . pow ( 2 , 10 * ( t -= 1 ) ) * Math . sin ( ( t * d - s ) * ( 2 * Math . PI ) / p ) ) + b ;
} ,
easeOutElastic : function ( x , t , b , c , d ) {
var s = 1.70158 ; var p = 0 ; var a = c ;
if ( t == 0 ) return b ; if ( ( t /= d ) == 1 ) return b + c ; if ( ! p ) p = d * . 3 ;
if ( a < Math . abs ( c ) ) { a = c ; var s = p / 4 ; }
else var s = p / ( 2 * Math . PI ) * Math . asin ( c / a ) ;
return a * Math . pow ( 2 , - 10 * t ) * Math . sin ( ( t * d - s ) * ( 2 * Math . PI ) / p ) + c + b ;
} ,
easeInOutElastic : function ( x , t , b , c , d ) {
var s = 1.70158 ; var p = 0 ; var a = c ;
if ( t == 0 ) return b ; if ( ( t /= d / 2 ) == 2 ) return b + c ; if ( ! p ) p = d * ( . 3 * 1.5 ) ;
if ( a < Math . abs ( c ) ) { a = c ; var s = p / 4 ; }
else var s = p / ( 2 * Math . PI ) * Math . asin ( c / a ) ;
if ( t < 1 ) return - . 5 * ( a * Math . pow ( 2 , 10 * ( t -= 1 ) ) * Math . sin ( ( t * d - s ) * ( 2 * Math . PI ) / p ) ) + b ;
return a * Math . pow ( 2 , - 10 * ( t -= 1 ) ) * Math . sin ( ( t * d - s ) * ( 2 * Math . PI ) / p ) * . 5 + c + b ;
} ,
easeInBack : function ( x , t , b , c , d , s ) {
if ( s == undefined ) s = 1.70158 ;
return c * ( t /= d ) * t * ( ( s + 1 ) * t - s ) + b ;
} ,
easeOutBack : function ( x , t , b , c , d , s ) {
if ( s == undefined ) s = 1.70158 ;
return c * ( ( t = t / d - 1 ) * t * ( ( s + 1 ) * t + s ) + 1 ) + b ;
} ,
easeInOutBack : function ( x , t , b , c , d , s ) {
2008-09-20 03:23:42 +00:00
if ( s == undefined ) s = 1.70158 ;
2008-05-23 09:26:18 +00:00
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 - jQuery . 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 jQuery . easing . easeInBounce ( x , t * 2 , 0 , c , d ) * . 5 + b ;
return jQuery . easing . easeOutBounce ( x , t * 2 - d , 0 , c , d ) * . 5 + c * . 5 + b ;
}
} ) ;
/ *
*
* TERMS OF USE - EASING EQUATIONS
2008-09-19 14:20:14 +00:00
*
* Open source under the BSD License .
*
2008-06-06 19:47:31 +00:00
* Copyright © 2001 Robert Penner
2008-05-23 09:26:18 +00:00
* All rights reserved .
2008-09-19 14:20:14 +00:00
*
2008-09-20 03:23:42 +00:00
* Redistribution and use in source and binary forms , with or without modification ,
2008-05-23 09:26:18 +00:00
* are permitted provided that the following conditions are met :
2008-09-19 14:20:14 +00:00
*
* Redistributions of source code must retain the above copyright notice , this list of
2008-05-23 09:26:18 +00:00
* conditions and the following disclaimer .
2008-09-19 14:20:14 +00:00
* Redistributions in binary form must reproduce the above copyright notice , this list
* of conditions and the following disclaimer in the documentation and / or other materials
2008-05-23 09:26:18 +00:00
* provided with the distribution .
2008-09-19 14:20:14 +00:00
*
* Neither the name of the author nor the names of contributors may be used to endorse
2008-05-23 09:26:18 +00:00
* or promote products derived from this software without specific prior written permission .
2008-09-19 14:20:14 +00:00
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
2008-05-23 09:26:18 +00:00
* EXPRESS OR IMPLIED WARRANTIES , INCLUDING , BUT NOT LIMITED TO , THE IMPLIED WARRANTIES OF
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED . IN NO EVENT SHALL THE
2008-06-06 19:47:31 +00:00
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT , INDIRECT , INCIDENTAL , SPECIAL ,
* EXEMPLARY , OR CONSEQUENTIAL DAMAGES ( INCLUDING , BUT NOT LIMITED TO , PROCUREMENT OF SUBSTITUTE
2008-09-19 14:20:14 +00:00
* GOODS OR SERVICES ; LOSS OF USE , DATA , OR PROFITS ; OR BUSINESS INTERRUPTION ) HOWEVER CAUSED
2008-05-23 09:26:18 +00:00
* AND ON ANY THEORY OF LIABILITY , WHETHER IN CONTRACT , STRICT LIABILITY , OR TORT ( INCLUDING
2008-09-19 14:20:14 +00:00
* NEGLIGENCE OR OTHERWISE ) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE , EVEN IF ADVISED
* OF THE POSSIBILITY OF SUCH DAMAGE .
2008-05-23 09:26:18 +00:00
*
* /
2008-06-06 19:47:31 +00:00
} ) ( jQuery ) ;