// Ajax.cs
// Auteur : Vincent BILLET
// Date : 22/06/2007
// Description : 
// Gérer les flux XML pour les bases de données.

function alerte()
{
	alert("hello");
}

//////////////////////////////////////////////////////////////
// Fonctions de base
//////////////////////////////////////////////////////////////
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 le web 2.0. Veuillez le mettre à jour."); 
		xhr = false; 
	} 
        return xhr;
}

//////////////////////////////////////////////////////////////
// Fonctions exemples
//////////////////////////////////////////////////////////////
function set_panel_mode(mode)
{
	if (!document.getElementById('_mode')) {return;}
	if (mode == 0) { document.getElementById('_mode').innerHTML = "<FONT COLOR=#FFFFFF>Mode Recherche</FONT>"; } else
	if (mode == 1) { document.getElementById('_mode').innerHTML = "<FONT COLOR=#FFFFFF>Mode Fiche</FONT>";} else
	if (mode == 2) { document.getElementById('_mode').innerHTML = "<FONT COLOR=#FFFFFF>Mode Mise à jour</FONT>"; } else
	if (mode == 3) { document.getElementById('_mode').innerHTML = "<FONT COLOR=#FF0000>Erreur</FONT>"; } else
	if (mode == 4) { document.getElementById('_mode').innerHTML = "<FONT COLOR=#FFFFFF>Mode Ajout</FONT>"; } else
	if (mode == 5) { document.getElementById('_mode').innerHTML = "<FONT COLOR=#FF0000>Mode Erreur</FONT>"; } else
	if (mode == 6) { document.getElementById('_mode').innerHTML = "<FONT COLOR=#FF0000>Mode Suppression</FONT>"; } else
	if (mode == 99) { document.getElementById('_mode').innerHTML = "<FONT COLOR=#FFFFFF>Recherche</FONT>"; };
}

function get_record(id,mode)
{
	var xhr = getXhr();
	// On défini ce qu'on va faire quand on aura la réponse
	xhr.onreadystatechange = function(){
		// On ne fait quelque chose que si on a tout reçu et que le serveur est ok
		if (document.getElementById('_mode')) {document.getElementById('_mode').innerHTML = "<FONT COLOR=#FF0000>Chargement...</FONT>";}
		if(xhr.readyState == 4 && xhr.status == 200){
			leselect = xhr.responseText;
			// On se sert de innerHTML pour rajouter les options a la liste
			document.getElementById('pan').innerHTML = leselect;
			if (document.getElementById('_mode')) {set_panel_mode(document.forms["formulaire"].elements["mode"].value);}
			tinyMCE.onLoad();
			if ((mode == 3) || (mode==5) || (mode==7))
			{
				set_panel_mode(99);
				get_grid(-1,11,gdebut);
			}
		}
	}
	// Ici on va voir comment faire du post
	xhr.open("POST","appli.php",true);
	// ne pas oublier ça pour le post
	xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	// ne pas oublier de poster les arguments
	// ici, l'id de l'auteur
	req = "";
	tinyMCE.triggerSave(false,false);
	if ((mode == 3) || (mode==5))
	for (ii=1;ii<document.forms["formulaire"].elements.length;ii++)
	{
		okcheck=true;
		if (document.forms["formulaire"].elements[ii].type == "checkbox")
			if (!document.forms["formulaire"].elements[ii].checked)
				okcheck=false;

		if ((document.forms["formulaire"].elements[ii].value != "") &&
		    (okcheck==true) &&
		    (document.forms["formulaire"].elements[ii].name != "mode"))
		{
			chaine = document.forms["formulaire"].elements[ii].value;
			chaine = escape(chaine);
			req = req+'&'+document.forms["formulaire"].elements[ii].name+'='+chaine;
		}
	}
//	alert(req);
	filtre="";
	presentation="";
	if (!document.forms["formulaire"]) {a="";} else {a=document.forms["formulaire"]["a"].value;}
	if (!document.forms["formulaire"]) {c="";} else {c=document.forms["formulaire"]["c"].value;}
	if (document.forms["formulaire"].elements["WHERE"]) {where=document.forms["formulaire"]["WHERE"].value;}
	if (document.forms["formulaire"].elements["FILTRE"]) {filtre=document.forms["formulaire"]["FILTRE"].value;}
	if (document.forms["formulaire"].elements["PRESENTATION"]) {presentation=document.forms["formulaire"]["PRESENTATION"].value;}
//	alert("c="+c+"&a="+a+"&ID="+id+"&mode="+mode+"&panneau="+panneau+"&WHERE="+where+"&FILTRE="+filtre+req);
	xhr.send("c="+c+"&a="+a+"&ID="+id+"&mode="+mode+"&panneau="+panneau+"&WHERE="+where+"&FILTRE="+filtre+"&PRESENTATION="+presentation+req);
}


function get_grid(id,mode,debut)
{
	if (!document.getElementById('grille')) {return;}
	set_panel_mode(99);
	gdebut=debut;
	var xhr = getXhr();
	// On défini ce qu'on va faire quand on aura la réponse
	xhr.onreadystatechange = function(){
		// On ne fait quelque chose que si on a tout reçu et que le serveur est ok
//		document.getElementById('grille_action').innerHTML = "Chargement...";
		if(xhr.readyState == 4 && xhr.status == 200){
			leselect = xhr.responseText;
			// On se sert de innerHTML pour rajouter les options a la liste
			document.getElementById('grille').innerHTML = leselect;
//			if (document.forms["formulaire"]) {
				set_panel_mode(document.forms["formulaire"].elements["mode"].value);
				mode = document.forms["formulaire"].elements["mode"].value;
//			}
//			document.getElementById('grille_action').innerHTML = "";
//			alert("OK");
		}
	}
	// Ici on va voir comment faire du post
	xhr.open("POST","appli.php",true);
	// ne pas oublier ça pour le post
	xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	// ne pas oublier de poster les arguments
	// ici, l'id de l'auteur
	filtre="";
	presentation="";
	if (!document.forms["formulaire"]) {a="";} else {a=document.forms["formulaire"]["a"].value;}
	if (!document.forms["formulaire"]) {c="";} else {c=document.forms["formulaire"]["c"].value;}
	if (document.forms["formulaire"].elements["WHERE"]) {where=document.forms["formulaire"]["WHERE"].value;}
	if (document.forms["formulaire"].elements["FILTRE"]) {filtre=document.forms["formulaire"]["FILTRE"].value;}
	if (document.forms["formulaire"].elements["PRESENTATION"]) {presentation=document.forms["formulaire"]["PRESENTATION"].value;}
//	alert("c="+c+"&a="+a+"&debut="+debut+"&ID="+id+"&mode="+mode+"&WHERE="+where+"&FILTRE="+filtre);
	xhr.send("c="+c+"&a="+a+"&debut="+debut+"&ID="+id+"&mode="+mode+"&WHERE="+where+"&FILTRE="+filtre+"&PRESENTATION="+presentation);
}

function pan_configure()
{
	id=-1;
	mode=21;
	get_record(id,mode);
}


function pan_prior()
{
	sel = document.getElementById('ID');
	id = sel.value-1;
	get_record(id,mode);
}
function pan_next()
{
	sel = document.getElementById('ID');
	id = sel.value-(-1);
	get_record(id,mode);
}

function pan_seek()
{
	sel = document.getElementById('ID');
	id = sel.value;
	mode=0;
	get_record(id,mode);
}

function pan_view()
{
	sel = document.getElementById('ID');
	id = sel.value;
	mode=1;
	get_record(id,mode);
}

function pan_edit()
{
	sel = document.getElementById('ID');
	id = sel.value;
	mode=2;
	get_record(id,mode);
}

function pan_insert()
{
	sel = document.getElementById('ID');
	id = sel.value;
	mode=4;
	get_record(id,mode);
}

function pan_update(p)
{
	sel = document.getElementById('ID');
	id=sel.value;
	panneau=p;
	get_record(id,document.formulaire.mode.value);
}

function pan_delete()
{
	if (confirm("Voulez vous réellement suprimer cet enregistrement?"))
	{
		sel = document.getElementById('ID');
		id = sel.value;
		mode=7;
		get_record(id,mode);
		mode=0;
	}
}

function pan_help()
{
	id = -1;
	mode=15;
	get_record(id,mode);
}

function pan_validate()
{
	if (mode == 0)
	{
		sel = document.getElementById('ID');
		id = sel.value;
		premier = true;
		where = "";
		for (ii=1;ii<document.forms["formulaire"].elements.length;ii++)
		{
			if ((document.forms["formulaire"].elements[ii].value != "") && 
			    (document.forms["formulaire"].elements[ii].name != "mode") &&
			    (document.forms["formulaire"].elements[ii].name != "c") &&
			    (document.forms["formulaire"].elements[ii].name != "FILTRE") &&
			    (document.forms["formulaire"].elements[ii].name != "PRESENTATION") &&
			    (document.forms["formulaire"].elements[ii].name != "a"))
			{
				if (premier)
				{
					where = document.forms["formulaire"].elements[ii].name+' LIKE "'+document.forms["formulaire"].elements[ii].value+'*"';
				} else
				{
					where = where+' AND '+document.forms["formulaire"].elements[ii].name+' LIKE "'+document.forms["formulaire"].elements[ii].value+'*"';
				}
				premier=false;
			}
		}
		mode=11;
		if (document.forms["formulaire"].elements["WHERE"]) {
			sa=document.forms["formulaire"]["WHERE"].value;
			document.forms["formulaire"]["WHERE"].value=where;
		}
//		alert(document.forms["formulaire"]["WHERE"].value);
		get_grid(id,mode,0);
		if (document.forms["formulaire"].elements["WHERE"]) {
			document.forms["formulaire"]["WHERE"].value=sa;
		}
		mode=0;
	} else
	if (mode == 2)
	{
		sel = document.forms["formulaire"]["ID"];
		id = sel.value;
		mode=3;
		get_record(id,mode);
		mode=1;
	}
	if (mode == 4)
	{
		sel = document.getElementById('ID');
		id = sel.value;
		mode=5;
		get_record(id,mode);
		mode=4;
	}
}

function charger_php(url,elt,id)
{
//	get_record(id,101+mode);

	var xhr = getXhr();
	// On défini ce qu'on va faire quand on aura la réponse
	xhr.onreadystatechange = function(){
		// 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){
			leselect = xhr.responseText;
			// On se sert de innerHTML pour rajouter les options a la liste
			document.forms["formulaire"]["msg"].value=leselect;
			tinyMCE.execCommand("mceInsertContent", false,leselect);
		}
	}
	// Ici on va voir comment faire du post
	xhr.open("POST",url,true);
	// ne pas oublier ça pour le post
	xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	// ne pas oublier de poster les arguments
	// ici, l'id de l'auteur
//	alert(url+"?"+"ID="+id);
	xhr.send("ID="+id);
}

function charger_php_grille(url,op,id)
{
	var xhr = getXhr();
	// On défini ce qu'on va faire quand on aura la réponse
	xhr.onreadystatechange = function(){
		// 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){
			leselect = xhr.responseText;
		        get_grid(-1,11,0);
		}
	}
	// Ici on va voir comment faire du post
	xhr.open("POST",url,true);
	// ne pas oublier ça pour le post
	xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	// ne pas oublier de poster les arguments
	// ici, l'id de l'auteur
//	alert(url+"?"+"ID="+id);
	xhr.send("ID="+id+"&op="+op);
}

function charger_jeu(id,mode)
{
//	get_record(id,101+mode);

	var xhr = getXhr();
	// On défini ce qu'on va faire quand on aura la réponse
	xhr.onreadystatechange = function(){
		// On ne fait quelque chose que si on a tout reçu et que le serveur est ok
//		document.getElementById('mode').innerHTML = "<FONT COLOR=#FF0000>Chargement...</FONT>";
		if(xhr.readyState == 4 && xhr.status == 200){
			leselect = xhr.responseText;
			// On se sert de innerHTML pour rajouter les options a la liste
			document.getElementById('interior').innerHTML = leselect;
//			document.getElementById('mode').innerHTML = "<FONT COLOR=#FFFFFF>Jeu</FONT>";
		}
	}
	// Ici on va voir comment faire du post
	xhr.open("POST","php/fleepflash_load.php",true);
	// ne pas oublier ça pour le post
	xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	// ne pas oublier de poster les arguments
	// ici, l'id de l'auteur
	c=document.forms["formulaire"]["c"].value;
	a=document.forms["formulaire"]["a"].value;
	xhr.send("c="+c+"&a="+a+"&ID="+id+"&mode="+mode);
}

function charger_module(php,di,par)
{
	var xhr = getXhr();
	// On défini ce qu'on va faire quand on aura la réponse
	xhr.onreadystatechange = function(){
		if(xhr.readyState == 4 && xhr.status == 200){
			leselect = xhr.responseText;
			// On se sert de innerHTML pour rajouter les options a la liste
			document.getElementById(di).innerHTML = leselect;
		}
	}
	// Ici on va voir comment faire du post
	xhr.open("POST",php,true);
	// ne pas oublier ça pour le post
	xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	// ne pas oublier de poster les arguments
	// ici, l'id de l'auteur
	xhr.send(par);
}

function charger_module2(php,di,par)
{
	var xhr = getXhr();
	// On défini ce qu'on va faire quand on aura la réponse
	xhr.onreadystatechange = function(){
		if(xhr.readyState == 4 && xhr.status == 200){
			leselect = xhr.responseText;
			// On se sert de innerHTML pour rajouter les options a la liste
			document.getElementById(di).innerHTML = leselect;
		}
	}
	// Ici on va voir comment faire du post
	alert(php+"?"+par);
	xhr.open("GET",php,true);
	// ne pas oublier ça pour le post
	xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	// ne pas oublier de poster les arguments
	// ici, l'id de l'auteur
	xhr.send(par);
}

function swap(eltn)
{
	NS = (navigator.appName != "Microsoft Internet Explorer");
	elt = document.getElementById(eltn);
	if (NS)
	{ 
		if (elt.style.visibility=="show") {elt.style.visibility = "hide";} else {elt.style.visibility="show";}
	} else
	{
		if (elt.style.visibility=="visible") {elt.style.visibility = "hidden";} else {elt.style.visibility="visible"; elt.style.height=0;}
	}
}

function ShowHide(Div) {
   if (Div.style.display=='none') {
     Div.style.display='InLine';
    } 
    else {
     Div.style.display='none';
    }
}

panneau="";
mode=0;
where = "";
gdebut=0;

//var hello = getXhr();
//alert("ok");