var mnuLastID = 0;
var bmnuAction = false;

function getTreeDiff(aCur, aLast){
	for (var i = 0; i < aLast.length; i++) {
		if (aLast[i] != aCur[i]) { return aLast[i].substring(1, aLast[i].length - 1); }
	}
}

function toggle(ID_Navigation, node, bCollapse){
	if (typeof(bCollapse) == 'undefined') bCollapse = false;
	var imgNodes = node.getElementsByTagName('img');
	var c = 0;
	
	if (bmnuAction == false && mnuLastID != ID_Navigation) {
		bmnuAction = true;
		if (mnuLastID != 0) {
			if (node.getAttribute('treePath').indexOf('_' + mnuLastID + '_') == -1) {
				var lastNode = document.getElementById(mnuLastID);
				var collapseID = getTreeDiff(node.getAttribute('treePath').split(','), lastNode.getAttribute('treePath').split(','));
				toggle(collapseID, document.getElementById(collapseID), true);
			}
		}
		mnuLastID = ID_Navigation;
		bmnuAction = false;
	}
	
	while (node != null) {
		if (typeof(node.getAttribute) != 'undefined') {
			if (node.getAttribute('parentID') == ID_Navigation) {
				c++;
				if (node.style.display == 'none' && !bCollapse) {
					node.style.display = '';
				}
				else {
					node.style.display = 'none';
					if (imgNodes.length > 0) toggle(node.id, node, true);
				}
			}
		}
		node = node.nextSibling;
	}
	if (imgNodes.length > 0 && c > 0) {
		if (imgNodes[0].src == jsWEBURL + '/_common/images/img_nav_selected.gif' || bCollapse) imgNodes[0].src = jsWEBURL + '/_common/images/img_nav.gif';
		else imgNodes[0].src = jsWEBURL + '/_common/images/img_nav_selected.gif';
	}
}
