/**
 * ...
 *
 * @author $Author$
 * @version $Revision$
 *
 * $Log$
 * Revision 1.3  2006/10/29 17:45:39  daniel
 * updated navigation
 *
 * Revision 1.2  2006/09/27 05:34:13  daniel
 * fixed state of navigation parent node (show expanded or closed icon)
 *
 * Revision 1.1  2006/09/26 07:56:48  daniel
 * another navigation variant (javascript)
 *
 *
 */

var _navigationCurrentItem = null;
var _navigationCurrentToggleItem = null;

function navigationItemIsVisible(item)
{
	var check = item.className;
	if(check == null)
	{
		return false;
	}
	if(!check.match(/expanded/i))
	{
		return false;
	}
	return true;
}

function navigatioSetCurrentBlock(parentID, toggleItemID)
{
	var LI = document.getElementById(parentID);
	var UL = searchUL(LI.firstChild);
	var toggleItem = document.getElementById(toggleItemID);

	if(navigationItemIsVisible(UL) || navigationItemIsVisible(toggleItem))
	{
		_navigationCurrentItem = parentID;
		_navigationCurrentToggleItem = toggleItemID;
	}
}

function navigationToggleBlock(parentID, toggleItemID)
{
	/* hide old selected item */
	if(_navigationCurrentItem != null && _navigationCurrentItem != parentID)
	{
		var oldLI = document.getElementById(_navigationCurrentItem);
		var oldUL = searchUL(oldLI.firstChild);
		navigationItemSetHidden(oldLI);
		navigationItemSetHidden(oldUL);
	}
	if(_navigationCurrentToggleItem != null && _navigationCurrentToggleItem != toggleItemID)
	{
		var oldToggleItem = document.getElementById(_navigationCurrentToggleItem);
		navigationItemSetHidden(oldToggleItem);
	}
	/* change toggleItem style (anchor or span) */
	if(toggleItemID!=null)
	{
		var toggleItem = document.getElementById(toggleItemID);
		navigationItemToggle(toggleItem);
	}
	/* change child list visibility */
	var LI = document.getElementById(parentID);
	var UL = searchUL(LI.firstChild);
	navigationItemToggle(LI);
	navigationItemToggle(UL);
	_navigationCurrentItem = parentID;
	_navigationCurrentToggleItem = toggleItemID;
}

function navigationItemToggle(item)
{
	if(navigationItemIsVisible(item))
	{
		navigationItemSetHidden(item);
	}
	else
	{
		navigationItemSetVisible(item);
	}
}

function navigationItemSetVisible(item)
{
	var newClassName = new Array("expanded");
	if(item.className!=null && item.className!='')
	{
		newClassName.push(item.className);
	}
	//alert('before '+item.className);
	item.className = newClassName.join(" ");
	//alert('after '+item.className);
}

function navigationItemSetHidden(item)
{
	var currentClassName = item.className;
	//alert('before '+item.className);
	item.className = currentClassName.replace(/expanded/, "");
	item.className=trimAll(item.className);
	//alert('after '+item.className);
}
 