/*** ___FUNZIONI PER LA GESTIONE DEI COMMENTI___ ***/

// function visCommenti: visual commenti relativi ai contenuti
// parametri - serverPage = script php che effettua la visualizzazione dei commenti
//             objID      = id del contenitore dei commenti relativo al contenuto selezionato
//             contId     = id del contenuto relativo al commento
//             userType   = tipologia di utente (anonimo,autenticato,amministratore) per visual o no il tasto cancella
function visCommenti(serverPage, objID, contId, userType) {
   var obj = document.getElementById(objID);
   // ricava l'oggetto relativo al pulsante apri/chiudi
   nameButt = "openComm" + contId;
   var objButt = document.getElementById(nameButt);
   if (obj.innerHTML == "") {
      var searchPage = serverPage + "?id=" + contId + "&userType=" + userType;
      // serve per fare in modo che IE aggiorni sempre la pagina
      newUrl=uncache(searchPage);
      xmlhttp.open("GET", newUrl);
      xmlhttp.onreadystatechange = function() {
         if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
	    // attiva il contenitore dei commenti OK
            obj.style.display = "block";
            obj.innerHTML = xmlhttp.responseText;
            objButt.innerHTML="<img src=\"img/freccia_v.gif\" alt=\"freccia\" />";
         }
      }
      xmlhttp.send(null);
   } else {
      // chiude il contenitore commenti
      obj.style.display = "none";
      obj.innerHTML = "";
      objButt.innerHTML="<img src=\"img/freccia_o.gif\" alt=\"freccia\" />";
   }

}

// function addCommento: aggiunge un commento ad un contenuto
// parametri - serverPage = script php che effettua l'inserimento del commento nel db
//             parameters = parametri del POST passati dal form tramite la funzione get
//             contId     = id del contenuto relativo al commento
//             userType   = tipologia di utente (anonimo,autenticato,amministratore) per visual o no il tasto cancella
function addCommento(serverPage, parameters, contId, userType) {
   xmlhttp.open("POST", serverPage, true);
   xmlhttp.onreadystatechange = function() {
      if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
	 // aggiorna il numero di commenti
         document.getElementById("numComm"+contId).innerHTML=xmlhttp.responseText;
	 // visualizza nuovamente i commenti con quello appena inserito
         var objComm="comm"+contId;
         visCommAppend('navcontenuti/visCommenti.php', objComm, contId, userType);
	 // alert('Commento inserito. grazie.');
      }
   }
   xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
   // xmlhttp.overrideMimeType('text/html');
   // xmlhttp.setRequestHeader("Content-length", parameters.length);
   // xmlhttp.setRequestHeader("Connection", "close");
   xmlhttp.send(parameters);
}


// function delCommento: aggiunge un commento ad un contenuto
// parametri - serverPage = script php che effettua la cancellazione
//             commId     = id del commento da cancellare
//             contId     = id del contenuto relativo al commento
//             userType   = tipologia di utente (anonimo,autenticato,amministratore) per visual o no il tasto cancella
function delCommenti(serverPage, commId, contId, userType) {
   var searchPage = serverPage + "?commId=" + commId + "&contId=" + contId;
   xmlhttp.open("GET", searchPage);
   xmlhttp.onreadystatechange = function() {
      if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
	 // aggiorna il numero di commenti
         document.getElementById("numComm"+contId).innerHTML=xmlhttp.responseText;
	 // visualizza nuovamente i commenti con quello appena inserito
         var objComm="comm"+contId;
         visCommAppend('navcontenuti/visCommenti.php', objComm, contId, userType);
      }
   }
   xmlhttp.send(null);
}


// costruisce la stringa con i dati del POST del form commenti
// parametri - contId = id del contenuto relativo al commento
//             userType   = tipologia di utente (anonimo,autenticato,amministratore) per visual o no il tasto cancella
function get(contId, userType) {
   // costruisce la stringa con i parametri del post
   var nameField = "name"+contId;
   var poststr = nameField+"="+encodeURI( document.getElementById(nameField).value );
   var mailField = "mail"+contId;
   poststr += "&"+mailField+"="+encodeURI( document.getElementById(mailField).value );
   var textField = "textComm"+contId;
   poststr += "&"+textField+"="+encodeURI( document.getElementById(textField).value );
   poststr += "&contId="+contId;
   addCommento('navcontenuti/addCommenti.php',poststr,contId,userType);
}


// function visCommAppend: visual commenti dopo un inserimento perchè usando un nuovo oggetto xmlhttp
// parametri - serverPage = script php che effettua la visualizzazione dei commenti
//             objID      = id del contenitore dei commenti relativo al contenuto selezionato
//             contId     = id del contenuto relativo al commento
//             userType   = tipologia di utente (anonimo,autenticato,amministratore) per visual o no il tasto cancella
function visCommAppend(serverPage, objID, contId, userType) {
   // creazione di un nuovo oggetto xmlhttp1 temporaneo
   // create boolean variable to check for a valid IE istance
   var xmlhttp1 = false;
   // check if we are using IE
   try {
      // if the javascript version is grater then 5
      xmlhttp1 = new ActiveXObject("Msxml2.XMLHHTP");
   } catch (e) {
      // if not, then use the older active x object
      try {
         // if we are using IE
         xmlhttp1 = new ActiveXObject("Microsoft.XMLHTTP");
      } catch (E) {
         // else we must be using a non-IE browser
         xmlhttp1 = false;
      }
   }
   // if we are using a non-IE browser, create JavaScript istance of the object
   if (!xmlhttp1 && typeof XMLHttpRequest != 'undefined') {
      xmlhttp1 = new XMLHttpRequest();
   }

   var obj = document.getElementById(objID);
   // ricava l'oggetto relativo al pulsante apri/chiudi !!!!! NON SERVE PIU'
   // nameButt = "cont" + contId;
   var objButt = document.getElementById(nameButt);
   var searchPage = serverPage + "?id=" + contId + "&userType=" + userType;
   // serve per fare in modo che IE aggiorni sempre la pagina
   newUrl=uncache(searchPage);
   xmlhttp1.open("GET", newUrl);
   xmlhttp1.onreadystatechange = function() {
      if (xmlhttp1.readyState == 4 && xmlhttp1.status == 200) {
         // attiva il contenitore dei commenti OK
         obj.style.display = "block";
         obj.innerHTML = xmlhttp1.responseText;
	 // NON SERVE PIU'!!!!!!!!!!
         // objButt.innerHTML="chiudi";
      }
   }
   xmlhttp1.send(null);
}

// serve per fare in modo che IE aggiorni sempre la pagina passata con GET al server
// altrimenti prende quella in cache
function uncache(url){
   var d = new Date();
   var time = d.getTime();
   return url + '&time='+time;
} 


/*** ___FUNZIONI PER LA GESTIONE DEI VOTI___ ***/

// costruisce la stringa con i dati del POST de voti
// parametri - contId = id del contenuto relativo al voto
function getVoti(contId) {

   var poststr = "";
   for (i=1;i<=5;i++) {
      var nameField = "voti"+i+"-"+contId;
      if (document.getElementById(nameField).checked==true)
         var poststr = "voto="+i;
   }
   // verifica che sia stato espresso un voto
   if (poststr=='') {
     alert('Nessun voto espresso');
     return;
   }
   poststr += "&contId="+contId;
   // alert(poststr);
   addVoti('navcontenuti/addVoti.php',poststr,contId);
}


// function addVoti: aggiunge un voto ad un contenuto
// parametri - serverPage = script php che effettua l'inserimento del voto nel db
//             parameters = parametri del POST passati dal form tramite la funzione getVoti
//             contId     = id del contenuto relativo al voto
function addVoti(serverPage, parameters, contId) {
   xmlhttp.open("POST", serverPage, true);
   xmlhttp.onreadystatechange = function() {
      if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
         document.getElementById("formVoto"+contId).style.display="none";
         if (xmlhttp.responseText=='presente') {
            // contenuto già votato
	    alert('Hai già espresso un voto per questo contenuto');
         } else {    
	    // voto accettato: aggiorna il numero voti
	    alert ('Voto registrato. Grazie.');
            document.getElementById("numVoti"+contId).innerHTML=xmlhttp.responseText; 
         }
      }
   }
   xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
   // xmlhttp.overrideMimeType('text/html');
   // xmlhttp.setRequestHeader("Content-length", parameters.length);
   // xmlhttp.setRequestHeader("Connection", "close");
   xmlhttp.send(parameters);
}


/*** ___FUNZIONI PER LA GESTIONE DELLE VISITE DEI CONTENUTI___ ***/

// function addVisita: incrementa il numero delle visite del contenuto selezionato
// parametri - serverPage = script php che effettua l'incremento del contatore
//             contId     = id del contenuto
function addVisita(serverPage, contId) {
   var searchPage = serverPage + "?id=" + contId;
   xmlhttp.open("GET", searchPage);
   xmlhttp.onreadystatechange = function() {
      if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
	 // incremento effettuato
      }
   }
   xmlhttp.send(null);
}

/* Funzione che invia un evento di STOP a tutti i jw flash player contenuti nella
   pagina: questi hanno predisposto (all'interno del codice sorgente actionscript 
	 del player modificato) un listener per l'evento PLAY che chiami questa funzione
	 in modo che il play su un player provochi il blocco del caricamento del file.
	 sender rappresenta il player che chiama stopPlayers e che quindi non dev'essere fermato
*/

  function stopPlayers(sender) {
     var players=document.getElementsByTagName("embed");
//     	 alert("trovati "+players.length);
     for (var i=0; i<players.length; i++)
     {
        if (players.item(i).sendEvent && (!sender || players.item(i).id!=sender.id))
        {players.item(i).sendEvent("STOP");
//          alert("fermato "+i);
	}
     }	
     return true;
  }