function htmlentities( s ){
s = s.replace(/\xE0/g, "&agrave;");
s = s.replace(/\xE8/g, "&egrave;");
s = s.replace(/\xEC/g, "&igrave;");
s = s.replace(/\xF2/g, "&ograve;");
s = s.replace(/\xF9/g, "&ugrave;");
s = s.replace(/\xE9/g, "&eacute;");
return s;
}

// funzione di caricamento testo,
// accetta una stringa contenente
// il nome di un file da leggere
function nascondiCommento(id)
{
    var lista = prendiElementoDaId("comments-" + id),
         nascondi = prendiElementoDaId("nascondi-" +id),
         mostra = prendiElementoDaId("mostra-" +id);

    lista.style.display = "none";
    nascondi.style.display = "none";
    mostra.style.display = "inline";
    return true;
}

function aggiungiCommento(nomeFile, form, id) {
    var
        ajax = assegnaXMLHttpRequest()
        usaLink = true;

    if(ajax)
        usaLink = false;

    dati = form.elements[0].name + "=" + escape(htmlentities(form.elements[0].value));
    for(i=1; i<form.length; i++)
    {
        if((form.elements[i].name != "redirect_to") && (form.elements[i].name != "submit"))
        {
            dati += "&" + form.elements[i].name + "=" + escape(htmlentities(form.elements[i].value));
        }    
    }
    ajax.open("post", nomeFile, true);
    ajax.setRequestHeader("content-type", "application/x-www-form-urlencoded");
    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
            caricaCommento("http://ephimera.netsons.org/cinicitta/?comments_popup=" +id, id);
          }
        else {
          // errore di caricamento
          alert("Impossibile effettuare l'operazione richiesta.<br />");
          alert("Errore riscontrato: " + statusText[ajax.status]);
        }
      } 
    }
  

    ajax.send(dati);

return usaLink;
}
function caricaCommento(nomeFile, id) {
  // variabili di funzione
    var
    // assegnazione oggetto XMLHttpRequest
        ajax = assegnaXMLHttpRequest(),
    // assegnazione elemento del documento
        lista = prendiElementoDaId("comments-" + id),
        mostra = prendiElementoDaId("mostra-" +id),
        nascondi = prendiElementoDaId("nascondi-" +id);
    
    lista.style.display = "block";
    nascondi.style.display = "inline";
    mostra.style.display = "none";

    // risultato booleano di funzione
    usaLink = true;
  // 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
          lista.innerHTML = ajax.responseText;}
        else {
          // errore di caricamento
          lista.innerHTML = "Impossibile effettuare l'operazione richiesta.<br />";
          lista.innerHTML += "Errore riscontrato: " + statusText[ajax.status];
        }
      } 
    }

    // invio richiesta
    ajax.send(null);
  }
   
  return usaLink;
} 

