function Slideshow(id, duration, maxWidth, maxHeight) {

	this.id = id;
	this.elem = get(this.id);

	children = this.elem.childNodes;

	images = this.elem.getElementsByTagName('img');
	this.image = images[0];

	divs = this.elem.getElementsByTagName('div');
	this.controls = divs[1];
	this.caption = divs[2];

	buttons = divs[1].getElementsByTagName('a');
	this.button = buttons[1];

	this.duration = duration*1000;
	this.maxWidth = maxWidth;
	this.maxHeight = maxHeight;

	this.slides = new Array();
	this.currentSlide = 0;
	this.paused = false;

	this.next = function(manual) {
		if(!this.paused || manual) {
			this.currentSlide = this.currentSlide+1 > this.slides.length-1 ? 0 : this.currentSlide+1;
			this.image.src = this.slides[this.currentSlide][0];
			var caption = this.slides[this.currentSlide][1];
			this.caption.innerHTML = caption ? caption : '&nbsp;';
		}
		if(manual) this.pause();
		if(!this.paused && !manual) this.play();
	}
	this.prev = function() {
		this.currentSlide = this.currentSlide-1 < 0 ? this.slides.length-1 : this.currentSlide-1;
		this.image.src = this.slides[this.currentSlide][0];
		var caption = this.slides[this.currentSlide][1];
		this.caption.innerHTML = caption ? caption : '&nbsp;';
		this.pause();
	}
	this.toggle = function() {
		if(this.paused) this.play();
		else this.pause();
	}
	this.play = function() {
		this.paused = false;
		this.button.className = 'pause';
		setTimeout(this.id + ".next();", this.duration);
	}
	this.pause = function() {
		this.paused = true;
		this.button.className = 'play';
	}
	this.addSlide = function(src, caption) {
		i = this.slides.length;
		this.slides[i] = new Array(src, caption);
	}
}