
	Array.prototype.indexOf = IndexOf;
	
	function ToggleClass(element, firstClass, secondClass, event) {
		
		event.cancelBubble = true;
	
		var classes = element.className.split(" ");
		var firstClassIndex = classes.indexOf(firstClass);
		var secondClassIndex = classes.indexOf(secondClass);
	
		if (firstClassIndex == -1 && secondClassIndex == -1) {
			classes[classes.length] = firstClass;
		}
		else if (firstClassIndex != -1) {
			classes[firstClassIndex] = secondClass;
		}
		else {
			classes[secondClassIndex] = firstClass;
		}
	
		element.className = classes.join(" ");
	
	}
	
	function IndexOf(item) {
		for (var i=0; i < this.length; i++)	{ 
			if (this[i] == item) {
				return i;
			}
		}
	
		return -1;
	} 
	
	function ToggleNodeStateHandler(event) {
		ToggleClass(this, "collapsed", "expanded", (event == null) ? window.event : event);
	}
	
	function PreventBubbleHandler(event) {
		if (!event) event = window.event;
		event.cancelBubble = true;
	}
	
	function SetupTreeView(elementId) {
		var tree = document.getElementById(elementId);
		var treeElements = tree.getElementsByTagName("li");
	
		for (var i=0; i < treeElements.length; i++)	{
			if (treeElements[i].getElementsByTagName("ul").length > 0) {
				treeElements[i].onclick = ToggleNodeStateHandler; 
			}
			else {
				treeElements[i].onclick = PreventBubbleHandler; 
			}
		}
	} 
	
