var fadeObjects = new Object();
var fadeTimers = new Object();
var pictureClicked = false;
var visiblePictureObject = null;
var visiblePictureListObject = null;
var pictureShown = false;

window.onresize = ShowAfterResize;
var mainForm = window.document.forms[0];
if (mainForm != null)
	mainForm.onclick = Click;
else
	window.onclick = Click;

function Hide(object)
{
	if (object == null && visiblePictureObject != null)
		object = visiblePictureObject;
		
	if (object != null)
	{
		object.style.visibility = "hidden";
		pictureClicked = false;
	}
}

function Click()
{
	if (pictureClicked == true && pictureShown == false)
	{
		Hide(visiblePictureObject);
	}
	
	pictureShown = false;
}

function ShowAfterResize()
{
	Show(null, null, false);
}

function Show(hiddenObjectID, pictureListID, isClicked)
{	
	pictureShown = true;
	
	if (isClicked == true)
	{
		if (pictureClicked == true)
			pictureClicked = false;
		else
			pictureClicked = true
	}
	else
	{
		if (isClicked == false && pictureClicked == false)
			return;
	}
		
	var hiddenObject = document.getElementById(hiddenObjectID);
	var pictureListObject = document.getElementById(pictureListID);
	
	if (hiddenObject == null || pictureListObject == null)
	{
		if (visiblePictureObject != null && visiblePictureListObject != null)
		{
			hiddenObject = visiblePictureObject;
			pictureListObject = visiblePictureListObject;
		}
		else
			return;
	}
	
	if (hiddenObject != visiblePictureObject && visiblePictureObject != null)
		visiblePictureObject.style.visibility = "hidden";
		
	if (hiddenObject.style.visibility == "visible" && isClicked == true)
	{
		hiddenObject.style.visibility = "hidden";
		return;
	}
	else
	{
		var positionX = Math.ceil((pictureListObject.clientWidth - 300) / 2);
		hiddenObject.style.left = pictureListObject.offsetLeft + positionX;
		var parentObject = document.getElementById(parentObjectId);
		var offsetTop = pictureListObject.offsetTop + pictureListObject.clientHeight + 20;
		if (parentObject.clientHeight < offsetTop + hiddenObject.clientHeight)
			offsetTop = pictureListObject.offsetTop - hiddenObject.clientHeight - 20;
		hiddenObject.style.top = offsetTop;
		hiddenObject.style.visibility = "visible";
		visiblePictureObject = hiddenObject;
		visiblePictureListObject = pictureListObject;
	}
}

function Fade(object, destOpacity, rate, delta, changeFile, pictureList)
{
	if (navigator.appName == "Microsoft Internet Explorer" && 
	    navigator.userAgent.indexOf("Windows") > 0)
	{
		if (!document.all)
			return
		if (object != "[object]")
		{
			setTimeout("Fade("+object+", "+destOpacity+", "+rate+", "+delta+")", 0);
			return;
		}

		clearTimeout(fadeTimers[object.sourceIndex]);
		diff = destOpacity - object.filters.alpha.opacity;
		direction = 1;

		if (object.filters.alpha.opacity > destOpacity)
		{
			direction = -1;
		}
		
		delta = Math.min(direction * diff, delta);
		object.filters.alpha.opacity += direction * delta;

		if (object.filters.alpha.opacity != destOpacity)
		{
			fadeObjects[object.sourceIndex] = object;
			fadeTimers[object.sourceIndex] = setTimeout("Fade(fadeObjects["+object.sourceIndex+"], "+destOpacity+", "+rate+", "+delta+")", rate);
		}
	}
	else
	{
		object.src = changeFile;
	}
}

