var doneSetup = 0;
var rootList;
var items = new Array();
var currentItem = new Array();
var focusItem = null;

function toggle(a, level) {
	if (!doneSetup) {
		doSetup();
	}
	
	if (currentItem[level] == a) {
		collapse(a);
	} else {
		expand(a);
	}

	if (focusItem != a) {
		if (focusItem) {
			focusItem.style.backgroundColor = 'transparent';
		}
		focusItem = a;
		a.style.backgroundColor = '#ccccdd';
	}
	
	return false;
}

function expand(a) {
	if (!doneSetup) {
		doSetup();
	}

	level = getLevel(a);
	if (currentItem[level]) {
		collapse(currentItem[level]);
	}
	currentItem[level] = a;
	
	u = a.parentNode.parentNode;
	if (u != rootList) {
		pa = u.parentNode.getElementsByTagName('SPAN');
		expand(pa[0]);
	}

	u = a.parentNode.getElementsByTagName('UL');
	if (u.length) {
		u = u[0];
		u.style.display = 'block';
		a.className = 'open';
	}
}

function collapse(a) {
	if (!doneSetup) {
		doSetup();
	}
	
	var u = a.parentNode.getElementsByTagName('UL');
	if (u.length) {
		u = u[0];
		v = u.getElementsByTagName('SPAN');
		for (j = 0; j < v.length; j++) {
			if (v[j].parentNode.parentNode == u) {
				collapse(v[j]);
			}
		}
		u.style.display = 'none';
		a.className = 'closed';
	}
	currentItem[getLevel(a)] = null;
}

function doSetup() {
	u = document.getElementById('category-list');
	u = u.getElementsByTagName('UL');
	rootList = u[0];
	a = rootList.getElementsByTagName('SPAN');

	for (i = 0; i < a.length; i++) {
		level = getLevel(a[i]);
		if (!items[level]) {
			items[level] = new Array();
		}
	
		items[level][items[level].length] = a[i];
	}
	
	doneSetup = 1;
}

function getLevel(a) {
	a = a.parentNode.parentNode;

	for (l = 0; a != rootList; l++) {
		a = a.parentNode.parentNode;
	}
	
	return l;
}
