var ratings = Array();

document.observe('dom:loaded', function()
{
	if($('ratingContainer'))
	{
		var ratingValue = new Element('input');
		ratingValue.id = 'rating';
		ratingValue.name = 'rating';
		ratingValue.type = 'hidden';
		ratingValue.value = defaultRating;
		
		var ratingSelector = new Element('div');
		ratingSelector.id = 'ratingSelector';
		ratingSelector.addClassName('rating');

		var ratingBar = new Element('div');
		ratingBar.id = 'ratingBar';
		ratingBar.addClassName('ratingBar');
		ratingBar.style.width = (defaultRating * 32) + 'px'; 
	
		var ratingText = new Element('div');
		ratingText.id = 'ratingSelectorText';
			
		ratingSelector.update(ratingBar);
		$('ratingContainer').update(ratingSelector);
		$('ratingContainer').insert({bottom: ratingText});
		$('ratingContainer').insert({after: ratingValue});
			
		setRatingText(defaultRating);
	
		$('ratingSelector').observe('mousemove', function(e)
		{
			if (e.pageX || e.pageY) 	
			{
				pos = e.pageX;
			}
			else if(e.clientX || e.clientY) 	
			{
				pos = e.clientX + document.body.scrollLeft + document.documentElement.scrollLeft; 
			}
	
			pos -= $('ratingSelector').getAbsolutePosition()[0];
		
			rating = Math.floor(pos / 32) + 1;
			
			pos = rating * 32;
					
			$('ratingBar').style.width = pos + 'px';
	
			setRatingText(rating);
	
			if(rating == defaultRating)
			{
				$('ratingSelectorText').insert(' - selected');
			}
		
		});
	
		$('ratingSelector').observe('mouseout', function(e)
		{
			var tag = (e.relatedTarget) ? e.relatedTarget : e.toElement;
	
			if(tag.id != 'ratingSelector' && tag.id != 'ratingBar')
			{
				$('ratingBar').style.width = (defaultRating * 32) + 'px';
			}
	
			setRatingText(defaultRating);
		});
	
		$('ratingSelector').observe('click', function(e)
		{
			var posx = 0;
			
			if (e.pageX || e.pageY) 	
			{
				pos = e.pageX;
			}
			else if(e.clientX || e.clientY) 	
			{
				pos = e.clientX + document.body.scrollLeft + document.documentElement.scrollLeft; 
			}
	
			pos -= $('ratingSelector').getAbsolutePosition()[0];
	
			defaultRating = Math.floor(pos / 32) + 1;
			
			$('rating').value = defaultRating;
			setRatingText(defaultRating);
			$('ratingSelectorText').insert(' - selected'); // TODO: Translate somehow.
		});
	}
});

function setRatingText(rating)
{
	text = ratings[rating];
	$('ratingSelectorText').update(text);
}