function ajax()
{
	var obj;
	if (window.XMLHttpRequest){ // Firefox et autres
		obj = new XMLHttpRequest();
	}
	else if (window.ActiveXObject){ // Internet Explorer (Merci IE...)
		var ieversions = [	'Msxml2.XMLHTTP',
							'Microsoft.XMLHTTP',
							'Msxml2.XMLHTTP.5.0',
							'Msxml2.XMLHTTP.4.0',
							'Msxml2.XMLHTTP.3.0'];

		for (var i=0; !obj && i<ieversions.length; i++){
			try {
				obj = new ActiveXObject(ieversions[i]);
			} catch (e){
				obj = null;
			}
		}
	}

	return obj;
}

function submitForm(formName)
{
	if (document.forms[formName].onsubmit){
		if (document.forms[formName].onsubmit())
		{
			document.forms[formName].submit();
			return true;
		}
	} else {
		document.forms[formName].submit();
		return true;
	}
	return false;
}

function get_radio_value(radio)
{
	for (var i=0; i<radio.length; i++){
		if (radio[i].checked)
			return radio[i].value;
	}

	return radio.value; // Si il n'y a qu'un élément
}

// Mise en forme des infos dans une liste ordonnée
function array2ol(array)
{
	var tmp = document.createElement('div');
	var ol = document.createElement('ol');
	for (var i=0; i<array.length; i++){
		var li = document.createElement('li');
		li.innerHTML = array[i];
		ol.appendChild(li);
	}
	tmp.appendChild(ol);

	return tmp.innerHTML;
}

/**
 * Définit une opacité selon le navigateur qui le lit... (Merci IE)
 *
 * @author: Roland Dufour <roland.dufour@multiprog.net>
 */
function setOpak(opak, id)
{
  	var oElemStyle = document.getElementById(id).style;

	oElemStyle.opacity = (opak / 100);
	oElemStyle.MozOpacity = (opak / 100);
	oElemStyle.KhtmlOpacity = (opak / 100);
	oElemStyle.filter = 'alpha(opacity=' + opak + ')';
}

/**
 * Equivalent de print_r de PHP
 */
function dump(arr,level) {
	var dumped_text = "";
	if(!level) level = 0;

	//The padding given at the beginning of the line.
	var level_padding = "";
	for(var j=0;j<level+1;j++) level_padding += "    ";

	if(typeof(arr) == 'object') { //Array/Hashes/Objects
	 for(var item in arr) {
	  var value = arr[item];

	  if(typeof(value) == 'object') { //If it is an array,
	   dumped_text += level_padding + "'" + item + "' ...\n";
	   dumped_text += dump(value,level+1);
	  } else {
	   dumped_text += level_padding + "'" + item + "' => \"" + value + "\"\n";
	  }
	 }
	} else { //Stings/Chars/Numbers etc.
	 dumped_text = "===>"+arr+"<===("+typeof(arr)+")";
	}
	return dumped_text;
}