var fadems = 25;		// Milliseconds
var showms = 5000;	// Milliseconds

var pic = new Array();
var txt = new Array();

// First image
pic[0] = "/home_page_slideshow/Two_Walkers.png";
txt[0] = "Groundmag Surveying";

var t;
var j = -1;
var p = pic.length;
var preLoad = new Array();

var fad = 0;

var imgtop;
var imgbottom;
var txtnext;

preLoad[0] = new Image();
preLoad[0].src = pic[0];



function fadein() {
	// Fade in current image
	var imgtop = document.getElementById('idtop');
	var imgbottom = document.getElementById('idbottom');

	if (fad == 0) {
		// First time
		// Swap
		imgbottom.src='';		// Remove flicker
		imgbottom.src = imgtop.src;
		// Bottom visible
		if (document.all) imgbottom.filters.alpha.opacity = 100;
		else imgbottom.style.MozOpacity = 1;
		// Top invisible
		if (document.all) imgtop.filters.alpha.opacity = 0;
		else imgtop.style.MozOpacity = 0;
		// Put new on top
		imgtop.src = pic[j];
		
		// Top invisible
		if (document.all) imgtop.filters.alpha.opacity = 0;
		else imgtop.style.MozOpacity = 0;
		
		// Show caption
		document.getElementById('idnote').innerHTML = txt[j];	// Set caption
	}

	fad += 1;

	if (fad > 100) {	
		// Done fading image on
		fad = 100;
		runslideshow();
	}
	else 
	{	// Keep fading in
		if (document.all) { 
			imgtop.filters.alpha.opacity = fad;
			imgbottom.filters.alpha.opacity = 100-fad;
		} else {
			imgtop.style.MozOpacity = fad/100;
			imgbottom.style.MozOpacity = 1-(fad/100);
		}
		setTimeout('fadein()', fadems);
	}
}


function runslideshow() {
	var imgtop = document.getElementById('idtop');
	var imgbottom = document.getElementById('idbottom');
	var note = document.getElementById('idnote');

	if (j == -1)
	{	// Put first image on bottom
		j = 0;
		imgtop.src    = pic[j];
		imgbottom.src = pic[j];
		note.innerHTML = txt[j];		// Set caption
		txt_next = txt[j];
	}

	// Get next image
	j = j + 1;
	if (j > (p - 1)) j = 0;
	preLoad[j] = new Image();
	preLoad[j].src = pic[j];
	
	// Reset fade
	fad = 0;

	// Get image just before visible
	setTimeout('fadein()', showms);	// Fade in top
}


function createfilelist(strdata) {
	// Extracts variables from response string.
	var i = 0;
	var vars = strdata.split('\n');
	for (var pairs in vars) {
		// Break into 'key value' pairs
		var kys = (vars[pairs]).split(';');
		if(kys.length <= 1) kys = (vars[pairs]).split(',');	// Backwards compatitble
		if (kys[1]) {
			pic[i] = "/home_page_slideshow/"+kys[0];
			txt[i] = kys[1];
			i++;
		}
	}
	p = i;

	// Randomize by swapping random entries
	for(i = 1; i < p-1; i++) {
		var iswap = Math.floor(Math.random()*(p-1-i))+i+1;
		var pswap = pic[i];
		var tswap = txt[i];
		pic[i] = pic[iswap];
		txt[i] = txt[iswap];
		pic[iswap] = pswap;
		txt[iswap] = tswap;
	}
}


function readfilelist(filename) {
	// Read text from file
	var xhr; 
	try {
		xhr = new ActiveXObject('Msxml2.XMLHTTP');
	} catch (e) {
		try {	
			xhr = new ActiveXObject('Microsoft.XMLHTTP'); 
		}
		catch (e2) {
			try {  
				xhr = new XMLHttpRequest(); 
			}
			catch (e3) {  xhr = false;	}
		}
	}
	xhr.onreadystatechange  = function() { 
		if(xhr.readyState  == 4) {
			if(xhr.status  == 200) {
				// Parse filelist
				createfilelist(xhr.responseText);
				runslideshow();
			} else {
				// Error
				console.log("ERROR:"+xhr.status);
			}
		}
	}; 

	xhr.open('GET', filename, true);
	xhr.send(); 
}


onload = function() {
	// Read list of parameters
	readfilelist('/home_page_slideshow/captions.txt');
}
