
/* Utility functions */

function addEvent(obj, evType, fn) {
 /* Adds an eventListener for browsers which support it
     Written by Scott Andrew: nice one, Scott */
	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;
		}
	}

function nextObject(item) {
	var n = item;
	do n = n.nextSibling;
	while (n && n.nodeType != 1);
	return n;
}

function dltoggle() {
	var dls = document.getElementsByTagName("DL");
	var dls_toggle = new Array();
	var j = 0;
	for (var i = 0; i < dls.length; i++ )
	{
		if ( dls[i].className.search(/dl-toggle/) != -1 )
		{
			dls_toggle[j] = dls[i];
			j++;
		}
	}
	
	for ( var i = 0; i < dls_toggle.length; i++)
	{
		var dts = dls_toggle[i].getElementsByTagName("DT");
		var dds = dls_toggle[i].getElementsByTagName("DD");
		for (var j = 0; j < dts.length; j++)
		{
			dts[j].onclick = function() {
				var dd = nextObject(this);
				if (dd.nodeName != "DD") return false;
				if (dd.className == "closed" || dd.className.search(/closed/) != -1)
				{
					if (dd.className == "closed")
					{
						dd.className = "open";
					}
					else {
						dd.className = dd.className.replace(/closed/i, "open");
					}
				}
				else if (dd.className == "open" || dd.className.search(/open/) != -1){
					
					if (dd.className == "open")
					{
						dd.className = "closed";
					}
					else {
						dd.className = dd.className.replace(/open/i, "closed");
					}
				}
				if (this.className == "closed" || this.className.search(/closed/) != -1)
				{
					if (this.className == "closed")
					{
						this.className = "open";
					}
					else {
						this.className = this.className.replace(/closed/i, "open");
					}
				}
				else if (this.className == "open" || this.className.search(/open/) != -1){
					
					if (this.className == "open")
					{
						this.className = "closed";
					}
					else {
						this.className = this.className.replace(/open/i, "closed");
					}
				}
				return;
			}
			if (dds[j].className == "")
			{
				dds[j].className = "closed";
			}
			else {
				dds[j].className += " closed";
			}
			if (dts[j].className == "")
			{
				dts[j].className = "closed";
			}
			else {
				dts[j].className += " closed";
			}
		}
	}
	
}

addEvent(window, "load", dltoggle);
