
// 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)
{
  // 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)
{
  if(bigger == 0) {
    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;      
      element.src = document.getElementById("FeaturedPictureBackground").src;
    }
    else 
    {
      SetOpacity(element,opacity);
      element.timer = window.setTimeout("ChangeOpacity('" + id + "'," + msDuration + "," + msStart + "," + fromO + "," + toO + ")",10);
    }
  }
}
function FadeInImage(foregroundID,newImage,backgroundID,newTitle, featuredTitleID)
{
  $('#'+featuredTitleID).html(newTitle);
  
  if(bigger == 0) {
    var foreground=document.getElementById(foregroundID);
    if (foreground.timer) window.clearTimeout(foreground.timer);
    if (backgroundID)
    {
      var background=document.getElementById(backgroundID);
      if (background)
      {
        var old = background.src;
        background.src = newImage;
        background.style.backgroundImage = 'url(' + newImage + ')';
        background.style.backgroundRepeat = 'no-repeat';
        var startMS = (new Date()).getTime();           
        if (background.src)
        {          
          //foreground.src = old;   
          SetOpacity(foreground,100);                       
        }
        foreground.timer = window.setTimeout("ChangeOpacity('" + foregroundID + "'," + FadeDurationMS + "," + startMS + ",100,0)",10);
      }
    } else {
      foreground.src = newImage;
    }
  }
}
var slideCache = new Array();
var iterator = 0;
var bigger = 0;

function RunSlideShow(pictureID,backgroundID,imageFiles,displaySecs, stitles, featuredTitleID)
{
  if(bigger == 0) {
    var elems = document.getElementById("FeaturedPictureBackground").getElementsByTagName("a");
    var elms2 = document.getElementById("FeaturedPictureBackground").getElementsByTagName("img");
    var len = elems.length;  
    if(iterator < len) iterator = len;
    iterator++;
    if(iterator%len == 0) {
      elems[len - 1].className = 'active';
      elems[len - 2].className = '';
    } 
    else elems[(iterator%len) - 1].className = 'active';
    if(iterator%len == 1) elems[(len - 1)].className = '';
    else if(iterator%len != 0) elems[((iterator%len) - 2)].className = '';   
    
    var imageSeparator = imageFiles.indexOf("|");
    var titleSeparator = stitles.indexOf("|");

    var nextImage = imageFiles.substring(0,imageSeparator);
    var nextTitle = stitles.substring(0,titleSeparator);
    
    FadeInImage(pictureID,nextImage,backgroundID, nextTitle, featuredTitleID);
    
    var futureImages = imageFiles.substring(imageSeparator+1,imageFiles.length)+ '|' + nextImage;
    var futureTitles = stitles.substring(titleSeparator+1,stitles.length)+ '|' + nextTitle;
    
    setTimeout("RunSlideShow('"+pictureID+"','"+backgroundID+"','"+futureImages+"',"+displaySecs+",'"+futureTitles+"','"+featuredTitleID+"')",displaySecs*1000);
    // Cache the next image to improve performance.  
    imageSeparator = futureImages.indexOf("|");
    titleSeparator = futureTitles.indexOf("|");
    
    nextImage = futureImages.substring(0,imageSeparator);
    nextTitle = futureTitles.substring(0,titleSeparator);
    
    if (slideCache[nextImage] == null)
    {
      slideCache[nextImage] = new Image;
      slideCache[nextImage].src = nextImage;
    }
  }
}
