//addEvent(window, 'load', siteMap_load);

function siteMap_load() {
	// Local constants
	var CONTAINER_ID 	= 'SiteMap';
	var LIST_TAG	= 'UL';
	var ITEM_TAG	= 'LI';
	// Local variables
	var container		= null;
	var sections 		= new Array();
	
	container = document.getElementById(CONTAINER_ID);
	sections = 	siteMap_getFilteredFirstChild(
					siteMap_getFilteredFirstChild(							
						siteMap_getFilteredFirstChild(container, LIST_TAG)	// Home UL tag
					, ITEM_TAG)												// Home LI tag
				, LIST_TAG);												// Section UL tag
	siteMap_hideLists(sections);
}

function siteMap_getFilteredFirstChild(parent, filter){
	// Local variables
	var i = 0;
	
	for (i = 0; i < parent.childNodes.length; i++) {
		if (parent.childNodes[i].tagName == filter) {
			return parent.childNodes[i];
		}
	}
}

var siteMap_onClick = function(e) {
	// Local constants
	var LIST_TAG	= 'UL';
	// Local variables
	var targ		= null;
	
	if (!e) { 
		var e = window.event; 
	}
	if (e.target) { 
		targ = e.target; 
	} else if (e.srcElement) { 
		targ = e.srcElement; 
	}
	if (targ.nodeType == 3) { 
		targ = targ.parentNode; 
	} // defeat Safari bug 
	
	if (targ.parentNode.className.indexOf('hide') == -1) {
		targ.parentNode.className += ' hide';
	} else {
		targ.parentNode.className = targ.parentNode.className.replace('hide','');
	}
}

function siteMap_hideLists(sections) {
	// Local constants
	var LIST_TAG		= 'UL';
	var ITEM_TAG		= 'LI';
	var SPAN_TAG		= 'SPAN';
	// Local variables
	var textNode 		= document.createTextNode('(Expand)');
	var spanNode		= document.createElement('span');
	var lists			= new Array();
	var spans			= new Array();
	var children		= false;
	var i				= 0;
	var s				= '';
	
	spanNode.className += ' expand';
	spanNode.title = 'Click to expand section';
	spanNode.appendChild(textNode);
	lists = sections.getElementsByTagName(ITEM_TAG);
	for(i = 0; i < lists.length; i++) {
		 children 	= ( typeof(lists[i].getElementsByTagName) == 'function' 	|| 
		 				typeof(lists[i].getElementsByTagName) == 'object' ) 	&& 
						lists[i].getElementsByTagName(LIST_TAG).length > 0;
		if (children) {
					lists[i].appendChild(spanNode.cloneNode(true));
					lists[i].className = lists[i].className.replace('hide', '') + ' hide';
		}
	}
	spans =	sections.getElementsByTagName(SPAN_TAG);
	for (i = 0; i < spans.length; i++) {
		addEvent(spans[i], 'click', siteMap_onClick);
	}
}