Effect.Wait=Class.create();Object.extend(Object.extend(Effect.Wait.prototype,Effect.Base.prototype),{initialize:function(element){this.element=$(element);if(!this.element)throw(Effect._elementDoesNotExistError);var options=Object.extend({},arguments[1]||{});this.start(options);}});if(typeof(AC)=="undefined")AC={};AC.CrossfadeQueue=Class.create();AC.CrossfadeQueue.prototype={index:0,queue:null,container:null,scope:null,safetyDiv:null,delay:6.0,fadeInTime:0.5,fadeOutTime:0.5,defaultQueueName:"defaultXFadeQueue",currentNode:null,stopped:false,initialize:function(nodes,container,delay,queueName,fadeInTime,fadeOutTime){this.container=$(container);this.scope=container;this.queue=$A(nodes);if(delay!=null)this.delay=delay;if(queueName!=null)this.defaultQueueName=queueName;if(fadeInTime!=null)this.fadeInTime=fadeInTime;if(fadeOutTime!=null)this.fadeOutTime=fadeOutTime;if(typeof(this.queue[0])=="string"){this.container.innerHTML="";}else{for(var i=0;i<this.queue.length;i++){this.queue[i].parentNode.removeChild(this.queue[i]);}}this.next();},pauseTimeStamp:null,pause:function(){this.pauseTimeStamp=new Date().getTime();var queue=Effect.Queues.get(this.defaultQueueName);if(queue.interval)clearInterval(queue.interval);Element.setOpacity(this.currentNode,1.0);},stop:function(){this.stopped=true;this.pause();},play:function(){this.stopped=false;this.resume();},resume:function(){if(this.stopped){return;}var queue=Effect.Queues.get(this.defaultQueueName);var delay=new Date().getTime()-this.pauseTimeStamp;queue.each(function(e){e.startOn+=delay;e.finishOn+=delay;});queue.interval=setInterval(queue.loop.bind(queue),40);},remove:function(element){Element.setStyle(element,{zIndex:'0'});Element.remove(element);},next:function(){if(this.index>this.queue.length-1){this.index=0;}if(this.currentNode){Element.setStyle(this.currentNode,{zIndex:'2'});new Effect.Opacity(this.currentNode,{duration:this.fadeOutTime,transition:Effect.Transitions.linear,from:1.0,to:0.0,afterFinish:this.remove.bind(this,this.currentNode)});}this.currentNode=this.createNode();new Effect.Wait(this.currentNode,{duration:this.delay,queue:{position:'end',scope:this.defaultQueueName},afterFinish:this.next.bind(this)});this.index++;},createNode:function(){var node=this.queue[this.index];if(typeof(node)=='string'){node=document.createElement('div');node.innerHTML=this.queue[this.index];}Element.setOpacity(node,1.0);Element.setStyle(node,{position:'absolute'});Element.addClassName(node,'ACCrossfadeQueueElement');node.mouseover=this.pause.bind(this);node.mouseout=this.resume.bind(this);this.container.appendChild(node);return node;}}function InitCrossFade(){if(arguments.length>0){var nodes=$A(InitCrossFade.arguments);var objectReference=nodes.shift();var holdTime=(typeof(nodes[nodes.length-1])=="number")?nodes.pop():Math.floor(Math.random()*5)+3;new AC.CrossfadeQueue(nodes,objectReference,holdTime);}}