initOk=false;
tabObjetsMenu=new Array();
tabObjetsFormulaire=new Array();
tabObjetsListe=new Array();
tabObjetsLienAsync=new Array();
gUrlHttp="";
gUrlHttpOld="";
gUrlHttpRw="";
gTempsId="";
sourisPosX =0;
sourisPosY =0;
gBrowser = navigator.appName;
gVersion = navigator.appVersion;
gVerMsie6=false;
gVerMsie7=false;
gecko=false;
gNonAjax=false;
gControleBisClasse="";
if(gBrowser != 'Microsoft Internet Explorer')
	{
	gecko=true;
	}
else
	{
	var modeleIE6=new RegExp ("MSIE 6");
	if (modeleIE6.test(gVersion))
		{
		gVerMsie6=true;
		}
	var modeleIE7=new RegExp ("MSIE 7");
	if (modeleIE7.test(gVersion))
		{
		gVerMsie7=true;
		}
	var modeleEspace= new RegExp("/espace","g");
	if(!modeleEspace.test(window.location.href) && gVerMsie6)
		{
		gNonAjax=true;
		}
	}
function posSouris(event)
	{
	event= event || window.event;
	sourisPosX= event.clientX + (document.body.scrollLeft + document.documentElement.scrollLeft);
	sourisPosY= event.clientY + (document.body.scrollTop + document.documentElement.scrollTop);
	//window.status = "( x = " + sourisPosY + " ; y = " + sourisPosY + ")";
	}
function initPage()
	{
	if (window.addEventListener) 
		{
		window.addEventListener("load", initBody, false);
		}
	else if (window.attachEvent)
		{
		window.attachEvent("onload", initBody);
		}
	return true;
	}
initPage();
function initBody() 
	{
	initOk=true;
	initObjetsMenus();
	window.focus();
	if (document.addEventListener) 
		{
		document.addEventListener("mouseover", survolBody, false);
		} 
	else if (document.attachEvent)
		{
		document.attachEvent("onmouseover", survolBody);
		}
	initCettePage();
	if(document.getElementById('bandeau'))
		{
		ajoutEv('bandeau', 'mousemove', posSouris);
		}
	return true;
	}
function surveilBarreAdr()
	{
	var modeleH =  new RegExp ("#");
	var nouvUrls = window.location.href.split(modeleH);
	var nouvUrl = nouvUrls[1];
	var modeleHttp =  new RegExp ("^(http://|/)");
	if(nouvUrl != gUrlHttpOld && modeleHttp.test(nouvUrl))
		{
		var modelePara =  new RegExp ("[?]");
		if (modelePara.test(nouvUrl))
			{
			nouvUrl += '&reqAjax=true';
			}
		else
			{
			nouvUrl += '?reqAjax=true';
			}
		gUrlHttpRw="";
		gUrlHttp = nouvUrl ;
		requeteAjaxL(affectation);
		}
	else
		{
		gTempsId=setTimeout('surveilBarreAdr()','500');
		}
	}
function ouvreImpression(aurl,fenetreImpression)
	{
	window.open(aurl,fenetreImpression,'resizable=yes, location=no, width=550, height=550, top=10,left=10, status=no, scrollbars=yes, menubar=no');
	}
function ouvre(aurl,fenetreOuverture)
	{
	window.open(aurl,fenetreOuverture,'resizable=yes, location=no, width=700, height=550, top=10,left=10, status=yes, scrollbars=yes, menubar=no');
	}
function survolBody(event)
	{
	blocConteneurCache('bandeau',0);
	razListe();
	}

function ajoutEv(oId, ev, fonction)
	{
	var objet = document;
	if (objet.addEventListener) 
		{
											//try{
		objet.getElementById(oId).addEventListener(ev, fonction, false);
											//}catch(err){alert(oId)}
		} 
	else if (objet.attachEvent)
		{
										//try{
		objet.getElementById(oId).attachEvent("on" + ev, fonction);
										//}catch(err){alert(oId)}
		}
	return true;
	}
function enleveEv(oId, ev, fonction)
	{
	var objet = document;
	if (objet.addEventListener) 
		{
		objet.getElementById(oId).removeEventListener(ev, fonction, false);
		} 
	else if (objet.attachEvent)
		{
		objet.getElementById(oId).detachEvent("on" + ev, fonction);
		}
	return true;
	}
function arretBouillonnement(event)
	{
	var target = event.target || event.srcElement;
	if (event.preventDefault) 
		{
		event.stopPropagation();
    	}
	event.cancelBubble = true;
	}
function arretAction(event)
	{
	var target = event.target || event.srcElement;
	if (event.preventDefault) 
		{
		event.preventDefault();
    	}
	event.returnValue = false;
	}
function razListe()
	{
	for(var i = 0; i < tabObjetsListe.length; i++)
		{
		tabObjetsListe[i].actionRaz();
		}
	}
function blocConteneurCache(oId)
{
for(var i = 0; i < tabObjetsMenu.length; i++)
	{
	if(enfantsId=tabObjetsMenu[i].nomMenu)
		{
		//if(!document.getElementById(tabObjetsMenu[i].arbreSurvolId))
		if(!tabObjetsMenu[i].arbreSurvolId)
			{
			tabObjetsMenu[i].cacheSousMenus(-1);
			//if(document.getElementById(tabObjetsMenu[i].survolMenuId))
			if(tabObjetsMenu[i].survolMenuId)
				{
				if ((document.getElementById(tabObjetsMenu[i].survolMenuId).className != tabObjetsMenu[i].menuCss + 'actif') && (document.getElementById(tabObjetsMenu[i].survolMenuId).className ==  'menu' + tabObjetsMenu[i].nomMenu + 'hover'))
					{
					document.getElementById(tabObjetsMenu[i].survolMenuId).className=tabObjetsMenu[i].menuCss;
					}
				}
			}
		else if(tabObjetsMenu[i].arbreSurvolId)
			{
			tabObjetsMenu[i].masqueCurSousArbre();
			if(document.getElementById(tabObjetsMenu[i].arbreSurvolId))
				{
				if ((document.getElementById(tabObjetsMenu[i].arbreSurvolId).className != tabObjetsMenu[i].menuCss + 'actif') && (document.getElementById(tabObjetsMenu[i].arbreSurvolId).className ==  'menu' + tabObjetsMenu[i].nomMenu + 'hover'))
					{
					document.getElementById(tabObjetsMenu[i].arbreSurvolId).className=tabObjetsMenu[i].menuCss;
					}
				}
			}

		}
	}
}
objetAjax= function ()
	{
	var oAjax;
	if(gNonAjax)
		{
		oAjax = false;
		}
	else
		{
		try {oAjax = new XMLHttpRequest();}
		catch (err1)
			{
			try {oAjax = new ActiveXObject('Msxml2.XMLHTTP');}
			catch (err2)
				{
				try {oAjax = new ActiveXObject('Microsoft.XMLHTTP');}
				catch (err3)
					{
					oAjax = false;
					}
				}
			}
		}
	return oAjax;
	}
requeteAjaxL= function (appelFonc)
	{
	var requete = objetAjax();
	if(requete)
		{
		initOk=false;
		var modeleSiteExterne = new RegExp("^http://[^/]+","g");
		requete.onreadystatechange  = function()
			{
			if(requete.readyState  == 4)
				{
				if(requete.status  == 200)
					{
					//var tmpEnTete=requete.getAllResponseHeaders();
					//alert("retour " + requete.status + "\n" + tmpEnTete);
					appelFonc(requete.responseText);
					}
				else
					{
					//var tmpEnTete=requete.getAllResponseHeaders();
					var tmpEnTete="";
					alert("Erreur code " + requete.status + " pour " + gUrlHttp + "\n" + tmpEnTete);
					}
				}
			}
		if(gTempsId)
			{
			clearTimeout(gTempsId);
			}
		if(gUrlHttpRw)
			{
			gUrlHttpRw=gUrlHttpRw.replace(modeleSiteExterne,"");
			requete.open( 'GET',gUrlHttpRw,true);
			}
		else
			{
			gUrlHttp=gUrlHttp.replace(modeleSiteExterne,"");
			requete.open( 'GET',gUrlHttp,true);
			}
		requete.send(null);
		document.getElementById("attente").style.top=sourisPosY + "px";
		document.getElementById("attente").style.left=sourisPosX + "px";
		document.getElementById("attente").style.visibility='visible';
		return true;
		}
	else
		{
		return false;
		}
	}
requeteAjaxE= function (appelFonc,datas)
	{
	var requeteEcr = objetAjax();
	if(requeteEcr)
		{
		initOk=false;
		var modeleSiteExterne = new RegExp("^http://[^/]+","g");
		requeteEcr.onreadystatechange  = function()
			{
			if(requeteEcr.readyState  == 4)
				{
				if(requeteEcr.status  == 200)
					{
					//var tmpEnTete=requeteEcr.getAllResponseHeaders();
					//alert("retour " + requete.status + "\n" + tmpEnTete);
					appelFonc(requeteEcr.responseText);
					}
				else
					{
					//alert(datas);
					var tmpEnTete=requeteEcr.getAllResponseHeaders();
					alert("Erreur code " + requeteEcr.status + " pour " + gUrlHttp + "\n" + tmpEnTete);
					}
				}
			}
		if(gTempsId)
			{
			clearTimeout(gTempsId);
			}
		if(gUrlHttpRw)
			{
			gUrlHttpRw=gUrlHttpRw.replace(modeleSiteExterne,"");
			requeteEcr.open( 'POST',gUrlHttpRw,true);
			}
		else
			{
			gUrlHttp=gUrlHttp.replace(modeleSiteExterne,"");
			requeteEcr.open( 'POST',gUrlHttp,true);
			}
		requeteEcr.setRequestHeader('Content-Type','application/x-www-form-urlencoded; charset=utf-8');
		requeteEcr.send(datas);
		document.getElementById("attente").style.top=sourisPosY + "px";
		document.getElementById("attente").style.left=sourisPosX + "px";
		document.getElementById("attente").style.visibility='visible';
		return true;
		}
	else
		{
		return false;
		}
	}
affectationEspace = function(contenu)
	{							//alert(contenu);
	var cadre=document.getElementById('cadre');
	var barreTitre=document.getElementById('barreTitre');
	var barreTriage;
	var barreOutils;
	var contenuTemp = contenu;
	var modeleCadre = new RegExp("</?cadre>","g");
	var contenuTab = contenuTemp.split(modeleCadre);
	if(contenuTab[1])
		{
		cadre.innerHTML = contenuTab[1];			//alert(contenuTab[1]);
		}
	contenuTemp = contenuTab[0] + contenuTab[2];
	var modeleTitre = new RegExp("</?titre>","g");
	var contenuTab = contenuTemp.split(modeleTitre);
	if(contenuTab[1])
		{
		barreTitre.innerHTML = contenuTab[1];
		//document.title =  contenuTab[1];
		}
	contenuTemp = contenuTab[0] + contenuTab[2];
	var modeleTriage = new RegExp("</?triage>","g");
	var contenuTab = contenuTemp.split(modeleTriage);
	if(contenuTab[1])
		{
		barreTriage = document.getElementById('barreTriage');
		if(!barreTriage)
			{
			if(document.getElementById('barreOutils'))
				{
				insertBalise('div','fiche',false,'barreOutils','barreTriage');
				}
			else
				{
				insertBalise('div','fiche',false,'cadre','barreTriage');
				}
			barreTriage = document.getElementById('barreTriage');
			}
		barreTriage.innerHTML = contenuTab[1];		//alert(contenuTab[1]);
		}
	else if(document.getElementById('barreTriage'))
		{
		effaceBalise('barreTriage');
		}
	contenuTemp = contenuTab[0] + contenuTab[2];
	var modeleOutils = new RegExp("</?outil>","g");
	var contenuTab = contenuTemp.split(modeleOutils);
	if(contenuTab[1])
		{
		barreOutils = document.getElementById('barreOutils');
		if(!barreOutils)
			{
			insertBalise('div','fiche',false,'cadre','barreOutils');
			barreOutils = document.getElementById('barreOutils');
			}
		barreOutils.innerHTML = contenuTab[1];
		}
	else if(document.getElementById('barreOutils'))
		{
		effaceBalise('barreOutils');
		}
	initOk=true;
	initCettePage(gUrlHttp);
	}
affectation = function(contenu)
	{										//alert(contenu);
	var cadre=document.getElementById('cadre');
	var contenuTemp = contenu;
	var modeleCadre = new RegExp("</?cadre>","g");
	var contenuTab = contenuTemp.split(modeleCadre);
	var modeleVide = new RegExp("^ *","g");
	var tmpTab0=contenuTab[0];
	tmpTab0=tmpTab0.replace(modeleVide);
	if(tmpTab0)
		{
		//alert(contenuTab[0]);
		}
	if(contenuTab[1])
		{											//alert(contenuTab[1]);
		cadre.innerHTML = contenuTab[1];
		}
	contenuTemp = contenuTab[0] + contenuTab[2];
	var modeleTitre = new RegExp("</?titre>","g");
	var contenuTab = contenuTemp.split(modeleTitre);
	if(contenuTab[1])
		{
		document.title = contenuTab[1];
		}
	contenuTemp = contenuTab[0] + contenuTab[2];
	var connexion=document.getElementById('espaceClient');
	var modeleConnexion = new RegExp("</?connexion>","g");
	var contenuTab = contenuTemp.split(modeleConnexion);
	if(contenuTab[1])
		{
		connexion.innerHTML = contenuTab[1];		//alert(contenuTab[1]);
		document.getElementById('controle_espaceClient').innerHTML = document.getElementById('titreConnexion').innerHTML;
		}
	contenuTemp = contenuTab[0] + contenuTab[2];
	var repli=document.getElementById('repli');
	var modeleRepli = new RegExp("</?repli>","g");
	var contenuTab = contenuTemp.split(modeleRepli);
	if(contenuTab[1])
		{
		repli.innerHTML = contenuTab[1];		//alert(contenuTab[1]);
		}
	contenuTemp = contenuTab[0] + contenuTab[2];
	var rama=document.getElementById('diapo');
	var modeleRama = new RegExp("</?rama>","g");
	var contenuTab = contenuTemp.split(modeleRama);
	if(rama)
		{
		if(contenuTab[1])
			{
			rama.innerHTML = contenuTab[1];		//alert(contenuTab[1]);
			}
		else
			{
			rama.innerHTML = '';		//alert(contenuTab[1]);
			}
		}
	contenuTemp = contenuTab[0] + contenuTab[2];
	var contPannier=document.getElementById('accesPanier');
	var modelePanier = new RegExp("</?panier>","g");
	var contenuTab = contenuTemp.split(modelePanier);
	if(contenuTab[1])
		{
		contPannier.innerHTML = contenuTab[1];		//alert(contenuTab[1]);
		}
	contenuTemp = contenuTab[0] + contenuTab[2];
	var contTitrePage=document.getElementById('titrePage');
	var modeleTitrePage = new RegExp("</?titrePage>","g");
	var contenuTab = contenuTemp.split(modeleTitrePage);
	if(contenuTab[1])
		{
		contTitrePage.innerHTML = contenuTab[1];		//alert(contenuTab[1]);
		}
	initOk=true;
	initCettePage(gUrlHttp);
	}
//-------------------------------------------- classe oMenu -------------------------------------------------
oMenu = function (nMenu)
{
this.nomMenu=nMenu;
var existe=false;
for(var i = 0; i < tabObjetsListe.length; i++)
	{
	if(tabObjetsMenu[i].nomMenu == this.nomMenu)
		{
		existe = true;break;
		}
	}
if(existe)
	{
	tabObjetsMenu[i]=this;
	}
else
	{
	tabObjetsMenu.push(this);
	}
//-------------------------------attributs
var args= oMenu.arguments;
this.menuVertical= args[1];
this.menuArbre= args[2];
this.survolMenuId="";
this.arbreSurvolId="";
this.blocCourantId="";
this.listeBlocs ="";
this.finBranche ="";
this.tabMenuParentId = new Array();
this.ancienSMActif = "";
this.menuCss = "menu" + this.nomMenu;
//----------------------------initialisation

this.initEvMenu(nMenu);
}

//---------------------------------fonctions publiques
oMenu.prototype = 
{
initEvMenu: function (numM)
	{
	var modeleEncre = new RegExp (".*" + numM + "s.+encre$");
	if(!this.menuArbre)
		{
		ajoutEv(numM, 'mouseover', arretBouillonnement);
		var nbTds=document.getElementsByTagName('td').length;
		var modele = new RegExp (".*" + numM + "s.+");
		for(var i = 0; i <  nbTds; i ++)
			{
			if(tdId=document.getElementsByTagName('td')[i].id)
				{
				if (modele.test(tdId))
					{
					ajoutEv(tdId, 'mouseover', this.menuSourisDessus);
					ajoutEv(tdId, 'click', this.menuSourisClick);
					var nbEnf = "";
					var oTd = document.getElementById(tdId);
					if(nbEnf = oTd.childNodes.length)
						{
						for(var j = 0; j < nbEnf; j ++)
							{
							if(oTd.childNodes[j].id)
								{
								var ceTag = oTd.childNodes[j];
								var ceTagId=ceTag.id;
								if(ceTag.tagName.toLowerCase()=="a" && modeleEncre.test(ceTagId))
									{
									ajoutEv(ceTagId, 'click', arretAction);
									}
								}
							}
						}
					}
				}
			}
		}
	else
		{
		ajoutEv(numM, 'mouseover', arretBouillonnement);
		ajoutEv(numM, 'click', arretBouillonnement);
		var nbTds=document.getElementsByTagName('td').length;
		var modele = new RegExp (".*" + numM + "s.+");
		var modeleNo = /^no.*/;
		for(var i = 0; i <  nbTds; i ++)
			{
			if(tdId=document.getElementsByTagName('td')[i].id)
				{
				if (modele.test(tdId))
					{
					ajoutEv(tdId, 'mouseover', this.arbreSourisDessus);
					//if (!modeleNo.test(tdId))
						//{
						ajoutEv(tdId, 'click', this.arbreSourisClick);
						//}
					//else
						//{
						var nbEnf = "";
						var oTd = document.getElementById(tdId);
						if(nbEnf = oTd.childNodes.length)
							{
							for(var j = 0; j < nbEnf; j ++)
								{
								if(oTd.childNodes[j].id)
									{
									var ceTag = oTd.childNodes[j];
									var ceTagId=ceTag.id;
									if(ceTag.tagName.toLowerCase()=="a" && modeleEncre.test(ceTagId))
										{
										ajoutEv(ceTagId, 'click', arretAction);
										}
									}
								}
							}
						//}
					}
				}
			}
		}
	},															//séparation par des virgules
stopMenu: function (numM)
	{
	var modeleEncre = new RegExp (".*" + numM + "s.+encre$");
	if(!this.menuArbre)
		{
		enleveEv(numM, 'mouseover', arretBouillonnement);
		var nbTds=document.getElementsByTagName('td').length;
		var modele = new RegExp (".*" + numM + "s.+");
		for(var i = 0; i <  nbTds; i ++)
			{
			if(tdId=document.getElementsByTagName('td')[i].id)
				{
				if (modele.test(tdId))
					{
					enleveEv(tdId, 'mouseover', this.menuSourisDessus);
					enleveEv(tdId, 'click', this.menuSourisClick);
					var nbEnf = "";
					var oTd = document.getElementById(tdId);
					if(nbEnf = oTd.childNodes.length)
						{
						for(var j = 0; j < nbEnf; j ++)
							{
							if(oTd.childNodes[j].id)
								{
								var ceTag = oTd.childNodes[j];
								var ceTagId=ceTag.id;
								if(ceTag.tagName.toLowerCase()=="a" && modeleEncre.test(ceTagId))
									{
									enleveEv(ceTagId, 'click', arretAction);
									}
								}
							}
						}
					}
				}
			}
		}
	else
		{
		enleveEv(numM, 'mouseover', arretBouillonnement);
		enleveEv(numM, 'click', arretBouillonnement);
		var nbTds=document.getElementsByTagName('td').length;
		var modele = new RegExp (".*" + numM + "s.+");
		var modeleNo = /^no.*/;
		for(var i = 0; i <  nbTds; i ++)
			{
			if(tdId=document.getElementsByTagName('td')[i].id)
				{
				if (modele.test(tdId))
					{
					enleveEv(tdId, 'mouseover', this.arbreSourisDessus);
					//if (!modeleNo.test(tdId))
						//{
						enleveEv(tdId, 'click', this.arbreSourisClick);
						//}
					//else
						//{
						var nbEnf = "";
						var oTd = document.getElementById(tdId);
						if(nbEnf = oTd.childNodes.length)
							{
							for(var j = 0; j < nbEnf; j ++)
								{
								if(oTd.childNodes[j].id)
									{
									var ceTag = oTd.childNodes[j];
									var ceTagId=ceTag.id;
									if(ceTag.tagName.toLowerCase()=="a" && modeleEncre.test(ceTagId))
										{
										enleveEv(ceTagId, 'click', arretAction);
										}
									}
								}
							}
						//}
					}
				}
			}
		}
	},

menuSourisDessus: function(event)
	{
	var target = event.target || event.srcElement;
	var tdid=target.id;
	var ceBlocId="";
	if(tdid)
		{
		var objet=document.getElementById(tdid);
		 while(objet && objet.tagName.toLowerCase() != 'td')
			{
			objet = objet.parentNode;
			tdid=objet.id;
			}
		}
	if(ceBlocId=tdid)
		{
		var objet=document.getElementById(ceBlocId);
		while(objet && objet.tagName.toLowerCase() != 'table')
			{
			objet = objet.parentNode;
			ceBlocId=objet.id;
			} 
		}
	if((ceBlocId))
		{
		var divMenuId= document.getElementById(ceBlocId).parentNode.id;
		for(var i = 0; i < tabObjetsMenu.length; i++)
			{
			if(tabObjetsMenu[i].nomMenu == divMenuId)
				{
				tabObjetsMenu[i].survolSouris(tdid,ceBlocId);
				}
			}
		}
	razListe();
	},

menuSourisClick: function(event)
	{
	var target = event.target || event.srcElement;
	var tdid=target.id;
	var ceBlocId="";
	if(tdid)
		{
		var objet=document.getElementById(tdid);
		 while(objet && objet.tagName.toLowerCase() != 'td')
			{
			objet = objet.parentNode;
			tdid=objet.id;
			}
		}
	if(ceBlocId=tdid)
		{
		var objet=document.getElementById(ceBlocId);
		while(objet && objet.tagName.toLowerCase() != 'table')
			{
			objet = objet.parentNode;
			ceBlocId=objet.id;
			} 
		}
	if((ceBlocId))
		{
		var divMenuId= document.getElementById(ceBlocId).parentNode.id;
		for(var i = 0; i < tabObjetsMenu.length; i++)
			{
			if(tabObjetsMenu[i].nomMenu == divMenuId)
				{
				tabObjetsMenu[i].clickMenu(tdid);
				}
			}
		}
	blocConteneurCache('bandeau',0);
	},

arbreSourisDessus: function(event)
	{
	var target = event.target || event.srcElement;
	var tdid=target.id;
	var ceBlocId="";
	if(tdid)
		{
		var objet=document.getElementById(tdid);
		 while(objet && objet.tagName != 'TD')
			{
			objet = objet.parentNode;
			tdid=objet.id;
			}
		}
	if(ceBlocId=tdid)
		{
		var objet=document.getElementById(ceBlocId);
		while(objet && objet.tagName != 'TABLE')
			{
			objet = objet.parentNode;
			ceBlocId=objet.id;
			} 
		}
	if((ceBlocId))
		{
		var divMenuId= document.getElementById(ceBlocId).parentNode.id;
		divMenuId = divMenuId.replace(/.*(M\d+).*/,'$1');
		for(var i = 0; i < tabObjetsMenu.length; i++)
			{
			if(tabObjetsMenu[i].nomMenu == divMenuId)
				{
				tabObjetsMenu[i].survolArbreSouris(tdid,ceBlocId);
				}
			}
		}
	},

arbreSourisClick: function(event)
	{
	var target = event.target || event.srcElement;
	var tdid=target.id;
	var ceBlocId="";
	var finBranche ="";
	if(tdid)
		{
		var modeleNo = /^no.*/;
		var objet=document.getElementById(tdid);
		 while(objet && objet.tagName.toLowerCase() != 'td')
			{
			objet = objet.parentNode;
			tdid=objet.id;
			}
		if (modeleNo.test(tdid))
			{
			finBranche = tdid;
			}
		}
	if(ceBlocId=tdid)
		{
		var objet=document.getElementById(ceBlocId);
		while(objet && objet.tagName.toLowerCase() != 'table')
			{
			objet = objet.parentNode;
			ceBlocId=objet.id;
			} 
		}
	if((ceBlocId))
		{
		var divMenuId= document.getElementById(ceBlocId).parentNode.id;
		divMenuId = divMenuId.replace(/.*(M\d+).*/,'$1');
		for(var i = 0; i < tabObjetsMenu.length; i++)
			{
			if(tabObjetsMenu[i].nomMenu == divMenuId)
				{
				if(finBranche)
					{
					tabObjetsMenu[i].clickMenu(tdid);
					}
				else
					{
					tabObjetsMenu[i].clickArbre(tdid);
					}
				}
			}
		}
	},
			
cacheSousMenus: function (limiteX)
{
var modeleMenu = /^menu.*/;
var menu = false;
var prefixe = "sous";
var tabListeBlocs = new Array();
var nbBlocs=0;
var modele = /^(M\d+)/;
var modeleListe = "";
var sm="";
if (this.listeBlocs)
	{
	tabListeBlocs=this.listeBlocs.split(";");
	nbBlocs = tabListeBlocs.length;
	}
for(var i = 0; i < nbBlocs; i ++)
	{
	if(document.getElementById(tabListeBlocs[i]).offsetLeft > limiteX)
		{
		document.getElementById(tabListeBlocs[i]).style.visibility = 'hidden';	//masquage
		sm = tabListeBlocs[i].replace(modele,'$1s');
		tabListeBlocs[i] = "";
		if(!document.getElementById(sm))
			{
			 if (!this.menuVertical)
				{
				sm = "h" + sm;
				}
			}
		if (menu = modeleMenu.test(document.getElementById(sm).className))
			{
			prefixe = "";
			}
		else
			{
			prefixe = "sous";
			}
		if(document.getElementById(sm).className != this.menuCss + 'actif')
			{
			document.getElementById(sm).className = prefixe + this.menuCss;
			}
		}
	}
var pv="";
this.listeBlocs = "";
for( i = 0; i < nbBlocs; i ++)
	{
	if (tabListeBlocs[i])
		{
		this.listeBlocs += pv + tabListeBlocs[i];
		pv=";";
		}
	}
},

survolSouris: function (menuSurvoleId,blocId)
	{
	this.survolMenuId=menuSurvoleId;
	this.blocCourantId=blocId;

	var modele = /^menu.*/;
	var menu = modele.test(this.blocCourantId);

	modele = /^no.+/;
	var noSousMenu = modele.test(this.survolMenuId);

	var prefixe = "sous";

	var tabListeBlocs = new Array();
	var nbBlocs =0;

	var posXsuivant;
	var posYsuivant;
	var posX=document.getElementById(this.blocCourantId).offsetLeft + document.getElementById(this.survolMenuId).offsetLeft;
	var posY=document.getElementById(this.blocCourantId).offsetTop + document.getElementById(this.survolMenuId).offsetTop;

	var tmpsm = "";
	var modL = /;/g;
	var tmpPos= document.getElementById(this.blocCourantId).offsetLeft;

	if (!modL.test(this.listeBlocs)&&this.listeBlocs&&menu)
		{
		modL =  /^(M\d+)/;
		tmpsm = this.listeBlocs.replace(modL,'$1s');	
		if (!this.menuVertical)
			{
			tmpsm = "h" + tmpsm;
			}
		if(tmpsm != this.survolMenuId)
			{
			tmpPos=-1;
			}
		}

	this.cacheSousMenus(tmpPos);

	if(!menu)
		{
		document.getElementById(this.survolMenuId).className='sous' + this.menuCss + 'hover';
		}
	else if (document.getElementById(this.survolMenuId).className != this.menuCss + 'actif')
		{
		document.getElementById(this.survolMenuId).className=this.menuCss + 'hover';
		}
	if(this.finBranche)
		{
		modele = /^menu.*/;
		if (modele.test(document.getElementById(this.finBranche).className))
			{
			prefixe = "";
			}
		if(document.getElementById(this.finBranche).className != this.menuCss + 'actif' && (this.finBranche != this.survolMenuId))
			{
			document.getElementById(this.finBranche).className = prefixe + this.menuCss;
			}
		this.finBranche = "";
		}
	if (noSousMenu)
		{
		this.finBranche = this.survolMenuId;
		}
	else
		{
		modele = /.?(M\d+)s(.+)/;
		var sousMenuIdSuivant = this.survolMenuId.replace(modele,'$1$2');
		if (!this.menuVertical && menu)
			{
			posXsuivant=posX;
			posYsuivant=posY + document.getElementById(this.survolMenuId).offsetHeight;
			}
		else
			{
			posXsuivant=posX + document.getElementById(this.survolMenuId).offsetWidth;
			posYsuivant=posY;
			}
		document.getElementById(sousMenuIdSuivant).style.left = posXsuivant + "px";
		document.getElementById(sousMenuIdSuivant).style.top = posYsuivant + "px";
		document.getElementById(sousMenuIdSuivant).style.visibility = 'visible';

		if (this.listeBlocs)
			{
			tabListeBlocs=this.listeBlocs.split(";");
			nbBlocs = tabListeBlocs.length;
			}
		var mod = RegExp(";?" + sousMenuIdSuivant + ";?", 'g');
		if (!mod.test(this.listeBlocs))
			{
			tabListeBlocs[nbBlocs]=sousMenuIdSuivant;	//ajout bloc apparu
			var pv="";
			this.listeBlocs = "";
			for( i = 0; i < nbBlocs + 1; i ++)
				{
				this.listeBlocs += pv + tabListeBlocs[i];
				pv=';';
				}
			}
		}
	},

survolArbreSouris: function (arbreSurvolId,blocId)
	{
	this.arbreSurvolId=arbreSurvolId;
	this.blocCourantId=blocId;

	var modele = /^menu.*/;
	var menu = modele.test(this.blocCourantId);

	modele = /^no.+/;
	var noSousMenu = modele.test(this.arbreSurvolId);

	var prefixe = "sous";

	if(!menu)
		{
		if (document.getElementById(this.arbreSurvolId).className != 'sous' + this.menuCss + 'actif')
			{
			document.getElementById(this.arbreSurvolId).className='sous' + this.menuCss + 'hover';
			}
		}
	else if (document.getElementById(this.arbreSurvolId).className != this.menuCss + 'actif')
		{
		document.getElementById(this.arbreSurvolId).className=this.menuCss + 'hover';
		}
	if(this.finBranche)
		{
		modele = /^menu.*/;
		if (modele.test(document.getElementById(this.finBranche).className))
			{
			prefixe = "";
			}
		if(document.getElementById(this.finBranche).className != prefixe + this.menuCss + 'actif' && (this.finBranche != this.arbreSurvolId))
			{
			document.getElementById(this.finBranche).className = prefixe + this.menuCss;
			}
		this.finBranche = "";
		}
	this.finBranche = this.arbreSurvolId;
	},
masqueCurSousArbre: function()
	{
	var modele = /^sousmenuM[0-9]+hover$/;
	if (modele.test(document.getElementById(this.arbreSurvolId).className))
		{
		document.getElementById(this.arbreSurvolId).className = 'sous' + this.menuCss;
		}
	},
clickArbre: function (tdId)
	{
	var args=this.clickArbre.arguments;
	var ligneApres='';
	var BlocAffId=tdId.replace(/s/i,'');
	var oTab=document.getElementById(BlocAffId);
	var conteneurlTr=document.getElementById(tdId).parentNode;
	var conteneurTBodyId=conteneurlTr.parentNode.id;
	nouvLigne= 'ajoutLi' + tdId;
	var objet=document.getElementById(tdId).parentNode;
	while(objet && objet.tagName.toLowerCase() != 'table')
		{
		objet = objet.parentNode;
		}
	if (!document.getElementById(nouvLigne))
		{
		if (ancienTdId = this.tabMenuParentId[objet.id])
			{
			var ancienBlocAffId=ancienTdId.replace(/s/i,'');
			var oAncienTab=document.getElementById(ancienBlocAffId);
			document.getElementById(this.nomMenu).appendChild(oAncienTab);
			oAncienTab.className = 'sousmenuBloc';
			oAncienTab.style.position = 'absolute';
			effaceBalise('ajoutLi' + ancienTdId);
			}
		nouvCel= 'ajoutCel' + tdId;
		if(ligneApres=rechLigneSuivante(tdId))
			{
			//ajoutcellule(insertligne(conteneurTBodyId,ligneApres,nouvLigne),nouvCel);
			ajoutBalise('td',insertBalise('tr',conteneurTBodyId,false,ligneApres,nouvLigne),nouvCel);
			}
		else
			{
			//ajoutcellule(ajoutligne(conteneurTBodyId,nouvLigne),nouvCel);
			ajoutBalise('td',ajoutBalise('tr',conteneurTBodyId,nouvLigne),nouvCel);
			}
		document.getElementById(nouvCel).appendChild(oTab);
		oTab.className = 'sous' + this.menuCss + 'tr';
		oTab.style.position = 'static';
		this.tabMenuParentId[objet.id] = tdId;
		}
	else if(!args[1])
		{
		document.getElementById(this.nomMenu).appendChild(oTab);
		oTab.className = 'sousmenuBloc';
		oTab.style.position = 'absolute';
		effaceBalise(nouvLigne);
		this.tabMenuParentId[objet.id] = '';
		}
	},

clickMenu: function (oId)
	{
	var nbEnf = "";
	var oTd = document.getElementById(oId);
	if(nbEnf = oTd.childNodes.length)
		{
		for(var j = 0; j < nbEnf; j ++)
			{
			if(oTd.childNodes[j].id)
				{
				var modeleEspace= new RegExp("/espace","g");
				var ceTag = oTd.childNodes[j];
				var ceTagId=ceTag.id;
				if(ceTag.tagName.toLowerCase()=="a")
					{
					var modelePara =  new RegExp ("[?]");
					var modeleUrlRew =  new RegExp ("\.html$");
					gUrlHttpRw = "";
					if (modelePara.test(ceTag.href))
						{
						gUrlHttp =ceTag.href + '&reqAjax=true';
						}
					else
						{
						gUrlHttp =ceTag.href + '?reqAjax=true';
						}
					if(modeleUrlRew.test(ceTag.href))
						{
						var tmpMod='/' + repVirt + '/';
						gUrlHttpRw = ceTag.href.replace(tmpMod,'/' + repVirt + 'A/');
						}
					var requete = objetAjax();
					if(requete)
						{
						if(!modeleEspace.test(window.location.href))
							{
							requeteAjaxL(affectation);
							}
						else
							{
							requeteAjaxL(affectationEspace);
							}

						}
					else
						{
						window.location.href = ceTag.href;
						}
					}
				}
			}
		}
	},
setAncienSMActif: function (menuId)
	{
	this.ancienSMActif = menuId;
	},
getAncienSMActif: function (menuId)
	{
	return this.ancienSMActif ;
	},

get_nom: function ()
	{
	return this.nomMenu ;
	}
}
//--------------------------------------------------------------------------------------------- fin classe oMenu

//-------------------------------------------- classe formulaire -------------------------------------------------
oFormulaire = function (idFormulaire)
{
var args= oFormulaire.arguments;
this.formulaireId=idFormulaire;
//-------------------------------attributs
var existe=false;
for(var i = 0; i < tabObjetsFormulaire.length; i++)
	{
	if(tabObjetsFormulaire[i].formulaireId == this.formulaireId)
		{
		existe = true;break;
		}
	}
if(existe)
	{
	tabObjetsFormulaire[i]=this;
	}
else
	{
	tabObjetsFormulaire.push(this);
	}
this.obligatoire = "obligatoire";
this.entier = "valeur";
this.ar = "mailphp.php";
this.actionPrecedente = "";
this.actionSuivante = "";
this.actionImpression = "";
this.actionFiltre = "";
this.nomMessage = "";
this.tabFormulaireObl = new Array();
this.tabFormulaireInt = new Array();
this.erreur = false;
this.forceSub = false;
this.erreurMail = "";
//----------------------------initialisation
this.initFormulaire();
}

//---------------------------------fonctions publiques
oFormulaire.prototype = 
{
initFormulaire: function ()
	{
	var nbControles=document.getElementById(this.formulaireId).length;
	var modeleObl = new RegExp ("^obl_.*");
	var modeleChangeMail = new RegExp ("changeMail_","g");
	var modeleChange = new RegExp ("change_","g");
	var modeleEnvoi= new RegExp ("^envoi_.*");
	var modeleFiltre= new RegExp ("^filtre_.*");
	var modeleFiltreSite= new RegExp ("^filtreSite_.*");
	var modelePrecedent= new RegExp ("^precedent_.*");
	var modeleSuivant= new RegExp ("^suivant_.*");
	var modeleImpression= new RegExp ("^impression_.*");
	var modeleCBox= new RegExp ("cBox_.*");
	var modeleSelect= new RegExp ("select_.*");
	var j=0;
	var k=0;
	for(var i = 0; i <  nbControles; i ++)
		{
		var elm=document.getElementById(this.formulaireId).elements[i];
		if(elm.type == 'text')
			{
			ajoutEv(elm.id, 'keyup',this.entrer);
			}
		if(modeleEnvoi.test(elm.id))
			{
			ajoutEv(elm.id, 'click',this.controleFormulaire);
			}
		if(modeleFiltre.test(elm.id))
			{
			ajoutEv(elm.id, 'click',this.filtre);
			}
		if(modeleFiltreSite.test(elm.id))
			{
			ajoutEv(elm.id, 'click',this.filtreSite);
			}
		if(modelePrecedent.test(elm.id))
			{
			ajoutEv(elm.id, 'click',this.precedent);
			}
		if(modeleSuivant.test(elm.id))
			{
			ajoutEv(elm.id, 'click',this.suivant);
			}
		if(modeleImpression.test(elm.id))
			{
			ajoutEv(elm.id, 'click',this.impression);
			}
		if(modeleChangeMail.test(elm.id))
			{
			ajoutEv(elm.id, 'change',this.changeMail);
			}
		if(modeleChange.test(elm.id))
			{
			ajoutEv(elm.id, 'change',this.change);
			}
		if(modeleCBox.test(elm.id))
			{
			ajoutEv(elm.id, 'change',this.cBoxEv);					//alert(elm.id);
			}
		if(modeleSelect.test(elm.id))
			{
			ajoutEv(elm.id, 'change',this.choixSelect);
			}
		if(modeleObl.test(elm.id))
			{
			this.tabFormulaireObl[j]=elm.id;
			j++;
			}
		if(!isNaN(parseInt(elm.value)) && (elm.value == parseInt(elm.value)) && (elm.name != 'rechs'))
			{
			if(elm.type == 'text')
				{
				this.tabFormulaireInt[k]=elm.id;
				k++;
				}
			}
		}
	},
stopFormulaire: function ()
	{
	var nbControles=document.getElementById(this.formulaireId).length;
	var modeleObl = new RegExp ("^obl_.*");
	var modeleChangeMail = new RegExp ("changeMail_","g");
	var modeleChange = new RegExp ("change_","g");
	var modeleEnvoi= new RegExp ("^envoi_.*");
	var modeleFiltre= new RegExp ("^filtre_.*");
	var modeleFiltreSite= new RegExp ("^filtreSite_.*");
	var modelePrecedent= new RegExp ("^precedent_.*");
	var modeleSuivant= new RegExp ("^suivant_.*");
	var modeleImpression= new RegExp ("^impression_.*");
	var modeleCBox= new RegExp ("cBox_.*");
	var modeleSelect= new RegExp ("select_.*");
	var j=0;
	for(var i = 0; i <  nbControles; i ++)
		{
		var elm=document.getElementById(this.formulaireId).elements[i];
		if(elm.type == 'text')
			{
			enleveEv(elm.id, 'keyup',this.entrer);
			}
		if(modeleEnvoi.test(elm.id))
			{
			enleveEv(elm.id, 'click',this.controleFormulaire);
			}
		if(modeleFiltre.test(elm.id))
			{
			enleveEv(elm.id, 'click',this.filtre);
			}
		if(modeleFiltreSite.test(elm.id))
			{
			enleveEv(elm.id, 'click',this.filtreSite);
			}
		if(modelePrecedent.test(elm.id))
			{
			enleveEv(elm.id, 'click',this.precedent);
			}
		if(modeleSuivant.test(elm.id))
			{
			enleveEv(elm.id, 'click',this.suivant);
			}
		if(modeleImpression.test(elm.id))
			{
			enleveEv(elm.id, 'click',this.impression);
			}
		if(modeleChangeMail.test(elm.id))
			{
			enleveEv(elm.id, 'change',this.changeMail);
			}
		if(modeleChange.test(elm.id))
			{
			enleveEv(elm.id, 'change',this.change);
			}
		if(modeleCBox.test(elm.id))
			{
			enleveEv(elm.id, 'change',this.cBoxEv);
			}
		if(modeleSelect.test(elm.id))
			{
			enleveEv(elm.id, 'change',this.choixSelect);
			}
		}
	},
changeMail: function(event)
	{
	var target = event.target || event.srcElement;
	for(var i = 0; i < tabObjetsFormulaire.length; i++)
		{
		if(tabObjetsFormulaire[i])
			{
			var formul=document.getElementById(tabObjetsFormulaire[i].formulaireId);
			if(formul)
				{
				for(var j= 0; j < formul.length; j++)
					{
					if(formul.elements[j].id == target.id)
						{
						tabObjetsFormulaire[i].emailConforme(target.id);
						}
					}
				}
			}
		}
	},
entrer: function(event)
	{
	var touche = event.keyCode || event.which;
	var target = event.target || event.srcElement;
	if(touche==13)
		{
		for(var i = 0; i < tabObjetsFormulaire.length; i++)
			{
			if(tabObjetsFormulaire[i])
				{
				var formul=document.getElementById(tabObjetsFormulaire[i].formulaireId);
				if(formul)
					{
					for(var j= 0; j < formul.length; j++)
						{
						if(formul.elements[j].id == target.id)
							{
							tabObjetsFormulaire[i].controles();
							}
						}
					}
				}
			}
		}
	},
change: function(event)
	{
	var target = event.target || event.srcElement;
	for(var i = 0; i < tabObjetsFormulaire.length; i++)
		{
		if(tabObjetsFormulaire[i])
			{
			var formul=document.getElementById(tabObjetsFormulaire[i].formulaireId);
			if(formul)
				{
				for(var j= 0; j < formul.length; j++)
					{
					if(formul.elements[j].id == target.id)
						{
						tabObjetsFormulaire[i].filtrage();
						}
					}
				}
			}
		}
	},
cBoxEv: function(event)
	{
	var target = event.target || event.srcElement;
	for(var i = 0; i < tabObjetsFormulaire.length; i++)
		{
		if(tabObjetsFormulaire[i])
			{
			var formul=document.getElementById(tabObjetsFormulaire[i].formulaireId);
			if(formul)
				{
				for(var j= 0; j < formul.length; j++)
					{
					if(formul.elements[j].id == target.id)
						{
						tabObjetsFormulaire[i].cBox(target.id);
						}
					}
				}
			}
		}
	},

choixSelect: function(event)
	{
	var target = event.target || event.srcElement;
	for(var i = 0; i < tabObjetsFormulaire.length; i++)
		{
		if(tabObjetsFormulaire[i])
			{
			var formul=document.getElementById(tabObjetsFormulaire[i].formulaireId);
			if(formul)
				{
				for(var j= 0; j < formul.length; j++)
					{
					if(formul.elements[j].id == target.id)
						{
						tabObjetsFormulaire[i].select();
						}
					}
				}
			}
		}
	},
filtre: function(event)
	{
	var target = event.target || event.srcElement;
	for(var i = 0; i < tabObjetsFormulaire.length; i++)
		{
		if(tabObjetsFormulaire[i])
			{
			var formul=document.getElementById(tabObjetsFormulaire[i].formulaireId);
			if(formul)
				{
				for(var j= 0; j < formul.length; j++)
					{
					if(formul.elements[j].id == target.id)
						{
						tabObjetsFormulaire[i].filtrage();
						}
					}
				}
			}
		}
	},

filtreSite: function(event)
	{
	var target = event.target || event.srcElement;
	for(var i = 0; i < tabObjetsFormulaire.length; i++)
		{
		if(tabObjetsFormulaire[i])
			{
			var formul=document.getElementById(tabObjetsFormulaire[i].formulaireId);
			if(formul)
				{
				for(var j= 0; j < formul.length; j++)
					{
					if(formul.elements[j].id == target.id)
						{
						tabObjetsFormulaire[i].filtrageSite();
						}
					}
				}
			}
		}
	},

precedent: function(event)
	{
	var target = event.target || event.srcElement;
	for(var i = 0; i < tabObjetsFormulaire.length; i++)
		{
		if(tabObjetsFormulaire[i])
			{
			var formul=document.getElementById(tabObjetsFormulaire[i].formulaireId);
			if(formul)
				{
				for(var j= 0; j < formul.length; j++)
					{
					if(formul.elements[j].id == target.id)
						{
						formul.action=tabObjetsFormulaire[i].actionPrecedente;
						formul.submit();
						}
					}
				}
			}
		}
	},
suivant: function(event)
	{
	var target = event.target || event.srcElement;
	for(var i = 0; i < tabObjetsFormulaire.length; i++)
		{
		if(tabObjetsFormulaire[i])
			{
			var formul=document.getElementById(tabObjetsFormulaire[i].formulaireId);
			if(formul)
				{
				for(var j= 0; j < formul.length; j++)
					{
					if(formul.elements[j].id == target.id)
						{
						formul.action=tabObjetsFormulaire[i].actionSuivante;
						formul.submit();
						}
					}
				}
			}
		}
	},
impression: function(event)
	{
	var target = event.target || event.srcElement;
	for(var i = 0; i < tabObjetsFormulaire.length; i++)
		{
		if(tabObjetsFormulaire[i])
			{
			var formul=document.getElementById(tabObjetsFormulaire[i].formulaireId);
			if(formul)
				{
				for(var j= 0; j < formul.length; j++)
					{
					if(formul.elements[j].id == target.id)
						{
						formul.action=tabObjetsFormulaire[i].actionImpression;
						formul.submit();
						}
					}
				}
			}
		}
	},
controleFormulaire: function (event)
	{
	var target = event.target || event.srcElement;
	for(var i = 0; i < tabObjetsFormulaire.length; i++)
		{
		if(tabObjetsFormulaire[i])
			{
			var formul=document.getElementById(tabObjetsFormulaire[i].formulaireId);
			if(formul)
				{
				for(var j= 0; j < formul.length; j++)
					{
					if(formul.elements[j].id == target.id)
						{
						tabObjetsFormulaire[i].controles();
						}
					}
				}
			}
		}
	},
controles: function ()
	{
	var controle;
	var controleBis;
	var nbObl=this.tabFormulaireObl.length;
	this.erreur = false;
	if(isNaN(nbObl))
		{
		nbObl=0;
		}
	for(var i = 0; i < nbObl; i ++)
		{
		controle=document.getElementById(this.tabFormulaireObl[i]);
		if(controle)
			{
			controleBis=controle.name + "Bis";
			if (controle.type != 'file')
				{
				controle.value = trim(controle.value);
				}
			if(controle.name == 'pass' || controle.name == 'login')
				{
				controle.className='connexion';
				}
			else if(controle.name == 'rechs')
				{
				controle.className='texteRech';
				}
			else
				{
				controle.className='formulaire';
				if(document.getElementById(controleBis))
					{
					var tmpControleBis=document.getElementById(controleBis);
					tmpControleBis.className=gControleBisClasse;
					}
				}
			if((!controle.value) || (controle.value == trim(this.obligatoire)))
				{
				if(controle.name == 'rechs')
					{
					controle.className='texteContRech';
					}
				else
					{
					controle.className='erreurformulaire';
					}
				if(document.getElementById(controleBis))
					{
					var tmpControleBis=document.getElementById(controleBis);
					gControleBisClasse=tmpControleBis.className;
					tmpControleBis.className='erreurformulaire';
					}
				if (controle.type == 'checkbox' || controle.type == 'radio' || controle.type == 'select-one')
					{
					alert(this.obligatoire);
					}
				else
					{
					controle.value = this.obligatoire;
					}
				controle.focus();
				this.erreur=true;
				}
			}
		}
	var nbInt=this.tabFormulaireInt.length;
	if(isNaN(nbInt))
		{
		nbInt=0;
		}
	for(var i = 0; i < nbInt; i ++)
		{
		controle=document.getElementById(this.tabFormulaireInt[i]);
		if(controle)
			{
			controle.value = trim(controle.value);
			if(controle.name == 'pass' || controle.name == 'login')
				{
				controle.className='connexion';
				}
			else
				{
				controle.className='formulaire';
				}
			if((!controle.value) || ((controle.value != parseInt(controle.value)) && (controle.value != parseFloat(controle.value))))
				{
				controle.className='erreurformulaire';
				controle.focus();
				controle.value = this.entier;
				this.erreur=true;
				}
			}
		}
	if(this.erreur || this.erreurMail)
		{
		if(document.getElementById(this.erreurMail))
			{
			this.emailConforme(this.erreurMail);
			}
		}
	else
		{
		if(this.nomMessage)
			{
			document.getElementById(this.nomMessage).value = this.formatage();
			}
		gUrlHttpRw = "";
		var modeleEspace= new RegExp("/espace","g");
		if(!modeleEspace.test(window.location.href))
			{
			this.envoiPost(this.ar,affectation);
			}
		else
			{
			this.envoiPost(this.ar,affectationEspace);
			}
		}
	},
cBox: function(coche)
	{
	var laCase=document.getElementById(coche);
	var modele= new RegExp(".*cBox_([^_]+)_([^_]*)");
	var valCoche=coche.replace(modele,'$1');
	var valDeCoche=coche.replace(modele,'$2');
	if(laCase.checked)
		{
		laCase.value=valCoche;
		}
	else
		{
		laCase.value = valDeCoche;
		}
	},
select: function()
	{
	this.filtrageSite();
	},
formatage: function ()
	{
	var nbControles=document.getElementById(this.formulaireId).length;
	var message = "";
	for(var i = 0; i <  nbControles; i ++)
		{
		var elm=document.getElementById(this.formulaireId).elements[i];
		if((elm.type != 'hidden') && (elm.type != 'submit') && (elm.type != 'button'))
			{
			if((elm.type == 'radio') || (elm.type == 'checkbox'))
				{
				if (elm.checked)
					{
					elm.value = trim(elm.value);
					message += '\n' + elm.name + ':' + elm.value;
					}
				}
			else if (elm.type != 'file')
				{
				elm.value = trim(elm.value);
				message += '\n' + elm.name + ':' + elm.value;
				}
			}
		}
	message = message.replace(/'/g,'&rsquo;');
	message = message.replace(/"/g,'&quot;');
	return message;
	},

filtrage: function ()
	{
	this.envoiPost(this.actionFiltre,affectationEspace);
	},

filtrageSite: function ()
	{
	this.envoiPost(this.actionFiltre,affectation);
	},

envoiPost: function (action,fonction)
	{
	document.getElementById(this.formulaireId).action=action;
	var donnees = "";
	var sep = "";
	var donneTraite= "";
	var recherche = "";
	var nbControles=document.getElementById(this.formulaireId).length;
	for(var i = 0; i <  nbControles; i ++)
		{
		var elm=document.getElementById(this.formulaireId).elements[i];
		if((elm.type != 'submit') && (elm.type != 'button') && (elm.type))
			{
			if (elm.type != 'file')
				{
				elm.value = trim(elm.value);
				}
			if (elm.name == 'rechs')					// on est dans le formulaire de recherche
				{
				recherche = "";
				}
			donneTraite = elm.value;
			if(donneTraite)
				{
				donneTraite = donneTraite.replace(/&/g,';et;');
				}
			if((elm.type == 'radio') || (elm.type == 'checkbox'))
				{
				if (elm.checked)
					{
					donnees += sep + elm.name + '=' + donneTraite;
					sep="&";
					}
				}
			else
				{
				donnees += sep + elm.name + '=' + donneTraite;
				sep="&";
				}
			}
		}

	if(!recherche  && document.getElementById('obl_rechs'))
		{
		if(recherche = document.getElementById('obl_rechs').value)
			{
			modeleEt =  new RegExp ("&","g");
			recherche = recherche.replace(modeleEt,';et;');
			donnees += sep + 'rechs' + '=' + recherche;
			sep="&";
			modeleRechAction =  new RegExp ("rechs=[^&]+","g");
			action = action.replace(modeleRechAction,'rechs='+recherche);
			if(gNonAjax)
				{
				var contForm=document.getElementById(this.formulaireId);
				var tmpRechs=document.getElementById('obl_rechs');
				tmpRechs.style.visibility='hidden';
				contForm.appendChild(tmpRechs);
				}
			}
		}
	gUrlHttp=action;
	gUrlHttpRw="";
	var modelePara =  new RegExp ("[?]");
	if (modelePara.test(gUrlHttp))
			{
			modelePara =  new RegExp ("&reqAjax=true");
			if (!modelePara.test(gUrlHttp))
				{
				gUrlHttp +='&reqAjax=true';
				}
			}
		else
			{
			gUrlHttp += '?reqAjax=true';
			}
	if(this.forceSub || gNonAjax)
		{
		if(gNonAjax)
			{
			document.getElementById(this.formulaireId).method='get';
			}
		document.getElementById(this.formulaireId).submit();
		}
	else
		{
		//alert(donnees);
		//document.getElementById(this.formulaireId).submit();/*
		if(!requeteAjaxE(fonction,donnees))
			{
			document.getElementById(this.formulaireId).submit();
			}
			//*/
		}
	},

emailConforme: function(controleId)
	{
	var modele = new RegExp ("mail","g");
	if (modele.test(controleId))
		{
		var modeleEmail = /^[a-zA-Z0-9._%-]+@([a-zA-Z0-9._%-]+[.])+.+$/;
		if (!modeleEmail.test(document.getElementById(controleId).value))
			{
			document.getElementById(controleId).className = 'erreurformulaire';
			this.erreurMail = controleId;
			}
		else
			{
			document.getElementById(controleId).className = 'formulaire';
			this.erreurMail = "";
			}
		}
	},
set_obligatoire: function (obligatoire)
	{
	this.obligatoire=obligatoire;
	return true;
	},
set_entier: function (entier)
	{
	this.entier=entier;
	return true;
	},
set_action: function (action)
	{
	this.ar=action;
	return true;
	},
set_actionImpression: function (actionImpression)
	{
	this.actionImpression=actionImpression;
	return true;
	},
set_actionFiltre: function (actionFiltre)
	{
	this.actionFiltre=actionFiltre;
	return true;
	},
set_encodage: function (encodage)
	{
	document.getElementById(this.formulaireId).setAttribute('enctype',encodage);
	return true;
	},
set_actionPrecedente: function (actionPrecedente)
	{
	this.actionPrecedente=actionPrecedente;
	return true;
	},
set_actionSuivante: function (actionSuivante)
	{
	this.actionSuivante=actionSuivante;
	return true;
	},
set_nomMessage: function (nomMessage)
	{
	this.nomMessage=nomMessage;
	return true;
	},
set_forceSub: function (forceSub)
	{
	this.forceSub=forceSub;
	return true;
	},
get_nom: function ()
	{
	return this.formulaireId ;
	}
}
//--------------------------------------------------------------------------------------------- fin classe formulaire

//-------------------------------------------- classe oListe -------------------------------------------------
oListe = function (nListe)
{
this.nomListe=nListe;
var existe=false;
for(var i = 0; i < tabObjetsListe.length; i++)
	{
	if(tabObjetsListe[i].nomListe == this.nomListe)
		{
		existe = true;break;
		}
	}
if(existe)
	{
	tabObjetsListe[i]=this;
	}
else
	{
	tabObjetsListe.push(this);
	}

this.oldDesssus="";
this.url="";
this.initEvListe();
}

//---------------------------------fonctions publiques
oListe.prototype = 
{
initEvListe: function ()
	{
	if(document.getElementById(this.nomListe))
		{
		ajoutEv(this.nomListe, 'mouseover', arretBouillonnement);
		}
	var nbTds=document.getElementsByTagName('td').length;
	var modele = new RegExp ("^lm[0-9]*Td.+"+ this.nomListe);
	var modeleVide = new RegExp ("^vide[0-9]*Td.+"+ this.nomListe);
	for(var i = 0; i <  nbTds; i ++)
		{
		if(tdId=document.getElementsByTagName('td')[i].id)
			{
			if (modele.test(tdId) && document.getElementById(tdId).innerHTML)
				{
				ajoutEv(tdId, 'mouseover', this.parDessus);
				ajoutEv(tdId, 'click', this.clicDessus);
				}
			if (modeleVide.test(tdId))
				{
				ajoutEv(tdId, 'mouseover', this.raz);
				}
			}
		}
	var modeleA = new RegExp ("^lmA");
	var tousLesLiens=document.getElementsByTagName('a');
	for(var i = 0; i <  tousLesLiens.length ; i ++)
		{
		var ceLien=tousLesLiens[i].id;
		if(modeleA.test(ceLien))
			{
			ajoutEv(ceLien, 'click', arretAction);
			}
		}
	},
stopListe: function ()
	{
	enleveEv(this.nomListe, 'mouseover', arretBouillonnement);
	var nbTds=document.getElementsByTagName('td').length;
	var modele = new RegExp ("^lm[0-9]*Td.+"+ this.nomListe);
	var modeleVide = new RegExp ("^vide[0-9]*Td.+"+ this.nomListe);
	for(var i = 0; i <  nbTds; i ++)
		{
		if(tdId=document.getElementsByTagName('td')[i].id)
			{
			if (modele.test(tdId) && document.getElementById(tdId).innerHTML)
				{
				enleveEv(tdId, 'mouseover', this.parDessus);
				enleveEv(tdId, 'click', this.clicDessus);
				}
			if (modeleVide.test(tdId))
				{
				enleveEv(tdId, 'mouseover', this.raz);
				}
			}
		}
	var modeleA = new RegExp ("^lmA");
	var tousLesLiens=document.getElementsByTagName('a');
	for(var i = 0; i <  tousLesLiens.length ; i ++)
		{
		var ceLien=tousLesLiens[i].id;
		if(modeleA.test(ceLien))
			{
			enleveEv(ceLien, 'click', arretAction);
			}
		}
	},
parDessus: function(event)
	{
	var target = event.target || event.srcElement;
	var listeId=target.id;
	if(listeId)
		{
		var objet=document.getElementById(listeId);
		 while(objet && objet.tagName.toLowerCase() != 'table')
			{
			objet = objet.parentNode;
			listeId=objet.id;
			}
		}
	if(listeId)
		{
		for(var i = 0; i < tabObjetsListe.length; i++)
			{
			if(tabObjetsListe[i].nomListe == listeId)
				{
				tabObjetsListe[i].actionDessus(target.id);
				}
			}
		}
	blocConteneurCache('bandeau',0);
	},
raz: function(event)
	{
	var target = event.target || event.srcElement;
	var listeId=target.id;
	if(listeId)
		{
		var objet=document.getElementById(listeId);
		 while(objet && objet.tagName.toLowerCase() != 'table')
			{
			objet = objet.parentNode;
			listeId=objet.id;
			}
		}
	if(listeId)
		{
		for(var i = 0; i < tabObjetsListe.length; i++)
			{
			if(tabObjetsListe[i].nomListe == listeId)
				{
				tabObjetsListe[i].razSel();
				}
			}
		}
	blocConteneurCache('bandeau',0);
	},
clicDessus: function(event)
	{
	var target = event.target || event.srcElement;
	var listeId=target.id;
	if(listeId)
		{
		var objet=document.getElementById(listeId);
		 while(objet && objet.tagName.toLowerCase() != 'table')
			{
			objet = objet.parentNode;
			listeId=objet.id;
			}
		}
	if(listeId)
		{
		for(var i = 0; i < tabObjetsListe.length; i++)
			{
			if(tabObjetsListe[i].nomListe == listeId)
				{
				tabObjetsListe[i].actionClic();
				}
			}
		}
	blocConteneurCache('bandeau',0);
	},
actionDessus: function (oId)
	{
	var tmpTdImgId;
	var objet=document.getElementById(oId);
	while(objet && objet.tagName.toLowerCase() != 'td')
			{
			objet = objet.parentNode;
			if(objet.id)
				{
				oId=objet.id;
				}
			}
	var modele = new RegExp ("^lmTd");
	if(modele.test(oId))
		{
		tmpTdImgId=oId;
		oId=oId.replace(modele,'lm2Td');
		}
	else
		{
		modele = new RegExp ("^lm2Td");
		if(modele.test(oId))
			{
			tmpTdImgId=oId.replace(modele,'lmTd');
			}
		}
	var tmpAId=oId.replace(/^lm[0-9]+Td/,'lmA');
	document.getElementById(oId).className='dessusHover';
	document.getElementById(tmpTdImgId).className='dessusHover';
	if(document.getElementById(tmpAId))
		{
		this.url=document.getElementById(tmpAId).href;
		}
	else
		{
		this.url='';
		}
	if(this.oldDesssus && this.oldDesssus != oId)
		{
		var tmpOldTdImgId=this.oldDesssus.replace(/^lm[0-9]+Td/,'lmTd');
		document.getElementById(this.oldDesssus).className='dessus';
		document.getElementById(tmpOldTdImgId).className='dessus';
		}
	this.oldDesssus=oId;
	},
/*actionDessus: function (oId)
	{
	var modele = new RegExp ("^img[0-9]+"+ this.nomListe);
	if(modele.test(oId))
		{
		oId=oId.replace(/^img/,'lmTd');
		}
	modele = new RegExp ("^[a-z]*[0-9]+[a-z]+[0-9]+" + repVirt + "[0-9]+");
	if(modele.test(oId))
		{
		oId=document.getElementById(oId).parentNode.id;			
		}
	modele = new RegExp ("^lmA[0-9]+"+ this.nomListe);
	if(modele.test(oId))
		{
		oId=oId.replace(/^lmA/,'lmTd');
		}
	var tmpTdImgId=oId.replace(/^lm[0-9]+Td/,'lmTd');				//cellule image à gauche
	if(tmpTdImgId == oId)
		{
		oId=oId.replace(/^lm/,'lm2');
		}
	document.getElementById(oId).className='dessusHover';
	document.getElementById(tmpTdImgId).className='dessusHover';
	var tmpAId=oId.replace(/^lm[0-9]+Td/,'lmA');				//url
	if(document.getElementById(tmpAId))
		{
		this.url=document.getElementById(tmpAId).href;
		}
	else
		{
		this.url='';
		}
	if(this.oldDesssus && this.oldDesssus != oId)
		{
		var tmpOldTdImgId=this.oldDesssus.replace(/^lm[0-9]+Td/,'lmTd');
		document.getElementById(this.oldDesssus).className='dessus';
		document.getElementById(tmpOldTdImgId).className='dessus';
		}
	this.oldDesssus=oId;
	},*/
envoiGet: function (url)
	{
	var modeleEspace= new RegExp("/espace","g");
	var modelePara =  new RegExp ("[?]");
	var modeleUrlRew =  new RegExp ("\.html$");
	gUrlHttpRw = "";
	if (modelePara.test(url))
		{
		gUrlHttp =url + '&reqAjax=true';
		}
	else
		{
		gUrlHttp =url + '?reqAjax=true';
		}
	if(modeleUrlRew.test(url))
		{
		var tmpMod='/' + repVirt + '/';
		gUrlHttpRw = url.replace(tmpMod,'/' + repVirt + 'A/');
		}
	var requete = objetAjax();
	if(requete)
		{
		if(!modeleEspace.test(window.location.href))
			{
			requeteAjaxL(affectation);
			}
		else
			{
			requeteAjaxL(affectationEspace);
			}

		}
	else
		{
		window.location.href = url;
		}
	},

razSel: function ()
	{
	if(document.getElementById(this.oldDesssus))
		{
		var tmpOldTdImgId=this.oldDesssus.replace(/^lm[0-9]+Td/,'lmTd');
		document.getElementById(this.oldDesssus).className='dessus';
		document.getElementById(tmpOldTdImgId).className='dessus';
		}
	},
actionClic: function ()
	{
	if(this.url)
		{
		this.envoiGet(this.url);
		}
	},
actionRaz: function ()
	{
	if(this.oldDesssus)
		{
		if(document.getElementById(this.oldDesssus))
			{
			tmpOldTdImgId=this.oldDesssus.replace(/^lm.+Td/,'lmTd');
			document.getElementById(this.oldDesssus).className='dessus';
			document.getElementById(tmpOldTdImgId).className='dessus';
			}
		}
	this.oldDesssus="";
	},

get_nom: function ()
	{
	return this.nomListe ;
	}
}
//--------------------------------------------------------------------------------------------- fin classe liste

//-------------------------------------------- classe lienAsync -------------------------------------------------
oLienAsync = function (modeleLien)
{
var args= oLienAsync.arguments;
this.modeleLien=modeleLien;
//-------------------------------attributs
var existe=false;
for(var i = 0; i < tabObjetsLienAsync.length; i++)
	{
	if(tabObjetsLienAsync[i].modeleLien == this.modeleLien)
		{
		existe = true;break;
		}
	}
if(existe)
	{
	tabObjetsLienAsync[i]=this;
	}
else
	{
	tabObjetsLienAsync.push(this);
	}
//----------------------------initialisation
this.initLienAsync();
}

//---------------------------------fonctions publiques
oLienAsync.prototype = 
{
initLienAsync: function ()
	{
	var modele = new RegExp ("^" + this.modeleLien);
	tousLesLiens=document.getElementsByTagName('a');
	for(var i = 0; i <  tousLesLiens.length ; i ++)
		{
		var ceLien=tousLesLiens[i].id;
		if(modele.test(ceLien))
			{
			ajoutEv(ceLien, 'click',this.asyncEv);
			ajoutEv(ceLien, 'click', arretAction);
			}
		}
	},
stopLiens: function ()
	{
	var modele = new RegExp ("^" + this.modeleLien);
	tousLesLiens=document.getElementsByTagName('a');
	for(var i = 0; i <  tousLesLiens.length ; i ++)
		{
		var ceLien=tousLesLiens[i].id;
		if(modele.test(ceLien))
			{
			enleveEv(ceLien, 'click',this.asyncEv);
			enleveEv(ceLien, 'click', arretAction);
			}
		}
	},
	
asyncEv: function (event)
	{
	var target = event.target || event.srcElement;
	var cibleId = target.id;
	if(cibleId)
		{
		var objet=document.getElementById(cibleId);
		 while(objet && objet.tagName.toLowerCase() != 'a')
			{
			objet = objet.parentNode;
			cibleId=objet.id;
			}
		}
	for(var i = 0; i < tabObjetsLienAsync.length; i++)
		{
		if(tabObjetsLienAsync[i])
			{
			var modele = new RegExp ("^" + tabObjetsLienAsync[i].modeleLien);
			if(modele.test(cibleId))
				{
				tabObjetsLienAsync[i].envoiGet(cibleId);
				}
			}
		}
	},

envoiGet: function (idLien)
	{
	var url= document.getElementById(idLien).href;
	var modeleCible = new RegExp ("cible_");
	var modeleUrlRew =  new RegExp ("\.html$");
	if (modeleCible.test(idLien))
		{
		if(modeleUrlRew.test(url))
			{
			var modelePAram = new RegExp(repVirt + "(A?)/([a-zA-Z]+)\-?([0-9]+)?/([a-z]+)/(.+)\-([a-z]+).html([?].*)?$");
			if(modelePAram.test(url))
				{
				url = url.replace(modelePAram,'$2.php?$1$1$6=$5&lang=$4&pmenu=$3');
				}
			else
				{
				modelePAram= new RegExp(repVirt + "(A?)/([a-zA-Z]+)\-?([0-9]+)?/([a-z]+)/.+\-([0-9]+).html([?].*)?$");
				url = url.replace(modelePAram,'$2.php?$1$1identifiantId=$5&lang=$4&pmenu=$3');
				}
			url = url.replace("php\.\?A",'php.?reqAjax=true&');
			}
		window.open(url,'fenetre' + idLien,'resizable=yes, location=yes, width=700, height=450, top=10, left=10, status=yes, scrollbars=yes, menubar=yes, toolbar=yes');
		}
	else
		{
		var modeleEspace= new RegExp("/espace","g");
		var modelePara =  new RegExp ("[?]");
		gUrlHttpRw = "";
		if (modelePara.test(url))
			{
			gUrlHttp =url + '&reqAjax=true';
			}
		else
			{
			gUrlHttp =url + '?reqAjax=true';
			}
		if(modeleUrlRew.test(url))
			{
			var tmpMod='/' + repVirt + '/';
			gUrlHttpRw = url.replace(tmpMod,'/' + repVirt + 'A/');
			}
		var requete = objetAjax();
		if(requete)
			{
			if(!modeleEspace.test(window.location.href))
				{
				requeteAjaxL(affectation);
				}
			else
				{
				requeteAjaxL(affectationEspace);
				}

			}
		else
			{
			window.location.href = url;
			}
		}
	},

get_nom: function ()
	{
	return this.modeleLien ;
	}
}
//--------------------------------------------------------------------------------------------- fin classe lienAsync

function trim(texte)
	{
	if((texte))
		{
		var modele=/^ *(.*[^ ]) *$/g;
		texte=texte.replace(modele,'$1');
		}
	return texte;
	}
function ajoutBalise(balise,conteneurId)	//************* ajout Balise
	{
	args=ajoutBalise.arguments;
	if(!args[2])
		{
		nouvelid=nouvid(balise);
		}
	else
		{
		nouvelid=args[2];
		}
	var oBalise=document.createElement(balise);
	oBalise.setAttribute("id",nouvelid);
	var oCont=document.getElementById(conteneurId);
	oCont.appendChild(oBalise);
	return nouvelid;
	}

function insertBalise(balise,conteneurId,apres,refId)	//************* insert Balise
	{
	args=insertBalise.arguments;
	if(!args[4])
		{
		nouvelid=nouvid(balise);
		}
	else
		{
		nouvelid=args[4];
		}
	var oBalise=document.createElement(balise);
	oBalise.setAttribute('id',nouvelid);
	var oCont=document.getElementById(conteneurId);
	if(!apres)
		{
		oCont.insertBefore(oBalise,document.getElementById(refId));
		}
	else
		{
		oCont.appendChild(oBalise);		// ajoute à la fin
		}
	return nouvelid;
	}
function effaceBalise(id)	//************* efface Balise
	{
	var oId=document.getElementById(id);
	oId.parentNode.removeChild(oId);
	}
function ajoutTexte(id,texte)	//************* ajout Texte
	{
	args=ajoutTexte.arguments;
	var oTexte=document.createTextNode(texte);
	var oCont=document.getElementById(conteneur);
	oCont.appendChild(oTexte);
	}
function nouvid(tId)	//************* recherche id unique
	{
	var ti=1;
	var nid=tId+ti;
	while(document.getElementById(nid))
		{
		ti++;
		nid=tId+ti;
		}
	return nid;
	}
function rechLigneSuivante(tdId)
	{
	conteneurTBody=document.getElementById(tdId).parentNode.parentNode;
	var nbId=conteneurTBody.childNodes.length;
	var tmpLigneId="";
	var tmpSuivant=false;
	var ligneSuivante='';
	for(i = 0; i < nbId; i++)
		{
		if(tmpLigneId=conteneurTBody.childNodes[i].id)
			{
			modele=/^tr.*/i;
			if (modele.test(tmpLigneId))
				{
				if(tmpSuivant)
					{
					ligneSuivante=tmpLigneId;
					break;
					}
				if(document.getElementById(tdId).parentNode.id==tmpLigneId)
					{
					tmpSuivant=true;
					}
				}
			}
		}
	return ligneSuivante;
	}
function enrcontexte(tableau)
	{
	return document.getElementById(tableau).innerHTML;
	}
