// Browser Slide-Show script. With image cross fade effect for those browsers that support it.
// Script copyright (C) 2004-2008 www.cryer.co.uk. Script is free to use provided this copyright header is included.
var FadeDurationMS=1000;
function SetOpacity(object,opacityPct) {
  object.style.filter = 'alpha(opacity=' + opacityPct + ')';	// IE.
  object.style.MozOpacity = opacityPct/100;						// Old mozilla and firefox
  object.style.opacity = opacityPct/100;						// Everything else.
}

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,wordID,aID,newImage,newText,newA,backgroundID) {
  var foreground=document.getElementById(foregroundID);
  if (foreground.timer) window.clearTimeout(foreground.timer);
  if (backgroundID) {
    var background=document.getElementById(backgroundID);
	var word=document.getElementById(wordID);
	var aa=document.getElementById(aID);
    if (background) {
      if (background.src) {
        foreground.src = background.src; 
        SetOpacity(foreground,100);
      }
      background.src = newImage;
	  word.innerHTML=newText;
	  aa.href=newA;
      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,textID,linkID,imageFiles,imageText,imageLink,displaySecs) {
  var imageSeparator = imageFiles.indexOf(";");
  var nextImage = imageFiles.substring(0,imageSeparator);

  var textSeparator = imageText.indexOf(";");
  var nextText = imageText.substring(0,textSeparator);

  var linkSeparator = imageLink.indexOf(";");
  var nextLink = imageLink.substring(0,linkSeparator);

  FadeInImage(pictureID,textID,linkID,nextImage,nextText,nextLink,backgroundID);
  var futureImages = imageFiles.substring(imageSeparator+1,imageFiles.length)+ ';' + nextImage;
  var futureText = imageText.substring(textSeparator+1,imageText.length)+ ';' + nextText;
  var futureLink = imageLink.substring(linkSeparator+1,imageLink.length)+ ';' + nextLink;
  setTimeout("RunSlideShow('"+pictureID+"','"+backgroundID+"','"+textID+"','"+linkID+"','"+futureImages+"','"+futureText+"','"+futureLink+"',"+displaySecs+")",displaySecs*1000);

// Cache the next image to improve performance.
  imageSeparator = futureImages.indexOf(";");
  nextImage = futureImages.substring(0,imageSeparator);
  if (slideCache[nextImage] == null) {
    slideCache[nextImage] = new Image;
    slideCache[nextImage].src = nextImage;
  }
}
