// ------------------------------------------------------
//	Carousel v1.0
//	by MrkEw NET
//  using Prototype Framework http://www.prototypejs.org
//        Scriptaculous Effects http://script.aculo.us/
// ------------------------------------------------------
var Carousel=Class.create();Carousel.prototype={cEl:null,cBox:null,itemClass:null,prevButton:null,nextButton:null,scrollInc:1,items:null,itemWidth:0,itemActual:0,itemsCount:0,itemsVisible:0,isMoreVisible:false,lastItemMove:0,lastDir:null,moveDur:.5,fadeDur:.25,circular:false,autoRun:false,autoRunStop:false,autoRunTimeout:null,autoRunDir:1,autoRunFreq:3,initialize:function(b,c,d,e,f){this.itemClass=d;this.cEl=$(b);this.cBox=$(c);this.items=$$("#"+c+" ."+this.itemClass);if(this.items.length==0)return;if(f!=null){if(f.autoRun!=null&&f.autoRun)this.autoRun=f.autoRun;if(f.autoRunDir!=null&&f.autoRunDir==-1)this.autoRunDir=-1;if(f.autoRunFreq!=null&&parseFloat(f.autoRunFreq)>0)this.autoRunFreq=f.autoRunFreq;if(f.circular!=null&&f.circular)this.circular=f.circular;if(f.scrollInc!=null&&parseInt(f.scrollInc)>0)this.scrollInc=parseInt(f.scrollInc);if(f.duration!=null&&parseFloat(f.duration)>0){this.moveDur=parseInt(f.duration*10/2)/10;this.fadeDur=parseInt(f.duration*10/4)/10;if(this.autoRun&&this.autoRunFreq<f.duration)this.autoRunFreq=f.duration}}this.itemsCount=this.items.length;this.itemWidth=this.items[0].getWidth();this.cBox.setStyle({width:(this.itemWidth*this.items.length)+"px"});var g=$(this.cBox.parentNode),br=parseInt(g.getStyle("borderLeftWidth"))+parseInt(g.getStyle("borderRightWidth")),bw=g.getWidth()-br,n=bw/this.itemWidth;this.itemsVisible=parseInt(n);this.isMoreVisible=(Math.ceil(n*10)/10)>this.itemsVisible;this.lastItemMove=((n*10)%10==0)?this.itemWidth:this.itemWidth-(bw-(this.itemsVisible*this.itemWidth));if(this.scrollInc>this.itemsVisible)this.scrollInc=this.itemsVisible;this.prevButton=$(e.prev);this.nextButton=$(e.next);this.prevButton.dirt=-1;this.nextButton.dirt=1;this.prevButton.observe("click",(function(a){this.move(a)}).bind(this));this.nextButton.observe("click",(function(a){this.move(a)}).bind(this));if(this.autoRun){var C=this;self.setTimeout(function(){C.slideIt()},this.autoRunFreq*1000)}},move:function(e){var a=Event.element(e);this.makeMove(a.dirt);this.autoRunStop=true;var C=this;clearTimeout(this.autoRunTimeout);this.autoRunTimeout=self.setTimeout(function(){C.restart()},3*this.autoRunFreq*1000)},makeMove:function(b){var c=b*this.scrollInc;var r=(b>0)?this.itemsCount-this.itemsVisible-this.itemActual:this.itemActual;var a=(this.circular)?this.itemActual+c:this.itemActual+(r!=0&&r<this.scrollInc?b*(r):c);if(a>=0&&(a+this.itemsVisible)<=this.itemsCount)return this.switchSlide(a-this.itemActual,b,a);else if(this.circular){var n,m=Math.abs(c)-r;for(var i=0;i<m;i++){n=(b<0)?this.itemsCount-m+i:i;this.cBox.removeChild(this.items[n]);if(b<0)this.cBox.insertBefore(this.items[n],this.items[0]);else this.cBox.appendChild(this.items[n])}var w=this.isMoreVisible&&this.itemActual!=0?this.lastItemMove:this.itemWidth,left=(b<0)?-(((this.scrollInc-1)*this.itemWidth)+w):-((this.itemsCount-this.itemsVisible-this.scrollInc-1)*this.itemWidth+w);this.items=$$("#"+this.cBox.id+" ."+this.itemClass);this.cBox.absolutize().setStyle({left:left+"px"}).relativize();return this.switchSlide(c,b,(b<0)?0:this.itemActual+r)}return false},switchSlide:function(b,c,a){var w=this.itemWidth;if(!(this.lastDir==null&&c<0)&&(this.lastDir!=c||(this.lastDir!=c&&c<0&&this.itemActual!=0)))w=this.lastItemMove;new Effect.Fade(this.cBox,{duration:this.fadeDur,from:1,to:.7,queue:{position:"end",scope:this.cBox.id}});new Effect.Move(this.cBox,{x:-c*((Math.abs(b)-1)*this.itemWidth+w),y:0,mode:"relative",duration:this.moveDur,queue:{position:"end",scope:this.cBox.id}});new Effect.Fade(this.cBox,{duration:this.fadeDur,from:.8,to:1,queue:{position:"end",scope:this.cBox.id}});this.itemActual=a;this.lastDir=c;return true},slideIt:function(){if(this.autoRun&&!this.autoRunStop){while(!this.makeMove(this.autoRunDir))this.autoRunDir=this.autoRunDir*-1;var C=this;self.setTimeout(function(){C.slideIt()},this.autoRunFreq*1000)}},restart:function(){this.autoRunStop=false;this.autoRunDir=this.lastDir;this.slideIt()}}