var slideshow_timingSlideInitial = 1750;
var slideshow_timingSlide = 3000;
var slideshow_timingFade = 600;
var slideshow_sliding = true;
var slideshow_images = new Array();
var slideshow_staticImages = new Array();
var slideshow_staticProbabilities = new Array(0, 0, 0, 0.33, 0.66, 1);
var slideshow_lastIndex = 0;
var slideshow_lastStatic = 0;

//@ http://jsfromhell.com/array/shuffle [v1.0]
shuffle = function(o){ //v1.0
	for(var j, x, i = o.length; i; j = parseInt(Math.random() * i), x = o[--i], o[i] = o[j], o[j] = x);
	return o;
};

function slideshow_init() {
	var current = $('#slideshowcurrent');
	if (!current) return;
	var next = $('#slideshownext');
	if (!next) return;
	if (slideshow_images.length < 2) return;
	
	shuffle(slideshow_images);
	
	for (var index = 0; index < slideshow_images.length; index++) {
		var img = new Image();
		img.src = slideshow_images[index].url;

	}
	
	for (var index = 0; index < slideshow_staticImages.length; index++) {
		var img = new Image();
		img.src = slideshow_staticImages[index].url;
	}
	
	// Event.observe(current, 'click', slideshow_toggleSliding);
	// Event.observe(next, 'click', slideshow_toggleSliding);
	if (slideshow_sliding) window.setTimeout('slideshow_next()', slideshow_timingSlideInitial);
}

function slideshow_next() {
	if (!slideshow_sliding) return;
	
	var current = $('#slideshowcurrent');
	var next = $('#slideshownext');
	
	var showStatic = slideshow_staticImages.length > 0 && (slideshow_staticProbabilities[slideshow_lastStatic] >= Math.random());
	var src = null;
	
	if (showStatic) {
		shuffle(slideshow_staticImages);
		src = slideshow_staticImages[0].url;
		slideshow_lastStatic = 0;
	} else { 
		var nextIndex = (slideshow_lastIndex + 1) % slideshow_images.length;
		src = slideshow_images[nextIndex].url;
		slideshow_lastStatic += 1;
		slideshow_lastIndex = nextIndex;
	}
	next.css('display', 'none');
	next.attr('src', src);
	$('#slideshowcurrent').fadeOut(slideshow_timingFade);
	$('#slideshownext').fadeIn(slideshow_timingFade, slideshow_switch);
	
	if (slideshow_sliding) window.setTimeout('slideshow_next()', slideshow_timingSlide);
}

function slideshow_switch() {
	var current = $('#slideshowcurrent');
	var next = $('#slideshownext');
	next.id = '';
	current.attr('id', 'slideshownext');
	next.attr('id', 'slideshowcurrent');
}

function slideshow_toggleSliding() {
	slideshow_sliding = !slideshow_sliding;
	if (slideshow_sliding) window.setTimeout('slideshow_next()', 100);
}

function slideshow_addImage(url) {
	slideshow_images[slideshow_images.length] = {url:url};
}

function slideshow_addStaticImage(url) {
	slideshow_staticImages[slideshow_staticImages.length] = {url:url};
}

