// JavaScript Document
/***********************************************************/

/***********************************************************/

/***************            AJAX            ****************/

 

/** FUNZIONI */

 



// funzione per prendere un elemento con id univoco

		function prendiElementoDaId(id_elemento) {
				   var elemento;
				   if(document.getElementById)
							   elemento = document.getElementById(id_elemento);
				   else
							   elemento = document.all[id_elemento];
				   return elemento;
		};

// funzione per assegnare un oggetto XMLHttpRequest

/*
	function assegnaXMLHttpRequest() {
        var XHR = false;

        if (window.XMLHttpRequest) { // Mozilla, Safari,...
            XHR = new XMLHttpRequest();
            if (XHR.overrideMimeType) {
                XHR.overrideMimeType('text/xml');
                // Vedi note sotto
            }
        } else if (window.ActiveXObject) { // IE
            try {
                XHR = new ActiveXObject("Msxml2.XMLHTTP");
            } catch (e) {
                try {
                    XHR = new ActiveXObject("Microsoft.XMLHTTP");
                } catch (e) {}
            }
        }

		return XHR;
	};
*/

	function assegnaXMLHttpRequest() {
			   var
						   XHR = null,
						   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;
	};




// oggetto di verifica stato
		var readyState = {
				   INATTIVO:        0,
				   INIZIALIZZATO:  1,
				   RICHIESTA:      2,
				   RISPOSTA:      3,
				   COMPLETATO: 4
		};

// array descrittivo dei codici restituiti dal server
// [la scelta dell' array è per evitare problemi con vecchi browsers]
		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";


 
// funzione di caricamento testo,
// accetta una stringa contenente
// il nome di un file da leggere
function caricaTesto(id,nomeFile)
{
  // variabili di funzione
  var
    // assegnazione oggetto XMLHttpRequest
    ajax = assegnaXMLHttpRequest(),
	//elemento
    elemento=document.getElementById(id);
    display= elemento.style.display;


/*elemento.style.height=imgHeight+4;*/

          if (display=="block") {
             elemento.style.display="none";
          } else if (display=="none") {
             elemento.style.display="block";
          }
 
		   if(ajax)
		   {
			   ajax.open("get", nomeFile, true);
			   //ajax.setRequestHeader("connection", "close");
			   ajax.onreadystatechange = function()
			   {
				   // verifica dello stato
				   if(ajax.readyState === readyState.COMPLETATO)
				   {
					   // verifica della risposta da parte del server
					   if(statusText[ajax.status] === "OK")	// operazione avvenuta con successo
						  elemento.innerHTML = ajax.responseText;
					   else
					   {
							// errore di caricamento
						  elemento.innerHTML = "Impossibile effettuare l'operazione richiesta.<br />";
						  elemento.innerHTML += "Errore riscontrato: " + statusText[ajax.status];
					   }
				   } 
			   }
				// invio richiesta
				ajax.send(null);
			}
} 

/***************            AJAX            ****************/
/***********************************************************/
/***********************************************************/

 
