// Wijax.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 == 90) { document.getElementById('_mode').innerHTML = "<FONT COLOR=#FF0000>Chargement...</FONT>"; };
	if (mode == 99) { document.getElementById('_mode').innerHTML = "<FONT COLOR=#FFFFFF>Recherche</FONT>"; };
}

function reinit(frm)
{
//if (document.forms["formulaire"+frm].elements["FICHART"]===undefined) {return;}
//alert(mode);
	if ((mode==2) || (mode==4))
	{
		for (ii=1;ii<document.forms["formulaire"+frm].elements.length;ii++)
		{
			if (document.forms["formulaire"+frm].elements[ii].type=='textarea')
			{
				tinyMCE.execCommand('mceAddControl', false, document.forms["formulaire"+frm].elements[ii].id);
			}
		}
	}
}

function get_record(id,mode,frm)
{
//alert(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"+frm].elements["mode"].value);}
//			tinyMCE.onLoad();
			reinit(frm);
			if ((mode == 3) || (mode==5) || (mode==7))
			{
				set_panel_mode(99);
				
				if (document.forms["formulaire"+frm].elements["PRESENTATION"].value=="")
				{
					get_grid(-1,11,gdebut,document.forms["formulaire"+frm].elements["c"].value+document.forms["formulaire"+frm].elements["a"].value,frm);
				} else
				{
					get_grid(-1,11,gdebut,document.forms["formulaire"+frm].elements["c"].value+document.forms["formulaire"+frm].elements["a"].value+"-"+document.forms["formulaire"+frm].elements["PRESENTATION"].value,frm);
				}
			}
			if (mode==0)
			{
				pan_validate(frm);
			}
//		alert(document.forms["formulaire"+frm]["WHERE"].value+":"+mode);
		}
	}
	// Ici on va voir comment faire du post
	xhr.open("POST","index.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 = "";
//	alert("mode1 : "+mode);
	tinyMCE.triggerSave(false,false);
	if (document.forms["formulaire"+frm]) if (document.forms["formulaire"+frm].elements) for (ii=1;ii<document.forms["formulaire"+frm].elements.length;ii++)
	{
		if (document.forms["formulaire"+frm].elements[ii].type=='textarea')
		{
			tinyMCE.execCommand('mceRemoveControl', false, document.forms["formulaire"+frm].elements[ii].id);
		}
	}
	if ((mode == 3) || (mode==5) || (mode==7))
//alert(frm);
	for (ii=1;ii<document.forms["formulaire"+frm].elements.length;ii++)
	{
		okcheck=true;
		if (document.forms["formulaire"+frm].elements[ii].type == "checkbox")
			if (!document.forms["formulaire"+frm].elements[ii].checked)
				okcheck=false;

		if ((document.forms["formulaire"+frm].elements[ii].value != "") &&
		    (okcheck==true) &&
		    (document.forms["formulaire"+frm].elements[ii].name != "mode"))
		{
			chaine = document.forms["formulaire"+frm].elements[ii].value;
			chaine = escape(chaine);
			req = req+'&'+document.forms["formulaire"+frm].elements[ii].name+'='+chaine;
		}
	}
//	alert(req);
	filtre="";
	presentation="";
	a="";
	c="";
	if (document.forms["formulaire"+frm]) if (document.forms["formulaire"+frm].elements) 
	{
		a=document.forms["formulaire"+frm]["a"].value;
		c=document.forms["formulaire"+frm]["c"].value;
		if (document.forms["formulaire"+frm].elements["WHERE"]) {where=document.forms["formulaire"+frm]["WHERE"].value;}
		if (document.forms["formulaire"+frm].elements["FILTRE"]) {filtre=document.forms["formulaire"+frm]["FILTRE"].value;}
		if (document.forms["formulaire"+frm].elements["PRESENTATION"]) {presentation=document.forms["formulaire"+frm]["PRESENTATION"].value;}
	}
//	alert("c="+c+"&a="+a+"&ID="+id+"&mode="+mode+"&panneau="+panneau+"&WHERE="+where+"&FILTRE="+filtre+req);
	req+="&w=DBApplication&t=WDBApplication&y=run();";
	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,nom,frm)
{
	if (nom=="") {return;}
	if (!document.getElementById('grille'+nom)) {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
		set_panel_mode(90);
		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'+nom).innerHTML = leselect;
			if (typeof(document.forms["formulaire"+frm].elements) != "undefined")
			{
				set_panel_mode(document.forms["formulaire"+frm].elements["mode"].value);
				mode = document.forms["formulaire"+frm].elements["mode"].value;
			} else
			{
				set_panel_mode(99);
				mode = 99;
			}
		}
	}
	// Ici on va voir comment faire du post
	xhr.open("POST","index.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"+frm]) {a="";} else {if (!document.forms["formulaire"+frm]["a"]) {a="";} else {a=document.forms["formulaire"+frm]["a"].value;}}
	if (!document.forms["formulaire"+frm]) {c="";} else {if (!document.forms["formulaire"+frm]["c"]) {c="";} else {c=document.forms["formulaire"+frm]["c"].value;}}
	if (!document.forms["formulaire"+frm]) if (document.forms["formulaire"+frm]["WHERE"]) {where=document.forms["formulaire"+frm]["WHERE"].value;}
	pr="";
	if (document.forms["formulaire"+frm]) if (document.forms["formulaire"+frm]["PAR"]) { pr="&"+document.forms["formulaire"+frm]["PAR"].value; }

	if (document.forms["formulaire"+frm]) if (document.forms["formulaire"+frm]["FILTRE"]) {filtre=document.forms["formulaire"+frm]["FILTRE"].value;}
	if (document.forms["formulaire"+frm]) if (document.forms["formulaire"+frm]["PRESENTATION"]) {presentation=document.forms["formulaire"+frm]["PRESENTATION"].value;}
//	alert("c="+c+"&a="+a+"&debut="+debut+"&ID="+id+"&mode="+mode+"&WHERE="+where+"&FILTRE="+filtre+"&PRESENTATION="+presentation+"&w=DBApplication&t=WDBApplication&y=run();");
	xhr.send("c="+c+
		"&a="+a+
		"&debut="+debut+
		"&ID="+id+
		"&mode="+mode+
		"&WHERE="+where+
		"&FILTRE="+filtre+
		"&PRESENTATION="+presentation+
		"&w=DBApplication&t=WDBApplication&y=run();"+pr);
}

function pan_configure(frm)
{
	id=-1;
	mode=21;
	get_record(id,mode,frm);
}


function pan_prior(frm)
{
	sel = document.getElementById('ID');
	id = sel.value-1;
	get_record(id,mode,frm);
}
function pan_next(frm)
{
	sel = document.getElementById('ID');
	id = sel.value-(-1);
	get_record(id,mode,frm);
}

function pan_seek(frm)
{
	sel = document.getElementById('ID');
	id = sel.value;
	mode=0;
	document.forms["formulaire"+frm].elements["WHERE"].value = "";
	get_record(id,mode,frm);
//	pan_validate(frm);
}

function pan_view(frm)
{
	sel = document.getElementById('ID');
	id = sel.value;
	mode=1;
	get_record(id,mode,frm);
}

function pan_edit(frm)
{
	sel = document.getElementById('ID');
	id = sel.value;
	mode=2;
	get_record(id,mode,frm);
}

function pan_insert(frm)
{
	sel = document.getElementById('ID');
	id = sel.value;
	if (id=="") {id=-1;}
	mode=4;
	get_record(id,mode,frm);
}

function pan_update(p,frm)
{
	sel = document.getElementById('ID');
	id=sel.value;
	panneau=p;
	get_record(id,document.formulaire.mode.value,frm);
}

function pan_delete(frm)
{
	if (confirm("Voulez vous réellement suprimer cet enregistrement?"))
	{
		sel = document.getElementById('ID');
		id = sel.value;
		mode=7;
		get_record(id,mode,frm);
		mode=0;
	}
}

function pan_help(frm)
{
	id = -1;
	mode=15;
	get_record(id,mode,frm);
}

function pan_validate(frm)
{
	if (mode == 0)
	{
		sel = document.getElementById('ID');
		id = sel.value;
		premier = true;
		where = "";
		for (ii=1;ii<document.forms["formulaire"+frm].elements.length;ii++)
		{
			if ((document.forms["formulaire"+frm].elements[ii].value != "") && 
			    (document.forms["formulaire"+frm].elements[ii].value != "on") && 
			    (document.forms["formulaire"+frm].elements[ii].name != "mode") &&
			    (document.forms["formulaire"+frm].elements[ii].name != "c") &&
			    (document.forms["formulaire"+frm].elements[ii].name != "FILTRE") &&
			    (document.forms["formulaire"+frm].elements[ii].name != "WHERE") &&
			    (document.forms["formulaire"+frm].elements[ii].name != "PRESENTATION") &&
			    (document.forms["formulaire"+frm].elements[ii].name != "a"))
			{
				if (premier)
				{
					if (document.forms["formulaire"+frm].elements[ii].name.substring(0,2)=="ID")
					{
						where = document.forms["formulaire"+frm].elements[ii].name+'="'+document.forms["formulaire"+frm].elements[ii].value+'*"';
					} else
					{
						where = document.forms["formulaire"+frm].elements[ii].name+' LIKE "'+document.forms["formulaire"+frm].elements[ii].value+'*"';
					}
				} else
				{
					where = where+' AND '+document.forms["formulaire"+frm].elements[ii].name+' LIKE "'+document.forms["formulaire"+frm].elements[ii].value+'*"';
//					where = document.forms["formulaire"+frm].elements[ii].name+' LIKE "'+document.forms["formulaire"+frm].elements[ii].value+'*"';
				}
				premier=false;
			}
		}
		mode=11;
		if (document.forms["formulaire"+frm].elements["WHERE"]) {
			sa=document.forms["formulaire"+frm]["WHERE"].value;
			document.forms["formulaire"+frm]["WHERE"].value=where;
		}
//		alert(document.forms["formulaire"+frm]["WHERE"].value+":"+sa);
		if (document.forms["formulaire"+frm].elements["PRESENTATION"].value=="")
		{
			get_grid(id,mode,0,document.forms["formulaire"+frm].elements["c"].value+document.forms["formulaire"+frm].elements["a"].value,frm);
		} else
		{
			get_grid(id,mode,0,document.forms["formulaire"+frm].elements["c"].value+document.forms["formulaire"+frm].elements["a"].value+"-"+document.forms["formulaire"+frm].elements["PRESENTATION"].value,frm);
		}
//		if (document.forms["formulaire"+frm].elements["WHERE"]) {
//			document.forms["formulaire"+frm]["WHERE"].value=sa;
//		}
		mode=0;
	} else
	if (mode == 2)
	{
		sel = document.forms["formulaire"+frm]["ID"];
		id = sel.value;
		if (document.forms["formulaire"+frm].elements["WHERE"]) {
			sa=document.forms["formulaire"+frm]["WHERE"].value;
			document.forms["formulaire"+frm]["WHERE"].value=where;
		}
//		alert(document.forms["formulaire"+frm]["WHERE"].value+":"+sa+":"+mode);
		mode=3;
		get_record(id,mode,frm);
		mode=1;
	}
	if (mode == 4)
	{
		sel = document.getElementById('ID');
		id = sel.value;
		if (document.forms["formulaire"+frm].elements["WHERE"]) {
			sa=document.forms["formulaire"+frm]["WHERE"].value;
			document.forms["formulaire"+frm]["WHERE"].value=where;
		}
//		alert(document.forms["formulaire"+frm]["WHERE"].value+":"+sa+":"+mode);
		mode=5;
		get_record(id,mode,frm);
		mode=4;
	}
}

function charger_php(url,elt,id,par,cmd)
{
//	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;
			if (cmd==0)
			{
				tinyMCE.execCommand("mceInsertContent", false,leselect);
			} else
			{
				tinyMCE.execCommand("mceReplaceContent", 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+par);
}

function charger_php_grille(url,op,id,nom,frm)
{
	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,nom,frm);
		}
	}
	// 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 LoadWijax(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
//alert(leselect);
			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 LoadWijax2(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';
    }
}

function LoadTinyMCE(url)
{
	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
			tinyMCE.activeEditor.execCommand('mceInsertContent', false, leselect);
		}
	}
	// Ici on va voir comment faire du post
	//alert(php+"?"+par);
	xhr.open("GET",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
	xhr.send("");
}

function wijaxLoad() {
	var ed = tinyMCE.get('editor1');

	// Do you ajax call here, window.setTimeout fakes ajax call
	ed.setProgressState(1); // Show progress
	window.setTimeout(function() {
		ed.setProgressState(0); // Hide progress
		ed.setContent('HTML content that got passed from server.');
	}, 3000);
}

function wijaxSave() {
	var ed = tinyMCE.get('editor1');

	// Do you ajax call here, window.setTimeout fakes ajax call
	ed.setProgressState(1); // Show progress
	window.setTimeout(function() {
		ed.setProgressState(0); // Hide progress
		alert(ed.getContent());
	}, 3000);
}
function toggleEditor(id) {
	var elm = document.getElementById(id);

	if (tinyMCE.getInstanceById(id) == null)
		tinyMCE.execCommand('mceAddControl', false, id);
	else
		tinyMCE.execCommand('mceRemoveControl', false, id);
}
function refresh_panier(panop)
{
	parm='t=WPanier&w=Panier&y=run();&PanOp='+panop+'&ID=-1&ARTICLE=000000&LIBELLE=&OPTS=&PU=&QTE=';
	LoadWijax('index.php','Panier',parm);
}


panneau="";
mode=0;
where = "";
gdebut=0;

//var hello = getXhr();
//alert("ok");