var delai, menu, dul, db, class_menu;
pause = 1500;
D = document;
wul1 = 0;
ie = D.all ? 1:0;
op = window.opera ? 1:0;
dtd = D.compatMode == "CSS1Compat" ? 1:0;

ns4 = false;
op5 = false;

// parametrage :
// fleches pour niveau horizontal, vertical ou vertical a droite
flh = '';
flg = ''; // &nbsp;&#8250;&#8250;

fld = '';	// &#8249;
flc = ie ? 4:8;	// espace pour la fleche

//correction bug padding + border ie et opera non dtd
da = 10; 			// des liens
dul = (ie &!dtd) ? 4:0;		// des ul
danc = (ie &!dtd) ? 10:0;	// hauteur du div "ancre_menu"

function initMenu(id_menu,class_menu) {
	checkSize();
	de=ie&!op&&dtd?D.documentElement:D.body //exception IE6 dtd
	fx=ie&!op?de.clientWidth:innerWidth-20  //largeur fenetre
	menu=D.getElementById(id_menu);

	if(!menu) {
		return;
	}

	wul=[] // tableau des largeurs de sous-menus
	as=menu.getElementsByTagName('a');
	sousMenu=menu.getElementsByTagName('ul');
	
	/* on ajoute notre image de fond dans les li pour eviter superposition 
    var leMenu=menu.getElementsByTagName('ul');
    for(var i=0;i<leMenu.length;i++){
		var cLi;
        cLi=leMenu[i].getElementsByTagName("a");
        for (var j=0; cLi[j]; j++) {
            var refcLi = cLi[j].firstChild;
            nBackground = document.createElement("img");
            nBackground.src = "/img/blanc.gif";
            nBackground.className = "itemBackground";
            nBackground.alt="";
            cLi[j].insertBefore(nBackground,refcLi);
        }    
    }
    
    */
    
    
	elem=document.getElementsByTagName('select');

	// ajoute a href="#" dans les li sans lien .

	/* A quoi bon ?

	lis=menu.getElementsByTagName('li');

	for(i=0;i<lis.length;i++){
		var L=lis[i];

		if(L.firstChild.tagName!="A") {
			titre=L.firstChild.data;L.removeChild(L.firstChild);
			L.innerHTML='<a href="#">'+titre+'<\/a>'+L.innerHTML;L.className="titre"
		}
		else L.className="lien" // avec url
	}

	*/

	// ajoute un id aux sous-menus
	for(j=0; j < sousMenu.length; j++) {

		sousMenu[j].id = "ul" + j;
		wul[j] = 0;

	}

	// construction du menu
	for(i=0;i<as.length;i++) {

		lien=as[i];wa=lien.offsetWidth;
		smenu=lien.parentNode.getElementsByTagName('ul')[0]?1:0;

		if (smenu)wa+=flc;

		// 1er niveau horizontal
		if(lien.parentNode.parentNode.id==id_menu) {
			if(class_menu=="mh") {
				if(smenu&&lien.innerHTML!="")lien.innerHTML+=flh;
				wa=lien.offsetWidth;wul1+=wa+da;
			}
		// vertical
			else {
				if(wa>wul1){wul1=wa+da;};

				// ajoute les fleches
				if(smenu) {
					lien.innerHTML=(class_menu=="vd")?' '+
					lien.innerHTML:lien.innerHTML; //+'<span class="fl">'+flg+'</span>&nbsp;' // <span class="fl">'+fld+'</span>
				}
			}
		}
		// autres niveaux verticaux
		else {
			n = eval(lien.parentNode.parentNode.id.substr(2,2));

			if(wa > wul[n]) {
				wul[n] = wa;
			}
			// ajoute les fleches
			if(smenu) {
				lien.innerHTML=(class_menu=="vd") ? '' + lien.innerHTML:lien.innerHTML; // +'<span class="fl">'+flg+'</span>&nbsp;'   // <span class="fl">'+fld+'</span>
			}
		}
		// ajoute les evenements.
		lien.onmouseover = lien.onfocus = function() {
			ul_parent = this.parentNode.parentNode;
			ul = this.parentNode.getElementsByTagName('ul')[0]
			ef(ul_parent); // cache tout apres l'ul parent

			if(ul) {
				ul.style.marginLeft = "0";
				var fils_ul = ul.getElementsByTagName('ul');
				//alert(fils_ul[0].);
				(class_menu=="vd") ? ul.style.right = "100%":
				(class_menu == "mh" && ul_parent.id != id_menu) || (class_menu == "vg") ? ul.style.left="95%":0;

				if(findPosX(ul)+getElementWidth(ul.id) > frameWidth - 20 ) {
					ipos = 0;
					ul.style.marginLeft =  2 - getElementWidth(ul_parent.id) - getElementWidth(ul.id) + 15 + "px";

				}
				ul.style.visibility="visible";// montre l'ul enfant
				this.className += " suivi"; // marquage du suivi de lien
				//this.innerHTML = " [R] ";
				voirSelect('hidden');
			}
		}

		lien.onmouseout=function() {

			delai = setTimeout('eftout()', 400);
		}
	}


	//fixe la largeur du 1er menu : POURQUOI ???
	//if(wul1)menu.style.width=wul1+dul+"px";

	//largeur des sous-menu verticaux et de leurs liens :
	for(var x = 0; x < wul.length; x++) {
		ula = sousMenu[x].getElementsByTagName('a');
		dda = (ie &!dtd) ? da:0;
		
		for(var i=0;i<ula.length;i++){
			ula[i].style.width = wul[x] + dda + "px";
		}
		sousMenu[x].style.width = wul[x] + da + dul + "px";
	}
	
	lien.onblur=D.onclick=eftout // pour navigation clavier IE
	menu.className=class_menu; //activation retardee de la feuille de style

	// replace les fleches des menus verticaux au bons endroits.
	//span = menu.getElementsByTagName('span');

	document.getElementById(id_menu).style.visibility = 'visible';
	ancremenu();
}

function ancremenu() {
	ancre = D.getElementById('ancre_menu');
	if(ancre) {
		ancre.appendChild(menu);

		with(ancre.style) {
			height = menu.offsetHeight+danc+'px';width = menu.offsetWidth + dul + 'px';
		}
	}
}

function ef(ul) {
	//cache les uls qui suivent cet ul.
	clearTimeout(delai);
	var li = ul.getElementsByTagName('li');

	for(i = 0; i < li.length; i++) {
		var ul = li[i].getElementsByTagName('ul')[0];
		if(ul) {
			if(document.all)
				{
				ul.style.visibility = "hidden";
				var temp = "" + li[i].firstChild.className; //retabli le marquage initial
				temp = temp.replace(" suivi", "");
				li[i].firstChild.className = temp;
			 }
			 else {
				ul.style.visibility = "hidden";
				var temp = "" + li[i].getElementsByTagName('a')[0].className; //retabli le marquage initial
				temp = temp.replace("suivi", "");
				li[i].getElementsByTagName('a')[0].className = temp;
			 }
		}
	}
}

function eftout(){
	ef(menu);
	voirSelect('visible');
	menu.style.visibility = "hidden";
	menu.style.visibility = "visible"; // bug ie
	restoreImage(curObj);
}

// bug ie corrige : cache les <select> quand le menu est visible
function voirSelect(v) {
	if(ie&!op) {
		for(i=0;i<elem.length;i++) {
			elem[i].style.visibility = v;
		}
	}
}

//-->
function loadMyMenu() {
	initMenu('menu_principal','mh');
}

curObj = '';
function swapImage(src,obj) {
	if(curObj != '') {
		restoreImage(curObj);
	}
	obj.oldSrc = obj.src;
	obj.src = src;
	curObj = obj;
}

function restoreImage(obj) {
	obj.src = obj.oldSrc;
}

function swapImageBg(src,obj) {
	obj.oldSrc = obj.style.background;
	obj.style.background = 'url('+src+') no-repeat';
}

function restoreImageBg(obj) {
	obj.style.background = obj.oldSrc;
}

