﻿
var fadeDuration         = 1000;  //Time it takes to transition to new banner (milliseconds) 
var bannerSwitchDuration = 8000; //Change it to decide on how much time banner is visible (milliseconds)
var eventBannerURLs      = "_images/banners/eventbanner1.jpg"; // Add as many images you want here

function setOpacity(object, opacityPct)
{
  object.style.MozOpacity = opacityPct/100;                      // Old mozilla and firefox
  object.style.filter     = 'alpha(opacity=' + opacityPct + ')'; // IE
  object.style.opacity    = opacityPct/100;                      // Everything else
}

function fadeInImage(foregroundID, newImage, bannerImageDivID)
{
  var foreground = document.getElementById(foregroundID);

  if (foreground.timer) window.clearTimeout(foreground.timer);
  if (bannerImageDivID)
  {
    var bannerImageDiv = document.getElementById(bannerImageDivID);
    if (bannerImageDiv)
    {
      if (bannerImageDiv.src)
      {
        foreground.src = bannerImageDiv.src; 
        setOpacity(foreground,100);
      }
      bannerImageDiv.src = newImage;
      bannerImageDiv.style.backgroundImage  = 'url(' + newImage + ')';
      bannerImageDiv.style.backgroundRepeat = 'no-repeat';
      var startMS = (new Date()).getTime();
      foreground.timer = window.setTimeout("ChangeOpacity('" + foregroundID + "'," + fadeDuration + "," + 
                                            startMS + ",100,0)",10);
    }
  }
  else 
  {
    foreground.src = newImage;
  }
}

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 byteridgeImgRollUtil(prefix)
{
 var imgTagID         = "bannerImg";
 var bannerImageDivID = "bannerImageDiv";
 eventBannerURLs      = ";" + prefix + eventBannerURLs; 
 var imageList        = (document.getElementById(imgTagID)).getAttribute("src") + eventBannerURLs;
 byteridgeImgRollUtilNext(imgTagID, bannerImageDivID, imageList, bannerSwitchDuration);
}

function byteridgeImgRollUtilNext(imgTagID, bannerImageDivID, imageFiles, displayDuration)
{
  var slideCache     = new Array();
  var imageSeparator = imageFiles.indexOf(";");
  var nextImage      = imageFiles.substring(0,imageSeparator);
  var futureImages   = imageFiles.substring(imageSeparator+1,imageFiles.length) + ';' + nextImage;
  
  fadeInImage(imgTagID, nextImage, bannerImageDivID);  
  setTimeout("byteridgeImgRollUtilNext('" + imgTagID + "','" + bannerImageDivID + "','" + futureImages + 
                                "'," + displayDuration + ")", displayDuration);
                          
  imageSeparator = futureImages.indexOf(";");
  nextImage      = futureImages.substring(0,imageSeparator);
  
  if (slideCache[nextImage] == null)
  {
    slideCache[nextImage]     = new Image;
    slideCache[nextImage].src = nextImage;
  }
}