//////////////////////////////////////////////////////
//
// Submit a rating for an item using Ajax
//
//////////////////////////////////////////////////////

function rating_set(num, item_id, module)
{
	var params = 'i='+item_id+'&m='+module+'&r='+num;
	new Ajax.Request('/ratings/rate.php', {method: 'get', parameters: params, onSuccess: rating_set_success, onFailure: rating_set_fail});
}
function rating_set_success(transport)
{
	if (!transport.responseText.match(/^ERROR\:/)) 
	{
		data = eval('('+transport.responseText+')');
		eval('rating_'+data.module+'_'+data.item_id+' = '+data.avg);
		rating_reload(data.item_id, data.module);
	}
	else 
	{
		alert(transport.responseText.substring(6));
	}
}
function rating_set_fail(transport)
{
	alert("Your rating could not be saved due to an error.");
}

//////////////////////////////////////////////////////
//
// Update entire rating box with Ajax
// Used after rating submitted
//
//////////////////////////////////////////////////////

function rating_reload(item_id, module)
{
	var params = 'i='+item_id+'&m='+module;
	new Ajax.Updater('rating_box_'+module+'_'+item_id, '/ratings/update.php', {method: 'get', parameters: params, onSuccess: rating_reload_success, onFailure: rating_reload_fail});
}
function rating_reload_success(transport) {}
function rating_reload_fail(transport) {}

//////////////////////////////////////////////////////
//
// Show a particular star rating dynamically
// Used for mouseover during rating process
//
//////////////////////////////////////////////////////

function show_rating(num, item_id, module)
{
	for (i=1; i <= 5; i++)
	{
		star_id = "rating_"+module+"_"+item_id+"_"+i;
		if (i <= num) $(star_id).addClassName('on');
		else $(star_id).removeClassName('on');
	}
}