function Slider(config) {

	var Slider = this;
	var Slides = [];
	var Pagers = [];
	var Nextbutton = [];

	Slider.active = 0;
	stopstartbutton = config.pausebutton;

	Nextbutton = config.nextbutton;
	Prevbutton = config.prevbutton;
	timeoutspeed = config.timeoutspeed;

	// var pauseButton = config.pausebutton;

	Slider.init = function() {
		build();
		activate(0);
		return this;
	}
	
	Slider.goTo = function(index){
		activate(index);
		return this;
	};
	
	Slider.next = function(){

		/* If we're on the last slide, go to the first */
		if( Slider.active == Slides.length - 1 ){
			activate(0);
		}
		else {
			activate(Slider.active + 1);
		}
		return this;
	};

	Slider.prev = function(){
		/* If we're on the first slide, go to the last */
		if( Slider.active == 0 ){
			activate(Slides.length - 1);
		}
		else {
			activate(Slider.active - 1);
		}
		return this;
	};

	Slider.auto = function() {
		for (var i = 0; i < Slides.length; i++) {
			if( Slider.active == Slides.length - 1 ){
				activate(0);
			}
			else {
				activate(i);
			}
		}
	}

	// private

	$(Nextbutton).click(function() {
		Slider.next();
		$.doTimeout('mainslider', timeoutspeed, function() {
			Slider.next();
			return true;
		});
	});

	$(Prevbutton).click(function() {
		Slider.prev();
		$.doTimeout('mainslider', timeoutspeed, function() {
			Slider.prev();
			return true;
		});
	});


	function build() {
		$(config.sliderElements).each(function() {
			Slides.push( new Slide($(this), Slider).init() );
		});

		$(config.pager).each(function() {
			Pagers.push( new Pager($(this), Slider).init() );
		});

	}
	function activate(index){
		Slides[Slider.active].deactivate();
		Slides[index].activate();
		// Pagers[Slider.active].deactivate();
		// Pagers[index].activate();
		Slider.active = index;
		return index;
	}


}
