// Star Ratings

function StarRating()
{
//-------------
	this.star0 = jsconfig.site.root+'images/site/rating_star.gif';
	this.star1 = jsconfig.site.root+'images/site/rating_star_half.gif';
	this.star2 = jsconfig.site.root+'images/site/rating_star_over.gif';
	this.rating_definitions = new Array();
	this.rating_definitions[1] = 'bad';
	this.rating_definitions[2] = 'needs work';
	this.rating_definitions[3] = 'average';
	this.rating_definitions[4] = 'good';
	this.rating_definitions[5] = 'awesome!';
	this.has_set_rating	= false;
	
	this.element;
	this.instance_name;
	
	this.display_rating = function(rating)
	{	
		this.element.innerHTML = '';
		base_rating = Math.floor(rating);
		for(i=0;i<5;i++)
		{
			var image = document.createElement('IMG');
					image.align = 'absmiddle';
			if (i<base_rating) image.src = this.star2;
			else if (i < rating) image.src = this.star1;
			else image.src = this.star0;
			this.element.appendChild(image);
		}
		if (this.votes)
		{
			this.element.appendChild(document.createTextNode(' ' + rating + ' ( ' + this.votes + ' votes )'));
		}
	}	
	
	this.save_rating = function(rating)
	{
		this.set_rating = rating;
		this.has_set_rating = true;
		this.display_rating(rating);
		this.save_function(rating);
	}

	this.slide_rating = function(rating)
	{
		for(i=0;i<5;i++)
		{
		if (i<rating) this.element.childNodes[i].src = this.star2;
		else 					this.element.childNodes[i].src = this.star0;			
		}		
	}

	this.reset_rating = function()
	{
		if (this.has_set_rating == true) return false;
		this.slide_rating(this.set_rating);
	}

	this.display_changeable_rating = function(current)
	{	
		if (!this.set_rating) this.set_rating = current;
		this.element.innerHTML = '';
		for(i=0;i<5;i++)
		{
			var html = '';
			html += '<img src="';
			if (i<current) html += this.star2;
			else html += this.star0;
			html += '" title="'+this.rating_definitions[i+1]+'" style="cursor:pointer"';
			html += ' onmouseover="'+this.instance_name+'.slide_rating('+(i+1)+')"';
			html += ' onclick="'+this.instance_name+'.save_rating('+(i+1)+')"';
			html +='>';
			this.element.innerHTML += html;
		}
	}		
	
//-------------	
}