// JavaScript Document
YAHOO.namespace('ratings.dom');

YAHOO.ratings.dom.init = function()
{
	YAHOO.util.Event.addListener(YAHOO.util.Dom.getElementsByClassName('ratingplus','img'), 'click', rating_change);
	YAHOO.util.Event.addListener(YAHOO.util.Dom.getElementsByClassName('ratingminus','img'), 'click', rating_change);

	function rating_change_done(status, jsonData)
	{
		if (status == 200)
		{
			var id = jsonData.id;
			var val = jsonData.rating;
			var text = document.getElementById('rating_' + id);
			if (text)
			{
				text.innerHTML = val;
			}

			var pbtn = document.getElementById('rplus_' + id);
			var mbtn = document.getElementById('rminus_' + id);

			if (jsonData.user_rating > 0)
			{
				YAHOO.util.Dom.addClass(pbtn, 'rzero');
				pbtn.src = '/images/thumb_up_selected.gif';
			}
			else
			{
				YAHOO.util.Dom.removeClass(pbtn, 'rzero');
				pbtn.src = '/images/thumb_up_not_selected.gif';
			}

			if (jsonData.user_rating < 0)
			{
				YAHOO.util.Dom.addClass(mbtn, 'rzero');
				mbtn.src = '/images/thumb_down_selected.gif';
			}
			else
			{
				YAHOO.util.Dom.removeClass(mbtn, 'rzero');
				mbtn.src = '/images/thumb_down_not_selected.gif';
			}
		}
	}

	function rating_change(e)
	{
		YAHOO.util.Event.preventDefault(e);

		if (YAHOO.util.Dom.hasClass(this, 'rzero'))
			action = 'rzero';
		else if (YAHOO.util.Dom.hasClass(this, 'ratingplus'))
			action = 'rplus';
		else if (YAHOO.util.Dom.hasClass(this, 'ratingminus'))
			action = 'rminus';
		else
			return;

		if (YAHOO.util.Dom.hasClass(this, 'rnews'))
			ctrl = 'news';
		else if (YAHOO.util.Dom.hasClass(this, 'rforum'))
			ctrl = 'forum';
		else
			return;

		var s = this.getAttribute('id');
		var pos = s.indexOf('_');
		if (pos > 0)
		{
			var id = s.substr(pos + 1);
			var url = '/' + ctrl + '/' + action + '/' + id;
			run_ajax(url, rating_change_done);
		}
	}
}

// run this when the window is loaded
YAHOO.util.Event.addListener(window, 'load', YAHOO.ratings.dom.init);

