Ratings = function(){        	
	var NUMBER_OF_STARS = 5;	
	return {

		init: function()
		{
 	      Ratings.init_rating();
    	  //JQuery
    	  $('div.rating/img').bind('click', Ratings.submitRating); 			
		},
		
		submitRating: function(evt)
        {
            var tmp = evt.target.getAttribute('id').substr(5);
            var videoId = tmp.substr(0, tmp.indexOf('_'));
            var starNbr = tmp.substr(tmp.indexOf('_')+1);
            
            //Submit the rating
            var url = "";
            var loc = window.location.href;
            if (loc.indexOf("frontend_dev") > 0){
            	url = "/frontend_dev.php";
            }
             $.get(url + "/videoadmin/submitRating",
               { videoid: videoId, rating: starNbr},
               function(data){
                 javascript:window.parent.Message.msg('',data);
				 //Now request the new average rating for htis video	
                 $.get(url + "/videoadmin/getVideoAvgRating",
	               { videoid: videoId},
	               function(data){
	                 //Update the stars on screen with the new rating
	                 Ratings.updateRating(videoId, data);
	               }
             	 );
               }
             );
             
             urchinTracker('/video/rated');
        },
        
        init_rating: function()
		{
		    var ratings = document.getElementsByTagName('div');
		    for (var i = 0; i < ratings.length; i++)
		    {
		        if (ratings[i].className != 'rating')
		            continue;
		            
		        var rating = ratings[i].firstChild.nodeValue;
		        ratings[i].removeChild(ratings[i].firstChild);
		        if (rating > NUMBER_OF_STARS || rating < 0)
		            continue;
		        for (var j = 0; j < NUMBER_OF_STARS; j++)
		        {
		            var star = document.createElement('img');
		            if (rating >= 1)
		            {
		                star.setAttribute('src', '/images/icons/stars/rating_on.gif');
		                star.className = 'on';
		                rating--;
		            }
		            else if(rating == 0.5)
		            {
		                star.setAttribute('src', '/images/icons/stars/rating_half.gif');
		                star.className = 'half';
		                rating = 0;
		            }
		            else
		            {
		                star.setAttribute('src', '/images/icons/stars/rating_off.gif');
		                star.className = 'off';
		            }
		            var widgetId = ratings[i].getAttribute('id').substr(7);
		            star.setAttribute('id', 'star_'+widgetId+'_'+j);
		            star.onmouseover = new Function("evt", "Ratings.displayHover("+widgetId+", "+j+");");
		            star.onmouseout = new Function("evt", "Ratings.displayNormal("+widgetId+", "+j+");");
		            ratings[i].appendChild(star);
		        } 
		    }
		},
		
		updateRating: function(videoId, rating)
		{
		    for (var i = 0; i < NUMBER_OF_STARS ; i++)
		    {
		        var star = document.getElementById('star_'+videoId+'_'+i)
		        if (rating >= 1)
	            {
	                star.setAttribute('src', '/images/icons/stars/rating_on.gif');
	                star.className = 'on';
	                rating--;
	            }
	            else if(rating == 0.5)
	            {
	                star.setAttribute('src', '/images/icons/stars/rating_half.gif');
	                star.className = 'half';
	                rating = 0;
	            }
	            else
	            {
	                star.setAttribute('src', '/images/icons/stars/rating_off.gif');
	                star.className = 'off';
	            }
		        
		    }
		},

		displayHover: function(ratingId, star)
		{
		    for (var i = 0; i <= star; i++)
		    {
		        document.getElementById('star_'+ratingId+'_'+i).setAttribute('src', '/images/icons/stars/rating_over.gif');
		    }
		},

		displayNormal: function(ratingId, star)
		{
		    for (var i = 0; i <= star; i++)
		    {
		        var status = document.getElementById('star_'+ratingId+'_'+i).className;
		        document.getElementById('star_'+ratingId+'_'+i).setAttribute('src', '/images/icons/stars/rating_'+status+'.gif');
		    }
		}
	}
}();               
$(document).ready(Ratings.init);   
