
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//  Gestion du clignotement
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
var timer_clignotement;
function clignotement(){ 
	if (document.getElementById("div_newsletter").style.color=="white") 
	document.getElementById("div_newsletter").style.color="orange"; 
	else 
	document.getElementById("div_newsletter").style.color="white"; 
} 

function init_clignotement()
{
	// mise en place de l appel régulier de la fonction toutes les 1.5 secondes 
	timer_clignotement = setInterval("clignotement()", 700); 
}

function stop_clignotement()
{
	clearInterval(timer_clignotement);
}

init_clignotement();
	
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

function js_client_serveur(script, donnees, methode, mode, fonction)
{
  // Déclaration de notre objet ajax
  var xhr_object = null;

  // On déclare la variable de résultat
  var resultat = null;

  // Contrôle de la compatibilité navigateur
  if(window.XMLHttpRequest)
  {
    // Firefox
    xhr_object = new XMLHttpRequest();
  }
  else if(window.ActiveXObject)
  {
    // Internet Explorer
    xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
  }
  else
  {
    // XMLHttpRequest non supporté par le navigateur
    alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
    return;
  }

  // Si on a choisi le mode synchrone
  if(mode == 1)
  {
     xhr_object.open(methode, script, false);
     
     if(methode.toUpperCase() == "POST")
     {
        xhr_object.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
     }
     xhr_object.send(donnees);
     resultat = xhr_object.responseText;
  }
  else
  {
    xhr_object.open(methode, script, true);
    xhr_object.onreadystatechange = function()
    {
	    if(xhr_object.readyState == 4)
	    {
        resultat = xhr_object.responseText;

        if(typeof(fonction) == "function")
        {
          fonction(resultat);
        }
      }
    }

    if(methode.toUpperCase() == "POST")
    {
      xhr_object.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    }
   xhr_object.send(donnees);
  }

  // Retour du résultat
  return resultat;
}

//********************************************************************************************************************************
// DESCRIPTION : Cette fonction vérifie la validité d'une date
// PARAMETRES : date d, chaine de caractère
// RETOUR : booleén : vrai si la date est valide, faux si elle ne l'est pas.
//********************************************************************************************************************************
function js_isDate(d)
{
  if(d == "") // si la variable est vide on retourne faux
    return false;

  e = new RegExp("^[0-9]{2}\/[0-9]{2}\/([0-9]{4})$");

  if(!e.test(d)) // On teste l'expression régulière pour valider la forme de la date
    return false; // Si pas bon, retourne faux

  // On sépare la date en 3 variables pour vérification, parseInt() converti du texte en entier
  j = parseInt(d.split("/")[0], 10); // jour
  m = parseInt(d.split("/")[1], 10); // mois
  a = parseInt(d.split("/")[2], 10); // année

  // Si l'année n'est composée que de 2 chiffres on complète automatiquement
  if(a < 1000)
  {
    if(a < 89) a+=2000; // Si a < 89 alors on ajoute 2000 sinon on ajoute 1900
    else a+=1900;
  }

  // Définition du dernier jour de février
  // Année bissextile si annnée divisible par 4 et que ce n'est pas un siècle, ou bien si divisible par 400
  if(a%4 == 0 && a%100 !=0 || a%400 == 0) fev = 29;
  else fev = 28;

  // Nombre de jours pour chaque mois
  nbJours = new Array(31,fev,31,30,31,30,31,31,30,31,30,31);

  // Enfin, retourne vrai si le jour est bien entre 1 et le bon nombre de jours, idem pour les mois, sinon retourn faux
  return ( m >= 1 && m <=12 && j >= 1 && j <= nbJours[m-1]);
}

//**********************************************************************************************************************************
// DESCRIPTION : Cette procédure permet de vérifier la validité d'une adresse email
// PARAMETRES : la chaîne à traiter
// RETOUR : booléen
//**********************************************************************************************************************************
function js_email_valide(email)
{ 
   // Déclaration de la variable de retour
   var etat_retour = true;
   email = email.toLowerCase();
   // Expression régulière de composition de la chaîne de caractère de l'email
   if(email.search(/^[^._-][a-z0-9._-]+[^._-]@[a-z0-9._-]+([a-z0-9]+[^._-])?[.-]+[a-z]{2,4}$/) == -1)
   {
      etat_retour = false;
   }
   // Pas d'espace dans la chaîne (l'expression régulière au-dessus laisse passer les espaces)
   if(email.search(/\s/) != -1)
   {
      etat_retour = false;
   }
   // Retour booléen
   return etat_retour;
}


//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////   										  GESTION DOCUMENT  									   //////////////// 
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//********************************************************************************************************************************
// JS_LOCAL_AJOUCAT
// DESCRIPTION : Cette procédure permet l'ajout d'une catégorie
// PARAMETRES : aucun
// RETOUR : aucun
//********************************************************************************************************************************
function js_local_ajoucat()
{
	function js_local_ajax_affiche_resultat(fichier)
	{
		var tableau = fichier.split("|");
		document.getElementById('cid').options[document.getElementById('cid').options.length] = new Option(tableau[1],tableau[0]); 
		document.getElementById('cid').options.selectedIndex = document.getElementById('cid').options.length-1;
		document.getElementById('libelle_cat').value = "";
	}

	if(document.getElementById('libelle_cat').value == "")
		alert("Veuillez renseigner le libellé de la catégorie !");
	else
	{
		// préparation de la variable ajax
		var variable_ajax = "&title="+document.getElementById('libelle_cat').value;
		// envoi des variables au serveur
		js_client_serveur('index_ajax.php', 'action=1' + variable_ajax, 'POST', 0, js_local_ajax_affiche_resultat);	
	}
}

//********************************************************************************************************************************
// JS_LOCAL_MODIFCAT
// DESCRIPTION : Cette procédure permet l'affichage du formulaire de modification d'une catégorie
// PARAMETRES : aucun
// RETOUR : aucun
//********************************************************************************************************************************
function js_local_modifcat(idcat)
{
	//alert(document.getElementById("div_"+idcat).innerHTML.indexOf("txt_cat_"+idcat));
	if(document.getElementById("div_"+idcat).innerHTML.indexOf("txt_cat_"+idcat) == -1)
		document.getElementById("div_"+idcat).innerHTML = "<input type='text' id='txt_cat_"+idcat+"' value='"+document.getElementById("div_"+idcat).innerHTML+"' /> <input type='button' value='OK' onclick='js_local_enregistrercat("+idcat+");'/>";
}

//********************************************************************************************************************************
// JS_LOCAL_ENREGISTRERCAT
// DESCRIPTION : Cette procédure permet la modification d'une catégorie
// PARAMETRES : aucun
// RETOUR : aucun
//********************************************************************************************************************************
function js_local_enregistrercat(idcat)
{	
	function js_local_ajax_affiche_resultat(fichier)
	{
		var tableau = fichier.split("|");
		document.getElementById("div_"+tableau[0]).innerHTML = tableau[1];
		//document.getElementById("div_"+idcat).innerHTML
	}

	if(document.getElementById("txt_cat_"+idcat).value == "")
		alert("Veuillez renseigner le libellé de la catégorie !");
	else
	{
		// préparation de la variable ajax
		var variable_ajax = "&title="+document.getElementById("txt_cat_"+idcat).value;
		variable_ajax += "&cid="+idcat;
		// envoi des variables au serveur
		js_client_serveur('index_ajax.php', 'action=2' + variable_ajax, 'POST', 0, js_local_ajax_affiche_resultat);	
	}
}
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////


//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////   										  MODULE DIFFUSION  										   //////////////// 
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
var tableau_diffusion = [];
//********************************************************************************************************************************
// JS_LOCAL_SELECTALLCE
// DESCRIPTION : Cette procédure permet d'activé ou désactivié les éléments du formulaired de recherche de CE
// PARAMETRES : aucun
// RETOUR : aucun
//********************************************************************************************************************************
function js_local_SelectAllCe()
{
	var bool = document.getElementById("all_ce").checked == true ? true : false;
	var bgcolor = document.getElementById("all_ce").checked == true ? "#EDCC90" : "#ffffff";

	document.getElementById("nom_ce").disabled=bool;
	document.getElementById("nom_ce").style.background = bgcolor;
	
	document.getElementById("activite").disabled=bool;
	document.getElementById("activite").style.background = bgcolor;
	
	document.getElementById("Departements").disabled=bool;
	document.getElementById("Departements").style.background = bgcolor;
	
	document.getElementById("ville").disabled=bool;
	document.getElementById("ville").style.background = bgcolor;
}

//********************************************************************************************************************************
// JS_LOCAL_ACTION_SELECTCE
// DESCRIPTION : Cette procédure permet de cocher tous les CE
// PARAMETRES : aucun
// RETOUR : aucun
//********************************************************************************************************************************
function js_local_action_selectce()
{
	var etat_chbx_allce = document.getElementById("chbxce_all").checked;

	for ( var i=0; i<document.getElementsByTagName("input").length; i++ ) {
		element = document.getElementsByTagName("input")[i];
		
		if ( element.getAttribute("type") == "checkbox" && element.getAttribute("id").indexOf("chbxce_") != -1 && element.disabled == false)
			element.checked = etat_chbx_allce;
			
	}

}

//********************************************************************************************************************************
// JS_LOCAL_ACTION_SELECTFR
// DESCRIPTION : Cette procédure permet de cocher tous les franchisés
// PARAMETRES : aucun
// RETOUR : aucun
//********************************************************************************************************************************
function js_local_action_selectfr()
{
	var etat_chbx_allfr = document.getElementById("chbxfr_all").checked;

	for ( var i=0; i<document.getElementsByTagName("input").length; i++ ) {
		element = document.getElementsByTagName("input")[i];
		
		if ( element.getAttribute("type") == "checkbox" && element.getAttribute("id").indexOf("chbxfr_") != -1 && element.disabled == false)
			element.checked = etat_chbx_allfr;
			
	}

}

//********************************************************************************************************************************
// JS_LOCAL_RECHERCHECE
// DESCRIPTION : Cette procédure permet la recherche de CE
// PARAMETRES : aucun
// RETOUR : aucun
//********************************************************************************************************************************
function js_local_rechercheCE()
{	
	function js_local_ajax_affiche_resultat(fichier)
	{
		//alert(fichier);
		//var tableau = fichier.split("|");
		//document.getElementById("div_"+tableau[0]).innerHTML = tableau[1];
		document.getElementById("liste_ce").innerHTML = fichier;
	}
	
	var all_ce = document.getElementById("all_ce").checked == true ? true : false;
	
	var variable_ajax = "&all_ce="+all_ce;
	if(all_ce == false)
	{
		variable_ajax+= "&nom_ce="+document.getElementById("nom_ce").value;
		variable_ajax+= "&activite="+document.getElementById("activite").value;
		variable_ajax+= "&departement="+document.getElementById("Departements").value;
		variable_ajax+= "&ville="+document.getElementById("ville").options[document.getElementById("ville").selectedIndex].innerHTML;
	}
	
	document.getElementById("lien_ajoutce").style.display = "block";
	
	//alert(variable_ajax);
	js_client_serveur('index_ajax.php', 'action=3' + variable_ajax, 'POST', 0, js_local_ajax_affiche_resultat);	

	// if(document.getElementById("txt_cat_"+idcat).value == "")
		// alert("Veuillez renseigner le libellé de la catégorie !");
	// else
	// {
		//préparation de la variable ajax
		// var variable_ajax = "&title="+document.getElementById("txt_cat_"+idcat).value;
		// variable_ajax += "&cid="+idcat;
		//envoi des variables au serveur
		// js_client_serveur('index_ajax.php', 'action=3' + variable_ajax, 'POST', 0, js_local_ajax_affiche_resultat);	
	// }
}

//********************************************************************************************************************************
// JS_LOCAL_AJOUTDESTINATAIRECE
// DESCRIPTION : Cette procédure permet l'ajout de destinataires dans le tableau diffusion CE
// PARAMETRES : aucun
// RETOUR : aucun
//********************************************************************************************************************************
function js_local_AjoutDestinataireCE()
{
	function js_local_ajax_affiche_resultat(fichier)
	{
		document.getElementById("listeDestinataireCE").innerHTML = fichier;
		document.getElementById("liste_ce").innerHTML = "";
		document.getElementById("lien_ajoutce").style.display = "none";
	}

	for ( var i=0; i<document.getElementsByTagName("input").length; i++ ) {
		element = document.getElementsByTagName("input")[i];
		
		if ( element.getAttribute("type") == "checkbox" && element.getAttribute("id").indexOf("chbxce_") != -1 && element.getAttribute("id").indexOf("chbxce_all") == -1 && element.disabled == false && element.checked == true)
		{
			//alert(element.getAttribute("id"));
			idce = element.getAttribute("id").split("_");
			idce = idce[1];
			//alert(idce);
			listeid = '|'+tableau_diffusion.join("|")+'|';
			if(listeid.indexOf("|"+idce+"|") == -1)
				tableau_diffusion.splice(1,0,idce)
		}
	}
	
	//alert(tableau_diffusion.join(","));
	
	var variable_ajax = "&listeIdce="+tableau_diffusion.join(",");
	js_client_serveur('index_ajax.php', 'action=4' + variable_ajax, 'POST', 0, js_local_ajax_affiche_resultat);	
}

[].indexOf || (Array.prototype.indexOf = function(v,n){
  n = (n==null)?0:n; var m = this.length;
  for(var i = n; i < m; i++)
    if(this[i] == v)
       return i;
  return -1;
});

//********************************************************************************************************************************
// JS_LOCAL_SUPPRIMERDESTINATAIRECE
// DESCRIPTION : Cette procédure permet la suppression d'un destinataire de la listev de diffusion CE
// PARAMETRES : aucun
// RETOUR : aucun
//********************************************************************************************************************************
function js_local_SupprimerdestinataireCE(id)
{
	function js_local_ajax_affiche_resultat(fichier)
	{
		document.getElementById("listeDestinataireCE").innerHTML = fichier;
	}
	
	//listeid = '|'+tableau_diffusion.join("|")+'|';
	//nbcar = listeid.indexOf('|'+idce+'|');

	//alert(id);
	//alert(tableau_diffusion.indexOf(id));
	tableau_diffusion.splice(tableau_diffusion.indexOf(id), 1);
	
	var variable_ajax = "&listeIdce="+tableau_diffusion.join(",");
	js_client_serveur('index_ajax.php', 'action=4' + variable_ajax, 'POST', 0, js_local_ajax_affiche_resultat);	
	
	//alert(tableau_diffusion.join(","));
	
	//var variable_ajax = "&listeIdce="+tableau_diffusion.join(",");
	//js_client_serveur('index_ajax.php', 'action=4' + variable_ajax, 'POST', 0, js_local_ajax_affiche_resultat);	
}

//********************************************************************************************************************************
// JS_LOCAL_SUPPRIMERLISTEDIFCE
// DESCRIPTION : Cette procédure permet la suppression de la liste de diffusion courante
// PARAMETRES : aucun
// RETOUR : aucun
//********************************************************************************************************************************
function js_local_SupprimerListeDifCE()
{
	function js_local_ajax_affiche_resultat(fichier)
	{
		document.getElementById("listeDestinataireCE").innerHTML = '<div style="margin: 30px;"><span style="font-weight: bold">Liste de CE vide</span><span><br>(effectuer une recherche afun de sélectionner des CE et leur donner le droit d\'accès au fichier)</span></div>';
		document.getElementById("liste_ce").innerHTML = "";
		document.getElementById("lien_ajoutce").style.display = "none";
		
	}
	
	tableau_diffusion.splice(0, tableau_diffusion.length);

	var variable_ajax = "&listeIdce="+tableau_diffusion.join(",");
	js_client_serveur('index_ajax.php', 'action=4' + variable_ajax, 'POST', 0, js_local_ajax_affiche_resultat);	
}

//********************************************************************************************************************************
// JS_LOCAL_DIFFUSIONCE
// DESCRIPTION : Cette procédure permet la diffusion d'un document
// PARAMETRES : aucun
// RETOUR : aucun
//********************************************************************************************************************************
function js_local_DiffusionCE()
{
	function js_local_ajax_affiche_resultat(fichier)
	{
		alert(fichier);
		
	}

	var variable_ajax = "&listeIdce="+tableau_diffusion.join(",");
	variable_ajax += "&lid="+document.getElementById("lid").value;
	
	//alert(variable_ajax);
	//js_client_serveur('index_ajax.php', 'action=5' + variable_ajax, 'POST', 0, js_local_ajax_affiche_resultat);	
	js_client_serveur('index_ajax.php', 'action=5' + variable_ajax, 'POST', 0, js_local_ajax_affiche_resultat);	
}

//********************************************************************************************************************************
// JS_LOCAL_DIFFUSIONFRANCHISES
// DESCRIPTION : Cette procédure permet la diffusion d'un document aux franchisés
// PARAMETRES : aucun
// RETOUR : aucun
//********************************************************************************************************************************
function js_local_DiffusionFranchises()
{
	function js_local_ajax_affiche_resultat(fichier)
	{
		alert(fichier);
	}
	
	var tableau_diffusion_franchises = [];
	
	for ( var i=0; i<document.getElementsByTagName("input").length; i++ ) {
		element = document.getElementsByTagName("input")[i];
		
		if ( element.getAttribute("type") == "checkbox" && element.getAttribute("id").indexOf("chbxfr_") != -1 && element.getAttribute("id").indexOf("chbxfr_all") == -1 && element.disabled == false && element.checked == true)
		{
			idfr = element.getAttribute("id").split("_");
			idfr = idfr[1];
			listeid = '|'+tableau_diffusion_franchises.join("|")+'|';
			if(listeid.indexOf("|"+idfr+"|") == -1)
				tableau_diffusion_franchises.splice(1,0,idfr)
		}
	}

	var variable_ajax = "&listeIdfr="+tableau_diffusion_franchises.join(",");
	variable_ajax += "&lid="+document.getElementById("lid").value;
	
	//alert(variable_ajax);
	//js_client_serveur('index_ajax.php', 'action=5' + variable_ajax, 'POST', 0, js_local_ajax_affiche_resultat);	
	js_client_serveur('index_ajax.php', 'action=6' + variable_ajax, 'POST', 0, js_local_ajax_affiche_resultat);	
}

//********************************************************************************************************************************
// JS_LOCAL_MAJVILLE
// DESCRIPTION : Cette procédure permet la mise à jour de la liste de ville en fonction du département sélectionné
// PARAMETRES : aucun
// RETOUR : aucun
//********************************************************************************************************************************
function  js_local_MajVille()
{
	function js_local_ajax_affiche_resultat(fichier)
	{
		document.getElementById("ListeVilles").innerHTML = fichier;
	}
	
	var variable_ajax = "&dpt="+document.getElementById("Departements").value;
	js_client_serveur('index_ajax.php', 'action=7' + variable_ajax, 'POST', 0, js_local_ajax_affiche_resultat);

}

//********************************************************************************************************************************
// JS_LOCAL_MAJRECHERCHEVILLE
// DESCRIPTION : Cette procédure permet la mise à jour de la liste de ville en fonction du département sélectionné
// PARAMETRES : ZoneDept, ZoneVille, ZoneActivites
// RETOUR : aucun
//********************************************************************************************************************************
function  js_local_MajRechercheVille(ZoneDept, ZoneVille, ZoneActivites)
{
	function js_local_ajax_affiche_resultat(fichier)
	{
		document.getElementById(ZoneVille).innerHTML = fichier;
		
		js_local_MajRechercheActivite(ZoneDept, "rechville", ZoneActivites);
	}
	
	var variable_ajax = "&dpt="+document.getElementById(ZoneDept).value;
	js_client_serveur('http://www.commercants-partenaires.com/index_ajax.php', 'action=1' + variable_ajax, 'POST', 0, js_local_ajax_affiche_resultat);

}

//********************************************************************************************************************************
// JS_LOCAL_MAJRECHERCHEACTIVITE
// DESCRIPTION : Cette procédure permet la mise à jour de la liste de ville en fonction du département sélectionné
// PARAMETRES : ZoneDept, ZoneVille, ZoneActivites
// RETOUR : aucun
//********************************************************************************************************************************
function  js_local_MajRechercheActivite(ZoneDept, ZoneVille, ZoneActivites)
{
	function js_local_ajax_affiche_resultat(fichier)
	{
		document.getElementById(ZoneActivites).innerHTML = fichier;
	}

	var variable_ajax = "&dpt="+document.getElementById(ZoneDept).value;
	variable_ajax += "&ville="+document.getElementById(ZoneVille).value;
	
	js_client_serveur('http://www.commercants-partenaires.com/index_ajax.php', 'action=2' + variable_ajax, 'POST', 0, js_local_ajax_affiche_resultat);

}
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////