/*
Script Name: 	FX (http://jastegg.it/eggs/fx ) 
version: 		1.0 beta
version date:	2007-10-19
Plugin for:		JAST ( http://jastegg.it )
--------------------------------
*/
JASTEggIt.extend('fx',{info:{title:'FX - Effects',version:'1.0',eggUrl:'http://jastegg.it/eggs/fx',author:'Diego La Monica',url:'http://diegolamonica.info'},_fx:[],_queueCommands:null,_createEffect:function(options,queueIndex){var i=this._fx.length;options.done=false;this._fx[i]=options;if(queueIndex!=null)this._queueCommands[queueIndex].idx=i;return i;},_queue:function(){var q=this._queueCommands;if(q==null)return false;for(var i=0;i<q.length;i++){var idx=i;var itm=q[idx];if(itm.called&&itm.idx!=-1&&this._fx[itm.idx].done==false)return false;if(!itm.called&&itm.idx==-1){itm.called=true;itm.funct(itm.pid,idx);return true;}}},queueDone:function(idx){this._queueCommands[idx].done=true;},_fade:function(id,speed,step,limit,queueIndex){var obj=JASTEggIt._id(id);if(obj==null)return false;if(obj.inside)return false;obj.inside=true;if(obj.idx==null){obj.idx=this._createEffect({progress:(step>0?0:100),speed:speed==null?100:speed,step:step==null?1:step,limit:limit==null?(step>0?100:0):limit},queueIndex);this._fx[obj.idx].interval=setInterval('JASTEggIt.fx._fade(\''+id+'\')',speed);obj.inside=false;return true;}else{var idx=obj.idx;f=this._fx[idx];if(f.done){clearInterval(f.interval);obj.idx=null;obj.inside=null;return false;}f.progress+=f.step;if((f.progress>f.limit&&f.step>0)||(f.progress<f.limit&&f.step<0)){clearInterval(f.interval);f.done=true;obj.idx=null;obj.inside=null;return true;}}var s=obj.style;var op=f.progress;s.opacity=(op/100);s.MozOpacity=(op/100);s.KhtmlOpacity=(op/100);s.filter="alpha(opacity="+op+")";obj.inside=false;},fadeIn:function(id,speed,limit,step,queueIndex){if(step==null)step=1;if(step<0)step=step*-1;this._fade(id,speed,step,limit,queueIndex);},fadeOut:function(id,speed,limit,step,queueIndex){if(step==null)step=-1;if(step>0)step=step*-1;this._fade(id,speed,step,limit,queueIndex);},resize:function(id,from,to,speed,steps,queueIndex){var obj=JASTEggIt._id(id);if(obj.inside)return false;if(from=='original')from=JASTEggIt.DOM.realSize(obj);if(to=='original')to=JASTEggIt.DOM.realSize(obj);if(obj.idx==null){obj.idx=this._createEffect({from:from,to:to,stepW:(to.width-from.width)/steps,stepH:(to.height-from.height)/steps,steps:steps,current:0},queueIndex);this._fx[obj.idx].interval=setInterval('JASTEggIt.fx.resize(\''+id+'\')',speed);}else{var idx=obj.idx;var f=this._fx[idx];JASTEggIt.DOM.setStyle(obj,{width:(f.from.width+f.stepW*f.current)+'px',height:(f.from.height+f.stepH*f.current)+'px',overflow:'hidden'});f.current+=1;if(f.current>f.steps){clearInterval(f.interval);f.done=true;obj.idx=null;obj.inside=null;return true;}}obj.inside=false;},scroll:function(id,speed,step,limit,queueIndex){var w=JASTEggIt;var obj=w._id(id);if(obj.idx==null){if(obj.style.position!='relative')obj.style.position='relative';var l=w.DOM.style(obj,'left');l=parseInt(l.left);if(isNaN(l))l=0;obj.idx=this._createEffect({startFrom:l,limit:limit,step:step,increments:0},queueIndex);this._fx[obj.idx].interval=setInterval('JASTEggIt.fx.scroll(\''+id+'\')',speed);}else{var idx=obj.idx;var f=this._fx[idx];if(f.done){clearInterval(f.interval);obj.idx=null;return false;}limit=f.limit;step=f.step;this._fx[idx].increments+=step;obj.style.left=(f.startFrom+f.increments)+'px';if(((f.increments>=-f.limit)&&step>0)||((f.increments<=-f.limit)&&step<0)){clearInterval(f.interval);f.done=true;obj.idx=null;}}},queue:function(fnList){this._queueCommands=[];for(var i=0;i<fnList.length;i++){var itm=fnList[i];this._queueCommands[i]={pid:itm[0],funct:itm[1],called:false,idx:-1}}this._qi=setInterval('JASTEggIt.fx._queue()',100);}});