function processSlideshow(elem, imageList, imageDuration, fadeSpeed, current) {
	var listSize = imageList.length;
	if (currentTitleChange == null)
		var currentTitleChange;
	else
		clearTimeout(currentTitleChange);
	if (!current || current >= listSize) current = 0;
	if (!imageDuration) imageDuration = 5000;
	if (!fadeSpeed) fadeSpeed = 1000;
	// switch the next to the current
	var next = (current+1)%listSize;
	jQuery(elem + " #currentImage").css({ "background-image": "url(" + imageList[current].src + ")", "opacity": 1 });
	jQuery(elem + " #currentImage").attr("href", imageList[current].href);
	jQuery(elem + " #nextImage").css({ "background-image": "url(" + imageList[next].src + ")", "display": "none" });
	jQuery(elem + " #nextImage").attr("href", imageList[next].href);
	for (var i=0; i < listSize; i++) {
		jQuery("#slideNav"+i).removeClass("slideshowNumberSelected");
	}
	jQuery("#slideshowTitle").html(imageList[current].title);
	jQuery("#slideNav"+current).addClass("slideshowNumberSelected");
	if (imageList.length > 1) {
		jQuery(elem + " #currentImage").animate({ opacity: "1" }, imageDuration, function() {
			jQuery(elem + " #nextImage").css({ "background-image": "url(" + imageList[next].src + ")", "display": "block", "opacity" : 0 });
			currentTitleChange = setTimeout(function() {
				jQuery("#slideNav"+current).removeClass("slideshowNumberSelected");
				jQuery("#slideNav"+next).addClass("slideshowNumberSelected");
				jQuery("#slideshowTitle").html(imageList[next].title);
			}, (fadeSpeed/2));
			jQuery(elem + " #nextImage").animate({ opacity: "1" }, fadeSpeed);
			jQuery(elem + " #currentImage").animate({ opacity: "0" }, fadeSpeed, function() {
				processSlideshow(elem, imageList, imageDuration, fadeSpeed, current + 1);
			})
		});
	}

}