// Set up variables
var intCurrentImage = 0;
var arrImgNodes = new Array();
var arrImages = new Array();
arrImages[0] = new Array("../images/fraser_island/200/fraser_islandh.jpg", 129, 200, "Strange sand on Seventy-Five Mile Beach", "../fraser_island/day05.html", "../images/image.php?folder=fraser_island&image=fraser_islandh.jpg&return=1");
arrImages[1] = new Array("../images/bada_valley/200/bada_valley3.jpg", 133, 200, "Mark crossing the Sungai Leriang", "../bada_valley/day01.html", "../images/image.php?folder=bada_valley&image=bada_valley3.jpg&return=1");
arrImages[2] = new Array("../images/bada_valley/200/bada_valley6.jpg", 132, 200, "Palindo", "../bada_valley/day01.html", "../images/image.php?folder=bada_valley&image=bada_valley6.jpg&return=1");
arrImages[3] = new Array("../images/bada_valley/200/bada_valleya.jpg", 142, 200, "Mark washing in a river", "../bada_valley/day03.html", "../images/image.php?folder=bada_valley&image=bada_valleya.jpg&return=1");
arrImages[4] = new Array("../images/gunung_rinjani/200/gunung_rinjani3.jpg", 132, 200, "The view into the crater", "../gunung_rinjani/day02.html", "../images/image.php?folder=gunung_rinjani&image=gunung_rinjani3.jpg&return=1");
arrImages[5] = new Array("../images/annapurna_circuit/200/annapurna_circuit_stage_23.jpg", 136, 200, "Children of Kagbeni", "../annapurna_circuit/day14-21.html", "../images/image.php?folder=annapurna_circuit&image=annapurna_circuit_stage_23.jpg&return=1");
arrImages[6] = new Array("../images/hollyford-pyke_route/200/hollyford-pyke_routeb.jpg", 132, 200, "Mark knee-deep in the oozing Black Swamp", "../hollyford-pyke_route/day07.html", "../images/image.php?folder=hollyford-pyke_route&image=hollyford-pyke_routeb.jpg&return=1");
arrImages[7] = new Array("../images/hollyford-pyke_route/200/hollyford-pyke_routec.jpg", 132, 200, "Mt Madeline", "../hollyford-pyke_route/day07.html", "../images/image.php?folder=hollyford-pyke_route&image=hollyford-pyke_routec.jpg&return=1");
arrImages[8] = new Array("../images/mt_cook/200/mt_cook7.jpg", 133, 200, "Mt Cook and the Hooker Glacier", "../mt_cook/day01.html", "../images/image.php?folder=mt_cook&image=mt_cook7.jpg&return=1");
arrImages.sort(function () { return (Math.round(Math.random()) - 0.5); });


// Code to be run when page is loaded
$(document).ready(function() {
	// Shift first header in side bar down
	$('#firstHeader').removeClass('initial');

	// Insert div for image
	$(document.createElement('div')).attr('id', 'imageGallery').prependTo('div.sidebar');

	// Insert image gallery header
	$('div.sidebar').prepend('<h3 class="initial">From My Photo Library</h3>');

	// Insert image link
	$(document.createElement('a')).attr({href: arrImages[0][5], id: 'photoLink'}).prependTo("#imageGallery");

	// Insert img objects
	for (var i = 0; i < arrImages.length; i++) {
		var objImage = document.createElement("img");
		if (i == 0) {
			objImage.xOpacity = 0.99;
		} else {
			objImage.xOpacity = 0;
		}
		$(objImage).css('display', (i == 0) ? 'block' : 'none').attr({src: arrImages[i][0], width: arrImages[i][1], height: arrImages[i][2], alt: arrImages[i][3]}).appendTo('#photoLink');
	}

	// Get array of all img nodes in gallery
	arrImgNodes = $("#photoLink img");

	// Wait 5 seconds and start cross-fading
	setTimeout(crossFade, 5000);
});


// Cross-fade between two images
function crossFade() {
	// Work out index for next image, wrapping round if necessary
	intNextImage = arrImgNodes[intCurrentImage + 1] ? intCurrentImage + 1 : 0;

	// Calculate new opacities
	floatCurrentOpacity = arrImgNodes[intCurrentImage].xOpacity - 0.05;
	floatNextOpacity = arrImgNodes[intNextImage].xOpacity + 0.05;
	if (floatNextOpacity > 0.99) floatNextOpacity = 0.99;

	// Make sure next image is visible
	arrImgNodes[intNextImage].style.display = "block";

	// Set new opacities
	setOpacity(arrImgNodes[intCurrentImage], floatCurrentOpacity); 
	setOpacity(arrImgNodes[intNextImage], floatNextOpacity);

	if (floatCurrentOpacity <= 0) {

		// Fade is finished, so hide previous image
		arrImgNodes[intCurrentImage].style.display = "none";

		// Make image link to new destination
		intCurrentImage = intNextImage;
		$('#photoLink').attr('href', arrImages[intCurrentImage][5]);

		// And start cross-fading again in 5 seconds
		setTimeout(crossFade, 5000);

	} else {

		// Otherwise cross-fade again in 50 milliseconds
		setTimeout(crossFade, 50);

	}
	
}


// Set opacity in a way that most browsers will understand
function setOpacity(objImgNode, floatOpacity) {
	objImgNode.xOpacity = floatOpacity;
	objImgNode.style.opacity = floatOpacity;
	objImgNode.style.MozOpacity = floatOpacity;
	objImgNode.style.filter = "alpha(opacity=" + (floatOpacity * 100) + ")";
}
