/**
 * A news rotator with prev/next implementation and ability to play/stop.
 * 
 * @version		1.0
 * 
 * @license		MIT-style license
 * @author		Djamil Legato <djamil [at] djamil.it>
 * @copyright	Author
 */

var NewsRotator=new Class({version:'1.3',options:{duration:1000,delay:5000,autoplay:false,corners:true,controls:true,autohide:false,blankimage:'/wp-content/themes/Flashlog/images/blank.png'},initialize:function(a,b){this.container=$(a);this.setOptions(b);this.images=this.container.getElements('.image > img');this.content=$$('#'+a+' .story-block div.story');this.current=0;this.build();this.attachEvents();this.status='stop';if(this.options.autoplay)window.addEvent('load',this.play.bind(this));return this},build:function(){var e=this;$$(this.content,this.images).setStyle('position','absolute');var f=this.images.slice(1);var g=this.content.slice(1);f.each(function(a){a.injectAfter(this.images[0]).setStyle('opacity',0)},this);g.each(function(a){a.injectAfter(this.content[0]).setStyle('opacity',0)},this);var h=$$('.story-block').slice(1);h.each(function(a){a.empty().remove()});var c=new Element('div',{'class':'controls'}).inject(this.container);this.arrowPrev=new Element('img',{'class':'control-prev','title':'Previous','alt':'prev','src':this.options.blankimage}).inject(c);this.arrowNext=new Element('img',{'class':'control-next','title':'Next','alt':'next','src':this.options.blankimage}).inject(c);this.arrowPlay=new Element('img',{'id':'play-stop','class':'control-stop','title':'Play/Stop','alt':'play/stop','src':this.options.blankimage}).inject(c);if(!this.options.controls)c.setStyle('display','none');if(this.options.autohide&&this.options.controls){var d=new Fx.Style(c,'opacity',{wait:false}).set(0);this.container.addEvents({'mouseenter':d.start.bind(d,1),'mouseleave':d.start.bind(d,0)})};if(this.options.corners){(this.images.length).times(function(b){(2).times(function(a){new Element('div',{'class':'i'+(a+1)}).inject(this.images[b])}.bind(this))}.bind(this))}(4).times(function(a){new Element('div',{'class':'corner c'+(a+1)}).inject(this.content[0].getParent())}.bind(this));this.fx=[];(this.content.length).times(function(a){this.fx[a]=[new Fx.Style(this.images[a],'opacity',{duration:this.options.duration,onStart:function(){e.transitioning=true},onComplete:function(){e.transitioning=false}}),new Fx.Style(this.content[a],'opacity',{duration:this.options.duration})]}.bind(this));return this},attachEvents:function(){var a=this,b=$('play-stop');this.arrowPrev.addEvent('click',this.previous.bind(this));this.arrowNext.addEvent('click',this.next.bind(this));this.arrowPlay.addEvent('click',function(){if(a.status=='play'){a.stop();b.className='control-play'}else{a.play();b.className='control-stop'}});return this},previous:function(){if(this.transitioning)return this;var b=(!this.current)?this.content.length-1:this.current-1;this.fx[this.current].each(function(a){a.start(0)});this.fx[b].each(function(a){a.start(1)});this.current=b;return this},next:function(){if(this.transitioning)return this;var b=(this.current==this.content.length-1)?0:this.current+1;this.fx[this.current].each(function(a){a.start(0)});this.fx[b].each(function(a){a.start(1)});this.current=b;return this},play:function(){if(this.status=='play')return this;this.status='play';this.timer=this.next.periodical(this.options.delay+this.options.duration,this);return this},stop:function(){this.status='stop';$clear(this.timer);return this}});NewsRotator.implement(new Events,new Options);