// JavaScript Document

/* Document written by Christopher White */

// Global Variables //

var object = new Array();
var pause = new Array();
var fade = new Array();
var timeout = new Array();
var fadeout = new Array();

// Functions //

function mySlideshowSetup(slideshow_id, slideshow_pause, slideshow_fade)
{
	var id = parseInt(slideshow_id.replace(/slideshow_(.*?)/gi, "$1"));
	if (typeof(document.getElementById(slideshow_id)) != 'undefined')
	{
		var slideshow = document.getElementById(slideshow_id);
		object[id] = slideshow;
		pause[id] = parseInt(slideshow_pause);
		fade[id] = parseInt(slideshow_fade);
		if (typeof(slideshow.getElementsByTagName("div")) != 'undefined')
		{
			var divs = slideshow.getElementsByTagName("div");
			for (var d = 0; d < divs.length; d++)
			{
				if (divs[d].id == 'slideshow_image_area')
				{
					var image_area = divs[d];
				}
			}
			var list = slideshow.getElementsByTagName("ul")[0].getElementsByTagName("li");
			var images = new Array();
			for (var li = 0; li < list.length; li++)
			{
				image_id = li+1;
				images[li] = list[li].innerHTML;
				images[li] = images[li].replace(/(<a.*?>)(.*?)(<\/a>)/gi, "$2");
				if (list[li].id == 'slideshow_active' && typeof(image_area) != 'undefined')
				{
					image_area.innerHTML = images[li];
					var image_start = image_id;
				}
				list[li].innerHTML = "<a href='javascript:mySlideshowSwapImage(\""+slideshow_id+"\", \"image_"+image_id+"\");' id='image_"+image_id+"'>"+images[li]+"</a>";
			}
			mySlideshowSwapImage(id, "image_"+image_start);
		}
		else
		{
			alert("The image area could not be found in "+slideshow_id+"!");
		}
	}
	else
	{
		alert("The slideshow could not be found in "+slideshow_id+"!");
	}
}

function mySlideshowSwapImage(id, anchor_id)
{
	var slideshow_id = object[id].id;
	var image_found = false;
	if (typeof(document.getElementById(slideshow_id)) != 'undefined')
	{
		var slideshow = document.getElementById(slideshow_id);
		if (typeof(slideshow.getElementsByTagName("div")) != 'undefined')
		{
			var divs = slideshow.getElementsByTagName("div");
			for (var d = 0; d < divs.length; d++)
			{
				if (divs[d].id == 'slideshow_image_area')
				{
					var image_area = divs[d];
				}
			}
			var list = slideshow.getElementsByTagName("ul")[0].getElementsByTagName("li");
			var image_start = parseInt(anchor_id.replace(/image_(.*?)/gi, "$1"));
			if (image_start == list.length)
			{
				image_start = 0;
			}
			for (var li = 0; li < list.length; li++)
			{
				if (typeof(list[li].getElementsByTagName("a")) != 'undefined' && list[li].getElementsByTagName("a")[0].id == anchor_id)
				{
					image_found = true;
					image_area.style.backgroundImage = "url("+image_area.childNodes[0].src+")";
					image_area.innerHTML = list[li].getElementsByTagName("a")[0].innerHTML;
					mySlideshowSetOpacity(id, 0);
					clearTimeout(fadeout[id]);
					clearTimeout(timeout[id]);
					fadeout[id] = setTimeout("mySlideshowFade('"+id+"', 0, 100, "+fade[id]+");", (pause[id]+fade[id]));
					timeout[id] = setTimeout("mySlideshowSwapImage('"+id+"', 'image_"+(image_start+1)+"');", (pause[id]+fade[id]));
				}
			}
			if (!image_found)
			{
				alert("The next image could not be found in "+slideshow_id+"!");
			}
		}
		else
		{
			alert("The image area could not be found in "+slideshow_id+"!");
		}
	}
	else
	{
		alert("The slideshow could not be found in "+slideshow_id+"!");
	}
}

function mySlideshowFade(id, start, end, fade) {
	var speed = Math.round(fade/100);
	var timer = 0;
	if (start > end)
	{
		for (i = start; i >= end; i--)
		{
			setTimeout("mySlideshowSetOpacity('"+id+"', "+i+")", (timer * speed));
			timer++;
		}
	}
	else if (start < end)
	{
		for (i = start; i <= end; i++)
		{
			setTimeout("mySlideshowSetOpacity('"+id+"', "+i+")", (timer * speed));
			timer++;
		}
	}
}

function mySlideshowSetOpacity(id, opacity) {
	var slideshow = object[id];
	var divs = slideshow.getElementsByTagName("div");
	for (var d = 0; d < divs.length; d++)
	{
		if (divs[d].id == 'slideshow_image_area')
		{
			var image_area = divs[d];
		}
	}
	image_area.childNodes[0].style.opacity = (opacity/100);
	image_area.childNodes[0].style.MozOpacity = (opacity/100);
	image_area.childNodes[0].style.KhtmlOpacity = (opacity/100);
	image_area.childNodes[0].style.filter = "alpha(opacity="+opacity+")";
}

