// AJAX
function istanzaXHR() {
	var obj;
	if (window.XMLHttpRequest) {	// Non Internet Explorer
		obj = new XMLHttpRequest();
	} else if (window.ActiveXObject) { // Internet Explorer
		obj = new ActiveXObject("Microsoft.XMLHTTP");
	}
	return obj;
}

obj=istanzaXHR();

function inviaAjax(formName,dati,printId,urlAppoggio,accoda) {
	inviaXHR(obj,formName,dati,printId,urlAppoggio,accoda);
}

function inviaXHR(obj,formName,dati,printId,urlAppoggio,accoda) {
	try {
		obj.open("POST", urlAppoggio, true);
		obj.setRequestHeader('Content-Type','application/x-www-form-urlencoded; charset=utf-8');
		eval('var form = document.'+formName);
		tmpString = "";
		if (dati == '*') {
			Nelementi = form.elements.length;
		} else {
			ArrayDati = dati.split("|");
			Nelementi = ArrayDati.length;
		}
		for (i=0; i<Nelementi; i++) {
			diretto = false;
			if (dati == '*') {
				elemento = form.elements[i];
			} else {
				switch(ArrayDati[i].substring(0,1)) {
					case('#'):
						elemento = document.getElementById(ArrayDati[i].substring(1)).getElementsByTagName("*");
					break;
					case('^'):
						diretto = true;
						tmpString+= ArrayDati[i].substring(1)+"&";
					break;
					default:
						elemento = form.elements[ArrayDati[i]];
					break;
				}
			}
			if (diretto == false) {
				
				if ((elemento.length > 0) && (elemento.type != "select-one")) {
					for (a=0; a<elemento.length; a++) {
						if (elemento[a].name) {
							switch(elemento[a].type) {
								case('checkbox'):
									if (elemento[a].checked) {
										valore = 'T';
									} else {
										valore = 'F';
									}
								break;
								case('radio'):
									if (elemento.checked) {
										valore = elemento[a].value;
									}
								break;
								default:
									valore = elemento[a].value;
								break;
							}
							valore = valore.replace('+','%2B');
							valore = valore.replace('\\','%5C');
							valore = valore.replace('&','%26');
							tmpString+= elemento[a].name+"="+valore+"&";
						}
					}
				} else {
					switch(elemento.type) {
						case('checkbox'):
							if (elemento.checked) {
								valore = 'T';
							} else {
								valore = 'F';
							}
						break;
						case('radio'):
							if (elemento.checked) {
								valore = elemento.value;
							}
							break;
						default:
							valore = elemento.value;
						break;
					}
					valore = valore.replace('+','%2B');
					valore = valore.replace('\\','%5C');
					valore = valore.replace('&','%26');
					tmpString+= elemento.name+"="+valore+"&";
				}
			}
		}
		sendDati = tmpString.substring(0,(tmpString.length-1));
		obj.send(sendDati);
		obj.onreadystatechange = function() {
			if (obj.readyState == 4) { // Caricamento Avvenuto
				if (obj.status == 200) { // con successo
					if (accoda) {
						document.getElementById(printId).innerHTML = document.getElementById(printId).innerHTML+obj.responseText; // eseguo l'echo dentro l'elemento printId dal file urlAppoggio
					} else {
						document.getElementById(printId).innerHTML = obj.responseText; // eseguo l'echo dentro l'elemento printId dal file urlAppoggio
					}
				}/* else {
					document.getElementById(printId).innerHTML = "?";
					alert("Errore: "+obj.statusText);
				}*/
			}
		}
	} catch (e) {
		/*document.getElementById(printId).innerHTML="?";
		alert("Errore: "+e);*/
	}
}