var nbMaxMenus = 15; // max
var hideTimeout = 800;
var hideMenuTimer;
var tabMenusNames = ["smenu", "ssmenu"]; // les divs servant de menus doivent avoir ce nom + un numéro. Il y'a un ordre : ssmenu > ssmenu1 (ce qui veut dire que ssmenu1 est sous menu de ssmenu)
var isMenuWasShown = false;

// --- Menus ---

// cacher la famille de menus spécifiée par strMenusName.
function hideMenus(strMenusName) {
	for (var i = 1 ; i <= nbMaxMenus ; i++) {
		if (document.getElementById(strMenusName + i)) {
			document.getElementById(strMenusName + i).style.display = 'none';
		}
	}
	
	if (getMenuIndex(strMenusName) == 0) isMenuWasShown = false; // c'était le dernier menu...
}

// permet d'avoir le degré de strMenuName (l'index dans le tableau tabMenusName).
function getMenuIndex(strMenuName) {
	if (!strMenuName) return;
	
	for(var i = 0 ; i < tabMenusNames.length ; i++)
		if (strMenuName.toLowerCase() == tabMenusNames[i].toLowerCase()) return i;
}

// permet de cacher tous les menus qui sont "sous-menus" de "strMenusName".
function hideNextMenus(strMenusName) {
	for(var i = tabMenusNames.length ; i >= getMenuIndex(strMenusName) ; i--) {
		hideMenus(tabMenusNames[i]);
	}
}

// afficher le menu spécifié
function showMenu(strMenusName, ssmenu_num_id) {
	stopHideTimer();
	
	var d = document.getElementById(strMenusName + ssmenu_num_id);
	
	// cacher tous les menus avant le menu affiché
	hideNextMenus(strMenusName);
	
	if (d) {
		d.style.display = 'block';
		isMenuWasShown = true;
	}
}

// cacher TOUS les menus
function hideAllMenus() {
	for(var i = 0 ; i < tabMenusNames.length ; i++)
		hideMenus(tabMenusNames[i]);
}

function startHideTimer() {
	if (isMenuWasShown && !hideMenuTimer) hideMenuTimer = setTimeout("hideAllMenus();", hideTimeout);
}

function stopHideTimer() {
	if (isMenuWasShown && hideMenuTimer) {
		clearTimeout(hideMenuTimer);
		hideMenuTimer = null;
	}
}

function hideImg(id) {
	var img = document.getElementById(id);
	if (!img) return;
	
	img.style.visibility = 'hidden';
}

function showImg(id) {
	var img = document.getElementById(id);
	if (!img) return;
	
	img.style.visibility = '';
}
