
function slideshow(slides, baselayerId, sublayerId)
{
	var slides = (slides && slides.length) ? slides : [];
	var baselayer = document.getElementById(baselayerId);
	var sublayer = document.getElementById(sublayerId);
	var counter = 0;
	var opacity = 0;
	var timer = null;

	var t = [];
	for (var i = 0; i < slides.length; i++) {
		t[i] = new Image();
		t[i].src = slides[i];
	}
	
	if (slides.length > 0) {
		baselayer.style.backgroundImage = 'url("' + slides[0] + '")';
	}

	function setOpacity(elem, value)
	{
		var undef;
		if (elem.style.opacity !== undef) {
			setOpacity = function(elem, value) {
				elem.style.opacity = value;
			}
		} else if (document.body.filters) {
			setOpacity = function(elem, value) {
				elem.style.filter = 'alpha(opacity=' + 100 * value + ')';
			}
		} else {
			setOpacity = function() {}
		}
		setOpacity(elem, value);
	}

	function nextSlide()
	{
		counter++;
		if (counter >= slides.length) {
			counter = 0;
		}
		var slide = slides[counter];

		opacity = 0;
		setOpacity(sublayer, 0);
		sublayer.style.backgroundImage = 'url("' + slide + '")';
		
		showSlide();
	}

	function showSlide()
	{
		if (opacity < 1) {
			if (!timer) {
				timer = window.setInterval(showSlide, 30);
			}
			opacity += 0.04;
			setOpacity(sublayer, opacity);
			setOpacity(baselayer, 1 - opacity);
			return;
		}
		window.clearInterval(timer);
		timer = null;
		var slide = slides[counter];
		baselayer.style.backgroundImage = 'url("' + slide + '")';
		setOpacity(baselayer, 1);
		window.setTimeout(nextSlide, 2000);
	}
	
	if (slides.length > 1) {
		window.setTimeout(nextSlide, 2000);
	}
}