// funzione di caricamento testo,
// accetta una stringa contenente
// il nome di un file da leggere
function caricaTesto(nomeFile,nomediv,parametri,v_tipo,aname,bl_img,bl_MostraAttesa) {
  // variabili di funzione
  var
    // assegnazione oggetto XMLHttpRequest
    ajax = assegnaXMLHttpRequest(),
    // assegnazione elemento del documento
    elemento = prendiElementoDaId(nomediv),
    // risultato booleano di funzione
    usaLink = true;
    if (bl_img) {img = 'im'+nomediv; }
    else {img = '';}
	var elem_vis =  prendiElementoDaId(nomediv);
	if(img != "")
	{
		var immagine = void(0);
		
		if(self.document.all)
			immagine = document.all(img);
		else
			immagine = document.getElementById(img);
		
		var imgsrc =immagine.src;
		
		if(imgsrc.substring(imgsrc.lastIndexOf("/")+ 1) == "aperto.gif")
		{
			nomeFile = "vuoto.jsp";
			aname = "noname";
			v_tipo = "get";
		}
		else
		{
			if(bl_MostraAttesa)//apro la finestra di attesa
			{
				var FinAttesa = open("Attesa.htm","Attesa","toolbar=no,menubar=no,statusbar=no,personalbar=no;status=no,locationbar=no,scrollbars=no,resizable=no,width=200,height=70");
				FinAttesa.focus();
			}
		}
		CambiaImg(img);
	}
	else
	{
		if(bl_MostraAttesa)//apro la finestra di attesa
		{
			var FinAttesa = open("Attesa.htm","Attesa","toolbar=no,menubar=no,statusbar=no,personalbar=no;status=no,locationbar=no,scrollbars=no,resizable=no,width=200,height=70");
			FinAttesa.focus();
		}
	}
  // se l'oggetto XMLHttpRequest non è nullo
  if(ajax) {
    // il link al file non deve essere usato
    usaLink = false;
    // impostazione richiesta asincrona in GET o POST
    // del file specificato
    if(v_tipo == "post")
		ajax.open("post", nomeFile, true);
	else
		ajax.open("get", nomeFile, true);
	
	if(v_tipo == "post")// imposto il giusto header
		ajax.setRequestHeader("content-type", "application/x-www-form-urlencoded");

    // rimozione dell'header "connection" come "keep alive"
    // ulteriore header consigliato per richieste get o post
	// da scrivere prima di utilizzare send
    ajax.setRequestHeader("connection", "close");
    
    // impostazione controllo e stato della richiesta
    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//document.write(ajax.responseText);
			elemento.innerHTML = ajax.responseText;
			if(elem_vis) elem_vis.style.visibility = 'visible';
			if(elemento) elemento.style.visibility = 'visible';
			//document.location = "#" + aname;
			if(FinAttesa) {if(!FinAttesa.closed) FinAttesa.close();}
          }
        else {
          // errore di caricamento
          elemento.innerHTML = "Impossibile effettuare l'operazione richiesta.<br />";
          elemento.innerHTML += "Errore riscontrato: " + statusText[ajax.status];
        }
      } 
    }

	
    // invio richiesta
	// effettuo la richiesta inviando la variabile
	if(v_tipo == "post")
		ajax.send(parametri); //alert(parametri + "&or=" + document.frmRicerca.cmbOrder.value);
	else 	//per la get 
		ajax.send(null);
  }  
  return usaLink;
}
function CambiaImg(img)
{
	var immagine = void(0);
	
	if(self.document.all)
		immagine = document.all(img);
	else
		immagine = document.getElementById(img);
	
	var imgsrc =immagine.src;
	var altsrc = immagine.getAttribute('alt');
	
	if(imgsrc.substring(imgsrc.lastIndexOf("/")+ 1) == "chiuso.gif")
	{
		imgsrc = "../img/aperto.gif";
		altsrc = altsrc.replace('Visualizza', 'Nascondi');
	}
	else
	{
		imgsrc = "../img/chiuso.gif";
		altsrc = altsrc.replace('Nascondi', 'Visualizza');
	}
	
	immagine.src = imgsrc;
	immagine.setAttribute('alt', altsrc);
} 
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 = 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;
};

function xmlhttpPost(strURL, eid, func)
{
	if( func != null && func != void(0) && func != '' )
	{
		jQuery.ajax({
			type: 'POST',
			url: strURL,
			success: function (data, textStatus, jqXHR) {
						eid.innerHTML = data;
						func();
					},
			error: function (jqXHR, textStatus, errorThrown){
						//alert(textStatus);
					}
		});
	}
	else
	{
		jQuery.ajax({
			type: 'POST',
			url: strURL,
			success: function (data, textStatus, jqXHR) {
						eid.innerHTML = data;
					},
			error: function (jqXHR, textStatus, errorThrown){
						//alert(textStatus);
					}
		});
	}
}

/// OGGETTI / ARRAY ///

	// 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";
