//
// Common utility functions for UI.
//
// $Id: common.js,v 1.5 2004/12/01 05:37:30 renaud Exp $
//

function expandElement(elementID, iconSource)
{
	// default icon for first call
	expandOrCollapseElement(elementID, true, iconSource || "/img/icon/collapse.gif");	
}

function collapseElement(elementID, iconSource)
{
	expandOrCollapseElement(elementID, false, iconSource);
}

function expandOrCollapseElement(elementID, expand, iconSource)
{
	var collapsedElement = document.getElementById(elementID + "-collapsed");
	var expandedElement = document.getElementById(elementID + "-expanded");
	
	if (expand)
	{
		hideShowElements(collapsedElement, expandedElement);
		changeIcon(elementID, "collapse", collapseElement, iconSource); // function reference
	}
	else
	{
		hideShowElements(expandedElement, collapsedElement);		
		changeIcon(elementID, "expand", expandElement, iconSource); // function reference
	}
}
	
function changeIcon(elementID, label, f, oldIconSource)
{
	var icon = document.getElementById(elementID + "-expand-icon");
	
	if (icon)
	{
		icon.alt = label;
		
		// switch back to current icon on next click
		var currentIconSource = icon.src;
		icon.onclick = function(event) { f(elementID, currentIconSource) };

		icon.src = oldIconSource;
	}
}
	
function hideShowElements(hideElement, showElement)
{
	if (hideElement)
	{
		hideElement.style.display = "none";
	}
	
	if (showElement)
	{
		showElement.style.display = "block";	
	}
}
