var current_slide = 1;
var cached = []; // Hold preloaded images
var last_change = 0; // When was the last slideshow shift?
var slideshow_timeout = 10 * 1000; // How many miliseconds to wait before auto-advance?
var autoadvance_enabled = true;

$(document).ready(function() {
	var $slide_frame = $('#slideshow_frame');
	$('#slideshow_btns', $slide_frame).css('display', ''); // Make visible
	$('#slideshow_btns a', $slide_frame).html('').mouseover(btnTrigger); // Remove content text and add mouseover trigger
	$('#slideshow_btns a.pause', $slide_frame).click(toggleAutoplay);

	$('#slideshow_btns a.btn_1', $slide_frame).addClass('active');
	var now = new Date();
	last_change = now.getTime();
	setTimeout(autoAdvance, 1000); // Start autoplay
});

function btnTrigger(evt) {
	var classes = this.className.split(/\s+/);
	for(var i in classes) {
		if (classes[i].substr(0,4) == 'btn_') {
			var i = parseInt(classes[i].substr(4));
			if (i != current_slide) gotoSlide(i);
			return;
		}
	}
}

function gotoSlide(id) {
	var $slide = $('#slideshow .slide img');
	$slide
		.stop(true)
		.css('opacity', '1')
		.fadeTo('fast', '0.1', function() {
			$(this).attr('src', '/img/slideshow_'+id+'.jpg').fadeTo('fast', '1');
		});
	current_slide = id;
	$('#slideshow_btns a').removeClass('active'); // Set all buttons to default
	$('#slideshow_btns a.btn_'+id).addClass('active'); // Set button to down
	var now = new Date();
	last_change = now.getTime();
}

function autoAdvance() {
	if (!autoadvance_enabled) return true; // break out of autoplay

	var now = new Date();
	if (now.getTime() - last_change >= slideshow_timeout) {
		var next_slide = current_slide + 1;
		if (next_slide > 4) next_slide = 1;
		gotoSlide(next_slide); // Go to next slide
	}
	setTimeout(autoAdvance, 1000); // Call again in one second
}

function toggleAutoplay() {
	autoadvance_enabled = !autoadvance_enabled;
	if (autoadvance_enabled) {
		$('#slideshow_btns a.play').removeClass('play').addClass('pause');
		setTimeout(autoAdvance, 1000); // Start autoplay
	} else {
		$('#slideshow_btns a.pause').removeClass('pause').addClass('play');
	}
}
