function SlideShow(id, img_dir, img_list, hold_time) {
	this.id = id;
	
	this.img_a_id = "img_a_"+this.id;
	this.div_a_id = "div_a_"+this.id;
	this.img_b_id = "img_b_"+this.id;
	this.div_b_id = "div_b_"+this.id;
	
	this.bottom_img_id = this.img_a_id;
	this.bottom_div_id = this.div_a_id;
	this.top_img_id = this.img_b_id;
	this.top_div_id = this.div_b_id; 
	
	this.img_a_active = true; //the displaying (bottom) image
	
	this.img_dir = img_dir;
	this.img_list = img_list;
	this.hold_time = hold_time; //how long, in seconds, each image is displayed

	this.img_index = 0;
	this.num_images = img_list.length;
	this.slide_interval = this.hold_time * 1000;
	this.timeout = null;
	
	this.initialize();
}

SlideShow.prototype.initialize = function() {
	this.preloadImages();
	setSrc(this.bottom_img_id, this.img_dir+this.img_list[this.img_index]);
	Opacity.setTransparent(this.top_img_id);
	this.timeout = setTimeout(this.id+".fadeToNextImage();", this.slide_interval);
}

SlideShow.prototype.preloadImages = function() {
	var img_objs = [];
	for (var i in this.img_list) {
		img_objs[i] = new Image();
		img_objs[i].src = this.img_dir+this.img_list[i];
	}
}

SlideShow.prototype.fadeToNextImage = function() {
	clearTimeout(this.timeout);
	this.img_index++;
	if (this.img_index == this.num_images) this.img_index = 0;
	setSrc(this.top_img_id, this.img_dir+this.img_list[this.img_index]);
	setDisplay(this.top_div_id, "block");
	Opacity.animateOpacity(this.top_img_id, 0, 100, 1.0, 30, this.id+".completeFadeAction()");
}

SlideShow.prototype.completeFadeAction = function() {
	setSrc(this.bottom_img_id, "common/images/spacer.gif");
	Opacity.setTransparent(this.bottom_img_id);
	setDisplay(this.bottom_div_id, "none");
	if (this.img_a_active) {
		setZIndex(this.div_b_id, 1);
		this.bottom_img_id = this.img_b_id;
		this.bottom_div_id = this.div_b_id;
		setZIndex(this.div_a_id, 2);
		this.top_img_id = this.img_a_id;
		this.top_div_id = this.div_a_id; 
		this.img_a_active = false;
	} else {
		setZIndex(this.div_a_id, 1);
		this.bottom_img_id = this.img_a_id;
		this.bottom_div_id = this.div_a_id;
		setZIndex(this.div_b_id, 2);
		this.top_img_id = this.img_b_id;
		this.top_div_id = this.div_b_id; 
		this.img_a_active = true;
	}
	this.timeout = setTimeout(this.id+".fadeToNextImage();", this.slide_interval);
}
