/* ==========================================================================
	 Naam:			navigatie.js
	 Functie: 	Setten 'hover'-class
	 						'Aanwijzen' current list-item (level 3)
	 						Herpositioneren 2e level
	 						Herpositioneren 1e level
	 Door:			Zinster Web-design
	 
	 Gewijzigd:
	 Versie	Datum				Door	Omschrijving
	 ======	==========	====	=============================================
	 v1.2.1	20/11/2008 	PS		level101 en noneHover eruit, css aanpassingen
	 v1.2.2	17/12/2008	PS		currentLinkL1 & currentLinkL2 ingebouwd
   ========================================================================== */
	 

/*
========================================================================
Functienaam:			startList
Functiefunctie:	Zet hoverclasses i.v.m. ie6
======================================================================== */
startList = function() {
	if (document.all&&document.getElementById) {
		navRoot = document.getElementById("nav");
		for (i=0; i<navRoot.childNodes.length; i++) {
			node = navRoot.childNodes[i];
			if (node.nodeName=="LI") {
				node.onmouseover=function() {
					this.className+=" over";
				}
				node.onmouseout=function() {
					this.className=this.className.replace(" over", "");
				}
				/* Onderliggende LI's ook ----------------------------------------- */
				for (telUL=0; telUL<node.childNodes.length; telUL++) {
					nodeUL = node.childNodes[telUL];
					if (nodeUL.nodeName=="UL") {
						for (telLI=0; telLI<nodeUL.childNodes.length; telLI++) {
							nodeLI = nodeUL.childNodes[telLI];
							if (nodeLI.nodeName=="LI") {
								nodeLI.onmouseover=function() {
									this.className+=" over";
								}
								nodeLI.onmouseout=function() {
									this.className=this.className.replace(" over", "");
								}
							}
						}
					}
				}
				/* ---------------------------------------------------------------- */
			}
		}
	}
}
/* Zet van gevonden link van de parent (li) de child-ul class */
function setLevel1 (jnode) {
	var pNode = jnode.parentNode;
	for (var j=0; j<pNode.childNodes.length; j++) {
		if (pNode.childNodes[j].nodeName == "UL") {
			pNode.childNodes[j].className = "level1";
			pNode.childNodes[j].parentNode.className = "level0";
		}
	}
}
/*
========================================================================
Functienaam:			eindLevel
Functiefunctie:	Controleer of element het laagste level is
======================================================================== */
function eindLevel (knode) {
	var pNode = knode.parentNode;
	for (var k=0; k<pNode.childNodes.length; k++) {
		if (pNode.childNodes[k].nodeName == "UL") {
			return(false);
		}
	}
	return(true);
}
/*
========================================================================
Functienaam:			setClass
Functiefunctie:	Zet evt de class van de huidige link afh. van niveau
======================================================================== */
function setClass (inode) {
	var i, node;
	if (inode.nodeName=="LI") {
		level++; // Houd niveau bij: één erbij
	}
	if (inode.nodeName=="A") {
		var href = inode.href.replace("///","//");	// Dit is een link: controleer referentie. replace i.v.m. ie
		href = href.replace(/\//g,"\\"); 						// replace i.v.m. ie
		// alert("href: " + href + ", url: "+ docURL);
		if (href == docURL) {
			// alert("Level: " + level);
			// Eerste level ======================================================================================
			if (level == 1) {
				setLevel1(inode);
				// P!M 06/01 inode.className += " currentLinkL1"; // P!M 17/12
				inode.parentNode.className += " currentLinkL1"; // P!M 17/12
			} // Level 1
			// Tweede level ======================================================================================
			if (level == 2) {
				if (eindLevel(inode) == true) {
					inode.parentNode.className += " currentLink2";
				} else {
					// P!M 06/01 inode.parentNode.className += " currentLinkL2"; // P!M 17/12
					inode.parentNode.className += " currentLinkL2"; // P!M 17/12
					var pNode2 = inode.parentNode;
					for (var l=0; l<pNode2.childNodes.length; l++) {
						if (pNode2.childNodes[l].nodeName == "UL") {
							pNode2.childNodes[l].className = "level2";
						}
					}
				}
				inode.parentNode.parentNode.className = "level1";							// ul li UL
				inode.parentNode.parentNode.parentNode.className = "level0";	// ul LI
			} // Level 2
			// Derde level ======================================================================================
			if (level == 3) {
				// Gevonden: ul li ul li ul li A
				inode.parentNode.className += " currentLink";																				// ul li ul li ul li
				inode.parentNode.parentNode.className = "level2";																		// ul li ul li UL
				inode.parentNode.parentNode.parentNode.parentNode.className = "level1";							// ul li UL
				inode.parentNode.parentNode.parentNode.parentNode.parentNode.className = "level0";	// ul LI
			} // Level 3
		} // If (href == docURL)
	} // If (inode.nodeName == "A")
	for (i=0; i<inode.childNodes.length; i++) {
		node = inode.childNodes[i]; // Ga verder met alle children
		setClass(node);
	}
	if (inode.nodeName=="LI") {
		level--; // Houd niveau bij: één eraf
	}
}
/* ======================================================================== */

var level = 0; // Initieel
var docURL = document.URL.replace("///","//"); 	// URL huidige document: replace i.v.m. ie
var arVersion = navigator.appVersion;
docURL = docURL.replace(/\//g,"\\"); 						// replace i.v.m. ie
docURL = docURL.replace(/ /g,"%20");	 					// replace i.v.m. ie

startList();

navRoot = document.getElementById("nav");
setClass(navRoot);

/* ======================================================================== */
