<!--
// Functions and gloabal variables for slide show
// Adapted from Photoshop CS's slideshow
// Steve Wilbur 29/8/04
// Modified:
// SRW 11/9/04 to deal with file loading and resize event handler
// SRW 14/9/04 to deal with NN6 iframe issues

/******************** BROWSER DETECT  ********************************************/
/** List of all known user agent names */
var agentNames = new Array("msie ", "netscape6/", "netscape/", "mozilla/", "opera/");

var isIE = (navigator.appName.indexOf("Explorer") > -1);
var isMac = (navigator.userAgent.indexOf("Mac") > -1);
var majorVersion = getMajorVersion();
var isIE5Mac = (isIE && majorVersion >= 5 && isMac);
var isMainPageLoaded = false;

function getMajorVersion() {
	var majorVersion = 0;
	var verStart = 0;
	var agent = navigator.userAgent;

	if (agent != null) {
		agent = agent.toLowerCase();
		for (var i = 0; i < agentNames.length; i++) {
			var name = agentNames[i];
			var pos = agent.indexOf(name);

			if (pos > -1) {
				verStart = pos + name.length;
				break;
			}
		}
		var verStop = agent.indexOf('.', verStart);	
		if (verStart != -1 && verStop > verStart && (verStop - verStart) <= 2) {	
			return parseInt(agent.substring(verStart, verStop));
		}
	}	
	return majorVersion;
}	
/******************** End BROWSER DETECT  ********************************************/

//Keyed by image name. Value is the index position of image in the indexed array.
var myImages = new Object();
var myImagesIndexed = new Array();

var preloadObj = new Object();				//store images in.
var currentImage = 0;						//Int for position in myImagesIndexed array.
var isBottomFrameLoaded = false;			//Set when bottom frame is loaded.
var imageFolderPath = "../H-Slides/images/";

// Utility functions
function replaceCharacter(str, oldCharacter, newCharacter) {	
	if(str != -1) {
		var strArray = str.split(oldCharacter);
		str = strArray.join(newCharacter);
		//alert(str);
	}
	return str;
}

function setTopFrameImage(imgName, imgPath) {
	//var theImage = document.TopFrame.document.images[imgName];
	var theImage = window.TopFrame.document.images[imgName];
	theImage.src = imgPath;		
	//Mac IE 5.2 OSX does not want to update the image, set it to itself to get it to draw.
	if (isIE5Mac) {
		theImage.src = theImage.src;
	}
}

function randomNumber(n) {
	number = Math.floor(Math.random()*(n+1));
	return number;
}

// Startup Functions	

function newImage(arg) {
	if (document.images) {
		rslt = new Image();
		rslt.src = arg;
		return rslt;
	}
}

function preloadImage(){
	// wrap round indexed array
	if (currentImage == myImagesIndexed.length-1) {
		currentImage = -1;
	}
	// start to load next image if not already loaded - currentImage+1
	if (!preloadObj[myImagesIndexed[currentImage+1][0]]) {
		preloadObj[myImagesIndexed[currentImage+1][0]] = newImage(imageFolderPath + myImagesIndexed[currentImage+1][0]);
	}
}

var intervalTimer = null;	
function startAutoAdvance() {
	//1000 = 1 sec, 5000 = 5 secs, adjust as desired
	var delay = 8000;	
	intervalTimer = setInterval("autoNextImage()", delay);
	// Move to first image randomly - over-riding image in iframe's page
	// initiate load of first image
	if (myImagesIndexed.length > 2) {
		currentImage = randomNumber(myImagesIndexed.length-2);
		preloadObj[myImagesIndexed[currentImage+1][0]]= newImage(imageFolderPath + myImagesIndexed[currentImage+1][0]);
	}
	autoNextImage();
}

// Main loop
function autoNextImage() {
	if (currentImage != (myImagesIndexed.length-1) && myImagesIndexed.length > 1) {		
		//check to make sure image is ready to display
		if (window.TopFrame && window.TopFrame.isTopFrameLoaded) {
			// wait for image to be loaded first time
			// cannot get complete or onload to work!!
			/* if (!preloadObj[myImagesIndexed[(currentImage+1)][0]].complete) {
				setTimeout("autoNextImage()", 5000);
			}  else { ... */
			setTopFrameImage("theImage", (imageFolderPath + myImagesIndexed[++currentImage][0]));
			updateMetaData();
			preloadImage(); 
		} else {
			//Try again to see if image is loaded
			setTimeout("autoNextImage()", 1000);
		}
	} else {
		currentImage=-1;
		autoNextImage();
	}
}

/*
	//Key to data structure
	myImagesIndexed[currentImage][0] = FILENAMEURL
	myImagesIndexed[currentImage][1] = TITLE
	myImagesIndexed[currentImage][2] = AUTHOR
*/
function updateMetaData() {
	if (window.TopFrame && window.TopFrame.isTopFrameLoaded) {
		window.TopFrame.document.getElementById("captionTitle").innerHTML = myImagesIndexed[currentImage][1];
		window.TopFrame.document.getElementById("fileInfo").innerHTML = myImagesIndexed[currentImage][2];
	} else {
		setTimeout("updateMetaData()", 10);
	}
}

// Create array of images to be displayed
function makeEntry(file, title, author) {
	var newIndex = myImagesIndexed.length;
	myImages[replaceCharacter(file, '%20', '')] = newIndex;	
	myImagesIndexed[newIndex] = new Array(file, title, author);
}

//-->