var rating_on = '/data/css/images/kolo-active.gif';
var rating_off = '/data/css/images/kolo-inactive.gif';
var rating_hover = '/data/css/images/kolo-hover.gif';

function hoverRating(e) {
	for (var i = 1; i <= e.target.votingValue; i++) {
		e.target.voting.stars[i].src = rating_hover;
	}
}

function clickRating(e) {
	status = document.getElementById('rating-status-'+e.target.voting.relation);
	oldtext = status.innerHTML;
	status.innerHTML = '...';
	
	var xmlhttp;
	
	if (window.XMLHttpRequest)
		xmlhttp = new XMLHttpRequest();
	else if (window.ActiveXObject)
		xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
	
	xmlhttp.onreadystatechange = function() {
		if(xmlhttp.readyState == 4) {
			if (xmlhttp.responseText.substring(0,2) == "ok") {
				e.target.voting.rating = parseFloat(xmlhttp.responseText.substring(3));
				status.innerHTML = xmlhttp.responseText.substring(xmlhttp.responseText.indexOf("|")+1);
				resetRating(e);
			} else {
				alert(xmlhttp.responseText.substring(6));
				status.innerHTML = oldtext;
			}
		}
	}
	
	xmlhttp.open("POST", "/EditRating/"+e.target.voting.relation+"?action=rate", true);
	xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	xmlhttp.send("rating="+e.target.votingValue);
}

function resetRating(e) {
	for (var i = 1; i <= 5; i++) {
		e.target.voting.stars[i].src = (i <= e.target.voting.rating) ? rating_on : rating_off;
	}
}

function setupRating(e) {
	loader = new Image();
	loader.src = rating_on;
	loader.src = rating_off;
	loader.src = rating_hover;
}

function setupRatingInside(elem) {
	divs = elem.getElementsByTagName('div');
	for (var i=0; i<divs.length; i++) {
		if (divs[i].className != "rating")
		continue;
		
		setupRatingFor(divs[i]);
	}
}

function setupRatingFor(div) {
	div.stars = new Array();
	div.relation = div.id.substring(7);
	div.info = div.getElementsByTagName('span') [0];
	imgs = div.getElementsByTagName('img');
	
	for (j=0; j<imgs.length; j++) {
		if(imgs[j].id.substring(0,12) != 'rating-star-')
			continue;
		imgs[j].voting = div;
			
		imgs[j].votingValue = parseInt(imgs[j].id.substring(12));
			
		div.stars[imgs[j].votingValue] = imgs[j];
		addEvent(imgs[j], "mouseover", hoverRating);
		addEvent(imgs[j], "mouseout", resetRating);
		addEvent(imgs[j], "click", clickRating);
	}
	
	for (j=1; j<=5; j++) {
		if (div.stars[j].src.indexOf('inactive') != -1) {
			div.rating = j-1;
			break;
		}
	}
}

addEvent(window, "load", setupRating);


