/* functies t.b.v. de drowpdown-menus 
* @fix 7.3.034	03-09-09	uitlijning submenu's voor alle browsers + bug: submenu bleef actief bij mouseover
*/
 
function Browser() {
	var ua,s,i;
	this.isIE=false;
	this.isNS=false;
	this.version=null; 
	ua = navigator.userAgent;

	s="MSIE";
	if((i=ua.indexOf(s))>=0){
		this.isIE=true; 
		this.version=parseFloat(ua.substr(i + s.length));
		return;
	}
	
	s="Netscape6/"; 
	if((i=ua.indexOf(s))>=0){
		this.isNS=true;
		this.version=parseFloat(ua.substr(i+s.length));
		return;
	}
	// letop: Safari VOOR Gecko checken
	s="Safari";
	if((i=ua.indexOf(s))>=0){
		this.isSA=true;
		this.version=parseFloat(ua.substr(i+s.length));
		return;
	}	
	
	//Mozilla/5.0 (Windows; U; Windows NT 5.1; nl; rv:1.9.0.13) Gecko/2009073022 Firefox/3.0.13 (.NET CLR 3.5.30729)
	s="Gecko";
	if((i=ua.indexOf(s))>=0){
		this.isNS=true;
		this.version=6.1; 
		return;
	}
	

}
var browser=new Browser();
var activeButton=null; 

if(browser.isIE)
	document.attachEvent("onmousedown", pageMousedown);
else
	document.addEventListener("mousedown",pageMousedown,true);

function pageMousedown(event)
{
	var el;
	if(activeButton==null)return;
	if(browser.isIE)el=window.event.srcElement;
	else el=(event.target.tagName?event.target:event.target.parentNode);
	
	if(el== activeButton)
	{
		return;
	}
	if(el.parentNode.className == 'menu2')
		return;
	resetButton(activeButton);
	activeButton = null;
}


function buttonClick(event,menuId){
	var button; 
	if(browser.isIE) button=window.event.srcElement; 
	else button=event.currentTarget;
	button.blur(); 
	if(button.menu==null && menuId){
		button.menu = document.getElementById(menuId); 
	}
	// huidige active menu resetten
	if(activeButton!=null)
		resetButton(activeButton); 
	// is deze button niet de actieve button
	if(button!=activeButton){
		depressButton(button); // maak button visible
		activeButton = button; // maak button actieve button
	} else activeButton=null; // anders 2x zelfde button is de-activeren
	return false;
} 

function depressButton(button){
	var x,y;button.className+=" WinKnopActive"; 
	x=getPageOffsetLeft(button);
	y=getPageOffsetTop(button)+ button.offsetHeight;
	
	if (browser.isIE){
		x= x+1;
		x+=button.offsetParent.clientLeft; 
		x--;
		y+=button.offsetParent.clientTop;
	} 
	else if (browser.isSA){
		x= x;
	} 
	else {
		x= x+8;
	}

	if(button.menu!=null){
		button.menu.style.left=x+"px";
		button.menu.style.top=y+"px"; 
		button.menu.style.visibility="visible";
	}
}

function resetButton(button){
	//alert('r');
	removeClassName(button,"WinKnopActive"); 
	if(button.menu!=null){
		closeSubMenu(button.menu);
		button.menu.style.visibility="hidden";
	}
}
/*
function menuMouseover(event){
	var menu; 
	if(browser.isIE)menu=window.event.srcElement;
	else menu=event.currentTarget; 
	if(menu.activeItem==null)
	{
		menu.activeItem = menu;
	}
	else
	{
		closeSubMenu(menu);	
	}
}
*/
function closeSubMenu(menu){
	if(menu==null||menu.activeItem==null) return; 
	
	if(menu.activeItem.subMenu!=null){
		closeSubMenu(menu.activeItem.subMenu); 
		menu.activeItem.subMenu.style.visibility="hidden";
		menu.activeItem.subMenu=null;
	} 
	removeClassName(menu.activeItem,"WinItemOplichten");
	menu.activeItem=null;
}


function getContainerWith(node,tagName,className){ 
	while(node!=null) { 
		if(node.tagName!=null&&node.tagName==tagName&&hasClassName(node,className)) return node;
		node=node.parentNode;
	}return node;
}

function hasClassName(el,name) { 
	var i,list;list=el.className.split(" "); 
	for(i=0;i<list.length;i++) if(list[i]==name)return true;return false;
}

function removeClassName(el,name){ 
	var i,curList,newList;
	if(el.className==null) return; 
	newList=new Array();
	curList=el.className.split(" "); 
	for(i=0;i<curList.length;i++) if(curList[i]!=name)newList.push(curList[i]);
	el.className=newList.join(" ");
}

function getPageOffsetLeft(el){
	var x;
	x=el.offsetLeft; 
	if(el.offsetParent!=null) x+=getPageOffsetLeft(el.offsetParent);
	return x;
}

function getPageOffsetTop(el){
	var y;
	y=el.offsetTop; 
	if(el.offsetParent!=null)y+=getPageOffsetTop(el.offsetParent);
	return y;
}
