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']+ ' .slide');
		this.thumbs = $$("#"+options['thumbContainer']+' .thumb');
		
		this.timerTime =options['timedSwitch'];
		this.action =options['action'];
		
		if (this.autoRotator) {
			this.delayTimer = this.timedSwitch.periodical(this.timerTime,this);
		}
		
		this.slides.each(function(slide, index) {
				
			slide.setStyle('opacity',0);		
		});	
		
		this.curSlide = 0 ;			
		this.slides[0].setStyle('visibility','visible');
		this.slides[0].setStyle('opacity',1);
		
		if (this.thumbs.length > 0) {
		this.thumbs[0].addClass("active");
		
	
		
			if (this.action = "hover") {
			this.thumbs.each(function(thumb, index) {
			
				thumb.addEvent('mouseenter',this.showSlide.bindWithEvent(this,index));	
				
					
			}.bind(this));
			
			}
			else {
			
			this.thumbs.each(function(thumb, index) {
			
				thumb.addEvent('click',this.showSlide.bindWithEvent(this,index));	
				
					
			}.bind(this));
			}
		
		}
		
		
				
	},
		
	
	showSlide: function(e,slideToGo) {
					
					if (slideToGo != this.curSlide) {
					
						var goSlideN = new Fx.Tween (this.slides[slideToGo], {transition:Fx.Transitions.linear, duration:300, wait:true});
						var goSlideO = new Fx.Tween (this.slides[this.curSlide], {transition:Fx.Transitions.linear, duration:200, wait:true});
						
						if (this.thumbs.length > 0) {
							this.thumbs[slideToGo].addClass("active");
							this.thumbs[this.curSlide].removeClass("active");
						}
						
						goSlideO.start('opacity',0);
						goSlideN.start('opacity',1);					
						
						
						
						this.curSlide = slideToGo;
						
						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:300, wait:true});
							var goSlideO = new Fx.Tween (this.slides[this.curSlide], {transition:Fx.Transitions.linear, duration:200, wait:true});
							if (this.thumbs.length > 0) {
								this.thumbs[0].addClass("active");
								this.thumbs[this.curSlide].removeClass("active");
							}
							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);



