$(document).ready(function(){
    init_rating();
});
var NUMBER_OF_STARS = 10;

function init_rating()
{


    $('div.rating/img').bind('click', submitRating)



    var ratings = document.getElementsByTagName('div');

    for (var i = 0; i < ratings.length; i++)
    {
       
        if (!$(ratings[i]).hasClass('rating') || $(ratings[i]).hasClass('worked'))
            continue;

       
        $(ratings[i]).addClass('worked');
       
        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', 'http://ipdbx.com/themes/default/images/stars/rating_on.gif');
                star.className = 'on';
                rating--;
            }
            else if(rating == 0.5)
            {
                star.setAttribute('src', 'http://ipdbx.com/themes/default/images/stars/rating_half.gif');
                star.className = 'half';
                rating = 0;
            }
            else
            {
                star.setAttribute('src', 'http://ipdbx.com/themes/default/images/stars/rating_off.gif');
                star.className = 'off';
            }
            var widgetId = ratings[i].getAttribute('id').substr(7);
            star.setAttribute('id', 'star_'+widgetId+'_'+j);
            if(!$(ratings[i]).hasClass('off'))
            {
               
                star.onmouseover = new Function("evt", "displayHover("+widgetId+", "+j+");");
                star.onmouseout = new Function("evt", "displayNormal("+widgetId+", "+j+");");
                 
            }
            ratings[i].appendChild(star);
        }
    }


    
}

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

function displayNormal(ratingId, star)
{
    for (var i = 0; i <= star; i++)
    {
        var status = document.getElementById('star_'+ratingId+'_'+i).className;
        document.getElementById('star_'+ratingId+'_'+i).setAttribute('src', 'http://ipdbx.com/themes/default/images/stars/rating_'+status+'.gif');
    }
}

function submitRating(evt)
{
    var tmp = evt.target.getAttribute('id').substr(5);
    var widgetId = tmp.substr(0, tmp.indexOf('_'));
    var starNbr = tmp.substr(tmp.indexOf('_')+1);
    var rating =  $("#rating_"+ widgetId)
    var rtype = '';
    if(rating.hasClass('film')) {
        rtype = 'film';
    }else{
        rtype = 'people';
    }

    $.post("http://ipdbx.com/?r=rating/poll",
    {
        ratingID: widgetId,
        value: starNbr,
        type: rtype
    },
    function(data){

        if(data.error == true)
        {
            
        }
        else
        {
            $(".rating-panel").html(data.text);
            rating.removeClass('worked');
            rating.addClass('off');     
            $('div.rating/img').unbind('click', submitRating)
            init_rating();
        }
            
    }, "json"
    );
}
