TArbre.prototype.MDisplayMenuVer	= TMDisplayArbreMenuVer;
TArbre.prototype.MRefreshMenuVer	= TMRefreshArbreMenuVer;
TArbre.prototype.MHideMenuVer		= TMHideArbreMenuVer;

TNoeud.prototype.MDisplayMenuVer		= TMDisplayNoeudMenuVer;
TNoeud.prototype.MRefreshMenuVer		= TMRefreshNoeudMenuVer;

function TMDisplayArbreMenuVer(position,contextmenu) {
	if(this.ARacine) {
		this.ARacine.MDisplayMenuVer(position,contextmenu);
		BodyEvent.AddEvent("click","init_menuver("+this.AId+")");
		BodyEvent.Active("click");
	}	
}

function TMRefreshArbreMenuVer(x,y,anime) {
	var direction="";
	if (anime == undefined) anime = false;
	if(this.ARacine) {
		if (x != undefined) 
			set_x_div("id","menu_" + this.AId + "_" + this.ARacine.AId,null,x);
		if (y != undefined) 
			set_y_div("id","menu_" + this.AId + "_" + this.ARacine.AId,null,y);
		show_div("id","menu_" + this.AId + "_" + this.ARacine.AId);
		if (this.ATypeAnim > 0 && y != undefined && x != undefined && anime) {
			switch (this.ATypeAnim) {
				case 1:direction="right";break;
				case 2:direction="left";break;
				case 3:direction="top";break;
				case 4:direction="bottom";break;
				default:break;
			}
			if (direction != "") move_clip_open("id","menu_" + this.AId + "_" + this.ARacine.AId,null,direction,this.AVitesseAnim,3,0,"");
			else if (this.ATypeAnim == 5) opacity_open_div("id","menu_" + this.AId + "_" + this.ARacine.AId,null,0.15,this.AVitesseAnim);
		}	
		this.ARacine.MRefreshMenuVer();
	}	
}

function TMHideArbreMenuVer() {
	hide_div("id","menu_" + this.AId + "_" + this.ARacine.AId);
}

function TMDisplayNoeudMenuVer(position,contextmenu) {
	var tree = this.MGetArbre();
	var chaine = "", i=0,nombalise = "",nommenu = "menu_" + tree.AId + "_" + this.AId;
	var balise = "";
	var img = "",sty="",imgSsMenu="";
	var isContextMenu = (contextmenu != undefined)?contextmenu:false;

	if (isContextMenu) balise = "<div id='" + nommenu + "' ></div>"; 
	else balise = "<div id='" + nommenu + "' onmouseout='cache_menu(\""+tree.AId+"\")' onmouseover='arret_cache(\""+tree.AId+"\")'></div>";

	document.write(balise);
	set_style_div("id", nommenu, null,tree.AStyleMenu);
	if (position != undefined) getElem("id", nommenu).style.position = position;
	set_l_div("id", nommenu,null,tree.AWidthMenu); 
	hide_div("id", nommenu, null);
	if (tree.ATypeMenu == 1) {
		sty = (tree.AStyleEntete.is_style())?"style=\""+tree.AStyleEntete+"\"":"class=\""+tree.AStyleEntete+"\"";
		chaine += "<div " + sty + ">" + this.ACorps + "</div>"; 
	} 
	while (this.AFeuilles[i]) {
		nombalise = "item_" + tree.AId + "_" + this.AFeuilles[i].AId;
		if (this.AFeuilles[i].AImage) img = "<td><img src=\""+this.AFeuilles[i].AImage+"\" ></td>";
		else img = "";
		if (tree.AImgSubMenu != "") imgSsMenu = "<td align=right valign=middle><img src=\"" + tree.AImgSubMenu + "\" border=0 height=\"15px\" width=\"15px\"></td>";
		else imgSsMenu = "";
		if (this.AFeuilles[i].AFeuilles[0]) {
			chaine += "<table id='"+nombalise+"' onclick=\"menuver_click_corps('"+tree.AId+"','"+this.AFeuilles[i].AId+"');\" onmouseover=\"menuver_mouse_over_corps('"+tree.AId+"','"+this.AFeuilles[i].AId+"','"+this.AId+"');\" onmouseout=\"menuver_mouse_out_corps('"+tree.AId+"','"+this.AFeuilles[i].AId+"');\" border=0 cellspacing=0 cellpadding=0 width='100%'>";
			chaine += "<tr>"+img+"<td id='"+nombalise+"font' width=100% align=left>"+this.AFeuilles[i].ACorps+"</td>"+imgSsMenu+"</tr></table>";
			this.AFeuilles[i].MDisplayMenuVer("absolute");
		}
		else {
			chaine += "<table id='"+nombalise+"' onclick=\"menuver_click_corps('"+tree.AId+"','"+this.AFeuilles[i].AId+"');\" onmouseover=\"menuver_mouse_over_corps('"+tree.AId+"','"+this.AFeuilles[i].AId+"','"+this.AId+"');\" onmouseout=\"menuver_mouse_out_corps('"+tree.AId+"','"+this.AFeuilles[i].AId+"');\" border=0 cellspacing=0 cellpadding=0 width='100%'>";
			chaine += "<tr>"+img+"<td id='"+nombalise+"font' width=100% align=left>"+this.AFeuilles[i].ACorps+"</td></tr></table>";
		}
		i++;
	}
	setCont("id", nommenu, null,chaine);
	i = 0;
	while (this.AFeuilles[i]) {
		nombalise = "item_" + tree.AId + "_" + this.AFeuilles[i].AId;
		set_style_div("id",nombalise, null,tree.AStyleOut);
		if (tree.AStyleFontOut != "") set_style_div("id",nombalise+"font", null,tree.AStyleFontOut);
		i++;
	}	
}

function TMRefreshNoeudMenuVer() {
	var tree = this.MGetArbre();
	var i = 0;
	while (this.AFeuilles[i]) {
		if (this.AFeuilles[i].AFeuilles[0]) hide_div("id","menu_" + tree.AId + "_" + this.AFeuilles[i].AId);
		this.AFeuilles[i++].MRefreshMenuVer();	
	}	 
}

function cache_menu(idarbre) {
	if (!eval(idarbre).AMinutor) eval(idarbre).AMinutor = setTimeout("cache("+idarbre+")",eval(idarbre).ATimer);
}

function cache(idarbre) {
	eval(idarbre).MRefreshMenuVer();
}

function arret_cache(idarbre) {
	if (eval(idarbre).AMinutor) {
		clearTimeout(eval(idarbre).AMinutor);
		eval(idarbre).AMinutor = null;
	}	
}

function menuver_mouse_over_corps(idarb,idnoeud,idmenu) {
	var tree = eval(idarb);
	//arret_cache(idarb);
	var noeud = tree.MGetNoeud(idnoeud);
	var direction = "",inverse = false;
	tree.MGetNoeud(idmenu).MRefreshMenuVer();
	if (!noeud.ASelected) {
		set_style_div("id", "item_" + idarb + "_" + idnoeud,null,tree.AStyleOver);
		if (tree.AStyleFontOver != "") set_style_div("id", "item_" + idarb + "_" + idnoeud + "font",null,tree.AStyleFontOver);		
	}	
	if (!is_visible_div("id","menu_" + idarb + "_" + idnoeud)) {
		tree.MGetNoeud(idmenu).MRefreshMenuVer();
		if (noeud.AFeuilles[0]) {
			x = tree.AEcartMenu + 
				get_x_div("id","menu_" + idarb + "_" + idmenu) + 
				get_l_div("id","menu_" + idarb + "_" + idmenu);
			y = get_y_div("id","item_" + idarb + "_" + idnoeud);
			if ((x + tree.AWidthMenu) > largeur_fenetre()) {
				x = get_x_div("id","menu_" + idarb + "_" + idmenu) -
					get_l_div("id","menu_" + idarb + "_" + idmenu) -
					tree.AEcartMenu; 	
				inverse = true;	
			}
			set_xy_div("id","menu_" + idarb + "_" + idnoeud,null,x,y);
			show_div("id","menu_" + idarb + "_" + idnoeud);
			if (tree.ATypeAnim > 0) {
				switch (tree.ATypeAnim) {
					case 1:direction="right";break;
					case 2:direction="left";break;
					case 3:direction="top";break;
					case 4:direction="bottom";break;
					default:break;
				}
				if (inverse && direction == "right") direction = "left";
				if (direction != "") move_clip_open("id","menu_" + idarb + "_" + idnoeud,null,direction,tree.AVitesseAnim,3,0,"");
				else if (tree.ATypeAnim == 5) opacity_open_div("id","menu_" + idarb + "_" + idnoeud,null,0.15,tree.AVitesseAnim,"true");
			}	
			
		}
	}		
}

function menuver_mouse_out_corps(idarb,idnoeud) {
	var tree = eval(idarb);
	var noeud = tree.MGetNoeud(idnoeud);
	if (!noeud.ASelected) {
		set_style_div("id", "item_" + idarb + "_" + idnoeud,null,tree.AStyleOut);
		if (tree.AStyleFontOut != "") set_style_div("id", "item_" + idarb + "_" + idnoeud + "font",null,tree.AStyleFontOut);
	}			
}

function menuver_click_corps(idarb,idnoeud) {
	var tree = eval(idarb);
	var noeud = tree.MGetNoeud(idnoeud);
	eval(noeud.AAction);
	return false;	
}

function init_menuver(idtree) {
	var tree = eval(idtree);
	tree.ARacine.MRefreshMenuVer();
	return false;
}
