var gMenuCourantVisible = 0;
var gNbreDeDelais = 4;
var gDureeDelai = 500;
var gCompteurDeDelais = 0;
var gIdMinuterie = null;
var gNomMenu = "menu";

function cacherSsMenu(noSmenu) {
	if (gMenuCourantVisible != noSmenu && gMenuCourantVisible != 0) {
		document.getElementById(gNomMenu + gMenuCourantVisible).style.visibility = "hidden";
	}
}

function afficherSsMenu(noSmenu) {
	if (gMenuCourantVisible != noSmenu) {
		document.getElementById(gNomMenu + noSmenu).style.visibility = "visible";
		gMenuCourantVisible = noSmenu;
	}
}

function arreterAttenteAvantCacher() {
	clearTimeout(gIdMinuterie);
	gCompteurDeDelais = 0;
	gIdMinuterie = null;
}

function gererAttenteAvantCacher() {
	gCompteurDeDelais = gCompteurDeDelais + 1;
	
	if (gCompteurDeDelais == gNbreDeDelais) {
		cacherSsMenu(0);
		gMenuCourantVisible = 0;
		gCompteurDeDelais = 0;
		gIdMinuterie = null;
	} else {
		gIdMinuterie = setTimeout("gererAttenteAvantCacher()", gDureeDelai)
	}
}

function afficherSousMenus(noMenu) {
	ancre = "ancre" + noMenu;
	menu = "menu" + noMenu;
	setToAnchor(ancre, ancre, menu);
	
	arreterAttenteAvantCacher();
	cacherSsMenu(noMenu);
	afficherSsMenu(noMenu);
}

// Fonction permettant de positionner un DIV à une position occupée par une ancre
function setToAnchor(idAncre, nomAncre, idDiv) {
	var posLeft = 0;   //Position du Div par rapport au côté gauche de la page 
	var posTop = 0;   //Position du Div par rapport au haut de la page 
	
	if (document.getElementById) {
		posAncre = document.getElementById(idAncre);
		divLeft = getLeft(posAncre);
		divTop = getTop(posAncre);
		document.getElementById(idDiv).style.left = String(divLeft + 85) + "px";
		document.getElementById(idDiv).style.top = String(divTop) + "px";
	} else if (document.all) {
		pos = document.all[idAncre];
		divLeft = getLeft(pos);
		divTop = getTop(pos);
		document.all[idDiv].style.posLeft = String(divLeft + 85) + "px";
		document.all[idDiv].style.posTop = String(divTop) + "px";
	} else if (document.layers) {
		pos = document.anchors[nomAncre];
		divLeft = pos.x;
		divTop = pos.y;
		document.layers[idDiv].pageX = String(divLeft + 85) + "px";
		document.layers[idDiv].pageY = String(divTop) + "px";
	}
}


// Fonction permettant de connaître la position d'un objet par rapport au bord gauche de la page.
// Cet objet peut être à l'intérieur d'un autre objet.
function getLeft(unObjet) {
	if (unObjet.offsetParent) {
		return (unObjet.offsetLeft + getLeft(unObjet.offsetParent));
	} else  {
		return (unObjet.offsetLeft);
	}
}


// Fonction permettant de connaître la position d'un objet par rapport au bord haut de la page.
// Cet objet peut être à l'intérieur d'un autre objet.
function getTop(unObjet) {
	if (unObjet.offsetParent) {
		return (unObjet.offsetTop + getTop(unObjet.offsetParent));
	} else  {
		return (unObjet.offsetTop);
	}
}