// Browser Slide-Show script. With image cross fade effect for those browsers

// that support it.

// Script copyright (C) 2004-2010 www.cryer.co.uk.

// Script is free to use provided this copyright header is included.

var FadeDurationMS=1000;

function SetOpacity(object,opacityPct)

{

	// IE.

	object.style.filter = 'alpha(opacity=' + opacityPct + ')';

	// Old mozilla and firefox

	object.style.MozOpacity = opacityPct/100;

	// Everything else.

	object.style.opacity = opacityPct/100;

}

function ChangeOpacity(id,msDuration,msStart,fromO,toO)

{

	var element=document.getElementById(id);

	var msNow = (new Date()).getTime();

	var opacity = fromO + (toO - fromO) * (msNow - msStart) / msDuration;

	if (opacity>=100)

	{

		SetOpacity(element,100);

		element.timer = undefined;

	}

	else if (opacity<=0)

	{

		SetOpacity(element,0);

		element.timer = undefined;

	}

	else 

	{

		SetOpacity(element,opacity);

		element.timer = window.setTimeout("ChangeOpacity('" + id + "'," + msDuration + "," + msStart + "," + fromO + "," + toO + ")",10);

	}

}

function FadeInImage(foregroundID,newImage,backgroundID)

{

	var foreground=document.getElementById(foregroundID);

	if (foreground.timer) window.clearTimeout(foreground.timer);



	if (backgroundID)

	{

		var background=document.getElementById(backgroundID);

		if (background)

		{

			if (background.src)

			{

				foreground.src = background.src;	

				SetOpacity(foreground,100);

			}

			background.src = newImage;

			background.style.backgroundImage = 'url(' + newImage + ')';

			background.style.backgroundRepeat = 'no-repeat';

			var startMS = (new Date()).getTime();

			foreground.timer = window.setTimeout("ChangeOpacity('" + foregroundID + "'," + FadeDurationMS + "," + startMS + ",100,0)",10);

		}

	} else {

		foreground.src = newImage;

	}

}

var slideCache = new Array();

function RunSlideShow(pictureID,backgroundID,imageFiles,displaySecs)

{

	var imageSeparator = imageFiles.indexOf(";");

	var nextImage = imageFiles.substring(0,imageSeparator);

	if (slideCache[nextImage] && slideCache[nextImage].loaded)

	{

		FadeInImage(pictureID,nextImage,backgroundID);

		var futureImages = imageFiles.substring(imageSeparator+1,imageFiles.length)

			+ ';' + nextImage;

		setTimeout("RunSlideShow('"+pictureID+"','"+backgroundID+"','"+futureImages+"',"+displaySecs+")",

			displaySecs*1000);

		// Identify the next image to cache.

		imageSeparator = futureImages.indexOf(";");

		nextImage = futureImages.substring(0,imageSeparator);

	} else {

		setTimeout("RunSlideShow('"+pictureID+"','"+backgroundID+"','"+imageFiles+"',"+displaySecs+")",

			250);

	}

	// Cache the next image to improve performance.

	if (slideCache[nextImage] == null)

	{

		slideCache[nextImage] = new Image;

		slideCache[nextImage].loaded = false;

		slideCache[nextImage].onload = function(){this.loaded=true};

		slideCache[nextImage].src = nextImage;

	}

}


