/*
 * Dynamic Menu
 * Written by Andy Peatling - http://www.cssdev.com/
 * April 1, 2006.
 */

addLoadEvent(collapseMenu);
addLoadEvent(prepareMenu);
addLoadEvent(showActive);
addLoadEvent(showMessage);
addLoadEvent(initOrgStructure);

function showActive() {
	var links = document.getElementById("dsgMenu").getElementsByTagName("a");
	for (var i=0; i<links.length; i++) {	
		if (links[i].className == 'aktMenu') {
			actelement = links[i].parentNode.parentNode;
			while(actelement.id != 'dsgMenu') {
				actelement.style.display = "";
				actelement = actelement.parentNode.parentNode;
			}
		}
	}
}

function collapseMenu(node) {
	if (!document.getElementById) return false;
	if (!document.getElementById("dsgMenu")) return false;
	if (!node) node = document.getElementById("dsgMenu");

	if (node.childNodes.length > 0) {
		for (var i=0; i<node.childNodes.length; i++) {
			var child = node.childNodes[i];
			if (child.nodeName == "UL") {
					child.style.display = "none";
			}
			collapseMenu(child);
		}		
	}

}

function prepareMenu() {
	if (!document.getElementById || !document.getElementsByTagName) return false;
	if (!document.getElementById("dsgMenu")) return false;

	var links = document.getElementById("dsgMenu").getElementsByTagName("a");
	for (var i=0; i<links.length; i++) {		
		links[i].onclick = function() {
			toggleMenu(this.parentNode.getElementsByTagName("UL")[0], this.href);
			return false;
		}
	}
}

function toggleMenu(node, link) {
	if (!document.getElementById) return false;
	if (!link) return false;
	if (!node) location.href = link.href;

	// Collapse all nodes, and only show clicked node (when clicking top level of menu)
	if (node.parentNode.parentNode.id == "dsgMenu") {
		hideTopLevels();
	}
	
	if (node.style.display == "") {
		Effect.BlindUp(node, {duration: 0.2});
	} else {
		Effect.BlindDown(node, {duration: 0.2});
	}
}

function hideTopLevels() {
	if (!document.getElementById) return false;
	if (!(node = document.getElementById("dsgMenu"))) return false;	
	
	if (node.childNodes.length > 0) {
		for (var i=0; i<node.childNodes.length; i++) {
			var child = node.childNodes[i];
			for(var j=0; j<child.childNodes.length; j++) {
				var grandchild = child.childNodes[j];
				if (grandchild.nodeName == "UL") {
					if (grandchild.style.display == '') {
						Effect.BlindUp(grandchild, {duration: 0.2});
					}
				}
			}
		}		
	}
}

function addCompany() {
	new Effect.toggle($('addCompanyForm'),'blind');
}

function showMessage() {
	if ($('okCompMessage')) { 
		new Effect.Pulsate('okCompMessage',{delay:3,afterUpdate:function(){$('okCompMessage').show()}});
		//new Effect.Highlight($('okCompMessage'),{duration: 0.5});	
	}
}

function initOrgStructure() {
	if (!document.getElementById || !document.getElementsByTagName) return false;
	if (!document.getElementById("tree")) return false;

	//var links = document.getElementById("tree").getElementsByClassName("expander");
	var links = document.getElementsByClassName("expander");
	for (var i=0; i<links.length; i++) {		
		links[i].onclick = function() {
			toggleMenu2(this.parentNode.getElementsByTagName("UL")[0],this);
			return false;
		}
		if (links[i].parentNode.getElementsByTagName("UL").length > 0) {
			links[i].parentNode.getElementsByTagName("UL")[0].style.display = "none";
			links[i].className = "expanderClose";
		}
	}	
}

function toggleMenu2(node, me) {
	if (!document.getElementById) return false;
	if (!node) location.href = link.href;

	if (node.style.display == "") {
		me.className = "expanderClose";
		Effect.BlindUp(node, {duration: 0.2});
	} else {
		me.className = "expander";
		Effect.BlindDown(node, {duration: 0.2});
	}
}

function trimAll(sString) {
	while (sString.substring(0,1) == ' ') {
		sString = sString.substring(1, sString.length);
	}
	while (sString.substring(sString.length-1, sString.length) == ' ') {
		sString = sString.substring(0,sString.length-1);
	}
	return sString;
}