function redirectURL (nouvelleURL) {
	window.location = nouvelleURL;
}

/**
 * Demande une confirmation avant l'execution d'un lien
 **/
function confirmLien(messageConfirm, lienURL) {
	if ( confirm(messageConfirm) ) {
		window.location = lienURL;
	}
} // END function confirmLien 

/**
 * Demande une confirmation avant de vider un element
 **/
function confirmViderDiv(messageConfirm, idElement) {
	if ( confirm(messageConfirm) ) {
		$(idElement).innerHTML = "";
	}
} // END function confirmViderDiv 

/**
 * Demande une confirmation avant de ré-initialiser un formulaire
 **/
function confirmRAZForm(messageConfirm, Formulaire) {
	if ( confirm(messageConfirm) ) {
		$(Formulaire).reset();
	}
} // END function confirmViderDiv 

/**
 * Demande une confirmation avant de vider un formulaire et de la cacher
 **/
function confirmRAZEtCacheForm(messageConfirm, Formulaire, divFormulaire) {
	if ( confirm(messageConfirm) ) {
		$(Formulaire).reset();
		$(divFormulaire).hide();
	}
} // END function confirmViderDiv

/**
 * Demande une confirmation avant d'executer un appel AJAX
 **/
function confirmUrlAjax(messageConfirm, Url, champRetour, methodeEnvoie) {
	if ( confirm(messageConfirm) ) {
		urlAjax (Url, champRetour, methodeEnvoie)
	}
} // END function confirmUrlAjax

/**
 * Ouvre un popup centré sur l'écran
 **/
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 en chargeant son contenu via Ajax
 **/
function afficheCacheAjax(idElement, Url, forcerAjax) {
	if ( $(idElement).getStyle('display') == "block" ) {
		$(idElement).hide();
	}
	else {
		$(idElement).show();
		if (forcerAjax == true || $(idElement).innerHTML == "") {
			urlAjax (Url, idElement, 'get');
		}
	}
} // END function afficheCacheAjax

/**
 * Affiche / masque un element en chargeant son contenu via Ajax
 **/
function rafraichirDivCacheAjax(idElement, Url) {
	if ( $(idElement).getStyle('display') != "block" ) {
		$(idElement).show();
	}
	urlAjax (Url, idElement, 'get');
} // END function afficheCacheAjax


/**
 * Affiche / masque un element
 **/
function afficherCacher(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
 **/
function afficherFade(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
 **/
function validerFormulaire(leFormulaire, boutonValider, divInfos, messageInfos) {
	if (boutonValider != "" && $(boutonValider) != undefined) {
		$(boutonValider).disabled = "disabled";
	}
	$(divInfos).update("<p>" + messageInfos + "</p>");
	$(divInfos).show();
	$(leFormulaire).submit();
	
} // END function validerFormulaire

/**
 * Recherche les liens dont la class CSS est targetBlank et modifie le target pour le passer à "_blank"
 **/
function targetBlank () {
	listeLiens = $$('a.targetBlank');
	listeLiens.each( function(leLien) {
		leLien.target = "_blank";
	});
} // END function targetBlank 

/**
 * Affiche un onglet et cache les autres
 **/
function afficherOnglet (ongletEnCours, listeOnglets) {
	$(ongletEnCours).show();
	$("lien_" + ongletEnCours).addClassName("ongletEnCours");
	listeOnglets.each( function(Onglet) {
		if (Onglet != ongletEnCours) {
			$(Onglet).hide();
			$("lien_" + Onglet).removeClassName("ongletEnCours");
		}
	});
}

/**
 * Execute une page via Ajax avec une alerte à la création et durant l'appel
 * Renseigner Formulaire s'il faut traiter un formulaire
 **/
function urlAjax (Url, champRetour, methodeEnvoie, Formulaire) {
	var contenuForm = (Formulaire != undefined && Formulaire != "") ? Form.serialize(Formulaire) : "";
	var requeteAjax	= new Ajax.Updater(	champRetour, Url, {	method: methodeEnvoie,
		 													parameters: contenuForm,
															evalScripts:true,
															onCreate: function () {
																$(POPUP_ALERTE_AJAX).show();
															},
															
															onComplete:function () {
																new Effect.Highlight(champRetour, {startcolor:COULEUR_FLASH_AJAX, duration:2});
																$(POPUP_ALERTE_AJAX).hide();
															},
															on404:function () {
																$(POPUP_ALERTE_AJAX).hide();
															},
															onFailure:function () {
																$(POPUP_ALERTE_AJAX).hide();
															}});
} // END function urlAjax

/**
 * Execute une page via Ajax sans alerte à la création un a la fin de l'appel
 * Renseigner Formulaire s'il faut traiter un formulaire
 **/
function urlAjaxInvisible (Url, champRetour, methodeEnvoie, Formulaire) {
	var contenuForm = (Formulaire != undefined && Formulaire != "") ? Form.serialize(Formulaire) : "";
	var requeteAjax	= new Ajax.Updater(	champRetour, Url, {	method: methodeEnvoie, parameters: contenuForm, evalScripts:true});
} // END function urlAjaxInvisible

/**
 * Execute une page via Ajax en affichant un indicateur dans le champ Cible
 * Renseigner Formulaire s'il faut traiter un formulaire
 **/
function AjaxSmallIndicCible (Url, champRetour, methodeEnvoie, Formulaire) {
	
	var contenuForm = (Formulaire != undefined && Formulaire != "") ? Form.serialize(Formulaire) : "";
	
	var requeteAjax	= new Ajax.Updater(	champRetour, Url, {	method: methodeEnvoie,
															parameters: contenuForm, 
															evalScripts:true,
															onCreate: function () {
																$(champRetour).update('<img src="' + SMALL_INDIC + '" alt="" />')
															},
															
															onComplete:function () {
																new Effect.Highlight(champRetour, {startcolor:COULEUR_FLASH_AJAX, duration:2});
															}});
} // END function urlAjaxSmallIndicCible

/**
 * Execute une page via Ajax en affichant un indicateur après le lien ou le bouton cliqué
 * remplaceLien = true si le lien doit être remplacé par l'indicateur (Ne fonctionne pas sur les boutons)
 * Renseigner Formulaire s'il faut traiter un formulaire
 **/
function urlAjaxSmallIndicLien (Url, champRetour, methodeEnvoie, Lien, Formulaire, remplaceLien) {
	intituleLien = Lien.innerHTML;
	var contenuForm = (Formulaire != undefined && Formulaire != "") ? Form.serialize(Formulaire) : "";
	
	var requeteAjax	= new Ajax.Updater(	champRetour, Url, {	method: methodeEnvoie,
															parameters: contenuForm,  
															evalScripts:true,
															onCreate: function () {
																if (remplaceLien == true) {
																	$(Lien).update('<img src="' + SMALL_INDIC + '" alt="" id="' + champRetour + '_smallIndic"/>');
																}
																else {
																	$(Lien).insert({after: '<img src="' + SMALL_INDIC + '" alt="" id="' + champRetour + '_smallIndic"/>'});
																}
															},
															
															onComplete:function () {
																new Effect.Highlight(champRetour, {startcolor:COULEUR_FLASH_AJAX, duration:2});
																if (remplaceLien == true) {
																	$(Lien).update(intituleLien);
																}
																else {
																	$(champRetour + "_smallIndic").remove();
																}
															},
															on404:function () {
																if (remplaceLien == true) {
																	$(Lien).update(intituleLien);
																}
																else {
																	$(champRetour + "_smallIndic").remove();
																}
															},
															onFailure:function () {
																if (remplaceLien == true) {
																	$(Lien).update(intituleLien);
																}
																else {
																	$(champRetour + "_smallIndic").remove();
																}
															}});
} // END function urlAjaxSmallIndicCible

function messageErreurFlottant(messageErreur, divMessage) {
	divMessage = (divMessage != undefined && divMessage != "") ? divMessage : "attendreLoading";
	$(divMessage).update(messageErreur + '<br /><a href="#" onclick="fermerMessageFlottant(\'' + divMessage + '\'); return false;">OK</a>');
	
	var objBody = document.getElementsByTagName("body").item(0);
	
	var objOverlay 				= document.createElement("div");
	objOverlay.style.display 	= 'block';
	objOverlay.style.opacity 	= '0.7';
	objOverlay.style.width 		= $(objBody).getWidth() + 'px';
	objOverlay.style.height 	= $(objBody).getHeight() + 'px';
	objOverlay.onclick 			= function() { fermerMessageFlottant(divMessage); }
	objOverlay.setAttribute('id','overlay');
	objBody.appendChild(objOverlay);
	$(divMessage).show();
}

function fermerMessageFlottant (divMessage) {
	divMessage = (divMessage != undefined && divMessage != "") ? divMessage : "attendreLoading";
	
	if($("overlay")) {
		$("overlay").remove();
	}
	$(divMessage).hide();
}

function voirFormAlternatif (idForm, typeForm) {
	if (typeForm == "html") {
		$("divUpload_" + idForm).hide();
		$("divUploadAlt_" + idForm).show();
	}
	else {
		$("divUpload_" + idForm).show();
		$("divUploadAlt_" + idForm).hide();
	}
}

function marquerActif (divPere, elementActif) {
	$(divPere).immediateDescendants().each( function (elementListe) {
		$(elementListe).removeClassName("lienActif");
	});
	$(elementActif).addClassName("lienActif");
}

/**
 * REND LA LISTE ORDONNABLE POUR CLASSER LES RUBRIQUES
 * 
 * @laListe				La liste à ordonner
 * @numVolet			Le numero du volet dans lequel
 *						se trouve la liste
 * @mid					L'id de la rubrique mère
 **************************************************************/
function listeOrdonable(laListe, numVolet, mid, divActionAjax, urlSauveOrdre) {
	//--> AFFICHAGE DE L'AIDE ET DE LIEN POUR SAUVER L'ORDRE
	$("lienOrdre_" + numVolet).innerHTML = '<a href="#" onclick="sauverOrder(\'' + laListe + '\', \'' + urlSauveOrdre + '\', \'' + numVolet + '\', \'' + mid + '\', \'' + divActionAjax + '\'); return false;" class="lienSauver">Sauver l\'ordre</a>';
	infosDiv(divActionAjax, 'Cliquez sur <img src="images/icones/poignee_deplace.png" alt="Deplacer" align="absmiddle" /> pour déplacer les rubriques. Une fois les rubriques ordonnées cliquez sur <b>"Sauver l\'ordre"</b>');
	
	//--> AJOUT DES POIGNEES DE DEPLACEMENT POUR LES ELEMENTS DE LA LISTE
	for (i = 0; i < $(laListe).childNodes.length; i++ ){
		if ($(laListe).childNodes[i].nodeName == "LI") {
			$(laListe).childNodes[i].innerHTML = '<span class="Poignee"></span> ' + $(laListe).childNodes[i].innerHTML;
		}
	}
	
	//--> CREATION DE LA LISTE ORDONNABLE
	Sortable.create(laListe, {handle:'Poignee', constraint:'vertical'});
	Element.addClassName(laListe, "listeOrdonable");
}

/**
 * SAUVEGARDE DE L'ORDRE 
 *
 * @laListe				La liste à ordonner
 * @numVolet			Le numero du volet dans lequel
 *						se trouve la liste
 * @mid					L'id de la rubrique mère
 **************************************************************/
function sauverOrder(laListe, urlSauveOrdre, numVolet, mid, divActionAjax) {
	urlAjax (urlSauveOrdre + "ordre=" + Sortable.sequence(laListe), divActionAjax, "get");
}

