		// 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+")",
			  300);
		  }
		  // 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;
		  }
		}
