/* (c) 2005 Koen Peters */

/*	Deze functie zorgen ervoor dat de menuitems die onder de boor-div zitten 
	alsnog worden gehighlight wanneer er met de muis over wordt bewogen.
*/

function mouseOverMenu(volgnr) {
	var menuItemsLength = 0;
	var children		= document.getElementById('menu-1').childNodes;
	for (var i=0; i < children.length; i++) 
		menuItemsLength += children[i].tagName == 'LI'? 1: 0;
	for (var i = 1; i < menuItemsLength; i++) {
		if (i != volgnr)	mouseOutMenu(i)
		else				addClass(getMenuAnchor(document.getElementById('menuAnchor-1_' + i)), 'mouseOver');	
	}
}

function mouseOutMenu(volgnr) {
	removeClass(getMenuAnchor(document.getElementById('menuAnchor-1_' + volgnr)), 'mouseOver');
}

function clickMenu(volgnr) {
	document.location.replace(getMenuAnchor(document.getElementById('menuAnchor-1_' + volgnr)).href);
}

function getMenuAnchor(obj) {
	if (obj.tagName == 'A') return obj;
	if (obj.firstChild)		return getMenuAnchor(obj.firstChild);
	else return null;	
}

/* Voegt een class toe aan het className attribuut van de meestuurde node. Wanneer de class al vookomt, dan wordt er niets gedaan */
function addClass(node, newClass) {
	var c	= node.className;				
	var id	= getClassIndex(c, newClass);
	if (id == -1) {
		node.className = c + ' ' + newClass; 							// Staat er nog niet bij: toevoegen
		node.className = node.className.replace(/^\s+|\s+$/g, '');		// Verwijderen van leading en training spaces
	}
}

/* Verwijdert een class uit het className attribuut van de meestuurde node. Wanneer de class niet voorkomt, dan wordt er niets gedaan */
function removeClass(node, oldClass) {
	var c	= node.className;	
	var id	= getClassIndex(c, oldClass);
	if (id > -1) {
		node.className = node.className.slice(0, id) + node.className.slice(id + oldClass.length); 	// Staat er bij: verwijderen
		node.className = node.className.replace(/^\s+|\s+$/g, '');									// Verwijderen van leading en training spaces
	}
}

/* Retourneert de index van een class binnen een string van classnames, waarbij de classes zijn gescheiden door spaties. -1 als de class niet voorkomt. */
function getClassIndex(c, zoekClass) {
	if (c) {
		if (c.indexOf(zoekClass + ' ') == 0) 																		return 0; 										// eerste class van een rij van classes 
		if (c.indexOf(zoekClass) == 0  && c.length == zoekClass.length) 											return 0;										// eerste en enige class 
		if ((c.indexOf(' ' + zoekClass) == (c.length - (zoekClass.length + 1))) && c.indexOf(' ' + zoekClass) > 0)	return c.indexOf(' ' + zoekClass) + 1; 			// laatste class van een rij van classes 
		if (c.indexOf(' ' + zoekClass + ' ') != -1)  																return c.indexOf(' ' + zoekClass + ' ') + 1;	// een van de middelste classes van een rij van classes 
	}
	return -1;
}