var Video_Rating_Stars = {
	initialized : false,
	container : null,
	stars : [],
	videoID : null,

	init : function()
	{
		try
		{
			if ( Video_Rating_Stars.initialized )
				return false;
			else
				Video_Rating_Stars.initialized = true;
			
			var i;
			
			Video_Rating_Stars.container = document.getElementById('videoRatingStars');		
			for ( i=0; i<Video_Rating_Stars.container.childNodes.length; i++ )
				if ( Video_Rating_Stars.container.childNodes[i].className && Video_Rating_Stars.container.childNodes[i].className.indexOf('star') == 0 )
				{
					Video_Rating_Stars.stars.push(Video_Rating_Stars.container.childNodes[i]);
								
					Video_Rating_Stars.container.childNodes[i].setAttribute('origClassName',Video_Rating_Stars.container.childNodes[i].className);
								
					addSimpleEventListener(Video_Rating_Stars.container.childNodes[i], 'mouseover', Video_Rating_Stars.hover);
					addSimpleEventListener(Video_Rating_Stars.container.childNodes[i], 'click', Video_Rating_Stars.click);
				}
			
			addSimpleEventListener(Video_Rating_Stars.container, 'mouseout', Video_Rating_Stars.reset);
		}
		catch (e) {}
	},
	
	click : function(e)
	{
		try
		{
			if ( !e && document.all?true:false )
				e = window.event;
				
			var rating = Video_Rating_Stars.hover(e);
			if ( rating )
			{			
				dojo.xhrGet({
					url: '/videos/rate/?rating='+rating+'&videoID='+Video_Rating_Stars.videoID,
					load : function(data, xhr)
					{
						if ( data.indexOf('OK:') != 0 )
							alert(data);
						else
						{
							data = data.split(':');
							data = data[1].trim();
						
							var className = 'star';
							for ( var i=0; i<Video_Rating_Stars.stars.length; i++ )
							{
								if ( i == data )
									className = className + '_greyed';
								
								Video_Rating_Stars.stars[i].className = className;
								Video_Rating_Stars.stars[i].setAttribute('origClassName',className);
									
								removeSimpleEventListener(Video_Rating_Stars.stars[i], 'mouseover', Video_Rating_Stars.hover);
								removeSimpleEventListener(Video_Rating_Stars.stars[i], 'click', Video_Rating_Stars.click);
							}
							
							alert("Thanks for giving this video a " + data +" star rating");
						}
					},
					error: function(e)
						{ alert(e); }
				})
				return true;
			}
			else
				return false;
		}
		catch (e) { return false; }
	},
	
	hover : function(e)
	{
		try
		{
			if ( !e && document.all?true:false )
				e = window.event;
				
			var targ = e.target ? e.target : e.srcElement;
			var className = 'star';
			var tStar = false;
			for ( var i=0; i<Video_Rating_Stars.stars.length; i++ )
			{
				Video_Rating_Stars.stars[i].className = className;
				
				if ( targ == Video_Rating_Stars.stars[i] )
				{
					className = className + '_greyed';
					tStar = i + 1;
				}
			}
			
			return tStar;
		}
		catch (e) { return false; }
	},
	
	reset : function(e)
	{
		try
		{
			if ( !e && document.all?true:false )
				e = window.event;
			var targ	= e.target ? e.target : e.srcElement;
			var relTarg	= e.relatedTarget || e.fromElement
			if ( targ.className.indexOf('star') == 0 && relTarg == Video_Rating_Stars.container )
				return true;
		
			for ( var i=0; i<Video_Rating_Stars.stars.length; i++ )
				Video_Rating_Stars.stars[i].className = Video_Rating_Stars.stars[i].getAttribute('origClassName');
			
			return true;
		}
		catch (e) { return false; }
	}
}
