var timers = Array();

$(document).ready(function() { 
	$(".slideshow").each(function(i){
		var slideshow = this;
		$(slideshow).prepend('<img src="/i/blog/slideshow-pause-button.png" alt="Pause Slideshow" class="button active"></img><img src="/i/blog/slideshow-play-button.png" alt="Play Slideshow" class="button"></img>');
		$(slideshow).find(".button").click(function() { toggleSlideShow(slideshow); });
		$(slideshow).find(".slide").click(function() { toggleSlideShow(slideshow); });
		startSlideShow(slideshow);
	})
});

function getCurrentSlide(slideshow) {
	return $(slideshow).find("img.slide.shown");
}

function getNextSlide(slideshow) {
	var next = $(slideshow).find("img.slide.shown").next();
	if (!next.length) {
		next = $(slideshow).find("img.slide:first");
	}
	
	return next;
}

function toggleSlide(slide) {
	slide.toggleClass("shown");
}

function advanceToNextSlide(slideshow) {
	var next = getNextSlide(slideshow);
	toggleSlide(getCurrentSlide(slideshow));
	toggleSlide(next);
}

function startSlideShow(slideshow) {
	timers[slideshow] = setInterval(function(){advanceToNextSlide(slideshow);}, 4000);
}

function toggleSlideShow(slideshow) {
	if (!timers[slideshow]) {
		advanceToNextSlide(slideshow);
		startSlideShow(slideshow);
	} else {
		clearInterval(timers[slideshow]);
		timers[slideshow] = 0;
	}

	$(slideshow).find("img.button").toggleClass("active");
}

function switchToSlide(inSlideID) {
	var slide = $("#" + inSlideID);
	var slideshow = slide.parent()[0];
	
	toggleSlide(getCurrentSlide());
	toggleSlide(slide);

	var slideshowIsRunning = timers[slideshow];
	if (slideshowIsRunning) {
		clearInterval(timers[slideshow]);
		timers[slideshow] = 0;
		startSlideShow(slideshow);
	}
}
