<!--
var isNS = false;
var isIE = false;
var isW3C = false;
if (navigator.appName.indexOf('Netscape')>-1) {isNS=true; isIE=false; isW3C=false;}
if (document.getElementById) {isNS=false; isIE=false; isW3C=true;}
if (document.all) {isNS=false; isIE=true; isW3C=false;}
var isMac = (navigator.appVersion.indexOf('Macintosh')>=0) ? true: false;

function initMenu() {
	level=0; //niveau d'arborescence du calque actuel, mise à zéro
	indice=new Array(); // tableau d'indices pour chaque niveau
	indice[0]=0; //mise à zéro de l'indice de la rubrique du niveau 0
	layerIndice=new Array(); //chaîne indice pour nommage des calques
	layerLength=new Array();
	currentLayer=new Array();
	layerTab=new Array(); // tableau des calques menus
	pos_x=new Array();
	pos_y=new Array();
	pos_x[0]=0;
	pos_y[0]=0;
	fix_tab=new Array();
	img_activ="";
	img_switch="";
}

function layerObject(name,x,y) {
	this.x=x;
	this.y=y;
	this.name=name;
	this.Html="";
	}

function displayLayer(l) { zl_hd(l,(isNS)?'show':'visible'); }

function hideLayer(l) { zl_hd(l,(isNS)?'hide':'hidden'); }

function zl_hd(l,s) {
if (isNS) zl_lref(l).visibility = s;
else zl_lref(l).style.visibility=s;
}

function zl_lref(l) {
if (isNS) {
	if(l!="MENUnav0") return document.layers['MENUnav0'].document.layers[l];
	else return document.layers[l];
	}
if (isIE) return document.all[l];
if (isW3C) return document.getElementById(l);
}

function timer_hide_all(menu) {
	window.will_hide=setTimeout("hide_all()",200);
	}

function hide_all(menu) {
	for(i=1;i<layerTab.length;i++) {
		layerTab[i]!=""?hideLayer(layerTab[i]):"";
		layerTab[i]="";
		// si niveau 1, switcher image du niveau 0 ayant appelé le niveau 1
		if(i==1 && img_activ!="") eval("document.images."+img_activ).src=img_switch;
		}
	}

function hide_part(subLevel,menu) {
	for(i=subLevel;i<layerTab.length;i++) {
		layerTab[i]!=""?hideLayer(layerTab[i]):"";
		layerTab[i]="";
		// si sublevel 1, switcher image du niveau 0 ayant appelé le niveau 1
		if(i==1 && img_activ!="") eval("document.images."+img_activ).src=img_switch;
		}
	}
	
function resizedMove(l,x,y,wmin,hmin) {
	if(isIE) {
		nx=wmin!=0?(Math.max(document.body.clientWidth,wmin)-wmin)/2+x:x;
		ny=hmin!=0?(Math.max(document.body.clientHeight,hmin)-hmin)/2+y:y;
		}
	else if(isNS || isW3C) {
		nx=wmin!=0?(Math.max(window.innerWidth,wmin)-wmin)/2+x:x;
		ny=hmin!=0?(Math.max(window.innerHeight,hmin)-hmin)/2+y:y;
		}
	moveLayer(l,nx,ny);
	}

function moveLayer(l,x,y) {
	if (isNS) {
		zl_lref(l).x = x;
		zl_lref(l).y = y;
		}
	else {
		zl_lref(l).style.left = x;
		zl_lref(l).style.top = y;
		}
	}

function calcIndice() {
	l_ind="";
	for(i=0;i<=level;i++) {
		l_ind+=indice[i];
		}
	return l_ind;
	}

function calcNextIndice() {
	l_ind="";
	for(i=0;i<level;i++) {
		l_ind+=indice[i];
		}
	next=indice[level]+1;
	l_ind+=next;
	l_ind+="0";
	return l_ind;
	}


function calcActions(menu,Ind,hasSubMenu) {
	l_indice=calcNextIndice();
	subLevel=level+1;
	mouseover="";
	mouseout="";
	mouseclick="";
	mouseover+=" hide_part("+subLevel+");"; // on masque l'arborescence des calques qui ont éventuellement été affichés
											// la ligne doit rester au dessus de l'appel mouseover suivant
	if(currentLayer[indice[level]].imgObj!=null) {
		if(menu.rolls!="" && currentLayer[indice[level]].link!="#") {
			fix=currentLayer[indice[level]].fix?"_fix":"";
			mouseover+=" MenuImg"+Ind+".src='"+menu.path+currentLayer[indice[level]].imageURL+menu.rolls+".gif';";
			eval("img_"+"MenuImg"+Ind+"=new Image();");
			eval("img_"+"MenuImg"+Ind+".src='"+menu.path+currentLayer[indice[level]].imageURL+menu.rolls+".gif';");
			if(subLevel==1) {mouseout+=" MenuImg"+Ind+".src='"+menu.path+currentLayer[indice[level]].imageURL+fix+".gif';";}
			else {
				mouseover+=" img_activ='MenuImg"+Ind+"';";
				mouseover+=" img_switch='"+menu.path+currentLayer[indice[level]].imageURL+fix+".gif';";
				}
			}
		}
	else {
		mouseover+=" this.className='menuItemHover';";
		mouseout+=" this.className='menuItem';";
		}
	mouseout+=" timer_hide_all("+menu.name+");"; // on demande le masquage de tous les calques au bout d'un moment
	mouseover+=" clearTimeout(window.will_hide);"; // on annule la demande de masquage de tous les claques
	if(hasSubMenu) {
		mouseover+=" displayLayer('MENU"+menu.name+l_indice+"');";
		mouseover+=" layerTab["+subLevel+"]='MENU"+menu.name+l_indice+"';";
		}
	actions=" onMouseover=\""+mouseover+"\" onMouseout=\""+mouseout+"\" onClick=\""+mouseclick+"\"";
	return actions;
	}

function calcLevelPos(w,h,way,type,nbr_items) {
	if(type==1) {
		switch(way) { //suite d'un sous-menu
			case "R":
				pos_y[level]+=h;
				break;
			case "B":
				pos_x[level]=pos_x[level]+w;
				break;
			case "T":
				pos_x[level]=pos_x[level]+w;
				break;
			default:
				pos_y[level]+=h;
				break;
			}
		}
	else {
		switch(way) { //position suivante d'un nouveau sous-menu
			case "R":
				pos_x[level+1]=pos_x[level]+w;
				pos_y[level+1]=pos_y[level];
				break;
			case "B":
				pos_x[level+1]=pos_x[level];
				pos_y[level+1]=pos_y[level]+h;
				break;
			case "T":
				pos_x[level+1]=pos_x[level];
				pos_y[level+1]=pos_y[level]-nbr_items*txt_height-decalage;
				break;
			default:
				pos_x[level+1]=pos_x[level]+w;
				pos_y[level+1]=pos_y[level];
				break;
			}
		}
	}

function retriveParentLayer(menu) {
	layer=menu.menuItem;
	for(i=0;i<level;i++) {
		decrement=i<level-1?1:0;
		layer=layer[indice[i]-1].menuItem;
		}
	return layer;
	}

function writeRub(way,menu,hasSubMenu) {
	br=(way=="R" || !way)?"<br>":"";
	Ind=calcIndice();
	actions=calcActions(menu,Ind,hasSubMenu);
	p_path=currentLayer[indice[level]].link!="#"?path:"";
	if(currentLayer[indice[level]].imgObj!=null) {
		fix=currentLayer[indice[level]].fix?"_fix":"";
		box="<img src=\""+menu.path+currentLayer[indice[level]].imageURL+fix+".gif\" border=\"0\" name=\"MenuImg"+Ind+"\" hspace=\"2\">";
		a_class="";
		}
	else {
		box=currentLayer[indice[level]].titel;
		a_class="menuItem";
		}
	if(currentLayer[indice[level]].target!=null) {
		if(currentLayer[indice[level]].target.search(/javascript/)>=0) {
			currentLayer[indice[level]].link=currentLayer[indice[level]].target.replace(/link-to-replace/,p_path+currentLayer[indice[level]].link);
			p_path="";
			}
		else target=" target='"+currentLayer[indice[level]].target+"'";
		}
	else target="";
	rub="<a href='"+p_path+currentLayer[indice[level]].link+"'"+actions+" class='"+a_class+"'"+target+">"+box+"</a>"+br;
	l_name="MENU"+menu.name+layerIndice[level];
	if(isMac) document.write("<!---->"); //pour le mac
	writeHTML(l_name,rub);
	//alert();
	}

function writeHTML(l,h) {
if (isNS) {with (zl_lref(l).document) {open(); write(h); close();} }
else {zl_lref(l).innerHTML += h;}
}

function createLayer(v_menu,x,y) {
	layerIndice[level]=calcIndice();
	//alert(layerIndice[level]);
	l_x=x+pos_x[level];
	l_y=y+pos_y[level];
	if(isIE || isW3C) {
		sh=level==0?"visible":"hidden";
		document.write("<div id='MENU"+v_menu.name+layerIndice[level]+"' class='"+class_tab[layerIndice[level]]+"' nowrap style='position:absolute; left:"+l_x+"px; top:"+l_y+"px; z-index:1; visibility:"+sh+"'>");
		if(layerIndice[level]>0) document.write("</div>");
		}
	else if(isNS) {
		sh=level==0?"show":"hide";
		document.write("<layer id='MENU"+v_menu.name+layerIndice[level]+"' left='"+l_x+"' top='"+l_y+"' z-index='1' visibility='"+sh+"'>");
		if(layerIndice[level]>0) document.write("</layer>");
		}
	}

function zigZag(menu,x,y) {
	nbr_items=currentLayer[indice[level]].menuItem.length;
	if(nbr_items>0) { //la rubrique actuelle contient un sous-menu
		calcLevelPos(currentLayer[indice[level]].w,currentLayer[indice[level]].h,currentLayer[indice[level]].way,0,nbr_items);
		calcLevelPos(currentLayer[indice[level]].w,currentLayer[indice[level]].h,currentLayer[indice[level]].way,1,nbr_items);
		writeRub(currentLayer[indice[level]].way,menu,true);
		currentLayer=currentLayer[indice[level]].menuItem; // la sous-rubrique devient la rubrique actuelle
		indice[level]++; //on passe à l'item suivant après traitement
		level++; //on passe au niveau supérieur
		layerLength[level]=currentLayer.length;
		indice[level]=0; //on met l'indice de ce niveau supérieur à zéro pour être au début du niveau
		createLayer(menu,x,y); //document.write("creation cadre<br>"); // on crée un calque pour le menu actuel
		}
	else { // la rubrique actuelle ne contient pas de sous menu
		if(indice[level]<currentLayer.length-1) { //il y a encore des items non parcourus
			calcLevelPos(currentLayer[indice[level]].w,currentLayer[indice[level]].h,currentLayer[indice[level]].way,1,nbr_items);
			writeRub(currentLayer[indice[level]].way,menu);
			indice[level]++; //on passe à l'item suivant après traitement
			}
		else { //on est au dernier indice
			calcLevelPos(currentLayer[indice[level]].w,currentLayer[indice[level]].h,currentLayer[indice[level]].way,1,nbr_items);
			writeRub(currentLayer[indice[level]].way,menu);
			level--; //on revient au niveau inférieur
			currentLayer=retriveParentLayer(menu); //
			if(indice[level]>=layerLength[level]) {
				level--;
				currentLayer=retriveParentLayer(menu);
				}
			}
		}
	if(level>=0) {zigZag(menu,x,y);} //si on est en-dessous du niveau le plus bas, on a terminé, on ne rappelle plus la fonction récurrente
	}

function fix() {
	for(i=0;i<fix_tab.length;i++) {
		fix_tab[i].fix=1;
		}
	}

function writeMenu(menu,x,y) {
	initMenu();
	menu.path=path+menu.path;
	fix();
	createLayer(menu,x,y); //creation d'un premier cadre pour le niveau 0
	currentLayer=menu.menuItem; //rubrique courrante: rubrique 0 du niveau 0
	layerLength[0]=menu.menuItem.length;
	zigZag(menu,0,0);
	for(i=0;i<indice.length;i++) {
		layerTab[i]=0;
		}
	if(isIE || isW3C) {
		document.write("</div>");
		}
	else if(isNS) {
		document.write("</layer>");
		}
	}
//-->
