//libreria per l'uso dell'obj http-request
//
// NOTA: funzioni per il suo utilizzo sono da mettere nel dile func_aj.js!


var request=null;

//costruzione dell'oggetto request
function httpRequest(reqType,url,asynch,respHandle){
	//alert('chiamata httpRequest\nreqType='+reqType+' url='+url+' asynch='+asynch+' respHandle='+respHandle);
	//browser basati su Mozilla
	if(window.XMLHttpRequest){
		request=new XMLHttpRequest();
	} else if (window.ActiveXObject){
		request=new ActiveXObject("Msxml2.XMLHTTP");
		if (! request){
			request=new ActiveXObject("Microsoft.XMLHTTP");
		}
	}
	//la variabile richiesta potrebbe essere ancora null nel caso nessuna
	//inizializzazione ActiveXObject abbia avuto successo
	if (request){
		//se il parametro reqType � POST il quinto argomento della funzione contiene i dati da inviare
		if(reqType.toLowerCase() != "post")  {
			initReq(reqType,url,asynch,respHandle);
		} else {
			var args = arguments[4];
			if(args != null && args.length >0){
				initReq(reqType,url,asynch,respHandle,args);
			}
		}
 	} else {
		alert("Il browser utilizzato non permette di usare tutte le funzionalità di questa applicazione");
	}
}

// inizializzazione di un oggetto request precedentemente istanziato
function initReq(reqType,url,bool,respHandle){
	//alert('chiamata initReq\nreqType='+reqType+' url='+url+' bool='+bool+' respHandle='+respHandle);
	try {
		//specifica la funzione che gestir� la risposta HTTP
		request.onreadystatechange=respHandle;
		request.open(reqType,url,bool);
		//se reqType � POST allora il quinto argomento contiene i dati da inviare
		if(reqType.toLowerCase() == "post")  {
			//alert('argomenti passati'+arguments[4]);
			request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8")
			request.send(arguments[4]);
		} else {
			request.send(null);
		}
	} catch (errv) {
		alert("L'applicazione non è in grado di contattare il server.\nRiprovare tra qualche istante.\n\nDettagli dell'errore: "+errv.message);
	}
}