// Functions for a simple image slide show

function SlideShow(interval, place) {
  this.interval = interval;
  this.place = place;
  this.imageNum = 0;
  this.timerID = 0;
  this.random_display = 0;
  this.imageArray = new Array();
}

function addImage(slideShow, location) {
  slideShow.imageArray[slideShow.imageNum++] = new imageItem(location);
}

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 randNum(x, y) {
  var range = y - x + 1;
  return Math.floor(Math.random() * range) + x;
}
function getNextImage(slideShow) {
  if (slideShow.random_display) {
    slideShow.imageNum = randNum(0, slideShow.imageArray.length-1);
  } else {
    slideShow.imageNum = (slideShow.imageNum+1) % slideShow.imageArray.length;
  }
  var new_image = get_ImageItemLocation(slideShow.imageArray[slideShow.imageNum]);
  return(new_image);
}
function getPrevImage(slideShow) {
  slideShow.imageNum = slideShow.imageNum-1;
  if ( slideShow.imageNum < 0 ) {
    slideShow.imageNum = slideShow.imageArray.length - 1;
  }
  var new_image = get_ImageItemLocation(slideShow.imageArray[slideShow.imageNum]);
  return(new_image);
}
function prevImage(slideShow) {
  var new_image = getPrevImage(slideShow);
  document[slideShow.place].src = new_image;
}
function nextImage(slideShow) {
  var new_image = getNextImage(slideShow);
  document[slideShow.place].src = new_image;
}
var sShow;
function switchImage() {
  slideShow = sShow;
  var new_image = getNextImage(slideShow);
  document[slideShow.place].src = new_image;
  slideShow.timerID = setTimeout("switchImage()", slideShow.interval);
}
function startPlaying(slideShow) {
  sShow = slideShow;
  if ( slideShow.timerID == 0 ) {
    slideShow.timerID = setTimeout("switchImage()", slideShow.interval);
  }
}
function pause(slideShow) {
  if ( slideShow.timerID != 0 ) {
    clearTimeout(slideShow.timerID);
    slideShow.timerID = 0;
  }
}
