window._delai = false ;
window._hasImage = false ;

var delai , delai_2, menu, dul, db, class_menu , menu_2;
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"

//change les Id des menus
function preLoadMyMenu( ) {

	for (var p=0;p<ocmsMenus.length;p++) {
		gid( ocmsMenus[p]).className = 'menu_js' ;
		gid( ocmsMenus[p]).setAttribute( 'id' , ocmsMenus[p]+'_js' ) ;

	}

}

// on deplie le menu si les images ne sont pas activees

function verifMenu ( ) {

	if ( window._hasImage == false ) {

		for (var p=0;p<ocmsMenus.length;p++) {
			gid( ocmsMenus[p]+'_js' ).setAttribute( 'id' , ocmsMenus[p] ) ;
			gid( ocmsMenus[p]).className = 'menu_js' ;
			gid( ocmsMenus[p]).style.visibility = "visible";
		}

		document.getElementsByTagName( 'body' )[0].className = 'noimage' ;

	}

}


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=gid(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);

        }
    }




	window.elemSelects=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;

	}


 	for ( var i = 0 ; i < leMenu.length ; i++ ) {

		var _lis = leMenu[i].getElementsByTagName( 'li' ) ;

		_lis[0].onmouseover = function ( ) {

			window._delai = true ;

		}

		_lis[0].onmouseout = function ( ) {

			window._delai = false ;

		}

	}

	// 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=="menu_js") {
				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 == "menu_js" && 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.display="block";// montre l'ul enfant

				//this.innerHTML = " [R] ";
				voirSelect('none');
			}
			this.className += " suivi"; // marquage du suivi de lien
			this.parentNode.className += " suivili";
		}

		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";
	}
//D.onclick=
	lien.onblur=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.display = 'block';
	ancremenu();


}




// --- 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) {
			ul.style.display = "none";
		}

		if(document.all)
			{

			var temp = "" + li[i].firstChild.className; //retabli le marquage initial
			var temp2 = "" + li[i].className; //retabli le marquage initial
			temp = temp.replace(" suivi", "");
			temp2 = temp2.replace(" suivili", "");

			li[i].firstChild.className = temp;
			li[i].className = temp2;
		 }
		 else {

			var temp = "" + li[i].getElementsByTagName('a')[0].className; //retabli le marquage initial
			var temp2 = "" + li[i].className; //retabli le marquage initial
			temp = temp.replace("suivi", "");
			temp2 = temp.replace("suivili", "");
			li[i].className = temp2;
			li[i].getElementsByTagName('a')[0].className = temp;
		 }

	}
}


function eftout ( ) {

	if ( window._delai === false ) {

		ef(menu);

	        voirSelect('block');

		menu.style.display = "none";

		menu.style.display = "block"; // bug ie

		restoreImage(curObj);

	}

}

// bug ie corrige : cache les <select> quand le menu est visible
function voirSelect(v) {

	v = ( v === 'block') ? 'visible' : 'hidden' ;
	if(ie&!op) {
		for(i=0;i<window.elemSelects.length;i++) {
			window.elemSelects[i].style.visibility = v;
		}
	}
}




function loadMyMenu() {

	for (var p=0;p<ocmsMenus.length;p++) {
		initMenu(ocmsMenus[p]+'_js','menu_js');
		gid(ocmsMenus[p]+'_js').style.visibility = 'visible';
	}
	window._hasImage = true ;
}



curObj = '';
function swapImage(src,obj) {
	if(curObj != '') {
		restoreImage(curObj);
	}
	obj.oldSrc = obj.src;
	obj.src = src;
	curObj = obj;
}

function childImgMouseOver(_this) {
	_this.getElementsByTagName('img')[0].onmouseover() ;
}

function childImgMouseOut(_this) {
	_this.getElementsByTagName('img')[0].onmouseout() ;
}

function swapImageAuto(src,obj) {

	if(curObj != '') {
		restoreImage(curObj);
	}
	obj.oldSrc = obj.src;
	obj.src = src;
	curObj = obj;
	obj.onmouseout=function() {
		restoreImage(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;
}