// Fichier des fonctions JAVASCRIPT générales appelées dans toutes les pages du site

function fonction_antispam(domaine,adresse) { // fonction générant le lien "mailto" vers une adresse
	window.location.href="mailto:"+adresse+"@"+domaine;
}
//---------------------------------------------------------------------------

function requete_ajax_statuts_modules(racine_du_site, url_requete, id, nom_table, objet, statut, module) {

	var donnees= "id="+id+"&statut="+statut+"&nom_table="+nom_table+"&racine_du_site="+racine_du_site+"&url_requete="+url_requete+"&module="+module;
	
//	alert(donnees);
	requete_ajax_statuts(racine_du_site, url_requete, donnees, objet);
	
	
} // fin function requete_ajax_statuts_modules

function requete_ajax_en_avant(racine_du_site, url_requete, id, nom_table, objet, enavant, module) {

	var donnees= "id="+id+"&enavant="+enavant+"&nom_table="+nom_table+"&racine_du_site="+racine_du_site+"&url_requete="+url_requete+"&module="+module;
	
//	alert(donnees);
	requete_ajax_statuts(racine_du_site, url_requete, donnees, objet);
	
	
} // fin function requete_ajax_statuts_modules




function requete_ajax_statuts_utilisateurs(racine_du_site, url_requete, id, nom_table, objet, statut, module) {

	var donnees= "id="+id+"&statut="+statut+"&nom_table="+nom_table+"&racine_du_site="+racine_du_site+"&url_requete="+url_requete+"&module="+module;
	
//	alert(donnees);
	requete_ajax_statuts(racine_du_site, url_requete, donnees, objet);
	
	
} // fin function requete_ajax_statuts_modules




//---------------------------------------------------------------------------
function requete_ajax_statuts(racine_du_site, url_requete, donnees, objet) {
	
	
		//visuel_chargement="<img src=\""+racine_du_site+"template/_defaut/pictos/cercle_de_progression_24px.gif\">";
		
		var req = null; 

		//document.getElementById(objet).innerHTML=visuel_chargement;
		if(window.XMLHttpRequest)
			req = new XMLHttpRequest(); 
		else if (window.ActiveXObject)
			req  = new ActiveXObject("Microsoft.XMLHTTP"); 

		req.onreadystatechange = function()
		{ 
			//document.getElementById(objet).innerHTML=visuel_chargement;
			if(req.readyState == 4)
			{
				if(req.status == 200)
				{	
					document.getElementById(objet).innerHTML = req.responseText;
				}	
				else	
				{
					document.getElementById(objet).innerHTML ="CODE ERREUR : " + req.status + " " + req.statusText;
				}	
			} 
		}; 
		req.open("POST", racine_du_site+url_requete, true); 
		req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); 
		
		// envoi des données en POST:
		req.send(donnees);
	
	
} // FIN function requete_ajax 



function requete_ajax_parametrage(racine_du_site, url_requete, id, nom_du_champ, objet) {
	
	var monchamp = document.getElementById(nom_du_champ);
	
	var donnees= "id="+id+"&valeur="+monchamp.value;
//	alert(donnees);
	requete_ajax(racine_du_site, url_requete, donnees, objet);
	
	
} // fin function


//---------------------------------------------------------------------------
function requete_ajax(racine_du_site, url_requete, donnees, objet) {
	
	
		visuel_chargement="<img src=\""+racine_du_site+"template/_defaut/pictos/cercle_de_progression_18px.gif\">";
		
		var req = null; 

		document.getElementById(objet).innerHTML=visuel_chargement;
		if(window.XMLHttpRequest)
			req = new XMLHttpRequest(); 
		else if (window.ActiveXObject)
			req  = new ActiveXObject("Microsoft.XMLHTTP"); 

		req.onreadystatechange = function()
		{ 
			document.getElementById(objet).innerHTML=visuel_chargement;
			if(req.readyState == 4)
			{
				if(req.status == 200)
				{	
					document.getElementById(objet).innerHTML = req.responseText;
				}	
				else	
				{
					document.getElementById(objet).innerHTML ="CODE ERREUR : " + req.status + " " + req.statusText;
				}	
			} 
		}; 
		req.open("POST", racine_du_site+url_requete, true); 
		req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); 
		
		// envoi des données en POST:
		req.send(donnees);
	
	
} // FIN function requete_ajax 



// -----------------------------------------------------------------------------------------------------------------
// fonctions gérant le fondu des éléments : (éléments appraissant en fondu d'alpha - ex : cf. La Boheme)
// -----------------------------------------------------------------------------------------------------------------


function changeOpac(increment, id) {
    var object = document.getElementById(id).style;
    
	ancienne_opacite = object.opacity*100;
	nouvelle_opacite = ancienne_opacite+increment;
	
	if (nouvelle_opacite<0)   { nouvelle_opacite=0; }
	if (nouvelle_opacite>100) { nouvelle_opacite=100; }
	
	object.opacity = (nouvelle_opacite / 100);
    object.MozOpacity = (nouvelle_opacite / 100);
    object.KhtmlOpacity = (nouvelle_opacite / 100);
    object.filter = "alpha(opacity=" + nouvelle_opacite + ")";
	
	// on détermine si on arrète la boucle de changement d'opacité :
	if ((nouvelle_opacite==0) || (nouvelle_opacite==100)) {
		object.filter = "none"; // correction de bug d'affichage sous IE7.
		if (nouvelle_opacite==0) { // l'objet est complètement effacé, maintenant on le fait disparaitre
			object.display= "none";
		}
		return false; // fin de la boucle
	} else {
		return true; // on continue la boucle
	}
	
} // fin function changeOpac


function fondu_opacite_onclick(id, increment, millisec) {
	
	objet = document.getElementById(id);

	if(changeOpac(increment, id)) {
				setTimeout("fondu_opacite_onclick('" + id + "', " + increment + ", " + millisec + ")",millisec);
	} 
	
} // fin function fondu_opacite_onclick



function fondu_opacite_onmouseover(id, increment, millisec) {
	// dans cette fonction on prend en compte le fait que l'on peut sortir de la zone réactive avant la fin du fondu
	// on gère cette possibilité avec la propriété "color" de l'objet cible.
	
	
	objet = document.getElementById(id);

	condition_ok = (((increment>0) && (objet.style.color=='white')) || ((increment<0) && (objet.style.color=='black'))) // on vérifie si on doit continuer la boucle
	
	if(condition_ok && changeOpac(increment, id)) {
				setTimeout("fondu_opacite_onmouseover('" + id + "', " + increment + ", " + millisec + ")",millisec);
	} 
	
} // fin function fondu_opacite_onmouseover


// fonction affichant un objet masqué (en display=none) avec un fondu :
// ------------------------------------------------------------------------
function afficher_en_fondu(id) {
	
    var style_object = document.getElementById(id).style;
	nouvelle_opacite=0; // on met d'abord l'opacité de lo'bjet à zéro.
	
	style_object.opacity = (nouvelle_opacite / 100);
    style_object.MozOpacity = (nouvelle_opacite / 100);
    style_object.KhtmlOpacity = (nouvelle_opacite / 100);
    style_object.filter = "alpha(opacity=" + nouvelle_opacite + ")";
	
	document.getElementById(id).style.display='block'; // on affiche ensuite l'objet, qui reste invisible car opacité nulle.
		
	fondu_opacite_onclick(id, 5, 10);
}



// fonction masquant un objet affiché (en display=block) avec un fondu :
// ------------------------------------------------------------------------
function masquer_en_fondu(id) {
	
    var style_object = document.getElementById(id).style;
	nouvelle_opacite=100; // on met d'abord l'opacité de lo'bjet à zéro.
	
	style_object.opacity = (nouvelle_opacite / 100);
    style_object.MozOpacity = (nouvelle_opacite / 100);
    style_object.KhtmlOpacity = (nouvelle_opacite / 100);
    style_object.filter = "alpha(opacity=" + nouvelle_opacite + ")";
	
	document.getElementById(id).style.display='block'; // on affiche ensuite l'objet (qui est déjà affiché, normalement.
		
	fondu_opacite_onclick(id, -5, 10);
}

// fonction masquant un objet affiché (en display=block) SANS fondu :
// ------------------------------------------------------------------------
function masquer_sans_fondu(id) {
	document.getElementById(id).style.display='none';
}

// fonction affichant un objet masqué (en display=none) SANS fondu :
// ------------------------------------------------------------------------
function afficher_sans_fondu(id) {
	document.getElementById(id).style.display='block';
}


// -----------------------------------------------------------------------------------------------------------------
// -----------------------------------------------------------------------------------------------------------------
// -----------------------------------------------------------------------------------------------------------------
// fonctions gérant les valeurs indicatives dans des champs input de formulaire (text et password)
// -----------------------------------------------------------------------------------------------------------------
// -----------------------------------------------------------------------------------------------------------------
// -----------------------------------------------------------------------------------------------------------------

// fonction qui remplace le texte par défaut par un champ vide sur le champ "login"
function gestion_focus_champ_formulaire(objet, action, valeur_par_defaut, classe_css_apres) {
	// valeurs possibles :
	// action = 'focus' ou 'blur'
	
	if ((action=='focus') && (objet.value==valeur_par_defaut)) {
			objet.value='';
			objet.className = classe_css_apres;
	}
	
	if ((action=='blur') && (objet.value=='')) {
			objet.value=valeur_par_defaut;
			objet.className = classe_css_apres;
	}
	
	
} // fin function gestion_focus_champ_formulaire


// fonction qui remplace le texte par défaut par un champ vide sur le champ "login"
function gestion_focus_champ_password(id_champ_defaut, id_champ_reel, action) {
	// valeurs possibles :
	// action = 'focus' ou 'blur'
	
	if (action=='focus') {
			document.getElementById(id_champ_defaut).style.display='none';
			document.getElementById(id_champ_reel).style.display='inline';
			document.getElementById(id_champ_reel).focus();
	}
	
	if ((action=='blur') && (document.getElementById(id_champ_reel).value.length==0)) {
			document.getElementById(id_champ_defaut).style.display='inline';
			document.getElementById(id_champ_reel).style.display='none';
	}
	
	
} // fin function gestion_focus_champ_formulaire



// -----------------------------------------------------------------------------------------------------------------
// -----------------------------------------------------------------------------------------------------------------
// -----------------------------------------------------------------------------------------------------------------
// fonctions gérant le défilement automatique des encarts résumés d'articles.
// -----------------------------------------------------------------------------------------------------------------
// -----------------------------------------------------------------------------------------------------------------
// -----------------------------------------------------------------------------------------------------------------


var scroll_step_auto=1; // le PAS du défilement en mode AUTOMATIQUE
var scroll_step_manu=3; // le PAS du défilement en mode MANUEL (plus rapide)


function defilement_automatique(num_encart,sens) {
	// sens : 1 vers le bas, -1 on remonte vers le haut
	
	
	div_encart = document.getElementById('encart_articles_'+num_encart);
	objet = div_encart.getElementsByTagName("div")[0]; // on récupère la div qui scrolle.
	var defilement_auto = div_encart.getElementsByTagName("input")[2].value; // on récupère la valuer du défilement auto
	
	 hauteur_max = objet.scrollHeight-(eval(objet.style.height.replace('px', '')));
	// alert(hauteur_max+"-"+objet.scrollHeight);
	
	var position = eval(div_encart.getElementsByTagName("input")[0].value); // on RECUPERE la position dans le 1er input du formulaire caché
	
	
	if (position<hauteur_max) {
			position +=(scroll_step_auto*sens);
			objet.scrollTop = position; // on défile
	} else {
		position=0;
	}
	
	div_encart.getElementsByTagName("input")[0].value= position; // on affecte la position dans le 1er input du formulaire caché

	if (defilement_auto=='oui') {
		setTimeout("defilement_automatique("+num_encart+","+sens+")",20);
	}

} // fin FUNCTION


function defilement_manuel(num_encart,sens) {
	// sens : 1 vers le bas, -1 on remonte vers le haut
	
	div_encart = document.getElementById('encart_articles_'+num_encart);
	objet = div_encart.getElementsByTagName("div")[0]; // on récupère la div qui scrolle.
	hauteur_max = objet.scrollHeight-(eval(objet.style.height.replace('px', '')));

	var position = eval(div_encart.getElementsByTagName("input")[0].value); // on RECUPERE la position dans le 1er input du formulaire caché

	if (position<0) {
		position = hauteur_max;
		objet.scrollTop = position; // on défile
	}
	
	if (position>hauteur_max) {
		position = 0;
		objet.scrollTop = position; // on défile
	}
	
	position +=(scroll_step_manu*sens);
	objet.scrollTop = position; // on défile manuellement
	div_encart.getElementsByTagName("input")[0].value= position; // on affecte la position dans le 1er input du formulaire caché
	
	var defilement_manu = div_encart.getElementsByTagName("input")[3].value; // on récupère la valeur du défilement manuel
	if (defilement_manu=='oui') {
		setTimeout("defilement_manuel("+num_encart+","+sens+")",20);
	}

} // fin FUNCTION


function debut_defilement_manuel(num_encart,sens) {

	div_encart = document.getElementById('encart_articles_'+num_encart);
		
		var mode_actif='manuel';
		var defilement_auto = 'non';
		var defilement_manu = 'oui';
		
		// on affecte les valeurs dans le formulaire caché :
		div_encart.getElementsByTagName("input")[1].value= mode_actif; 
		div_encart.getElementsByTagName("input")[2].value= defilement_auto; 
		div_encart.getElementsByTagName("input")[3].value= defilement_manu; 
		
		defilement_manuel(num_encart,sens);
} // fin FUNCTION



function arret_defilement_manuel(num_encart) {

	div_encart = document.getElementById('encart_articles_'+num_encart);
		
		var mode_actif='manuel';
		var defilement_auto = 'non';
		var defilement_manu = 'non';
		
		// on affecte les valeurs dans le formulaire caché :
		div_encart.getElementsByTagName("input")[1].value= mode_actif; 
		div_encart.getElementsByTagName("input")[2].value= defilement_auto; 
		div_encart.getElementsByTagName("input")[3].value= defilement_manu; 

} // fin FUNCTION




function pause_au_survol(num_encart) {
	
	div_encart = document.getElementById('encart_articles_'+num_encart);
	var mode_actif = div_encart.getElementsByTagName("input")[1].value; // on récupère la valeur du mode actif
	
	if (mode_actif=='automatique') {
		var defilement_auto = 'non';
		div_encart.getElementsByTagName("input")[2].value= defilement_auto; // on affecte la position dans le champ input du formulaire caché
	}
} // fin FUNCTION



function reprise_au_survol(num_encart) {
	
	div_encart = document.getElementById('encart_articles_'+num_encart);
	var mode_actif = div_encart.getElementsByTagName("input")[1].value; // on récupère la valeur du mode actif

	if (mode_actif=='automatique') {
		var defilement_auto = 'oui';
		div_encart.getElementsByTagName("input")[2].value= defilement_auto; // on affecte la position dans le champ input du formulaire caché
		defilement_automatique(num_encart,1);
	}
} // fin FUNCTION



function change_mode_defilement(num_encart) {

	div_encart = document.getElementById('encart_articles_'+num_encart);
	var mode_actif = div_encart.getElementsByTagName("input")[1].value; // on récupère la valeur du mode actif

	if (mode_actif=='automatique') {
		mode_actif='manuel';
		var defilement_auto = 'non';
		var defilement_manu = 'non'; // le défilement manuel ne s'enclenche pas tout seul
		
		// on affecte les valeurs dans le formulaire caché :
		div_encart.getElementsByTagName("input")[1].value= mode_actif; 
		div_encart.getElementsByTagName("input")[2].value= defilement_auto; 
		div_encart.getElementsByTagName("input")[3].value= defilement_manu; 
		
	} else { 
		mode_actif='automatique';
		var defilement_auto = 'oui';
		var defilement_manu = 'non'; // le défilement manuel ne s'enclenche pas tout seul
		
		// on affecte les valeurs dans le formulaire caché :
		div_encart.getElementsByTagName("input")[1].value= mode_actif; 
		div_encart.getElementsByTagName("input")[2].value= defilement_auto; 
		div_encart.getElementsByTagName("input")[3].value= defilement_manu; 
		
		defilement_automatique(num_encart,1);
	}
} // fin FUNCTION


// --------------------------------------------------------------------------------------------------------------
// fonction gérant l'affichage du message d'alerte pour les opérations réservées aux membres connectés
function alerte_connexion_membres() {
	alert("Cette opération est réservée aux membres inscrits sur ce site.\nVeuillez vous identifier d'abord.");
}



// --------------------------------------------------------------------------------------------------------------
// fonction générant les liens de la liste de chox des modules
function genere_lien(lien) {
	if (lien=='deconnexion')
	{
		window.location.href=racine_admin+"deconnexion.php";
	}
	else
	{
		window.location.href=lien;
	}
	/*
	if (valeur=='DIAPORAMA')
	{
		window.location.href=racine_admin+lien;
	}
	if (valeur=='ACTUALITES')
	{
		window.location.href=lien+"sommaire.php?module="+valeur+"&action=lister";
	}
	if (valeur=='POPUP')
	{
		window.location.href=lien+"sommaire.php?module="+valeur+"&action=lister";
	}
	if (valeur=='NEWSLETTER')
	{
		window.location.href=lien+"sommaire.php?module="+valeur+"&action=lister";
	}
	if (valeur=='MAGASINS')
	{
		window.location.href=lien+"sommaire.php?module="+valeur+"&action=lister_magasins";
	}
	if (valeur=='INTEMPORELS')
	{
		window.location.href=lien+"sommaire.php?module="+valeur+"&action=lister_categories&type=intemporel";
	}
	if (valeur=='SELECTIONS')
	{
		window.location.href=lien+"sommaire.php?module="+valeur+"&action=lister_categories&type=selection";
	}
	if (valeur=='COLLECTIONS')
	{
		window.location.href=lien+"sommaire.php?module="+valeur+"&action=lister_collections";
	}
	if (valeur=='GESTION_MODULES')
	{
		window.location.href=lien+"sommaire.php?module="+valeur+"&action=lister_utilisateurs";
	}
	if (valeur=='UTILISATEURS')
	{
		window.location.href=lien+"sommaire.php?module="+valeur+"&action=modifier_utilisateur";
	}*/
}
// fin fonction genere_lien
//-------------------------------------------------------------------------------------


// ----------------------------------------------------------------------------------------
// fonction qui permet d'afficher la div du parametrage
function afficher_parametrage(objet) {
	balise_cible = document.getElementById("bloc_parametrage");
	balise_cible.style.display='block';
}
// FIN fonction afficher_parametrage
// ----------------------------------------------------------------------------------------


// ----------------------------------------------------------------------------------------
// fonction qui permet de fermer la div du parametrage
function cacher_parametrage(objet) {
	balise_cible = document.getElementById("bloc_parametrage");
	balise_cible.style.display='none';
	window.location.reload();
}
// FIN fonction cacher_parametrage
// ----------------------------------------------------------------------------------------

// --------------------------------------------------------------------------------------------------------------
// fonction qui affiche l'aide du paramétrage des modules
function affiche_aide_parametrage_module(id) {
	balise_cible = document.getElementById("aide_"+id+"");
	balise_cible.style.display='block';
}
// FIN fonction affiche_aide_parametrage_module
// --------------------------------------------------------------------------------------------------------------


// --------------------------------------------------------------------------------------------------------------
// fonction qui permet de faire scroller la page d'un certain nombre de pixels
function faire_scroller_la_page(valeur_scroll) {
	 window.scrollTo(0,valeur_scroll);
}
// FIN fonction faire_scroller_la_page
// --------------------------------------------------------------------------------------------------------------


// --------------------------------------------------------------------------------------------------------------
// fonction qui rafraichit la page courante du site tout en conservant le niveau de scroll vertical :
function rafraichir_page(racine_du_site) {
	
		scroll_page();		

window.location.href= racine_du_site+'/connexion/rafraichir_page.php?scroll='+scroll_page;

}
// FIN fonction rafraichir_page
// --------------------------------------------------------------------------------------------------------------


// --------------------------------------------------------------------------------------------------------------
// fonction qui récupère la valeur de défilement de la page (scroll vertical)
function scroll_page() {
	
	if (window.pageYOffset==undefined) {
        // propriété utilisée pour Internet Explorer et Firefox :
		valeur_scroll_page = document.documentElement.scrollTop;
	} else {
        // propriété utilisée pour Safari :
		valeur_scroll_page = window.pageYOffset;
	}
	
	return valeur_scroll_page;
} // fin function
// --------------------------------------------------------------------------------------------------------------

function affiche_selection_actualites(racine_du_site, url_requete, theme, objet, nom_champ, valeur)
	{

	var donnees= "theme="+theme+"&valeur="+valeur+"&nom_champ="+nom_champ;
	
	//alert(donnees);
	requete_ajax_div_select(racine_du_site, url_requete, donnees, objet);
	
	
} // fin function aff_div_lien

//---------------------------------------------------------------------------
function requete_ajax_div_select(racine_du_site, url_requete, donnees, objet) {
	
	
		//visuel_chargement="<img src=\""+racine_du_site+"template/_defaut/pictos/cercle_de_progression_24px.gif\">";

		var req = null; 

		//document.getElementById(objet).innerHTML=visuel_chargement;
		if(window.XMLHttpRequest)
			req = new XMLHttpRequest(); 
		else if (window.ActiveXObject)
			req  = new ActiveXObject("Microsoft.XMLHTTP"); 

		req.onreadystatechange = function()
		{ 
			//document.getElementById(objet).innerHTML=visuel_chargement;
			if(req.readyState == 4)
			{
				if(req.status == 200)
				{	
					document.getElementById(objet).innerHTML = req.responseText;
				}	
				else	
				{
					document.getElementById(objet).innerHTML ="CODE ERREUR : " + req.status + " " + req.statusText;
				}	
			} 
		}; 
		req.open("POST", racine_du_site+url_requete, true); 
		req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); 
		
		// envoi des données en POST:
		req.send(donnees);
	
	
} // FIN function requete_ajax 


//-----------------------------------------------------------------------------------------------------
//-----------------------------------------------------------------------------------------------------
// fonctions de gestion de l'appel à la boite de dialogue de chargement des fichiers dans Userfiles :
//-----------------------------------------------------------------------------------------------------
function BrowseServer()
{
	OpenFileBrowser( "../fckeditor/editor/filemanager/browser/default/browser.html?Connector=connectors/php/connector.php", 880, 420 ) ;
}


function OpenFileBrowser( url, width, height )
{
	// oEditor must be defined.

	var iLeft = ( 800  - width ) / 2 ;
	var iTop  = ( 600 - height ) / 2 ;

	var sOptions = "toolbar=no,status=no,resizable=yes,dependent=yes,scrollbars=yes" ;
	sOptions += ",width=" + width ;
	sOptions += ",height=" + height ;
	sOptions += ",left=" + iLeft ;
	sOptions += ",top=" + iTop ;

	window.open( url, 'FCKBrowseWindow', sOptions ) ;
	
} // fin function OpenFileBrowser( url, width, height )


function SetUrl( url )
{
	document.getElementById('txtUrl').value = url ;
}
//-----------------------------------------------------------------------------------------------------
//-----------------------------------------------------------------------------------------------------


function affiche_selection_evenements(racine_du_site, url_requete, id_theme, objet, nom_champ, valeur)
	{
	var donnees= "id_theme="+id_theme+"&valeur="+valeur+"&nom_champ="+nom_champ;
	
	//alert(donnees);
	requete_ajax_div_select(racine_du_site, url_requete, donnees, objet);
	
	
} // fin function affiche_selection_objectifs


function affiche_selection_posts(racine_du_site, url_requete, id_evenement, objet, nom_champ, valeur)
	{
	var donnees= "id_evenement="+id_evenement+"&valeur="+valeur+"&nom_champ="+nom_champ;
	
	//alert(donnees);
	requete_ajax_div_select(racine_du_site, url_requete, donnees, objet);
	
	
} // fin function affiche_selection_objectifs


function efface_actions()

{
	 document.getElementById('actions').innerHTML = '';
}


function affiche_submit()
{

balise_cible = document.getElementById("submit");
balise_cible.style.display='block';
}

//---------------------------------------------------------------------------


function modifier_ordre(racine_du_site, id, ordre1, ordre2, module, table, id_type_de_post)
{
	scroll_page();
	
		window.location.href=racine_du_site+module+"/traitements/modifier_ordre.php?table="+table+"&param_supp="+id_type_de_post+"&id="+id+"&ordre1="+ordre1+"&ordre2="+ordre2+"&scroll="+valeur_scroll_page;
}
