	var NAVIGATEUR_MOZILLA = "Netscape";
	var NAVIGATEUR_INTERNET_EXPLORER = "Microsoft Internet Explorer";
	
	var racineNewsel = "";
	var racineWeb = "";
	var langage = "fr";
	var js_clientLeger_message_suppression = "";
	var js_ListeActeur_message_ajoutDroit = "";
	var js_ListeActeur_message_suppressionDroit = "";
	var js_commun_message_selection_ligne = "";
	var js_message_confirmation_changer_acces = "";
	var js_message_confirmation_changer_statut = "";

	var regInt = new RegExp("^(\\d+)?$", "i");
	var regDouble = new RegExp("^\\d+(\.?\\d+)?$", "i");
	var regDate = new RegExp("^([0-3][0-9])\\/([0-1][0-9])\\/([0-9]{4})$", "i");
	var regTelephoneBritannique = new RegExp("^\\d{5} \\d{6}$", "i");
	var regTelephoneFrancais = new RegExp("^0\\d{1} \\d{2} \\d{2} \\d{2} \\d{2}$", "i");
	var regEmail = new RegExp("^[a-z0-9._-]+@[a-z0-9.-]{2,}[.][a-z]{2,3}$", "i");
	

	function OnChangeimage(imgname, imgsrc){
		document.images[imgname].src = imgsrc;
	}
	
	function changeCursorelement(element, stylecursor)
	{
		var elementContainerDuLayout = document.getElementById(element);
		elementContainerDuLayout.style.cursor = stylecursor;
	}
		
	function montrerDivHidden()
	{
		cacherSelect();
		waitingWindow();
		var elementContainerDuLayout = document.getElementById("divHidden");
		elementContainerDuLayout.style.display = "block";
		elementContainerDuLayout.style.cursor = "wait";
	}
	
	function cacherDivHidden()
	{
		var elementContainerDuLayout = document.getElementById("divHidden");
		elementContainerDuLayout.style.display = "none";
		elementContainerDuLayout.style.cursor = "default";
		montrerSelect();
	}

	function OnSubmit(action)
	{
		montrerDivHidden();
		document.forms[0].target = "_self";
		document.forms[0].actionType.value = action;
		document.forms[0].submit();
	}

	function OnSubmitWithAjax(action){
		document.forms[0].target = "_self";
		document.forms[0].actionType.value = action;
		//document.forms[0].submit();
		ajaxAnywhere.submitAJAX();
	}
	
	/**
	* Fonction qui permet de passer en parametre des variables
	*/
	function OnSubmitWithParameter(action, parameterAndValue){
		montrerDivHidden();
		document.forms[0].target = "_self";
		document.forms[0].actionType.value = action;
		document.forms[0].action = netoyerUrl(document.forms[0].action)+"?"+parameterAndValue;
		document.forms[0].submit();
	}
	
		
	/**
	* Fonction qui permet de passer en parametre des variables
	*/
	function OnSubmitWithParameterAndAjax(action, parameterAndValue){
		document.forms[0].target = "_self";
		document.forms[0].actionType.value = action;
		document.forms[0].action = netoyerUrl(document.forms[0].action)+"?"+parameterAndValue;
		//document.forms[0].submit();
		ajaxAnywhere.submitAJAX();
	}
	
	/**
	* Fonction qui permet de passer en parametre des variables
	*/
	function OnSubmitWithParameterAndTarget(action, parameterAndValue, target){
		if(target != "_blank")
			montrerDivHidden();
		document.forms[0].target = target;
		document.forms[0].actionType.value = action;
		
		document.forms[0].action = netoyerUrl(document.forms[0].action)+"?"+parameterAndValue;
		document.forms[0].submit();
	}
	
	function netoyerUrl(url)
	{
		var urlAction = document.forms[0].action;
		index = urlAction.indexOf("?");
		if(index != -1)
		{
			urlAction = urlAction.substring(0,index);
			return urlAction;
		}
		
		return url;
	}
	
	/**
	* Fonction permettant une redirection dans la m?me fen?tre
	*/
	function setAdresseOnSubmit(nomFormulaire, adresse)
	{
		montrerDivHidden();
		document.forms[nomFormulaire].target = "_self";
		document.forms[nomFormulaire].action = adresse;
		document.forms[nomFormulaire].submit();
	}
	
	/**
	* Fonction permettant une redirection dans la m?me fen?tre
	*/
	function OnSubmitForm(adresse)
	{
		montrerDivHidden();
		document.forms[0].target = "_self";
		document.forms[0].action = adresse;
		document.forms[0].actionType.value = '';
		document.forms[0].submit();
	}
	
	function OnSubmitFormAndTarget(adresse, target)
	{
		if(target != "_blank")
			montrerDivHidden();
		document.forms[0].target = target;
		document.forms[0].action = adresse;
		document.forms[0].actionType.value = '';
		document.forms[0].submit();
	}
	
	/**
	* Fonction permettant une redirection dans la m?me fen?tre
	*/
	function OnSubmitFormWithActionType(adresse, actionType)
	{
		montrerDivHidden();
		document.forms[0].target = "_self";
		document.forms[0].action = adresse;
		document.forms[0].actionType.value = actionType;
		document.forms[0].submit();
	}

	/**
	* Fonction permettant une redirection dans une cible diff?rente
	*/
	function OnSubmitAndTarget(nomFormulaire, adresse, target)
	{
		if(target != "_blank")
			montrerDivHidden();
		document.forms[nomFormulaire].action = adresse;
		document.forms[nomFormulaire].target = target;
		document.forms[nomFormulaire].submit();
	}
	
	function initChamp(nom, valeur)
	{
		document.forms[0].elements[nom].value = valeur;
	}

	/**
	* Cette fonction permet de mettre un d?trompeur dans un champ utilis?
	* pour repr?senter une date.
	*/
	function initChampDate(objet)
	{
		if(objet.value == "jj/mm/aaaa")
		{
			objet.style.color = "black";
			objet.value = "";
		}
		else
		{
			if(objet.value == "")
			{
				objet.style.color = "gray";
				objet.value = "jj/mm/aaaa";
			}
		}
	}
	
	/**
	* Convertie une date du format JJ/MM/AAAA en date JavaScript
	*/
	function stringToDate(sDate)
	{  
		var iDay = sDate.substring(0,2);
		var iMonth = sDate.substring(3,5);
		var iYear = sDate.substring(6);
		iDay = iDay*1;
		iMonth = (iMonth*1)-1;
		iYear = iYear*1;
		var rDate = new Date(iYear,iMonth,iDay,0,0);
		
		return(rDate);
	}
	
	/**
	* Cette fonction permet d'ouvrir un popup centr? sur l'?cran
	*/
	function PopupCentrer(page,largeur,hauteur,options) {
	  var top=(screen.height-hauteur)/2;
	  var left=(screen.width-largeur)/2;
	  window.open(page,"","top="+top+",left="+left+",width="+largeur+",height="+hauteur+","+options);
	}
	
	/**
	* Cette fonction permet d'afficher une fen?tre de confirmation
	*/
	function confirmer(message, action, url, parametre)
	{
		if(confirm(message))
		{
			if(url == '')
				OnSubmitWithParameter(action, parametre);	
			else
				setAdresseOnSubmit(url);
		}
		else
			return false;
		
	}
	
	function confirmerWithAjax(message, actionType)
	{
		if(confirm(message))
			OnSubmitWithAjax(actionType);	
		else
			return false;
		
	}
	
	/**
	* Cette fonction permet de m?moriser l'?tat d'une case ? cocher
	* ? l'aide d'un champ cacher
	*/
	function changerValeurCheck(objet, champCache)
	{
		if(objet.checked)
			document.forms[objet.form.name].elements[champCache].value = "true";
		else
			document.forms[objet.form.name].elements[champCache].value = "false";
	}
	
	function lienAncre(objet, prefixe)
	{ 
		window.location.href = prefixe+objet.value;
	}
	
	function hrefJavascript(lien)
	{
		window.location.href = lien;
	}
	
	function montrerNews(idBouton, id)
	{

		for(var i = 0; i < document.getElementsByTagName("TABLE").length; i++)
		{
			var elt = document.getElementsByTagName("TABLE")[i];
			if(elt.id.indexOf("news_",0) != -1)
			{
				document.getElementById(elt.id).style.display = 'none';	
			}
			
			if(elt.id.indexOf("news_bouton_",0) != -1)
			{
				document.getElementById(elt.id).style.display = 'block';	
			}
		}
		
		document.getElementById(idBouton).style.display = 'none';
		document.getElementById(id).style.display = 'block';	
	}

	/**
	*
	*/
	function changerURLPageStatic(urlImageOffre)
	{
		var eltContent = document.getElementById("content");

		eltBody = eltContent.childNodes[0];
		
		
		//Transformation des liens
		var elementsHref = eltBody.getElementsByTagName("A");
		for(i = 0; i < elementsHref.length; i++)
		{
			var eltHREF = elementsHref[i];
			var urlAModifier = eltHREF.href;
			var urlRacineValide = eltHREF.name;
			if(urlRacineValide)
			{
				var index = urlAModifier.lastIndexOf("/");
				var index2 = urlAModifier.indexOf("#");
				if(index != -1 && index2 == -1)
				{
					urlAModifier = urlRacineValide+urlAModifier.substring(index);
					//eltHREF.href = urlAModifier;
								
					if(eltHREF.target != "_blank" && exceptionURL(eltHREF.href))
					{		
						if(urlImageOffre != "")
							eltHREF.href = racineNewsel+"/afficherPageStatic.do?url="+urlAModifier+"&typeURL=normal&urlImageOffreEnCours="+urlImageOffre;
						else
							eltHREF.href = racineNewsel+"/afficherPageStatic.do?url="+urlAModifier+"&typeURL=normal";
					}
					else
					{
						eltHREF.href = urlAModifier;
					}
				}		
			}
		}
		
		//Transformation des images
		var elementsImage = eltBody.getElementsByTagName("img");
		for(var i = 0; i < elementsImage.length; i++)
		{
			var eltIMG = elementsImage[i];
			var urlAModifier = eltIMG.src;
			var urlRacineValide = "images";
			//if(urlRacineValide)
			{
				var index = urlAModifier.lastIndexOf("/");
				
				if(index != -1 && urlAModifier.indexOf(urlRacineValide+"/") != -1)
				{
					urlAModifier = racineNewsel+"/"+urlRacineValide+"/"+urlAModifier.substring(index+1);
					eltIMG.src = urlAModifier;
				}	
			}
		}
		
		//Transformation des flash
		/*var elementsFlash = eltBody.getElementsByTagName("embed");
		for(var i = 0; i < elementsFlash.length; i++)
		{
			var eltFlash = elementsFlash[i];
			var urlAModifier = eltFlash.src;
			var index = urlAModifier.lastIndexOf("/");
			if(index != -1)
			{
				urlAModifier = racineWeb+"/"+eltFlash.name+"/"+urlAModifier.substring(index+1);
				eltFlash.src = urlAModifier;
			}
			else
			{
				eltFlash.src = racineWeb+"/"+eltFlash.name+"/"+urlAModifier;
			}
		}*/
	}
	
	function exceptionURL(url)
	{

		/*var index = url.lastIndexOf("/")+1;
		url = url.substring(index,url.length); 
		var reg=new RegExp("[.]+", "g");
		var tableau=url.split(reg);

		if(tableau[1] == "html")
			return true;
			
		if(tableau[1] == "htm")
			return true;*/
			
		var index = url.lastIndexOf(".html");
		if(index != -1)
			return true;
		
		index = url.lastIndexOf(".htm");
		if(index != -1)
			return true;

		return false;
	}
	
	//function replace(s, t, u) {
	  /*
	  **  Replace a token in a string
	  **    s  string to be processed
	  **    t  token to be found and removed
	  **    u  token to be inserted
	  **  returns new String
	  */
	/*  i = s.indexOf(t);
	  r = "";
	  if (i == -1) return s;
	  r += s.substring(0,i) + u;
	  if ( i + t.length < s.length)
	    r += replace(s.substring(i + t.length, s.length), t, u);
	  return r;
	  }*/

	var lg = "";
	function mettreServiceWebDansChamp(tailleTotalChamps)
	{
		if(document.forms[0].elements["referenceTechniqueVantive"])
		{
			var objet = document.forms[0].elements["referenceTechniqueVantive"];
			lg = "fr/";
			changerChamps(objet, "urlFrancais", "urlFrancaisServiceWeb", tailleTotalChamps);
			lg = "en/";
			changerChamps(objet, "urlAnglais", "urlAnglaisServiceWeb", tailleTotalChamps);
		}
		else if(document.forms[0].elements["typeDocCachee"])
		{
			document.forms[0].elements['typeDocCachee'].selectedIndex = document.forms[0].elements['typeDoc'].selectedIndex;
			var objet = document.forms[0].elements["typeDocCachee"];
			changerChamps(objet, "urlDoc", "urlDocBis", tailleTotalChamps);
		}
	}
	
	function changerChamps(objet, champ, champbis, tailleTotalChamps)
	{
		var url = document.forms[0].elements[champbis];
		var urlBis = document.forms[0].elements[champ];
		
		var nouvelleValeur = objet.value+"/"+lg;
		
		if(objet.value == "-1")
			nouvelleValeur = "";
		
		url.value = nouvelleValeur;
		var largeur = 8*url.value.length+3;
		url.style.width = largeur;
		urlBis.style.width = tailleTotalChamps - largeur;
		
	}
	
	function getWidth(elt)
	{
		var largeur = elt.style.width;
		var index = largeur.indexOf("px");
		return largeur.substring(0, index); 
	}
	
	function egaliserListes(liste1, liste2){
	
		liste1 = document.getElementById(liste1);
		liste2 = document.getElementById(liste2);
		liste2.options.selectedIndex = liste1.options.selectedIndex;
	
	}
	
	function verifierIntegrite(url)
	{
		OnSubmitForm(racineNewsel+'/verifierIntegriteDonnee.do?adresse='+url);
	}
	
	function maxlength(champDeTexte, nombreMax, champAChanger)
	{

		var txt=champDeTexte.value;
		var nb=txt.length;
		if (nb>=nombreMax) { 
			champDeTexte.value=txt.substring(0,nombreMax-1);
			//if(champAChanger != "")
			//	document.getElementById(champAChanger).innerHTML = 0;
		}
		else
		{
			//if(champAChanger != "")
			//	document.getElementById(champAChanger).innerHTML = nombreMax - 1 - nb;
		}
	}
	
	/**
	* Cette fonction permet d'afficher un message de confirmation pour la suppression d'un client l?ger dans le LDAP
	*/
	function supprimerUtilisateurDuLDAP(actionType)
	{
		var login = document.forms[0].elements['login'];

		var bool = false;
		if(login.length)
		{
			for(i = 0; i < login.length; i++)
			{
				if(login[i].checked)
				{
					bool = true;
					break;
				}
			}
			
			if(!bool)
				return false
		}
		else
			bool = true;
			
		if(confirm(js_clientLeger_message_suppression))
		{
			document.forms[0].actionType.value = actionType;

			OnSubmit(actionType);
		}
		else
			return false;
	}
	
	 function isDate(d)
	 {
	     // Cette fonction permet de v?rifier la validit? d'une date au format jj/mm/aa ou jj/mm/aaaa
	     // Par Romuald
	     
	     if (d == "") // si la variable est vide on retourne faux
	         return false;
	     
	     e = new RegExp("^[0-9]{1,2}\/[0-9]{1,2}\/([0-9]{4})$");
	     
	     if (!e.test(d)) // On teste l'expression r?guli?re pour valider la forme de la date
	         return false; // Si pas bon, retourne faux
	  
	     // On s?pare la date en 3 variables pour v?rification, parseInt() converti du texte en entier
	     if(langage == "en")
	     {
	    	 m = parseInt(d.split("/")[0], 10); // jour
	    	 j = parseInt(d.split("/")[1], 10); // mois
	     }
	     else
	     {
	     	j = parseInt(d.split("/")[0], 10); // jour
	     	m = parseInt(d.split("/")[1], 10); // mois
	     }
	     a = parseInt(d.split("/")[2], 10); // ann?e
	  
	     // Si l'ann?e n'est compos?e que de 2 chiffres on compl?te automatiquement
	     if (a < 1000) {
	         if (a < 89)    a+=2000; // Si a < 89 alors on ajoute 2000 sinon on ajoute 1900
	         else a+=1900;
	     }
	  
	     // D?finition du dernier jour de f?vrier
	     // Ann?e bissextile si annn?e divisible par 4 et que ce n'est pas un si?cle, ou bien si divisible par 400
	     if (a%4 == 0 && a%100 !=0 || a%400 == 0) fev = 29;
	     else fev = 28;
	  
	     // Nombre de jours pour chaque mois
	     nbJours = new Array(31,fev,31,30,31,30,31,31,30,31,30,31);
	  
	     // Enfin, retourne vrai si le jour est bien entre 1 et le bon nombre de jours, idem pour les mois, sinon retourn faux
	     return ( m >= 1 && m <=12 && j >= 1 && j <= nbJours[m-1] );
	 }
	 
	 function confirmationModificationFlagAdministrateur(actionType, type)
	 {
	 	var message = "";
	 	if(type == 'ajout')
	 		message = js_ListeActeur_message_ajoutDroit;
	 	else
	 		message = js_ListeActeur_message_suppressionDroit;
	 	
	 	if(confirm(message))
		{
			document.forms[0].actionType.value = actionType;

			OnSubmitWithAjax(actionType);
		}
		else
			return false;
	 }
	 
	 function alertAfficherErreurSelection(nomCaseACocher)
	 {
	 	var caseACocher = document.forms[0].elements[nomCaseACocher];

	 	if(caseACocher.length)
	 	{
	 		for(i = 0; i < caseACocher.length; i++)
	 		{
	 			if(caseACocher[i].checked)
	 				return true
	 		}
	 	}
	 	else
	 	{
	 		if(caseACocher.checked)
	 			return true
	 	}
	 	
		alert(js_commun_message_selection_ligne);
	 	return false;
	 }
	 
	 /**
	* Fonction permettant de r?cup?rer le label d'un select.
	* Param?tre : objet de type select
	*/
	function getSelectLabelWithObject(elt)
	{
		if(elt.type == "select-one")
		{
			var index = elt.selectedIndex;
			var coef = 1;

			if(navigator.appName == NAVIGATEUR_INTERNET_EXPLORER)
	 			coef = 2;

			var resultat = elt.childNodes[index*coef].text;

			if(!resultat)
				resultat = elt.childNodes[(index*coef)+1].text;
				
			return resultat;
		}
		else
		{
			alert("This object is not select type.");
		}
		
		return "undefined";
	}
	
	/**
	* Fonction permettant de r?cup?rer le label d'un select.
	* Param?tre : id or name of select
	*/
	function getSelectLabelWithId(id)
	{
		var elt = document.getElementById(id);
		
		if(!elt)
			elt = document.getElementsByName(id)[0];

		if(elt)
		{
			return getSelectLabelWithObject(elt);
		}
		else
		{
			alert("This object does not exist.");
		}
		
		return "undefined";
	}
	
	/**
	* Fonction permettant de r?cup?rer les ?l?ments d'une classe CSS
	* Parametre : object
	*/
	function getCssValueWithObject(object,elementCSS)
	{
		var tag = object;
		var value= tag.style[elementCSS];
		if(value==null || value=='' || value=='undefined'){
		var aClass = tag.className;
		var cssRules = 'rules';
		for (var sSheet=0; sSheet < document.styleSheets.length; sSheet++){
		  for (var rule=0; rule < document.styleSheets[sSheet][cssRules].length; rule++) {
		    var currentClass = document.styleSheets[sSheet][cssRules][rule].selectorText.substring(1);
		    if (currentClass == aClass) {
		      return document.styleSheets[sSheet][cssRules][rule].style[elementCSS];
		    }
		  }
		}
		}
		return  value;
	}	
	
	/**
	* Fonction permettant de r?cup?rer les ?l?ments d'une classe CSS
	* Parametre : id
	*/
	function getCssValueWithId(id, elementCSS)
	{
		return getCssValueWithObject(document.all(id), elementCSS);
	}	
	
	function getAllElementOfCSS(elt)
	{
		var css = new Css();

		var aClass = elt.className;
		var cssRules = 'rules';
		for (var sSheet=0; sSheet < document.styleSheets.length; sSheet++)
		{
			for (var rule=0; rule < document.styleSheets[sSheet][cssRules].length; rule++)
			{
			    var currentClass = document.styleSheets[sSheet][cssRules][rule].selectorText.substring(1);
			    if (currentClass == aClass)
			    {
			    	css.color = document.styleSheets[sSheet][cssRules][rule].style['color'];
			    	css.height = document.styleSheets[sSheet][cssRules][rule].style['height'];
			    	css.width = document.styleSheets[sSheet][cssRules][rule].style['width'];
			    	css.fontFamily = document.styleSheets[sSheet][cssRules][rule].style['fontFamily'];
			    	css.fontSize = document.styleSheets[sSheet][cssRules][rule].style['fontSize'];
			    	css.paddingLeft = document.styleSheets[sSheet][cssRules][rule].style['paddingLeft'];
			    	css.paddingRight = document.styleSheets[sSheet][cssRules][rule].style['paddingRight'];
			    	css.paddingTop = document.styleSheets[sSheet][cssRules][rule].style['paddingTop'];
			    	css.paddingBottom = document.styleSheets[sSheet][cssRules][rule].style['paddingBottom'];
			    	css.position = document.styleSheets[sSheet][cssRules][rule].style['position'];
			    	css.left = document.styleSheets[sSheet][cssRules][rule].style['left'];
			    	css.right = document.styleSheets[sSheet][cssRules][rule].style['right'];
			    	css.bottom = document.styleSheets[sSheet][cssRules][rule].style['bottom'];
			    	css.top = document.styleSheets[sSheet][cssRules][rule].style['top'];
			    }
			}
		}
	
		return css;
	}
	
	function stringToArray(chaine, caractereSeparateur)
	{
		return chaine.split(new RegExp(caractereSeparateur, "g"));
	}

	
	function Css()
	{
      this.color = "";
      this.height = "";
      this.width = "";
      this.fontFamily = "";
      this.fontSize = "";
      this.paddingLeft = "";
      this.paddingRight = "";
      this.paddingTop = "";
      this.paddingBottom = "";
      this.position = "";
      this.left = "";
      this.right = "";
      this.top = "";
      this.bottom = "";
   }
   
   function changerAcces(actionType, idOffre, typeAction)
	{
		if(confirm(js_message_confirmation_changer_acces))
		{
			document.forms[0].actionType.value = actionType;
			document.forms[0].elements["idOffre"].value = idOffre;
			document.forms[0].elements["typeAction"].value = typeAction;
			
			ajaxAnywhere.submitAJAX();
		}
		else
			return false;
	}
	
	function changerAccesAuForum(actionType, login, typeAction)
	{
		if(confirm(js_message_confirmation_changer_statut))
		{
			document.forms[0].actionType.value = actionType;
			document.forms[0].elements["loginCache"].value = login;
			document.forms[0].elements["typeAction"].value = typeAction;
			
			ajaxAnywhere.submitAJAX();
		}
		else
			return false;
	}
	
	
	
	
	
	
	
	