/**
 * $Id: mmcarousel.min.js 586 2010-10-13 12:11:19Z martin $
 */
var mmCarousel=new Class({moduleId:null,iCarousel:null,titles:null,total:null,aItemsLength:null,transition:null,options:{width:960,height:408,animationType:'scroll',animationDirection:'left',animationTransition:'linear',animationEase:'easeInOut',animationDuration:1000,rotateOnMouseOver:'stop',buttonWidth:165,ctrlAnimationTransition:'linear',ctrlAnimationEase:'easeInOut',ctrlAnimationDuration:750,onInitiated:Class.empty},initialize:function(moduleId,options){this.moduleId=moduleId;this.setOptions(options);if(this.options.animationEase!=''&&this.options.animationTransition!='linear')this.transition=Fx.Transitions[this.options.animationTransition][this.options.animationEase];else this.transition=Fx.Transitions[this.options.animationTransition];if(this.options.ctrlAnimationEase!=''&&this.options.ctrlAnimationTransition!='linear')this.ctrlTransition=Fx.Transitions[this.options.ctrlAnimationTransition][this.options.ctrlAnimationEase];else this.ctrlTransition=Fx.Transitions[this.options.ctrlAnimationTransition];this.titles=$$('#mmCarousel'+this.moduleId+'-controls li.title');this.container=$('mmCarousel'+this.moduleId+'-titles');this.total=this.titles.length;this.titles.each(function(el,i){var result=el.getText().split('::');if(result[1])el.setHTML('<span>'+this.truncate(result[0])+'</span>'+this.truncate(result[1]));else el.setHTML('<span>'+this.truncate(result[0])+'</span>');el.setStyle('width',(this.options.buttonWidth-el.getStyle('paddingLeft').toInt()-el.getStyle('paddingRight').toInt())+'px');}.bind(this));var wrapper;wrapper=this.container.getParent();this.stripContainerWidth=this.options.width-(wrapper.getPrevious().getStyle('width').toInt()+wrapper.getNext().getStyle('width').toInt());this.stripWidth=this.total*this.options.buttonWidth;wrapper.setStyles({overflow:'hidden',width:this.stripContainerWidth+'px',height:this.container.getChildren()[0].getStyle('height')});this.container.setStyle('width',this.stripWidth+'px');this.titles[0].addClass('active');this.fx=new Fx.Styles(this.container,{duration:this.options.ctrlAnimationDuration,wait:false,transition:this.ctrlTransition});var mmCarousel=this;this.iCarousel=new iCarousel('mmCarousel'+this.moduleId+'-items',{animation:{type:this.options.animationType,direction:this.options.animationDirection,duration:this.options.animationDuration,amount:1,transition:this.transition,rotate:{type:'manual',onMouseOver:this.options.rotateOnMouseOver}},item:{klass:'mmCarousel'+this.moduleId+'-item',size:(this.options.animationDirection=='top')?this.options.height:this.options.width},onGoTo:function(){mmCarousel.activate(this.aItems.length,this.atScreen);},onNext:function(){mmCarousel.activate(this.aItems.length,this.atScreen);},onPrevious:function(){mmCarousel.activate(this.aItems.length,this.atScreen);},idPrevious:'mmCarousel'+this.moduleId+'-previous',idNext:'mmCarousel'+this.moduleId+'-next'});this.titles.each(function(el,i){el.addEvent('click',function(event){new Event(event).stop();mmCarousel.iCarousel.goTo(i);});}.bind(this));this.initState();},activate:function(aItemsLength,atScreen){var titleIndex;titleIndex=-(aItemsLength/3-atScreen);if(titleIndex==(aItemsLength/3))titleIndex=0;this.titles.each(function(el){el.removeClass('active');});this.titles[titleIndex].addClass('active');var center,offset,stripPosition,stripCenter;if(this.stripWidth>this.stripContainerWidth){var fromLeft=this.options.buttonWidth*titleIndex+(this.options.buttonWidth/2);var fromRight=(this.options.buttonWidth*(this.total-(titleIndex+1)))+(this.options.buttonWidth/2);center=this.stripContainerWidth/2;if(fromLeft<=center){offset=0;}
if(fromLeft>center&&fromRight>=center){stripPosition=(this.options.buttonWidth*titleIndex)+(this.options.buttonWidth/2);stripCenter=this.stripContainerWidth/2;offset=stripPosition-stripCenter;}
if(fromRight<center){offset=(this.options.buttonWidth*this.total)-this.stripContainerWidth;}
this.fx.start({'margin-left':-offset+'px'});}},initState:function(){this.fireEvent("onInitialized",this);},truncate:function(string){if(string.length>25){var result=string.split(' ');string='';for(i=0;i<result.length;i++){if((string.length+result[i].length)<25)string=string+' '+result[i];}
string=string+' ...';}
return string;}});mmCarousel.implement(new Events,new Options);
