// JavaScript Document
var prevNiveaus;
	
function Niveau(object){

	this.object = object;
	this.onmouseover = object.onmouseover;
	this.onmouseout = object.onmouseout;
	this.onmouseup = object.onmouseup;

}
function init(){
	
	initListItems();
	setDefaultItems();
	
}
function selectElementsFrom(object, elementName) {
	
	if(document.getElementById(object))
		var refObject = document.getElementById(object);
	else
		var refObject = object;
	
	var elements = new Array();
	var j = 0;
	
	for(var i=0; i<refObject.childNodes.length; i++){
		
		if(refObject.childNodes[i].nodeName == elementName){
		
			elements[j] = refObject.childNodes[i];
			j++;
			
		}
	}

	return elements;
	
}
function lockClass(object){
	
	if(prevNiveaus){
		prevNiveaus.object.onmouseover = prevNiveaus.onmouseover;
		prevNiveaus.object.onmouseout = prevNiveaus.onmouseout;
		prevNiveaus.object.onmouseup = prevNiveaus.onmouseup;
		prevNiveaus.object.onmouseout();
	}
		
	prevNiveaus = new Niveau(object);

	object.onmouseover = '';
	object.onmouseout = '';
	object.onmouseup = '';

}
function initListItems(){
	
	var elements = new Array();
	var listItems = new Array();
	var listCounter = 0;
		
	elements = selectElementsFrom('menu', 'UL');

	for(var i=0; i<elements.length; i++){
		
		listItems = selectElementsFrom(elements[i], 'LI');
		
		for(var j=0; j<listItems.length; j++){
		
			listItems[j].childNodes[0].onmouseover = function(){this.className = 'liSelect';};
			listItems[j].childNodes[0].onmouseout = function(){this.className = '';};
			listItems[j].childNodes[0].name = i + '' + j;//de links 'a' onthouden wat hun plaats in de hiarchie is van het menu
			listItems[j].childNodes[0].onmouseup = function(){lockClass(this);};
				
		}
				
	}
	
}
function setDefaultItems(){
	
	if(document.getElementById('default')){
		
		document.getElementById('default').onmouseover();
		document.getElementById('default').onmouseup();
		
	}

}

/*if (document.addEventListener) {
  document.getElementById("A").addEventListener("click", traceEvent, true);
  document.getElementById("B").addEventListener("click", traceEvent, true);
  document.getElementById("C").addEventListener("click", traceEvent, true);
  document.getElementById("A").addEventListener("click", traceEvent, false);
  document.getElementById("B").addEventListener("click", traceEvent, false);
  document.getElementById("C").addEventListener("click", traceEvent, false);
}
else {
  document.getElementById("A").onclick = traceEvent;
  document.getElementById("B").onclick = traceEvent;
  document.getElementById("C").onclick = traceEvent;
}

function traceEvent(event) {

  var phase, source;

  if (window.event) {
    target = window.event.srcElement.id;
    current = this.id
    if (this == window.event.srcElement)
      phase = "AT TARGET";
    else
      phase = "BUBBLE";
  }
  else {
    if (event.target.tagName)
      target = event.target.id;
    else
      target = "[Text]";
    current = event.currentTarget.id;
    if (event.eventPhase == Event.CAPTURING_PHASE)
      phase = "CAPTURE";
    else if (event.eventPhase == Event.BUBBLING_PHASE)
      phase = "BUBBLE";
    else if (event.eventPhase == Event.AT_TARGET)
      phase = "AT TARGET";
  }
}*/