// Randomly choose an image to display from the given list (see imageList).
//
// Requires VA.util.getCookie() and VA.util.setCookie() from cookies.js
// <script src="VARandomImage.js" type="text/javascript"></script>
//
// Place this code in the <body> where you want the image to appear.
// <script type="text/javascript">
// var listOfImages = ['image.jpg', 'image2.jpg', 'image3.jpg'];
// var baseDirectory = '../img/';
// VA.widget.RandomImage(listOfImages, baseDirectory);
// </script>

var VA;
if (!VA) VA = {};
if (!VA.widget) VA.widget = {};

// imageList - A list of images to choose from. Filename and extension only (no path).
// baseDirectory - The relative path to the image files (don't forget the trailing slash!)
//     NOTE: all images must be in the same directory

VA.widget.RandomImage = function(imageList, baseDirectory) {
	this.imageList = imageList;
	this.baseDirectory = baseDirectory ? baseDirectory: '';
	
	// Preload all images
	for (var i = 0; i < imageList.length; i++) {
		var newImage = new Image();
		newImage.src = baseDirectory + imageList[i];
	}
	
	// Don't repeat images across successive page loads by placing the index
	// of the random image in a cookie
	var randomIndex = Math.floor(Math.random() * imageList.length);
	
	if (typeof document.cookie != 'undefined'){
		var lastIndex = VA.util.getCookie('lastImageIndex');
		do{
			if (lastIndex)
				randomIndex = Math.floor((Math.random() * imageList.length));
			else
				break;
		} while (lastIndex == randomIndex);
		VA.util.setCookie('lastImageIndex', randomIndex, 0); // remember for next time
	}
	
	// This is dangerous if the image isn't found, but it's necessary because it will be placed later in the page
	// if we wait for the image to finish loading - which is also bad. As long as the image loads, everything's fine.
	document.write('<img src="' + baseDirectory + imageList[randomIndex] + '">');
}

if (!VA.util) VA.util = {};

// http://www.quirksmode.org/js/cookies.html
VA.util.setCookie = function(name,value,days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}

// http://www.quirksmode.org/js/cookies.html
VA.util.getCookie = function(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}

VA.widget.RandomImage([
		'banner1.jpg',
		'banner2.jpg',
		'banner3.jpg',
		'banner4.jpg'
	], '../images/');
