﻿if(typeof LOC == 'undefined') {
	var LOC = {};
}
LOC.gMenuFocus; // pour gestion focus via touches flèches, indiquera l'id du ssmenu à highligther
LOC.gNbMenus; // pour gestion dernier menu, indiquera le nombre de menus
//init mainNav
LOC.initmainnav = function() {
	detec();
	document.documentElement.className = "js";
	var indicemenu = 0; //pour attribution id dynamique qui permet de gérer la navigation par touche tab et focus/blur
	var indicessmenu = 0; //pour attribution id dynamique qui permet de gérer la navigation par touche tab et focus/blur
	var menusmainNav = document.getElementById("topNav").getElementsByTagName("li");
	for (var i=0; i<menusmainNav.length; i++) {
		menusmainNav[i].onmouseover = function() {
			if(this.firstChild.className.indexOf("menu") >= 0 && this.firstChild.className.indexOf("ssmenu") < 0){
				this.className = "sfhover";
				this.firstChild.className = this.firstChild.className.replace(new RegExp("menu\\b"), "menuover");
				if(this.firstChild.className.indexOf("menuclicked") >= 0){
					this.firstChild.className = this.firstChild.className += " menuover";
				}
				//pour dernier menu
				if(this.indice == LOC.gNbMenus){
					if(this.getElementsByTagName("ul")[0]){
						var ssnav = this.getElementsByTagName("ul")[0];
						var ssmenus_arr = ssnav.getElementsByTagName("li");
						for(var u=0; u<ssmenus_arr.length; u++){
							var ssmenu = ssmenus_arr[u];
							ssmenu.style.textAlign = "right";
						}
						var ssnavwidth = ssnav.getElementsByTagName("li")[0].offsetWidth;
						var delta = this.offsetWidth - ssnavwidth;
						var pox = getAbsPos(this)[0]+ delta;
						ssnav.style.left = pox + "px";
					}
				}
				//pour rollover IE6
				if(LOC.IE6 && this.firstChild.className.indexOf("ssmenu") < 0){
					if(this.getElementsByTagName("ul")[0]){
						var ssnav = this.getElementsByTagName("ul")[0];
						var h = ssnav.offsetHeight;
						var w = ssnav.offsetWidth;
						var pox = getAbsPos(ssnav)[0];
						var poy = getAbsPos(ssnav)[1];
						setPos("masq", "x-" + pox, "y-" + poy);
						setWidth("masq", w);
						setHeight("masq", h);
						getStyle("masq").display = "block";
					}
				}
			}
			else if(this.firstChild.className == "ssmenu"){
				this.firstChild.className = "ssmenuover";
			}
		}
		menusmainNav[i].onmouseout = function() {
			this.className = this.className.replace(new RegExp("sfhover\\b"), "");
			if(this.firstChild.className.indexOf("menuclicked") >= 0){
				this.firstChild.className = this.firstChild.className.replace(" menuover", "");
			}
			if(this.firstChild.className == "menuover"){
				this.firstChild.className = "menu";
			}
			else if(this.firstChild.className == "ssmenuover"){
				this.firstChild.className = "ssmenu";
			}
			if(LOC.IE6){
				getStyle("masq").display = "none";
			}
			//pour dernier menu
			if(this.firstChild.className.indexOf("menu") >= 0 && this.firstChild.className.indexOf("ssmenu") < 0){
				if(this.indice == LOC.gNbMenus){
					if(this.getElementsByTagName("ul")[0]){
						var ssnav = this.getElementsByTagName("ul")[0];
						var pox = "-999em";
						ssnav.style.left = pox;
					}
				}
			}
		}
		//gestion focus et blur pour navigation par tabulation
		menusmainNav[i].getElementsByTagName("a")[0].onfocus = function(){
			//kill rollovers de tous les menus
			for(var n=0; n<navtopmenu_arr.length; n++){
				navtopmenu_arr[n].onmouseout();
			}
			//rollover de l'item (menu ou ssmenu)
			this.parentNode.onmouseover();
			//si ssmenu, rollover du menu parent (sinon, les ssmenus disparaissent car le menu parent perd le focus !)
			if(this.className.indexOf("ssmenu")>=0){
				this.parentNode.parentNode.parentNode.onmouseover();
			}
		}
		menusmainNav[i].getElementsByTagName("a")[0].onblur = function(){
			this.parentNode.onmouseout();
		}
		//fin gestion focus et blur pour navigation par tabulation
		//gestion accès sous-menus par flèches // < : 37, ^ : 38, > : 39, v : 40
		var zemenu = menusmainNav[i];
		if(zemenu.firstChild.className.indexOf("ssmenu") >= 0){
		//if(XML.get_firstChild(zemenu).className.indexOf("ssmenu") >= 0){
			zemenu.indiceparent = indicemenu - 1;
			zemenu.indice = indicessmenu;
			indicessmenu ++;
			zemenu.id = "menu" + zemenu.indiceparent + "ssmenu" + zemenu.indice;
			zemenu.onkeydown = function(e){
				var zekey = (window.event) ? window.event.keyCode : e.which; //window.event == IE
				if(zekey == 40){
					var nextmenu = "menu" + this.indiceparent + "ssmenu" + (this.indice + 1);
					if(document.getElementById(nextmenu)){
						LOC.gMenuFocus = document.getElementById(nextmenu).getElementsByTagName("a")[0];
						setTimeout("LOC.gMenuFocus.focus();", 100);
					}
				}
				if(zekey == 38){
					var prevmenu = "menu" + this.indiceparent + "ssmenu" + (this.indice - 1);
					if(document.getElementById(prevmenu)){
						LOC.gMenuFocus = document.getElementById(prevmenu).getElementsByTagName("a")[0];
						setTimeout("LOC.gMenuFocus.focus();", 100);
					}
				}
			}
		}
		else{
			zemenu.indice = indicemenu;
			indicemenu ++;
			indicessmenu = 0;
			zemenu.id = "menu" + zemenu.indice;
			zemenu.onkeydown = function(e){
				var zekey = (window.event) ? window.event.keyCode : e.which; //window.event == IE
				if(zekey == 40){
					var firstssmenua = this.getElementsByTagName("li")[0].getElementsByTagName("a")[0];
					firstssmenua.focus();
				}
			}
			//alert("indicemenu = " + indicemenu + " && zemenu.id = " + zemenu.id)
		}
		//gestion accès sous-menus par flèches
	}
	LOC.gNbMenus = indicemenu - 1; //nombre de menus dans la topNav
	//stockage éléments de mainnav dans un array global
	for (var i=0; i<menusmainNav.length; i++) {
		if(menusmainNav[i].firstChild.className == "menu"){
			navtopmenu_arr.push(menusmainNav[i]);
		}
	}
	//calage nav sur toute la largeur du 1024
	var maxW = 935;
	var oPadding = 4;
	var poxlastmenu = parseInt(getAbsPos(navtopmenu_arr[navtopmenu_arr.length - 1])[0] - getAbsPos("mainNav")[0]);
	var widthlastmenu = parseInt(navtopmenu_arr[navtopmenu_arr.length - 1].offsetWidth);
	var navW = poxlastmenu + widthlastmenu;
	var vide = Math.round(maxW - navW);
	var deltaX = Math.floor((vide / navtopmenu_arr.length) / 2);
	//modif padding de tous les tombs
	for(var i=0; i<navtopmenu_arr.length; i++){
		navtopmenu_arr[i].firstChild.style.paddingLeft = oPadding + deltaX + "px";
		navtopmenu_arr[i].firstChild.style.paddingRight = oPadding + deltaX + "px";
	}
	//modif paddings du dernier tomb pour combler les manques des Math.floor
	var poxlastmenu = getAbsPos(navtopmenu_arr[navtopmenu_arr.length - 1])[0] - getAbsPos("mainNav")[0];
	var widthlastmenu = navtopmenu_arr[navtopmenu_arr.length - 1].offsetWidth;
	var navW = poxlastmenu + widthlastmenu;
	var reste = Math.floor(maxW - navW);
	var g = Math.floor(reste/2);
	var d = Math.ceil(reste/2);
	var valg = oPadding + deltaX + g;
	var vald = oPadding + deltaX + d;
	navtopmenu_arr[navtopmenu_arr.length - 1].firstChild.style.paddingLeft = valg + "px";
	navtopmenu_arr[navtopmenu_arr.length - 1].firstChild.style.paddingRight = vald + "px";
	navtopmenu_arr[navtopmenu_arr.length - 1].firstChild.style.background = "transparent";
	//fin calage nav sur toute la largeur du 1024
	//highlight menu de la rubrique en cours
	for(var i=0; i<navtopmenu_arr.length; i++){
		if(i.toString() == LOC.gRub.toString()){//toString pour éviter le problème false == 0 !
			navtopmenu_arr[i].firstChild.className = "menuclicked";
			//navtopmenu_arr[i].firstChild.style.backgroundColor = "transparent";
		}
	}
	//rollover par focus touche tab
	var eltscoul = ["mainNavTools", "bottomNav"];
	for(var z=0; z<eltscoul.length; z++){
		if(document.getElementById(eltscoul[z])){
			elt = document.getElementById(eltscoul[z]);
			//alert("elt " + eltscoul[z] + " = " + elt)
			var eltsa = elt.getElementsByTagName("a");
			for(var zz=0; zz<eltsa.length; zz++){
				var elta = eltsa[zz];
				//alert("elta = " + elta);
				elta.initColor = elta.style.color;
				elta.onfocus = function(){
					//alert(this.style)
					this.style.color = "#FFFFFF";
				}
				elta.onblur = function(){
					this.style.color = this.initColor;
				}
			}
		}
	}
}
//onload events
//addEvent(window, "load", LOC.initmainnav);
addDOMLoadEvent(function(){
	LOC.initmainnav();
});