Transition={linear:function(B,C,A,E,D){return E*C/D+A},sinus:function(B,C,A,E,D){return Math.sin(C/D*2*Math.PI)*E+A},cosinus:function(B,C,A,E,D){return Math.cos(C/D*2*Math.PI)*E+A},easeInQuad:function(B,C,A,E,D){return E*(C/=D)*C+A},easeOutQuad:function(B,C,A,E,D){return -E*(C/=D)*(C-2)+A},easeInOutQuad:function(B,C,A,E,D){if((C/=D/2)<1){return E/2*C*C+A}return -E/2*((--C)*(C-2)-1)+A},easeInCubic:function(B,C,A,E,D){return E*(C/=D)*C*C+A},easeOutCubic:function(B,C,A,E,D){return E*((C=C/D-1)*C*C+1)+A},easeInOutCubic:function(B,C,A,E,D){if((C/=D/2)<1){return E/2*C*C*C+A}return E/2*((C-=2)*C*C+2)+A},easeInQuart:function(B,C,A,E,D){return E*(C/=D)*C*C*C+A},easeOutQuart:function(B,C,A,E,D){return -E*((C=C/D-1)*C*C*C-1)+A},easeInOutQuart:function(B,C,A,E,D){if((C/=D/2)<1){return E/2*C*C*C*C+A}return -E/2*((C-=2)*C*C*C-2)+A},easeInQuint:function(B,C,A,E,D){return E*(C/=D)*C*C*C*C+A},easeOutQuint:function(B,C,A,E,D){return E*((C=C/D-1)*C*C*C*C+1)+A},easeInOutQuint:function(B,C,A,E,D){if((C/=D/2)<1){return E/2*C*C*C*C*C+A}return E/2*((C-=2)*C*C*C*C+2)+A},easeInSine:function(B,C,A,E,D){return -E*Math.cos(C/D*(Math.PI/2))+E+A},easeOutSine:function(B,C,A,E,D){return E*Math.sin(C/D*(Math.PI/2))+A},easeInOutSine:function(B,C,A,E,D){return -E/2*(Math.cos(Math.PI*C/D)-1)+A},easeInExpo:function(B,C,A,E,D){return(C==0)?A:E*Math.pow(2,10*(C/D-1))+A},easeOutExpo:function(B,C,A,E,D){return(C==D)?A+E:E*(-Math.pow(2,-10*C/D)+1)+A},easeInOutExpo:function(B,C,A,E,D){if(C==0){return A}if(C==D){return A+E}if((C/=D/2)<1){return E/2*Math.pow(2,10*(C-1))+A}return E/2*(-Math.pow(2,-10*--C)+2)+A},easeInCirc:function(B,C,A,E,D){return -E*(Math.sqrt(1-(C/=D)*C)-1)+A},easeOutCirc:function(B,C,A,E,D){return E*Math.sqrt(1-(C=C/D-1)*C)+A},easeInOutCirc:function(B,C,A,E,D){if((C/=D/2)<1){return -E/2*(Math.sqrt(1-C*C)-1)+A}return E/2*(Math.sqrt(1-(C-=2)*C)+1)+A},easeInElastic:function(B,D,A,H,G){var E=1.70158;var F=0;var C=H;if(D==0){return A}if((D/=G)==1){return A+H}if(!F){F=G*0.3}if(C<Math.abs(H)){C=H;var E=F/4}else{var E=F/(2*Math.PI)*Math.asin(H/C)}return -(C*Math.pow(2,10*(D-=1))*Math.sin((D*G-E)*(2*Math.PI)/F))+A},easeOutElastic:function(B,D,A,H,G){var E=1.70158;var F=0;var C=H;if(D==0){return A}if((D/=G)==1){return A+H}if(!F){F=G*0.3}if(C<Math.abs(H)){C=H;var E=F/4}else{var E=F/(2*Math.PI)*Math.asin(H/C)}return C*Math.pow(2,-10*D)*Math.sin((D*G-E)*(2*Math.PI)/F)+H+A},easeInOutElastic:function(B,D,A,H,G){var E=1.70158;var F=0;var C=H;if(D==0){return A}if((D/=G/2)==2){return A+H}if(!F){F=G*(0.3*1.5)}if(C<Math.abs(H)){C=H;var E=F/4}else{var E=F/(2*Math.PI)*Math.asin(H/C)}if(D<1){return -0.5*(C*Math.pow(2,10*(D-=1))*Math.sin((D*G-E)*(2*Math.PI)/F))+A}return C*Math.pow(2,-10*(D-=1))*Math.sin((D*G-E)*(2*Math.PI)/F)*0.5+H+A},easeInBack:function(B,C,A,F,E,D){if(D==undefined){D=1.70158}return F*(C/=E)*C*((D+1)*C-D)+A},easeOutBack:function(B,C,A,F,E,D){if(D==undefined){D=1.70158}return F*((C=C/E-1)*C*((D+1)*C+D)+1)+A},easeInOutBack:function(B,C,A,F,E,D){if(D==undefined){D=1.70158}if((C/=E/2)<1){return F/2*(C*C*(((D*=(1.525))+1)*C-D))+A}return F/2*((C-=2)*C*(((D*=(1.525))+1)*C+D)+2)+A},easeInBounce:function(B,C,A,E,D){return E-Transition.easeOutBounce(B,D-C,0,E,D)+A},easeOutBounce:function(B,C,A,E,D){if((C/=D)<(1/2.75)){return E*(7.5625*C*C)+A}else{if(C<(2/2.75)){return E*(7.5625*(C-=(1.5/2.75))*C+0.75)+A}else{if(C<(2.5/2.75)){return E*(7.5625*(C-=(2.25/2.75))*C+0.9375)+A}else{return E*(7.5625*(C-=(2.625/2.75))*C+0.984375)+A}}}},easeInOutBounce:function(B,C,A,E,D){if(C<D/2){return Transition.easeInBounce(B,C*2,0,E,D)*0.5+A}return Transition.easeOutBounce(B,C*2-D,0,E,D)*0.5+E*0.5+A},swing:function(J,I,F,G,H){return((-Math.cos(I/H*Math.PI)/2)+0.5)*G+F}};var IcyEffects={animate:function(D,A,F,B){var C={duration:F,transition:Transition.swing,Ended:Prototype.emptyFunction,Started:Prototype.emptyFunction,Beforestarder:Prototype.emptyFunction,play:true};var E=new IcyObject(D).set(A);B=B||{};Object.extend(C,B);E.setOptions(C);if(Object.isFunction(C.onEnded)){E.onEnded(C.onEnded)}if(Object.isFunction(C.onBeforeStarted)){E.onBeforeStarted(C.onBeforeStarted)}if(Object.isFunction(C.onStarted)){E.onStarted(C.onStarted)}if(Object.isFunction(C.onStopped)){E.onStopped(C.onStopped)}if(C.play){E.play()}return E},fade:function(A){if(!(A=$(A))){return }$(A).animate({opacity:0},1000)},appear:function(A){if(!(A=$(A))||A.visible()){return }$(A).setOpacity(0);$(A).show();$(A).animate({opacity:1},1000)},highlight:function(B,A){if(!(B=$(B))||!B.visible()){return }A=A||{};var D=A.highlightColor||"#ffff99";var C=B.getStyle("background-color");$(B).setStyle({backgroundColor:D});$(B).animate({backgroundColor:C},500)},blindDown:function(B){if(!(B=$(B))||B.visible()){return }var A=B.getHeight();$(B).animate({height:A+"px"},1000,{onBeforeStarted:function(){B.show();B.style.height="0px"}})},blindUp:function(B,A){if(!(B=$(B))||!B.visible()){return }$(B).animate({height:0},1000,{onbeforeStarted:function(){B.originalHeight=B.style.height},onEnded:function(){B.hide();B.style.height=B.originalHeight}})}};Element.addMethods(IcyEffects);var EventDispatcher=Class.create({});Object.extend(EventDispatcher.prototype,{buildListenerChain:function(){if(!this.listenerChain){this.listenerChain={}}},addEventListener:function(A,B){this.buildListenerChain();if(!this.listenerChain[A]){this.listenerChain[A]=[B]}else{this.listenerChain[A].push(B)}},hasEventListener:function(A){return(typeof this.listenerChain[A]!="undefined")},removeEventListener:function(B,C){if(!this.hasEventListener(B)){return false}for(var A=0;A<this.listenerChain[B].length;A++){if(this.listenerChain[B][A]==C){this.listenerChain[B].splice(A,1)}}},dispatchEvent:function(B,A){this.buildListenerChain();if(!this.hasEventListener(B)){return false}this.listenerChain[B].any(function(C){return(C(A)==false?true:false)})},on:function(A,B){this.addEventListener(A,B)},fire:function(B,A){this.dispatchEvent(B,A)}});TimeLine=Class.create({initialize:function(){this.effects=new Array;this.currentPlay=new Array;this.isRun=false;this.allEff=new Array()},add:function(C,A,B){this.position={after:null,before:null,started:null};B=B||{};Object.extend(this.position,B);if(this.position.after==null&&this.position.before==null&&this.position.started==null){this.e=new TimeLineItem(C,A);this.effects.push(this.e);this.registerEvent(this.e);this.allEff.push(this.e)}else{if(this.position.after!=null){this.insObj(this.position.after,C,A,"after")}else{if(this.position.before!=null){this.insObj(this.position.before,C,A,"before")}else{if(this.position.started!=null){this.insObj(this.position.started,C,A,"started")}}}}},remove:function(A){this.allEff=this.allEff.reject(function(B){return B.obj==A});this.effects=this.effects.reject(function(B){return B.obj==A});this.allEff.invoke("remove",A)},search:function(A,B){A.started.each(function(C){if(C.obj==B){this.found=true;this.item=C;this.parentItem=A}else{this.search(C,B)}}.bind(this));A.ended.each(function(C){if(C.obj==B){this.found=true;this.item=C;this.parentItem=A}else{this.search(C,B)}}.bind(this));A.beforeStarted.each(function(C){if(C.obj==B){this.found=true;this.item=C;this.parentItem=A}else{this.search(C,B)}}.bind(this))},insObj:function(C,B,A,D){this.found=false;this.parentItem=null;this.effects.find(function(E){if(E.obj==C){this.found=true;this.item=E}}.bind(this));if(!this.found){this.effects.each(function(E){this.search(E,C)}.bind(this))}if(this.found){this.e=new TimeLineItem(B,A);this.registerEvent(this.e);this.allEff.push(this.e);switch(D){case"after":this.item.insertEnded(this.e);break;case"before":if(this.parentItem!=null){this.parentItem.insertEnded(this.e);this.parentItem.ended=this.parentItem.ended.without(this.item)}else{this.effects=this.effects.without(this.item);this.effects.push(this.e)}this.e.insertEnded(this.item);break;case"started":this.item.insertStarted(this.e);break}}},registerEvent:function(A){A.obj.addEventListener("anim:ended",function(){A.ended.each(function(B){if(!B.run){if(B.ritardo==0){B.obj.play()}else{window.setTimeout(B.obj.play.bind(B.obj),B.ritardo)}this.currentPlay.push(B.obj);B.play()}}.bind(this));this.currentPlay=this.currentPlay.without(A.obj);if(this.currentPlay.size()==0){this.stop()}}.bind(this));A.obj.addEventListener("anim:started",function(){A.started.each(function(B){if(!B.run){if(B.ritardo==0){B.obj.play()}else{window.setTimeout(B.obj.play.bind(B.obj),B.ritardo)}this.currentPlay.push(B.obj);B.play()}}.bind(this))}.bind(this));A.obj.addEventListener("anim:beforestarted",function(){A.beforeStarted.each(function(B){if(!B.run){if(B.ritardo==0){B.obj.play()}else{window.setTimeout(B.obj.play.bind(B.obj),B.ritardo)}this.currentPlay.push(B.obj);B.play()}}.bind(this))}.bind(this))},run:function(){this.effects.each(function(A){if(!A.run&&A.ritardo==0){A.obj.play();A.play();this.currentPlay.push(A.obj)}else{if(!A.run){window.setTimeout(A.obj.play.bind(A.obj),A.ritardo);A.play();this.currentPlay.push(A.obj)}}}.bind(this))},stop:function(){this.isRun=false},pause:function(){this.allEff.reverse(false).each(function(A){A.stop()})},play:function(){this.currentPlay.each(function(A){A.play()})},rewind:function(A){this.allEff.reverse(false).each(function(B){B.stop();B.obj.rewind()});this.stop()}});TimeLineItem=Class.create({initialize:function(B,A){this.obj=B;this.ended=new Array;this.started=new Array;this.beforeStarted=new Array;this.ritardo=A;this.run=false},insertEnded:function(A){this.ended.push(A)},insertBeforeStarted:function(A){this.started.push(A)},insertStarted:function(A){this.beforeStarted.push(A)},stop:function(){this.run=false},play:function(){this.run=true},remove:function(A){this.ended.reject(function(B){return B.obj==A});this.ended.reject(function(B){return B.obj==A});this.ended.reject(function(B){return B.obj==A})}});IcyBase=Class.create(EventDispatcher,(function(){function H(P){this.defaultDuration=500,this.defaultTransition=Transition.linear,this.options=Object.extend(Object.clone({duration:this.defaultDuration,transition:this.defaultTransition}),P);this.animationIteration=null;this.playing=false;this.cycle=false;this.on={Ended:Prototype.emptyFunction,Started:Prototype.emptyFunction,Beforestarder:Prototype.emptyFunction};this.setOptions(P)}function K(P){Object.extend(this.options,P||{});return this}function N(){return this.options.duration}function G(){return this.playing}function J(P,Q){this.cycle=P=="none"?false:{type:P,count:Q||1,current:1};return this}function C(){if(this.playing){return }this.fireCall("beforeStarted");this.playing=true;if(this.animationIteration==null){this.animationIteration=0;this.initializeAnimation()}IcyTimer.register(this);this.fireCall("started");return this}function L(){this.fireCall("stopped");IcyTimer.unregister(this);this.playing=false;return this}function E(){this.stop();this.repaint(0);this.animationIteration=null;if(this.cycle){this.cycle.current=1}return this}function B(P){this.animationIteration+=P;if(this.animationIteration>this.getDuration()||this.animationIteration<0){this.repaint(this.animationIteration<0?0:1);if(this.cycle&&this.cycle.current<this.cycle.count){if(this.cycle.type=="loop"){this.cycle.current++;this.repaint(0);this.animationIteration=0}}else{this.stopAnimation();this.fireCall("ended");IcyTimer.unregister(this);this.animationIteration=null;this.playing=false;if(this.cycle){this.cycle.current=0}}}else{var Q=this.options.transition(this.animationIteration/this.getDuration(),this.animationIteration,0,1,this.getDuration());this.repaint(Q)}}function I(P){this.on.onEnded=P;return this}function F(P){this.on.onStarted=P;return this}function O(P){this.on.onBeforestarted=P;return this}function M(P){this.on.onStopped=P;return this}function A(P){var Q;switch(P.capitalize()){case"Ended":this.fire("anim:ended");if(Object.isFunction(this.on.onEnded)){this.on.onEnded(this)}break;case"Started":this.fire("anim:started");if(Object.isFunction(this.on.onStarted)){this.on.onStarted(this)}break;case"Beforestarted":this.fire("anim:beforestarted");if(Object.isFunction(this.on.onBeforestarted)){this.on.onBeforestarted(this)}break;case"Stopped":if(Object.isFunction(this.on.onStopped)){this.on.onStopped(this)}break}}function D(P){}return{initialize:H,setOptions:K,setAnimationType:J,getDuration:N,play:C,stop:L,rewind:E,isPlaying:G,timerUpdate:B,initializeAnimation:Prototype.emptyFunction,stopAnimation:Prototype.emptyFunction,repaint:D,fireCall:A,onStarted:F,onEnded:I,onBeforeStarted:O,onStopped:M}})());IcyAttribute=Class.create((function(){function F(N,O,M){this.key=N;this.from=O;this.to=M;this.type=A(this.from);this.unit=I(this.from);this.startVal=B(this.from,this.isColor());this.toVal=G(this)}function J(P){if(this.isNumber()){return E(this.startVal,this.toVal,P)+this.unit}else{var O=parseInt(E(this.startVal[0],this.toVal[0],P));var N=parseInt(E(this.startVal[1],this.toVal[1],P));var M=parseInt(E(this.startVal[2],this.toVal[2],P));return"rgb("+O+", "+N+", "+M+")"}}function H(M){if(M&&this.relative){this.from=M}this.startVal=B(this.from,this.isColor());this.relative=false;this.toVal=G(this)}function D(){return this.type=="Color"}function L(){return this.type=="Number"}function A(M){if(Object.isString(M)&&M.isColor()){return"Color"}else{return"Number"}}function I(N){var M;if(Object.isString(N)&&(M=N.match(/(\d+)([\w\%]*)/))){return M[2]}else{return""}}function B(N,M){if(M){return N.getRGB()}else{if(Object.isString(N)){return parseFloat(N)}else{return N}}}function G(M){if(M.isColor()){return M.to.getRGB()}else{if(Object.isString(M.to)){if(K(M.to)){return C(M)}else{return parseFloat(M.to)}}else{return M.to}}}function E(O,N,M){return O+(N-O)*M}function K(M){return M.match(/^([\+\-\*\/]=)(\d*)$/)}function C(N){N.relative=true;var M=K(N.to);if((M[1]=="-=")||(!M[1]=="+=")){return N.startVal-parseFloat(M[2])}else{if((M[1]=="+=")||(!M[1]=="-=")){return N.startVal+parseFloat(M[2])}else{if((M[1]=="*=")||(!M[1]=="/=")){return N.startVal*parseFloat(M[2])}else{if((M[1]=="/=")||(!M[1]=="*=")){return N.startVal/parseFloat(M[2])}}}}}return{initialize:F,convert:J,reset:H,isNumber:L,isColor:D}})());IcyTimer=(function(){var B=null,C=900/60,G=null,I=new Array();function H(K){if(!A(K)){I.push(K);D()}}function E(K){I=I.reject(function(L){return L==K});if(I.length==0){F()}}function A(K){return I.find(function(L){return L==K})}function D(){if(B==null){G=new Date().getTime();B=setInterval(J,C);J()}}function F(){if(B){clearInterval(B);B=null;G=0}}function J(){var L=new Date().getTime();var K=L-G;G=L;I.invoke("timerUpdate",K)}return{register:H,unregister:E,isObjectReg:A}})();Object.extend(String.prototype,{isColor:function(){return this.match(/^\#/)||this.match(/^rgb\(/)},getRGB:function(){function B(C){if(C.length==1){C+=C}return parseInt(C,16)}if(this.isColor()){var A;if(A=this.match(/(^rgb\()(\d+), (\d+), (\d+)(\))/i)){return[parseInt(A[2]),parseInt(A[3]),parseInt(A[4])]}if(A=this.match(/^\#([0-9a-f]{1})([0-9a-f]{1})([0-9a-f]{1})$/i)){return A.slice(1).collect(B)}if(A=this.match(/^\#([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})$/i)){return A.slice(1).collect(B)}}return null}});IcyObject=Class.create(IcyBase,(function(){function A($super,G,F){$super(F);this.element=$(G)}function E(F){this.originalAttributes=F;return this}function D(){this.attributes=this.attributes||C(this.originalAttributes,this.element);this.attributes.each(function(F){F.reset(this.element.getStyle(F.key))},this)}function C(F,G){var H=[];$H(F).each(function(I){H.push(new IcyAttribute(I.key,(G.getStyle(I.key)==null)?"0px":G.getStyle(I.key),I.value))});return H}function B(G){var F={};if(this.attributes!==undefined){this.attributes.each(function(H){F[H.key]=H.convert(G)},this);this.element.setStyle(F)}}return{initialize:A,set:E,initializeAnimation:D,repaint:B}})());