
// Detection du navigateur
function BrowserCheck2() {
	//var b = navigator.appName
	// IE 4.5+
	this.ie = (document.all)
	// Netscape 4.x
	this.ns4 = (document.layers);
	// Netscape 6.2+, Mozilla, DOM
	this.dom = (document.getElementById && !document.all);
	
	// Mac, PC ou autres
	this.plateforme = navigator.platform;
}
isFrsq = new BrowserCheck2()

//*************************************************************//
//
// Fonction pour la gestion des layers/div pour le menu de gauche
//
//*************************************************************//

// Assignation d'un DynLayer au différents "Layers"
function DynLayer(id,nestref,frame) {
	if (!DynLayer.set && !frame) DynLayerInit()
	this.frame = frame || self
	if (isFrsq.ns4) {
		if (!frame) {
			if (!nestref) var nestref = DynLayer.nestRefArray[id]
			if (!DynLayerTest(id,nestref)) return
			this.css = (nestref)? eval("document."+nestref+".document."+id) : document.layers[id]
		}
		else this.css = (nestref)? eval("frame.document."+nestref+".document."+id) : frame.document.layers[id]
		this.elm = this.event = this.css;
		this.doc = this.css.document;
		this.x = this.css.left
		this.y = this.css.top
		this.w = this.css.clip.width
		this.h = this.css.clip.height
	}
	else if (isFrsq.dom) {
		this.elm = document.getElementById(id);
		this.css = this.elm.style;
		this.doc = document;
		this.x = this.elm.offsetLeft
		this.y = this.elm.offsetTop
		this.w = this.elm.offsetWidth
		this.h = this.elm.offsetHeight
	}
	else if (isFrsq.ie) {
		this.elm = this.event = this.frame.document.all[id]
		this.css = this.frame.document.all[id].style
		this.doc = document
		this.x = this.elm.offsetLeft
		this.y = this.elm.offsetTop
		this.w = this.elm.offsetWidth
		this.h = this.elm.offsetHeight
	}
	this.id = id
	this.nestref = nestref
	this.obj = id + "DynLayer"
	eval(this.obj + "=this")
	chemin = this.nestref
}

// Repositionner un "Layer"

function DynLayerMoveTo(x,y) {
	if (x!=null) {
		this.x = x
		if (isFrsq.ns4 || isFrsq.dom) this.css.left = this.x
		else this.css.pixelLeft = this.x
	}
	if (y!=null) {
		this.y = y
		if (isFrsq.ns4 || isFrsq.dom) this.css.top = this.y
		else this.css.pixelTop = this.y
	}
}


// Repositionner par un "Layer"

function DynLayerMoveBy(x,y) {
	this.moveTo(this.x+x,this.y+y)
}

// Afficher un "Layer"

function DynLayerShow() {
	this.css.visibility = (isFrsq.ns4)? "show" : "visible"
}

// Cacher un "Layer"
function DynLayerHide() {
	this.css.visibility = (isFrsq.ns4)? "hide" : "hidden"
}

DynLayer.prototype.moveTo = DynLayerMoveTo
//DynLayer.prototype.rezTo = DynLayerRezTo
DynLayer.prototype.moveBy = DynLayerMoveBy
DynLayer.prototype.show = DynLayerShow
DynLayer.prototype.hide = DynLayerHide
DynLayerTest = new Function('return true')

// DynLayerInit Function 
function DynLayerInit(nestref) {

	if (!DynLayer.set) DynLayer.set = true
	
	if (isFrsq.ns4) {
		if (nestref) ref = eval('document.'+nestref+'.document')
		else {nestref = ''; ref = document;}
		for (var i=0; i<ref.layers.length; i++) {
			var divname = ref.layers[i].name
			DynLayer.nestRefArray[divname] = nestref
			var index = divname.indexOf("Div")
			if (index > 0) {
				eval(divname.substr(0,index)+' = new DynLayer("'+divname+'","'+nestref+'")')
			}
			if (ref.layers[i].document.layers.length > 0) {
				DynLayer.refArray[DynLayer.refArray.length] = (nestref=='')? ref.layers[i].name : nestref+'.document.'+ref.layers[i].name
			}
		}
		if (DynLayer.refArray.i < DynLayer.refArray.length) {
			DynLayerInit(DynLayer.refArray[DynLayer.refArray.i++])
		}
	}
	else if (isFrsq.ie) {
		for (var i=0; i<document.all.tags("DIV").length; i++) {
			var divname = document.all.tags("DIV")[i].id
			var index = divname.indexOf("Div")
			if (index > 0) {
				eval(divname.substr(0,index)+' = new DynLayer("'+divname+'")')
			}
		}
	}
	else if (isFrsq.dom) {
		for (var i=0; i<document.getElementsByTagName("DIV").length; i++) {
			var divname = document.getElementsByTagName("DIV")[i].id
			var index = divname.indexOf("Div")
			if (index > 0) {
				eval(divname.substr(0,index)+' = new DynLayer("'+divname+'")')
			}
		}
	}
	return true
}

DynLayer.nestRefArray = new Array()
DynLayer.refArray = new Array()
DynLayer.refArray.i = 0
DynLayer.set = false

// Début des functions "Slide"



function DynLayerSlideTo(endx,endy,inc,speed,fn) {
	if (endx==null) endx = this.x
	if (endy==null) endy = this.y
	var distx = endx-this.x
	var disty = endy-this.y
	this.slideStart(endx,endy,distx,disty,inc,speed,fn)
}

function DynLayerSlideStart(endx,endy,distx,disty,inc,speed,fn) {
	//Version IE Mac
	if (isFrsq.plateforme == "MacPPC") 
	{
		var inc = (isFrsq.ie) ? 190 : 40;
	} 
	else
	{
		var inc = 40;
	}
	
	
	if (this.slideActive) return;
	if (!inc) inc = 5;
	if (!speed) speed = 1;
	var num = Math.sqrt(Math.pow(distx,2) + Math.pow(disty,2))/inc;
	if (num==0) return;
	var dx = distx/num;
	var dy = disty/num;
	if (!fn) fn = null;
	this.slideActive = true;
	this.slide(dx,dy,endx,endy,num,1,speed,fn);
}

function DynLayerSlide(dx,dy,endx,endy,num,i,speed,fn) {
	if (!this.slideActive) return
	if (i++ < num) {
		this.moveBy(dx,dy)
		this.onSlide()
		if (this.slideActive) setTimeout(this.obj+".slide("+dx+","+dy+","+endx+","+endy+","+num+","+i+","+speed+",\""+fn+"\")",speed)
		else this.onSlideEnd()
	}
	else {
		this.slideActive = false
		this.moveTo(endx,endy)
		this.onSlide()
		this.onSlideEnd()
		eval(fn)
	}
}

DynLayer.prototype.slideTo = DynLayerSlideTo
DynLayer.prototype.slideStart = DynLayerSlideStart
DynLayer.prototype.slide = DynLayerSlide
DynLayer.prototype.onSlide = new Function()
DynLayer.prototype.onSlideEnd = new Function()

// Début des functions "Clip"

function DynLayerClipInit(clipTop,clipRight,clipBottom,clipLeft) {
	if (isFrsq.ie) {
		if (arguments.length==4) this.clipTo(clipTop,clipRight,clipBottom,clipLeft)
		else if (isFrsq.ie4) this.clipTo(0,this.css.pixelWidth,this.css.pixelHeight,0)
	}
}

function DynLayerClipTo(t,r,b,l) {
	if (t==null) t = this.clipValues('t')
	if (r==null) r = this.clipValues('r')
	if (b==null) b = this.clipValues('b')
	if (l==null) l = this.clipValues('l')
	if (isFrsq.ns) {
		this.css.clip.top = t
		this.css.clip.right = r
		this.css.clip.bottom = b
		this.css.clip.left = l
	}
	else if (isFrsq.ie || isFrsq.dom) this.css.clip = "rect("+t+"px "+r+"px "+b+"px "+l+"px)"
}

function DynLayerClipBy(t,r,b,l) {
	this.clipTo(this.clipValues('t')+t,this.clipValues('r')+r,this.clipValues('b')+b,this.clipValues('l')+l)
}

function DynLayerClipValues(which) {
	if (isFrsq.ie) var clipv = this.css.clip.split("rect(")[1].split(")")[0].split("px")
	if (which=="t") return (isFrsq.ns)? this.css.clip.top : Number(clipv[0])
	if (which=="r") return (isFrsq.ns)? this.css.clip.right : Number(clipv[1])
	if (which=="b") return (isFrsq.ns)? this.css.clip.bottom : Number(clipv[2])
	if (which=="l") return (isFrsq.ns)? this.css.clip.left : Number(clipv[3])
}

DynLayer.prototype.clipInit = DynLayerClipInit
DynLayer.prototype.clipTo = DynLayerClipTo
DynLayer.prototype.clipBy = DynLayerClipBy
DynLayer.prototype.clipValues = DynLayerClipValues





/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
var opnShown;
var opnActive = false;

var sdx = new Array();
for (var i=0;i<=nSection;i++) {
	eval('sdx['+i+'] = new Image()');
	eval('sdx['+i+'].src = "'+sdxList[i]+'"');
}
	
// Initialisation des liens "sdxOn"
for (var i=0;i<=nSection;i++) {
	eval('sdx['+i+'] = new Image()');
	eval('sdx['+i+'].src = "'+sdxOnList[i]+'"');
}

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

// Initialise les Layers (div)
function init() {
	idxDiv = new Array()
	for (var i=0;i<=nSection;i++) {
		idxDiv[i] = new DynLayer('idx'+i+'Div');
	}
	
	sdxDiv = new Array()
	for (var i=0;i<=nSection;i++) {
		sdxDiv[i] = new DynLayer('sdx'+i+'Div');
		sdxDiv[i].hide();
	}
}

//**************************************************************************************************
// Lorsque la page est chargé et qu'un sous-menu existe, applique les 3 fonctions qui suivent
// pour ouvrir ce sous-menu
//**************************************************************************************************
function menuLoad (no) {
	opnActive = true;
	opnMenuLoad(no);
	opnShown = no;
	sdxDiv[no-1].show(); // Rend visible le sous-menu
}
	
function opnMenuLoad(no) {
	var h = sdxMenuH[no-1] + sdxHeight[no-1];
	idxDiv[no].slideTo(null,h,500,null,'opnMenuLoad2('+no+')'); // Slide le sous-menu de h pixel
	back = h;
}
	
function opnMenuLoad2(no) {
	sdxDiv[no-1].slideTo(null,sdxHeight[no-1],500,null); // Continue le slide de la hauteur du titre de la section
}

//********************************************************************************************
// Fonctions qui permettre l'ouverture/fermeture des sous-sections si une section est cliqué
//********************************************************************************************

// Appelle les fonction pour ouvrir et fermer les sous-menus
function opnIdx1(no) {
	var h = sdxMenuH[no-1] + sdxHeight[no-1];
	sdxDiv[no-1].show(); // Rend visible le sous-menu
	
	if (!opnActive) 
	{ 
		// Si aucun sous-menu est ouvert au chargement de la page
		opnInit1(no,h); 
	} 
	else if (opnShown == no) 
	{
		//
		sdxDiv[opnShown-1].slideTo(null,-back,null,null,'opnIdx1_2DO('+no+','+h+')'); 
	}
	else 
	{ 	
		// Si un sous-menu est deja ouvert, ferme le sous-menu
		sdxDiv[opnShown-1].slideTo(null,-back,null,null,'opnIdx1_2('+no+','+h+')'); 
	}
}

// Place la section du menu
function opnIdx1_2DO(no,h) {
	// Déplace le menu pour qu'il reprenne sa forme initiale avant la réouverture
	idxDiv[opnShown].slideTo(null,sdxHeight[opnShown-1],null,null,null);
	opnShown = no;
	opnActive = false;
}
	
// Place la section du menu
function opnIdx1_2(no,h) {
	// Déplace le menu pour qu'il reprenne sa forme initiale avant la réouverture
	idxDiv[opnShown].slideTo(null,sdxHeight[opnShown-1],null,null,'opnIdx2('+no+','+h+')'); 
}

// Ouvre le menu
function opnIdx2(no,h) {
	if (h == 0) 
	{ 
		// S'il n'y a pas de sous-menu, ne va pas plus loin
		opnActive = false; 
	}
	else 
	{ 
		// Appelle la fonction  pour déplacer le menu pour permettre l'affichage du sous-menu
		idxDiv[no].slideTo(null,h,null,null,'opnIdx2_2('+no+','+h+')');
	}
}

function opnIdx2_2(no,h) {
	// Affiche le sous-menu de la section sélectionné
	sdxDiv[no-1].slideTo(null,sdxHeight[no-1],null,null);
	// Rend invisible le sous-menu de la section précédente
	sdxDiv[opnShown-1].hide(); 
	//
	opnShown = no;
	opnActive = true;
	// Calcule la hauteur de la sous-section
	back = h + sdxHeight[no]; 
}

//***************************************************************************
// Fonction : opnInit1(no,h)
// S'il il n'y a pas aucun menu d'ouvert dans un page au depart, permet
// l'ouverture d'un sous-menu
function opnInit1(no,h) {
	if (h == 0) 
	{ 
		opnActive = false; 
	}
	else 
	{
		idxDiv[no].slideTo(null,h,null,null,'opnInit1_2('+no+','+h+')'); // Slide le sous-menu de h pixel
	}
}

function opnInit1_2(no,h) {
	sdxDiv[no-1].slideTo(null,sdxHeight[no-1],null,null); // Ajoute la hauteur de l'image a h
	opnShown = no;
	opnActive = true;
	back = h + sdxHeight[no-1];
}

//************************************************************************************************************


function menuClick(adresse){
	window.location.href = adresse;
} 

function menuChange(obj,pv){
	obj.style.backgroundColor = pv;
	if (isFrsq.ie)
		obj.style.cursor = 'hand';
	else
		obj.style.cursor = "pointer";
}
	
function Nfix() {
	document.location = document.location[0];
}	

// Initalise la fonction NFix pour que la page
// HTML dans Netscape se refraichisse si il y a 
// modification de la grandeur de la fenetre
if(isFrsq.ns4) { window.onResize = Nfix; }


//****************************************//
// Derniere modification : 04/02/17      //
// Constrution du menu
//***************************************//


function construitMenu(cheminURL) {
	if (cheminURL != undefined) 
		frsqSite = cheminURL;
		
	var folderActif = 0;
	var mc = '';
	
	for (var j = 0; j < nSection; j++) {
		folderTemp = eval ("m"+j+"Folder");
		mTemp = eval("m"+j);
		checkAdresseM = window.location.href.indexOf(folderTemp);
		
		mc += '<div id="idx' + j + 'Div">';
		mc += '<div id="reg' + j + 'Div">';
		mc += '<table border="0" cellpadding="0" cellspacing="0">';
		mc += '<tr>';
		
		// Construction du titre de la section
		if (mTemp.length != 0 && folderTemp != "spacer") { 
			// Si la section contient un sous-menu
			mc += '<td>';
			mc += '<a href="javascript:opnIdx1('+ (j+1) +')" onmouseover="'+ sdxName[j] +'.src=frsqSite + sdxOnList['+j+']" onmouseout="'+ sdxName[j] +'.src=frsqSite + sdxList['+j+']">';
			mc += '<img src="'+ frsqSite + sdxList[j] +'" border="0" width="160" name="'+ sdxName[j] +'"></a></td>';
			// Transmet le folder qui sera ouvert 
			if (checkAdresseM != -1) folderActif = j+1;
		} else if (mTemp.length == 0 && folderTemp != "spacer") { 
			// Si la section n'a pas de sous-menu (le bouton mene directement sur une page)
			var frsqSiteTemp = (folderTemp.toString().indexOf('javascript') != -1) ? "" : frsqSite
		
			mc += '<td><a href="' + frsqSiteTemp + folderTemp + '" onmouseover="'+ sdxName[j] +'.src=frsqSite + sdxOnList['+j+']" onmouseout="'+ sdxName[j] +'.src=frsqSite + sdxList['+j+']">';
			mc += '<img src="'+ frsqSite +sdxList[j] +'" border="0" width="160" name="'+ sdxName[j] +'"></a></td>';
			// Transmet le folder qui sera ouvert 
			if (checkAdresseM != -1) folderActif = j+1;
		} else if (folderTemp == "spacer") {
			// Si un espace
			mc += '<td><img src="'+ frsqSite + sdxOnList[j] +'" border="0" width="160"></td>';
		}
		
		mc += '</tr></table></div>';
		mc += '<div id="sdx'+ j +'Div">'
		mc += '<table border="0" cellpadding="0" cellspacing="0" width="160" bgcolor="#ffffff">'
		
		// Construction du sous-menu
		for (i = 0; i < mTemp.length; i++ ) {
			checkAdresseSM = window.location.href.indexOf(mTemp[i][0]);
			adresseTempSM = folderTemp + mTemp[i][0];
			mc += '<tr>'
			
			if (checkAdresseSM == -1 && !mTemp[i][2] && mTemp[i][0] != "#")
			{ 
				// Si le lien n'ouvre pas une nouvelle fenêtre
				if(adresseTempSM.indexOf("popsite") == -1)
				{
					// Si l'adresse est la version imprimable
					if (mTemp[i][1] == langueImpression) 
					{
						pagePrint = folderTemp + "imprimer.shtml";
						mc += '<td bgcolor="'+ dmNormal +'" onmouseover="menuChange(this,dmOver);" onmouseout="menuChange(this,dmNormal);" onclick="pop(\'pop\',\''+ frsqSite + pagePrint + '\')">';
					}
					// Sinon
					else 
					{
						mc += '<td bgcolor="'+ dmNormal +'" onmouseover="menuChange(this,dmOver);" onmouseout="menuChange(this,dmNormal);" onclick=menuClick("'+ frsqSite + adresseTempSM +'");>';
					}
				}
				// Si le lien ouvre une nouvelle fenêtre
				else 
				{
				// S'il n'y a pas de 3e niveau et que la page n'est pas active
				mc += '<td bgcolor="'+ dmNormal +'" onmouseover="menuChange(this,dmOver);" onmouseout="menuChange(this,dmNormal);" onclick="' + frsqSite + mTemp[i][0] +'">';
				}
			}
			// S'il n'y a pas de 3e niveau et que la page est active change la couleur de fond 
			else if ((checkAdresseSM != -1 && !mTemp[i][2])) 
			{ 
				mc += '<td bgcolor="'+ dmActive +'">' 
			}
			
			else 
			{ 
				mc += '<td bgcolor="'+ dmNormal +'">' 
			} 
			
			mc += '<table border="0" cellpadding="2" cellspacing="0"><tr>';
			
			// Ne change pas le fond de la cellule (simuler bullet) si la page n'est pas active, si un spacer ou un lien avec un #
			if (checkAdresseSM == -1 || folderTemp == "spacer" || mTemp[i][0] == "#") 
			{ 
				mc += '<td>';
			}
			// Si la page est active met une fond de couleur à la cellule pour simuler un bullet 
			else 
			{
				mc += '<td background="'+ frsqSite +'"/fr/imagesmenu/bullet_menu.gif">'; 
			}
			
			mc += '<img src="'+ frsqSite +'/images/pixel.gif" width="15" height="1"></td>';
			mc += '<td class="menu" width="146">';
			
			// Si le nom du lien est "Version imprimable", utilise le openpop
			if ( mTemp[i][1] == langueImpression )
			{
				adresseTempSM = "javascript:pop('pop','"+ frsqSite + folderTemp + "imprimer.shtml');";
				mc += '<a href="'+ adresseTempSM +'">' + mTemp[i][1] +'</a>';
			// Si autres, poursuit la procédure normale
			}
			else
			{ 
				if (checkAdresseSM == -1 && !mTemp[i][2] &&  mTemp[i][0] != "#") 
				{ 
					if(adresseTempSM.indexOf("popsite") == -1)
					{
						// Lien actif si pas dans la page et pas de 3e niveau associe
						mc += '<a href="'+ frsqSite + adresseTempSM +'">'+ mTemp[i][1] +'</a>';
					}
					else
					{
						// Lien actif si pas dans la page et pas de 3e niveau associe
						mc += '<a href="javascript:void(0)" onclick="'+ frsqSite + mTemp[i][0] +'" >'+ mTemp[i][1] +'</a>';
					}
				}
				 
				else
				{
					if (mTemp[i][0] == "#")
						mc += '<span class="inactif">' + mTemp[i][1] + '</span>';
					else
						mc += mTemp[i][1];
				}
			}
			mc += '</td></tr></table></td></tr>';
			
			// Si un sous-menu de 3e niveau
			if (mTemp[i].length > 2) { 
				for (k = 2; k <= (mTemp[i].length-1); k++) {
					checkAdresseSSM = window.location.href.indexOf(mTemp[i][k][0]); // Emmagasine l'adresse de la page active
					adresseTempSSM = folderTemp + mTemp[i][k][0];
					mc += '<tr>';
					
					// Si nous ne sommes pas dans la section met le fond de base et que le lien n'est pas un #
					if (checkAdresseSSM == -1 && mTemp[i][k][0] != "#") 
					{
						mc += '<td bgcolor="' + dmNormal +'" onmouseover="menuChange(this,dmOver);" onmouseout="menuChange(this,dmNormal);" onclick=menuClick("'+frsqSite+ adresseTempSSM +'");>';
					}
					else if (checkAdresseSSM == -1 && mTemp[i][k][0] == "#")
					{
						mc += '<td bgcolor="'+ dmNormal +'">' 
					} 
					// Si nous sommes dans la section met le fond actif
					else 
					{ 
						mc += '<td bgcolor="'+ dmActive +'">' 
					}
					
					mc += '<table border="0" cellpadding="2" cellspacing="0"><tr>';
					
					// Si nous ne somme pas dans la section ne met pas le bullet
					if (checkAdresseSSM == -1) 
					{ 
						mc += '<td>'; 
					} 
					// Si nous ommes dans la section met le bullet
					else 
					{ 
						mc += '<td background="'+frsqSite+'/images/menu/bullet_menu.gif">'; 
					}
					
					mc += '<img src="'+frsqSite+'/images/pixel.gif" width="25" height="1"></td>';
					mc += '<td class="menu" width="136">';
					
					if (checkAdresseSSM == -1 && mTemp[i][k][0] != "#") 
					{
						mc += '<a href="'+ frsqSite + adresseTempSSM +'">'+ mTemp[i][k][1] +'</a>';
					} 
					else 
					{ 
						if(mTemp[i][k][0] == "#")
							mc += '<span class="inactif">' + mTemp[i][k][1] + '</span>';
						else
							mc += mTemp[i][k][1];
					}
					
					mc += '</td></tr></table></td></tr>';
				}
			}
			mc += '<tr><td><img src="'+ frsqSite +'/images/pixel.gif" width="1" height="1"></td></tr>'; // Ligne separatrice
		}
		mc += '</table>';
		mc += '</div>';
	}
	// Onglet vide separateur à la fin du 2e menu
	mc += '<div id="idx'+ nSection +'Div"><div id="reg'+ nSection +'Div"><img src="'+  frsqSite +'/images/pixel.gif" width="1" height="10" border="0"></div><div id="sdx'+ nSection +'Div"></div></div>';
	// Fermeture des layers
	mc += '</div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div>';
	
	// Construit le menu
	document.write(mc);
	
	// Initalise le menu
	init();	
	// Ouvre la section active
	if (folderActif != 0) menuLoad(folderActif);
}
