// 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 (mode == 0) 
	{
		document.getElementById('mode').innerHTML = "<FONT COLOR=#FFFFFF>Mode Recherche";
	} 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>";
	};
}

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
		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;
			set_panel_mode(mode);
			tinyMCE.onLoad();
			if ((mode == 3) || (mode==5) || (mode==7)) get_grid(-1,11,0);
		}
	}
	// 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);
	c=document.forms["formulaire"]["c"].value;
	a=document.forms["formulaire"]["a"].value;
	xhr.send("c="+c+"&a="+a+"&ID="+id+"&mode="+mode+req);
	
}

function get_grid(id,mode,debut)
{
	if (!document.getElementById('grille')) {return;}
	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;
			set_panel_mode(mode);
//			document.getElementById('grille_action').innerHTML = "";
		}
	}
	// 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
	c=document.forms["formulaire"]["c"].value;
	a=document.forms["formulaire"]["a"].value;
	xhr.send("c="+c+"&a="+a+"&debut="+debut+"&ID="+id+"&mode="+mode+"&WHERE="+where);
}

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()
{
}

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 != "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;
		get_grid(id,mode,0);
		mode=0;
	} else
	if (mode == 2)
	{
		sel = document.getElementById('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;
	}
	set_panel_mode(mode);
}


mode=0;
where = "";

//var hello = getXhr();
//alert("ok");