/*
TreeMenu3 -- treemenu structure, style and behavior -- version 1.0
Copyright (C) 2005 Anders Nawroth (anders at nawroth dot com)
Released under LGPL, see http://treemenu.nawroth.com/source/license
*/

addEvent(window,'load',makeTreeMenu);

function makeTreeMenu()
{
	if (document.getElementById && document.createElement)
	{
		var menu = document.getElementById('subnavi');
		var listItems = menu.getElementsByTagName('li');
		var oldTree = readCookie('treemenu');
		for (var i = 0; i < listItems.length; i++)
		{
			var li = listItems[i];
			if (li.className.indexOf('folder') != -1)
			{
				var span = document.createElement('span');
				li.insertBefore(span,li.firstChild);
				addEvent(span,'click',toggleClick);
				if (oldTree.length > 0)
				{
					var stat = oldTree.charAt(0);
					oldTree = oldTree.substring(1);
					if (stat == '-')
					{
						li.className = makeOpen(li.className);
					}
				}
			}
		}
		addEvent(window,'unload',saveTreeMenu);
	}
	if (document.all) /* IE bugfix, forces IE to re-render the menu */
	{
		menu.style.display = 'none';
		menu.style.display = 'block';
	}
}

function toggleClick()
{
	if (window.event)
	{
		el = window.event.srcElement;
	}
	else
	{
		el = this;
	}
	el = el.parentNode;
	toggleItem(el);
}

function toggleItem(item)
{
	if (item.className.indexOf('open') == -1)
	{
		item.className = makeOpen(item.className);
	}
	else
	{
		item.className = item.className.replace('open','closed');
	}
	if (document.all) /* IE bugfix */
	{
		menu.style.display = 'none';
		menu.style.display = 'block';
	}
}

function makeOpen(cn)
{
	if (cn.indexOf('open') == -1)
	{
		if (cn.indexOf('closed') == -1)
		{
			cn += ' open';
		}
		else
		{
			cn = cn.replace('closed','open');
		}
	}
	return cn;
}

function saveTreeMenu()
{
	var s = '';
	var menu = document.getElementById('subnavi');
	var listItems = menu.getElementsByTagName('li');
	for (var i = 0; i < listItems.length; i++)
	{
		var li = listItems[i];
		if (li.className.indexOf('folder') != -1)
		{
			if (li.className.indexOf('open') != -1)
			{
				s += '-';
			}
			else
			{
				s += '+';
			}
		}
	}
	createCookie('treemenu',s);
}