function submitRating(evt)
{
	var type = $('type').value;
    var tmp = Event.element(evt).getAttribute('id');
    var rating = tmp.split('[')[1].substr(0,1);
    var starNbr = tmp.substr(tmp.indexOf('_')+1);
	if (type == "topic")
	{
		var the_id = topic_id;
	}
	else if (type == "presentation")
	{
		var the_id = pres_id;
	}
    new Ajax.Request('ajax_receiver.php', {
      method: 'post',
      parameters: {action: 'submitRating', rating: rating, id: the_id, type: type},
      onSuccess: function(transport) {
          //alert(transport.responseText);
		  rating_obj = eval( '(' + transport.responseText + ')' );
		  old_rating = rating_obj.rating;
		  avg_rating = rating_obj.avg_rating;
		  showUserRating(old_rating,"on");
		  recalcAverage(avg_rating);
	}
	});
}

function displayHover(sender_offset)
{
	clearUserRating();
	showUserRating(sender_offset,"over");
}

function displayNormal(sender)
{
	// my_id = this.getAttribute('id').split('[')[1].substr(0,1);
	
	clearUserRating();
	showUserRating(old_rating,"on");
}

function clearUserRating()
{
	for (var i = 1; i <= 5; i++)
	{
		id_string = "stars[" + i + "]";
		$(id_string).src = 'images/rating_off.gif';
	}
}

function showUserRating(rating,type)
{
	//alert("showUserRating:" + rating);
	
	for (var i = rating; i >= 1; i--)
	{
		id_string = "stars[" + i + "]";
		if ($(id_string)) // this should only happen if this person can't vote on something.
		{
			$(id_string).src = 'images/rating_'+type+'.gif';
		}
	}
}

function clearAverageRating()
{
	for (var i = 1; i <= 5; i++)
	{
		id_string = "avg_stars[" + i + "]";
		$(id_string).src = 'images/rating_off.gif';
	}
}

function recalcAverage(avg_rating)
{
	clearAverageRating();
	// against load_average
	var test_rating = Math.ceil(avg_rating);
	for (var i=test_rating; i >= 1; i--) {
		var id_string = "avg_stars["+i+"]";
		
		if (avg_rating < i && avg_rating > (i-1))
		{
			// half star
			$(id_string).src = 'images/rating_half.gif';
		}
		else
		{
			// whole star
			$(id_string).src = 'images/rating_on.gif';
		}
	}
}

function prototypeInit()
{
    // init_rating();
    $$('.rating').each(function(n){
		Event.observe(n, 'click', submitRating);
		Event.observe(n, 'mouseout', displayNormal);
	});

	showUserRating(old_rating,"on");
    recalcAverage(load_average);
}

Event.observe(window,"load",prototypeInit);
