src/cm/media/js/lib/yui/yui_3.0.0b1/build/anim/anim-easing.js
author raph
Mon, 23 Nov 2009 15:14:29 +0100
changeset 0 40c8f766c9b8
permissions -rw-r--r--
import from internal svn r 4007
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     1
/*
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     2
Copyright (c) 2009, Yahoo! Inc. All rights reserved.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     3
Code licensed under the BSD License:
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     4
http://developer.yahoo.net/yui/license.txt
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     5
version: 3.0.0b1
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     6
build: 1163
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     7
*/
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     8
YUI.add('anim-easing', function(Y) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     9
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    10
/*
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    11
TERMS OF USE - EASING EQUATIONS
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    12
Open source under the BSD License.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    13
Copyright 2001 Robert Penner All rights reserved.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    14
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    15
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    16
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    17
 * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    18
 * 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 provided with the distribution.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    19
 * Neither the name of the author nor the names of contributors may be used to endorse or promote products derived from this software without specific prior written permission.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    20
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    21
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY 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 COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    22
*/
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    23
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    24
/**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    25
 * The easing module provides methods for customizing
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    26
 * how an animation behaves during each run.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    27
 * @class Easing
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    28
 * @module anim
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    29
 * @submodule anim-easing
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    30
 */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    31
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    32
Y.Easing = {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    33
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    34
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    35
     * Uniform speed between points.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    36
     * @for Easing
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    37
     * @method easeNone
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    38
     * @param {Number} t Time value used to compute current value
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    39
     * @param {Number} b Starting value
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    40
     * @param {Number} c Delta between start and end values
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    41
     * @param {Number} d Total length of animation
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    42
     * @return {Number} The computed value for the current animation frame
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    43
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    44
    easeNone: function (t, b, c, d) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    45
        return c*t/d + b;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    46
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    47
    
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    48
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    49
     * Begins slowly and accelerates towards end. (quadratic)
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    50
     * @method easeIn
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    51
     * @param {Number} t Time value used to compute current value
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    52
     * @param {Number} b Starting value
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    53
     * @param {Number} c Delta between start and end values
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    54
     * @param {Number} d Total length of animation
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    55
     * @return {Number} The computed value for the current animation frame
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    56
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    57
    easeIn: function (t, b, c, d) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    58
        return c*(t/=d)*t + b;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    59
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    60
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    61
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    62
     * Begins quickly and decelerates towards end.  (quadratic)
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    63
     * @method easeOut
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    64
     * @param {Number} t Time value used to compute current value
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    65
     * @param {Number} b Starting value
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    66
     * @param {Number} c Delta between start and end values
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    67
     * @param {Number} d Total length of animation
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    68
     * @return {Number} The computed value for the current animation frame
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    69
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    70
    easeOut: function (t, b, c, d) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    71
        return -c *(t/=d)*(t-2) + b;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    72
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    73
    
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    74
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    75
     * Begins slowly and decelerates towards end. (quadratic)
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    76
     * @method easeBoth
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    77
     * @param {Number} t Time value used to compute current value
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    78
     * @param {Number} b Starting value
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    79
     * @param {Number} c Delta between start and end values
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    80
     * @param {Number} d Total length of animation
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    81
     * @return {Number} The computed value for the current animation frame
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    82
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    83
    easeBoth: function (t, b, c, d) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    84
        if ((t/=d/2) < 1) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    85
            return c/2*t*t + b;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    86
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    87
        
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    88
        return -c/2 * ((--t)*(t-2) - 1) + b;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    89
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    90
    
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    91
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    92
     * Begins slowly and accelerates towards end. (quartic)
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    93
     * @method easeInStrong
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    94
     * @param {Number} t Time value used to compute current value
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    95
     * @param {Number} b Starting value
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    96
     * @param {Number} c Delta between start and end values
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    97
     * @param {Number} d Total length of animation
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    98
     * @return {Number} The computed value for the current animation frame
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    99
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   100
    easeInStrong: function (t, b, c, d) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   101
        return c*(t/=d)*t*t*t + b;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   102
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   103
    
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   104
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   105
     * Begins quickly and decelerates towards end.  (quartic)
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   106
     * @method easeOutStrong
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   107
     * @param {Number} t Time value used to compute current value
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   108
     * @param {Number} b Starting value
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   109
     * @param {Number} c Delta between start and end values
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   110
     * @param {Number} d Total length of animation
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   111
     * @return {Number} The computed value for the current animation frame
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   112
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   113
    easeOutStrong: function (t, b, c, d) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   114
        return -c * ((t=t/d-1)*t*t*t - 1) + b;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   115
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   116
    
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   117
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   118
     * Begins slowly and decelerates towards end. (quartic)
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   119
     * @method easeBothStrong
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   120
     * @param {Number} t Time value used to compute current value
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   121
     * @param {Number} b Starting value
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   122
     * @param {Number} c Delta between start and end values
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   123
     * @param {Number} d Total length of animation
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   124
     * @return {Number} The computed value for the current animation frame
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   125
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   126
    easeBothStrong: function (t, b, c, d) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   127
        if ((t/=d/2) < 1) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   128
            return c/2*t*t*t*t + b;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   129
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   130
        
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   131
        return -c/2 * ((t-=2)*t*t*t - 2) + b;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   132
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   133
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   134
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   135
     * Snap in elastic effect.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   136
     * @method elasticIn
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   137
     * @param {Number} t Time value used to compute current value
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   138
     * @param {Number} b Starting value
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   139
     * @param {Number} c Delta between start and end values
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   140
     * @param {Number} d Total length of animation
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   141
     * @param {Number} a Amplitude (optional)
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   142
     * @param {Number} p Period (optional)
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   143
     * @return {Number} The computed value for the current animation frame
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   144
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   145
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   146
    elasticIn: function (t, b, c, d, a, p) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   147
        var s;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   148
        if (t === 0) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   149
            return b;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   150
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   151
        if ( (t /= d) === 1 ) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   152
            return b+c;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   153
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   154
        if (!p) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   155
            p = d* 0.3;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   156
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   157
        
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   158
        if (!a || a < Math.abs(c)) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   159
            a = c; 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   160
            s = p/4;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   161
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   162
        else {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   163
            s = p/(2*Math.PI) * Math.asin (c/a);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   164
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   165
        
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   166
        return -(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   167
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   168
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   169
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   170
     * Snap out elastic effect.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   171
     * @method elasticOut
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   172
     * @param {Number} t Time value used to compute current value
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   173
     * @param {Number} b Starting value
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   174
     * @param {Number} c Delta between start and end values
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   175
     * @param {Number} d Total length of animation
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   176
     * @param {Number} a Amplitude (optional)
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   177
     * @param {Number} p Period (optional)
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   178
     * @return {Number} The computed value for the current animation frame
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   179
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   180
    elasticOut: function (t, b, c, d, a, p) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   181
        var s;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   182
        if (t === 0) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   183
            return b;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   184
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   185
        if ( (t /= d) === 1 ) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   186
            return b+c;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   187
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   188
        if (!p) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   189
            p=d * 0.3;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   190
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   191
        
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   192
        if (!a || a < Math.abs(c)) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   193
            a = c;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   194
            s = p / 4;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   195
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   196
        else {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   197
            s = p/(2*Math.PI) * Math.asin (c/a);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   198
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   199
        
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   200
        return a*Math.pow(2,-10*t) * Math.sin( (t*d-s)*(2*Math.PI)/p ) + c + b;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   201
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   202
    
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   203
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   204
     * Snap both elastic effect.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   205
     * @method elasticBoth
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   206
     * @param {Number} t Time value used to compute current value
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   207
     * @param {Number} b Starting value
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   208
     * @param {Number} c Delta between start and end values
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   209
     * @param {Number} d Total length of animation
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   210
     * @param {Number} a Amplitude (optional)
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   211
     * @param {Number} p Period (optional)
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   212
     * @return {Number} The computed value for the current animation frame
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   213
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   214
    elasticBoth: function (t, b, c, d, a, p) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   215
        var s;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   216
        if (t === 0) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   217
            return b;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   218
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   219
        
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   220
        if ( (t /= d/2) === 2 ) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   221
            return b+c;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   222
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   223
        
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   224
        if (!p) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   225
            p = d*(0.3*1.5);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   226
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   227
        
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   228
        if ( !a || a < Math.abs(c) ) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   229
            a = c; 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   230
            s = p/4;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   231
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   232
        else {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   233
            s = p/(2*Math.PI) * Math.asin (c/a);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   234
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   235
        
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   236
        if (t < 1) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   237
            return -0.5*(a*Math.pow(2,10*(t-=1)) * 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   238
                    Math.sin( (t*d-s)*(2*Math.PI)/p )) + b;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   239
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   240
        return a*Math.pow(2,-10*(t-=1)) * 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   241
                Math.sin( (t*d-s)*(2*Math.PI)/p )*0.5 + c + b;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   242
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   243
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   244
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   245
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   246
     * Backtracks slightly, then reverses direction and moves to end.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   247
     * @method backIn
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   248
     * @param {Number} t Time value used to compute current value
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   249
     * @param {Number} b Starting value
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   250
     * @param {Number} c Delta between start and end values
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   251
     * @param {Number} d Total length of animation
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   252
     * @param {Number} s Overshoot (optional)
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   253
     * @return {Number} The computed value for the current animation frame
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   254
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   255
    backIn: function (t, b, c, d, s) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   256
        if (s === undefined) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   257
            s = 1.70158;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   258
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   259
        if (t === d) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   260
            t -= 0.001;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   261
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   262
        return c*(t/=d)*t*((s+1)*t - s) + b;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   263
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   264
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   265
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   266
     * Overshoots end, then reverses and comes back to end.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   267
     * @method backOut
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   268
     * @param {Number} t Time value used to compute current value
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   269
     * @param {Number} b Starting value
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   270
     * @param {Number} c Delta between start and end values
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   271
     * @param {Number} d Total length of animation
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   272
     * @param {Number} s Overshoot (optional)
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   273
     * @return {Number} The computed value for the current animation frame
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   274
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   275
    backOut: function (t, b, c, d, s) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   276
        if (typeof s === 'undefined') {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   277
            s = 1.70158;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   278
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   279
        return c*((t=t/d-1)*t*((s+1)*t + s) + 1) + b;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   280
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   281
    
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   282
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   283
     * Backtracks slightly, then reverses direction, overshoots end, 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   284
     * then reverses and comes back to end.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   285
     * @method backBoth
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   286
     * @param {Number} t Time value used to compute current value
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   287
     * @param {Number} b Starting value
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   288
     * @param {Number} c Delta between start and end values
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   289
     * @param {Number} d Total length of animation
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   290
     * @param {Number} s Overshoot (optional)
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   291
     * @return {Number} The computed value for the current animation frame
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   292
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   293
    backBoth: function (t, b, c, d, s) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   294
        if (typeof s === 'undefined') {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   295
            s = 1.70158; 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   296
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   297
        
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   298
        if ((t /= d/2 ) < 1) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   299
            return c/2*(t*t*(((s*=(1.525))+1)*t - s)) + b;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   300
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   301
        return c/2*((t-=2)*t*(((s*=(1.525))+1)*t + s) + 2) + b;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   302
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   303
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   304
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   305
     * Bounce off of start.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   306
     * @method bounceIn
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   307
     * @param {Number} t Time value used to compute current value
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   308
     * @param {Number} b Starting value
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   309
     * @param {Number} c Delta between start and end values
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   310
     * @param {Number} d Total length of animation
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   311
     * @return {Number} The computed value for the current animation frame
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   312
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   313
    bounceIn: function (t, b, c, d) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   314
        return c - Y.Easing.bounceOut(d-t, 0, c, d) + b;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   315
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   316
    
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   317
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   318
     * Bounces off end.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   319
     * @method bounceOut
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   320
     * @param {Number} t Time value used to compute current value
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   321
     * @param {Number} b Starting value
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   322
     * @param {Number} c Delta between start and end values
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   323
     * @param {Number} d Total length of animation
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   324
     * @return {Number} The computed value for the current animation frame
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   325
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   326
    bounceOut: function (t, b, c, d) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   327
        if ((t/=d) < (1/2.75)) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   328
                return c*(7.5625*t*t) + b;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   329
        } else if (t < (2/2.75)) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   330
                return c*(7.5625*(t-=(1.5/2.75))*t + 0.75) + b;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   331
        } else if (t < (2.5/2.75)) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   332
                return c*(7.5625*(t-=(2.25/2.75))*t + 0.9375) + b;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   333
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   334
        return c*(7.5625*(t-=(2.625/2.75))*t + 0.984375) + b;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   335
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   336
    
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   337
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   338
     * Bounces off start and end.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   339
     * @method bounceBoth
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   340
     * @param {Number} t Time value used to compute current value
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   341
     * @param {Number} b Starting value
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   342
     * @param {Number} c Delta between start and end values
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   343
     * @param {Number} d Total length of animation
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   344
     * @return {Number} The computed value for the current animation frame
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   345
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   346
    bounceBoth: function (t, b, c, d) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   347
        if (t < d/2) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   348
            return Y.Easing.bounceIn(t * 2, 0, c, d) * 0.5 + b;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   349
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   350
        return Y.Easing.bounceOut(t * 2 - d, 0, c, d) * 0.5 + c * 0.5 + b;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   351
    }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   352
};
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   353
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   354
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   355
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   356
}, '3.0.0b1' ,{requires:['anim-base']});