// JavaScript Document
// funzione per assegnare l'oggetto XMLHttpRequest
// compatibile con i browsers più recenti e diffusi
function objHTTP() {
	// lista delle variabili locali
	var

	// variabile di ritorno, nulla di default
	XHR = null,
	
	// informazioni sul nome del browser
	browserUtente = navigator.userAgent.toUpperCase();
	
	
	// browser standard con supporto nativo
	// non importa il tipo di browser
	if(typeof(XMLHttpRequest) === "function" || typeof(XMLHttpRequest) === "object")
		XHR = new XMLHttpRequest();
	
	// browser Internet Explorer
	// è necessario filtrare la versione 4
	else if( window.ActiveXObject && browserUtente.indexOf("MSIE 4") < 0) {
	
		// la versione 6 di IE ha un nome differente
		// per il tipo di oggetto ActiveX
		if(browserUtente.indexOf("MSIE 5") < 0) 
			XHR = new ActiveXObject("Msxml2.XMLHTTP");
		
		// le versioni 5 e 5.5 invece sfruttano lo stesso nome
		else
			XHR = new ActiveXObject("Microsoft.XMLHTTP");

	}
	
	return XHR;
}

//crea la stringa con tutti i campi di un determinato form nome=valore&nome=valore
function formCollection(f,p1,p2){
	var str='';
	var i=0;
	var cont=0;
	
	var browserUtente = navigator.userAgent.toUpperCase();
	
	for (i=0; i<f.elements.length;i++) {
		if (f.elements[i].name!=null && f.elements[i].value!=null) {
			if (f.elements[i].type=='checkbox') {
				if (f.elements[i].checked) {
					if (cont>0) str+='&';
					
					//se non Ã¨ ne il 4 ne il 5 uso encodeURIComponent altrimenti escape
					if(browserUtente.indexOf("MSIE 4") < 0 && browserUtente.indexOf("MSIE 5") < 0) {
						str+=encodeURIComponent(f.elements[i].name)+'='+encodeURIComponent(f.elements[i].value);
					} else {
						str+=escape(f.elements[i].name)+'='+escape(f.elements[i].value);
					}
					
					cont++;
				}
			} else {		
				if (f.elements[i].name!='' && f.elements[i].value!='') {
					if (cont>0) str+='&';

					//se non Ã¨ ne il 4 ne il 5 uso encodeURIComponent altrimenti escape
					if(browserUtente.indexOf("MSIE 4") < 0 && browserUtente.indexOf("MSIE 5") < 0) {
						str+=encodeURIComponent(f.elements[i].name)+'='+encodeURIComponent(f.elements[i].value);
					} else {
						str+=escape(f.elements[i].name)+'='+escape(f.elements[i].value);
					}
					cont++;
				}
			}
		}
	}
	
	return str;
}


/*################################################################################################################################################################################*/
// funzione di caricamento testo da un certo url
/*url= pagina da richiamare
campo= campo in cui inserire risultato
params= parametri da spedire
scriptjs= funzione js da eseguire dopo aver ottenuto il risultato */
function getCode(url, campo, params, scriptjs, p3, p4, p5) {
	
	// variabili di funzione
	// assegnazione oggetto XMLHttpRequest
	var ajax = objHTTP();
	
	if (params=='') params=null;
	
	// se l'oggetto XMLHttpRequest non è nullo
	if(ajax) {
		// impostazione richiesta asincrona in GET
		// del file specificato
		ajax.open("post", url, true);
		
		// imposto il giusto header
		ajax.setRequestHeader("content-type", "application/x-www-form-urlencoded; charset=UTF-8");
		
		// rimozione dell'header "connection" come "keep alive"
		ajax.setRequestHeader("connection", "close");
		
		// impostazione controllo e stato della richiesta
		ajax.onreadystatechange = function() {
			var txtRitornato='';
	
			// verifica dello stato
			if(ajax.readyState === 4) {
				// verifica della risposta da parte del server
				if(ajax.status === 200) {
					// operazione avvenuta con successo
					if (campo!='') document.getElementById(campo).innerHTML = ajax.responseText;
					//eseguo script se indicato
					if (scriptjs!='') eval(scriptjs);
				} else {
					// errore di caricamento
					if (campo!='') {
						//document.getElementById(campo).innerHTML = "Impossibile effettuare l'operazione richiesta.<br />";
						document.getElementById(campo).innerHTML += "Error: " + ajax.status +"<br />";
						//document.getElementById(campo).innerHTML += "Se l'errore dovesse ripetersi contattare l'amministratore del sistema<br />";
					}
				}
			} else {
				if (campo!='') document.getElementById(campo).innerHTML = '<img src="/admin/images/ajLoading.gif" alt="attendere prego..." border="0" />';
			}
			
		}
		
		// invio richiesta
		ajax.send(params);
	}
	
} 
function fai() {
	getCode('/test3/b.php', 'campo', '', '');
}
/*################################################################################################################################################################################*/


/*################################################################################################################################################################################*/
// funzione di caricamento testo da un certo url
/*url= pagina da richiamare
campo= campo in cui inserire risultato
params= parametri da spedire
scriptjs= funzione js da eseguire dopo aver ottenuto il risultato */
function getCode_sincrono(url, params, p4, p5) {
	
	//2008-05-06
	//if (asincrono=='') asincrono=true;
	
	// variabili di funzione
	// assegnazione oggetto XMLHttpRequest
	var ajax = objHTTP();
	
	if (params=='') params=null;
	
	// se l'oggetto XMLHttpRequest non è nullo
	if(ajax) {
		// impostazione richiesta asincrona in POST
		// del file specificato

		//2008-05-06
			//ajax.open("post", url, true);
		//ajax.async = false;
		ajax.open('POST', url, false);
		
		// imposto il giusto header
		//ajax.setRequestHeader("content-type", "application/x-www-form-urlencoded; charset=UTF-8");
		ajax.setRequestHeader("content-type", "application/x-www-form-urlencoded; charset=UTF-8");
		
		// rimozione dell'header "connection" come "keep alive"
		ajax.setRequestHeader("connection", "close");
		
		// invio richiesta
		ajax.send(params);
		
		return ajax.responseText;

	}
	
} 

