// Envoyer le contenu d'un formulaire et mettre à jour le DIV correspondant...
function specialCharValue(value) {
	// \'	single quote
	// \"	double quote
	// \&
	var valueTab = value.split("&");
	var newValue = "";
	for(var i = 0; i < valueTab.length; i++) {
		newValue += valueTab[i] + "&amp;";
	}
	return newValue;
}

function buildData(champ) {
	var data = "";
	var count = champ.length; 		
	for(var i = 0; i < count; i++) {
			if ((champ[i].type == "checkbox") || (champ[i].type == "radio")) {	// traitement des séries de cases à cocher
				//alert (champ[i].checked) ;
				if (champ[i].checked) {
					if (champ[i].type == "checkbox") data += champ[i].id + "=1&";
					if (champ[i].type == "radio") data += champ[i].name + "=" + champ[i].value + "&";
				}	
				else {
					if (champ[i].type != "radio") data += champ[i].id + "=0&";
				}
			} else {
				if (champ[i].multiple) {		// traitement des select multiples
					var countMultiple = champ[i].length;
					for(var ii = 0; ii < countMultiple; ii++) {
						if (champ[i][ii].selected) data += champ[i].id + "=" + champ[i][ii].value + "&"; // + "[" + ii + "]
					}
				}
				else data += champ[i].id + "=" + encodeURIComponent(champ[i].value) + "&";
				//else data += champ[i].id + "=" + champ[i].value + "&";
			}
	}
	return data;
}

function sendContents(url, div, IDform) {
		var form = document.getElementById(IDform);
		var data = "";
		// construire la variable Data;

		var champ = form.getElementsByTagName('input');
		data += buildData(champ);
		
		var champ = form.getElementsByTagName('textarea');
		data += buildData(champ);
		
		var champ = form.getElementsByTagName('button');
		data += buildData(champ);
		
		var champ = form.getElementsByTagName('select');
		data += buildData(champ);
	
		// alert(data);
		// 	alert(url);
		
		var xhr_object = null;
	    xhr_object = new XMLHttpRequest();
		xhr_object.open("POST", url, true);
	    xhr_object.onreadystatechange = function() {
			// afficher le même article en mode édition
			// if (xhr_object.readyState == 4) {
			// 	makeBloc(div, xhr_object.responseText);
			// }
			switch (xhr_object.readyState) {
				case 1 :
					// éventuellement fonction qui affiche une barre de progression
					showProgressImage();
					break;
				case 4 :
					// idem pour masquer
					hideProgressImage();
					makeBloc(div, xhr_object.responseText);
					break;

			};
	    }
		xhr_object.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		xhr_object.send(data);
}

function sendAndChangeContents(url, div, IDform) {
		var form = document.getElementById(IDform);
		var data = "";
		// construire la variable Data;

		var champ = form.getElementsByTagName('input');
		data += buildData(champ);
		
		var champ = form.getElementsByTagName('textarea');
		data += buildData(champ);
		
		var champ = form.getElementsByTagName('button');
		data += buildData(champ);
		
		var champ = form.getElementsByTagName('select');
		data += buildData(champ);
	
		// alert(data);
		// alert(url);
		url += "&" + data;
		changeContents(url, div)
}

// transmet en plu la valeur sendOK pour confirmer un formulaire
function sendContentsAndConfirm(url, div, form, sendOK) {
		var form = document.getElementById(form);
		var data = "";
		// construire la variable Data;

		var champ = form.getElementsByTagName('input');
		data += buildData(champ);
		
		var champ = form.getElementsByTagName('textarea');
		data += buildData(champ);
		
		var champ = form.getElementsByTagName('button');
		data += buildData(champ);
		
		var champ = form.getElementsByTagName('select');
		data += buildData(champ);
	
		//alert(data);
		//alert(url);
		
		data += "&sendOK=" + sendOK;
		
		var xhr_object = null;
	    xhr_object = new XMLHttpRequest();
		xhr_object.open("POST", url, true);
	    xhr_object.onreadystatechange = function() {
			// afficher le même article en mode édition
			// if (xhr_object.readyState == 4) {
			// 	makeBloc(div, xhr_object.responseText);
			// }
			switch (xhr_object.readyState) {
				case 1 :
					// éventuellement fonction qui affiche une barre de progression
					showProgressImage();
					break;
				case 4 :
					// idem pour masquer
					hideProgressImage();
					makeBloc(div, xhr_object.responseText);
					break;

			};
			
	    }
		xhr_object.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		xhr_object.send(data);
}

function sendContentsVarSpec(url, div, form, varspec) {
		var form = document.getElementById(form);
		var data = "";
		// construire la variable Data;

		var champ = form.getElementsByTagName('input');
		data += buildData(champ);
		
		var champ = form.getElementsByTagName('textarea');
		data += buildData(champ);
		
		var champ = form.getElementsByTagName('button');
		data += buildData(champ);
		
		var champ = form.getElementsByTagName('select');
		data += buildData(champ);
	
		//alert(data);
		//alert(url);
		
		data += varspec;
		
		var xhr_object = null;
	    xhr_object = new XMLHttpRequest();
		xhr_object.open("POST", url, true);
	    xhr_object.onreadystatechange = function() {
			// afficher le même article en mode édition
			// if (xhr_object.readyState == 4) {
			// 	makeBloc(div, xhr_object.responseText);
			// }
			switch (xhr_object.readyState) {
				case 1 :
					// éventuellement fonction qui affiche une barre de progression
					showProgressImage();
					break;
				case 4 :
					// idem pour masquer
					hideProgressImage();
					makeBloc(div, xhr_object.responseText);
					break;

			};
	    }
		xhr_object.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		xhr_object.send(data);
		

}
