var pre_ready_slideshow_slide = 0;
var UserClickedSlideButton = function(i){ pre_ready_slideshow_slide = i; };
$(document).ready(function() {
	var slides = $('#HomeSlideshow .SlideshowSlide');
	var slideshow_buttons = [];
	
	$('#HomeSlideshow .SlideshowButton').each(function(i,e) { slideshow_buttons.push(e); });
	
	var slideshow_time = 7000; // Time between slideshow frames.
	var click_time = 10000; // Time after clicking a slide to wait before resuming slideshow.
	var wait_hdl;
	var idx = -1;
	if (slides.length > 1) {
		var slideshow_interval;
		var set_slideshow_slide = function(i) {
			// Activate the appropriate 
			for (var j = 0; j < slideshow_buttons.length; j++)
				$(slideshow_buttons[j]).removeClass('active');
			$(slideshow_buttons[i]).addClass('active');
			
			last_idx = idx;
			idx = i;
			
			/*
			$(slides[idx]).css('display', 'block');
			if (last_idx >= 0) $(slides[last_idx]).css('display', 'none');
			*/
			$(slides[idx]).fadeIn();
			if (last_idx >= 0) $(slides[last_idx]).fadeOut();
		};
    
    if (pre_ready_slideshow_slide) {
      set_slideshow_slide(pre_ready_slideshow_slide);
    }
		
		var slideshow_proc = function() {
			if (idx >= slides.length - 1)
				set_slideshow_slide(0);
			else
				set_slideshow_slide(idx+1);
		};
		slideshow_proc();
		slideshow_interval = setInterval(slideshow_proc, slideshow_time);
		
		UserClickedSlideButton = function(i) {
			clearInterval(slideshow_interval);
			if (wait_hdl)
				clearTimeout(wait_hdl);
			
			if (i != idx)
				set_slideshow_slide(i);
				
			wait_hdl = setTimeout(function() {
				wait_hdl = null;
				slideshow_proc();
				slideshow_interval = setInterval(slideshow_proc, slideshow_time);
			}, click_time);
		};
	} else {
		$(slides[0]).css('display', 'block');
	}
});
function PrecacheSlideshowImages() {
  var images = [];
  $('.SlideshowSlide').each(function(i,e) {
    var matches = String($(e).css('background-image')).match(/(http:[^")]+)/);
    images.push(new Image(matches[1]));
  });
}
