// ************************************
// *** Code appartenant à evoweb.fr ***
// ************************************

var transparenceFondDHTML = .7;

var browserName = navigator.appName;
var browserVer = parseInt(navigator.appVersion);
var sauve_contenu = new Array();

var Table_formulaire = new Array();
var Table_formulaire_couleurOn = "#B34741";
var Table_formulaire_couleurOff = "#c1c1c1";

/* --------------------------------
 * 	--- Gestion des formulaires ---
    -------------------------------*/

// Ajoute le contenu par défaut à un input pour effacement
function form_AjoutContenuVolatil(element) {
	if (element) {
		Table_formulaire[element.id] = element.value;
		element.style.color = Table_formulaire_couleurOff;
		addListener(element,"focus",function(e){if (!e) e = window.event;var lequel = getTarget(e);if (lequel.value == Table_formulaire[lequel.id]){lequel.style.color=Table_formulaire_couleurOn;lequel.value="";}});
		addListener(element,"blur",function(e){if (!e) e = window.event;var lequel = getTarget(e);if (lequel.value.length == 0){lequel.style.color=Table_formulaire_couleurOff;lequel.value=Table_formulaire[lequel.id];}});
	}
}

function form_ResetContenuVolatil(element) {
	if (element) {
		element.style.color = Table_formulaire_couleurOff;
		element.value = Table_formulaire[element.id];
	}
}

/* -------------------------------
	--- Gestion des évènements ---
	------------------------------ */

// Ajoute un évènement à un élément
function addListener(element, baseName, handler) {
	if (element.addEventListener)
		element.addEventListener(baseName, handler, false);
	else if (element.attachEvent)
		element.attachEvent('on'+baseName, handler);
}

// Enlève un évènement à un élément
function removeListener(element,baseName, handler) {
	if(element.removeEventListener)
		element.removeEventListener(baseName,handler,false);
	else if (element.detachEvent) {
		element.detachEvent('on'+baseName, handler);
	}
}

//Rercherche dans le DOM pour moteur Mozilla
function containsDOM (container, containee) {
	var isParent = false;
	do {
		if ((isParent = container == containee))
			break;
		containee = containee.parentNode;
	}
	while (containee != null);
	return isParent;
}

// On cherche si l'élément envoyé à l'entrée est enfant d'un élément.
function checkMouseEnter (element, evt) {
	if (element.contains && evt.fromElement) {
		return !element.contains(evt.fromElement);
	}
	else if (evt.relatedTarget) {
		return !containsDOM(element, evt.relatedTarget);
	}
}

//On cherche si l'élément envoyé à la sortie est enfant d'un élément.
function checkMouseLeave (element, evt) {
	if (element.contains && evt.toElement) {
		return !element.contains(evt.toElement);
	}
	else if (evt.relatedTarget) {
		return !containsDOM(element, evt.relatedTarget);
	}
}

// On récupère l'élément qui a fait l'action
function getTarget(e) {
	if (e.currentTarget)
		return e.currentTarget;
	else if (e.srcElement)
		return e.srcElement;
	else
		return null;
}

// On annule la propagation de l'évènement
function cancelBubble(e) {
	if (!e) e = window.event;
	if (browserName == "Microsoft Internet Explorer" & browserVer >= 4) {
		window.event.returnValue= false;
	} else {
		e.preventDefault();
	}
}

// Remplacement de la fonction getElementsByName pour IE
document.getElementsByName = function(tag, name) {
		var elem = document.getElementsByTagName(tag);
		var arr = new Array();
		for(i = 0,iarr = 0; i < elem.length; i++) {
				att = elem[i].getAttribute("name");
				if(att == name) {
							arr[iarr] = elem[i];
							iarr++;
				}
		}
		return arr;
}

// Recherche des éléments qui ont une class spécifique
function getElementsByStyleClass (className) {
	var all = document.all ? document.all : document.getElementsByTagName('*');
	var elements = new Array();
	for (var e = 0; e < all.length; e++)
		if (all[e].className == className)
			elements[elements.length] = all[e];
	return elements;
}

/* --------------------------
	--- Diverses fonctions ---
	-------------------------- */

// Récupère le style d'un objet
function getStyle(element,style) {
	if (browserName == "Microsoft Internet Explorer") {
		switch(style){
			case "marginBottom":style="margin-bottom";break;
			case "marginTop":style="margin-top";break;
		}
		var lestyle = element.currentStyle[style];
		if ((lestyle == "auto") || (lestyle == undefined)) lestyle = 0;
	} else {
		var lestyle = getComputedStyle(element,null)[style];
	}
	return parseInt(lestyle);
}


// Ajout d'une page en favoris
function ajoutFavoris(e){
	if (browserName == "Microsoft Internet Explorer" & browserVer >= 4) {
		window.external.AddFavorite(url_lien_favoris, nom_lien_favoris);
	} else if (browserName == "Netscape") {
		window.sidebar.addPanel(nom_lien_favoris,url_lien_favoris,"");
	}
	//cancelBubble(e); // On peut supprimer l'affichage du lien si besoin.
}

// Affiche les propriétés d'un élément
function showProp(obj,type) {
	var props=[];
	for (var prop in obj)
		props.push(prop+' : '+obj[prop]);
	if (type == '')
		alert (props.join('\n'));
	else
		return props.join('<br>');
}

//opacité à 100%
function elementOpacity100(e) {
	if (!e) e = window.event;
	var lequel = getTarget(e);

	if (lequel) {
		if (browserName == "Microsoft Internet Explorer"){
			lequel.style.filter = 'alpha\(opacity=100\)';
		} else {
			lequel.style.opacity=1;
		}
	}
}

// opacité à xx %
function elementOpacity(e,opacite) {
	if (!e.style) {
		if (!e) e = window.event;
		var lequel = getTarget(e);
	} else {
		var lequel = e;
	}
	if (lequel) {
		if (browserName == "Microsoft Internet Explorer"){
			lequel.style.filter = 'alpha\(opacity='+opacite+'\)';
		} else {
			lequel.style.opacity=opacite/100;
		}
	}
}

function CheckRadio(name) {
	//recupere tous les objets qui ont le nom "name"
	var objs=document.getElementsByName('input',name);
	//Pour chaques objets....
	for(i=0;i<objs.length;i++) {
		//Si l'objet en cours est coché on renvoie l'objet
		if (objs[i].checked==true)
			return objs[i];
	}
	//Si on arrive ici, aucun radio-bouton n'est coché, on renvoie false
	return false;
}

/* ----------------------------------------------
	--- Gestion du positionnement des éléments ---
	---------------------------------------------- */

// On récupère la position absolue d'un élément dans la page
function whereIs(myNode,type){
	originalNode = myNode;
	var x = 0;
	var y = 0;
	while ((myNode.tagName != 'BODY') && (myNode.tagName != 'HTML')){
		var local_x = myNode.offsetLeft;
		var local_y = myNode.offsetTop;
		x += local_x;
		y += local_y;
		myNode = myNode.offsetParent;
		if (type != undefined ) alert(originalNode.id+"\n"+myNode.tagName+" "+myNode.className+' : X = '+x+' ('+local_x+') -- Y = '+y+'('+local_y+')');

	}
	originalNode.magicPositionX = x;
	originalNode.magicPositionY = y;
}

/* ---------------------------
	--- Gestion des valeurs ---
	--------------------------- */

//On vérifie si la valeur est un flottant
function isValidNumber(text,intsOnly) {
	text = text.replace(/^\s+|\s+$/g, '');
	var value = intsOnly ? parseInt(text,10) : parseFloat(text);
	return String(value) === text;
} // End isValudNumber


function decToHex(dec) {
	var hexa="0123456789ABCDEF";
	var hex="";
	while (dec>15) {
		tmp=dec-(Math.floor(dec/16))*16;
		hex=hexa.charAt(tmp)+hex;
		dec=Math.floor(dec/16);
	}
	hex=hexa.charAt(dec)+hex;
	hex=(hex.length==1)?"0"+hex:hex;
	return(hex);
}

function hexToDec(hex) {
	return parseInt(hex,16);
}

function couleur_complementaire(couleur) {
	couleur = (couleur.substr(0,1)=="#")?couleur.substr(1,6):couleur;
	var rouge = 255 - hexToDec(couleur.substr(0,2));
	var vert = 255 - hexToDec(couleur.substr(2,2));
	var bleu = 255 - hexToDec(couleur.substr(4,2));
	return "rgb("+rouge+","+vert+","+bleu+")";
}

function in_array (needle, haystack, argStrict) {
	var key = '', strict = !!argStrict;
	if (strict) {
		for (key in haystack) {
			if (haystack[key] === needle) {
				return true;
			}
		}
	} else {
		for (key in haystack) {
			if (haystack[key] == needle) {
				return true;
			}
		}
	}
	return false;
}

/* -------------------------
	--- Gestion du popup  ---
	------------------------- */

// On déplace le popup
function movepopup(e) {
	var pop = document.getElementById('popup');
	if (pop.style.display != 'none') {
		var x, y, right, bottom;
		var xoffset = 20;
		var yoffset = -75;
			var posx = 0;
		var posy = 0;
		var event;
		if (!e) evt = window.event; else evt=e;
		if (evt.pageX || evt.pageY) 	{
			posx = evt.pageX;
			posy = evt.pageY;
		} else if (evt.clientX || evt.clientY) 	{
			posx = evt.clientX + document.body.scrollLeft + document.documentElement.scrollLeft;
			posy = evt.clientY + document.body.scrollTop + document.documentElement.scrollTop;
		}
			posx += xoffset;
			posy += yoffset;
			pop.style.top = posy+'px';
			pop.style.left = posx+'px';
	}
}

// On change le contenu du popup
function popup(text) {
	var pop = document.getElementById('popup');
		pop.innerHTML = text;
		pop.style.display = 'block';
}

// On efface le popup
function popout() {
	var pop = document.getElementById('popup');
		pop.style.display = 'none';
}

/* ------------------------------
	--- Gestion de l'etiquette ---
	------------------------------ */

var xoffset = 40;
var yoffset = 40;

// On déplace l'étiquette
function moveEtiquette(e) {
	if (!e) evt = window.event; else evt=e;
	var etiquette = document.getElementById('etiquette');
	if (etiquette) {
		if (etiquette.style.display != 'none') {
			var x, y, right, bottom;
			var posx = 0;
			var posy = 0;
			var event;
			if (evt.pageX || evt.pageY) 	{
				posx = evt.pageX;
				posy = evt.pageY;
			} else if (evt.clientX || evt.clientY) 	{
				posx = evt.clientX + document.body.scrollLeft + document.documentElement.scrollLeft;
				posy = evt.clientY + document.body.scrollTop + document.documentElement.scrollTop;
			}
			posx -= xoffset;
			posy -= yoffset;
			etiquette.style.top = posy+'px';
			etiquette.style.left = posx+'px';
		}
	}
}

// On change le contenu de l'etiquette et on l'affiche
function etiquetteOn(text) {
	var etiquette = document.getElementById('etiquette');
	if (etiquette) {
		etiquette.innerHTML = text;
		etiquette.style.display = 'block';
		xoffset = parseInt(etiquette.offsetWidth / 2);
	}
}

// On efface l'etiquette
function etiquetteOff() {
	var etiquette = document.getElementById('etiquette');
	if (etiquette) {
		if (etiquette.style.display != 'none')
				etiquette.style.display = 'none';
	}
}

/* ---------------------------------------------------
	--- Gestion de l'affichage d'une photo en DHTML ---
	--------------------------------------------------- */

// Ajout des popup DHTML détectés dans la page, il faut que l'élément soit un lien <a> ou une image <img> et ai le nom ImageToShow
function addDHTMLPopup(){
	//var ImgsToShow = document.getElementsByName('a','ImageToShow');
	var ImgsToShow = document.getElementsByTagName('A');
	for (var index = 0; index < ImgsToShow.length; ++index) {
		var ImgToShow = ImgsToShow[index];
		if (ImgToShow.id.substr(0,11)=="ImageToShow") {
			addListener(ImgToShow,'click',function(e){
				var LaCible = getTarget(e);
				if (LaCible.tagName != "A") LaCible = LaCible.parentElement;
				showImage(LaCible,e);
			});
		} else if (ImgToShow.id.substr(0,11)=="videoToShow") {
			addListener(ImgToShow,'click',function(e){
				var LaCible = getTarget(e);
				if (LaCible.tagName != "A") LaCible = LaCible.parentElement;
				if (LaCible.href.substr((LaCible.href.length-1),1) != "#") showVideo(LaCible,e);
			});
		}
	}
}

// Fonction qui envoi une demande d'affichage vidéo en Ajax
function showVideo(contenu,e) {
	var popimage = document.getElementById("VideoShowFloat");
	var popimagef = document.getElementById("FondImageShow");
	var legende_image;
	if (contenu.title) legende_image = escape(contenu.title);
	ajoute_element_animation("fade","VideoShowFloat",1,1);
	popimage.style.zIndex = 221;
	ajoute_element_animation("fade","FondImageShow",1,transparenceFondDHTML);
	popimagef.style.zIndex=219;
	addListener(window,'resize',RepositionFloatDiv);
	addListener(window,'scroll',RepositionFloatDiv);
	//addListener(popimage,'click',HideFloatDiv);
	addListener(popimagef,'click',HideFloatDiv);
	xhr_call("produits_aj001",contenu.id.substr(11,(contenu.id.length-11)),legende_image);
	cancelBubble(e);
}

var collection_image = new Array();
var collection_image_avant = collection_image_apres = "";
var collection_numero = 1;
var collection_en_cours = "";

function collectionRetourneImage(collection,type,numero) {
	if (collection_image[collection]) {
		if (collection_image[collection].length == 1) {
			return false;
		} else {
			switch (type) {
				case "avant":
					if (numero == 1) {
						return false;
					} else {
						numero = parseInt(numero)-1;
						return collection_image[collection][parseInt(numero)-1];
					}
				break;
				case "apres":
					if (numero == collection_image[collection].length) {
						return false;
					} else {
						numero = parseInt(numero)-1;
						return collection_image[collection][parseInt(numero)+1];
					}
				break;
			}
		}
	} else {
		return false;
	}
}

function afficheFlecheImageDHTML (collection,numero) {
	collection_image_avant = collectionRetourneImage(collection,"avant",numero);
	if (collection_image_avant != false) {
		document.getElementById('ImageShowBoutonAvant').className="inlinebloc";
	} else {
		document.getElementById('ImageShowBoutonAvant').className="invisible inlinebloc";
	}
	collection_image_apres = collectionRetourneImage(collection,"apres",numero);
	if (collection_image_apres != false) {
		document.getElementById('ImageShowBoutonApres').className="inlinebloc";
	} else {
		document.getElementById('ImageShowBoutonApres').className="invisible inlinebloc";
	}
}

// Fonction d'affichage de l'image d'un produit en DHTML
function showImage(contenu,e,collection,numero) {
	var popimage = document.getElementById("ImageShow");
	var popimagef = document.getElementById("FondImageShow");
	var legende_image;
	if (contenu.title) legende_image = contenu.title;
	popimage.style.zIndex = 221;
	if ((numero != null ) && (collection_image[collection])) {
		collection_numero = numero;
		collection_en_cours = collection;
	}
	if (numero == null) {
		popimage.innerHTML = "<img id='ImageAttente' src='images/attente.gif' />" +
			"<div class='inlinebloc' ><img id='TheImageShowed' src='"+contenu+"' alt='Cliquez pour fermer'/></div>" +
			"<div class='cleaner'></div><div id='CommentOfImage'>"+legende_image+"</div>";
	} else {
		popimage.innerHTML = "<img id='ImageAttente' src='images/attente.gif' /><div id='ImageShowBoutonFermer' title='Fermer'></div>" +
			"<div id='ImageShowBoutonAvant'></div><div class='inlinebloc' ><img id='TheImageShowed' src='"+contenu+"' alt='Cliquez sur la croix pour fermer l\'image'/></div><div id='ImageShowBoutonApres'></div>" +
			"<div class='cleaner'></div><div id='CommentOfImage'>"+legende_image+"</div>";
		afficheFlecheImageDHTML(collection,numero);
		var ImageShowBoutonAvant = document.getElementById("ImageShowBoutonAvant");
		if (ImageShowBoutonAvant) {
			addListener(ImageShowBoutonAvant,"click",function(e){
				document.getElementById('ImageShowBoutonAvant').className="invisible inlinebloc";
				document.getElementById('ImageShowBoutonApres').className="invisible inlinebloc";
				var TheImageShowed=document.getElementById("TheImageShowed");
				GestionAttente("TheImageShowed","on","<img src='"+TheImageShowed.src+"' style='margin-top:2px;margin-left:2px;' />",300);
				document.getElementById("ImageAttente").style.display="block";
				document.getElementById("ImageAttente").style.zIndex="350";
				collection_numero = parseInt(collection_numero)-1;
				addListener(TheImageShowed,'load',ShowTheImageShowed);
				TheImageShowed.src=collection_image_avant;
			});
		}
		var ImageShowBoutonApres = document.getElementById("ImageShowBoutonApres");
		if (ImageShowBoutonApres) {
			addListener(ImageShowBoutonApres,"click",function(e){
				document.getElementById('ImageShowBoutonAvant').className="invisible inlinebloc";
				document.getElementById('ImageShowBoutonApres').className="invisible inlinebloc";
				var TheImageShowed=document.getElementById("TheImageShowed");
				GestionAttente("TheImageShowed","on","<img src='"+TheImageShowed.src+"' style='margin-top:2px;margin-left:2px;' />",300);
				document.getElementById("ImageAttente").style.display="block";
				document.getElementById("ImageAttente").style.zIndex="350";
				collection_numero = parseInt(collection_numero)+1;
				addListener(TheImageShowed,'load',ShowTheImageShowed);
				TheImageShowed.src=collection_image_apres;
			});
		}
	}
	popimagef.style.zIndex=219;
	ajoute_element_animation("fade","FondImageShow",1,transparenceFondDHTML);
	ajoute_element_animation("fade","ImageShow",1,1);
	addListener(window,'resize',RepositionFloatDiv);
	addListener(window,'scroll',RepositionFloatDiv);
	if (numero == null) {
		addListener(popimage,'click',HideFloatDiv);
		addListener(popimagef,'click',HideFloatDiv);
	} else {
		var ImageShowBoutonFermer = document.getElementById("ImageShowBoutonFermer");
		addListener(ImageShowBoutonFermer,'click',HideFloatDiv);
	}
	var TheImageShowed = document.getElementById("TheImageShowed");
	if (browserName == "Opera")
		setTimeout("ShowTheImageShowed();",2000);
	else
		addListener(TheImageShowed,'load',ShowTheImageShowed);
	cancelBubble(e);
}

// Affiche l'image une fois chargée
function ShowTheImageShowed() {
	var TheImageShowed = document.getElementById("TheImageShowed");
	var ImageAttente = document.getElementById("ImageAttente");
	var attente_TheImageShowed = document.getElementById("attente_TheImageShowed");
	ImageAttente.style.display="none";
	if (attente_TheImageShowed) {
		afficheFlecheImageDHTML(collection_en_cours,collection_numero);
		ajoute_element_animation("fade",'attente_TheImageShowed',-1,0);
		setTimeout('GestionAttente(\"TheImageShowed\",\"off\");',500);
	} else {
		ajoute_element_animation("fade","TheImageShowed",1,1);
		ajoute_element_animation("fade","CommentOfImage",1,1);
	}
	RepositionFloatDiv();
	removeListener(TheImageShowed,'load',ShowTheImageShowed);
}

//Affichage d'un message en PoPup DHTML
function showMessage (message,noclick,noscroll,noresize,type,script) {
	var popimage = document.getElementById("ContenuShow");
	var popimagef = document.getElementById("FondImageShow");
	if (type == undefined) type = "centre";
	if (script == undefined) script = "";
	popimage.style.zIndex = 220;
	if (message) popimage.innerHTML= message;
	popimagef.style.zIndex=219;
	setTimeout("RepositionFloatDiv('"+type+"');",100);
	ajoute_element_animation("fade","FondImageShow",1,transparenceFondDHTML);
	ajoute_element_animation("fade","ContenuShow",1,1,"","","","",script);
	if (noresize != true) addListener(window,"resize",RepositionFloatDiv);
	if (noscroll != true) addListener(window,"scroll",RepositionFloatDiv);
	if (noclick != true) {
		addListener(popimage,"click",HideFloatDiv);
		addListener(popimagef,"click",HideFloatDiv);
	}
}

// Repositionnement en fonction de la taille du document
function RepositionFloatDiv(type){
	var popimage;
	var pop_image = document.getElementById("ImageShow");
	var pop_video = document.getElementById("VideoShowFloat");
	var pop_contenu = document.getElementById("ContenuShow");
	if (type == undefined) type = "centre";
	if (pop_image.style.display == "block")
		popimage = pop_image;
	else if (pop_video.style.display == "block")
		popimage = pop_video;
	else if (pop_contenu.style.display == "block")
		popimage = pop_contenu;
	var total_larg = document.documentElement.scrollWidth;
	var total_haut = document.documentElement.scrollHeight;
	var total_scroll = document.documentElement.scrollTop;
	if (popimage) {
		if (popimage.style.display == "block") {
			var larg = document.documentElement.clientWidth;
			var haut = document.documentElement.clientHeight;
			var theimg_larg = popimage.clientWidth;
			var theimg_haut = popimage.clientHeight;
			popimage.style.left = ((larg - theimg_larg) /2)-14+"px";
			switch(type) {
				case "centre" :	popimage.style.top = (((haut - theimg_haut) /2)-14 + total_scroll)+"px";break;
				case "abstop" : popimage.style.top = "10px";break;
				case "top" : popimage.style.top = total_scroll+"px";break;
				case "bottom" : popimage.style.top = ((haut - theimg_haut)-14 + total_scroll)+"px";break;
			}
		}
	}
	var popimagef = document.getElementById("FondImageShow");
	popimagef.style.left=0+"px";
	popimagef.style.top=0+"px";
	popimagef.style.width = total_larg+"px";
	popimagef.style.height = total_haut+"px";
}

// Cache le contenu DHTML et le fond
function HideFloatDiv() {
	var popimage;
	var pop_image = document.getElementById("ImageShow");
	var pop_video = document.getElementById("VideoShowFloat");
	var pop_contenu = document.getElementById("ContenuShow");
	var pop_contenu2 = document.getElementById("ContenuShow2");
	var trouve=false;
	var effacefond=true;
	if (pop_image.style.display == "block") {
		popimage = pop_image;
		trouve = true;
	}
	if (pop_video) {
		if (pop_video.style.display == "block")	{
			if (trouve == false) {
				popimage = pop_video;
				trouve = true;
			} else {
				effacefond = false;
			}
		}
	}
	if (pop_contenu) {
		if (pop_contenu.style.display == "block") {
			if (trouve == false) {
				popimage = pop_contenu;
				trouve = true;
			} else {
				effacefond = false;
			}
		}
	}

	if (popimage) {
		var popimagef = document.getElementById("FondImageShow");
		if (effacefond == true) {
			if (popimagef.style.display == "block") {
				ajoute_element_animation("fade","FondImageShow",-1,0,"display","none");
				removeListener(popimagef,'click',HideFloatDiv);
				removeListener(window,'resize',RepositionFloatDiv);
				removeListener(window,'scroll',RepositionFloatDiv);
			}
		}
		ajoute_element_animation("fade",popimage.id,-1,0,"viderCacher","");
		removeListener(popimage,'click',HideFloatDiv);
		if (collection_en_cours != "") {
			collection_image_avant = collection_image_apres = "";
			collection_numero = 1;
			collection_en_cours = "";
		}
	}
}

// Gestion des contenu DIV pour Ajax
function SauveInnerHTML(elementASauvegarder) {
	var traitementElement = document.getElementById(elementASauvegarder);
	if (traitementElement) {
		sauve_contenu[elementASauvegarder] = traitementElement.innerHTML;
		traitementElement.innerHTML = "<center><img src='images/attente.gif' alt='Veuillez patienter.' /></center>";
	}
}

function RestaureInnerHTML(elementASauvegarder) {
	var traitementElement = document.getElementById(elementASauvegarder);
	if ((traitementElement) && (sauve_contenu[elementASauvegarder])) {
		traitementElement.innerHTML = sauve_contenu[elementASauvegarder];
	}
}

function GestionAttente(elementEnAttente,type,contenu,zIndex,bgColor) {
	if ((zIndex == null) || (zIndex == "")) zIndex = '230';
	if (type == 'off') {
		var body = document.getElementsByTagName('body').item(0);
		var idTraitementElement = 'attente_'+elementEnAttente;
		var traitementElement = document.getElementById(idTraitementElement);
		if (traitementElement) {
			body.removeChild(traitementElement);
			traitementElement.innerHTML="";
			delete(traitementElement);
		}
	} else {
		var traitementElement = document.getElementById(elementEnAttente);
		if (traitementElement) {
			if (type == 'on') {
				var body = document.getElementsByTagName('body').item(0);
				var element_attente = document.createElement('div');
				body.insertBefore(element_attente,body.firstChild);
				element_attente.id='attente_'+elementEnAttente;
				element_attente.style.position='absolute';
				element_attente.style.zIndex=zIndex;
				whereIs(traitementElement);
				element_attente.style.top=traitementElement.magicPositionY+'px';
				element_attente.style.left=traitementElement.magicPositionX+'px';
				element_attente.style.width = traitementElement.offsetWidth+'px';
				element_attente.style.height = traitementElement.offsetHeight+'px';
				if (bgColor != null) element_attente.style.backgroundColor = bgColor;
				if (!contenu) {
					element_attente.style.textAlign = 'center';
					element_attente.style.filter = 'alpha\(opacity=30\)';
					element_attente.style.MozOpacity = .3;
					element_attente.style.opacity = .3;
					element_attente.style.backgroundColor='#000000';
					var message_attente = document.createElement('img');
					message_attente.src='images/attente.gif';
					element_attente.appendChild(message_attente);
					var calcul_paddingTop = ((traitementElement.offsetHeight/2)-(14 + message_attente.offsetTop));
					if (calcul_paddingTop < 0 ) calcul_paddingTop = 0;
					message_attente.style.paddingTop=calcul_paddingTop+'px';
				} else {
					element_attente.innerHTML = contenu;
				}
			} else if (type == 'oncache') {
				var body = document.getElementsByTagName('body').item(0);
				var element_attente = document.createElement('div');
				body.insertBefore(element_attente,body.firstChild);
				element_attente.id='attente_'+elementEnAttente;
				element_attente.style.position='absolute';
				element_attente.style.zIndex=zIndex;
				whereIs(traitementElement);
				element_attente.style.top=traitementElement.magicPositionY+'px';
				element_attente.style.left=traitementElement.magicPositionX+'px';
				element_attente.style.width = traitementElement.offsetWidth+'px';
				element_attente.style.height = traitementElement.offsetHeight+'px';
				element_attente.style.filter = 'alpha\(opacity=0\)';
				element_attente.style.MozOpacity = 0;
				element_attente.style.opacity = 0;
				if (bgColor != null) element_attente.style.backgroundColor = bgColor;
				if (!contenu) {
					element_attente.style.textAlign = 'center';
					element_attente.style.backgroundColor='#000000';
					var message_attente = document.createElement('img');
					message_attente.src='images/attente.gif';
					element_attente.appendChild(message_attente);
					var calcul_paddingTop = ((traitementElement.offsetHeight/2)-(14 + message_attente.offsetTop));
					if (calcul_paddingTop < 0 ) calcul_paddingTop = 0;
					message_attente.style.paddingTop=calcul_paddingTop+'px';
				} else {
					element_attente.innerHTML = contenu;
				}
			}
		}
	}
}

/* ***************************** */
/* Gestion des volets dynamiques */
/* ***************************** */
var table_volets_dynamiques = new Array();
var table_liaison_volets = new Array();

function volet(mode,volet_en_cours,liste_hauteurs_titres,liste_hauteurs_max,liste_etats) {
	this.mode = mode;
	this.volet_en_cours = volet_en_cours;
	this.table_hauteurs_titres = liste_hauteurs_titres;
	this.table_hauteurs_max = liste_hauteurs_max;
	this.table_etats = liste_etats;
}

function anime_volet_dynamique(e) {
	if (!e) e = window.event;
	var element = getTarget(e);
	var levolet = element.id.substr(5,element.id.length-5);
	var lesvolets = table_liaison_volets[element.id];
	switch (table_volets_dynamiques[lesvolets]["mode"]) {
		case "unique":
			if (table_volets_dynamiques[lesvolets]["volet_en_cours"] != levolet) {
				ajoute_element_animation("volet","volet"+levolet,1,table_volets_dynamiques[lesvolets].table_hauteurs_max[levolet]);
				ajoute_element_animation("volet","volet"+table_volets_dynamiques[lesvolets]["volet_en_cours"],-1,table_volets_dynamiques[lesvolets].table_hauteurs_titres[levolet]);
				table_volets_dynamiques[lesvolets]["volet_en_cours"] = levolet;
			}
		break
		case "aucun":
			if (table_volets_dynamiques[lesvolets]["volet_en_cours"] != levolet) {
				ajoute_element_animation("volet","volet"+levolet,1,table_volets_dynamiques[lesvolets].table_hauteurs_max[levolet]);
				ajoute_element_animation("volet","volet"+table_volets_dynamiques[lesvolets]["volet_en_cours"],-1,table_volets_dynamiques[lesvolets].table_hauteurs_titres[levolet]);
				table_volets_dynamiques[lesvolets]["volet_en_cours"] = levolet;
			} else {
				ajoute_element_animation("volet","volet"+levolet,-1,table_volets_dynamiques[lesvolets].table_hauteurs_titres[levolet]);
				table_volets_dynamiques[lesvolets]["volet_en_cours"] = "";
			}
		break;
		case "total":
			if (table_volets_dynamiques[lesvolets].table_etats[levolet] == false) {
				ajoute_element_animation("volet","volet"+levolet,1,table_volets_dynamiques[lesvolets].table_hauteurs_max[levolet]);
				table_volets_dynamiques[lesvolets].table_etats[levolet] = true;
			} else {
				ajoute_element_animation("volet","volet"+levolet,-1,table_volets_dynamiques[lesvolets].table_hauteurs_titres[levolet]);
				table_volets_dynamiques[lesvolets].table_etats[levolet] = false;
			}
		break;
	}
}

/* Création d'une suite de volets dynamiques selon différents modes
 * unique -> seul un volet est ouvert
 * total -> tous les volets peuvent s'ouvrir
 * aucun -> tous les volets peuvent se fermer
 */
function ajoute_volet_dynamique(nom_volets,mode) {
	var element = document.getElementById(nom_volets);
	if (element) {
		// On récupère les volets et les hauteurs des titres
		var liste_hauteurs_titres = new Array();
		var liste_hauteurs_max = new Array();
		var liste_etats = new Array();
		var liste_div = element.getElementsByTagName("DIV");
		var premier_volet = "";
		if (liste_div) {
			for (boucle=0;boucle<liste_div.length;boucle++) {
				if (liste_div[boucle].id.substr(0,5) == "volet") {
					var nom_volet = liste_div[boucle].id.substr(5,liste_div[boucle].id.length-5);
					if (boucle == 0) {
						premier_volet = nom_volet;
						liste_etats[nom_volet] = true;
					} else {
						liste_etats[nom_volet] = false;
					}
					liste_hauteurs_max[nom_volet] = liste_div[boucle].children[0].offsetHeight;
					var id_titre = "votit"+nom_volet;
					table_liaison_volets[id_titre] = nom_volets;
					var bloc_titre = document.getElementById(id_titre);
					var borderTop = getStyle(bloc_titre,"borderTopWidth");
					var borderBottom = getStyle(bloc_titre,"borderBottomWidth");
					var marginTop = getStyle(bloc_titre,"marginTop");
					var marginBottom = getStyle(bloc_titre,"marginBottom");
					liste_hauteurs_titres[nom_volet] = (bloc_titre.offsetHeight) + borderTop + borderBottom + marginTop + marginBottom;
					addListener(document.getElementById(id_titre),"click",function(e){anime_volet_dynamique(e);});
				}
			}
		}
		table_volets_dynamiques[nom_volets] = new volet(mode,premier_volet,liste_hauteurs_titres,liste_hauteurs_max,liste_etats);
	}
}

// Supprime tous les tags HTML d'un texte
function strip_tags(str, allowed_tags) {
		var key = '', allowed = false;
		var matches = [];
		var allowed_array = [];
		var allowed_tag = '';
		var i = 0;
		var k = '';
		var html = '';
		var replacer = function(search, replace, str) {
				return str.split(search).join(replace);
		};
		if (allowed_tags) {
				allowed_array = allowed_tags.match(/([a-zA-Z]+)/gi);
		}
		str += '';
		matches = str.match(/(<\/?[^>]+>)/gi);
		for (key in matches) {
				if (isNaN(key)) {
						continue;
				}
				html = matches[key].toString();
				allowed = false;
				for (k in allowed_array) {
						allowed_tag = allowed_array[k];
						i = -1;
						if (i != 0) { i = html.toLowerCase().indexOf('<'+allowed_tag+'>');}
						if (i != 0) { i = html.toLowerCase().indexOf('<'+allowed_tag+' ');}
						if (i != 0) { i = html.toLowerCase().indexOf('</'+allowed_tag)   ;}
						if (i == 0) {
								allowed = true;
								break;
						}
				}
				if (!allowed) {
						str = replacer(html, "", str);
				}
		}
		return str;
}

function htmlentities (string, quote_style) {
    var hash_map = {}, symbol = '', tmp_str = '', entity = '';
    tmp_str = string.toString();
    if (false === (hash_map = this.get_html_translation_table('HTML_ENTITIES', quote_style))) {
        return false;
    }
    hash_map["'"] = '&#039;';
    for (symbol in hash_map) {
        entity = hash_map[symbol];
        tmp_str = tmp_str.split(symbol).join(entity);
    }
    return tmp_str;
}

function html_entity_decode( string, quote_style ) {
		var histogram = {}, symbol = '', tmp_str = '', entity = '';
		tmp_str = string.toString();

		if (false === (histogram = this.get_html_translation_table('HTML_ENTITIES', quote_style))) {
			return false;
		}

		for (symbol in histogram) {
			entity = histogram[symbol];
			tmp_str = tmp_str.split(entity).join(symbol);
		}
		tmp_str = tmp_str.split('&#039;').join("'");
		return tmp_str;
}

function get_html_translation_table(table, quote_style) {
		var entities = {}, histogram = {}, decimal = 0, symbol = '';
		var constMappingTable = {}, constMappingQuoteStyle = {};
		var useTable = {}, useQuoteStyle = {};

		// Translate arguments
		constMappingTable[0]      = 'HTML_SPECIALCHARS';
		constMappingTable[1]      = 'HTML_ENTITIES';
		constMappingQuoteStyle[0] = 'ENT_NOQUOTES';
		constMappingQuoteStyle[2] = 'ENT_COMPAT';
		constMappingQuoteStyle[3] = 'ENT_QUOTES';

		useTable      = !isNaN(table) ? constMappingTable[table] : table ? table.toUpperCase() : 'HTML_SPECIALCHARS';
		useQuoteStyle = !isNaN(quote_style) ? constMappingQuoteStyle[quote_style] : quote_style ? quote_style.toUpperCase() : 'ENT_COMPAT';

		if (useTable !== 'HTML_SPECIALCHARS' && useTable !== 'HTML_ENTITIES') {
			throw new Error("Table: "+useTable+' not supported');
			// return false;
		}

		if (useTable === 'HTML_ENTITIES') {
				entities['160'] = '&nbsp;';
				entities['161'] = '&iexcl;';
				entities['162'] = '&cent;';
				entities['163'] = '&pound;';
				entities['164'] = '&curren;';
				entities['165'] = '&yen;';
				entities['166'] = '&brvbar;';
				entities['167'] = '&sect;';
				entities['168'] = '&uml;';
				entities['169'] = '&copy;';
				entities['170'] = '&ordf;';
				entities['171'] = '&laquo;';
				entities['172'] = '&not;';
				entities['173'] = '&shy;';
				entities['174'] = '&reg;';
				entities['175'] = '&macr;';
				entities['176'] = '&deg;';
				entities['177'] = '&plusmn;';
				entities['178'] = '&sup2;';
				entities['179'] = '&sup3;';
				entities['180'] = '&acute;';
				entities['181'] = '&micro;';
				entities['182'] = '&para;';
				entities['183'] = '&middot;';
				entities['184'] = '&cedil;';
				entities['185'] = '&sup1;';
				entities['186'] = '&ordm;';
				entities['187'] = '&raquo;';
				entities['188'] = '&frac14;';
				entities['189'] = '&frac12;';
				entities['190'] = '&frac34;';
				entities['191'] = '&iquest;';
				entities['192'] = '&Agrave;';
				entities['193'] = '&Aacute;';
				entities['194'] = '&Acirc;';
				entities['195'] = '&Atilde;';
				entities['196'] = '&Auml;';
				entities['197'] = '&Aring;';
				entities['198'] = '&AElig;';
				entities['199'] = '&Ccedil;';
				entities['200'] = '&Egrave;';
				entities['201'] = '&Eacute;';
				entities['202'] = '&Ecirc;';
				entities['203'] = '&Euml;';
				entities['204'] = '&Igrave;';
				entities['205'] = '&Iacute;';
				entities['206'] = '&Icirc;';
				entities['207'] = '&Iuml;';
				entities['208'] = '&ETH;';
				entities['209'] = '&Ntilde;';
				entities['210'] = '&Ograve;';
				entities['211'] = '&Oacute;';
				entities['212'] = '&Ocirc;';
				entities['213'] = '&Otilde;';
				entities['214'] = '&Ouml;';
				entities['215'] = '&times;';
				entities['216'] = '&Oslash;';
				entities['217'] = '&Ugrave;';
				entities['218'] = '&Uacute;';
				entities['219'] = '&Ucirc;';
				entities['220'] = '&Uuml;';
				entities['221'] = '&Yacute;';
				entities['222'] = '&THORN;';
				entities['223'] = '&szlig;';
				entities['224'] = '&agrave;';
				entities['225'] = '&aacute;';
				entities['226'] = '&acirc;';
				entities['227'] = '&atilde;';
				entities['228'] = '&auml;';
				entities['229'] = '&aring;';
				entities['230'] = '&aelig;';
				entities['231'] = '&ccedil;';
				entities['232'] = '&egrave;';
				entities['233'] = '&eacute;';
				entities['234'] = '&ecirc;';
				entities['235'] = '&euml;';
				entities['236'] = '&igrave;';
				entities['237'] = '&iacute;';
				entities['238'] = '&icirc;';
				entities['239'] = '&iuml;';
				entities['240'] = '&eth;';
				entities['241'] = '&ntilde;';
				entities['242'] = '&ograve;';
				entities['243'] = '&oacute;';
				entities['244'] = '&ocirc;';
				entities['245'] = '&otilde;';
				entities['246'] = '&ouml;';
				entities['247'] = '&divide;';
				entities['248'] = '&oslash;';
				entities['249'] = '&ugrave;';
				entities['250'] = '&uacute;';
				entities['251'] = '&ucirc;';
				entities['252'] = '&uuml;';
				entities['253'] = '&yacute;';
				entities['254'] = '&thorn;';
				entities['255'] = '&yuml;';
		}

		if (useQuoteStyle !== 'ENT_NOQUOTES') {
				entities['34'] = '&quot;';
		}
		if (useQuoteStyle === 'ENT_QUOTES') {
				entities['39'] = '&#39;';
		}
		entities['60'] = '&lt;';
		entities['62'] = '&gt;';

		// ascii decimals for better compatibility
		// entities['38'] = '&amp;';

		// ascii decimals to real symbols
		for (decimal in entities) {
				symbol = String.fromCharCode(decimal);
				histogram[symbol] = entities[decimal];
		}

		return histogram;
}

function Br_2_Crlf(dataStr) {
		return dataStr.replace('<br />','\r\n');
}

function Vide_select(elementAVider,total) {
	if (total == undefined) total=0; else total=-1;
	var element = document.getElementById(elementAVider);
	if ((element) && (element.length>0)) {
		for (boucle=element.length;boucle>total;boucle--) {
			element[boucle] = null;
		}
		element.selectedIndex = 0;
	}
}

function Charge_select(elementCompletACharger,tableauACharger){
	var element = document.getElementById(elementCompletACharger);
	Vide_select(elementCompletACharger);
	eval("var theTableau="+tableauACharger+";");
	for (boucle=0;boucle<theTableau.length;boucle++) {
		var MElement = new Option(theTableau[boucle],theTableau[boucle]);
		element.options[(boucle + 1)] = MElement;
	}
}

function Insertion_texte(input,repdeb, repfin) {
	input.focus();
	/* pour l'Explorer Internet */
	if (browserName == "Microsoft Internet Explorer" & browserVer >= 4) {
		/* Insertion du code de formatage */
		var range = document.selection.createRange();
		var insText = range.text;
		range.text = repdeb + insText + repfin;
		/* Ajustement de la position du curseur */
		range = document.selection.createRange();
		if (insText.length == 0) {
			range.move('character', -repfin.length);
		} else {
			range.moveStart('character', repdeb.length + insText.length + repfin.length);
		}
		range.select();
	}
	/* pour navigateurs plus récents basés sur Gecko*/
	else if(typeof input.selectionStart != 'undefined') {
		/* Insertion du code de formatage */
		var start = input.selectionStart;
		var end = input.selectionEnd;
		var insText = input.value.substring(start, end);
		input.value = input.value.substr(0, start) + repdeb + insText + repfin + input.value.substr(end);
		/* Ajustement de la position du curseur */
		var pos;
		if (insText.length == 0) {
			pos = start + repdeb.length;
		} else {
			pos = start + repdeb.length + insText.length + repfin.length;
		}
		input.selectionStart = pos;
		input.selectionEnd = pos;
	}
	/* pour les autres navigateurs */
	else {
		/* requête de la position d'insertion */
		var pos;
		var re = new RegExp('^[0-9]{0,3}$');
		while(!re.test(pos)) {
			pos = prompt("Insertion à la position (0.." + input.value.length + "):", "0");
		}
		if (pos > input.value.length) {
			pos = input.value.length;
		}
		/* Insertion du code de formatage */
		var insText = prompt("Veuillez entrer le texte à formater:");
		input.value = input.value.substr(0, pos) + repdeb + insText + repfin + input.value.substr(pos);
	}
}


/*	------------------------------- */
/*	--- Gestion de l'animation  --- */
/*	------------------------------- */
var table_element_animation = new Array();
var duree_animation = 30; // millisecondes
var duree_total_animation = 800; // millisencondes

function element_animation (type,sens,element,change_contenu,contenu,change_retour,retour,iterateur,valeur,valeur_cible,script) {
	this.type = type;
	this.sens = sens;
	this.change_contenu = change_contenu;
	this.contenu = contenu;
	this.change_retour = change_retour;
	this.retour = retour;
	this.iterateur = iterateur;
	this.valeur = valeur;
	this.valeur_cible = valeur_cible;
	this.script = script;
}

function ajoute_element_animation(type,element,sens,valeur_cible,change_contenu,contenu,change_retour,retour,script) {
	var TheElement = document.getElementById(element);
	if ((TheElement) && (browserName == "Microsoft Internet Explorer")) {
		if (TheElement.currentStyle.hasLayout == false)  {
			TheElement.style.height="1%"; // On force le Layout pour Ie < 8
		}
	}
	change_contenu = (change_contenu == undefined)?"":change_contenu;
	contenu = (contenu == undefined)?"":contenu;
	change_retour = (change_retour == undefined)?"":change_retour;
	retour = (retour == undefined)?"":retour;
	var trouve=false;
	if (script == undefined) script="";
	sens = (!sens)?"1":sens;
	if (sens == "1") {
		switch(type) {
			case "volet":
				var valeur = parseFloat(TheElement.clientHeight);
				var iteration_animation = Math.round((Math.abs(valeur_cible - valeur) / ((duree_total_animation/2) / duree_animation )));
			break;
			case "fade":
				var valeur = parseFloat(TheElement.style.opacity);
				TheElement.style.display = "block";
				valeur = (isNaN(valeur))?0:valeur;
				var iteration_animation = ((valeur_cible - valeur) / ((duree_total_animation/3) / duree_animation));
			break;
			case "bougegauche":
				var valeur = 0;
				var iteration_animation = Math.round((Math.abs(valeur_cible) / ((duree_total_animation * 2) / duree_animation )));
			break;
			case "bougedroite":
				var valeur = 0;
				var iteration_animation = Math.round((Math.abs(valeur_cible) / ((duree_total_animation * 2) / duree_animation )));
			break;
			case "bougea":
				whereIs(TheElement);
				var xa = TheElement.magicPositionX;
				var ya = TheElement.magicPositionY;
				var xb = valeur_cible[0];
				var yb = valeur_cible[1];
				var alpha = ((yb-ya)/(xb-xa));
				var beta = ya - (alpha * xa);
				var nombre_animation = ((duree_total_animation/3)/duree_animation);
				var delta = ((xb-xa)/nombre_animation);
				if ((valeur_cible[2] != undefined) && (valeur_cible[3]!= undefined)) {
					script += "document.getElementById('"+element+"').style.left = '"+xb+"px';document.getElementById('"+element+"').style.top = '"+yb+"px';document.getElementById('"+element+"').style.width = '"+valeur_cible[2]+"px';document.getElementById('"+element+"').style.height = '"+valeur_cible[3]+"px';";
					var gammaX = ((valeur_cible[2] - TheElement.offsetWidth) / nombre_animation);
					var gammaY = ((valeur_cible[3] - TheElement.offsetHeight) / nombre_animation);
				} else {
					script += "document.getElementById('"+element+"').style.left = '"+xb+"px';document.getElementById('"+element+"').style.top = '"+yb+"px';";
					var gammaX = 0;
					var gammaY = 0;
				}
				var iteration_animation = new Array(alpha,beta,delta,gammaX,gammaY);
				valeur_cible = Math.abs(delta * nombre_animation);
				valeur = 0;
			break;
		}
	} else {
		switch(type) {
			case "volet":
				var valeur = parseFloat(TheElement.clientHeight);
				var iteration_animation = Math.round((Math.abs(valeur - valeur_cible) / ((duree_total_animation/2) / duree_animation )));
			break;
			case "fade":
				var valeur = parseFloat(TheElement.style.opacity);
				TheElement.style.display = "block";
				valeur = (isNaN(valeur))?1:valeur;
				var iteration_animation = ((valeur - valeur_cible) / ((duree_total_animation/3) / duree_animation));
			break;
			case "bougegauche":
				var valeur = 0;
				var iteration_animation = Math.round((Math.abs(valeur_cible) / ((duree_total_animation * 2) / duree_animation )));
			break;
			case "bougedroite":
				var valeur = 0;
				var iteration_animation = Math.round((Math.abs(valeur_cible) / ((duree_total_animation * 2) / duree_animation )));
			break;
		}
	}
	table_element_animation[element] = new element_animation(type,sens,element,change_contenu,contenu,change_retour,retour,iteration_animation,valeur,valeur_cible,script);
	genere_length(table_element_animation);
	if (table_element_animation.length !=0 ) {
		timer_animation = setTimeout('genere_animation();',duree_animation);
	}
}

function genere_animation() {
	if (timer_animation) clearTimeout(timer_animation);
	var table_delete = new Array();
	if (table_element_animation.length != 0) {
		for (local_element in table_element_animation) {
			var eanimation = document.getElementById(local_element);
			if (eanimation) {
				switch (table_element_animation[local_element].type) {
					case "volet":
						var valeur_animation = table_element_animation[local_element].valeur + (table_element_animation[local_element].iterateur * table_element_animation[local_element].sens);
						valeur_animation=(valeur_animation<0)?table_element_animation[local_element].valeur_cible:valeur_animation;
						eanimation.style.height=valeur_animation+"px";
						table_element_animation[local_element].valeur = valeur_animation;
					break;
					case "bougea":
						var nouveauX = eanimation.offsetLeft + table_element_animation[local_element].iterateur[2];
						var nouveauY = (table_element_animation[local_element].iterateur[0] * nouveauX) + table_element_animation[local_element].iterateur[1];
						eanimation.style.left = nouveauX+"px";
						eanimation.style.top = nouveauY+"px";
						eanimation.style.width = (eanimation.offsetWidth + table_element_animation[local_element].iterateur[3]) + "px";
						eanimation.style.height = (eanimation.offsetHeight + table_element_animation[local_element].iterateur[4]) + "px";
						table_element_animation[local_element].valeur = table_element_animation[local_element].valeur + Math.abs(table_element_animation[local_element].iterateur[2]);
						valeur_animation = table_element_animation[local_element].valeur;
					break;
					case "fade":
						var valeur_animation = table_element_animation[local_element].valeur + (table_element_animation[local_element].iterateur * table_element_animation[local_element].sens);
						if (eanimation.style.display == "" || eanimation.style.display == "none")
							eanimation.style.display="block";

						if (browserName == "Microsoft Internet Explorer"){
							eanimation.style.filter = 'alpha(opacity='+(Math.round(valeur_animation * 100))+');';
						} else {
							eanimation.style.opacity = valeur_animation;
						}
						table_element_animation[local_element].valeur = valeur_animation;
					break;
					case "bougedroite":
						var valeur_animation = table_element_animation[local_element].valeur + (table_element_animation[local_element].iterateur * table_element_animation[local_element].sens);
						eanimation.style.marginLeft = valeur_animation+"px";
						table_element_animation[local_element].valeur = valeur_animation;
					break;
					case "bougegauche":
						var valeur_animation = table_element_animation[local_element].valeur + (table_element_animation[local_element].iterateur * table_element_animation[local_element].sens);
						eanimation.style.marginLeft = "-"+valeur_animation+"px";
						table_element_animation[local_element].valeur = valeur_animation;
					break;
				}
				if ((table_element_animation[local_element].sens == 1) && (valeur_animation >= table_element_animation[local_element].valeur_cible)) {
					if (table_element_animation[local_element].type == "volet") eanimation.style.height=(table_element_animation[local_element].valeur_cible)+"px";
					if (table_element_animation[local_element].change_retour != "") {
						switch (table_element_animation[local_element].change_retour) {
							case "title":eanimation.title = table_element_animation[local_element].retour;break;
							case "alt":eanimation.alt = table_element_animation[local_element].retour;break;
							case "opacity":eanimation.style.opacity=table_element_animation[local_element].retour;break;
						}
					}
					table_delete.push(local_element);
				} else if ((table_element_animation[local_element].sens == -1) && (valeur_animation <= table_element_animation[local_element].valeur_cible)) {
					if (table_element_animation[local_element].type == "volet") eanimation.style.height=(table_element_animation[local_element].valeur_cible)+"px";
					if (table_element_animation[local_element].change_contenu != "") {
						switch (table_element_animation[local_element].change_contenu) {
							case "src":
								eanimation.src = table_element_animation[local_element].contenu;
								table_element_animation[local_element].sens = 1;
								table_element_animation[local_element].valeur = 0;
								table_element_animation[local_element].valeur_cible = (1 - table_element_animation[local_element].valeur_cible);
							break;
							case "innerHTML":
								eanimation.innerHTML = table_element_animation[local_element].contenu;
								table_element_animation[local_element].sens = 1;
								table_element_animation[local_element].valeur = 0;
								table_element_animation[local_element].valeur_cible = (1 - table_element_animation[local_element].valeur_cible);
							break;
							case "display":
								eanimation.style.display = table_element_animation[local_element].contenu;
								table_delete.push(local_element);
							break;
							case "viderCacher":
								eanimation.innerHTML = "";
								eanimation.style.display="none";
								table_delete.push(local_element);
							break;
							case "visibility":
								eanimation.style.vibility=table_element_animation[local_element].contenu;
								table_delete.push(local_element);
							break;
						}
					} else {
						table_delete.push(local_element);
					}
				}
			}
		}
	}
	if (table_delete.length != 0) {
		for (elementToDelete=0;elementToDelete<table_delete.length;elementToDelete++) {
			if (table_element_animation[table_delete[elementToDelete]].script) {
				eval(table_element_animation[table_delete[elementToDelete]].script);
			}
			delete table_element_animation[table_delete[elementToDelete]];
		}
	}
	genere_length(table_element_animation);
	if (table_element_animation.length !=0) {
		timer_animation = setTimeout('genere_animation();',duree_animation);
	}
}

function genere_length(objet){
	var nombre = 0;
	for (element in objet) nombre++;
	objet.length = nombre;
}
/* --------------------
* --- Commentaires ---
* -------------------- */

function commentaire_modification(id_com) {
	GestionAttente('commentaire_'+id_com,'on');
	var modif_texte_commentaire = document.getElementById('modif_texte_commentaire_'+id_com);
	var modif_titre_commentaire = document.getElementById('modif_titre_commentaire_'+id_com);
	xhr_call('admin_adminaj002',id_com,modif_titre_commentaire.value,modif_texte_commentaire.value);
}

function commentaire_afficher() {
	var date_debut=document.getElementById("date_debut");
	var date_fin=document.getElementById("date_fin");
	var id_user=document.getElementById("id_user");
	var id_validateur=document.getElementById("id_validateur");
	var contenu_titre=document.getElementById("contenu_titre");
	var contenu_texte=document.getElementById("contenu_texte");
	var fok = true;
	if ((date_debut.value) && (date_fin.value)) {
		var poids_date_debut = parseInt(date_debut.value.substr(6,4)+date_debut.value.substr(3,2)+date_debut.value.substr(0,2));
		var poids_date_fin = parseInt(date_fin.value.substr(6,4)+date_fin.value.substr(3,2)+date_fin.value.substr(0,2));
		if (poids_date_fin < poids_date_debut) {
			alert('La date de début est postérieure à la date de fin');
			fok=false;
		}
	}
	if (fok == true){
		GestionAttente('affiche_liste_com','on');
		xhr_call('admin_aj003',date_debut.value,date_fin.value,id_user.value,id_validateur.value,contenu_titre.value,contenu_texte.value);
	}
}

/* --------------------
 * --- Calendriers  ---
 * -------------------- */

function calendrier_choix_jour(e) {
	if (!e) e = window.event;
	var lequel = getTarget(e);
	if (lequel) {
		var dernierslash = lequel.id.lastIndexOf("_");
		var jour = lequel.id.substr(dernierslash+1,lequel.id.length - dernierslash);
		var nom_calendrier = lequel.id.substr(16,(dernierslash-16));
		var date_actuelle = document.getElementById("sauve_"+nom_calendrier);
		var jour_actuel = date_actuelle.value.substr(0,2);
		jour_actuel = (jour_actuel.substr(0,1)=='0')?jour_actuel.substr(1,1):jour_actuel;
		var anciennecellule = document.getElementById("calendrier_jour_"+nom_calendrier+"_"+jour_actuel);
		anciennecellule.className='calendrier_td_off';
		var nouvellecellule = document.getElementById("calendrier_jour_"+nom_calendrier+"_"+jour);
		nouvellecellule.className='calendrier_td_on';
		jour=(jour.length==1)?'0'+jour:jour;
		var nouvelledate = jour+date_actuelle.value.substr(2,8);
		var affiche_date = document.getElementById("calendrier_affiche_date_"+nom_calendrier);
		affiche_date.innerHTML = nouvelledate;
		date_actuelle.value=nouvelledate;
	}
}

function calendrier_action_valider(e){
	if (!e) e = window.event;
	var lequel = getTarget(e);
	if (lequel) {
		var nom_calendrier = lequel.id.substr(19,lequel.id.length-19);
		var div_a_effacer=document.getElementById("calendrier_"+nom_calendrier);
		var parent_div_a_effacer = div_a_effacer.parentNode;
		var input_form = document.getElementById(nom_calendrier);
		var affiche_date = document.getElementById("sauve_"+nom_calendrier);
		input_form.value=affiche_date.value;
		parent_div_a_effacer.removeChild(div_a_effacer);
	}
}

function calendrier_action_annuler(e) {
	if (!e) e = window.event;
	var lequel = getTarget(e);
	if (lequel) {
		var nom_calendrier = lequel.id.substr(19,lequel.id.length-19);
		var div_a_effacer=document.getElementById("calendrier_"+nom_calendrier);
		var parent_div_a_effacer = div_a_effacer.parentNode;
		parent_div_a_effacer.removeChild(div_a_effacer);
	}
}
/*  --------------------
	--- Les sliders  ---
	-------------------- */

var table_slider = new Array();
var slider_en_cours = "";

function slider(positionx,positiony,valeur_min,valeur_max,taille,taille_curseur,handle) {
	this.positionx = positionx;
	this.positiony = positiony;
	this.valeur_min = parseInt(valeur_min);
	this.valeur_max = parseInt(valeur_max);
	this.taille = parseInt(taille)-parseInt(taille_curseur);
	var difference = valeur_max-valeur_min;
	var division = parseFloat(this.taille / difference);
	this.division = division;
	this.taille_curseur = taille_curseur;
	this.handle = handle;
}

function gestion_start_slide (e){
	start_slide(e)
}

function start_slide(e) {
	if (!e) e = window.event;
	var lequel = getTarget(e);
	if (lequel) {
		slider_en_cours = lequel.id.substr(8,(lequel.id.length-8));
		addListener(document,"mousemove",function(e){make_slide(e)});
		cancelBubble(e);
	}
}

function make_slide(e) {
	if (slider_en_cours != "") {
		if (!e) e = window.event;
		var slide_curseur = document.getElementById("curseur_"+slider_en_cours);
		var affiche_valeur = document.getElementById("valeur_"+slider_en_cours);
		if (e.pageX) {
			posx = e.pageX;
		} else if (e.clientX) {
			posx = e.clientX + document.body.scrollLeft + document.documentElement.scrollLeft;
		}
		var curseur_x;
		if (posx < table_slider[slider_en_cours]["positionx"]) curseur_x = table_slider[slider_en_cours]["positionx"];
		else if (posx > (table_slider[slider_en_cours]["positionx"]+table_slider[slider_en_cours]["taille"])) curseur_x = table_slider[slider_en_cours]["positionx"]+table_slider[slider_en_cours]["taille"];
		else curseur_x = posx;
		var decalage = (curseur_x-table_slider[slider_en_cours]["positionx"]);
		valeur_slide=Math.round(decalage/table_slider[slider_en_cours]["division"]);
		affiche_valeur.value=valeur_slide;
		eval(table_slider[slider_en_cours]["handle"]+"();");
		if (decalage == 1) new_margin=0;
		else if (decalage > table_slider[slider_en_cours]["taille"]) new_margin = table_slider[slider_en_cours]["taille"];
		else new_margin = decalage;
		slide_curseur.style.marginLeft = new_margin+"px";
	}
}

function update_slide(slider,valeur) {
	if (table_slider[slider]) {
		if ((valeur >= table_slider[slider]["valeur_min"]) && (valeur <= table_slider[slider]["valeur_max"])) {
			var decalage = Math.round(valeur * table_slider[slider]["division"]);
			var slide_curseur = document.getElementById("curseur_"+slider);
			slide_curseur.style.marginLeft = decalage+"px";
			var affiche_valeur = document.getElementById("valeur_"+slider);
			affiche_valeur.value=valeur;
			eval(table_slider[slider]["handle"]+"();");
		}
	}
}

function stop_slide() {
	slider_en_cours = "";
	removeListener(document,"mousemove",gestion_start_slide);
}

/* -----------------
	--- Démarrage ---
	----------------- */

function demarrage_site() {
	var pop = document.getElementById('popup');
	if (pop) {
		addListener(document,'mousemove',movepopup);
		addListener(pop,'mousemove',function(e){cancelBubble(e)});
	}
  /*
	var etiquette = document.getElementById('etiquette');
	var bouton_accueil_titre1 = document.getElementById('bouton_accueil_titre1');
	if (etiquette && bouton_accueil_titre1) {
		addListener(document,'mousemove',moveEtiquette);
		addListener(etiquette,'mousemove',moveEtiquette);
	}
  */
	if (typeof(div_lien_favoris) != "undefined") var favoris = document.getElementById(div_lien_favoris);
	if (favoris) addListener(favoris,'click',function(e){ajoutFavoris(e)});
	var bloc_chat = document.getElementById('bloc_chat');
	if (bloc_chat) {
		GestionAttente("bloc_chat","on");
		xhr_call("admin_aj005");
	}
}

function demarrage_calendrier(nom_calendrier) {
	var date_en_cours = document.getElementById("sauve_"+nom_calendrier);
	var calendrier_annee_moins = document.getElementById("calendrier_annee_moins_"+nom_calendrier);
	addListener(calendrier_annee_moins,'click',function(){GestionAttente('calendrier_'+nom_calendrier,'on');xhr_call('admin_aj001',nom_calendrier,'anneemoins',date_en_cours.value)});
	var calendrier_annee_plus = document.getElementById("calendrier_annee_plus_"+nom_calendrier);
	addListener(calendrier_annee_plus,'click',function(){GestionAttente('calendrier_'+nom_calendrier,'on');xhr_call('admin_aj001',nom_calendrier,'anneeplus',date_en_cours.value)});
	var calendrier_mois_moins = document.getElementById("calendrier_mois_moins_"+nom_calendrier);
	addListener(calendrier_mois_moins,'click',function(){GestionAttente('calendrier_'+nom_calendrier,'on');xhr_call('admin_aj001',nom_calendrier,'moismoins',date_en_cours.value)});
	var calendrier_mois_plus = document.getElementById("calendrier_mois_plus_"+nom_calendrier);
	addListener(calendrier_mois_plus,'click',function(){GestionAttente('calendrier_'+nom_calendrier,'on');xhr_call('admin_aj001',nom_calendrier,'moisplus',date_en_cours.value)});
	for (var index_jour=1;index_jour<=31;index_jour++) {
		var lien_jour=document.getElementById("calendrier_jour_"+nom_calendrier+"_"+index_jour);
		if (lien_jour) addListener(lien_jour,'click',function(e) {calendrier_choix_jour(e);});
	}
	var calendrier_valider = document.getElementById("calendrier_valider_"+nom_calendrier);
	addListener(calendrier_valider,'click',function(e){calendrier_action_valider(e);});
	var calendrier_annuler = document.getElementById("calendrier_annuler_"+nom_calendrier);
	addListener(calendrier_annuler,'click',function(e){calendrier_action_annuler(e);});
}

// Les sliders
function demarrage_sliders () {
	var liste_slider = getElementsByStyleClass("slider");
	if (liste_slider.length != 0) {
		for (boucle=0;boucle<liste_slider.length;boucle++) {
			var nom_slider = liste_slider[boucle].id.substr(7,(liste_slider[boucle].id.length-7));
			whereIs(liste_slider[boucle]);
			var curseur_slider = document.getElementById("curseur_"+nom_slider);
			table_slider[nom_slider] = new slider(liste_slider[boucle].magicPositionX,liste_slider[boucle].magicPositionY,liste_slider[boucle].getAttribute("slidemin"),liste_slider[boucle].getAttribute("slidemax"),liste_slider[boucle].clientWidth,curseur_slider.clientWidth,liste_slider[boucle].getAttribute("handle"));
			addListener(curseur_slider,"mousedown",gestion_start_slide);
			addListener(curseur_slider,"mouseup",stop_slide);
		}
		addListener(document,"mouseup",stop_slide);
	}
}

addListener(window,'load',function () {demarrage_site();addDHTMLPopup();demarrage_sliders();});
