/*
 * Picture fader script for ANU Office of Commercialisation
 * Homepage.
 *
 * Requires prototype.js, scriptaculous.js, effects.js from
 * http://scriptaclous.org (or whatever) and
 * addEvent.js from
 * // http://dean.edwards.name/weblog/2005/10/add-event/
 */

// Check for DOM compatability
if (document.getElementById && document.createElement) {

  // Run the picture fader when the page loads
  addEvent(window, 'load', picFader);

  // Offset is the number of images to be faded
  var offset = 6;
  
  // Order in which to fade images
  var order = [1, 6, 4, 3, 5, 2];
  
  // Other constants
  var counter = 0;
  var dly = 2;
  var durn = 5;

  // Preload the images
  var imageList = new Array();
  imageList[0] = newImage('_images/OoC/dragon.jpg', offset + 1);
  imageList[1] = newImage('_images/OoC/solar-cell.jpg', offset + 2);
  imageList[2] = newImage('_images/OoC/bee-and-flower.jpg', offset + 3);
  imageList[3] = newImage('_images/OoC/evan.jpg', offset + 4);
  imageList[4] = newImage('_images/OoC/formulae.jpg', offset + 5);
  imageList[5] = newImage('_images/OoC/face-mask.jpg', offset + 6);
}

function picFader() {

  // Add the images to the document
  imContainer = document.getElementById('images');
  for (var i=0; i<imageList.length; i++) {
    imContainer.appendChild(imageList[i]);
  }

  transitionPic();
}

// Function for preloading images
function newImage(picSrc, idNum) {
  var newIm = document.createElement('img');
  newIm.src = picSrc;
  newIm.id = 'im' + idNum;
  newIm.className = 'frontIm';
  Element.setOpacity(newIm, 0);
  return newIm;
}

// Function for transitioning pics
function transitionPic() {

  var from1 = Element.getOpacity('im'+order[counter]);
  var to1 = !from1;
  new Effect.Opacity('im'+order[counter], {delay:dly, duration:durn,
                                           from:from1, to:to1});
  new Effect.Opacity('im'+(order[counter]+offset), {delay:dly, duration:durn,
                                                    from:to1, to:from1,
                                                    queue:'parallel',
                                                    afterFinish:transitionPic});
  counter = (counter + 1) % order.length;

}
