/**
 * Demande une confirmation avant l'execution d'un lien
 *
 * @var		messageConfirm		string		Le message a afficher
 * @var		lienURL				string		Le lien a atteindre après confirmation
 *
 * @return void
 * @author Pierre-Louis Hubert
 **/
function confirmLien(messageConfirm, lienURL) {
	
	if ( confirm(messageConfirm) ) {
		window.location = lienURL;
	}
	
} // END function confirmLien 


/**
 * Demande une confirmation avant de vider un element
 *
 * @var		messageConfirm		string		Le message a afficher
 * @var		idElement			string		L'ID de l'élément à vider
 *
 * @return void
 * @author Pierre-Louis Hubert
 **/
function confirmViderDiv(messageConfirm, idElement) {
	
	if ( confirm(messageConfirm) ) {
		$(idElement).innerHTML = "";
	}
	
} // END function confirmViderDiv 

/**
 * Demande une confirmation avant de vider un formulaire
 *
 * @var		messageConfirm		string		Le message a afficher
 * @var		Formulaire			string		L'ID du formulaire à vider
 *
 * @return void
 * @author Pierre-Louis Hubert
 **/
function confirmRAZForm(messageConfirm, Formulaire) {
	
	if ( confirm(messageConfirm) ) {
		$(Formulaire).reset();
	}
	
} // END function confirmViderDiv 


/**
 * Ouvre un popup centré sur l'écran
 *
 * @var		lienURL			string			Le lien a afficher 
 * @var		largeurPopup	int				La largeur du popup
 * @var		hauteurPopup	int				La hauteur du popup
 *
 * @return void
 * @author Pierre-Louis Hubert
 **/
function Popup(lienURL, largeurPopup, hauteurPopup) {
	
	largeurEcran = window.screen.availWidth;
	hauteurEcran = window.screen.availHeight;
	
	positionX = parseInt(largeurEcran / 2) - parseInt(largeurPopup / 2);
	positionY = parseInt(hauteurEcran / 2) - parseInt(hauteurPopup / 2);
	
	window.open(lienURL, "lePopup", "scrollbars=yes,resizable=yes,width=" + largeurPopup + ",height=" + hauteurPopup + ",top=" + positionY + ",left=" + positionX);
	
} // END function Popup



/**
 * Affiche / masque un element
 *
 * @var		idElement		string		L'id de l'element a afficher / masquer
 *
 * @return void
 * @author Pierre-Louis Hubert
 **/
function afficherCacher(idElement) {
	Event.stop(idElement);
	if ( $(idElement).getStyle('display') == "block" ) {
		$(idElement).hide();
	}
	else {
		$(idElement).show();
	}
	
} // END function afficherFade


/**
 * Affiche un element avec un effet de Fade et le masque sans effet
 *
 * @var		idElement		string		L'id de l'element a afficher / masquer
 * @var		dureeFade		int			Le temps du Fade, par défaut : 0.3 sec
 *
 * @return void
 * @author Pierre-Louis Hubert
 **/
function afficherFade(idElement) {
	Event.stop(idElement);
	if ( $(idElement).getStyle('display') == "block" ) {
		$(idElement).hide();
	}
	else {
		new Effect.Appear($(idElement));
	}
	
} // END function afficherFade 

/**
 * Ouvre et ferme un panneau en modifiant une image témoin
 *
 * @var			idPanneau		string		L'id de l'élément a ouvrir / fermer
 * @var			srcOuvert		string		URL de l'image "Ouvrir"
 * @var			srcFerme		string		URL de l'image "Fermer"
 * @var			effetFerme		string		Effet de fermeture
 * @var			effetOuvre		string		Effet de l'ouverture
 *
 * @return void
 * @author Pierre-Louis Hubert
 **/
function ouvreFermePanneau(idPanneau, srcOuvert, srcFerme, effetFerme, effetOuvre) {
	
	var imageTemoin = $('Temoin_' + idPanneau);
	
	if ($(idPanneau).getStyle('display') == "block") {
		imageTemoin.src = srcOuvert;
		switch (effetFerme) {
			case 'Appear':
				new Effect.Fade($(idPanneau));
			break;

			case 'Slide' :
				new Effect.SlideUp($(idPanneau));
			break;

			default:
				$(idPanneau).hide();
			break;
		}
	}
	else {
		imageTemoin.src = srcFerme;
		switch (effetOuvre) {
			case 'Appear':
				new Effect.Appear($(idPanneau));
			break;

			case 'Slide' :
				new Effect.SlideDown($(idPanneau));
			break;

			default:
				$(idPanneau).show();
			break;
		}
	}
	
} // END function ouvreFermePanneau

/**
 * Valider un formulaire et affiche un message d'attente
 *
 * @var		leFormulaire		string		L'id du formulaire
 * @var		boutonValider		string		L'id du bouton de validation
 * @var		divInfos			string		L'id de la fenêtre d'infos
 * @var		messageInfos		string		Le message à afficher
 *
 * @return void
 * @author Pierre-Louis Hubert
 **/
function validerFormulaire(leFormulaire, boutonValider, divInfos, messageInfos) {
	// console.log("Valider le formulaire");
	$(boutonValider).disabled = "disabled";
	$(divInfos).show();
	$(divInfos).update(messageInfos);
	$(leFormulaire).submit();
	
} // END function validerFormulaire

/**
 * Recherche les liens dont la class CSS est targetBlank et modifie le target pour le passer à "_blank"
 *
 *
 * @return void
 * @author Pierre-Louis Hubert
 **/
function targetBlank () {
	listeLiens = $$('a.targetBlank');
	listeLiens.each( function(leLien) {
		leLien.target = "_blank";
	});
	
} // END function targetBlank 

/**
 * Execute une page via Ajax
 *
 * @var		Url				string		L'url du fichier à lancer
 * @var		champRetour		string		Le champ dans lequel afficher le résultat
 * @var		methodeEnvoie	string		La méthode d'envoie get / post
 *
 * @return void
 * @author Pierre-Louis Hubert
 **/
function urlAjax (Url, champRetour, methodeEnvoie) {
	var requeteAjax	= new Ajax.Updater(	champRetour, Url, {	method: methodeEnvoie, 
															evalScripts:true,
															onComplete:function () {
																new Effect.Highlight(champRetour, {startcolor:'#ffff99', duration:2});
															},
															on404:function () {
																Element.hide('ajaxEnCours');
															},
															onFailure:function () {
																Element.hide('ajaxEnCours');
															}});
} // END function urlAjax

/**
 * Soumission d'un formulaire via Ajax
 *
 * @var		Formulaire		string		L'id du formulaire
 * @var		Url				string		L'url du fichier à lancer
 * @var		champRetour		string		Le champ dans lequel afficher le résultat
 * @var		methodeEnvoie	string		La méthode d'envoie get / post
 *
 * @return void
 * @author Pierre-Louis Hubert
 **/
function formulaireAjax (Formulaire, Url, champRetour, methodeForm, flashFin) {
	var contenuForm	= Form.serialize(Formulaire);
	var requeteAjax	= new Ajax.Updater(	champRetour, Url, {
															method: methodeForm, 
															parameters: contenuForm,
															evalScripts:true,
															onComplete:function () {
 																if (flashFin == true) {
																	new Effect.Highlight(champRetour, {startcolor:'#ffff99', duration:2});
																}
															},
															on404:function () {
																Element.hide('ajaxEnCours');
															},
															onFailure:function () {
																Element.hide('ajaxEnCours');
															}});
} // END function formulaireAjax

/**
 * AFFICHAGE D'UN AJAX EN COURS
 **************************************************************/
var myGlobalHandlers = {
	onCreate: function(){
		Element.show('ajaxEnCours');
	},

	onComplete: function() {
		if(Ajax.activeRequestCount == 0){
			Element.hide('ajaxEnCours');
		}
	}
};

Ajax.Responders.register(myGlobalHandlers);


// Event.observe(window, 'load', targetBlank);