
addEvent(window, "load", makeTrees);

function makeTrees()
{
	// We don't actually need createElement, but we do
	// need good DOM support, so this is a good check.
	if (!document.createElement)
		return;

	uls = document.getElementsByTagName("ul");
	for (uli=0; uli < uls.length; uli++)
	{
		ul = uls[uli];
		if (ul.nodeName == "UL" && ul.className == "TreeControl")
		{
			processUL(ul);
		}
	}
}

function processUL(ul)
{
	if (!ul.childNodes || ul.childNodes.length == 0)
		return;
	// Iterate LIs
	for (var itemi=0; itemi < ul.childNodes.length; itemi++)
	{
		var item = ul.childNodes[itemi];
		if (item.nodeName == "LI")
		{
			// Iterate things in this LI
			var a;
			var subul;
			subul = "";
			for (var sitemi = 0; sitemi < item.childNodes.length; sitemi++)
			{
				var sitem = item.childNodes[sitemi];
				switch (sitem.nodeName)
				{
					case "DIV":
						a = $(sitem).find('a');
						break;
					case "A":
						a = sitem;
						break;
					case "UL":
						subul = sitem; 
						processUL(subul);
						break;
					default:
						break;
				}
			}
			if (subul)
			{
				associateLI(a,subul);
			}
			else
			{
				a.parentNode.className = "TCbullet";
			}
		}
	}
}

function associateLI(a,ul)
{	
/*
	liNode = $(a).parent().parent();
	
	if (liNode.hasClass('TCclosed'))
	{
		liNode.removeClass('TCclosed');
		liNode.addClass('TCopen');
	}
	else
	{
		liNode.addClass('TCclosed');
		liNode.removeClass('TCopen');
	}
	
*/
	a.click( function ()
	{
		liNode = $(this).parent().parent();
		
		if (liNode.hasClass('TCclosed'))
		{
			liNode.removeClass('TCclosed');
			liNode.addClass('TCopen');
		}
		else
		{
			liNode.addClass('TCclosed');
			liNode.removeClass('TCopen');
		}		
		return false;
	});
}
function addEvent(obj, evType, fn)
{
	if (obj.addEventListener)
	{
		obj.addEventListener(evType, fn, false);
		return true;
	}
	else if (obj.attachEvent)
	{
		var r = obj.attachEvent("on"+evType, fn);
		return r;
	}
	else
	{
		return false;
	}
}

