function assegnaXMLHttpRequest() {

	var XHR = null;
	var browserUtente = navigator.userAgent.toUpperCase();
	
	if(typeof(XMLHttpRequest) === "function" || typeof(XMLHttpRequest) === "object")
	    XHR = new XMLHttpRequest();
	
	else if(window.ActiveXObject && browserUtente.indexOf("MSIE 4") < 0) {
	    if(browserUtente.indexOf("MSIE 5") < 0)
			XHR = new ActiveXObject("Msxml2.XMLHTTP");
	    else
			XHR = new ActiveXObject("Microsoft.XMLHTTP");
	}

	return XHR;
} 



function carica_ajax(url,id) {

  // variabili di funzione
  var ajax = assegnaXMLHttpRequest();
  var elemento = document.getElementById(id);
  var usaLink = true;
  
  if(ajax) {
    usaLink = false;
	elemento.innerHTML = "<img src=\"../images/loader.gif\" align=\"absmiddle\" /> Caricamento in corso...";
	
	var array = url.split('?');
	if(array[1]) url = url + "&rand=" + escape(Math.random());
	else url = url + "?rand=" + escape(Math.random());
	
    ajax.open("get", url, true);
    ajax.setRequestHeader("connection", "close");
    ajax.onreadystatechange = function() {
      
      if(ajax.readyState === readyState.COMPLETATO) {
        if(statusText[ajax.status] === "OK")
          elemento.innerHTML = ajax.responseText;
        else {
          elemento.innerHTML  = "Impossibile aprire la pagina richiesta.<br />";
          elemento.innerHTML += "Errore riscontrato: " + ajax.status + " " + statusText[ajax.status];
        }
      } 
    }

    ajax.send(null);
  }
  
  return usaLink;
}











/** OGGETTI / ARRAY */

	// oggetto di verifica stato
		var readyState = {
			INATTIVO:		0,
			INIZIALIZZATO:	1,
			RICHIESTA:		2,
			RISPOSTA:		3,
			COMPLETATO:		4
		};

	// array contenente la descrizione di tutti i codici di stato
		var statusText = new Array();
		statusText[100] = "Continue";
		statusText[101] = "Switching Protocols";
		statusText[200] = "OK";
		statusText[201] = "Created";
		statusText[202] = "Accepted";
		statusText[203] = "Non-Authoritative Information";
		statusText[204] = "No Content";
		statusText[205] = "Reset Content";
		statusText[206] = "Partial Content";
		statusText[300] = "Multiple Choices";
		statusText[301] = "Moved Permanently";
		statusText[302] = "Found";
		statusText[303] = "See Other";
		statusText[304] = "Not Modified";
		statusText[305] = "Use Proxy";
		statusText[306] = "(unused, but reserved)";
		statusText[307] = "Temporary Redirect";
		statusText[400] = "Bad Request";
		statusText[401] = "Unauthorized";
		statusText[402] = "Payment Required";
		statusText[403] = "Forbidden";
		statusText[404] = "Not Found";
		statusText[405] = "Method Not Allowed";
		statusText[406] = "Not Acceptable";
		statusText[407] = "Proxy Authentication Required";
		statusText[408] = "Request Timeout";
		statusText[409] = "Conflict";
		statusText[410] = "Gone";
		statusText[411] = "Length Required";
		statusText[412] = "Precondition Failed";
		statusText[413] = "Request Entity Too Large";
		statusText[414] = "Request-URI Too Long";
		statusText[415] = "Unsupported Media Type";
		statusText[416] = "Requested Range Not Satisfiable";
		statusText[417] = "Expectation Failed";
		statusText[500] = "Internal Server Error";
		statusText[501] = "Not Implemented";
		statusText[502] = "Bad Gateway";
		statusText[503] = "Service Unavailable";
		statusText[504] = "Gateway Timeout";
		statusText[505] = "HTTP Version Not Supported";
		statusText[509] = "Bandwidth Limit Exceeded";