function sendData(where, what, place)
{ 
	var req = null; 
	
	if(window.XMLHttpRequest)
		req = new XMLHttpRequest();
	else if (window.ActiveXObject)
		req  = new ActiveXObject(Microsoft.XMLHTTP);
	
	req.onreadystatechange = function()
	{ 
		//say(place, '<img src="./../site/images/ressources/admin/autres/indicator.gif" alt="Veuillez patienter" title="Veuillez patienter" class="indicator" />');
		if(req.readyState == 4)
		{
			if(req.status == 200)
			{
				say(place, req.responseText);
			}	
			else	
			{
				say("informationZone", "Error: returned status code " + req.status + " " + req.statusText, "nok");
			}
			
		} 
	}; 
	req.open("POST", where, true);
	req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");                  
	req.send(what); //eg : title=test&amp;text=blablabla
}

// même fonction qu'au dessus, mais celle-là affiche la roue...
function sendData2(where, what, place)
{ 
	say(place, '<img src="./images/ressources/admin/autres/indicator.gif" alt="Veuillez patienter" title="Veuillez patienter" class="indicator" />');
	sendData(where, what, place);
}

// même fonction, mais ne modifie pas les propriété d'affichage
function sendData3(where, what, place)
{
	var req = null; 
	
	if(window.XMLHttpRequest)
		req = new XMLHttpRequest();
	else if (window.ActiveXObject)
		req  = new ActiveXObject(Microsoft.XMLHTTP);
	
	req.onreadystatechange = function()
	{ 
		if(req.readyState == 4)
		{
			if(req.status == 200)
			{
				say2(place, req.responseText);
			}	
			else	
			{
				say2("informationZone", "Error: returned status code " + req.status + " " + req.statusText, "nok");
			}
			
		} 
	}; 
	req.open("POST", where, true);
	req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");                  
	req.send(what); //eg : title=test&amp;text=blablabla
}

function say(place, what, next)
{
	if (status)
	{
		document.getElementById(place).className = status;
		setTimeout("retirer('"+place+"')", 5000); 
	}
	afficher(place);
	document.getElementById(place).innerHTML = what;
	execute();
}

// même fonction qu'au dessus, mais ne modifie pas l'affichage
function say2(place, what)
{
	document.getElementById(place).innerHTML = what;
	execute();
}

function execute()
{
	var i = 1;
	var temp = "";
	while (document.getElementById('toexecute'+i))
	{
		temp = document.getElementById('toexecute'+i).innerHTML;
		document.getElementById('toexecute'+i).id = null;
		eval(temp);
		i++;
	}
}

function retirer(objet)
{
	document.getElementById(objet).style.display = 'none';
}
function masquer(objet)
{
	document.getElementById(objet).style.opacity = '0';
}

function afficher(objet)
{
	document.getElementById(objet).style.display = 'inline';
}
function afficher_block(objet)
{
	document.getElementById(objet).style.display = 'block';
}
function montrer(objet)
{
	document.getElementById(objet).style.opacity = '1';
}

function targeting(form)
{
	document.getElementById("informationZone").innerHTML = "<iframe name='hiddenframe' style='display:none;' id='hiddenframe'></iframe>";
	form.target = "hiddenframe";
	form.submit();
}

/////////////////////

var page = 0;
var liste;
var ecriture = false;

///////////////////

function charger_photo(ordre)
{
	page += ordre;
	if (page >= liste.length)
	{
		page = 0;
	}
	else if (page < 0)
	{
		page = liste.length-1;
	}
	//alert(page);
	sendData('fonctions/charger.php', 'action=photo&soim_id='+liste[page], 'photoZone');
}

//////////////// pointages /////////

function chargerPointages(soim_id)
{
	sendData("fonctions/charger.php", "action=pointages&soim_id="+soim_id, "quiZone");
}

function validerPointage(soimpo_id, me_id)
{
	sendData('fonctions/charger.php', 'action=pointer_fin&soimpo_id='+soimpo_id+'&soimpo_qui='+me_id, 'informationZone');
	retirer('amisZone');
}

function positionner(quoi, e)
{
	document.getElementById(quoi).style.left = (e.clientX+document.documentElement.scrollLeft)+'px';
	document.getElementById(quoi).style.top = (e.clientY+document.documentElement.scrollTop)+'px';
	//alert(document.documentElement.scrollTop+' - '+document.documentElement.scrollLeft);
}

function positionnerCadre(area, cadre)
{
	var tab = area.coords.split(',');

	document.getElementById(cadre).style.left = area.offsetLeft;
	document.getElementById(cadre).style.top = area.offsetTop;
	
	document.getElementById(cadre).style.display = 'block';
}

function chargerAmis(soimpo_id, soimpo_x, soimpo_y)
{
	document.getElementById('amisZone').style.display = 'inline';
	document.getElementById('soimpo_id').value = soimpo_id;
	
	document.getElementById('listeAmis').innerHTML = sendData('fonctions/charger.php', 'action=amis&soimpo_id='+soimpo_id+'&texte=', 'listeAmis');
}

<!-- instructions messages -->

var selectionner = false;	// savoir si on sélectionne ou pas
var choix;					// quelle case est choisie
var maxChoix;				// descente max

function chargerMembres(texte)
{
	selectionner = true;
	choix = 1;
	sendData2('fonctions/charger.php', 'action=listerMembres&texte='+texte, 'listeMembresProposes');
	document.getElementById("listeMembresProposes").scrollTo(0);
}

function ajouterDestinataire(me_id, me_pseudo, me_sexe)
{
	retirer('listeMembresProposes');
	document.getElementById('correspondants').innerHTML += '<span class="messageMembre '+me_sexe+'" title="Enlever de la liste" onclick="this.innerHTML=null;">'+me_pseudo+', <input type="hidden" name="correspondants[]" value="'+me_id+'" /></span>';
	document.getElementById('champMembre').value = "";
	initChoix();
}

function initChoix()
{
	selectionner = false;
	choix = 1;
	retirer('listeMembresProposes');
}

function changerChoix(direction)
{
	document.getElementById("choix_"+choix).className = "";

	choix += direction;
	if (choix <= 0)
	{
		choix = maxChoix;
		document.getElementById("listeMembresProposes").scrollTop = document.getElementById("choix_"+choix).scrollHeight * maxChoix;
	}
	else if (choix > maxChoix)
	{
		choix = 1;
		document.getElementById("listeMembresProposes").scrollTo(0);
	}
	else
	{
		document.getElementById("listeMembresProposes").scrollTop += document.getElementById("choix_"+choix).scrollHeight 
 * direction;
	}
	
	document.getElementById("choix_"+choix).className = "selected";
}

function selectionnerDo()
{
	eval(document.getElementById("choix_"+choix).getAttribute("onclick"));
}

function developper_commentaires(what, id, date, liste_id)
{
	var where = what+"_"+id+"_coms_"+date;
	var tab = date.split("_");
	
	sendData3('fonctions/charger.php', 'action=listerCommentairesEvenements&what='+what+'&id='+id+'&date='+tab[0]+'&liste_id='+liste_id, where);
}

function developper_images(so_id, date, me_id)
{
	var where = "sortie_"+so_id+"_images_"+date+"_"+me_id;
	
	sendData3('fonctions/charger.php', 'action=listerImagesEvenements&so_id='+so_id+'&date='+date+'&me_id='+me_id, where);
}

function lecture(so_id)
{
	var where = 'player'+so_id;
	sendData2('fonctions/charger.php', 'action=lecture&so_id='+so_id, where);
}


//----------------------------
// sondages

function question_suivante(su_id, suqu_numero)
{
	sendData('fonctions/fonctions_sondages_pub.php', 'action=afficher_question&su_id='+su_id+'&suqu_numero='+suqu_numero, 'sondagesZone');
}

//-----------------------
// disabling

var tabDisabled = Array();

function disable(what)
{
	tabDisabled[0] = what;
	what.disabled = "disabled";
	return true;
}

function enable()
{
	for (var i=0; i<tabDisabled.length; i++)
	{
		tabDisabled[i].disabled = null;
	}
	
	tabDisabled = Array();
	
	return true;
}

function mobile_code()
{
	var me_tel = document.getElementById("me_tel").value;

	sendData("fonctions/mobile_code.php", "me_tel="+me_tel, 'informationZone');
}

function checkAll(formId, status)
{
	var form = document.getElementById(formId);
	
	for (var i=0; i<form.length; i++)
	{
		if (form.elements[i].type == "checkbox")
		{
			form.elements[i].checked = status;
		}
	}	
}

function lister(lien, li_id, me_id, statut)
{
	sendData("fonctions/listes_fonctions.php", "action=associer&li_id="+li_id+"&me_id="+me_id+"&statut="+statut, 'informationZone');
	
	var number;
	if (lien.className == "")
	{
		lien.className = "selected";
		number = 0;
	}else{
		lien.className = "";
		number = 1;
	}
	lien.onclick = function () { lister(this, li_id, me_id, number); }
}

function switchDisplay(hide, show)
{
	if (hide) 
	{
		if (document.getElementById(hide).style.display == "none")
		{
			document.getElementById(hide).style.display = "block";
		}else{
			document.getElementById(hide).style.display = "none";
		}
	}
	if (show) 
	{
		if (document.getElementById(show).style.display == "block")
		{
			document.getElementById(show).style.display = "none";
		}else{
			document.getElementById(show).style.display = "block";
		}
	}
}

function arreter_suivi(so_id)
{
	sendData('fonctions/suivis_fonctions.php', 'action=arreter&so_id='+so_id, '');
}

function intercaleCommentaire(co_id, text)
{
	tinyMCE.activeEditor.setContent("");
	document.getElementById("commentaires").innerHTML = text + document.getElementById("commentaires").innerHTML;
}

function delete_com(co_id)
{
	document.getElementById("commentaire_"+co_id).style.display = "none";
	sendData("fonctions/commentaires_delete.php", "co_id="+co_id, "informationZone");
}