// Set up variables
var intCurrentImage = 0;
var arrImgNodes = new Array();
var arrImages = new Array();
arrImages[0] = new Array("../images/australia/200/carnarvon1.jpg", 133, 200, "A large satellite dish", "../australia/carnarvon.html", "../images/image.php?folder=australia&image=carnarvon1.jpg&return=1");
arrImages[1] = new Array("../images/australia/200/fraser_islandh.jpg", 129, 200, "Strange sand on Seventy-Five Mile Beach", "../australia/fraser_island.html", "../images/image.php?folder=australia&image=fraser_islandh.jpg&return=1");
arrImages[2] = new Array("../images/cyprus/200/larnaka2.jpg", 134, 200, "Agios Lazarus, Larnaka", "../cyprus/larnaka.html", "../images/image.php?folder=cyprus&image=larnaka2.jpg&return=1");
arrImages[3] = new Array("../images/cyprus/200/troodos4.jpg", 135, 200, "A snowman in a tree", "../cyprus/troodos.html", "../images/image.php?folder=cyprus&image=troodos4.jpg&return=1");
arrImages[4] = new Array("../images/french_polynesia/200/amanu5.jpg", 132, 200, "Mark relaxing in paradise", "../french_polynesia/amanu.html", "../images/image.php?folder=french_polynesia&image=amanu5.jpg&return=1");
arrImages[5] = new Array("../images/ghana/200/nzulezo1.jpg", 134, 200, "Evans punting a canoe along the tranquil Amansuri River", "../ghana/nzulezo.html", "../images/image.php?folder=ghana&image=nzulezo1.jpg&return=1");
arrImages[6] = new Array("../images/india/200/agra2.jpg", 136, 200, "The Taj Mahal, viewed from a nearby building", "../india/agra.html", "../images/image.php?folder=india&image=agra2.jpg&return=1");
arrImages[7] = new Array("../images/india/200/bhavnagar3.jpg", 131, 200, "A Bhavnagar man pretending to be mortally offended while his friends smile on", "../india/bhavnagar.html", "../images/image.php?folder=india&image=bhavnagar3.jpg&return=1");
arrImages[8] = new Array("../images/india/200/diu3.jpg", 129, 200, "The Arabian Sea battering the old fortress at Diu", "../india/diu.html", "../images/image.php?folder=india&image=diu3.jpg&return=1");
arrImages[9] = new Array("../images/india/200/holi_festival3.jpg", 140, 200, "A cow with a handprint on its flank", "../india/holi_festival.html", "../images/image.php?folder=india&image=holi_festival3.jpg&return=1");
arrImages[10] = new Array("../images/india/200/kollam_to_alappuzha5.jpg", 140, 200, "Keralan women carrying the daily water supply", "../india/kollam_to_alappuzha.html", "../images/image.php?folder=india&image=kollam_to_alappuzha5.jpg&return=1");
arrImages[11] = new Array("../images/india/200/mandu3.jpg", 137, 200, "The Hindola Mahal", "../india/mandu.html", "../images/image.php?folder=india&image=mandu3.jpg&return=1");
arrImages[12] = new Array("../images/india/200/palitana5.jpg", 132, 200, "A Jain statue of a woman", "../india/palitana.html", "../images/image.php?folder=india&image=palitana5.jpg&return=1");
arrImages[13] = new Array("../images/india/200/religious_tolerance1.jpg", 133, 200, "A Hindu temple glanced through an Islamic arch at Golconda", "../india/religious_tolerance.html", "../images/image.php?folder=india&image=religious_tolerance1.jpg&return=1");
arrImages[14] = new Array("../images/india/200/thar_desert8.jpg", 129, 200, "Footprints in the sand", "../india/thar_desert.html", "../images/image.php?folder=india&image=thar_desert8.jpg&return=1");
arrImages[15] = new Array("../images/indonesia/200/bada_valley3.jpg", 133, 200, "Mark crossing the Sungai Leriang", "../indonesia/bada_valley.html", "../images/image.php?folder=indonesia&image=bada_valley3.jpg&return=1");
arrImages[16] = new Array("../images/indonesia/200/bada_valley6.jpg", 132, 200, "Palindo", "../indonesia/bada_valley.html", "../images/image.php?folder=indonesia&image=bada_valley6.jpg&return=1");
arrImages[17] = new Array("../images/indonesia/200/bada_valleya.jpg", 142, 200, "Mark washing in a river", "../indonesia/bada_valley.html", "../images/image.php?folder=indonesia&image=bada_valleya.jpg&return=1");
arrImages[18] = new Array("../images/indonesia/200/gunung_rinjani3.jpg", 132, 200, "The view into the crater", "../indonesia/gunung_rinjani.html", "../images/image.php?folder=indonesia&image=gunung_rinjani3.jpg&return=1");
arrImages[19] = new Array("../images/indonesia/200/ujung_pandang1.jpg", 141, 200, "A driver asleep in his becak", "../indonesia/ujung_pandang.html", "../images/image.php?folder=indonesia&image=ujung_pandang1.jpg&return=1");
arrImages[20] = new Array("../images/malaysia/200/kuala_lumpur4.jpg", 133, 200, "The Menara Kuala Lumpur reflected in a skyscraper", "../malaysia/kuala_lumpur.html", "../images/image.php?folder=malaysia&image=kuala_lumpur4.jpg&return=1");
arrImages[21] = new Array("../images/nepal/200/annapurna_circuit_stage_23.jpg", 136, 200, "Children of Kagbeni", "../nepal/annapurna_circuit_stage_2.html", "../images/image.php?folder=nepal&image=annapurna_circuit_stage_23.jpg&return=1");
arrImages[22] = new Array("../images/new_zealand/200/hollyford-pyke_routeb.jpg", 132, 200, "Mark knee-deep in the oozing Black Swamp", "../new_zealand/hollyford-pyke_route.html", "../images/image.php?folder=new_zealand&image=hollyford-pyke_routeb.jpg&return=1");
arrImages[23] = new Array("../images/new_zealand/200/hollyford-pyke_routec.jpg", 132, 200, "Mt Madeline", "../new_zealand/hollyford-pyke_route.html", "../images/image.php?folder=new_zealand&image=hollyford-pyke_routec.jpg&return=1");
arrImages[24] = new Array("../images/new_zealand/200/mt_cook7.jpg", 133, 200, "Mt Cook and the Hooker Glacier", "../new_zealand/mt_cook.html", "../images/image.php?folder=new_zealand&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) + ")";
}
