var base={
	RequeteServeur:function(href, param, fonctionRetour, method, asynchro, format)
	{
	   var xhr_object = null;  
	   method=(method)?method.toLowerCase():"get";
	   if(!format) format="text";
	   
	   if(window.XMLHttpRequest) xhr_object=new XMLHttpRequest();
	   else if(window.ActiveXObject)
	   {
		  xhr_object=new ActiveXObject("Msxml2.XMLHTTP");	
		  if(!xhr_object) xhr_object= new ActiveXObject("Microsoft.XMLHTTP");
	   }   
	   if(!xhr_object) { alert("Ce site est incompatible avec votre navigateur !");  return; }
	   
	   if(method=="get") { href+="?"+param; param=null; }
	
	   try
	   {	   
		  xhr_object.onreadystatechange=function()
		  {
			  if(xhr_object.readyState==4 && fonctionRetour && xhr_object.status==200)
				  fonctionRetour( (format=="xml")?xhr_object.responseXML:xhr_object.responseText );
		  }
		  xhr_object.open(method.toUpperCase(), href, asynchro);	  
		  if(method=="post") xhr_object.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	
		  xhr_object.send(param);
		   
	   } catch(errv) { alert("Erreur de connection au serveur : "+errv.message); }
	},
	
	array_push:function(array){
		// http://kevin.vanzonneveld.net
		// +   original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
		// *     example 1: array_push(['kevin','van'], 'zonneveld');
		// *     returns 1: 3
	 
		var i, argv = arguments, argc = argv.length;
	 
		for (i=1; i < argc; i++){
			array[array.length++] = argv[i];
		}
	 
		return array.length;
	},
	
	addContact:function(){
		var cadre=document.getElementById('cadreContacts');
		var num=cadre.getElementsByTagName('div').length;
		
		base.RequeteServeur('fonctions.php', 'type=1&num='+num, function(retour){
			var cadre=document.getElementById('cadreContacts');
			var first=cadre.FirstChild;
			var div=document.createElement('div');
			var divClass=document.createAttribute('class');
			var divId=document.createAttribute('id');
			divClass.nodeValue='ficheContact';
			divId.nodeValue='ficheContact'+num;
			div.setAttributeNode(divClass);
			div.setAttributeNode(divId);
			div.innerHTML=retour;
			cadre.insertBefore(div, first);
		}, 'post', true);
	},

	addPartenaire:function(){
		var cadre=document.getElementById('cadrePartenaires');
		var num=cadre.getElementsByTagName('div').length;
		
		base.RequeteServeur('fonctions.php', 'type=2&num='+num, function(retour){
			var cadre=document.getElementById('cadrePartenaires');
			var first=cadre.FirstChild;
			var div=document.createElement('div');
			var divClass=document.createAttribute('class');
			var divId=document.createAttribute('id');
			divClass.nodeValue='fichePartenaire';
			divId.nodeValue='fichePartenaire'+num;
			div.setAttributeNode(divClass);
			div.setAttributeNode(divId);
			div.innerHTML=retour;
			cadre.insertBefore(div, first);
		}, 'post', true);
	},
	
	showWorld:function(type, type_affiche){

			// Je crée un tableau vide qui va contenir les identifiants des continent ou des regions
			var ids=new Array();
			
			// Je définis dans quel tableau je me trouve
			var cadre=document.getElementById("tbl_"+type);
			
			// Je récupère tous les inputs du tableau
			var inputs=cadre.getElementsByTagName("input");
			
			var tousChecked=true;
			
			// Pour chaque input type checkbox je l'enregistre dans le tableau précédement créé (ids).
			for(var i=1; i<inputs.length; i++) {
				var objet=inputs[i];
				
				if(objet.type.toLowerCase()=="checkbox" && objet.checked==true) base.array_push(ids, objet.value);
				else tousChecked=false;
			}
			
			cadre.getElementsByTagName('input')[0].checked=tousChecked;
			
			// Si le tableau n'est pas vide, j'envoie une requete pour récupérer tous les enfants des continents ou des régions
			if(ids.length!=0) {
				base.RequeteServeur('fonctions.php', "type=3&id=" + ids + "&type_affichage=" + type_affiche, 
								function(retour) {
									document.getElementById("Show_"+type_affiche).innerHTML=retour;
									document.getElementById("Show_"+type_affiche).className="visible";
									
								}, "post", true);
			} else {
				document.getElementById("Show_"+type_affiche).className="invisible";
			}
	},
	
	checkAll:function(type, type_affiche){	
		// Tableau sur lequel agir
		var cadre=document.getElementById("tbl_"+type);
		
		// Etat de la checkbox "Tous les continents"
		var etat_all=cadre.getElementsByTagName('input')[0].checked;
		
		// Je sélectionne tous les inputs du tableau
		var inputs=cadre.getElementsByTagName("input");
		
		// Pour chaque input
		for(var i=1; i<inputs.length; i++)
		{
			inputs[i].checked=etat_all;	
		}
		
		base.showWorld(type, type_affiche);	
	},
	
	showCountries:function(classe){var cadre=document.getElementById('tbl_pays');var collection=cadre.getElementsByTagName('tr');for(var i=0; i<collection.length; i++){if(collection[i].className==classe && collection[i].style.display=='none'){collection[i].style.display='table-row';}else if(collection[i].className==classe && collection[i].style.display=='table-row'){collection[i].style.display='none';}}},
	
	addPartenaire2:function(){
		var chxPart=document.getElementById('chxPart').options[document.getElementById('chxPart').selectedIndex].value;
		var id_fiche=document.getElementById('id_fiche_edition').value;
		base.RequeteServeur('fonctions.php', 'type=4&id_fiche='+id_fiche+'&id_partenaire='+chxPart, function(retour){
																											alert(retour);
			var cadre=document.getElementById('listPartenaires');
			var first=cadre.FirstChild;
			var li=document.createElement('li');
			li.innerHTML=retour;
			cadre.insertBefore(li, first);
		}, 'post', true);

	}
}
