/** (C) HTML.IT - insieme di funzioni ed oggetti utili per interagire con ajax */

/** FUNZIONI */ 	function nuovoCliente()	{		location.href = "nuovocliente.php";	}	function mostraElenco()	{		document.getElementById("box_ricerca_clienti").style.visibility="visible";	}	function nascondiElenco()	{		document.getElementById("box_ricerca_clienti").style.visibility="hidden";	}	function setCliente(id,nome,cognome)	{		document.getElementById("id_cliente").value = id;		var scrivi = "               "+cognome + " "+nome+" (id cliente: "+id+") ";		document.getElementById("nome_cliente").innerHTML = scrivi;			}	function colora(object)	{		object.className = "ris_sopra";	}	function colora2 (object,classe)	{		object.className = "ris_"+classe;			}	function searchClienti()	{		var key = document.getElementById("text_search").value;		if (key!="")		{			var url = "getListaClienti.php?key="+key;		}		else		{		var url = "getListaClienti.php";		}		getWithAjax(url,"risultati");	}
	function setKey()
	{
	var key = "./getClienti.php?key="+document.getElementById("key").value;
	//alert(key);
	getWithAjax(key,'id_cliente');
	}
	function scriviDati(tabella,campi)
	{
	var querystring="tabella="+tabella;
	var arraycampi = campi.split('-');
	var i = 0;
	for (;i< arraycampi.length-1; i++)
	{
		var valore = document.getElementById(arraycampi[i]).value;
		if (valore!="")
		{
		querystring+="&"+arraycampi[i]+"="+valore;
		}
	}
	
	postWithAjax('inserisciRiga.php','mostrastruttura',querystring);
	
	
	}
        function cancellaRiga(variabile,tabella)
	{
		setLoading('loading');
		postWithAjax('cancellaRiga.php','statusrichiesta',variabile);
		postWithAjax('getDatiTabella.php','mostradati','tabella='+tabella);
		setLoading('loading');
	
	}
	function setLoading(id)
	{
	if (document.getElementById(id).style.visibility=='visible')
		{
			document.getElementById(id).style.visibility='hidden';
		}
		else if (document.getElementById(id).style.visibility=='hidden')
		{
			document.getElementById(id).style.visibility='visible';
		}
	
	}
        function selectTabella()
	{
		setLoading('loading');
		var tabella = "tabella="+document.getElementById("tabelle").value;
		postWithAjax('disegnaStruttura.php','mostrastruttura',tabella);
		postWithAjax('getDatiTabella.php','mostradati',tabella);
		setLoading('loading');
	}
	function deleteArticolo(id)
	{
	setLoading('loading');
	var dati = "id="+id;
	alert("ciao");
	postWithAjax('deleteArticolo.php','miodiv',dati)
	setLoading('loading');
	}
	
	function inviaDati(pagina,contenitorefinale)
	{
	setLoading('loading');
	var dati = "data="+document.getElementById('data').value+"&titolo="+document.getElementById('titolo_art').value+"&articolo="+document.getElementById('articolo').value;
	//alert(dati);
	postWithAjax(pagina,contenitorefinale,dati)
	//alert(document.getElementById("miatabella").innerHTML);
	setLoading('loading');
	}

	// 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 = 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;
		};
    
    // funzione per cambiare dinamicamente il contenuto di un contenitore
        function getWithAjax(nomefile,contenitore) { 
        var ajax = assegnaXMLHttpRequest(); 
        usalink=true;   
        if(ajax)
        {
            usalink=false;     
            ajax.open("GET",nomefile,true);
            ajax.setRequestHeader("connection", "close");
            
            ajax.onreadystatechange = function() 
            {
                if(ajax.readyState === 4) 
                {
                    if(ajax.status == 200)
                    {    
		  
                        document.getElementById(contenitore).innerHTML = ajax.responseText;
			
                    }
                    else
                        document.getElementById(contenitore).innerHTML = "ERRORE IN QUALCOSA";   
                }
            }
            ajax.send(null);
           
        }
        return usalink;

}

        function postWithAjax(nomefile,contenitore,infotosend) { 
	   
	   //Creo un nuovo oggetto XMLHTTPRequest
            var req = assegnaXMLHttpRequest(); 
            if(req)
            {
                  //Invio la richiesta
				req.open("POST", nomefile, true);
				req.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
				
                //Invio i dati POST
				req.send(infotosend);
				
				//Gestore dell'evoluzione dello stato dell'oggetto req
				req.onreadystatechange = function() 
                {
                    if(req.readyState === 4) 
                    {
                        if(req.status == 200)
                        {    
			
                            document.getElementById(contenitore).innerHTML = req.responseText;
			 
                        }
                        else
                            document.getElementById(contenitore).innerHTML = "ERRORE IN QUALCOSA";   
                    }
                }   
                
            }
          
}

/** 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";