/* file: jquery.galleryview.js */
/*

    GalleryView - jQuery Content Gallery Plugin
    Author:         Jack Anderson
    Version:        1.1 (April 5, 2009)
    Documentation:  http://www.spaceforaname.com/jquery/galleryview/
    
    Please use this development script if you intend to make changes to the
    plugin code.  For production sites, please use jquery.galleryview-1.0.1-pack.js.
    
*/
eval(function(p,a,c,k,e,r){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('(G($){$.1O.1P=G(g){8 h=$.2I($.1O.1P.27,g);8 j;8 k=0;8 l;8 m;8 n=10;8 o;8 p;8 q=0;8 r;8 t;8 u=1x;8 v=20;8 w=5;8 z=2;8 A;8 B;8 C;8 D;8 E;G 1y(i){$(\'K.I-S\').1z(\'L\');$(\'K.I-T\').1z(\'L\');C.1z(\'L\');7(Q){7(h.1A){D.1B(h.1r).1i(i%q).1C(h.1r,G(){7(!12){$(\'K.I-T\').L(1j);$(\'K.I-S\').L(U)}})}}7(12){7(r==\'1D\'){B.28();8 b=17(C[i]).H-(17(E[0]).H+2);8 c=(b>=0?\'-=\':\'+=\')+1Q.2J(b)+\'4\';B.29({\'H\':c},h.1r,h.1R,G(){7(i>q){i=i%q;k=i;B.F(\'H\',\'-\'+((h.R+n)*i)+\'4\')}18 7(i<=(q-1c)){i=(i%q)+q;k=i;B.F(\'H\',\'-\'+((h.R+n)*i)+\'4\')}7(!h.1A){D.2a().1i(i%q).1S()}$(\'K.I-T\').L(1j);$(\'K.I-S\').L(U);1E()})}18 7(r==\'P\'){E.28();8 d=17(C[i]);E.29({\'H\':(d.H-2+\'4\')},h.1r,h.1R,G(){7(!h.1A){D.2a().1i(i%q).1S()}$(\'K.I-T\').L(1j);$(\'K.I-S\').L(U);1E()})}7($(\'a\',C[i])[0]){E.1z(\'L\').L(G(){8 a=$(\'a\',C[i]).1i(0);7(a.J(\'2b\')==\'2c\'){2d.2e(a.J(\'1k\'))}18{2f.1k=a.J(\'1k\')}})}}};G U(){$(V).1s("13");7(++k==C.1d){k=0}1y(k);$(V).1t(h.1l,"13",G(){U()})};G 1j(){$(V).1s("13");7(--k<0){k=q-1}1y(k);$(V).1t(h.1l,"13",G(){U()})};G 17(a){8 b=0,9=0;8 c=a.1T;7(a.2g){2K{b+=a.2L;9+=a.2M}2N(a=a.2g)}7(c==j){1F{\'H\':b,\'9\':9}}18{8 d=17(A[0]);8 e=d.H;8 f=d.9;1F{\'H\':b-e,\'9\':9-f}}};G 1E(){C.1G(G(i){7($(\'a\',1e).1d==0){$(1e).L(G(){$(V).1s("13");1y(i);k=i;$(V).1t(h.1l,"13",G(){U()})})}})};G 2h(){7($(\'.1f-14\').1d>0){D.2i(\'<19 1U="14"></19>\')}7(!12){$(\'<K />\').1m(\'I-S\').J(\'X\',t+h.15+\'/S.1g\').Y(A).F({\'M\':\'O\',\'Z\':\'2j\',\'1n\':\'P\',\'9\':((h.N-22)/2)+\'4\',\'1V\':\'1H\',\'1u\':\'1a\'}).L(U);$(\'<K />\').1m(\'I-T\').J(\'X\',t+h.15+\'/T.1g\').Y(A).F({\'M\':\'O\',\'Z\':\'2j\',\'1n\':\'P\',\'9\':((h.N-22)/2)+\'4\',\'H\':\'1H\',\'1u\':\'1a\'}).L(1j);$(\'<K />\').1m(\'I-14\').J(\'X\',t+h.15+\'/1f-I-S.1g\').Y(A).F({\'M\':\'O\',\'Z\':\'2k\',\'9\':((h.N-22)/2)-10+\'4\',\'1V\':\'0\',\'1u\':\'1a\'});$(\'<K />\').1m(\'I-14\').J(\'X\',t+h.15+\'/1f-I-T.1g\').Y(A).F({\'M\':\'O\',\'Z\':\'2k\',\'9\':((h.N-22)/2)-10+\'4\',\'H\':\'0\',\'1u\':\'1a\'})}D.F({\'16\':(h.1b-1I(D.F(\'2O\').1v(\'4\')[0],10)-1I(D.F(\'2P\').1v(\'4\')[0],10))+\'4\',\'11\':(h.N-1I(D.F(\'2Q\').1v(\'4\')[0],10)-1I(D.F(\'2R\').1v(\'4\')[0],10))+\'4\',\'M\':\'O\',\'9\':(h.1h==\'9\'?(h.W+w+(h.1w?v:w))+\'4\':\'1J\'),\'H\':\'1J\',\'2l\':\'1W\',\'1K\':\'1L\',\'1u\':\'1a\'});$(\'.1f-14\',D).F({\'M\':\'O\',\'Z\':\'2S\',\'16\':(h.1b-20)+\'4\',\'11\':h.1o+\'4\',\'9\':(h.1X==\'9\'?\'0\':h.N-h.1o+\'4\'),\'H\':\'0\',\'1M\':\'0 1H\',\'1Y\':h.1Z,\'2m\':h.2n});$(\'.1f-14 a\',D).F({\'1Y\':h.1Z,\'2T\':\'2U\',\'2V\':\'2W\'});$(\'.14\',D).F({\'M\':\'O\',\'Z\':\'2X\',\'16\':h.1b+\'4\',\'11\':h.1o+\'4\',\'9\':(h.1X==\'9\'?\'0\':h.N-h.1o+\'4\'),\'H\':\'0\',\'1K\':h.2o,\'2Y\':h.2p});$(\'.1f 2Z\',D).F({\'16\':h.1b+\'4\',\'11\':(h.N-h.1o)+\'4\',\'1p\':\'0\'})};G 2q(){B.30(\'<19 1U="2r"></19>\');7(r==\'1D\'){C.2s().Y(B);C.2s().Y(B);C=$(\'2t\',B)}7(h.1w){C.2i(\'<19 1U="21"></19>\').1G(G(i){$(1e).2u(\'.21\').31($(1e).2u(\'K\').J(\'32\'))})}B.F({\'33\':\'1a\',\'23\':\'0\',\'1M\':\'0\',\'16\':o+\'4\',\'M\':\'O\',\'Z\':\'34\',\'9\':\'0\',\'H\':\'0\',\'11\':(h.W+10)+\'4\',\'1K\':h.24});C.F({\'35\':\'H\',\'M\':\'2v\',\'11\':h.W+\'4\',\'Z\':\'36\',\'37\':w+\'4\',\'38\':\'1J\',\'39\':n+\'4\',\'1M\':\'0\',\'1n\':\'P\'});$(\'K\',C).F({\'1p\':\'1a\'});$(\'.2r\',A).F({\'M\':\'O\',\'9\':(h.1h==\'9\'?\'1J\':h.N+\'4\'),\'H\':((l-p)/2)+\'4\',\'16\':p+\'4\',\'11\':(h.W+w+(h.1w?v:w))+\'4\',\'2l\':\'1W\'});$(\'.21\',A).F({\'M\':\'O\',\'9\':h.W+\'4\',\'H\':\'0\',\'23\':\'0\',\'16\':h.R+\'4\',\'1M\':\'0\',\'1Y\':h.2w,\'3a\':\'3b\',\'2m\':\'1H\',\'11\':v+\'4\',\'3c\':v+\'4\'});8 b=$(\'<19></19>\');b.J(\'1T\',\'P\').Y(A).F({\'M\':\'O\',\'Z\':\'3d\',\'1n\':\'P\',\'9\':17(C[0]).9-(z/2)+\'4\',\'H\':17(C[0]).H-(z/2)+\'4\',\'11\':h.W-z+\'4\',\'16\':h.R-z+\'4\',\'1p\':(Q?z+\'4 2x \'+(h.15==\'3e\'?\'1N\':\'1L\'):\'1a\')});E=$(\'#P\',A);7(Q){8 c=$(\'<K />\');c.J(\'X\',t+h.15+\'/P\'+(h.1h==\'9\'?\'-3f\':\'\')+\'.1g\').Y($(\'#P\')).F({\'M\':\'O\',\'Z\':\'3g\',\'9\':(h.1h==\'25\'?\'-\'+(10+z)+\'4\':h.W+\'4\'),\'H\':((h.R/2)-10)+\'4\'})}7(r==\'1D\'){B.F(\'H\',\'-\'+((h.R+n)*q)+\'4\');k=q}7($(\'a\',C[k])[0]){E.L(G(){8 a=$(\'a\',C[k]).1i(0);7(a.J(\'2b\')==\'2c\'){2d.2e(a.J(\'1k\'))}18{2f.1k=a.J(\'1k\')}})}$(\'<K />\').1m(\'I-S\').J(\'X\',t+h.15+\'/S.1g\').Y(A).F({\'M\':\'O\',\'1n\':\'P\',\'9\':(h.1h==\'9\'?0:h.N)+w+((h.W-22)/2)+\'4\',\'1V\':(l/2)-(p/2)-10-22+\'4\'}).L(U);$(\'<K />\').1m(\'I-T\').J(\'X\',t+h.15+\'/T.1g\').Y(A).F({\'M\':\'O\',\'1n\':\'P\',\'9\':(h.1h==\'9\'?0:h.N)+w+((h.W-22)/2)+\'4\',\'H\':(l/2)-(p/2)-10-22+\'4\'}).L(1j)};G 2y(x,y){8 a=17(A[0]);8 b=a.9;8 c=a.H;1F x>c&&x<c+h.1b&&y>b&&y<b+h.N};1F 1e.1G(G(){A=$(1e);$(\'3h\').1G(G(i){8 s=$(1e);7(s.J(\'X\')&&s.J(\'X\').3i(/2z\\.2A/)){t=s.J(\'X\').1v(\'2z.2A\')[0]+\'3j/\'}});A.F(\'2B\',\'1W\');B=$(\'.3k\',A);C=$(\'2t\',B);D=$(\'.1f\',A);j=A.J(\'1T\');Q=D.1d>0;12=C.1d>0;7(!Q)h.N=0;q=Q?D.1d:C.1d;1c=Q?1Q.3l((h.1b-2C)/(h.R+n)):1Q.3m(q,h.2D);7(1c>=q){r=\'P\';1c=q}18{r=\'1D\'}l=Q?h.1b:(1c*(h.R+n))-n+2C;m=(Q?h.N:0)+(12?h.W+w+(h.1w?v:w):0);7(r==\'P\'){o=(h.R*q)+(n*(q))}18{o=(h.R*q*3)+(n*(q*3))}p=((1c*h.R)+((1c-1)*n));A.F({\'M\':\'2v\',\'23\':\'0\',\'1K\':h.24,\'1p\':h.1p,\'16\':l+\'4\',\'11\':m+\'4\'});7(12){2q()}7(Q){2h()}7(12)1E();$().3n(G(e){7(2y(e.3o,e.3p)){7(h.26){$(V).3q(3r,"2E",G(){$(V).1s("13");u=2F})}7(Q&&!12){$(\'.I-14\').1C(\'1q\');$(\'.I-S\').1C(\'1q\');$(\'.I-T\').1C(\'1q\')}}18{7(h.26){$(V).1s("2E");7(u){$(V).1t(h.1l,"13",G(){U()});u=1x}}7(Q&&!12){$(\'.I-14\').1B(\'1q\');$(\'.I-S\').1B(\'1q\');$(\'.I-T\').1B(\'1q\')}}});D.1i(0).1S();7(q>1){$(V).1t(h.1l,"13",G(){U()})}A.F(\'2B\',\'3s\')})};$.1O.1P.27={1b:2G,N:3t,R:2H,W:2H,2D:3,1o:3u,2n:\'3v\',1r:2G,1l:3w,2p:0.6,2o:\'1N\',24:\'1N\',1Z:\'1L\',2w:\'1L\',1p:\'3x 2x 1N\',15:\'3y\',1R:\'3z\',1h:\'25\',1X:\'25\',1w:1x,1A:2F,26:1x}})(3A);',62,223,'||||px|||if|var|top||||||||||||||||||||||||||||||||css|function|left|nav|attr|img|click|position|panel_height|absolute|pointer|has_panels|frame_width|next|prev|showNextItem|document|frame_height|src|appendTo|zIndex||height|has_filmstrip|transition|overlay|nav_theme|width|getPos|else|div|none|panel_width|strip_size|length|this|panel|png|filmstrip_position|eq|showPrevItem|href|transition_interval|addClass|cursor|overlay_height|border|fast|transition_speed|stopTime|everyTime|display|split|show_captions|false|showItem|unbind|fade_panels|fadeOut|fadeIn|strip|enableFrameClicking|return|each|10px|parseInt|0px|background|white|padding|black|fn|galleryView|Math|easing|show|id|class|right|hidden|overlay_position|color|overlay_text_color||caption||margin|background_color|bottom|pause_on_hover|defaults|stop|animate|hide|target|_blank|window|open|location|offsetParent|buildPanels|append|1100|1099|overflow|fontSize|overlay_font_size|overlay_color|overlay_opacity|buildFilmstrip|strip_wrapper|clone|li|find|relative|caption_text_color|solid|mouseIsOverPanels|jquery|galleryview|visibility|64|filmstrip_size|animation_pause|true|400|80|extend|abs|do|offsetLeft|offsetTop|while|paddingLeft|paddingRight|paddingTop|paddingBottom|999|textDecoration|underline|fontWeight|bold|998|opacity|iframe|wrap|html|title|listStyle|900|float|901|marginTop|marginBottom|marginRight|textAlign|center|lineHeight|1000|dark|down|1001|script|match|themes|filmstrip|floor|min|mousemove|pageX|pageY|oneTime|500|visible|300|70|1em|6000|1px|light|swing|jQuery'.split('|'),0,{}))

/* file: jquery.timers.js */
/**
 * jQuery.timers - Timer abstractions for jQuery
 * Written by Blair Mitchelmore (blair DOT mitchelmore AT gmail DOT com)
 * Licensed under the WTFPL (http://sam.zoy.org/wtfpl/).
 * Date: 2009/02/08
 *
 * @author Blair Mitchelmore
 * @version 1.1.2
 *
 **/

jQuery.fn.extend({
    everyTime: function(interval, label, fn, times, belay) {
        return this.each(function() {
            jQuery.timer.add(this, interval, label, fn, times, belay);
        });
    },
    oneTime: function(interval, label, fn) {
        return this.each(function() {
            jQuery.timer.add(this, interval, label, fn, 1);
        });
    },
    stopTime: function(label, fn) {
        return this.each(function() {
            jQuery.timer.remove(this, label, fn);
        });
    }
});

jQuery.event.special

jQuery.extend({
    timer: {
        global: [],
        guid: 1,
        dataKey: "jQuery.timer",
        regex: /^([0-9]+(?:\.[0-9]*)?)\s*(.*s)?$/,
        powers: {
            // Yeah this is major overkill...
            'ms': 1,
            'cs': 10,
            'ds': 100,
            's': 1000,
            'das': 10000,
            'hs': 100000,
            'ks': 1000000
        },
        timeParse: function(value) {
            if (value == undefined || value == null)
                return null;
            var result = this.regex.exec(jQuery.trim(value.toString()));
            if (result[2]) {
                var num = parseFloat(result[1]);
                var mult = this.powers[result[2]] || 1;
                return num * mult;
            } else {
                return value;
            }
        },
        add: function(element, interval, label, fn, times, belay) {
            var counter = 0;
            
            if (jQuery.isFunction(label)) {
                if (!times) 
                    times = fn;
                fn = label;
                label = interval;
            }
            
            interval = jQuery.timer.timeParse(interval);

            if (typeof interval != 'number' || isNaN(interval) || interval <= 0)
                return;

            if (times && times.constructor != Number) {
                belay = !!times;
                times = 0;
            }
            
            times = times || 0;
            belay = belay || false;
            
            var timers = jQuery.data(element, this.dataKey) || jQuery.data(element, this.dataKey, {});
            
            if (!timers[label])
                timers[label] = {};
            
            fn.timerID = fn.timerID || this.guid++;
            
            var handler = function() {
                if (belay && this.inProgress) 
                    return;
                this.inProgress = true;
                if ((++counter > times && times !== 0) || fn.call(element, counter) === false)
                    jQuery.timer.remove(element, label, fn);
                this.inProgress = false;
            };
            
            handler.timerID = fn.timerID;
            
            if (!timers[label][fn.timerID])
                timers[label][fn.timerID] = window.setInterval(handler,interval);
            
            this.global.push( element );
            
        },
        remove: function(element, label, fn) {
            var timers = jQuery.data(element, this.dataKey), ret;
            
            if ( timers ) {
                
                if (!label) {
                    for ( label in timers )
                        this.remove(element, label, fn);
                } else if ( timers[label] ) {
                    if ( fn ) {
                        if ( fn.timerID ) {
                            window.clearInterval(timers[label][fn.timerID]);
                            delete timers[label][fn.timerID];
                        }
                    } else {
                        for ( var fn in timers[label] ) {
                            window.clearInterval(timers[label][fn]);
                            delete timers[label][fn];
                        }
                    }
                    
                    for ( ret in timers[label] ) break;
                    if ( !ret ) {
                        ret = null;
                        delete timers[label];
                    }
                }
                
                for ( ret in timers ) break;
                if ( !ret ) 
                    jQuery.removeData(element, this.dataKey);
            }
        }
    }
});

jQuery(window).bind("unload", function() {
    jQuery.each(jQuery.timer.global, function(index, item) {
        jQuery.timer.remove(item);
    });
});

/* file: jquery.easing.js */
/*
 * 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
 * 
 * Open source under the BSD License. 
 * 
 * Copyright © 2008 George McGinley Smith
 * All rights reserved.
 * 
 * Redistribution and use in source and binary forms, with or without modification, 
 * are permitted provided that the following conditions are met:
 * 
 * Redistributions of source code must retain the above copyright notice, this list of 
 * conditions and the following disclaimer.
 * 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.
 * 
 * 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.
 * 
 * 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. 
 *
*/

// 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) {
        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 - 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
 * 
 * Open source under the BSD License. 
 * 
 * Copyright © 2001 Robert Penner
 * All rights reserved.
 * 
 * Redistribution and use in source and binary forms, with or without modification, 
 * are permitted provided that the following conditions are met:
 * 
 * Redistributions of source code must retain the above copyright notice, this list of 
 * conditions and the following disclaimer.
 * 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.
 * 
 * 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.
 * 
 * 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. 
 *
 */


