	function makeXMLHttpRequest() {
		var request = undefined;
		if (window.XMLHttpRequest) { // Mozilla, Safari, ecc.
			request = new XMLHttpRequest();
			if (request.overrideMimeType) {
				request.overrideMimeType("text/html");
			}
		} else {
			if (window.ActiveXObject) { // IE
				try {
					request = new ActiveXObject("Msxml2.XMLHTTP");
				} catch (e) {
					try {
						request = new ActiveXObject("Microsoft.XMLHTTP");
					} catch (e) { }
				}
			}
		}
		return request;
	}
	
	function ajaxCallback(xmlHttpRequest) {
		try {
			if (xmlHttpRequest.readyState == 4) {
				if (xmlHttpRequest.status == 200) {
					var text = xmlHttpRequest.responseText;
					var doc = xmlHttpRequest.responseXML;
					document.getElementById('contenitore').innerHTML = text;
				} else {
					if (xmlHttpRequest.status == 404) { alert('404: Not Found'); }
					else if (xmlHttpRequest.status == 500) { alert('500: Internal Server Error'); }
					else { alert(xmlHttpRequest.status + ': ' + xmlHttpRequest.statusText); }
				}
			} else {
				// risposta in esecuzione
			}
		} catch (e) {
			alert('Errore in callback function: ' + e);
		}
	}
	
	function tab(quale) {
		var richiesta = makeXMLHttpRequest();
		if (!richiesta) {
			alert('Non è possibile utilizzare Ajax');
		} else {
			richiesta.onreadystatechange = function () {
				ajaxCallback(richiesta);
			}
			var indirizzo = 'tab.php?tab=' + quale;
			richiesta.open('GET', indirizzo, true);
			richiesta.send(null);
		}
	}
	
	function ajaxCallbackSond(xmlHttpRequestSond) {
		try {
			if (xmlHttpRequestSond.readyState == 4) {
				if (xmlHttpRequestSond.status == 200) {
					var text = xmlHttpRequestSond.responseText;
					var doc = xmlHttpRequestSond.responseXML;
					document.getElementById('contenitore_sond').innerHTML = text;
				} else {
					if (xmlHttpRequestSond.status == 404) { alert('404: Not Found'); }
					else if (xmlHttpRequestSond.status == 500) { alert('500: Internal Server Error'); }
					else { alert(xmlHttpRequestSond.status + ': ' + xmlHttpRequestSond.statusText); }
				}
			} else {
				// risposta in esecuzione
			}
		} catch (e) {
			alert('Errore in Sond callback function: ' + e);
		}
	}
	
	function votaSondaggio(idsond, quale) {
		var richiestaSond = makeXMLHttpRequest();
		if (!richiestaSond) {
			alert('Sond: Non è possibile utilizzare Ajax');
		} else {
			richiestaSond.onreadystatechange = function () {
				ajaxCallbackSond(richiestaSond);
			}
			if (quale == -1) var indirizzoSond = '/sondaggi/sondaggio.php?id=' + idsond + '&solorisp=1';
			else var indirizzoSond = '/include/homepage/risultatiSond.php?id=' + idsond + '&voto=' + quale;
			richiestaSond.open('GET', indirizzoSond, true);
			richiestaSond.send(null);
		}
	}
	
	function ajaxCallbackSpiaggia(xmlHttpRequestSpiaggia) {
		try {
			if (xmlHttpRequestSpiaggia.readyState == 4) {
				if (xmlHttpRequestSpiaggia.status == 200) {
					var text = xmlHttpRequestSpiaggia.responseText;
					var doc = xmlHttpRequestSpiaggia.responseXML;
					document.getElementById('spiaggia').innerHTML = text;
				} else {
					if (xmlHttpRequestSpiaggia.status == 404) { alert('404: Not Found'); }
					else if (xmlHttpRequestSpiaggia.status == 500) { alert('500: Internal Server Error'); }
					else { alert(xmlHttpRequestSpiaggia.status + ': ' + xmlHttpRequestSpiaggia.statusText); }
				}
			} else {
				// risposta in esecuzione
			}
		} catch (e) {
			alert('Errore in Spiaggia callback function: ' + e);
		}
	}
	
	function spiaggia(quale) {
		var richiestaSpiaggia = makeXMLHttpRequest();
		if (!richiestaSpiaggia) {
			alert('Sond: Non è possibile utilizzare Ajax');
		} else {
			richiestaSpiaggia.onreadystatechange = function () {
				ajaxCallbackSpiaggia(richiestaSpiaggia);
			}
			var indirizzo = '/spiaggia.php?id=' + quale + '&rand=' + Math.random();
			richiestaSond.open('GET', indirizzo, true);
			richiestaSond.send(null);
		}
	}