/** insieme di funzioni ed oggetti utili per interagire con 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 = 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;
		};



/** 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";
		
function MOvoteDownOver(node) {
	node.src="images/icn_comments_down_over_19x19.gif";
}

function MOvoteDownOut(node) {
        node.src="images/icn_comments_down_19x19.gif";
}

function MOvoteUpOver(node) {
        node.src="images/icn_comments_up_over_19x19.gif";
}

function MOvoteUpOut(node) {
        node.src="images/icn_comments_up_19x19.gif";
}

function showLoadingIcon(div_id) {
        temp_HTML ="<div class=ajax-preventivo><img src=images/icn_loading_animated.gif width=20 height=20 align=absmiddle> <strong>loading...</strong></div>";
        document.getElementById(div_id).innerHTML = temp_HTML;
}

function CaricaPagina(nomeFile,div_id) {

  // variabili di funzione
  var

    id_div = div_id;
    // assegnazione oggetto XMLHttpRequest
    ajax = assegnaXMLHttpRequest(),
    // assegnazione elemento del documento
    elemento = prendiElementoDaId(id_div),
    // risultato booleano di funzione
    usaLink = true;

    // Mostriamo l'icona di Caricamento
    showLoadingIcon(id_div);
  
  // se l'oggetto XMLHttpRequest non è nullo
  if(ajax) {
    // il link al file non deve essere usato
    usaLink = false;

    // impostazione richiesta asincrona in GET
    // del file specificato
    ajax.open("get", nomeFile, true);

    // rimozione dell'header "connection" come "keep alive"
    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
          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);
  }
  return usaLink;
} 

function espandi(numero) {
	var itemMenu = document.getElementById(numero);
	if (itemMenu.className=="visibile") {
		itemMenu.className="invisibile";
	}
	else {
		itemMenu.className="visibile";
	}
}

function espandiScheda(scheda) {
	// Inizializzazione delle schede e delle linguette (tutte disattivate)
	var idScheda01 = document.getElementById('scheda01');
	var idScheda02 = document.getElementById('scheda02');
	var idScheda03 = document.getElementById('scheda03');
	
	var idTDScheda01 = document.getElementById('TDscheda01');
	var idTDScheda02 = document.getElementById('TDscheda02');
	var idTDScheda03 = document.getElementById('TDscheda03');
	
	idScheda01.className = "invisibileScheda";
	idScheda02.className = "invisibileScheda";
	idScheda03.className = "invisibileScheda";
	
	idTDScheda01.className = "";
	idTDScheda02.className = "";
	idTDScheda03.className = "";
	// Fine Inizializzazione delle schede
	
	// Visualizza la scheda selezionata e attiva la linguetta corrente:
	var itemScheda = document.getElementById(scheda); // ID della scheda
	var itemTDScheda = document.getElementById('TD'+scheda); // ID del TD (liguetta della scheda)

	itemScheda.className="visibileScheda";
	itemTDScheda.className="attivo";
}

var controllaloginurl = "ajax_controllalogin.cfm?login="; 
var http = assegnaXMLHttpRequest();

function controllalogin() 
{ 
var nomeuser = document.getElementById("login").value; 
// showLoadingIcon('err_login');
http.onreadystatechange=handleHttpResponse; 
http.open("GET", controllaloginurl + escape(nomeuser), true);
http.send(null); 
} 

function handleHttpResponse() 
{ 
  if (http.readyState==4) 
  { 
    if (http.status==200) 
    { 
       var results=http.responseText; 
       var campo=document.getElementById("login"); 
       if (results==1 & document.getElementById("login").value != "") 
       { 
         document.getElementById('err_login').innerHTML="<font color=#aa0000><strong>Login gi&agrave; scelto. Scegline un altro!</strong></font>";
		 document.modulo.login.focus();
		 http.abort();
       } 
	   else if (document.getElementById("login").value != "")
	   {
	     document.getElementById('err_login').innerHTML="";
         http.abort();
       }
       else 
	   { 
		 document.getElementById('err_login').innerHTML="";
		 http.abort();
       }
    } 
  } 
} 
