/*
Copyright (c) 2010, Yahoo! Inc. All rights reserved.
Code licensed under the BSD License:
http://developer.yahoo.com/yui/license.html
version: 2.8.1
*/
(function(){
    var B=YAHOO.util;
    var A=function(D,C,E,F){
        if(!D){}
        this.init(D,C,E,F);
    };

    A.NAME="Anim";
    A.prototype={
        toString:function(){
            var C=this.getEl()||{};

            var D=C.id||C.tagName;
            return(this.constructor.NAME+": "+D);
        },
        patterns:{
            noNegatives:/width|height|opacity|padding/i,
            offsetAttribute:/^((width|height)|(top|left))$/,
            defaultUnit:/width|height|top$|bottom$|left$|right$/i,
            offsetUnit:/\d+(em|%|en|ex|pt|in|cm|mm|pc)$/i
        },
        doMethod:function(C,E,D){
            return this.method(this.currentFrame,E,D-E,this.totalFrames);
        },
        setAttribute:function(C,F,E){
            var D=this.getEl();
            if(this.patterns.noNegatives.test(C)){
                F=(F>0)?F:0;
            }
            if(C in D&&!("style" in D&&C in D.style)){
                D[C]=F;
            }else{
                B.Dom.setStyle(D,C,F+E);
            }
        },
    getAttribute:function(C){
        var E=this.getEl();
        var G=B.Dom.getStyle(E,C);
        if(G!=="auto"&&!this.patterns.offsetUnit.test(G)){
            return parseFloat(G);
        }
        var D=this.patterns.offsetAttribute.exec(C)||[];
        var H=!!(D[3]);
        var F=!!(D[2]);
        if("style" in E){
            if(F||(B.Dom.getStyle(E,"position")=="absolute"&&H)){
                G=E["offset"+D[0].charAt(0).toUpperCase()+D[0].substr(1)];
            }else{
                G=0;
            }
        }
        else{
        if(C in E){
            G=E[C];
        }
    }
    return G;
},
getDefaultUnit:function(C){
    if(this.patterns.defaultUnit.test(C)){
        return"px";
    }
    return"";
},
setRuntimeAttribute:function(D){
    var I;
    var E;
    var F=this.attributes;
    this.runtimeAttributes[D]={};

    var H=function(J){
        return(typeof J!=="undefined");
    };

    if(!H(F[D]["to"])&&!H(F[D]["by"])){
        return false;
    }
    I=(H(F[D]["from"]))?F[D]["from"]:this.getAttribute(D);
    if(H(F[D]["to"])){
        E=F[D]["to"];
    }else{
        if(H(F[D]["by"])){
            if(I.constructor==Array){
                E=[];
                for(var G=0,C=I.length;G<C;++G){
                    E[G]=I[G]+F[D]["by"][G]*1;
                }
                }else{
            E=I+F[D]["by"]*1;
        }
    }
}
this.runtimeAttributes[D].start=I;
this.runtimeAttributes[D].end=E;
this.runtimeAttributes[D].unit=(H(F[D].unit))?F[D]["unit"]:this.getDefaultUnit(D);
return true;
},
init:function(E,J,I,C){
    var D=false;
    var F=null;
    var H=0;
    E=B.Dom.get(E);
    this.attributes=J||{};

    this.duration=!YAHOO.lang.isUndefined(I)?I:1;
    this.method=C||B.Easing.easeNone;
    this.useSeconds=true;
    this.currentFrame=0;
    this.totalFrames=B.AnimMgr.fps;
    this.setEl=function(M){
        E=B.Dom.get(M);
    };

    this.getEl=function(){
        return E;
    };

    this.isAnimated=function(){
        return D;
    };

    this.getStartTime=function(){
        return F;
    };

    this.runtimeAttributes={};

    this.animate=function(){
        if(this.isAnimated()){
            return false;
        }
        this.currentFrame=0;
        this.totalFrames=(this.useSeconds)?Math.ceil(B.AnimMgr.fps*this.duration):this.duration;
        if(this.duration===0&&this.useSeconds){
            this.totalFrames=1;
        }
        B.AnimMgr.registerElement(this);
        return true;
    };

    this.stop=function(M){
        if(!this.isAnimated()){
            return false;
        }
        if(M){
            this.currentFrame=this.totalFrames;
            this._onTween.fire();
        }
        B.AnimMgr.stop(this);
    };

    var L=function(){
        this.onStart.fire();
        this.runtimeAttributes={};

        for(var M in this.attributes){
            this.setRuntimeAttribute(M);
        }
        D=true;
        H=0;
        F=new Date();
    };

    var K=function(){
        var O={
            duration:new Date()-this.getStartTime(),
            currentFrame:this.currentFrame
            };

        O.toString=function(){
            return("duration: "+O.duration+", currentFrame: "+O.currentFrame);
        };

        this.onTween.fire(O);
        var N=this.runtimeAttributes;
        for(var M in N){
            this.setAttribute(M,this.doMethod(M,N[M].start,N[M].end),N[M].unit);
        }
        H+=1;
    };

    var G=function(){
        var M=(new Date()-F)/1000;
        var N={
            duration:M,
            frames:H,
            fps:H/M
            };

        N.toString=function(){
            return("duration: "+N.duration+", frames: "+N.frames+", fps: "+N.fps);
        };

        D=false;
        H=0;
        this.onComplete.fire(N);
    };

    this._onStart=new B.CustomEvent("_start",this,true);
    this.onStart=new B.CustomEvent("start",this);
    this.onTween=new B.CustomEvent("tween",this);
    this._onTween=new B.CustomEvent("_tween",this,true);
    this.onComplete=new B.CustomEvent("complete",this);
    this._onComplete=new B.CustomEvent("_complete",this,true);
    this._onStart.subscribe(L);
    this._onTween.subscribe(K);
    this._onComplete.subscribe(G);
}
};

B.Anim=A;
})();
YAHOO.util.AnimMgr=new function(){
    var C=null;
    var B=[];
    var A=0;
    this.fps=1000;
    this.delay=1;
    this.registerElement=function(F){
        B[B.length]=F;
        A+=1;
        F._onStart.fire();
        this.start();
    };

    this.unRegister=function(G,F){
        F=F||E(G);
        if(!G.isAnimated()||F===-1){
            return false;
        }
        G._onComplete.fire();
        B.splice(F,1);
        A-=1;
        if(A<=0){
            this.stop();
        }
        return true;
    };

    this.start=function(){
        if(C===null){
            C=setInterval(this.run,this.delay);
        }
    };

this.stop=function(H){
    if(!H){
        clearInterval(C);
        for(var G=0,F=B.length;G<F;++G){
            this.unRegister(B[0],0);
        }
        B=[];
        C=null;
        A=0;
    }else{
        this.unRegister(H);
    }
};

this.run=function(){
    for(var H=0,F=B.length;H<F;++H){
        var G=B[H];
        if(!G||!G.isAnimated()){
            continue;
        }
        if(G.currentFrame<G.totalFrames||G.totalFrames===null){
            G.currentFrame+=1;
            if(G.useSeconds){
                D(G);
            }
            G._onTween.fire();
        }else{
            YAHOO.util.AnimMgr.stop(G,H);
        }
    }
    };

var E=function(H){
    for(var G=0,F=B.length;G<F;++G){
        if(B[G]===H){
            return G;
        }
    }
    return -1;
};

var D=function(G){
    var J=G.totalFrames;
    var I=G.currentFrame;
    var H=(G.currentFrame*G.duration*1000/G.totalFrames);
    var F=(new Date()-G.getStartTime());
    var K=0;
    if(F<G.duration*1000){
        K=Math.round((F/H-1)*G.currentFrame);
    }else{
        K=J-(I+1);
    }
    if(K>0&&isFinite(K)){
        if(G.currentFrame+K>=J){
            K=J-(I+1);
        }
        G.currentFrame+=K;
    }
};

this._queue=B;
this._getIndex=E;
};

YAHOO.util.Bezier=new function(){
    this.getPosition=function(E,D){
        var F=E.length;
        var C=[];
        for(var B=0;B<F;++B){
            C[B]=[E[B][0],E[B][1]];
        }
        for(var A=1;A<F;++A){
            for(B=0;B<F-A;++B){
                C[B][0]=(1-D)*C[B][0]+D*C[parseInt(B+1,10)][0];
                C[B][1]=(1-D)*C[B][1]+D*C[parseInt(B+1,10)][1];
            }
        }
        return[C[0][0],C[0][1]];
};

};
(function(){
    var A=function(F,E,G,H){
        A.superclass.constructor.call(this,F,E,G,H);
    };

    A.NAME="ColorAnim";
    A.DEFAULT_BGCOLOR="#fff";
    var C=YAHOO.util;
    YAHOO.extend(A,C.Anim);
    var D=A.superclass;
    var B=A.prototype;
    B.patterns.color=/color$/i;
    B.patterns.rgb=/^rgb\(([0-9]+)\s*,\s*([0-9]+)\s*,\s*([0-9]+)\)$/i;
    B.patterns.hex=/^#?([0-9A-F]{2})([0-9A-F]{2})([0-9A-F]{2})$/i;
    B.patterns.hex3=/^#?([0-9A-F]{1})([0-9A-F]{1})([0-9A-F]{1})$/i;
    B.patterns.transparent=/^transparent|rgba\(0, 0, 0, 0\)$/;
    B.parseColor=function(E){
        if(E.length==3){
            return E;
        }
        var F=this.patterns.hex.exec(E);
        if(F&&F.length==4){
            return[parseInt(F[1],16),parseInt(F[2],16),parseInt(F[3],16)];
        }
        F=this.patterns.rgb.exec(E);
        if(F&&F.length==4){
            return[parseInt(F[1],10),parseInt(F[2],10),parseInt(F[3],10)];
        }
        F=this.patterns.hex3.exec(E);
        if(F&&F.length==4){
            return[parseInt(F[1]+F[1],16),parseInt(F[2]+F[2],16),parseInt(F[3]+F[3],16)];
        }
        return null;
    };

    B.getAttribute=function(E){
        var G=this.getEl();
        if(this.patterns.color.test(E)){
            var I=YAHOO.util.Dom.getStyle(G,E);
            var H=this;
            if(this.patterns.transparent.test(I)){
                var F=YAHOO.util.Dom.getAncestorBy(G,function(J){
                    return !H.patterns.transparent.test(I);
                });
                if(F){
                    I=C.Dom.getStyle(F,E);
                }else{
                    I=A.DEFAULT_BGCOLOR;
                }
            }
        }else{
    I=D.getAttribute.call(this,E);
}
return I;
};

B.doMethod=function(F,J,G){
    var I;
    if(this.patterns.color.test(F)){
        I=[];
        for(var H=0,E=J.length;H<E;++H){
            I[H]=D.doMethod.call(this,F,J[H],G[H]);
        }
        I="rgb("+Math.floor(I[0])+","+Math.floor(I[1])+","+Math.floor(I[2])+")";
    }else{
        I=D.doMethod.call(this,F,J,G);
    }
    return I;
};

B.setRuntimeAttribute=function(F){
    D.setRuntimeAttribute.call(this,F);
    if(this.patterns.color.test(F)){
        var H=this.attributes;
        var J=this.parseColor(this.runtimeAttributes[F].start);
        var G=this.parseColor(this.runtimeAttributes[F].end);
        if(typeof H[F]["to"]==="undefined"&&typeof H[F]["by"]!=="undefined"){
            G=this.parseColor(H[F].by);
            for(var I=0,E=J.length;I<E;++I){
                G[I]=J[I]+G[I];
            }
            }
            this.runtimeAttributes[F].start=J;
    this.runtimeAttributes[F].end=G;
}
};

C.ColorAnim=A;
})();
/*
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.
*/
YAHOO.util.Easing={
    easeNone:function(B,A,D,C){
        return D*B/C+A;
    },
    easeIn:function(B,A,D,C){
        return D*(B/=C)*B+A;
    },
    easeOut:function(B,A,D,C){
        return -D*(B/=C)*(B-2)+A;
    },
    easeBoth:function(B,A,D,C){
        if((B/=C/2)<1){
            return D/2*B*B+A;
        }
        return -D/2*((--B)*(B-2)-1)+A;
    },
    easeInStrong:function(B,A,D,C){
        return D*(B/=C)*B*B*B+A;
    },
    easeOutStrong:function(B,A,D,C){
        return -D*((B=B/C-1)*B*B*B-1)+A;
    },
    easeBothStrong:function(B,A,D,C){
        if((B/=C/2)<1){
            return D/2*B*B*B*B+A;
        }
        return -D/2*((B-=2)*B*B*B-2)+A;
    },
    elasticIn:function(C,A,G,F,B,E){
        if(C==0){
            return A;
        }
        if((C/=F)==1){
            return A+G;
        }
        if(!E){
            E=F*0.3;
        }
        if(!B||B<Math.abs(G)){
            B=G;
            var D=E/4;
        }else{
            var D=E/(2*Math.PI)*Math.asin(G/B);
        }
        return -(B*Math.pow(2,10*(C-=1))*Math.sin((C*F-D)*(2*Math.PI)/E))+A;
    },
    elasticOut:function(C,A,G,F,B,E){
        if(C==0){
            return A;
        }
        if((C/=F)==1){
            return A+G;
        }
        if(!E){
            E=F*0.3;
        }
        if(!B||B<Math.abs(G)){
            B=G;
            var D=E/4;
        }else{
            var D=E/(2*Math.PI)*Math.asin(G/B);
        }
        return B*Math.pow(2,-10*C)*Math.sin((C*F-D)*(2*Math.PI)/E)+G+A;
    },
    elasticBoth:function(C,A,G,F,B,E){
        if(C==0){
            return A;
        }
        if((C/=F/2)==2){
            return A+G;
        }
        if(!E){
            E=F*(0.3*1.5);
        }
        if(!B||B<Math.abs(G)){
            B=G;
            var D=E/4;
        }else{
            var D=E/(2*Math.PI)*Math.asin(G/B);
        }
        if(C<1){
            return -0.5*(B*Math.pow(2,10*(C-=1))*Math.sin((C*F-D)*(2*Math.PI)/E))+A;
        }
        return B*Math.pow(2,-10*(C-=1))*Math.sin((C*F-D)*(2*Math.PI)/E)*0.5+G+A;
    },
    backIn:function(B,A,E,D,C){
        if(typeof C=="undefined"){
            C=1.70158;
        }
        return E*(B/=D)*B*((C+1)*B-C)+A;
    },
    backOut:function(B,A,E,D,C){
        if(typeof C=="undefined"){
            C=1.70158;
        }
        return E*((B=B/D-1)*B*((C+1)*B+C)+1)+A;
    },
    backBoth:function(B,A,E,D,C){
        if(typeof C=="undefined"){
            C=1.70158;
        }
        if((B/=D/2)<1){
            return E/2*(B*B*(((C*=(1.525))+1)*B-C))+A;
        }
        return E/2*((B-=2)*B*(((C*=(1.525))+1)*B+C)+2)+A;
    },
    bounceIn:function(B,A,D,C){
        return D-YAHOO.util.Easing.bounceOut(C-B,0,D,C)+A;
    },
    bounceOut:function(B,A,D,C){
        if((B/=C)<(1/2.75)){
            return D*(7.5625*B*B)+A;
        }else{
            if(B<(2/2.75)){
                return D*(7.5625*(B-=(1.5/2.75))*B+0.75)+A;
            }else{
                if(B<(2.5/2.75)){
                    return D*(7.5625*(B-=(2.25/2.75))*B+0.9375)+A;
                }
            }
        }
    return D*(7.5625*(B-=(2.625/2.75))*B+0.984375)+A;
},
bounceBoth:function(B,A,D,C){
    if(B<C/2){
        return YAHOO.util.Easing.bounceIn(B*2,0,D,C)*0.5+A;
    }
    return YAHOO.util.Easing.bounceOut(B*2-C,0,D,C)*0.5+D*0.5+A;
}
};
(function(){
    var A=function(H,G,I,J){
        if(H){
            A.superclass.constructor.call(this,H,G,I,J);
        }
    };

A.NAME="Motion";
var E=YAHOO.util;
YAHOO.extend(A,E.ColorAnim);
    var F=A.superclass;
    var C=A.prototype;
    C.patterns.points=/^points$/i;
    C.setAttribute=function(G,I,H){
    if(this.patterns.points.test(G)){
        H=H||"px";
        F.setAttribute.call(this,"left",I[0],H);
        F.setAttribute.call(this,"top",I[1],H);
    }else{
        F.setAttribute.call(this,G,I,H);
    }
};

C.getAttribute=function(G){
    if(this.patterns.points.test(G)){
        var H=[F.getAttribute.call(this,"left"),F.getAttribute.call(this,"top")];
    }else{
        H=F.getAttribute.call(this,G);
    }
    return H;
};

C.doMethod=function(G,K,H){
    var J=null;
    if(this.patterns.points.test(G)){
        var I=this.method(this.currentFrame,0,100,this.totalFrames)/100;
        J=E.Bezier.getPosition(this.runtimeAttributes[G],I);
    }else{
        J=F.doMethod.call(this,G,K,H);
    }
    return J;
};

C.setRuntimeAttribute=function(P){
    if(this.patterns.points.test(P)){
        var H=this.getEl();
        var J=this.attributes;
        var G;
        var L=J["points"]["control"]||[];
        var I;
        var M,O;
        if(L.length>0&&!(L[0] instanceof Array)){
            L=[L];
        }else{
            var K=[];
            for(M=0,O=L.length;M<O;++M){
                K[M]=L[M];
            }
            L=K;
        }
        if(E.Dom.getStyle(H,"position")=="static"){
            E.Dom.setStyle(H,"position","relative");
        }
        if(D(J["points"]["from"])){
            E.Dom.setXY(H,J["points"]["from"]);
        }else{
            E.Dom.setXY(H,E.Dom.getXY(H));
        }
        G=this.getAttribute("points");
        if(D(J["points"]["to"])){
            I=B.call(this,J["points"]["to"],G);
            var N=E.Dom.getXY(this.getEl());
            for(M=0,O=L.length;M<O;++M){
                L[M]=B.call(this,L[M],G);
            }
            }else{
        if(D(J["points"]["by"])){
            I=[G[0]+J["points"]["by"][0],G[1]+J["points"]["by"][1]];
            for(M=0,O=L.length;M<O;++M){
                L[M]=[G[0]+L[M][0],G[1]+L[M][1]];
            }
            }
        }
this.runtimeAttributes[P]=[G];
if(L.length>0){
    this.runtimeAttributes[P]=this.runtimeAttributes[P].concat(L);
}
this.runtimeAttributes[P][this.runtimeAttributes[P].length]=I;
}else{
    F.setRuntimeAttribute.call(this,P);
}
};

var B=function(G,I){
    var H=E.Dom.getXY(this.getEl());
    G=[G[0]-H[0]+I[0],G[1]-H[1]+I[1]];
    return G;
};

var D=function(G){
    return(typeof G!=="undefined");
};

E.Motion=A;
})();
(function(){
    var D=function(F,E,G,H){
        if(F){
            D.superclass.constructor.call(this,F,E,G,H);
        }
    };

D.NAME="Scroll";
var B=YAHOO.util;
YAHOO.extend(D,B.ColorAnim);
    var C=D.superclass;
    var A=D.prototype;
    A.doMethod=function(E,H,F){
    var G=null;
    if(E=="scroll"){
        G=[this.method(this.currentFrame,H[0],F[0]-H[0],this.totalFrames),this.method(this.currentFrame,H[1],F[1]-H[1],this.totalFrames)];
    }else{
        G=C.doMethod.call(this,E,H,F);
    }
    return G;
};

A.getAttribute=function(E){
    var G=null;
    var F=this.getEl();
    if(E=="scroll"){
        G=[F.scrollLeft,F.scrollTop];
    }else{
        G=C.getAttribute.call(this,E);
    }
    return G;
};

A.setAttribute=function(E,H,G){
    var F=this.getEl();
    if(E=="scroll"){
        F.scrollLeft=H[0];
        F.scrollTop=H[1];
    }else{
        C.setAttribute.call(this,E,H,G);
    }
};

B.Scroll=D;
})();
YAHOO.register("animation",YAHOO.util.Anim,{
    version:"2.8.1",
    build:"19"
});
