<!--//--><![CDATA[//><!--
function handleCommonEvents() {
	//--- BOUTON FERMETURE DE POPUP AVEC RAFRAICHISSEMENT DE LA FENETRE PARENTE
	var closers = $("btn_close", "lnk_close");
	closers.each(function(item) {
		if ($(item)) {
			Event.observe(item, 'click', function(event){ 
					if (window.opener!=null) {
						//--- On rafraîchi la fenêtre appellante
						opener.location.reload();
						window.close();
					//--- Si la fenêtre courante a été ouverte dans une iframe
					} else {
						//--- On rafraîchi la fenêtre parente
						parent.location.reload();
					}
					Event.stop(event);
				});
		}
	});
}
function tagRequiredFields(ElmtId, Selector, flag) {
	var required = $(ElmtId).getElementsBySelector(Selector);
	required.each(function(s) {
		//--- Champ courant
		var field = s.down(1);
		//--- Ajout de la classe "champ requis"
		field.addClassName("required");
		//--- Affichage d'un marqueur de champ ?
		if (flag && flag.length > 0 ) {
			printFlags(field, flag);
		}
	});
}
function removeRequiredFields(ElmtId, Selector, flag) {
	var required = $(ElmtId).getElementsBySelector(Selector);
	required.each(function(s) {
		//--- Champ courant
		var field = s.down(1);
		//--- Ajout de la classe "champ requis"
		field.removeClassName("required");
	});
}

//--- Affiche un drapeau de champ obligeatoire
//****************************************************************************************************
function printFlags(Elmt, flag) {
	var prefix = "flag";
	var separator = "-";
	//--- Concatenation du prefix
	prefix += separator
	//--- Concatenation de l'ID du marqueur
	var ElmtId = prefix+Elmt.getAttribute("id").toLowerCase();
	//--- Créé l'élément conteneur
	var myElmt = new Element('div', { 'class': prefix, id: ElmtId }).update(flag);
	//--- Insert l'élément conteneur dans le DOM
	Elmt.insert({after: myElmt});
}

/*
	@description: Parcours le tableau des champs de formulaires passé en paramètre
				et affiche un compteur qui décrémente le nombre de caractères autorisés.
	@f: Chaine nom du formulaire (ex: 'frm-contact')
	@s: Chaine sélecteur de l'élément compteur (ex: 'div.char-counter')
*/
function limitFieldsChars(Fields, Selector) {
	Fields.each(function(el) {
		if ($(el)) {
			var Elmt = $(el)
			//--- Element 'Compteur'
			var arrSiblings = Elmt.nextSiblings();
			arrSiblings.each(function(s) {
				var allowed;
				if (s.match(Selector)) {
					//--- Element 'Décompte'
					var countdown = s.down();
					if(Elmt.type=="text") {
						allowed = Elmt.getAttribute("maxlength");
						countdown.next().innerHTML=allowed;
					} else if(Elmt.type=="textarea") {
						//--- Element 'Nombre de caractères autorisés'
						allowed = countdown.next().innerHTML;
					}
					//--- Function de décompte et de limitation du nombre de caractères saisis
					limitText(Elmt, countdown, allowed);
					//--- Gestionnaire d'événements
					Event.observe(el, "focus", function() {s.show();});
					Event.observe(el, "blur", function() {s.hide();});
					Event.observe(el, "keyup", function() {limitText(Elmt, countdown, allowed);});
				}
			});
		}
	});
}

/*
	@description: Parcours les compteurs d'affichage du nbre de caractères du formulaire passé en paramètre
					Décrémente le nombre de caractères autorisés dans le champ qui précéde le compteur.
	@f: Chaine nom du formulaire (ex: 'frm-contact')
	@s: Chaine sélecteur de l'élément compteur (ex: 'div.char-counter')
*/
function showMaxAllowedChars(f, s) {
	if($(f)&&(s.length>0)) {
		//--- Récupération des noeuds auxquels s'applique l'expression css du sélecteur
		var nodes = $(f).getElementsBySelector(s);
		//console.log(nodes.inspect());
		//--- Parcours des noeuds récupérés
		nodes.each(function(node) {
			//--- Element 'Décompte'
			var countdown = node.down();
			//--- Noeuds frères qui précédent le compteur
			var arrPreviousSiblings = node.previousSiblings();
			//--- Parcours des noeuds précédents
			arrPreviousSiblings.each(function(input) {
				//--- Nbre max de caractères autorisés
				var allowed;
				//--- Filtrage des champs textes
				if((input.type=="text")||(input.type=="textarea")){
					if(input.type=="text") {
						//--- Extraction du nbre max autorisé
						allowed = input.getAttribute("maxlength");
						//--- Affichage de l'extraction
						countdown.next().innerHTML=allowed;
					} else if(input.type=="textarea") {
						//--- Element 'Nombre de caractères autorisés'
						allowed = countdown.next().innerHTML;
					}
					
					//--- Function de décompte et de limitation du nombre de caractères saisis
					limitText(input, countdown, allowed);
					
					//--- Gestionnaires d'événements
					Event.observe(input, "focus", function() {
									if(typeof Effect == 'undefined'){
										node.show();
									}else{
										new Effect.Appear(node, {duration : 1 });
									}
								});
					Event.observe(input, "blur", function() {
									if(typeof Effect == 'undefined'){
										node.hide();
									}else{
										new Effect.Fade(node, {duration : 1 });
									}
								});
											
					Event.observe(input, "keyup", function() {
									limitText(input, countdown, allowed);
								});
				}
			});
		});
	}
}
//--- Limite le Nbre de caractères saisies dans un champ text ou textarea
//****************************************************************************************************
function limitText(limitField, limitCount, limitNum) {
	if (limitField && limitCount) {
		if (limitField.value.length > limitNum) {
			limitField.value = limitField.value.substring(0, limitNum);
		} else {
			limitCount.innerHTML = limitNum - limitField.value.length;
		}
	}
}
//--- Ajoute une 'OPTION' avec sa valeur 'VALUE' et son texte 'TEXT' a une liste de choix cible 'TARGET'
//****************************************************************************************************
function addToComboList(target, value, text) {
	var option = document.createElement('option');
	option.value = value;
	option.selected = true;
	
	var optionText = document.createTextNode(text);
	
	option.appendChild(optionText);
	//--- Si la fenêtre courante a été ouverte en Popup
	if (window.opener!=null) {
		//var targetElmt = opener.document.getElementById(target);
		var targetElmt = document.getElementById? opener.document.getElementById(target): document.all? opener.document.all[target]: null;
		if (targetElmt!=null) targetElmt.appendChild(option);
	//--- Si la fenêtre courante a été ouverte dans une iframe
	} else {
		var targetElmt = document.getElementById? parent.document.getElementById(target): document.all? parent.document.all[target]: null;
		if (targetElmt!=null) targetElmt.appendChild(option);
	}
}
function editComboList(selector) {
	//--- Ajout de catégorie dans le référentiel
	var nodes = $$(selector);
	nodes.each(function(item, index) {
		item.onclick=function() {
			this.blur();
			//--- IDENTIFIANT DU LIEN
			var lnk_id = item.getAttribute("id");
			
			//--- ADRESSE DU LIEN
			var lnk_url = item.href;
			window.open(lnk_url,'','toolbar=no,menubar=yes,location=no,directories=no,status=no,scrollbars=yes,resizable=yes,copyhistory=no,height=550,width=680');
			return false;
		}
	});
}
function confirmSubmit(msg) {
	var agree=confirm(msg);
	if (agree) {
		return true ;
	} else {
		return false ;
	}
}
//--><!]]>