/** FUNZIONI */
/* Parte Ajax */
function loadPage(page,div) {

  var
    ajax = assegnaXMLHttpRequest(),
    elemento = document.getElementById(div),

    usaLink = true;

  if(ajax) {
    usaLink = false;
    
    ajax.open("get", page, true);
	    
    ajax.setRequestHeader("connection", "close");

    ajax.onreadystatechange = function() {

      if(ajax.readyState === readyState.COMPLETATO) {  
          elemento.innerHTML = ajax.responseText;		
      } 
    }

    ajax.send(null);
  }
   
  return usaLink;
} 
function loadPageNoA(page) { /* Non ritorna niente  */

  var
    ajax = assegnaXMLHttpRequest(), 

    usaLink = true;						
	  if(ajax) {
		usaLink = false;
		
		ajax.open("get", page, true);
			
		ajax.setRequestHeader("connection", "close");
	
		ajax.onreadystatechange = function() {
	
		  if(ajax.readyState === readyState.COMPLETATO) {            	
		  } 
	   }
	   ajax.send(null);
  }
   
  return usaLink;
}
function loadPageL(page,div, myOpacity) {

  var
    ajax = assegnaXMLHttpRequest(),
    elemento = document.getElementById(div),
    usaLink = true;
	var loading = document.getElementById('caricamento');
	if(myOpacity != null)
		myOpacity.hide();

  if(ajax) {
    usaLink = false;    
    ajax.open("get", page, true);
	loading.style.visibility = 'visible';	    
    ajax.setRequestHeader("connection", "close");

    ajax.onreadystatechange = function() {

      if(ajax.readyState === readyState.COMPLETATO) {  
          elemento.innerHTML = ajax.responseText;		
		  loading.style.visibility = 'hidden';
		  if(myOpacity != null)
			  myOpacity.toggle();
      } 
    }

    ajax.send(null);
  }
   
  return usaLink;
} 
	
function loadPageLD(page,div) { /* Visualizza il loading sullostesso div */

  var
    ajax = assegnaXMLHttpRequest(),
    elemento = document.getElementById(div),
    usaLink = true;

  if(ajax) {
    usaLink = false;    
    ajax.open("get", page, true);
	elemento.innerHTML = '<div style="text-align:center; width: 32px; height: 32px; font-size:10px;"><img src="/images/loader2.gif" width="32" height="32" alt="loading" /><br />Caricamento</div>';	    
    ajax.setRequestHeader("connection", "close");

    ajax.onreadystatechange = function() {

      if(ajax.readyState === readyState.COMPLETATO) {  
          elemento.innerHTML = ajax.responseText;				  
      } 
    }

    ajax.send(null);
  }
   
  return usaLink;
} 

function loadPageLDn(page,div) { /* Visualizza solo la risposta */

  var
    ajax = assegnaXMLHttpRequest(),
    elemento = document.getElementById(div),
    usaLink = true;

  if(ajax) {
    usaLink = false;    
    ajax.open("get", page, true);
		    
    ajax.setRequestHeader("connection", "close");

    ajax.onreadystatechange = function() {

      if(ajax.readyState === readyState.COMPLETATO) {  
          elemento.innerHTML = ajax.responseText;			 
      } 
    }

    ajax.send(null);
  }
   
  return usaLink;
} 

function loadPageLDnn(page,div) { /* Visualizza solo la risposta e riaggiorna la pagina */

  var
    ajax = assegnaXMLHttpRequest(),
    elemento = document.getElementById(div),
    usaLink = true;

  if(ajax) {
    usaLink = false;    
    ajax.open("get", page, true);
		    
    ajax.setRequestHeader("connection", "close");

    ajax.onreadystatechange = function() {

      if(ajax.readyState === readyState.COMPLETATO) {  
          elemento.innerHTML = ajax.responseText;	
		  location.href = "user_time.php";
      } 
    }

    ajax.send(null);
  }
   
  return usaLink;
} 


function loads(id) {

  // variabili di funzione
  var
    // assegnazione oggetto XMLHttpRequest
    ajax = assegnaXMLHttpRequest(),
    // assegnazione elemento del documento
    elemento = document.getElementById("cities"),
    // risultato booleano di funzione
    usaLink = true;
	
	var loading = document.getElementById('caricamento');
  
  // se l'oggetto XMLHttpRequest non è nullo
  if(ajax) {
    // il link al file non deve essere usato
    usaLink = false;
	elemento.innerHTML = "";
    // impostazione richiesta asincrona in GET
    // del file specificato
    
    ajax.open("get", 'city_list.php?s='+id, true);
	
    loading.style.visibility = 'visible';
    // 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	  
          elemento.innerHTML = ajax.responseText;		
		  loading.style.visibility = 'hidden';
      } 
    }

    // invio richiesta
    ajax.send(null);
  }
   
  return usaLink;
} 

function europe(file) {

  // variabili di funzione
  var
    // assegnazione oggetto XMLHttpRequest
    ajax = assegnaXMLHttpRequest(),
    // assegnazione elemento del documento
    elemento = document.getElementById("1"),
    // risultato booleano di funzione
    usaLink = true;
	
	var loading = document.getElementById('caricamento');
  
  // 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", file, true); 
		
    loading.style.visibility = 'visible';
	
    // 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	  
          elemento.innerHTML = ajax.responseText;		
		  loading.style.visibility = 'hidden';
      } 
    }
	
	//Spry.Effect.AppearFade(elemento, {duration:2000,from:100,to:0,toggle:true});
    // invio richiesta
    ajax.send(null);
  }
   
  return usaLink;
} 


// 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;
};

var http_request = false;
var div = "";
   function makePOSTRequest(url, parameters,divd) {	 
      http_request = false;
	  div = divd;

  	 // var loading = document.getElementById('caricamento');
      if (window.XMLHttpRequest) { // Mozilla, Safari,...
         http_request = new XMLHttpRequest();
         if (http_request.overrideMimeType) {
         	// set type accordingly to anticipated content type
            //http_request.overrideMimeType('text/xml');
            http_request.overrideMimeType('text/html');
         }
      } else if (window.ActiveXObject) { // IE
         try {
            http_request = new ActiveXObject("Msxml2.XMLHTTP");
         } catch (e) {
            try {
               http_request = new ActiveXObject("Microsoft.XMLHTTP");
            } catch (e) {}
         }
      }
      if (!http_request) {
         alert('Cannot create XMLHTTP instance');
         return false;
      }
      
      http_request.onreadystatechange = alertContents;

      http_request.open('POST', url, true);	
      http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
      http_request.setRequestHeader("Content-length", parameters.length);
      http_request.setRequestHeader("Connection", "close");
      http_request.send(parameters);
   }
   function alertContents() {
      if (http_request.readyState == 4) {
         if (http_request.status == 200) {
            //alert(http_request.responseText);
            result = http_request.responseText;			
            document.getElementById(div).innerHTML = result;			
         } else {
            alert('There was a problem with the request.');
         }
      }
   }
   function vota(obj,div) {
	   for (i=obj.v.length-1; i > -1; i--) {
			if (obj.v[i].checked) {
				myOption = i; 
				i = -1;
			}
		}

	   
      var poststr = "v=" + encodeURI( obj.v[myOption].value) +
                    "&e=" + encodeURI( document.getElementById("e").value );
      makePOSTRequest('vote.php', poststr,div);
   }
      
	  
   function insComm(obj,div){	   
      var poststr = "t=" + encodeURI( decode(document.getElementById("testo").value) ) +
                    "&e=" + encodeURI( document.getElementById("e").value );
	  /*document.getElementById('commenti_ev').innerHTML = '<div style="text-align:center; padding-top: 220"><img src="images/loader.gif" width="32" height="32" alt="loading" /><br />Caricamento...</div>';*/
      makePOSTRequest('commenti.php?o=2&e='+document.getElementById("e").value, poststr,div);
	 
   }
   
   function decode(str){
	 var text = str;
	 var textEnc = text.replace(/È/g,"Egrave;").replace(/è/g,"egrave;").replace(/é/g,"eacute;").replace(/à/g,"agrave;").replace(/ù/g,"ugrave;").replace(/ò/g,"ograve;").replace(/ì/g,"icirc;").replace(/&/g,"amp;");
	 
	return textEnc;	
   }

/** 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";