function addEvent(obj, evType, fn, useCapture){
	if (obj.addEventListener){
		obj.addEventListener(evType, fn, useCapture);
		return true;
	} else if (obj.attachEvent){
		var r = obj.attachEvent("on"+evType, fn);
		return r;
	} else {
		alert("Handler could not be attached");
	}
}

function removeEvent(obj, evType, fn, useCapture){
	if (obj.removeEventListener){
		obj.removeEventListener(evType, fn, useCapture);
		return true;
	} else if (obj.detachEvent){
		var r = obj.detachEvent("on"+evType, fn);
		return r;
	} else {
		alert("Handler could not be removed");
	}
} 

 

function initqmenu(){
	var a_li = document.getElementById('qm').getElementsByTagName("li");
	
	for (var a=0; a<a_li.length; a++){
		if (a_li[a].className == "li_sousmenu"){
			addEvent(a_li[a], "mouseover", displaysmenu, false);
			addEvent(a_li[a], "mouseout", hidemenu, false);
		}else{
			addEvent(a_li[a], "mouseover", hideActivesmenu, false);
		}
	}
	
	var a_div = document.getElementById('qm').getElementsByTagName("div");
	
	for (var a=0; a<a_div.length; a++){
		if (a_div[a].className == "sousmenu"){
			a_div[a].style.display = "none"; 
			addEvent(a_div[a], "mouseover", mouseOversmenu, false);
			addEvent(a_div[a], "mouseout", hidesmenu, false);
		}
	}
}

var timeoutID = 0;
var openMenu;
function initMenu(target){
	var a_div = target.getElementsByTagName("div");
	for (var a=0; a<a_div.length; a++){
		if (a_div[a].className == "sousmenu"){
			if(a_div[a].style.display == "block"){
				a_div[a].style.display = "none"; 
			}
		}
	}

}
function displaysmenu(e){
	clearTimeout(timeoutID);
	if (!e) var e = window.event
	// handle event
	e.cancelBubble = true;
	if (e.stopPropagation) e.stopPropagation();
	var obj_target;
	if (e.target) obj_target = e.target;
	else if (e.srcElement) obj_target = e.srcElement;

	var id = obj_target.parentNode.id;
	
	if (openMenu != id && id!="qm" && id!="") {
		var b_parent = false
		var currentNode = obj_target.parentNode 
		while(currentNode.id != "qm"){
			//vérifie si sous sous menu
			if (openMenu == currentNode.id){
				b_parent = true;
			}
			currentNode = currentNode.parentNode;
		}
		if(document.getElementById(openMenu) && !b_parent)
			initMenu(document.getElementById(openMenu));
		openMenu = id;
	}
	

	if (document.getElementById("smenu_"+id))
		document.getElementById("smenu_"+id).style.display = "block"; 
}


function mouseOversmenu(e){
	clearTimeout(timeoutID);
	if (!e) var e = window.event
	// handle event
	e.cancelBubble = true;
	if (e.stopPropagation) e.stopPropagation();
	
}

function closesmenu(id){
	if (document.getElementById(id)){
		//alert("aaaaa : "+id)
		var a_div = document.getElementById(id).getElementsByTagName("div");
		for (var a=0; a<a_div.length; a++){
			if (a_div[a].className == "sousmenu"){
				if(a_div[a].style.display == "block"){
					a_div[a].style.display = "none"; 
				}
			}
		}
		document.getElementById(id).style.display = "none";
	}
}

function hideActivesmenu(e){
	if (!e) var e = window.event
	// handle event
	/*e.cancelBubble = true;
	if (e.stopPropagation) e.stopPropagation();*/
	
	var obj_target;
	if (e.target) obj_target = e.target;
	else if (e.srcElement) obj_target = e.srcElement;
	
	
	var currentNode = obj_target.parentNode;
	while(currentNode.className != "li_sousmenu" && currentNode.id != "qm"){
		currentNode = currentNode.parentNode;
	}
	var id = currentNode.id
	if (id != openMenu){
		if (document.getElementById("smenu_"+id)){
			closesmenu("smenu_"+openMenu)
			openMenu = id
		}
	}
}
function hidemenu(e){
	
	if (!e) var e = window.event
	// handle event
	e.cancelBubble = true;
	if (e.stopPropagation) e.stopPropagation();
	
	var obj_target;
	if (e.target) obj_target = e.target;
	else if (e.srcElement) obj_target = e.srcElement;
	
	
	var currentNode = obj_target.parentNode;
	while(currentNode.className != "li_sousmenu" && currentNode.id != "qm"){
		currentNode = currentNode.parentNode;
	}
	var id = "smenu_"+currentNode.id

	if (document.getElementById(id)){
		clearTimeout(timeoutID);
		timeoutID = setTimeout("closesmenu('"+id +"')", 200)
	}
}

function hidesmenu(e){
	
	if (!e) var e = window.event
	// handle event
	e.cancelBubble = true;
	if (e.stopPropagation) e.stopPropagation();
	
	var obj_target;
	if (e.target) obj_target = e.target;
	else if (e.srcElement) obj_target = e.srcElement;

	var currentNode = obj_target.parentNode;
	
	while(currentNode.id.indexOf("smenu_") == -1){
		currentNode = currentNode.parentNode;
	}
	var id = currentNode.id
	
	if (document.getElementById(id)){
		//alert("hidemenu : "+id)
		clearTimeout(timeoutID);
		timeoutID = setTimeout("closesmenu('"+id +"')", 200)
	}
}
