// génration de barre de menus
// script récupéré quelquepart par l'auteur de http://www.kitryp.com, pas mal modifié par ce dernier et réadapté pour Louer-en-france.com
// --> require global.js 
function init_menu (type) {
	nom_menu=(arguments[0]) ? arguments[0] : 'default_menu';
	// ne rien toucher ici !
	setMenuTimeout = 'st';
	valMenu = new Array();
	valSsMenu = new Array();
	valSsMenuLien = new Array();
	valSsMenuCible = new Array();
	valSsMenuAlt = new Array();	
	ct_menu = -1;
	ct_ssmenu = 0;
}

// un nouveau menu on remet à zero le compteur de sous menu..
// on fait les array...
function New_Menu(titre) {
        ct_menu++;
	valMenu[ct_menu] = titre;
	valSsMenu[ct_menu] = new Array();
	valSsMenuLien[ct_menu] = new Array();
	valSsMenuCible[ct_menu] = new Array();
	valSsMenuAlt[ct_menu] = new Array();
	ct_ssmenu = 0;
}
// le nom du lien, url, target
// vive les tablos ...
function Add_Menu(type) {
	nom = ( arguments[0] ) ? arguments[0] : '';
	url = ( arguments[1] ) ? "href=\'" +arguments[1] + "\' " : '';
	targ = ( arguments[2] ) ?  arguments[2] : '';
	alt = ( arguments[3] ) ?  arguments[3] : '';

	valSsMenu[ct_menu][ct_ssmenu] =  new Array();
	valSsMenuLien[ct_menu][ct_ssmenu] =  new Array(); 
	valSsMenuCible[ct_menu][ct_ssmenu] = new Array(); 
	valSsMenuAlt[ct_menu][ct_ssmenu] = new Array();
	valSsMenu[ct_menu][ct_ssmenu] =  nom;
	valSsMenuLien[ct_menu][ct_ssmenu] =  url;
	valSsMenuCible[ct_menu][ct_ssmenu] =  targ;
	valSsMenuAlt[ct_menu][ct_ssmenu] = alt;
	ct_ssmenu++;
}

function generationMenu(type) {
	widthMenu = ( arguments[0] ) ? arguments[0] : 400;
	heightMenu = ( arguments[1] ) ? arguments[1] : 20;
	cssClass  = ( arguments[2] ) ? arguments[2] : 'menu';
	// fixouille
	widthSsMenu = (arguments[3]) ? arguments[3] : 0;  // pour fixer les débordement ...
	menu_spacer= (arguments[4]) ? arguments[4] : 0; // pour fixer les décallages ...
	menuTimeout = (arguments[5]) ? arguments[5] : 12; // pour fixer le delai de fermeture des menus ...
	
	nbMenu = ct_menu + 1;
	cssClass = ( cssClass ) ? cssClass: 'menu';
	tailleCellule = Math.round(widthMenu / nbMenu); 
	// Affichage du menubarder
	document.write("<TABLE width='" + widthMenu + "'  class='" + cssClass  + "' border='0' cellpadding='0' cellspacing='0'><TR>");
	for (i=0;i<nbMenu;i++) {
		document.write("<TD width='" + tailleCellule + "'  id=\"" +nom_menu + i + "\" class=\"" + cssClass  + "\" onMouseOut=\"timeClose(0,'ssMenu_" + nom_menu + i +"','" + menuTimeout +"')\" onMouseOver=\"javascript:changeMenu('ssMenu_" + nom_menu + i +"');\"  onClick=\"changeMenu('ssMenu_" + nom_menu + i +"')\">"+ valMenu[i] +"</TD>");
	}
	document.write("</TR></TABLE>");
	//on met un petit élement pour jouer avec ...
	document.write('<DIV style="position:absolute;height:0px;overflow:visible;">');
	document.write(mk_menu(cssClass));
	document.write('</DIV>');

}

function mk_menu(cssClass) {
	var newTable="";
	var Cellpos = 0;
	for (i=0;i<valSsMenu.length;i++) {
		newTable += "<DIV id=\"ssMenu_" + nom_menu + i +"\" class=\"" + cssClass  + "\" onMouseOut=\"timeClose(0,'ssMenu_"+ nom_menu + i +"')\" onMouseOver=\"timeClose(1,'ssMenu_"  + nom_menu  + i + "','" + menuTimeout +"')\" style=\"position:absolute;visibility:hidden;left:"  + Cellpos +"px;top:0px;\">";
		for (z=0;z<valSsMenu[i].length;z++) {
			// on calcul la position du menu suivant
			Cellpos=(i+1)*( tailleCellule + menu_spacer);
			// fix le débordement ou non de l'élément qui le contient 
			if ( (Cellpos + widthSsMenu ) >= widthMenu ) {
				Cellpos = widthMenu - ( widthSsMenu + menu_spacer );
			}
			// On affiche les liens
			newTable += "<a style=\"display:block;\" class=\"" + cssClass  + "\"  "+ valSsMenuLien[i][z] +" target=\""+ valSsMenuCible[i][z] +"\" title=\""+ valSsMenuAlt[i][z] +"\">"+ valSsMenu[i][z] + "</a>";
			
		}
		newTable += "</DIV>";
	}
	return newTable;
}

function changeMenu(this_menu){
	// montre le menu
	document.getElementById(this_menu).style.visibility = "visible";
}

function suppMenu(this_menu) {
	// cache le menu
	document.getElementById(this_menu).style.visibility = "hidden";
}

function timeClose(num,this_menu,this_menuTimeout) {
	if ( num != 1 ) {
		setMenuTimeout=setTimeout("suppMenu('" + this_menu+"')," + this_menuTimeout);
	}
	else { 
		if ( setMenuTimeout != 'st' ) {
			clearTimeout(setMenuTimeout);
		}
	}
}