var ClassTools = new Object();
Object.extend(ClassTools, {
	init: function()
	{
		// Only assign functions to <dl />'s used for classes
		for(var i=0; (dl = document.getElementsByTagName("dl")[i]); i++)
		{
			if(dl.className == 'classes')
			{
				ClassTools.AssignTriggers(dl);
			}
		}
	},
	
	TriggerClass: function()
	{
		var dt_id = this.id;
		var dd_id = this.id.replace("class_", "desc_");
		
		// Turn off highlight and hide description
		if(Element.hasClassName(dt_id, 'display'))
		{
			Element.removeClassName(dt_id, 'display');
			Element.addClassName(dt_id, 'hide');
			
			Element.removeClassName(dd_id, 'display');
			Element.addClassName(dd_id, 'hide');
		}
		// Turn on highlight and show description
		else
		{
			Element.removeClassName(dt_id, 'hide');
			Element.addClassName(dt_id, 'display');
			
			Element.removeClassName(dd_id, 'hide');
			Element.addClassName(dd_id, 'display');
		}
	},
	
	AssignTriggers: function(aParent)
	{
		var dts = aParent.getElementsByTagName('dt');
		
		var __parent = this;
		
		for(var i=0; i<dts.length; i++)
		{
			if(dts[i].className != "")
			{
				addEvent(dts[i], 'click', __parent.TriggerClass);
			}
		}
	}
});

//addEvent(window, 'load', ClassTools.init);

