// JavaScript Document

// ----------------------------------------------------------------------------
//	AJAX 
// ----------------------------------------------------------------------------
//	getServerText
//
//		url - url contenente lo script php
//		outputEl - 
//		msgError   -  messaggio in caso di errore
//		msgLoading -  messaggio durante la fase di caricamento
//		handler    -  funzione lanciata in caso di successo
//					  NB: nel caso non sia passato handler verrā utilizzata
//						  showResult che mostra il risultato in outputEl
// ----------------------------------------------------------------------------

function getServerText(url, outputEl, msgError, msgLoading, handler) {
	if ( (document.getElementById(outputEl)) && (msgLoading!='') )
		document.getElementById(outputEl).innerHTML = msgLoading;
	var req=getXMLHTTPRequest();
	if (req)
	{
		var myRand = parseInt(Math.random()*999999999999999);
		if (url.indexOf('?')==-1)
			url = url+"?rand="+myRand;
		else
			url = url+"&rand="+myRand;
		// individua i parametri per handler
		var a = new Array("content", "msgError");
		for (var j=5; j<arguments.length; j++) {
			a[a.length] = arguments[j];
		}	
		if ( (!handler) || (handler==null) || (handler == '') )
			handler = showResult;
		var myhandler = function() {
				var content = ajaxResponse(req);
				// Se la richiesta č andata a buon fine utilizzo l'handler 			
				if (content!= null) {
					if (content !== false) {
						a[0] = content;
						a[1] = outputEl;
						return handler.apply(this, a);
					}
					else {
						if (document.getElementById(outputEl))			
							document.getElementById(outputEl).innerHTML = msgError;
					}
				}
				return false;
			}
		req.onreadystatechange = myhandler;
     	req.open("GET",url,true);
     	req.send(null);
	}
	else
		if (document.getElementById(outputEl))
			document.getElementById(outputEl).innerHTML = msgError;
}

// ----------------------------------------------------------------------------
// AJAX 
// ----------------------------------------------------------------------------
//	getXMLHTTPRequest -	crea l'oggetto per effettuare le richieste al server
// ----------------------------------------------------------------------------

function getXMLHTTPRequest() {
	var req = null;
	try {
		req = new XMLHttpRequest();
	} 
	catch(err1) {
		try {
			req = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (err2) {
			try {
				req = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (err3) {
				req = false;
			}
		}
	}
	return req;
}

// ----------------------------------------------------------------------------
// AJAX 
// ----------------------------------------------------------------------------
//	ajaxResponse -	stabilisce che risposta si ha dal server
// ----------------------------------------------------------------------------

function ajaxResponse(req) {
	if (req.readyState == 4) {
		if(req.status == 200)
			return req.responseText;
		else
			return false;
	}
	return null;
}

// ----------------------------------------------------------------------------
// AJAX 
// ----------------------------------------------------------------------------
//	showResult -	mostra content nell'oggetto identificato dall'id outputEl
// ------------------------------------------------------------------------------

function showResult(content, outputEl) {
	document.getElementById(outputEl).innerHTML = content;
}


