var timeoutID = null;
var interval = 3000;
var slideShowEnabled = false;

var imgPreload;

var ddImages;
var imgStart;
var imgMain;
var imgLoading;
var hrStartShow;

function Init()
{
	imgPreload = new Image();
	//imgPreload.onload = function() { alert("pre-loaded"); };

	ddImages = document.getElementById('ddImages');
	imgStart = document.getElementById('imgStartShow');
	imgMain = document.getElementById('imgMain');
	imgLoading = document.getElementById('imgLoading');
	hrStartShow = document.getElementById('hrStartShow');

	imgMain.onload = GalleryImage_onLoad;
	ddImages.onchange = ImageSelector_onChange;
	hrStartShow.onclick = ToggleSlideShow;
}

function ToggleSlideShow()
{
	if (slideShowEnabled == true)
	{
		imgStart.src = "../playslideshow.gif";
	
		ClearSlideTimer();

		slideShowEnabled = false;
	}
	else
	{
		imgStart.src = "../stopslideshow.gif";
		
		SetSlideTimer();

		slideShowEnabled = true;
	}
}

function SetSlideTimer()
{
	ClearSlideTimer();

	timeoutID = setTimeout(NextImage, interval);

	PreLoadNextImage();
}

function ClearSlideTimer()
{
	if (timeoutID != null)
	{
		clearTimeout(timeoutID);
		
		timeoutID = null;
	}
}

function NextImage()
{
	ddImages.selectedIndex = GetNextIndex();
	
	ShowSelectedImage();
}

function PreLoadNextImage()
{
	var src = ddImages.options[GetNextIndex()].value;

	imgPreload.src = src;
}

function GetNextIndex()
{
	var newIndex = ddImages.selectedIndex + 1;
	
	if (newIndex >= ddImages.options.length)
	{
		newIndex = 0;
	}

	return newIndex;
}

function ImageSelector_onChange()
{
	ClearSlideTimer();

	ShowSelectedImage();
}

function ShowSelectedImage()
{
	SetLoader(true);

	imgMain.src = ddImages.value;
}

function GalleryImage_onLoad()
{
	SetLoader(false);

	if (slideShowEnabled == true)
	{
		SetSlideTimer();
	}
}

function SetLoader(enable)
{
	if (enable == true)
	{
		imgLoading.src = "../loading_delay.gif";
	}
	else
	{
		imgLoading.src = "../loading_1.gif";
	}
}

Init();