
var interval = 5000;
var fade_interval = 1800;

var image_index = 0;
image_list = new Array();

var sequential = true;

for (i in imageSource)
{
image_list[image_index++] = new imageItem(imageSource[i]);
}
var number_of_image = image_list.length;
var current_image = image_index;


// Opacity and Fade in script.
// Script copyright (C) 2008 http://www.cryer.co.uk/.
// Script is free to use provided this copyright header is included.
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 opacity = element.style.opacity * 100;
  var msNow = (new Date()).getTime();
  opacity = fromO + (toO - fromO) * (msNow - msStart) / msDuration;
  if (opacity<0) 
    SetOpacity(element,0)
  else if (opacity>100)
    SetOpacity(element,100)
  else
  {
    SetOpacity(element,opacity);
    element.timer = window.setTimeout("ChangeOpacity('" + id + "'," + msDuration + "," + msStart + "," + fromO + "," + toO + ")",1);
  }
}
function FadeIn(id)
{
  var element=document.getElementById(id);
  if (element.timer) window.clearTimeout(element.timer); 
  var startMS = (new Date()).getTime();
  element.timer = window.setTimeout("ChangeOpacity('" + id + "',fade_interval," + startMS + ",0,100)",1);
}
function FadeOut(id)
{
  var element=document.getElementById(id);
  if (element.timer) window.clearTimeout(element.timer); 
  var startMS = (new Date()).getTime();
  element.timer = window.setTimeout("ChangeOpacity('" + id + "',fade_interval," + startMS + ",100,0)",1);
}
function FadeInImage(foregroundID,newImage,backgroundID)
{
  var foreground=document.getElementById(foregroundID);
  if (backgroundID)
  {
    var background=document.getElementById(backgroundID);
    if (background)
    {
      background.style.backgroundImage = 'url(' + foreground.src + ')';
      background.style.backgroundRepeat = 'no-repeat';
    }
  }
  SetOpacity(foreground,0);
  foreground.src = newImage;
  if (foreground.timer) window.clearTimeout(foreground.timer); 
  var startMS = (new Date()).getTime();
  foreground.timer = window.setTimeout("ChangeOpacity('" + foregroundID + "',fade_interval," + startMS + ",0,100)",10);
}

function imageItem(image_location) {
  this.image_item = new Image();
  this.image_item.src = image_location;
}

function get_ImageItemLocation(imageObj) {
  return(imageObj.image_item.src)
}

function generate(x, y) {
  var range = y - x + 1;
  return Math.floor(Math.random() * range) + x;
}

function getNextImage(place) {
  if (!sequential) {	
  ni = 1;
  do {	
    image_index = generate(0, number_of_image-1);
    if (image_index == current_image) {
	       ni = 1;
       } else {
	       ni = 0;
	   }
  }
  while (ni == 1);
  } else {
	  image_index++;
	  if (image_index >= number_of_image) {
		  image_index = 0;
	  }
  }

  current_image = image_index;
 
  var new_image = get_ImageItemLocation(image_list[image_index]);
  return(new_image);
}

function rotateImage(place) {
  var new_image = getNextImage(place);
  FadeInImage(place,new_image,"d"+place);
  var recur_call = "rotateImage('"+place+"')";
  setTimeout(recur_call, interval);
}

