/**********************************************************************************************************************************************************************/
/**************************************************************************** COMMUNS *********************************************************************************/
function getXhr(){
    var xhr = null; 
	if(window.XMLHttpRequest) // Firefox et autres
		xhr = new XMLHttpRequest(); 
	else if(window.ActiveXObject){ // Internet Explorer 
		try {
				xhr = new ActiveXObject("Msxml2.XMLHTTP");
			} catch (e) {
				xhr = new ActiveXObject("Microsoft.XMLHTTP");
			}
		}
		else { // XMLHttpRequest non supporté par le navigateur 
		   alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..."); 
		   xhr = false; 
		} 
    return xhr;
}

/*************************************************************************/
function ajax(table, id_table, source, service, dest, nom_desc, id_session){
	var xhr = getXhr();
	// On défini ce qu'on va faire quand on aura la réponse
	xhr.onreadystatechange = function(){
		//alert(xhr.readyState);
		// On ne fait quelque chose que si on a tout reçu et que le serveur est ok
		if(xhr.readyState == 4 && xhr.status == 200){				
			reponse = xhr.responseText;			
			// On se sert de innerHTML pour rajouter les options a la liste
			switch (dest)
			{
				case 'supp_pole':
				{
					refresh_cpt_pole(id_session);
					refresh_cpt_compte(id_session);
					
					
					//alert(document.getElementById(document.getElementById('id').parentNode.name.substr(11,20) + '_' + document.getElementById('id').parentNode.id.value));
						//document.getElementById(document.getElementById('id').parentNode.name.substr(11,20) + '_' + document.getElementById('id').parentNode.id.value).style.color = "#ff0000";
						
				
				}
				break;				
				case 'supp_structure':
				{
					refresh_cpt_struct(id_session);
					refresh_cpt_compte(id_session);
				}
				break;								
				case 'contenu_fiche':
				{
					document.getElementById('menu_info').innerHTML = "";
					document.getElementById(dest).innerHTML = reponse;										
					window.document.getElementById('id').value = id_table;
					refresh_cpt_pole(id_session);
					refresh_cpt_struct(id_session);
					refresh_cpt_compte(id_session);
				}
				break;		
				/*case 'ccontacts':
				{	
					alert(reponse + ' ' + dest);
					document.getElementById(dest).innerHTML = reponse;										
				}
				break;	*/	
				default: document.getElementById(dest).innerHTML = reponse;
				break;
			}
		}
	}

	// Ici on va voir comment faire du post
	xhr.open("POST","./compte-ajax.php",true);
	// ne pas oublier ça pour le post
	xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	//poster les arguments
	xhr.send("id=" + id_table + "&source=" + source + "&table=" + table + "&service=" + service + "&dest=" + dest + "&nom_desc=" + nom_desc + "&id_session=" + id_session);
}

/*************************************************************************/
function test()
{	
	ajax("", "", "", "test", "test", "", "");
	//ajax("spip_auteurs", id, "", "afficher_contact", "test", "", "");
}

function mono_multi_control(id, type, nbre, table, id_table, dest, nom_desc, lang){
	var id_session = "";
	if(id_table == 0)
	{
		/*if (nom_desc != "")
		{
			if(lang == 'fr') alert('pour associer un ' + nom_desc + ' a votre fiche, merci de valider une premiere fois la fiche');
			if(lang == 'en') alert('To assign a ' + nom_desc + ' a votre fiche, merci de valider une premiere fois la fiche');	
		}
		else
		{*/
			if(lang == 'fr') alert('Pour associer un descripteur a votre fiche, merci de valider une premiere fois la fiche');
			if(lang == 'en') alert('To assign an element to the form, thank you to submit before');
		//}
		document.getElementById(id).options[0].selected = true;
		return;
	}
	//alert(nbre);
	if((type == 'mono') && (nbre > 0)){
		if(lang == 'fr') alert('C\'est un descripteur mono&eacute;valu&eacute;! Une seule valeur possible. Supprimez la valeur actuelle avant d\'ajouter une nouvelle.');
		if(lang == 'en') alert('Only one value possible. Delete the present value to assign the new');
		document.getElementById(id).options[0].selected = true;
		return;
		}
	
	index = document.getElementById(id).selectedIndex;
	//document.form.submit();	
	ajax(table, id_table, document.getElementById(id).options[index].value, "ajout_desc", dest, nom_desc, id_session);
	//validation(id);
}

/*************************************************************************/
function ModifierListeAjax(table_liste, id_table, id, dest, table, id_session)
{
	var index = document.getElementById(id).options.selectedIndex;
	ajax(table_liste, id_table, document.getElementById(id).options[index].value, "listes_liees", dest, table, id_session);
}

/*************************************************************************/
function ajout_structure(table, id_table, id, id_session, dest)
{	
	var index = document.getElementById(id).options.selectedIndex;
	
	ajax(table, id_table, document.getElementById(id).options[index].value, "ajout_struct", dest, "", id_session);	
}

/*************************************************************************/
function afficher_structure(table, id_table, id_session, dest)
{	
	alert(dest);
	ajax(table, id_table, "", "afficher_struct", dest, "", id_session);	
}

/*************************************************************************/
function editer_structure()
{
	if (document.getElementById('hidden_structure').value == "oui")
	{
		document.getElementById('hidden_structure').value = "non";
		document.getElementById('fiche_structure').style.display = "none";
		document.getElementById('choisir_structure').style.display = "block";
		document.getElementById('creer_structure').innerHTML = "<a style='text-decoration:underline; cursor:pointer;' onclick='editer_structure();'>Cr&eacute;er votre fiche structure</a>";
	}
	else
	{
		document.getElementById('hidden_structure').value = "oui";
		document.getElementById('fiche_structure').style.display = "block";
		document.getElementById('choisir_structure').style.display = "none";
		document.getElementById('creer_structure').innerHTML = "<a style='text-decoration:underline; cursor:pointer;' onclick='editer_structure();'>Choisir votre fiche structure</a>";
	}
}

function creer_structure()
{
	document.getElementById('hidden_structure').value = "oui";
	document.getElementById('fiche_structure').style.display = "block";
	document.getElementById('choisir_structure').style.display = "none";
}

function choisir_structure()
{
	document.getElementById('hidden_structure').value = "non";
	document.getElementById('fiche_structure').style.display = "none";
	document.getElementById('choisir_structure').style.display = "block";
}

/*************************************************************************/
function forme_curseur(src, val){

	src.style.cursor = val;

}

/**********************************************************************************************************************************************************************/
/**************************************************************************** SUPPRESIONS *****************************************************************************/
/*function supp_pole(table, id_table, id_session)
{
	check = confirm("&Eacute;tes-vous s&ucirc;r de vouloir supprimer cette fiche ?");

	if (check == true)
	{
		if(window.document.forms.formulaire_pole)
			if(window.document.forms.formulaire_pole.id.value == id_table) window.document.getElementById('contenu_fiche').innerHTML = "";
		ajax(table, id_table, "", "supp_fiche", "supp_pole", "", id_session);		
	}	
}*/
/*************************************************************************/
function supp_fiche(table, id_table, id_session, lang)
{	
	if(lang == 'fr') check = confirm("Etes-vous sur de vouloir supprimer cette fiche ?");
	if(lang == 'en') check = confirm("Delete this form ?");
	if (check == true)
	{
		if (document.getElementById('id'))
			if(document.getElementById('id').parentNode.name.substr(11,20) == table)
				if(document.getElementById('id').parentNode.id.value == id_table) document.getElementById('contenu_fiche').innerHTML = "";
		ajax(table, id_table, "", "supp_fiche", "supp_" + table, "", id_session);		
	}	
}

/*************************************************************************/
function supp_des(table, id, sd, dest, nom_desc, lang)
{
	if(lang == 'fr') check = confirm("Etes-vous sur de vouloir supprimer ?"  );	
	if(lang == 'en') check = confirm("Delete this element ?"  );	
	if (check == true)
	{	
		ajax(table, id, sd, "supp_desc", dest, nom_desc, "");
	}
}

/*************************************************************************/
function supp_contact(id_table, sc, lang)
{
	if(lang == 'fr') check = confirm("Etes-vous sur de vouloir supprimer ?" );
	if(lang == 'en') check = confirm("Delete this contact ?" );
	if (check == true)
	{
		ajax("", id_table, sc, "supp_contact", "contact_ajax", "", "");
	}
}

/**********************************************************************************************************************************************************************/
/*********************************************************************** RELATIFS A POLE ******************************************************************************/
function ajout_contact(table, id_table, id, lang)
{
	if(id_table == 0)
	{
		if(lang == 'fr') alert('pour associer un contact a votre fiche, merci de valider le premier onglet de la fiche');
		if(lang == 'en') alert('To add a contact a to this form, submit step 1 before');
		document.getElementById(id).options[0].selected = true;
		return;
	}
	
	var index = document.getElementById(id).options.selectedIndex;
	
	ajax(table, id_table, document.getElementById(id).options[index].value, "ajout_contact", "contact_ajax", "", "");	
}

/*************************************************************************/
function afficher_mes_poles(id_session, dest)
{		
	ajax("", "", "", "afficher_mes_poles", dest, "", id_session);	
}

/*************************************************************************/
function responsable(id, lang)
{
	if(document.forms.formulaire_pole.cresponsable.selectedIndex && (document.forms.formulaire_pole.cresponsable.selectedIndex != id))
	{
		if(lang == 'fr') check = confirm("Si vous modifiez le responsable vous allez perdre le droit de modifier cette fiche! Etes-vous sur de continuer ?"  );
		if(lang == 'en') check = confirm("If you modify the person in charge, you won't be able to edit this form! Are you sure to continue ?");
		if (check == false)
		{
			document.forms.formulaire_pole.cresponsable.options[id].selected = true;
		}
	}else document.forms.formulaire_pole.cresponsable.options[id].selected = true;
}

/*************************************************************************/
function afficher_pole(id, id_session)
{	
	ajax("pole", id, "", "afficher_pole", "contenu_fiche", "", id_session);
}

/*************************************************************************/
function afficher_details_type_pole()
{
	ajax("", "", document.getElementById('ctype_pole').value, "afficher_details_type_pole", "detail_type_pole", "", "");
}

/*************************************************************************/
function changer_onglet(id, onglet)
{
	var Elt1 = document.getElementById('onglet1');
	var Elt2 = document.getElementById('onglet2');
	var Elt3 = document.getElementById('onglet3');

	var Elt1_entete = document.getElementById('entete_onglet1');
	var Elt2_entete = document.getElementById('entete_onglet2');
	var Elt3_entete = document.getElementById('entete_onglet3');

	var des_b1 = document.getElementsByName('des_b1');
	var des_b2 = document.getElementsByName('des_b2');
	var des_b3 = document.getElementsByName('des_b3');
//	alert(document.getElementsByName("des_b1")[1].style.background);
	if(onglet == 1){
		Elt1.style.display = "block";
		/*Elt1_entete.style.background= "#4aa5d6";
		for(i=0; i<des_b1.length; i++)		{des_b1[i].style.background= "#4aa5d6"; }*/
		Elt2.style.display = "none";
		/*Elt2_entete.style.background="#aaa";
		for(i=0; i<des_b2.length; i++)		des_b2[i].style.background= "#aaa";*/
		Elt3.style.display = "none";
		/*Elt3_entete.style.background="#aaa";
		for(i=0; i<des_b3.length; i++)		des_b3[i].style.background= "#aaa";*/
	}
	if(onglet == 2){
		Elt1.style.display = "none";
		/*Elt1_entete.style.background="#aaa";
		for(i=0; i<des_b1.length; i++)		des_b1[i].style.background= "#aaa";*/
		Elt2.style.display = "block";
		/*Elt2_entete.style.background="#4aa5d6";
		for(i=0; i<des_b2.length; i++)		des_b2[i].style.background= "#4aa5d6";*/
		Elt3.style.display = "none";
		/*Elt3_entete.style.background="#aaa";
		for(i=0; i<des_b3.length; i++)		des_b3[i].style.background= "#aaa";*/
	}
	if(onglet == 3){
		Elt1.style.display = "none";
		/*Elt1_entete.style.background="#aaa";
		for(i=0; i<des_b1.length; i++)		des_b1[i].style.background= "#aaa";*/
		Elt2.style.display = "none";
		/*Elt2_entete.style.background="#aaa";
		for(i=0; i<des_b2.length; i++)		des_b2[i].style.background= "#aaa";*/
		Elt3.style.display = "block";
		/*Elt3_entete.style.background="#4aa5d6";
		for(i=0; i<des_b3.length; i++)		des_b3[i].style.background= "#4aa5d6";*/
	}
}

/*************************************************************************/
function validation_pole(id_table, id, type, lang)
{	
	if(!verif_pole(lang)) return;
	if(!verif_structure(lang)) return;

	var nb = document.forms.formulaire_pole.elements.length;
	//alert(document.forms.formulaire_structure.csnom_structure.name);
	
	var donnee = "";
	for(i=0; i<nb; i++)
	{
		if(document.forms.formulaire_pole.elements[i].type != "radio")
			donnee += document.forms.formulaire_pole.elements[i].name + "=" + document.forms.formulaire_pole.elements[i].value + "&";
		else if(document.forms.formulaire_pole.elements[i].checked)
				donnee += document.forms.formulaire_pole.elements[i].name + "=" + document.forms.formulaire_pole.elements[i].value + "&";
	}
	
	var xhr = getXhr();

	xhr.onreadystatechange = function()
	{
		if(xhr.readyState == 4 && xhr.status == 200)
		{				
			reponse = xhr.responseText;
			document.getElementById('menu_info').innerHTML = reponse;
			document.getElementById('contenu_fiche').innerHTML = "";
			/*if(lang == 'fr') document.getElementById('contenu_fiche').innerHTML = "maj ok";
			if(lang == 'en') document.getElementById('contenu_fiche').innerHTML = "update ok";*/
			refresh_cpt_struct(id);
			refresh_cpt_compte(id);
			refresh_cpt_pole(id);		
		}
	}
		
	xhr.open("POST","./compte-ajax.php",true);
	xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	
	donnee += "service=maj_pole&id_session=" + id;
	xhr.send(donnee);
	
}

function verif_pole(lang)
{
	//alert(document.getElementsByName('csnom_structure')[0].value);
	if(document.getElementsByName('cnom_pole')[0].value == "")
	{
		if(lang == 'fr') alert("Entrez le nom du pole");
		if(lang == 'en') alert("Enter pole's name");
		document.getElementsByName('cnom_pole')[0].focus();
		return false;
	}
	if(document.getElementById('ctype_pole'))
	{
		if(document.getElementById('ctype_pole').selectedIndex == 0)
		{
			if(lang == 'fr') alert("Selectionnez le type du pole");
			if(lang == 'en') alert("Select the type of pole");
			changer_onglet("", 1);
			return false;
		}
	}
	return true;
}

/**********************************************************************************************************************************************************************/
/*********************************************************************** RELATIFS A STRUCTURE *************************************************************************/
function verif_structure(lang)
{
	var a_verif = true;
	if(document.getElementById('hidden_structure'))
	{
		if(document.getElementById('hidden_structure').value == "non")
		{
			a_verif = false;
			if(document.getElementById('cstructure').value == 0)
			{
				if(lang == 'fr') alert('Choisissez votre structure');
				if(lang == 'en') alert("Select your company");		
				return false;
			}
		}
		else a_verif = true;
	}
	if(!a_verif) return true;
	
	
	//alert(document.getElementsByName('csnom_structure')[0].value);
	if(document.getElementsByName('csnom_structure')[0].value == "")
	{
		if(lang == 'fr') alert("Entrez le nom de la structure");
		if(lang == 'en') alert("Enter company's name");
		document.getElementsByName('csnom_structure')[0].focus();
		return false;
	}
	
	if(document.getElementsByName('cstel')[0].value == "")
	{
		if(lang == 'fr') alert("Entrez le telephone de la structure");
		if(lang == 'en') alert("Enter company's telephone number");
		document.getElementsByName('cstel')[0].focus();
		return false;
	}
	
	if(document.getElementsByName('csadresse')[0].value == "")
	{
		if(lang == 'fr') alert("Entrez l'adresse de la structure");
		if(lang == 'en') alert("Enter company's address");
		document.getElementsByName('csadresse')[0].focus();
		return false;
	}
	
	if(document.getElementsByName('cscp')[0].value == "")
	{
		if(lang == 'fr') alert("Entrez le Code Postal");
		if(lang == 'en') alert("Enter company's Zip Code");
		document.getElementsByName('cscp')[0].focus();
		return false;
	}
	
	if(document.getElementsByName('csville')[0].value == "")
	{
		if(lang == 'fr') alert("Entrez la ville");
		if(lang == 'en') alert("Enter the city");
		document.getElementsByName('csville')[0].focus();
		return false;
	}
	
	if(document.getElementsByName('csmail')[0].value == "")
	{
		if(lang == 'fr') alert("Entrez l'adresse e-mail de la structure");
		if(lang == 'en') alert("Enter company's e-mail address");
		document.getElementsByName('csmail')[0].focus();
		return false;
	}
	
	var modele = new RegExp("^[a-z0-9\\-_\\.]+@[a-z0-9]+\\.[a-z]{2,5}$", "i");
	if(!modele.test(document.getElementsByName('csmail')[0].value))
	{
		if(lang == 'fr') alert("Entrez une adresse e-mail valide");
		if(lang == 'en') alert("Enter a valid e-mail address");
		document.getElementsByName('csmail')[0].focus();
		return false;
	}
	return true;
}

function afficher_mes_structures(id_session, dest)
{		
	ajax("", "", "", "afficher_mes_struct", dest, "", id_session);	
}

/*************************************************************************/
function auteur_privilegie(id, lang)
{
	if(document.forms.formulaire_structure.cauteur_privilegie.selectedIndex && (document.forms.formulaire_structure.cauteur_privilegie.selectedIndex != id))
	{
		if(lang == 'fr') check = confirm("Si vous modifiez l'auteur privilégié vous allez perdre le droit de modifier cette fiche! Êtes-vous sûr de continuer?"  );
		if(lang == 'en') check = confirm("If you modify the contact in charge, you won't be able to edit this form! Are you sure to continue ?");
		if (check == false)
		{
			document.forms.formulaire_structure.cauteur_privilegie.options[id].selected = true;
		}
	}else document.forms.formulaire_structure.cauteur_privilegie.options[id].selected = true;
}

/*************************************************************************/
function afficher_fiche_structure(id_table, id_session)
{	
	ajax("structure", id_table, "", "afficher_fiche_structure", 'contenu_fiche', "", id_session);	
}

/*************************************************************************/
function validation_structure(id_table, id, lang)
{
	if(!verif_structure(lang)) return;
	var nb = document.forms.formulaire_structure.elements.length;
	var donnee = "";
	for(i=0; i<nb; i++)
	{
		if(document.forms.formulaire_structure.elements[i].type != "radio")
			donnee += document.forms.formulaire_structure.elements[i].name + "=" + document.forms.formulaire_structure.elements[i].value + "&";
		else if(document.forms.formulaire_structure.elements[i].checked)
				donnee += document.forms.formulaire_structure.elements[i].name + "=" + document.forms.formulaire_structure.elements[i].value + "&";
	}
	
	var xhr = getXhr();

	xhr.onreadystatechange = function()
	{
		if(xhr.readyState == 4 && xhr.status == 200)
		{										
			reponse = xhr.responseText;
			document.getElementById('menu_info').innerHTML = reponse;
			document.getElementById('contenu_fiche').innerHTML = "";
			/*if(lang == 'fr') document.getElementById('contenu_fiche').innerHTML = "maj ok";
			if(lang == 'en') document.getElementById('contenu_fiche').innerHTML = "update ok";*/
			refresh_cpt_struct(id);
			refresh_cpt_compte(id);
			refresh_cpt_pole(id);		
		}
	}

	xhr.open("POST","./compte-ajax.php",true);
	xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	
	donnee += "service=maj_structure&id_session=" + id;
	xhr.send(donnee);
}

/**********************************************************************************************************************************************************************/
/************************************************************************ RELATIFS A MON COMPTE ***********************************************************************/
function afficher_contact(id)
{	
	ajax("spip_auteurs", id, "", "afficher_contact", "contenu_fiche", "", id);
	//ajax("spip_auteurs", id, "", "afficher_contact", "test", "", "");
}

function validation_contact(lang, id_session)
{
	if(!verif_formulaire(lang)) return;
	
	//ajax("spip_auteurs", id, "", "maj_contact", "test", "", "");
	var nb = document.forms.formulaire_compte.elements.length;
	var donnee = "";
	for(i=0; i<nb; i++)
	{
		if(document.forms.formulaire_compte.elements[i].type != "radio")
			donnee += document.forms.formulaire_compte.elements[i].name + "=" + document.forms.formulaire_compte.elements[i].value + "&";
		else if(document.forms.formulaire_compte.elements[i].checked)
				donnee += document.forms.formulaire_compte.elements[i].name + "=" + document.forms.formulaire_compte.elements[i].value + "&";
	}
	
	var xhr = getXhr();

	xhr.onreadystatechange = function()
	{
		if(xhr.readyState == 4 && xhr.status == 200)
		{		
			reponse = xhr.responseText;
			document.getElementById('menu_info').innerHTML = reponse;
			document.getElementById('contenu_fiche').innerHTML = "";
			/*if(lang == 'fr') document.getElementById('contenu_fiche').innerHTML = "maj ok";
			if(lang == 'en') document.getElementById('contenu_fiche').innerHTML = "update ok";*/
			refresh_cpt_struct(id_session);
			refresh_cpt_compte(id_session);
			refresh_cpt_pole(id_session);
		}
	}

	xhr.open("POST","./compte-ajax.php",true);
	xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	
	donnee += "service=maj_contact";
	xhr.send(donnee);
}

function afficher_mon_compte(id)
{
	window.document.getElementById('fiche_pole').style.display = "none";
	window.document.getElementById('fiche_structure').style.display = "none";	
	afficher_mes_poles(id, "mes_poles");
	afficher_mes_structures(id, "mes_structures");
	montrer('mon_compte');
	//indow.document.getElementById('mon_compte').style.display = "block";
}
// ******************************* login once

$.fn.login_once = function(donnee) {

			 $.ajax({
   					type: "POST",
  			 		url: "./fonctions_ajax.php",
  			 		data: donnee,					
   					success: function(msg){   
   						var login = msg.substring(msg.indexOf("<login>")+ "<login>".length, msg.indexOf("</login>"))
   						var alea_actuel = msg.substring(msg.indexOf("<alea_actuel>")+ "<alea_actuel>".length, msg.indexOf("</alea_actuel>"))
   						var alea_futur = msg.substring(msg.indexOf("<alea_futur>")+ "<alea_futur>".length, msg.indexOf("</alea_futur>"))   						   									
   						   						
   						$("#session_login_hidden").attr({value: login});
   						$("#session_password").attr({id: "var_login_" + login});
   						$("form").attr
   						({
   							id: "login_" + login,
   							onsubmit: 'if ($("#var_login_' + login + '").val()) {' +
							'this.session_password_md5.value = calcMD5("' + alea_actuel + '" + $("#var_login_' + login + '").val());' +
							'this.next_session_password_md5.value = calcMD5("' + alea_futur + '" + $("#var_login_' + login + '").val());' +
							'$("#var_login_' + login + '").attr({value: ""});}'
   						});
   						
 			 	 	}
				});//fin ajax				
}



