// ======================================================================
// 		THE USER SHOULD CHANGE THIS PART TO CUSTOMIZE THE SCRIPT
// Fade in/out code from http://pawst.com/post/38886-javascript-fade-in
//    -fade-out-image
// Original slide show code from: http://www.raingod.com/raingod/resources/
//    Programming/JavaScript/Software/RollingSlideshow/Source.html
// ======================================================================

// gSlideshowInterval - determines how often the slide show is
// refreshed (time given in seconds).

gSlideshowInterval = 5;

// gNumberOfImages - the total number of images available for display.
// This is used both to set up the image array and to manage the actual
// slideshow.

gNumberOfImages = 27;

// gImages - An array that holds the URLs identifying the images to be
// shown in the slide show.

gImages = new Array(gNumberOfImages);

// Fill in the array to give the URLs for the images that you want to
// use.
gImages[0] = "images/banner_1.jpg";
gImages[1] = "images/banner_2.jpg";
gImages[2] = "images/banner_3.jpg";
gImages[3] = "images/banner_4.jpg";
gImages[4] = "images/banner_5.jpg";
gImages[5] = "images/banner_6.jpg";
gImages[6] = "images/banner_7.jpg";
gImages[7] = "images/banner_8.jpg";
gImages[8] = "images/banner_9.jpg";
gImages[9] = "images/banner_10.jpg";
gImages[10] = "images/banner_11.jpg";
gImages[11] = "images/banner_12.jpg";
gImages[12] = "images/banner_13.jpg";
gImages[13] = "images/banner_14.jpg";
gImages[14] = "images/banner_15.jpg";
gImages[15] = "images/banner_16.jpg";
gImages[16] = "images/banner_17.jpg";
gImages[17] = "images/banner_18.jpg";
gImages[18] = "images/banner_19.jpg";
gImages[19] = "images/banner_20.jpg";
gImages[20] = "images/banner_21.jpg";
gImages[21] = "images/banner_22.jpg";
gImages[22] = "images/banner_23.jpg";
gImages[23] = "images/banner_24.jpg";
gImages[24] = "images/banner_25.jpg";
gImages[25] = "images/banner_26.jpg";
gImages[26] = "images/banner_27.jpg";

// Preload 'em images
for (var j=0; j<gNumberOfImages; j++)
{
   (new Image (478, 112)).src = gImages[j];
}

// ======================================================================
// 							DON'T CHANGE THIS PART
// ======================================================================

// canManipulateImages - check if the browser we're using can do
// clever stuff with document images.

function canManipulateImages() {
	if (document.images)
		return true;
	else
		return false;
}

function changeOpac (opacity, id)
{
   var object = document.getElementById(id).style;
   object.opacity = (opacity / 100);
   object.MozOpacity = (opacity / 100);
   object.KhtmlOpacity = (opacity / 100);
   object.filter = "alpha(opacity="+opacity + ")";
}

function blendImage (divid, imageid, millisec, imageURL)
{
   var speed = Math.round (millisec / 100);

   // Set the current image as background
   document.getElementById (divid).style.backgroundImage = "url(" +
      document.getElementById(imageid).src+")";

   // Make foreground image transparent
   changeOpac (0, imageid);

   // Set foreground image to the new one
   document.getElementById(imageid).src = imageURL;

   // fade in image
   for (var i=0; i<=100; i+=5)
   {
      setTimeout("changeOpac(" + i + ",'" + imageid + "')",(i*speed));
   } 
}

// loadSlide
//
// Load a given image into place by substituting its URL for the URL 
// currently loaded by the <IMG> object called 'slide'. 

function loadSlide(imageURL) {
	if (gImageCapableBrowser) {
// Code for fade in/out
                blendImage ('blenddiv', 'blendimg', 1500, imageURL);
// Code for no fade in/out
//                document.slide.src = imageURL;
		return false;
	}
	else {
		return true;
	}
}

// resetSlide
//
// Added by Lynne Norikane so we can start the slide show at any
// image
function resetSlide (imageNum)
{
   gCurrentImage = imageNum;
   document.slide.src = gImages[gCurrentImage];
}

// nextSlide
//
// Update the counter that shows which slide is being displayed, and
// load it into place. The modulo (%) is there to ensure that we roll
// over when we reach the end of the slideshow.

function nextSlide() {
	gCurrentImage = (gCurrentImage + 1) % gNumberOfImages;
	loadSlide(gImages[gCurrentImage]);
}

// gImageCapableBrowser - is this browser hip to images? Set up
// a global variable so that we don't have to keep calling a function
// (useful if the function becomes costly to compute).

gImageCapableBrowser = canManipulateImages();

// gCurrentImage - a variable used to keep track of the image
// currently being displayed to the user.

gCurrentImage = 0;

// Set up the timer. This will call the 'nextSlide()' function repeatedly at 
// the specified interval (and will continue to do so until the page is unloaded).
// Second parameter is in milliseconds.

setInterval("nextSlide()",gSlideshowInterval * 1000);
