startList = function() {
	if (document.getElementById) {
		var navRoot = document.getElementById('leftnav');
        for (var i=0; i<navRoot.childNodes.length; i++)
            if(navRoot.childNodes[i].nodeName=='UL')
                recurseNavigatie(navRoot.childNodes[i]);
	}
    document.getElementById('leftnav').className = '';
}

//pas de class aan van de volledige tak tot aan de 'root' (leftnav)
//De break instructie blijkt ook alle andere lussen te onderbreken en moet 
//daarom omzijld worden indien je reeds in een lust zit...
//de andere parameter: parent: diepste node, selectedNode: de huidige opengeklapte
//node, newClass: de class die moet worden teogekend.
function changeClassForBranch(parent, selectedNode, newClass, breakLoop){

    var parentFound = false;
    while(parent != null && selectedNode != null){
        parentFound |= (parent.id == selectedNode.id);
        if(parent.id == 'leftnav' && breakLoop){
            break;
        }
        if(parent.id != null && parent.innerHTML != null && parent.id.indexOf('uniek_') > -1 
               && (parent.innerHTML.indexOf("navpijltje") < parent.innerHTML.indexOf("</A>")
                    ||
                   parent.innerHTML.indexOf("navpijltje") < parent.innerHTML.indexOf("</a>")
           )){
            parent.className = newClass;
        }
        parent = parent.parentNode;
    };

    return parentFound
}

function recurseNavigatie(navRoot){

	for (var i=0; i<navRoot.childNodes.length; i++) {
		node = navRoot.childNodes[i];
		if (node.nodeName=='LI') {
            for(var j = 0; j < node.childNodes.length; j++){
                if(node.childNodes[j].nodeName == 'A' && node.className == 'closed' ) {
                    node.childNodes[j].onclick=function() {	
						// openzetten van de nieuwe selectie (bij niet herladen van de pagina)
                        this.parentNode.className = (this.parentNode.className == 'open') ? 'closed' : 'open';
                        
                        var selectedNode = document.getElementById(koepel_nav_selected_id);

                        // toeklappen van de vorige selectie.
                        if(selectedNode != null && !parentFound){
                            changeClassForBranch(selectedNode, selectedNode, 'closed', true);
                            //changeClassForChilds(selectedNode, 'closed');
                        } 

                        // node met al zijn parents openklappen
                        var parentFound = changeClassForBranch(this.parentNode, selectedNode, 'open', true);
                        
                        koepel_nav_selected_id = this.parentNode.id;

                        // doorsturen van de selectie naar de server.
                        var temp = new Image(); 
                        temp.src ='/includes/mem_nav.jsp?koepel_nav_uniek_id=' + koepel_nav_selected_id + '&koepel_nav_uniek_status=' + this.parentNode.className + '&rnd=' + Math.random();
                    }
                    
                    if(node.className != 'open') {
                     node.className = 'closed';
                    node.childNodes[j].innerHTML = node.childNodes[j].innerHTML + '&nbsp;<span class="navpijltje">&raquo;</span>';
                    }

                    //openzetten van de selectie bij herladen van de pagina.
                    if(node.id == '<%=session.getAttribute("koepel_nav_uniek_id")%>')  {
                        changeClassForBranch(node, node, 'open', false);
                    }
                }
                
                //zorg ervoor dat directe links en links met aanpassing van menu ook correct worden weergegeven.
                if(node.childNodes[j].nodeName == 'A' && node.childNodes[j].href == document.location){
                    changeClassForBranch(node, node, 'open', false);
                }

                //indien er nog childnodes zijn, ook deze doorlopen.
                if(node.childNodes[j].nodeName == 'UL') {
                    recurseNavigatie(node.childNodes[j]);
                }
            } 
		}
	}

}
//var koepel_nav_selected_id = '<%=session.getAttribute("koepel_nav_uniek_id")%>';

