var micScroll = new Class({

    options: {
		container: null,
		thumbContainer: null,
		speed: 500,
		autoRotator:false,
		timedSwitch:5000
		
	},
	
	initialize: function(options) {
	
		
	
		this.setOptions(options);
		this.container = $(options['container']);
		this.thumbContainer = $(options['thumbContainer']);
		this.speed = options['speed'];
		this.autoRotator = options['autoRotator'];
		
		this.slides =$$("#"+options['container']+ ' .banner');
		this.thumbs = $$("#"+options['thumbContainer']+' .bannerNavitem');
		
		this.timerTime =options['timedSwitch'];
		
		if (this.autoRotator) {
			this.delayTimer = this.timedSwitch.periodical(this.timerTime,this);
		}
		
		this.curSlide = 0 ;			
		this.slides[0].setStyle('visibility','visible');
		this.thumbs[0].addClass("active");
		this.thumbs[0].setStyle('width',158);
		this.action = false;	
				
		
		this.thumbs.each(function(thumb, index) {
			
			
			
			
			thumb.addEvent('mouseover',this.showSlide.bindWithEvent(this,index));	
			
				
		}.bind(this));
				
	},
	
			
	
	showSlide: function(e,slideToGo) {

					if ((slideToGo != this.curSlide)&&(this.action != true)) {

						this.action = true;				
						
						var goSlideN = new Fx.Tween (this.slides[slideToGo], {transition:Fx.Transitions.linear, duration:800, wait:true});
						var goSlideO = new Fx.Tween (this.slides[this.curSlide], {transition:Fx.Transitions.linear, duration:500, wait:true});
						
						var goThumbN = new Fx.Tween (this.thumbs[slideToGo], {transition:Fx.Transitions.linear, duration:500, wait:true});
						var goThumbO = new Fx.Tween (this.thumbs[this.curSlide], {transition:Fx.Transitions.linear, duration:300, wait:true});

						
						
						goSlideN.addEvent('complete',function() {this.action = false;}.bindWithEvent(this));

						
						this.thumbs[slideToGo].addClass("active");
						this.thumbs[this.curSlide].removeClass("active");
						
						this.curSlide = slideToGo;
						goThumbN.start('width',138,158);
						goThumbO.start('width',158,138);
						
						
						goSlideN.start('opacity',0,1);
						goSlideO.start('opacity',1,0);
						
						
						if (this.autoRotator) {
							this.delayTimer = $clear(this.delayTimer);
							this.delayTimer = this.timedSwitch.periodical(this.timerTime,this);
						}
						
					}
					
				
				
	},
	
	
	timedSwitch: function() {
				if (this.curSlide == this.slides.length - 1) {
							var goSlideN = new Fx.Tween (this.slides[0], {transition:Fx.Transitions.linear, duration:800, wait:true});
							var goSlideO = new Fx.Tween (this.slides[this.curSlide], {transition:Fx.Transitions.linear, duration:500, wait:true});
							var goThumbN = new Fx.Tween (this.thumbs[0], {transition:Fx.Transitions.linear, duration:500, wait:true});
							var goThumbO = new Fx.Tween (this.thumbs[this.curSlide], {transition:Fx.Transitions.linear, duration:300, wait:true});
							
								this.thumbs[0].addClass("active");
								this.thumbs[this.curSlide].removeClass("active");
	
							goThumbN.start('width',138,158);
							goThumbO.start('width',158,138);
							goSlideN.start('opacity',1);
							goSlideO.start('opacity',0);
							this.curSlide = 0;
							this.delayTimer = $clear(this.delayTimer);
							this.delayTimer = this.timedSwitch.periodical(this.timerTime,this);			
				}
				
				else {
				this.showSlide(this,this.curSlide+1);
				}
	}


	
	
	
			
				
});

micScroll.implement(new Options, new Events);


