//-----------------------------------------Fonctions relative à newsletter
/*sectionTab = new Array('ecole','juniors','aquagym','synchro','triathlon');*/
cibleTab = Array('membres','public');
//--------------------------------------------------------------------Partie Edition------------------------------------------------
//Formulaire de mise à jour des newsletter
function contenuAjaxNewsletter(url,idForm,idDiv,parametres,afficherDansTA){ 	
//alert("url: "+url+",idForm: "+idForm+",idDiv ou idArea: "+idDiv +",param: "+parametres.id)
	new Ajax.Updater (idDiv,url,{
		method :'post',
		parameters : parametres,
		encoding	:	'UTF-8',
		onSuccess : function (xmlHttp){
			var resultat = xmlHttp.responseText.strip(); //alert("resultat dans ContenuAjax:"+resultat);
			//mise à jour du textearea
			if(afficherDansTA){
				//Mise à jour du formulaire
				var oFCKeditor = new FCKeditor( 'FCKeditor1' ) ;
				FCKeditorAPI.GetInstance(idDiv).SetHTML(resultat);
				
				
				
			}
			else if(idForm=='newsletter'){
				versNewsletter(idDiv,idForm,resultat);
				
			}
		}
	});
	
}

function newsletterForm(){
	
	var contenu = '<div id = "resultat_newsletter"></div>';
	contenu += '<form name="newsletter" id="newsletter">';
	contenu += '<label><b>Titre :</b></label><br>';
	contenu += '<input type="text" id="title" name="title" onkeyup="versCompletionNewsletter(\'newsletter\')" size="70"/>';
	//balise google suggeste
	contenu += '<div id="liste_newsletter" class="autocomplete" style="display:none"></div><br>';//
	contenu += '<label><b>Destination de la Newsletter :</b> <br></label><label>Membres</label><input type="radio" name="cible" value="membres" onclick="miseEnPage(\'membres\')" />';
	contenu += '<label>Public</label><input type="radio" name="cible" value="public" onclick="miseEnPage(\'public\')" /><br>';
	
	contenu += '<label><b>Sujet :</b></label><br>';
	contenu += '<textarea id="sujet" name="sujet" cols="12" rows="12"></textarea><br>';
	contenu += '<input name="publier" type="button" value="Publier" onclick="posterDonneesNewsletter(\'sujet\',\'newsletter\',0);return false;" />';
	contenu += '<input name="maj" type="button" value="Mettre à jour" onclick="posterDonneesNewsletter(\'sujet\',\'newsletter\',1);return false;" />';
	contenu +='<input name="supprimer" type="button" value="Supprimer" onclick="posterDonneesNewsletter(\'sujet\',\'newsletter\',-1);return false;" />';
	
	contenu += '<input name="envoyer" type="button" value="Envoyer la Newsletter" onclick="envoyerNewsletter(\'sujet\');return false;" />';
	
	contenu += '<span id="publication"></span><span id="idAuteur"></span><br>';
	contenu += '<input type="hidden" id="id" name="id" value="" />';
	contenu += '</form>';
		
	$("newsletterMAJ").innerHTML = contenu;
	
}
function miseEnPage(cible) { 
	
	var contenu = '<table border=1 style="font-size:11px; border-collapse:collapse;" width=562 cellpadding=5><tr height=85><td style="background-image:url(http://www.triteampully.ch/images/EnteteNewsletter.png) ;" ></td></tr>';
	contenu += '<tr style=" text-align:center;" height=30><td  style="font-weight:bold; background-image:url(http://www.triteampully.ch/images/navigationVierge.png) ;" >Placer l\'objet de la newsletter ici</td></tr>';
	contenu += '<tr style=" vertical-align:top;" height=600 ><td >Placer votre texte ici</td></tr>';
	contenu += '<tr height=30><td style="background-image:url(http://www.triteampully.ch/images/navigationVierge.png) ;" >';
	contenu += '© 2009 Pully natation | <a href="http://www.triteampully.ch" style="color: grey;text-decoration:none;">Tri Team Pully</a>';
	var annulation = ' | <a href="http://www.triteampully.ch/index.php?annulationNewsletter=1/" style="color: grey;text-decoration:none;">Ne plus recevoir la Newsletter</a></td></tr></table>';
	if(cible=='public')
		contenu +=annulation;
		
	//il faut s'assurer que l'utilisateur n'efface pas par mégard tout ce qu'il saisit s'il décide de changer après la cible de la newsletter
	var texte = "Vous allez afficher un modèle de Newsletter vide. Tout ce que vous avez saisi avant sera écrasé. Il est recommandé de copier le contenu de du texte et de le coller par la suite sur le nouveau modèle.";
	texte += "Voulez-vous continuez?"
	if(confirm(texte)){
		var oFCKeditor = new FCKeditor( 'FCKeditor1' ) ;
		FCKeditorAPI.GetInstance('sujet').SetHTML(contenu);
	}
	else{//Lorsque l'on clique sur un bouton radio l'état de la cible doit être conservé également.
		if(	document.newsletter.cible[0].checked == true)
			document.newsletter.cible[1].checked = true;
		else if(document.newsletter.cible[1].checked == true)
			document.newsletter.cible[0].checked = true;
	}
		
		
	//document.write(contenu);
  
      
}
function envoyerNewsletter(idTextArea){
	var oFCKeditor = new FCKeditor( 'FCKeditor1' ) ;
	var contenu = FCKeditorAPI.GetInstance(idTextArea).GetXHTML() ;
	//cette fonction sert à nettoyer le code passé par Post afin qu'il soit bien interprété à la reception de l'email. 
	// du coté php il faut lui rendre son aspect d'origine en utilisant urldecode();
	contenu = encodeURIComponent( contenu.strip());
	var url = $('infoURLEmail').innerHTML;
	
	var cible = "";
	if(	document.newsletter.cible[0].checked == true)
		cible = 'membres';
	else
		cible =  'public';
	var param = {newsletter:contenu,cible:cible};
	//alert(contenu);
	var id = $('id').value;
	// si le champ hiddent de id est vide cela veut dire que la newsletter n'a pas encore été introduite dans la bdd et ne convient pas à l'envoi aux destinataires
	if(id !=""){
		o_options = new Object();
		o_options = {method:'post', parameters:param,
		onSuccess: function (xmlHttp){
			var resultat = xmlHttp.responseText;
			resultat = resultat.strip();
			//insertion du message en rapport avec l'envoi de l'email
			$('resultat_newsletter').update(resultat);
							
		}};
		
		var laRequete = new Ajax.Request(url,o_options);
	}
	else
		$('resultat_newsletter').update("Veuillez introduire d'abord la newsletter ou la réafficher en introduisant le titre avant de procéceder à l\envoi!".fontcolor('red'));
	
	
}

//Fonction de récupération de donnée pour l'envoi vers bdd via ajax
function posterDonneesNewsletter(idTextArea,idForm,queFaire) { 
	var oFCKeditor = new FCKeditor( 'FCKeditor1' ) ;
	var contenu = FCKeditorAPI.GetInstance(idTextArea).GetXHTML() ;
	contenu = contenu.strip();
	
	var baliseUrl = $('infoURL');
	var url = baliseUrl.innerHTML;
	
	
	var idDiv = "resultat_newsletter";
	var title = document.newsletter.title.value;
	//recherche des sections cochées
	
	var cible = "";
	if(	document.newsletter.cible[0].checked == true)
		cible = 'membres';
	else
		cible =  'public';
	
	
	//Vérification du type d'insertion : publication 0,maj 1 et suppression -1
	var id = "";
	if(queFaire > 0){
		var id = document.newsletter.id.value;
		id = id.strip(); 
		
	}
	var pars = {page:'newsletter',title:title,sujet:contenu,cible:cible,queFaire:queFaire,id:id};	
	if (queFaire == -1){
		var avertissement = "Voulez-vous vraiment supprimer la newsletter avec le title "+title+"?";
		if(confirm(avertissement)){
			contenuAjaxNewsletter(url,idForm,idDiv,pars,1);
		}
		else
			return;
	}
	else  
	  contenuAjaxNewsletter(url,idForm,idDiv,pars,1);
	
	
}

//Une fois que le title a été introduit on recherche tous les autres champs pour les afficher ensuite avec la fonction versnewsletter
function afficherChampsNewsletter(titleSelectionne){
	//var title = document.newsletter.title.value; 
	if(titleSelectionne != null)
	 	title = titleSelectionne.innerHTML.strip();
	var baliseUrl = $('infoURL');
	var url = baliseUrl.innerHTML;
	var idForm = 'newsletter';
	//autocomletion est variable qui va permetre à php d'afficher une newsletter 
	var parametres = {page:'newsletter',title:title,autocompletion:1,champ:'sujet'}; 
	//mise jour du textearea
	var idDiv = 'sujet';
	contenuAjaxNewsletter(url,idForm,idDiv,parametres,1);
	//mise à  jour de la cible de la newsletter
	var parametres = {page:'newsletter',title:title,autocompletion:1,champ:'cible'};
	var idDiv = 'cible';
	contenuAjaxNewsletter(url,idForm,idDiv,parametres,0);
	//mise à  jour du id de la newsletter
	var parametres = {page:'newsletter',title:title,autocompletion:1,champ:'id'};
	var idDiv = 'id';
	contenuAjaxNewsletter(url,idForm,idDiv,parametres,0);
	//mise à jour de la liste de suggestion
	if(title.length > 2){
		var parametres = {page:'newsletter',title:title,autocompletion:1,champ:'title'};
		var idDiv = 'title';
		contenuAjaxNewsletter(url,idForm,idDiv,parametres,0);
	}
	
}
//insertion des données de bdd dans le formulaire des newsletter
function versNewsletter(idDiv,idForm,resultat){ //alert(resultat);
	if(idDiv=='title')
		document.newsletter.title.value = resultat;
	else if(idDiv=='id')//le champ hidden témoigne que la newsletter vient d'être afficher depuis la bdd ce qui permet son envoi.
		document.newsletter.id.value = resultat;
	else if(idDiv=='cible'){
		//maj des boutons liste pour les sections concernées
		//remise à zéro les éventuels checkbox activés
		for(var k=0; k<cibleTab.length; k++){
			document.newsletter.cible[k].checked = false;
		}
		
		if(resultat !=""){
			//mise en tableau de la chaine retournée
			var reg=new RegExp("[,]+", "g");
			var tableau = resultat.split(reg);
			//recherche du checkbox à cocher
			for (var i=0; i<tableau.length; i++) {
			 for(var j=0; j<cibleTab.length; j++){
				var chaineRetour = tableau[i].strip();
				var chaineATrouver = cibleTab[j].strip();
				if(chaineRetour == chaineATrouver)
					document.newsletter.cible[j].checked = true;
			 }
			}
		}
	}	
}
//fonction de recherche de title correspondant aux lettres initiale saisie
function versCompletionNewsletter(page){
	var champ = 'title';
	var url = $("infoURLCompletionNewsletter").innerHTML;
	var fonctionAppelee = afficherChampsNewsletter;
	var idSaisie = champ; 
	var idListe = "liste_"+page;
	//alert("idListe: "+idListe+"/idSaisie: "+idSaisie+"/url: "+url);
	new Ajax.Autocompleter(idSaisie,idListe,url,{
		paramName: champ,
		minChars : 1,
		updateElement: fonctionAppelee,
		onSuccess : function (xmlHttp){
			var resultat = xmlHttp.responseText.strip();
			//alert(resultat);
			
		},
	});
}
//--------------------------------------------------------------------Partie TTP------------------------------------------------

function ajaxNewsletter(url,idDiv,parametres,pageStatique,menu){ //alert(url+'/'+idDiv+'/'+pageStatique+'/'+menu+'/'+parametres.parcours);
	new Ajax.Updater (idDiv,url,{
		parameters : parametres,
		method :'post',
		encoding :'UTF-8',
		onComplete : function (xmlHttp){
			var contenu =xmlHttp.responseText.strip();
			$("barreTitre").update(menu +" : "+ parametres.page);
			if(parametres.page=='newsletterInterne')
				verifierSessionNewsletterInterne(parametres,contenu);
			
		},
		onFailure : function(xmlHttp){
		
		}
	});
	
}
//on clique sur le sousmenu newsletter ou newsletter interne et la page s'affiche
function pageNewsletter(){
	var menu = $('infoMenu').innerHTML;
	if(menu=='accueil'){
		$("infoSousMenu").update("newsletter");
		regulationAffichage("vertical_container");
		param = {page:"newsletter",menu:menu};
	}
	else{
		param = {page:"newsletterInterne",menu:menu,menu:menu};
		$("infoSousMenu").update("newsletterInterne");
		$("infoMenu").update(menu);
	}
	var url = $("infoURL").innerHTML+"ajaxTriathlon.php";
	
	o_options = new Object();
	o_options = {method:'post', parameters:param,
	onSuccess: function (xmlHttp){
		var resultat = xmlHttp.responseText;
		resultat = resultat.strip();
		$('barreTitre').update('Newsletter interne');
		if(menu=='Accueil')//newsletter public
			$("newsletterActuelle").update(resultat);
		else//newsletter interne
			verifierSessionNewsletterInterne(param,resultat);
		
				
	}};
	
	var laRequete = new Ajax.Request(url,o_options);
	
}
// traitement des pages sécurisé. C'est cette fonction qui détermine s'il faut afficher le formulaire d'identification ou la page demandé. 
function verifierSessionNewsletterInterne(parametres,contenu){ 
	
	var lienDeconnexion = '<a  href="#" title="Déconnexion" onclick="javascript:deconnecter(\'ajaxTriathlon.php\');return false;">'
			+'Quitter la session</a>';
	//cas de deconnexion : recherche du mot clé : shut_down
	var mot_cle = 'shut_down';
	var reg=new RegExp(mot_cle, "g");
	if(contenu.match(reg)) 
		contenu = mot_cle;
	//cas du sous menu liste des membres
														//alert('contenu: '+contenu+'secure:'+parametres.secure);
	if(parametres.menu=='membres'){									//if(	parametres.deconnecter)alert("'"+contenu+"'");	
		if(contenu != mot_cle){														
			regulationAffichage("conteneurTexte");
			$("conteneurTexte").update(contenu);
			
		}
		else{
			regulationAffichage("identForm");
			identificationForm();
			lienDeconnexion = '';
		}
			
		
			
	}
	$("deconnexion").update(lienDeconnexion);
	if(lienDeconnexion =='')
		$('nomUtilisateur').update('');
	else{
		sessionDeQui();
	}
	
}



//inscription à la newsletter
function inscriptionNewsletterForm(){
	var contenu = '<form name="inscriptionNewsletter">';
	nombreDestinataires();
	contenu = '<div id="nombreDestinatairesID"></div><div id="MessageInscriptionNewsletter"></div>';
	contenu += '<table><tr><td>Votre email :</td>';
	contenu += '<td><input id="in_email" name="in_email" type="text" maxlength="100" ';
	contenu += 'onblur="verifEmail(document.inscriptionNewsletter.in_email.value);" /></td></tr>';
	contenu += '<tr><td></td>';
	contenu += '<td><input type="button" value="Envoyer" name="envoyer" onclick="inscriptionNl();" /></td></tr>';
	contenu += '</table></form>';
	$('inscriptionNewsletter').update(contenu);
	
}
function desinscriptionNewsletterForm(){
	var contenu = '<form name="desinscriptionNewsletter">';
	nombreDestinataires();
	contenu = '<div id="nombreDestinatairesID"></div><div id="MessageDesinscriptionNewsletter"></div>';
	contenu += '<table><tr><td>Votre email :</td>';
	contenu += '<td><input id="dn_email" name="dn_email" type="text" maxlength="100" ';
	contenu += 'onblur="verifEmail(document.inscriptionNewsletter.dn_email.value);" /></td></tr>';
	contenu += '<tr><td></td>';
	contenu += '<td><input type="button" value="Supprimer" name="supprimer" onclick="desinscriptionNl();" /></td></tr>';
	contenu += '</table></form>';
	$('desinscriptionNewsletter').update(contenu);
	
}
function nombreDestinataires(){
	var url = $("infoURL").innerHTML+"ajaxTriathlon.php";
	param = {page:"newsletter",nombreDestinataires:1};
	o_options = new Object();
	o_options = {method:'post', parameters:param,
	onSuccess: function (xmlHttp){
		var resultat = xmlHttp.responseText;
		resultat = 'Nombre de personnes inscrites pour la Newsletter du TTP:'+resultat.strip();
		$("nombreDestinatairesID").update(resultat);
				
	}};
	
	var laRequete = new Ajax.Request(url,o_options);
}

function inscriptionNl(){
	var email = $('in_email').value;
	var texte = "Voici l'adresse email que vous avez entrée: "+email+". Voulez-vous continuer?";
	if(verifEmail(email))
		if(confirm(texte)){
			var url = $("infoURL").innerHTML+"ajaxTriathlon.php";
			param = {page:"newsletter",email:email,inscription:1};
			o_options = new Object();
			o_options = {method:'post', parameters:param,
			onSuccess: function (xmlHttp){
				var resultat = xmlHttp.responseText;
				resultat = resultat.strip();
				$("MessageInscriptionNewsletter").update(resultat);
				//mise à jour du nombre de personnes inscrites pour la newsletter
				nombreDestinataires();
						
			}};
			
			var laRequete = new Ajax.Request(url,o_options);
		}
	
}
function desinscriptionNl(){
	var email = $('dn_email').value;
	var texte = "Voici l'adresse email que vous avez entrée pour la suppression: "+email+". Voulez-vous continuer?";
	if(verifEmail(email))
		if(confirm(texte)){
			var url = $("infoURL").innerHTML+"ajaxTriathlon.php";
			param = {page:"newsletter",email:email,inscription:0};
			o_options = new Object();
			o_options = {method:'post', parameters:param,
			onSuccess: function (xmlHttp){
				var resultat = xmlHttp.responseText;
				resultat = resultat.strip();
				$("MessageDesinscriptionNewsletter").update(resultat);
				//mise à jour du nombre de personnes inscrites pour la newsletter
				nombreDestinataires();
						
			}};
			
			var laRequete = new Ajax.Request(url,o_options);
		}
	
}

