var chargement = '<img src="imgs/common/loading.gif" />Chargement...';

function ajax_request(method, url, param, code, async) {
	if(!url) return false;
	
	new Ajax.Request(url, {
		  method: method,
		  asynchronous: async,
		  onSuccess: code,
		  parameters: param
	});	
}

function ajax_update(elementid, url, options) {
	pop_and_blur(chargement);
	ons = null;
	
	if(!options) {
		options = {}; 
	}
	else {
		var ons = options.onSuccess;
	}	
	options.evalScripts = true;
	
	options.onSuccess = function(transport) {
		close_pop_and_blur();
		alert(url+"\n"+transport.responseText);
		if(ons) {
			ons(transport);
		}
	}
	new Ajax.Updater(elementid, url+'&ajax=1', options);
	
}

function form2xml(form) {
	var lgform = form.elements.length;
	
	var xml = '<l4majax>\n';
	var name = null;
	for(i = 0; i < lgform; i++) {	
			if(form.elements[i].name) {
				if(form.elements[i].name.indexOf('[]') > 0) {
					var name = form.elements[i].name;					
					var val = '';
					
					//alert('tab : '+form.elements[i].type + ' name : '+name);

					if(form.elements[i].type == 'select-multiple') {
						//alert('select multiple');
						for(j = 0; j < form.elements[i].options.length; j++) {
							if(form.elements[i].options[j].selected)
								val+=','+form.elements[i].options[j].value;
						}
					}
					else {
						while(form.elements[i] && form.elements[i].name == name && i < lgform) {
							//alert('trouve : '+form.elements[i].value);
							if((form.elements[i].type == 'checkbox' && form.elements[i].checked == true) || form.elements[i].type != 'checkbox') {
								//alert('ajoute : '+form.elements[i].value);
								val+=','+form.elements[i].value;
							}
							i++;
						}
						i--;
					}
					
					//alert(val);
					val = val.substring(1);
					xml += '<'+name.substr(0, name.length-2)+' type="tab"><![CDATA['+val+']]></'+name.substr(0, name.length-2)+">\n";
				
				}
				else {
					if((form.elements[i].type != 'radio' && form.elements[i].type != 'checkbox') || form.elements[i].checked == true) {					
						xml += '<'+form.elements[i].name+'><![CDATA['+form.elements[i].value+']]></'+form.elements[i].name+">\n";
					}
				}
			}
	}
	
	return escape(xml+'</l4majax>');
}

function xml2array(xmlobject, fields) {
	var tab = new Array();
	var xmlelement = null;
	xmlobject = removeEmptyChildren(xmlobject);
	// parser le xml
	for(i = 0; i < fields.length; i++) {
		
		// recup valeur champ xml
		
		xmlelement = xmlobject.getElementsByTagName(fields[i]);
		//for(j = 0; j<xmlelement[0].childNodes.length; j++) {
		if(xmlelement) {
			xmlvalue = xmlelement[0].childNodes[0].data;
			// ajout au tableau resultat			
			tab[fields[i]] = xmlvalue;
		}
		//}
		
	}
	
	return tab;
	
}

function form2params(form) {
	if(!form.elements) return '';
	var params = '';
	for(i=0;i<form.elements.length;i++) {
		if(form.elements[i].name) params+=form.elements[i].name+'='+form.elements[i].value+'&';
		else params+=form.elements[i].id+'='+form.elements[i].value+'&';
	}
	return encodeURI(params);
}

function xmllist2arraylist(xmlobject, root_tag, element_name) {
	var root = xmlobject.getElementsByTagName(root_tag);	
	var list = xmlobject.getElementsByTagName(element_name);
	
	var tab = new Array();
	
	for(i = 0; i < list.length; i++) {
		tab[i] = list[i].childNodes[0].data;
	}
	
	return tab;
}

function ajax_encode(string) {	
	return encodeURIComponent(encodeURI(string));
}

function ajax_decode(string) {
	return decodeURIComponent(decodeURI(string));
}

function idle() {
		ajax_request('GET', 'main.php?ajax=idle', '', '', true);
}