/*
Cette fonction est appelée sur l'évènement onChange de la liste de sélection des référentiels
Elle lance le script PHP de récupération des données pour affichage.
Elle prend en paramètre le code du référentiel sélectionné et le numéro de la page en cours de consultation.
*/
function a2i_selectRef(sVal, numPage){
	if (sVal!=''){
		//Construction et affichage du tableau contenant les données du référentiel sélectionné
		var xhr_object = null;
		
		if (window.XMLHttpRequest) { // Mozilla, Safari, ...
			xhr_object = new XMLHttpRequest();
		}
		else if (window.ActiveXObject) { // IE
			xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
		}
		
		xhr_object.open("POST", "/a2i_annuaire/referentiels/a2i_ajax_referentiels.php", false);
		xhr_object.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		xhr_object.send("action=data&codeRef="+sVal+"&numPage="+numPage);
		if(xhr_object.readyState == 4){
			if(xhr_object.responseText != ""){
				//DEBUG : alert(xhr_object.responseText);
				document.getElementById("RefDataTbl").innerHTML = xhr_object.responseText;
			}
		}

		//Affichage de la ligne de données
		document.getElementById("refData").style.display="block";
	}else {
		document.getElementById("refData").style.display="none";
	}
	document.getElementById("refDataHeader").style.display="inline";
	document.getElementById("refForm").style.display="none";
	document.getElementById("codeRef").value=sVal;
}

/*
Cette fonction est appelée lors du clic sur les puces Ajouter / Modifier un élément. Elle présente le formulaire de gestion des données référentielles.
Elle prend en paramètre l'identifiant de l'enregistrement en cas de modification, une valeur vide en cas de création.
*/
function a2i_gestElemRef(sId){
	//Appel du script a2i_ajax_referentiel pour construction du formulaire d'ajout / modif d'un élément
	var xhr_object = null;
	
	if (window.XMLHttpRequest) { // Mozilla, Safari, ...
		xhr_object = new XMLHttpRequest();
	}
	else if (window.ActiveXObject) { // IE
		xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
	}
	
	xhr_object.open("POST", "/a2i_annuaire/referentiels/a2i_ajax_referentiels.php", false);
	xhr_object.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	xhr_object.send("action=gest&codeRef="+document.getElementById("codeRef").value+"&idItem="+sId);
	if(xhr_object.readyState == 4){
		if(xhr_object.responseText != ""){
			//DEBUG : alert(xhr_object.responseText);
			document.getElementById("refForm").innerHTML = xhr_object.responseText;
		}
	}

	//Affichage de la ligne de données
	document.getElementById("refForm").style.display="block";
	//document.getElementById("refForm").focus();
	document.getElementById('validBtn').scrollIntoView(true); 
}

/*
Cette fonction est appelée lors du clic sur les puces Archiver un élément. 
Elle lance le script PHP d'archivage de l'enregistrement.
Elle prend en paramètre l'identifiant de l'enregistrement.
*/
function delElemRef(sId){
	if (!confirm("Etes-vous sûr de vouloir archiver ce enregistrement ?")){
		return false;
	}
	//Appel du script a2i_ajax_referentiel pour "suppression" de l'élément
	var xhr_object = null;
	
	if (window.XMLHttpRequest) { // Mozilla, Safari, ...
		xhr_object = new XMLHttpRequest();
	}
	else if (window.ActiveXObject) { // IE
		xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
	}
	xhr_object.open("POST", "/a2i_annuaire/referentiels/a2i_ajax_referentiels.php", false);
	xhr_object.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	xhr_object.send("codeRef="+document.getElementById("codeRef").value+"&action=del&pk="+sId);
	if(xhr_object.readyState == 4){
		//DEBUG : alert(xhr_object.responseText);
		if(xhr_object.responseText == "ok"){
			document.getElementById("refForm").innerHTML = "<div id='entFormAnnuaire'><div id='msgRefAnnuaire' class='annuaire_msg'><br />La suppression a correctement été effectuée.<br /><br /></div></div>";
			//Rechargement des données du ref
			a2i_selectRef(document.getElementById("codeRef").value,1);
		}else{
			document.getElementById("refForm").innerHTML = "<div id='entFormAnnuaire'><div id='msgRefAnnuaire' class='alert'><br />"+xhr_object.responseText+"<br /><br /></div></div>";
		}
	}
	//Affichage de la ligne de données	
	document.getElementById("refForm").style.display="block";
	document.getElementById('refForm').scrollIntoView(true); 

}

/*
Cette fonction est appelée lors de la validation des formulaires de création / modification d'un enregistrement. 
Elle lance le script PHP de maj de la BDD.
Elle prend en paramètre l'action en cours (upd ou add) et l'identifiant de l'enregistrement.
*/
function validElemRef(sAction, sId){
	i=0;
	sPost="";
	while (i<document.forms["frmRef"].length){
		var oField=document.forms["frmRef"].elements[i];
		if (oField.type != "button"){
			sPost += "#"+oField.name+"|"+ oField.value;
		}
		i++;
	}
	sPost = sPost.substring(1,sPost.length);
	sPost = "action="+sAction+"&pk="+sId+"&FormValues="+sPost;
	//	DEBUG : alert(sPost);

	//Appel du script a2i_ajax_referentiel pour ajout ou modif de l'élément
	var xhr_object = null;
	
	if (window.XMLHttpRequest) { // Mozilla, Safari, ...
		xhr_object = new XMLHttpRequest();
	}
	else if (window.ActiveXObject) { // IE
		xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
	}
	
	xhr_object.open("POST", "/a2i_annuaire/referentiels/a2i_ajax_referentiels.php", false);
	xhr_object.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	xhr_object.send("codeRef="+document.getElementById("codeRef").value+"&"+sPost);
	if(xhr_object.readyState == 4){
		//DEBUG : alert(xhr_object.responseText);
		if(xhr_object.responseText == "ok"){
			//Rechargement des données du ref
			a2i_selectRef(document.getElementById("codeRef").value,1);
			document.getElementById("refForm").style.display="inline";
			document.getElementById("divFormAnnuaire").style.display = "none";
			document.getElementById("msgRefAnnuaire").innerHTML = "La mise à jour a correctement été effectuée.<br />";
			return false;
		}else{
			document.getElementById("msgRefAnnuaire").className = "alert";
			document.getElementById("msgRefAnnuaire").innerHTML = "" + xhr_object.responseText + "";
			return false;
		}
	}
}

/*
Cette fonction est appelée lors du clic sur la puce Exporter.
Elle lance le script de génération du fichier CSV.
Elle ne prend pas de paramètre.
*/
function a2i_exportMembresGR(){
	codeGr = document.getElementById('gr').value;
	if (codeGr ==''){
		alert('Veuillez sélectionner un groupe régional.');
		document.getElementById('gr').focus();
		return false;
	}
	document.getElementById("refForm2").innerHTML = "";
	//Appel du script a2i_ajax_referentiel pour création du fichier CSV
	var xhr_object = null;
	
	if (window.XMLHttpRequest) { // Mozilla, Safari, ...
		xhr_object = new XMLHttpRequest();
	}
	else if (window.ActiveXObject) { // IE
		xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
	}
	xhr_object.open("POST", "/a2i_annuaire/referentiels/a2i_ajax_referentiels.php", false);
	xhr_object.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	xhr_object.send("action=exportgr&codeGr="+codeGr);
	if(xhr_object.readyState == 4){
		//		alert(xhr_object.responseText);
		if(xhr_object.responseText != "ko"){
			if (xhr_object.responseText==0){
				alert("Le groupe régional sélectionné n'a aucun membre.");
			}else{
			
				//DEBUG : alert(xhr_object.responseText);
				document.getElementById("refForm2").innerHTML ="";
				var msg = "";
				tFiles = xhr_object.responseText.split('|');

				msg += "<h2>Téléchargement des fichiers</h2>";
				msg += "<br /><div id='msgFormAnnuaire' class='annuaire_msg' style='margin-left:18px;width:460px'>";

				if (tFiles.length==1){
					msg += "<br />Le fichier est prêt à être téléchargé.<br />Utilisez le lien ci-dessous pour l'enregistrer sur votre disque.<br/><br/>";
				}else{
					msg += "<br />Les fichiers sont prêts à être téléchargés.<br />Utilisez les liens ci-dessous pour les enregistrer sur votre disque.<br/><br/>";
				}
				for (i=0; i<tFiles.length; i++){
					tNames = tFiles[i].split('/');
					msg += "<li><a href=\"/a2i_annuaire/librairies/download.php?filename="+tFiles[i]+"\" >"+tNames[tNames.length-1]+"</a></li>";
				}
				msg += "</div>";
				document.getElementById("refForm2").innerHTML = msg;
				document.getElementById("refForm2").style.display="block";
			}
		}else{
			alert("Une erreur est survenue lors de la génération du fichier.");
		}
	}
	document.getElementById('refForm2').scrollIntoView(true); 
}
/*
Cette fonction est appelée lors du clic sur la puce Exporter le référentiel.
Elle lance le script de génération du fichier CSV.
Elle ne prend pas de paramètre.
*/
function a2i_exportRef(){
	//Appel du script a2i_ajax_referentiel pour création du fichier CSV
	var xhr_object = null;
	
	if (window.XMLHttpRequest) { // Mozilla, Safari, ...
		xhr_object = new XMLHttpRequest();
	}
	else if (window.ActiveXObject) { // IE
		xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
	}
	if (document.getElementById("codeRef")){
		listRef = document.getElementById("codeRef").value;
	}else{
		var listRef = "";
		if (document.getElementsByName("multiRef[]")){
			var tab = document.getElementsByName("multiRef[]");
			for (var i=0; i<tab.length; ++i){
				if (tab[i].checked){
					listRef += tab[i].value+"|";
				}
			}
			listRef = listRef.substr(0,listRef.length-1);
			if (listRef==""){
				alert("Veuillez sélectionner le(s) référentiel(s) à exporter.");
				return false;
			}
		}
	}
	xhr_object.open("POST", "/a2i_annuaire/referentiels/a2i_ajax_referentiels.php", false);
	xhr_object.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	xhr_object.send("action=exportcsv&codeRef="+listRef);
	if(xhr_object.readyState == 4){
		if(xhr_object.responseText != "ko"){
			//DEBUG : alert(xhr_object.responseText);
			document.getElementById("refForm").innerHTML = "";
			var msg = "";
			tFiles = xhr_object.responseText.split('|');

			msg += "<h2>Téléchargement des fichiers</h2>";
			msg += "<br /><div id='msgFormAnnuaire' class='annuaire_msg' style='margin-left:18px;width:460px'>";

			if (tFiles.length==1){
				msg += "<br />Le fichier est prêt à être téléchargé.<br />Utilisez le lien ci-dessous pour l'enregistrer sur votre disque.<br/><br/>";
			}else{
				msg += "<br />Les fichiers sont prêts à être téléchargés.<br />Utilisez les liens ci-dessous pour les enregistrer sur votre disque.<br/><br/>";
			}
			for (i=0; i<tFiles.length; i++){
				tNames = tFiles[i].split('/');
				msg += "<li><a href=\"/a2i_annuaire/librairies/download.php?filename="+tFiles[i]+"\" >"+tNames[tNames.length-1]+"</a></li>";
			}
			msg += "</div>";
			document.getElementById("refForm").innerHTML = msg;
			document.getElementById("refForm").style.display="block";

		}else{
			alert("une erreur est survenue lors de la génération des fichiers.");
		}
	}
	document.getElementById('refForm').scrollIntoView(true); 
}


function a2i_exportAnnuaire(){
	//Appel du script a2i_ajax_referentiel pour création du fichier CSV
	var xhr_object = null;
	
	if (window.XMLHttpRequest) { // Mozilla, Safari, ...
		xhr_object = new XMLHttpRequest();
	}
	else if (window.ActiveXObject) { // IE
		xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
	}
	xhr_object.open("POST", "/a2i_annuaire/referentiels/a2i_ajax_referentiels.php", false);
	xhr_object.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	xhr_object.send("action=exportannuaire");
	if(xhr_object.readyState == 4){
		alert("Le traitement sera effectué de nuit afin de ne pas perturber le bon fonctionnement du site.\nVous recevrez un e-mail contenant le lien vous permettant de télécharger les fichiers de consolidation de l'annuaire papier.");
	}
	return true;
}