/***************************************************************************
 *                              data.js
 *                            -------------------
 *
 *
 ***************************************************************************/
//	data('/module/css/gather/ajax_users.php?langue=<?= LANG_LINK ?>&module=<?= MODULE ?>&page=<?= PAGE ?>&page_id=<?= PAGE_ID ?>&random='+random,'GET','gather_users');
function BetterInnerHTML(o,p,q)
	{
	function r(a)
		{
		var b;
		if(typeof DOMParser!="undefined")
			{
			b=(new DOMParser()).parseFromString(a ,"text/xml");
			}
		else
			{
			var c=["MSXML2.DOMDocument","MSXML.DOMDocument","Microsoft.XMLDOM"];
			for(var i=0;i<c.length&&!b;i++)
				{
				try
					{
					b=new ActiveXObject(c[i]);b.loadXML(a);
					}
				catch(e)
					{
					}
				}
			}
		return b;
		}
	function s(a,b,c)
		{
		a[b] = function()
			{
			try
				{
				return eval(c);
				}
			catch(e)
				{
				alert(e);
				}
			};
		return;
		}
	function t(b,c,d)
		{
		if(typeof d=="undefined")
			{
			d=1;
			}
		if(d>1)
			{
			if(c.nodeType==1)
				{
				var e=document.createElement(c.nodeName);
				var f={};
				for(var a=0,g=c.attributes.length;a<g;a++)
					{
					var h=c.attributes[a].name;
					var k=c.attributes[a].value;
					var l=(h.substr(0,2)=="on");
					if(l)
						{
						f[h]=k;
						}
					else
						{
						switch(h)
							{
							case"class":e.className=k;break;
							case"for":e.htmlFor=k;break;
							default:e.setAttribute(h,k);
							}
						}
					}
				b=b.appendChild(e);
				for(l in f)
					{
					s(b,l,f[l]);
					}
				}
			else if(c.nodeType==3)
				{
				var m=(c.nodeValue?c.nodeValue:"");
				var n=m.replace(/^\s*|\s*$/g,"");
				if(n.length<7||(n.indexOf("<!--")!=0&&n.indexOf("-->")!=(n.length-3)))
					{
					if (null == b.canHaveChildren || b.canHaveChildren)
						{
						b.appendChild(document.createTextNode(m));
						}
					else
						{
						b.text = m;
						} 
					}
				}
			}
		if(c)
			{
			for(var i=0,j=c.childNodes.length;i<j;i++)
				{
				t(b,c.childNodes[i],d+1);
				}
			}
		}
	p="<root>"+p+"</root>";
	var u=r(p);
	if(o&&u)
		{
		if(q!=false)
			{
			while(o.lastChild)
				{
				o.removeChild(o.lastChild);
				}
			}
		t(o,u.documentElement);
		}
	}

function ajax_post(page, element, form)
	{
	// page = le script a appelé
	// element = nom de l'element à changer
	// form = nom du formulaire pour un post
	var getdata = function (obj)
		{
		document.getElementById(element).innerHTML = obj.responseText;
		}
	var XHR = new XHRConnection();
	for(var j = 0; j < form.elements.length; j++)
		{
		if(form.elements[j].type == "text")
			{
			// Type text
			XHR.appendData(form.elements[j].name, form.elements[j].value);
			}
		else if(form.elements[j].type=="select-one")
			{
			// Type checkbox
			XHR.appendData(form.elements[j].name, form.elements[j].value);
			}
		else if(form.elements[j].type=="checkbox")
			{
			// Type checkbox
			XHR.appendData(form.elements[j].name, form.elements[j].checked);
			}
		else if(form.elements[j].type=="password")
			{
			// Type password
			XHR.appendData(form.elements[j].name, form.elements[j].value);
			}
		else if(form.elements[j].type=="hidden")
			{
			// Type hidden
			if(form.elements[j].name == "submit")
				{
				XHR.appendData(form.elements[j].value, 1);
				}
			else
				{
				XHR.appendData(form.elements[j].name, form.elements[j].value);
				}
			}
		} 
	XHR.sendAndLoad(page, "POST", getdata);
	return false;
	}

function data(page, methode, element, options)
	{
	var deletebefore = (options.deletebefore == null) ? "false" : options.deletebefore;
	var form = (options.form == null) ? "" : options.form;
	var tiny = (options.tiny == null) ? "" : options.tiny;
	var txt = (options.txt == null) ? "" : options.txt;
	var submit_input = null;
	var temp;
	if(txt == null)
		{
		temp = "textarea";
		}
	else
		{
		temp = txt;
		}
	while(form && form.nodeName != 'FORM')
		{
		if(form.nodeName == 'INPUT' && form.type == 'submit' && submit_input == null)
			{
			submit_input = form;
			}
		form = form.parentNode;
		}
	/* On attend une réponse qui viendra jamais sans les script serveur */
	if(tiny == 1 && methode == "POST" && document.getElementsByName(temp)[0])
		{
		if(tinyMCE.activeEditor.getContent())
			{
			document.getElementsByName(temp)[0].value = tinyMCE.activeEditor.getContent();
			}
		}

	var getdata = function (obj)
		{
		//var newdiv = document.createElement("div");
		//newdiv.innerHTML = obj.responseText;
		var my_element = document.getElementById(element);
		if(my_element)
			{
			//my_element.innerHTML = obj.responseText;
			toggleEnabled(my_element, true);
			BetterInnerHTML(my_element, obj.responseText);
			//alert(my_element.innerHTML);
/*
			var AllScripts = my_element.getElementsByTagName("SCRIPT");
			for(var i = 0 ; i < AllScripts.length ; i++)
				{
				if (AllScripts[i].src && AllScripts[i].src != "")
					{
					eval(getFileContent(AllScripts[i].src));
					}
				else
					{
					eval(AllScripts[i].innerHTML);
					}
				}
*/
			if(methode != "POST")
				{
				if (tiny == 1 && document.getElementsByName(temp)[0])
					{
					tinyMCE.init({ mode : "textareas", theme : "simple" });
	
					tinyMCE.execCommand('mceAddControl', true, temp);
					// pour ajouter l'éditeur
					tinyMCE.execCommand('mceFocus', true, temp);
					}
				}
			else
				{
				if (tiny==1 && document.getElementsByName("textarea")[0])
					{
					tinyMCE.init({ mode : "textareas", theme : "simple" });
					tinyMCE.execCommand('mceAddControl', true, "textarea");
					// pour ajouter l'éditeur
					tinyMCE.execCommand('mceFocus', true, "textarea");	
					}
				}
			}
		else
			{
			alert(element+" not found");
			}
		}
		
	/* On prépare la connexion */
	var XHR = new XHRConnection();
	if(methode=="POST")
		{
		if(submit_input != null)
			{
			XHR.appendData(submit_input.name, submit_input.value);
			}
		// La deuxième boucle parcourt les champs de formulaire
		for(var j = 0; j < form.elements.length; j++)
			{
			if(form.elements[j].type == "text")
				{
				// Type text
				XHR.appendData(form.elements[j].name, form.elements[j].value);
				}
			else if(form.elements[j].type=="textarea")
				{
				XHR.appendData(form.elements[j].name, form.elements[j].value);
				}
			else if(form.elements[j].type=="select-one")
				{
				// Type checkbox
				XHR.appendData(form.elements[j].name, form.elements[j].value);
				}
			else if(form.elements[j].type=="checkbox")
				{
				// Type checkbox
				XHR.appendData(form.elements[j].name, form.elements[j].checked);
				}
			else if(form.elements[j].type=="radio")
				{
				// Type radio
				if(form.elements[j].checked == true)
					{
					XHR.appendData(form.elements[j].name, form.elements[j].value);
					}
				}
			else if(form.elements[j].type=="password")
				{
				// Type password
				XHR.appendData(form.elements[j].name, form.elements[j].value);
				}
			else if(form.elements[j].type=="hidden")
				{
				// Type password
				if(form.elements[j].name == "submit")
					{
					XHR.appendData(form.elements[j].value, 1);
					}
				else
					{
					XHR.appendData(form.elements[j].name, form.elements[j].value);
					}
				}
			} 
		if(tiny == 1 && document.getElementsByName(temp)[0])
			{
			XHR.appendData(temp, document.getElementsByName(temp)[0].value);
			}
		}
	/* On envoit les données */
	function toggleEnabled(el, first)
		{
		try
			{
			if(first)
				{
				el.style.display = 'block';
				el.style.filter = 'alpha(opacity=100)';
				el.style.opacity = 1.0;
				}
			el.disabled = false;
			}
		catch(E)
			{
			}
		if (el.childNodes && el.childNodes.length > 0)
			{
			for (var x = 0; x < el.childNodes.length; x++)
				{
				if(first && el.childNodes[x].style)
					{
					//el.childNodes[x].style.filter = 'alpha(opacity=100)';
					//el.childNodes[x].style.opacity = 1.0;
					}
				}
			for (var x = 0; x < el.childNodes.length; x++)
				{
				toggleEnabled(el.childNodes[x], false);
				}
			}
		}
	function toggleDisabled(el, disable, opacity_full, first)
		{
		try
			{
			el.disabled = disable;
			if(first)
				{
				el.style.filter = 'alpha(opacity=20)';
				el.style.opacity = 0.2;
				}
			}
		catch(E)
			{
			}
		if (el.childNodes && el.childNodes.length > 0)
			{
			for (var x = 0; x < el.childNodes.length; x++)
				{
				if(first && el.childNodes[x].style)
					{
					if(opacity_full)
						{
						//el.childNodes[x].style.filter = 'alpha(opacity=20)';
						//el.childNodes[x].style.opacity = 0.2;
						}
					}
				}
			for (var x = 0; x < el.childNodes.length; x++)
				{
				toggleDisabled(el.childNodes[x], disable, false);
				}
			}
		}
	mydiv = document.getElementById(element);
	if(mydiv)
		{
		//if(deletebefore) document.getElementById(element).innerHTML = "<div class=\"loading\">...</div>";
		toggleDisabled(mydiv, true, deletebefore, true);
		}
	XHR.sendAndLoad(page, methode, getdata);
	return false;
	}

