var RC_RATING_IMG = '';
var RC_RATING_IMG_HALF = '';
var RC_RATING_IMG_BG = '';
var RC_STAR_COUNT = 0;
var RC_TIMER;
var RC_FIXED = false;


(new Image()).src = RC_RATING_IMG;
(new Image()).src = RC_RATING_IMG_HALF;


function rcShowStars(starNum) {
	if (!RC_FIXED) {
		clearTimeout(RC_TIMER);
		rcGreyStars();
		rcColorStars(starNum*2);
		rcSetMessage(starNum*2);
	}
}

function rcSetStars(starNum) {
	RC_STAR_COUNT = starNum/2;
	rcReset();
}

function rcClearStars() {
	if (!RC_FIXED) {
		RC_TIMER = setTimeout("rcReset();", 300);
	}
}

function rcSetMessage(starNum) {
	if (!RC_FIXED) {
		msgNum = Math.round(starNum/2);
		messages = new Array("", "Bad", "Not Bad", "Good", "Very Good", "Excellent!");
		$("rcMessage").innerHTML = messages[msgNum];
	}
}

function rcReset() {
	if (!RC_FIXED) {
		clearTimeout(RC_TIMER);
		rcShowStars(RC_STAR_COUNT);
	}
}

function rcGreyStars() {
	for (var i=0; i < 5; i++)
		$('star' + (i+1)).src = RC_RATING_IMG_BG;
}

function rcColorStars(starNum) {
	for (var i=0; i < Math.floor(starNum/2); i++) {
		$('star' + (i+1)).src = RC_RATING_IMG;
	}

	if (Math.floor(starNum) % 2 > 0) {
		$('star' + (i+1)).src = RC_RATING_IMG_HALF;
	}

}


function rcRate(rating) {
	if (!RC_FIXED) {
		var frm = document.forms.rcForm;
		var ratecount = frm.ratecount.value;
		frm.rating.value = rating;

		new Ajax.Request('/ajax_cnt_rate.php', { 
			method: 'post', 
			parameters: $('rcForm').serialize(),
			onSuccess: function(transport) {
					newRating = Math.round(Number(transport.responseText.strip()));
					if (newRating > 0) {
						$("rcMessage").innerHTML = "Thanks!";
						$("rcRateCount").innerHTML = "<b>" + (Number(ratecount)+1) + " ratings</b>";
						rcSetStars(newRating);
						RC_FIXED = true;
					} else {
						$("rcMessage").innerHTML = "Error!";
					}
				} 
				
			}
		); 
	}
}
