function Rating(id, bg) {
	this.numStars = 5;
	this.myRating = 0;
	this.id = id;

	this.bg =  bg;

	this.starON  = '/i/star_' + this.bg + '_on.gif';
	this.starOFF = '/i/star_' + this.bg + '_off.gif';

	this.defaultStars = new Array(6);
	this.defaultStars[0] = '';
	for (i = 1; i < this.defaultStars.length; i++) this.defaultStars[i] = this.starOFF;

	this.star = 'star' + this.id.toString() + '_';

	this.starInit = starInit;
	this.starPreview = starPreview;
	this.starReset = starReset;
	this.starSave = starSave;
	this.starRender = starRender;
}

function starInit(initRating) {
	this.starRender();

	for (var i = 1; i <= initRating; i++) document.getElementById(this.star + i).src = this.starON;
	this.myRating = initRating;
}

function starPreview(ratingPos) {
	for (var i = 1; i <= this.numStars; i++) document.getElementById(this.star + i).src = this.starOFF;
	if (document.getElementById) {
		for (var i = 1; i <= ratingPos; i++) document.getElementById(this.star + i).src = this.starON;
	}
}

function starReset() {
	for (var i = 1; i <= this.numStars; i++) document.getElementById(this.star + i).src = this.defaultStars[i];
	for (var i = 1; i <= this.myRating; i++) document.getElementById(this.star + i).src = this.starON;
}

function starSave(ratingPos) {
	this.myRating = ratingPos;
	for (var i = 1; i <= this.numStars; i++) this.defaultStars[i] = document.getElementById(this.star + i).src;

	//Do the AJAX thing
	var myAjax = new Ajax.Updater('ratingResults' + this.id.toString(), '/api/poem/rate.php', {
		method: 'post',
		parameters: { rate: ratingPos, poemID: this.id }
	});

	return false;
}

function starRender() {
	var ui = '<img src="/i/type/rate_it_'+ this.bg +'.gif" align="middle" alt="Rate it" />&nbsp;';
	for (var i = 1; i <= this.numStars; i++) {
		ui +=
		'<img src="'+ this.starOFF  +'" id="star'+ this.id + '_' + i +'" class="star" align="middle" '+
		'onmouseover="rate'+ this.id +'.starPreview('+ i +');"'+
		'onmouseout="rate'+ this.id +'.starReset();"'+
		'onclick="rate'+ this.id +'.starSave('+ i +');"'+
		'alt="Rate this '+ i +' stars out of '+ this.numStars +'" />';
	}
	document.write(ui);
}

