var request = false;
var mid = ""; //id utilizzato per individuare i dati da modificare

try {
	request = new XMLHttpRequest();
} catch (trymicrosoft) {
	try {
		request = new ActiveXObject("Msxml2.XMLHTTP");
	} catch (othermicrosoft) {
		try {
			request = new ActiveXObject("Microsoft.XMLHTTP");
		} catch (failed) {
		request = false;
		}  
	}
}

if (!request)
	alert("Error initializing XMLHttpRequest!");
	
function vote(id, voto, uid, table) {
	
	mid = id;
	
	for(var n = 1; n <= 5; n++) {
		document.getElementById('star'+id+'-'+n).src = n <= voto ? 'http://www.skatemap.it/images/star-full.gif' : 'http://www.skatemap.it/images/star-empty.gif';
	}
	
	var url = "http://www.skatemap.it/ajax/vote.php?id="+id+"&uid="+uid+"&table="+table+"&voto="+voto;
	request.open("GET", url, true);
	request.onreadystatechange = sendVote;
	request.send(null);
	
}

function sendVote() {
	if (request.readyState == 4) {
	
		if (request.status == 200) {
			
			response = request.responseText.split("|");
			
			//update messaggio
			if(response[0] == 'insert') 
				document.getElementById('message'+mid).firstChild.nodeValue = "il tuo voto è stato registrato";
			else if(response[0] == 'updated')
				document.getElementById('message'+mid).firstChild.nodeValue = "il tuo voto è stato aggiornato";
			
			//update voti
			document.getElementById('voti'+mid).firstChild.nodeValue = response[2];
			
			//update stelle
			nums = response[1].split(".");
			count = 0;
			
			for(var i=1; i <= nums[0];  i++) {
				count++;
				document.getElementById('result-star-'+count+'-'+mid).src = 'http://www.skatemap.it/images/star-full.gif';
			}
			
			if(nums[1] <= 2) {
				count++;
				document.getElementById('result-star-'+count+'-'+mid).src = 'http://www.skatemap.it/images/star-empty.gif';			
			}
			
			if(nums[1] > 2 && nums[1] < 8) {
				count++;
				document.getElementById('result-star-'+count+'-'+mid).src = 'http://www.skatemap.it/images/star-half.gif';
			}
			
			if(nums[1] >= 8) {
				count++;
				document.getElementById('result-star-'+count+'-'+mid).src = 'http://www.skatemap.it/images/star-full.gif';
			}

			for(var t = (5-(nums[0])); t > 0;  t--) {
				count++;
				document.getElementById('result-star-'+count+'-'+mid).src = 'http://www.skatemap.it/images/star-empty.gif';
				
			}
			
			
		} else
			alert("status is " + request.status);
	}
}