	/// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// ///
	///	EventListener generator
	///	
		function addEvent(obj, eventType, pointer, useCaption) {
			if (obj.addEventListener) {
				obj.addEventListener(eventType, pointer, useCaption);
				return true;
			} else if (obj.attachEvent) {
				var retVal = obj.attachEvent("on"+eventType, pointer);
				return retVal;
			} else {
				return false;
			}
		}
	///	
	/// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// ///
	
	/// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// ///
	///	Event Type filter
	///	
		function handleEvent(e) {
			eTarget = e.target ? e.target : e.srcElement;
			
			switch(e.type) {
				case "mouseover":
					handleMouseOverEvent();
					break;
				case "click":
					handleMouseClickEvent();
					break;
				case "focus":
					handleMouseFocusEvent();
					break;
			}
		}
	///	
	/// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// ///
	
	
	
	/// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// ///
	///	MouseOver Handler
	///	
		function handleMouseOverEvent(){
			handleMenuMouseOverEvents();
		}
	///	
	/// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// ///
		
		
	/// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// ///
	///	MouseClick Handler
	///	
		function handleMouseClickEvent(){
			if( !isMenu() ){
				hideAllSubMenus();
			}
			
			handleTabClicks();
			
			
		}
	///	
	/// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// ///
	
	/// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// ///
	///	MouseFocus Handler
	///	
		function handleMouseFocusEvent(){
			if( isSubMenu() || isMenu() ){
				eTarget.blur();
			}
		}
	///	
	/// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// ///
	
	function handleMenuMouseOverEvents(){
		
		
		if( isMenu() && !hasSubMenu() ){
			resetAllButtons();
			rollOver();
		}
		if( isMenu() && hasSubMenu() ){
			hideAllSubMenus();
			resetAllButtons();
			positionSubMenu();
			showSubMenu();
			rollOver()
		}else if( !allowHideSubMenus() ){
			
			hideAllSubMenus();
			
		}
	}






	function preloadTabImages(){
		tabs = new Array();
		tabs_inactive = new Array();
		
		tabs[ tabs.length ] = new Image();
		tabs[ tabs.length - 1 ].src = "/_media/images/tab_zoek.gif";
		tabs_inactive[ tabs_inactive.length ] = new Image();
		tabs_inactive[ tabs_inactive.length - 1 ].src = "/_media/images/tab_zoek_inactive.gif";
		
		tabs[ tabs.length ] = new Image();
		tabs[ tabs.length - 1 ].src = "/_media/images/tab_onze_kantoren.gif";
		tabs_inactive[ tabs_inactive.length ] = new Image();
		tabs_inactive[ tabs_inactive.length - 1 ].src = "/_media/images/tab_onze_kantoren_inactive.gif";
		
		//tabs[ tabs.length ] = new Image();
		//tabs[ tabs.length - 1 ].src = "/_media/images/tab_woonclip.gif";
		//tabs_inactive[ tabs_inactive.length ] = new Image();
		//tabs_inactive[ tabs_inactive.length - 1 ].src = "/_media/images/tab_woonclip_inactive.gif";
		
		//tabs[ tabs.length ] = new Image();
		//tabs[ tabs.length - 1 ].src = "/_media/images/tab_inloggen.gif";
		//tabs_inactive[ tabs_inactive.length ] = new Image();
		//tabs_inactive[ tabs_inactive.length - 1 ].src = "/_media/images/tab_inloggen_inactive.gif";
	}

	function handleTabClicks(){
		
		if( eTarget.parentNode.id == "snelzoeken_tabs" ){
			var tabNr = eTarget.id.charAt(eTarget.id.length - 1)
			
			configureTabs(tabNr);
			
			
		}
	}

	function configureTabs(tabNr){

		var tabsContainer = document.getElementById("snelzoeken_tabs"); //DIV element which is to be the container of the tabs
		tabsContainer.innerHTML = ""; //reset tabs
		var defaultOpenedTab = 0;
		var activeTab = (tabNr == undefined)? defaultOpenedTab : tabNr; //number of the tab which is to be active, be aware that JS starts counting at 0 instead of 1
		var activeTabContent = parseInt(activeTab) + 1;
		
		configureTabsContent(activeTabContent);
		
		for( i=0; i<tabs.length; i++ ){
			var src = (i != activeTab)? tabs_inactive[i].src : tabs[i].src;
			var id = "tab" + i;
			tabsContainer.innerHTML += '<img src="' + src + '" id="' + id + '" />';
		}
	}
	
	function configureTabsContent(activeTabContent, reset){
		var tabContentArea = document.getElementById("tab" + activeTabContent + "_content");
		var tmp;
			for( i=0; i<tabs.length; i++ ){
				var tabNr = i + 1;
				tmp = document.getElementById("tab" + tabNr + "_content");
				if(tmp.style.display == "block"){
					tmp.style.display = "";
				}
			}
		tabContentArea.style.display = "block";
	}
	
	
	
	
	
	
	
	
	
	
	function rollOver(){
		if( isMenu() && eTarget.id != "menu"){
			var obj = document.getElementById(eTarget.id);
			if(obj.className != eTarget.id + "_hover"){
				obj.className = eTarget.id + "_hover";
			}
		}
	}
	
	
	
	function allowHideSubMenus(){
		var obj = eTarget;
		while(obj.nodeName != "HTML"){
			if(obj.className == "SubMenu"){
				return true;
				break; 
			}else{
				obj = obj.parentNode;
			}
		}
		if(obj.nodeName == "HTML"){
			return false;
		}
	}
	
	
	function isMenu(){
		var obj = eTarget;
		while(obj.nodeName != "HTML"){
			if(obj.className == "MainMenu"){ 
				return true;
				break;
			}else{
				obj = obj.parentNode;
			}
		}
		if(obj.nodeName == "HTML"){
			return false;
		}
	}
	
	function isSubMenu(){
		var obj = eTarget;
		while(obj.nodeName != "HTML"){
			if(obj.className == "SubMenu"){ 
				return true;
				break;
			}else{
				obj = obj.parentNode;
			}
		}
		if(obj.nodeName == "HTML"){
			return false;
		}
	}
	
	function hasSubMenu(){
		return document.getElementById( eTarget.id + "_sub") ? true : false;
	}
	
	function showSubMenu(){
		var subMenu = document.getElementById( eTarget.id + "_sub");
		subMenu.style.display = "block";
	}
	
	function hideAllSubMenus(){
		var subMenus = getElementsByClassName(document, "*", "SubMenu");
		for(i=0; i < subMenus.length; i++){
			if(subMenus[ i ].style.display == "block"){
				subMenus[ i ].style.display = "none";
			}
		}
		if(!isMenu()){
			resetAllButtons();
		}
	}
	
	function displayMenu(){
		var menuItems = document.getElementById("menu").getElementsByTagName("a");
		
		for(i=0; i<menuItems.length; i++){
			menuItems[ i ].style.visibility = "visible";
		}
	}
	
	function resetAllButtons(){
		var menu = document.getElementById("menu");
		for(i=0; i < menu.childNodes.length; i++){
			if(menu.childNodes[ i ].nodeName == "A"){
				if(menu.childNodes[ i ].className != ""){
					menu.childNodes[ i ].className = "";
				}
			}
		}
	}
	
	
	function positionSubMenu(){
		var subMenu = document.getElementById( eTarget.id + "_sub");
		
		var left = findPos(eTarget)[ 0 ] + "px";
		var top = findPos(eTarget)[ 1 ] + 40 + "px";
		
		subMenu.style.left =  left;
		subMenu.style.top = top;
		
		isPositioned = true;
	}
		
	

	function findPos(obj) {
		var curleft = curtop = 0;
		if (obj.offsetParent) {
			curleft = obj.offsetLeft
			curtop = obj.offsetTop
			while (obj = obj.offsetParent) {
				curleft += obj.offsetLeft
				curtop += obj.offsetTop
			}
		}
		return [curleft,curtop];
	}

	function getElementsByClassName(oElm, strTagName, strClassName){
		var arrElements = (strTagName == "*" && oElm.all)? oElm.all : oElm.getElementsByTagName(strTagName);
		var arrReturnElements = new Array();
		strClassName = strClassName.replace(/\-/g, "\\-");
		var oRegExp = new RegExp("(^|\\s)" + strClassName + "(\\s|$)");
		var oElement;
		for(var i=0; i<arrElements.length; i++){
			oElement = arrElements[i];      
			if(oRegExp.test(oElement.className)){
				arrReturnElements.push(oElement);
			}   
		}
		return (arrReturnElements)
	}
