var currentSlideshowImage;
var isPaused = false;
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;
	currentSlideshowImage = current;
	//alert("image to: "+imageList[current].src);
	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");
	}
	//alert("showing: "+current);
	jQuery("#slideshowTitle").html(imageList[current].title);
	jQuery("#slideshowCaption").html(imageList[current].caption);
	
	jQuery("#slideNav"+current).addClass("slideshowNumberSelected");
	if ((imageList.length > 1) && (imageDuration != -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);
				jQuery("#slideshowCaption").html(imageList[next].caption);
			}, (fadeSpeed/2));
			jQuery(elem + " #nextImage").animate({ opacity: "1" }, fadeSpeed);
			jQuery(elem + " #currentImage").animate({ opacity: "0" }, fadeSpeed, function() {
				processSlideshow(elem, imageList, imageDuration, fadeSpeed, current + 1);
			})
		});
	}

}

function goToSlide(slideNumber) {
	$("#slideshow #currentImage").stop();
	$("#slideshow #nextImage").stop();
	processSlideshow("#slideshow", slideshowImages, 5000, 1000, slideNumber);
}

function goToPreviousSlide() {
	$("#slideshow #currentImage").stop();
	$("#slideshow #nextImage").stop();
	var previousSlide = currentSlideshowImage-1;
	if (previousSlide < 0)
		previousSlide = slideshowImages.length-1;
	processSlideshow("#slideshow", slideshowImages, 5000, 1000, previousSlide);
}

function goToNextSlide() {
	$("#slideshow #currentImage").stop();
	$("#slideshow #nextImage").stop();
	processSlideshow("#slideshow", slideshowImages, 5000, 1000, currentSlideshowImage+1);
}

function pauseSlideShow() {
	$("#slideshow #currentImage").stop();
	$("#slideshow #nextImage").stop();
	isPaused = true;
	processSlideshow("#slideshow", slideshowImages, -1, 1000, currentSlideshowImage);
}

function resumeSlideShow() {
	isPaused = false;
	processSlideshow("#slideshow", slideshowImages, 5000, 1000, currentSlideshowImage+1);
}

function togglePause() {
	if (isPaused)
		resumeSlideShow();
	else
		pauseSlideShow();
}