var myImages = new Object();
var preloadObj = new Object();
var currentImage = 0;

var slideshowImages = [];
var imageName = "";
var creditDivId = null;
var notesDivId = null;

function defineSlideshow(imgName, creditId, notesId, images) {
	imageName = imgName;
	slideshowImages = images;
	creditDivId = creditId;
	notesDivId = notesId;
}


function setImage(imgName, img) {
	var theImage = document.images[imgName];
	theImage.src = img.path;
	if(img.width) {
		theImage.width = img.width;
	}
	if(img.height) {
		theImage.height = img.height;
	}
	if (creditDivId) {
		var el = elementById(creditDivId);
		if (img.photographer) {
			el.innerHTML = "Photo: " + img.photographer;
			el.style.display = 'block';
		}
		else {
			el.style.display = 'none';
		}
	}
	if (notesDivId) {
		var el = elementById(notesDivId);
		if (img.notes) {
			el.innerHTML = img.notes;
			el.style.display = 'block';
		}
		else {
			el.style.display = 'none';
		}
	}
}

function autoNextImage() {
	if (currentImage != (slideshowImages.length - 1) && slideshowImages.length > 1) {
		//check to make sure image is ready to display
		if (preloadObj[slideshowImages[(currentImage+1)].path]) {
			setImage(imageName, slideshowImages[++currentImage]);
		} else {
			//Try again to see if image is loaded
			setTimeout("autoNextImage()", 100);
		}
	//Set to -1 so auto advance can loop.
	} else /*if (autoAdvance)*/ {
		currentImage = -1;
		autoNextImage();
	}
	return false;
}

function autoPrevImage() {
	if (currentImage != 0 && slideshowImages.length > 1) {
		//check to make sure image is ready to display
		if (preloadObj[slideshowImages[(currentImage-1)].path]) {
			setImage(imageName, slideshowImages[--currentImage]);
		} else {
			//Try again to see if image is loaded
			setTimeout("autoPrevImage()", 100);
		}
	} else /*if (autoAdvance)*/ {
		currentImage = slideshowImages.length;
		autoPrevImage();
	}
	return false;
}

var autoAdvance = false;
var intervalTimer = null;

function startAutoAdvance() {
	//1000 = 1 sec, 5000 = 5 secs, adjust as desired
	var delay = 5000;
	
	intervalTimer = setInterval("autoNextImage()", delay);
	autoAdvance = true;
}

function stopAutoAdvance() {
	clearInterval(intervalTimer);
	autoAdvance = false;
	setPausePlayImage();
}

function resetAutoAdvance() {
	stopAutoAdvance();
	startAutoAdvance();
}

var allImagesLoaded = false;
function preloadMyImages() {
	
	if (document.images) {
		for (var i=0; i < slideshowImages.length; i++) {
			preloadObj[slideshowImages[i].path] = newImage(slideshowImages[i].path);
		}
	}
	
	allImagesLoaded = true;
}

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

function elementById(id)
{
    if (document.getElementById)
        var returnVar = document.getElementById(id);
    else if (document.all)
        var returnVar = document.all[id];
    else if (document.layers)
        var returnVar = document.layers[id];
    return returnVar;
}
