var ExinitFX=new Class({Implements:[Events,Options],overallContainer:'exinitFXouter',processedContainer:'exinitFXinner',itemsContainer:'exinitFXitems',tabsContainer:'exinitFXtabsContainer',announceContainer:'exinitFXannounce',counterContainer:'exinitFXcounter',pausePlayContainer:'exinitFXpauseplayContainer',itemsSelector:'.exinitFXitem',navigation:{next:'.exinitFXnext',prev:'.exinitFXprev'},announce:{next:'.exinitFXnextTitle',prev:'.exinitFXprevTitle'},items:[],startIndex:1,currentIndex:0,prevIndex:0,totalItems:0,autoPlay:false,direction:1,timer:null,processor:null,options:{enableFX:true,itemsVisible:1,itemsToProcess:1,height:null,width:800,slideVertical:false,showPrevNext:false,showTabs:false,showAnnounce:false,showPlayPause:false,showCounter:false,duration:300,direction:1,autoTrigger:false,triggerInterval:5000,mouseWheelNav:false,startIndex:null,transition:Fx.Transitions.linear},initialize:function(options){this.setOptions(options);if(this.options.overallContainer){this.overallContainer=this.options.overallContainer;}if(this.options.processedContainer){this.processedContainer=this.options.processedContainer;}if(this.options.itemsContainer){this.itemsContainer=this.options.itemsContainer;}if(this.options.tabsContainer){this.tabsContainer=this.options.tabsContainer;}if(this.options.announceContainer){this.announceContainer=this.options.announceContainer;}if(this.options.counterContainer){this.counterContainer=this.options.counterContainer;}if(this.options.pausePlayContainer){this.pausePlayContainer=this.options.pausePlayContainer;}if($(this.itemsContainer)){this.items=$(this.itemsContainer).getElements(this.itemsSelector);}if(this.items.length<=this.options.itemsVisible){return;}this.addEvent('change',this.onChange);this.currentIndex=0;this.direction=this.options.direction;if(this.options.startIndex&&this.options.startIndex>0&&this.options.startIndex<this.items.length){this.startIndex=this.options.startIndex;}if(this.options.itemsToProcess==1){this.options.itemsToProcess=1;}if(this.options.showPrevNext){this.initializeNextPrevButtons();}if(this.options.showTabs){this.initializeTabs();}if(this.options.showCounter){this.initializeCounter();}if(this.options.showAnnounce){this.initializeAnnounce();}if(this.options.showPlayPause){this.initializePlayPauseButton();}this.initializeItems();this.initializeContainer();this.start();if(this.startIndex>1){this.process(this.startIndex-1,true,true);}if(this.options.autoTrigger){this.autoPlay=true;this.play(true);}},start:function(){},previous:function(manual){this.processor='previous';var index=(this.currentIndex-this.options.itemsToProcess+1>0?this.currentIndex-this.options.itemsToProcess:this.items.length-this.options.itemsToProcess);this.process(index,manual);return false;},next:function(manual){this.processor='next';var index=(this.currentIndex+this.options.itemsToProcess-1<this.items.length-1?this.currentIndex+this.options.itemsToProcess:0);this.process(index,manual);return false;},scrollTo:function(index){this.processor='scrollTo';this.process(index,true);return false;},preProcess:function(manual){if(manual){this.stop();}},process:function(index,manual,noFX){if(!noFX||noFX=='undefined'||noFX==null){noFX=!this.options.enableFX;}if(index!=this.currentIndex){this.preProcess(manual);this.prevIndex=this.currentIndex;this.currentIndex=index;this.previousIndex=this.currentIndex+(this.currentIndex>0?-1:this.items.length-1);this.nextIndex=this.currentIndex+(this.currentIndex<this.items.length-1?1:1-this.items.length);this.doProcess(noFX);this.postProcess(manual);}},doProcess:function(noFX){},postProcess:function(manual){if(manual){this.stop();}if(this.options.showTabs){this.updateTabs();}if(this.options.showCounter){this.updateCounter();}if(this.options.showAnnounce){this.updateAnnounce();}if(manual&&this.autoPlay){this.play(true);}},play:function(wait){this.stop();this.isPlaying=true;if(!wait){switch(this.direction){case 1:this.next(false);break;case-1:this.previous(false);break;}}switch(this.direction){case 1:this.timer=this.next.periodical(this.options.triggerInterval,this,false);break;case-1:this.timer=this.previous.periodical(this.options.triggerInterval,this,false);break;}},stop:function(){this.isPlaying=false;$clear(this.timer);},initializeItems:function(){if(this.options.slideVertical){this.itemWidth=parseInt(this.options.width);this.itemHeight=Math.floor(parseInt(this.options.height)/parseInt(this.options.itemsVisible));}else{this.itemWidth=Math.floor(parseInt(this.options.width)/parseInt(this.options.itemsVisible));this.itemHeight=parseInt(this.options.height);}var styles=new Hash();styles.include('width',this.itemWidth);styles.include('height',this.itemHeight);this.items.each(function(item){item.setStyles(styles);if(this.options.autoTrigger){this.assignAutoTriggerEvents(item);}}.bind(this));},initializeContainer:function(){var overallStyles=new Hash();var processedStyles=new Hash();var itemStyles=new Hash();overallStyles.include('position','relative');overallStyles.include('width',this.itemWidth);processedStyles.include('position','relative');processedStyles.include('overflow','hidden');processedStyles.include('width',this.itemWidth);processedStyles.include('height',this.itemHeight);itemStyles.include('position','relative');itemStyles.include('width',this.itemWidth);itemStyles.include('height',this.itemHeight);$(this.overallContainer).setStyles(overallStyles);$(this.processedContainer).setStyles(processedStyles);$(this.itemsContainer).setStyles(itemStyles);if($(this.tabsContainer)){var tabsStyles=new Hash();tabsStyles.include('width',this.itemWidth);$(this.tabsContainer).setStyles(tabsStyles);}if($(this.announceContainer)){var announceStyles=new Hash();announceStyles.include('width',this.itemWidth);$(this.announceContainer).setStyles(announceStyles);}if($(this.counterContainer)){var counterStyles=new Hash();counterStyles.include('width',this.itemWidth);$(this.counterContainer).setStyles(counterStyles);}},initializeNextPrevButtons:function(){if(this.items.length<=this.options.itemsVisible){return;}this.nextButton=$(this.overallContainer).getElement(this.navigation.next);this.prevButton=$(this.overallContainer).getElement(this.navigation.prev);if(this.nextButton){this.nextButton.addEvent('click',this.next.pass(true,this));}if(this.prevButton){this.prevButton.addEvent('click',this.previous.pass(true,this));}},initializeTabs:function(){this.tabsUL=$(this.tabsContainer).getElement('ul');if(this.tabsUL){this.tabs=this.tabsUL.getElements('li');var i=0;this.tabs.each(function(tab){tab.addEvent('click',this.scrollTo.pass(i,this));i++;}.bind(this));this.updateTabs();}},initializeCounter:function(){if($(this.counterContainer)){this.counter=$(this.counterContainer);this.updateCounter(this.startIndex);}},initializeAnnounce:function(){this.nextTitle=$(this.announceContainer).getElement(this.announce.next);this.prevTitle=$(this.announceContainer).getElement(this.announce.prev);if(this.nextTitle){this.nextTitle.addEvent('click',this.next.pass(true,this));}if(this.prevTitle){this.prevTitle.addEvent('click',this.previous.pass(true,this));}},initializePlayPauseButton:function(){this.pausePlay=$(this.pausePlayContainer).getElement('.exinitFXpausePlay');;if(this.pausePlay){if(this.options.autoTrigger){this.pausePlay.addClass('play').set('title','Playing. Click to pause.');}else{this.pausePlay.addClass('play pause').set('title','Paused. Click to start.');;}this.pausePlay.addEvent('click',function(event){new Event(event).stop();if(this.isPlaying){this.pausePlay.addClass('pause').set('title','Paused. Click to start.');this.autoPlay=false;this.stop();}else{this.pausePlay.removeClass('pause').set('title','Playing. Click to pause.');this.autoPlay=true;this.play(true);}}.bind(this));}},assignAutoTriggerEvents:function(item){if(item){item.addEvent('mouseenter',function(){if(this.autoPlay){this.stop(true);}}.bind(this));item.addEvent('mouseleave',function(){if(this.autoPlay){this.play(true);}}.bind(this));};},updateTabs:function(){var i=0;this.tabs.each(function(tab){if(i==this.currentIndex){tab.addClass('current');}else{tab.removeClass('current');}i++;}.bind(this));},updateCounter:function(){if(this.counter){this.counter.set('html',((this.currentIndex+1)+' / '+this.items.length));}},updateAnnounce:function(){var prev=this.currentIndex-1<0?this.items.length-1:this.currentIndex-1;var next=this.currentIndex+1>=this.items.length?0:this.currentIndex+1;if(this.prevTitle){if(this.items[prev].getElement('h1')){this.prevTitle.set('html','« '+this.items[prev].getElement('h1').get('text'));}}if(this.nextTitle){if(this.items[next].getElement('h1')){this.nextTitle.set('html',this.items[next].getElement('h1').get('text')+' »');}}}});
