function recupXML(requester)
{
	try //Internet Explorer
	{
		xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
		xmlDoc.loadXML(requester.responseText);
	}
	catch(e)
	{
		try //Firefox, Mozilla, Opera, etc.
		{
			//xmlDoc=document.implementation.createDocument("","",null);
			xmlDoc = requester.responseXML;
		}
		catch(e) {alert(e.message)}
	}
	return xmlDoc;
}
function recupXMLElement(xmlDoc, nomNoeud)
{
	var value = xmlDoc.getElementsByTagName(nomNoeud);
	return (value[0].firstChild.nodeValue);
}


function executeXML(requester)
{
	
	try //Internet Explorer
	{
		xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
		xmlDoc.loadXML(requester.responseText);
	}
	catch(e)
	{
		try //Firefox, Mozilla, Opera, etc.
		{
			//xmlDoc=document.implementation.createDocument("","",null);
			xmlDoc = requester.responseXML;
		}
		catch(e) {alert(e.message)}
	}
	var debug = xmlDoc.getElementsByTagName('debug');
	if(debug.length > 0)
	{
		if(!document.getElementById('div_debug'))
		{
			mondiv = document.createElement('div');
			mondiv.innerHTML = requester.responseText;
			mondiv.setAttribute("id","div_debug");
			
			mondiv.style.float = 'left';
			mondiv.style.position = 'absolute';
			mondiv.style.display = 'block';
			mondiv.style.background = 'black';
			mondiv.style.color = 'white';
			mondiv.style.border = '2px solid red';
			mondiv.style.width = '300px';
			mondiv.style.height = '500px';
			mondiv.style.top = '20px';
			mondiv.style.left = '20px';
			
			mondiv.setAttribute("onclick","document.getElementById('div_debug').style.display = 'none';");
			
			document.getElementsByTagName('body')[0].appendChild(mondiv);
		}
		else
		{
			mondiv = document.getElementById('div_debug');
			mondiv.innerHTML = requester.responseText;
			mondiv.style.display = 'block';
		}
	}
	var actions = xmlDoc.getElementsByTagName('action');
	for (var i = 0; i < actions.length; i++)
	{
		node = actions.item(i);
		var src = $(node.getAttribute('blockId'));
		if (src)
		{
			if ((node.getAttribute('type') != null && node.getAttribute('type') == "innerHTML"))
			{
				var value = ' ' + node.getElementsByTagName('content').item(0).firstChild.data;
				src.innerHTML = value;
			}
			if (node.getAttribute('cssBlock') != null && node.getAttribute('cssBlock') != "")
			{
				src.className = node.getAttribute('cssBlock');
			}
			
			if ((node.getAttribute('display') != null) && (node.getAttribute('display') != ""))
			{
				src.style.display = node.getAttribute('display');
			}
			
			if ((node.getAttribute('type') != null && node.getAttribute('type') == "select"))
			{
				src.options.length = 0;
				//src.options[src.options.length] = new Option('',0); //==> Permet de mettre le premier element a vide
				var options = node.getElementsByTagName('option');
				for (var o = 0; o < options.length; o++)
				{
					option = options.item(o);
					var valeur = option.getAttribute('value');
					var text = option.firstChild.data;
					src.options[src.options.length] = new Option(text,valeur);
					if(option.getAttribute('selected'))
					{
						src.selectedIndex = src.options.length - 1;
					}
				}
			}
		}
		
	}
	
	var messages = xmlDoc.getElementsByTagName('message');
	for (var i = 0; i < messages.length; i++)
	{
		node = messages.item(i);
		var src = $(node.getAttribute('blockId'));
		if (src)
		{
			if($('div_message')){document.getElementById('div_message').parentNode.removeChild(document.getElementById('div_message'));}
			
			time = 1000;
			if (node.getAttribute('time') != null && node.getAttribute('time') != "")
			{
				time = node.getAttribute('time');
			}
			
			mondiv = document.createElement('div');
			mondiv.innerHTML = node.getElementsByTagName('content').item(0).firstChild.data;
			mondiv.setAttribute('id','div_message');
			mondiv.style.float = 'left';
			mondiv.style.position = 'absolute';
			mondiv.style.display = 'block';
			mondiv.style.background = '#F4F5F4';
			mondiv.style.color = 'black';
			mondiv.style.border = '1px solid black';
			mondiv.style.padding = '0px 5px';
			
			insertAfter(mondiv,src);
			
			setTimeout("document.getElementById('div_message').parentNode.removeChild(document.getElementById('div_message'));", time);
		}
	}
	
	var scrs = xmlDoc.getElementsByTagName('script');
	if (scrs.length >= 1)
	{
		for (var i = 0; i < scrs.length; i++)
		{
			try
			{
				node = scrs.item(i);
				var value = '' + node.getElementsByTagName('content').item(0).firstChild.data;
				eval(value);
			}
			catch (e)
			{
				throw e;
			}
		}
	}
	
}


function executeAjax(url, pars)
{
	
	var ajax = new Ajax.Updater(
		'',        // div id (XXX: doesnt work?)
		url ,        // URL
		{   
			parameters: pars,               // options
			method:'post',
			 onComplete:
				function(requester) 
				{
					executeXML(requester);	
				}
		});
}

function getX(id) { return window.document.getElementById(id).offsetLeft; } 
function getY(id) { return window.document.getElementById(id).offsetTop; } 


function insertAfter(newElement,targetElement)
{
	//target is what you want it to go after. Look for this elements parent.
	var parent = targetElement.parentNode;
	//if the parents lastchild is the targetElement...
	if(parent.lastchild == targetElement) 
	{
		//add the newElement after the target element.
		parent.appendChild(newElement);
	} 
	else 
	{
		// else the target has siblings, insert the new element between the target and it's next sibling.
		parent.insertBefore(newElement, targetElement.nextSibling);
	}
}

function show_miniature(path_img, origin, max_x, max_y)
{
	if(document.getElementById('img_thumbnail')){document.getElementById('img_thumbnail').parentNode.removeChild(document.getElementById('img_thumbnail'));}
	
	monimg = document.createElement('img');
	
	monimg.setAttribute('id','img_thumbnail');
	monimg.style.float = 'left';
	monimg.style.position = 'absolute';
	monimg.style.display = 'block';
	monimg.style.background = '#F4F5F4';
	monimg.style.color = 'black';
	monimg.style.border = '1px solid black';
	monimg.style.padding = '5px 5px';
	monimg.src = path_img;
	monimg.width = max_x;
	//monimg.height = max_y;
	
	monimg.setAttribute("onclick","document.getElementById('img_thumbnail').parentNode.removeChild(document.getElementById('img_thumbnail'));");
	
	insertAfter(monimg,document.getElementById(origin));
	
	
}
