// crea l'oggetto per la comunicazione AJAX con il server
// compatibile con tutti i browser che supportano AJAX
function crea_http_req() {
	var req = false;
	if (typeof XMLHttpRequest != "undefined")
		req = new XMLHttpRequest();
	if (!req && typeof ActiveXObject != "undefined") {
		try {
			req=new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e1) {
			try {
				req=new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e2) {
				try {
					req=new ActiveXObject("Msxml2.XMLHTTP.4.0");
				} catch (e3) {
					req=null;
				}
			}
		}
	}

	if(!req && window.createRequest)
		req = window.createRequest();

	if (!req) alert("Il browser non supporta AJAX");

	return req;
}

// l'oggetto per comunicare con il server
var http_req = crea_http_req();

// ---- SEZIONE VOTI ---- //

function vota_evento()
{
	this.http_req = this.crea_http_req();
	var dati_post = "voto=" +
					encodeURIComponent( document.getElementById("voto").options[document.getElementById("voto").selectedIndex].text ) +
					"&evento=" +
					encodeURIComponent( document.getElementById("evento").value );

	http_req.onreadystatechange = gestisci_risposta_inserimento_voto_evento;
	http_req.open('POST', 'add_voto_evento_ajax.php', true);
	http_req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	http_req.setRequestHeader("Content-length", dati_post.length);
	http_req.setRequestHeader("Connection", "close");
	http_req.send(dati_post);
}

function vota_fotografia()
{
	this.http_req = this.crea_http_req();
	var dati_post = "voto=" +
					encodeURIComponent( document.getElementById("voto").options[document.getElementById("voto").selectedIndex].text ) +
					"&fotografia=" +
					encodeURIComponent( document.getElementById("fotografia").value );

	http_req.onreadystatechange = gestisci_risposta_inserimento_voto_fotografia;
	http_req.open('POST', 'add_voto_fotografia_ajax.php', true);
	http_req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	http_req.setRequestHeader("Content-length", dati_post.length);
	http_req.setRequestHeader("Connection", "close");
	http_req.send(dati_post);
}

function gestisci_risposta_inserimento_voto_evento()
{
	if(http_req.readyState == 4)
	{
		var esito = http_req.responseText;
		// scriviamo sul div "inserimento_voto" la risposta del server
		document.getElementById('inserimento_voto').innerHTML = esito;
		// ora aggiorniamo la media dei voti per questo evento
		aggiorna_voti_evento();
	}
}

function gestisci_risposta_inserimento_voto_fotografia()
{
	if(http_req.readyState == 4)
	{
		var esito = http_req.responseText;
		// scriviamo sul div "inserimento_voto" la risposta del server
		document.getElementById('inserimento_voto').innerHTML = esito;
		// ora aggiorniamo la media dei voti per questo evento
		aggiorna_voti_fotografia();
	}
}

function aggiorna_voti_evento()
{
	this.http_req = this.crea_http_req();
	var dati_post = "evento=" +
					encodeURIComponent( document.getElementById("evento").value );

	http_req.onreadystatechange = gestisci_risposta_aggiornamento_voto;
	http_req.open('POST', 'refresh_voto_ajax.php', true);
	http_req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	http_req.setRequestHeader("Content-length", dati_post.length);
	http_req.setRequestHeader("Connection", "close");
	http_req.send(dati_post);
}

function aggiorna_voti_fotografia()
{
	this.http_req = this.crea_http_req();
	var dati_post = "fotografia=" +
					encodeURIComponent( document.getElementById("fotografia").value );

	http_req.onreadystatechange = gestisci_risposta_aggiornamento_voto;
	http_req.open('POST', 'refresh_voto_ajax.php', true);
	http_req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	http_req.setRequestHeader("Content-length", dati_post.length);
	http_req.setRequestHeader("Connection", "close");
	http_req.send(dati_post);
}

function gestisci_risposta_aggiornamento_voto()
{
	if(http_req.readyState == 4)
	{
		var esito = http_req.responseText;
		// scriviamo sul div "media_voti" la risposta del server
		document.getElementById('media_voti').innerHTML = esito;
	}
}

// ---- SEZIONE COMMENTI ---- //

function invia_commento_evento()
{
	this.http_req = this.crea_http_req();
	var dati_post = "commento=" +
					encodeURIComponent( document.getElementById("commento").value ) +
					"&evento=" +
					encodeURIComponent( document.getElementById("evento").value );

	http_req.onreadystatechange = gestisci_risposta_inserimento_commento_evento;
	http_req.open('POST', 'add_comment_event_ajax.php', true);
	http_req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	http_req.setRequestHeader("Content-length", dati_post.length);
	http_req.setRequestHeader("Connection", "close");
	http_req.send(dati_post);
}

function invia_commento_fotografia()
{
	this.http_req = this.crea_http_req();
	var dati_post = "commento=" +
					encodeURIComponent( document.getElementById("commento").value ) +
					"&fotografia=" +
					encodeURIComponent( document.getElementById("fotografia").value );

	http_req.onreadystatechange = gestisci_risposta_inserimento_commento_fotografia;
	http_req.open('POST', 'add_comment_fotografia_ajax.php', true);
	http_req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	http_req.setRequestHeader("Content-length", dati_post.length);
	http_req.setRequestHeader("Connection", "close");
	http_req.send(dati_post);
}

// recupero e gestisco la risposta inviata dal server
function gestisci_risposta_inserimento_commento_evento() {
	if(http_req.readyState == 4) {
		var esito = http_req.responseText;
		// scriviamo sul div "inserimento_commento" la risposta del server
		document.getElementById('inserimento_commento').innerHTML = esito;
		// ora carichiamo l'ultima pagina di commenti
		// in modo da visualizzare il commento appena inviato dall'utente'
		invia_richiesta_commenti_evento("last");
	}
}

// recupero e gestisco la risposta inviata dal server
function gestisci_risposta_inserimento_commento_fotografia() {
	if(http_req.readyState == 4) {
		var esito = http_req.responseText;
		// scriviamo sul div "inserimento_commento" la risposta del server
		document.getElementById('inserimento_commento').innerHTML = esito;
		// ora carichiamo l'ultima pagina di commenti
		// in modo da visualizzare il commento appena inviato dall'utente
		invia_richiesta_commenti_fotografia("last");
	}
}

function invia_richiesta_commenti_evento(pagina)
{
	this.http_req = this.crea_http_req();
	var dati_post = "evento=" +
					encodeURIComponent( document.getElementById("evento").value ) +
					"&pagina=" +
					encodeURIComponent( pagina );

	// prima della ricezione della risposta mettiamo la gif di caricamento
	document.getElementById('commenti').innerHTML = "<img src='images/loading.gif' alt='caricamento' />";
	
	http_req.onreadystatechange = gestisci_risposta_commenti;
	http_req.open('POST', 'view_commenti.php', true);
	http_req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	http_req.setRequestHeader("Content-length", dati_post.length);
	http_req.setRequestHeader("Connection", "close");
	http_req.send(dati_post);
}

function invia_richiesta_commenti_fotografia(pagina)
{
	this.http_req = this.crea_http_req();
	var dati_post = "fotografia=" +
					encodeURIComponent( document.getElementById("fotografia").value ) +
					"&pagina=" +
					encodeURIComponent( pagina );

	// prima della ricezione della risposta mettiamo la gif di caricamento
	document.getElementById('commenti').innerHTML = "<img src='images/loading.gif' alt='caricamento' />";
	
	http_req.onreadystatechange = gestisci_risposta_commenti;
	http_req.open('POST', 'view_commenti.php', true);
	http_req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	http_req.setRequestHeader("Content-length", dati_post.length);
	http_req.setRequestHeader("Connection", "close");
	http_req.send(dati_post);
}

function gestisci_risposta_commenti()
{
	if(http_req.readyState == 4) {
		var esito = http_req.responseText;
		// scriviamo sul div "login" la risposta del server
		document.getElementById('commenti').innerHTML = esito;

	}
}

function invia_richiesta_foto_evento(pagina)
{
	this.http_req = this.crea_http_req();
	var dati_post = "evento=" +
					encodeURIComponent( document.getElementById("evento").value ) +
					"&pagina=" +
					encodeURIComponent( pagina );

	// prima della ricezione della risposta mettiamo la gif di caricamento
	document.getElementById('foto_ajax').innerHTML = "<img src='images/loading.gif' alt='caricamento' />";

	http_req.onreadystatechange = gestisci_risposta_foto_eventi;
	http_req.open('POST', 'ajax_foto_event.php', true);
	http_req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	http_req.setRequestHeader("Content-length", dati_post.length);
	http_req.setRequestHeader("Connection", "close");
	http_req.send(dati_post);
}

function gestisci_risposta_foto_eventi()
{
	if(http_req.readyState == 4) {
		var esito = http_req.responseText;
		// scriviamo sul div "foto_ajax" la risposta del server
		document.getElementById('foto_ajax').innerHTML = esito;

	}
}

// --- SEZIONE ARTICOLI --- //
function view_article()
{
	this.http_req = this.crea_http_req();
	var dati_post = "codice_articolo=" +
					encodeURIComponent( document.getElementById("codice_articolo").options[document.getElementById("codice_articolo").selectedIndex].text );

	// prima della ricezione della risposta mettiamo la gif di caricamento
	document.getElementById('dettagli_articolo').innerHTML = "<img src='images/loading.gif' alt='caricamento' />";

	http_req.onreadystatechange = gestisci_risposta_dettagli_articolo;
	http_req.open('POST', 'ajax_dettagli_articoli.php', true);
	http_req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	http_req.setRequestHeader("Content-length", dati_post.length);
	http_req.setRequestHeader("Connection", "close");
	http_req.send(dati_post);
}

function gestisci_risposta_dettagli_articolo()
{
	if(http_req.readyState == 4)
	{
		var esito = http_req.responseText;
		// scriviamo sul div "dettagli_articolo" la risposta del server
		document.getElementById('dettagli_articolo').innerHTML = esito;
	}
}