
ART.FX={_shades:{0:'ffffff',1:'ffffee',2:'ffffdd',3:'ffffcc',4:'ffffbb',5:'ffffaa',6:'ffff99'},highlight:function(elm,options){var base=new ART.FX.Base();base.elm=ART.GE(elm);base.set_options(options);base.options.duration=600;ART.update(base,{increase:function(){if(this.now==7)elm.style.backgroundColor='#fff';else elm.style.backgroundColor='#'+ART.FX._shades[Math.floor(this.now)];}});return base.custom(6,0);},set_fade:function(elm,options){var _fade=new ART.FX.Style(elm,'opacity',options);return _fade.custom(options.from,options.to);},slide_vert:function(elm,options){if(!options.from)options.from=0;if(!options.to)options.to=ART.absolute_pos(elm).y;var _top=new ART.FX.Style(elm,'top',options);return _top.custom(options.from,options.to);},slide_hor:function(elm,options){if(!options.from)options.from=0;if(!options.to)options.to=ART.absolute_pos(elm).x;var _left=new ART.FX.Style(elm,'left',options);return _left.custom(options.from,options.to);},set_width:function(elm,options){if(!options.from)options.from=elm.offsetWidth;if(!options.to)options.to=elm.offsetWidth;var _width=new ART.FX.Style(elm,'width',options);return _width.custom(options.from,options.to);},set_height:function(elm,options){if(!options.from)options.from=elm.offsetHeight;if(!options.to)options.to=elm.offsetHeight;var _height=new ART.FX.Style(elm,'height',options);return _height.custom(options.from,options.to);}};ART.FX.Base=new ART.Class({init:function(){ART.bind_methods(this);},set_options:function(options){this.options=ART.update({on_start:function(){},on_complete:function(){},transition:ART.FX.Transitions.sineInOut,duration:500,wait:true,fps:50},options||{});},step:function(){var time=new Date().getTime();if(time<this.time+this.options.duration){this.c_time=time-this.time;this.set_now();}else{setTimeout(ART.bind(this.options.on_complete,this,[this.elm]),10);this.clear_timer();this.now=this.to;}this.increase();},set_now:function(){this.now=this.compute(this.from,this.to);},compute:function(from,to){var change=to-from;return this.options.transition(this.c_time,from,change,this.options.duration);},clear_timer:function(){clearInterval(this.timer);this.timer=null;return this;},_start:function(from,to){if(!this.options.wait)this.clear_timer();if(this.timer)return;setTimeout(ART.partial(this.options.on_start,this.elm),10);this.from=from;this.to=to;this.time=new Date().getTime();this.timer=setInterval(this.step,Math.round(1000/this.options.fps));return this;},custom:function(from,to){return this._start(from,to);},set:function(to){this.now=to;this.increase();return this;},set_style:function(elm,property,val){if(this.property=='opacity')ART.set_opacity(elm,val);else ART.set_style(elm,property,val);}});ART.FX.Style=ART.FX.Base.extend({init:function(elm,property,options){this.parent();this.elm=elm;this.set_options(options);this.property=property;},increase:function(){this.set_style(this.elm,this.property,this.now);}});ART.FX.Styles=ART.FX.Base.extend({init:function(elm,options){this.parent();this.elm=ART.GE(elm);this.set_options(options);this.now={};},set_now:function(){for(p in this.from){this.now[p]=this.compute(this.from[p],this.to[p]);}},custom:function(obj){if(this.timer&&this.options.wait)return;var from={};var to={};for(p in obj){from[p]=obj[p][0];to[p]=obj[p][1];}return this._start(from,to);},increase:function(){for(var p in this.now){this.set_style(this.elm,p,this.now[p]);}}});ART.FX.Transitions={linear:function(t,b,c,d){return c*t/d+b;},quadIn:function(t,b,c,d){return c*(t/=d)*t+b;},quadOut:function(t,b,c,d){return-c*(t/=d)*(t-2)+b;},quadInOut:function(t,b,c,d){if((t/=d/2)<1)return c/2*t*t+b;return-c/2*((--t)*(t-2)-1)+b;},cubicIn:function(t,b,c,d){return c*(t/=d)*t*t+b;},cubicOut:function(t,b,c,d){return c*((t=t/d-1)*t*t+1)+b;},cubicInOut:function(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;},quartIn:function(t,b,c,d){return c*(t/=d)*t*t*t+b;},quartOut:function(t,b,c,d){return-c*((t=t/d-1)*t*t*t-1)+b;},quartInOut:function(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;},quintIn:function(t,b,c,d){return c*(t/=d)*t*t*t*t+b;},quintOut:function(t,b,c,d){return c*((t=t/d-1)*t*t*t*t+1)+b;},quintInOut:function(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;},sineIn:function(t,b,c,d){return-c*Math.cos(t/d*(Math.PI/2))+c+b;},sineOut:function(t,b,c,d){return c*Math.sin(t/d*(Math.PI/2))+b;},sineInOut:function(t,b,c,d){return-c/2*(Math.cos(Math.PI*t/d)-1)+b;},expoIn:function(t,b,c,d){return(t==0)?b:c*Math.pow(2,10*(t/d-1))+b;},expoOut:function(t,b,c,d){return(t==d)?b+c:c*(-Math.pow(2,-10*t/d)+1)+b;},expoInOut:function(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;},circIn:function(t,b,c,d){return-c*(Math.sqrt(1-(t/=d)*t)-1)+b;},circOut:function(t,b,c,d){return c*Math.sqrt(1-(t=t/d-1)*t)+b;},circInOut:function(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;},elasticIn:function(t,b,c,d,a,p){if(t==0)return b;if((t/=d)==1)return b+c;if(!p)p=d*.3;if(!a)a=1;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;},elasticOut:function(t,b,c,d,a,p){if(t==0)return b;if((t/=d)==1)return b+c;if(!p)p=d*.3;if(!a)a=1;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;},elasticInOut:function(t,b,c,d,a,p){if(t==0)return b;if((t/=d/2)==2)return b+c;if(!p)p=d*(.3*1.5);if(!a)a=1;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;},backIn:function(t,b,c,d,s){if(!s)s=1.70158;return c*(t/=d)*t*((s+1)*t-s)+b;},backOut:function(t,b,c,d,s){if(!s)s=1.70158;return c*((t=t/d-1)*t*((s+1)*t+s)+1)+b;},backInOut:function(t,b,c,d,s){if(!s)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;},bounceIn:function(t,b,c,d){return c-FX.Transitions.bounceOut(d-t,0,c,d)+b;},bounceOut:function(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;}},bounceInOut:function(t,b,c,d){if(t<d/2)return FX.Transitions.bounceIn(t*2,0,c,d)*.5+b;return FX.Transitions.bounceOut(t*2-d,0,c,d)*.5+c*.5+b;}};