function SlideShow() {
	this.slides			= new Array();
	this.numSlides		= 0;
	this.pos			= 0;
	this.interval		= null;
	this.slideInterval	= 8000;
	this.fadeDuration	= 1500;
	this.running		= false;
}

SlideShow.prototype.addSlides = function(slides) {
	
	var length		= slides.length;
	var offset		= this.numSlides
	for (var i = 0; i < length; i++) {
		
		if (offset == 0 && i == 0) {
			$(slides[i]).css('opacity', 0.99);
			$(slides[i]).css('display', 'block');
		} else {
			$(slides[i]).css('opacity', 0);
			$(slides[i]).css('display', 'none');
		}
		
		if (i > 0) {
			$(slides[i]).css('opacity', 0);
			$(slides[i]).css('display', 'none');
		}
		
		this.slides[offset + i] = slides[i];
	}
	this.numSlides += length;
}

SlideShow.prototype.nextSlide = function() {
	var nextPos = (this.pos + 1 >= this.numSlides) ? 0 : this.pos + 1;
	this.showSlide(nextPos);
}

SlideShow.prototype.prevSlide = function() {
	var prevPos = (this.pos == 0) ? this.numSlides - 1: this.pos - 1;
	this.showSlide(prevPos);
}

SlideShow.prototype.showSlide = function(pos) {

	// Now fadeout current slide, revealing new
	for (var i = 0;i < this.numSlides; i++) {

		if (i == pos) {
			this.pos = pos;
			var self = this;
			$(this.slides[i]).css('display', 'block');
			
			$(this.slides[i]).animate({opacity: 0.99}, this.fadeDuration);
		} else {			
			$(this.slides[i]).animate({opacity: 0}, this.fadeDuration, function(){
				$(this).css('display', 'none');
			});
		}
	}
}

SlideShow.prototype.start = function() {
	if (this.numSlides < 2 || this.running) {
		return;
	}
	this.running 	= true;
	var self		= this; // Hooray for closures!!
	this.interval = window.setInterval(function() {
		self.nextSlide();
	}, this.slideInterval);
}

SlideShow.prototype.stop = function() {
	window.clearInterval(this.interval);
	this.running = false;
}
