var	rating_imgs		=new	Array	('none', 'vote', 'empty', 'half', 'full');
var	rating_imgs_cache	=new	Array	();

for (	i	=0;
	i	<rating_imgs.length;
	i	++
)
{
	var	img	=new	Image	();
	img.src	='template/images/star_'	+rating_imgs[i]	+'.gif';
	rating_imgs_cache[i]	=img;
}

var	rating	=
{
		
	slide:	function	(obj_id, rating, vote)
	{
		var	o	=document.getElementById	(obj_id);
		var	imgs	=o.getElementsByTagName	('img');
		var	c	=imgs.length;
		rating		=rating	*1.0;


		var	i;
		for (	i	=0;
			i	<c;
			i	++
		)
		{
			var	img	=imgs[i];

			if (rating	==-1)
			{
				img.src	='template/images/star_none.gif';
			}
			else
			if (vote)
			{
				if (i	<=rating)
				{
					img.src	='template/images/star_vote.gif';
				}
				else
				{
					img.src	='template/images/star_empty.gif';
				}
			}
			else
			if (i	==rating	+0.5)
			{
				img.src	='template/images/star_half.gif';
			}
			else
			if (i	<=rating)
			{
				img.src	='template/images/star_full.gif';
			}
			else
			{
				img.src	='template/images/star_empty.gif';
			}
		}
	}

	,voter:	function	(obj_id, url, vote)
	{
		var	o	=document.getElementById	(obj_id);
		o.onmouseout	=null;
		var	imgs	=o.getElementsByTagName	('img');
		var	c	=imgs.length;
		
		var	i;
		for (	i	=0;
			i	<c;
			i	++
		)
		{
			var	img	=imgs[i];

			img.onclick		=null;
			img.onmouseover		=null;
			img.style.cursor	='';
		}

		if (window.XMLHttpRequest)
		{
			xml_http	=new	XMLHttpRequest	();
		}
		else
		if (window.ActiveXObject)
		{
			xml_http	=new	ActiveXObject	("Microsoft.XMLHTTP");
		}
		else
		{
			return	false;
		}
		
		xml_http.open	('GET', url, true);
		xml_http.onreadystatechange	=function	()
		{
			if (xml_http.readyState	==4)
			{
				rating.voted	(obj_id, xml_http.responseText);
			}
		}
		
		xml_http.send	(null);
	}
	
	,voted:	function	(obj_id, answer)
	{
		if (answer.substr(0,3)	=='OK!')
		{
			rating.slide(obj_id, answer.substr(3), false);
		}
		else
		{
			window.alert	(answer);
		}
	}
}

