function showHide(el) {
	el.style.display = (el.style.display == 'block' || el.style.display == 'inline' || el.style.display == '') ? 'none' : 'block';
}

function showById(theId) {
	var el = document.getElementById(theId);
	el.style.display = 'block';
	var docList = el.getElementsByTagName('DIV');
	if (docList.length > 0) docList[0].style.display = 'block';
}

function getElementsByTagClassName(tagName, className) {
	var allTags = document.getElementsByTagName(tagName);
	var tags = new Array();
	for (var i = 0; i < allTags.length; i ++) {
		if (allTags[i].className == className) tags.push(allTags[i]);
	}
	return tags;
}

function showHideSubCategories(el) {
	var subCats = el.parentNode.getElementsByTagName('LI');
	for (var i = 0; i < subCats.length; i ++) {
		showHide(subCats[i]);
	}
	el.className = (el.className == 'open') ? 'closed' : 'open';
}

function showHideDocList(el) {
	var docList = el.parentNode.getElementsByTagName('DIV');
	if (docList.length > 0) showHide(docList[0]);
	el.className = (el.className == 'open') ? 'closed' : 'open';
}

// Store id of categories that are opened on client, so we can re-open them when page refreshed:
function setElementOpenCookie(element) {
	if (element.className == 'open') {
		// This element is open so store a cookie to indicate that:
		document.cookie = element.id + "=open; path=/";
	}
	else {
		// This element is closed so reset any existing cookie that says its open:
		document.cookie = element.id + "=; path=/";
	}
}

// Check cookie to see whether an element should be open and if so open it:
function reOpenCategory(element) {
	setOpen(element, 1);
}

function reOpenSubCategory(element) {
	setOpen(element, 2);
}

function setOpen(element, catLevel) {
	var cookieArray = document.cookie.split(';');
	
	// For each cookie:
	for (var i=0; i<cookieArray.length; i++) {
		var thisCookie = cookieArray[i];
		
		// remove any spaces at start of cookie:
		while (thisCookie.charAt(0) == ' ') {
			thisCookie = thisCookie.substring(1, thisCookie.length);
		}
		
		// remove '=open' at end of cookie so we're left with the id of the element that is open:
 		var cookieId = thisCookie.substring(0, thisCookie.length - 5);
	 	
		
		if (cookieId == element.id) {
			// This element was open previously so set it to "open" now (using same method as onClick):
			if (catLevel == 1) {
				showHideSubCategories(element);
			}
			else if (catLevel == 2) {
				showHideDocList(element);
			}
		}
	}
}
