﻿var cc = 0;
var cr = 0;

$(document).ready(function() {
    
    var rating = $('.perf_rating');
    
    if(rating.length) 
    { 
        var performerID = rating.attr("performerID");
        
        // build the link tags.
        cc = parseInt(rating.attr("count"));
        cr = parseInt(rating.attr("rating"));
        var tags = "<table><tr><td>" + rating.attr("text") + "&nbsp;</td><td><div id=\"curr_rating\"></div>";
        for (var i=1;i<=5;i++) { tags = tags + "<div class=\"rating\" id=\"r"+i+"\"><img src=\"/images/star.png\" alt=\"\" border=\"0\"></div>";  }
        if(cc>0) { tags = tags + "<div id=\"avg\">&nbsp;(" + (cr/cc).toFixed(1) + ")</div></td></tr></table>"; }
        
        rating.html(tags); 

        if(cc>0) { $('#curr_rating').width((cr/cc).toFixed(1)*20); } else {$('#curr_rating').width(0);}
        
        // attach click events to the tags.
        for (var i=1;i<=5;i++) 
        {
	        $('#r'+i).click(
	            function () { 
	                var rt      = this.id.substring(1);
	                var params  = '{performerID:'+ performerID +', rating:'+rt+'}';
                    var url     = '/Pages/Ajax/RatingUpdate.aspx/AddPerformerRating';
                   
                    UpdateRating(url, params, onRatingSuccess(rt), function() {});

            });
            $('#r'+i).hover(
	            function () 
	            { 
	                $('.rating').removeClass('hover');
	                var s = parseInt(this.id.substring(1));
	                for(var j=1;j<=s;j++)
	                {
	                    var nme = '#r'+j;
	                    $(nme).addClass("hover"); 
	                }
	            },
	            function () { $('.rating').removeClass('hover'); }	            
	        );   
        }    
    }
});   

function onRatingSuccess(value)
{
    $('.rating').unbind('click').unbind('mouseenter').unbind('mouseleave').removeClass('hover');
    
    cc++;
    cr = parseFloat(cr) + parseFloat(value);
    $('#avg').html("&nbsp;(" + ((cr/cc).toFixed(1)) + ")");
    $('#curr_rating').width((cr/cc).toFixed(1)*20);
}

function UpdateRating(Url, Params, onSuccess, onFail)
{
    $.ajax({
        type: "POST",
        url: Url, 
        data: Params, 
        beforeSend: function(xhr) {
            xhr.setRequestHeader("Content-type", "application/json; charset=utf-8");
            xhr.setRequestHeader("Content-length", Params.length);},
        contentType: "application/json; charset=utf-8",
        dataType: "json", 
        success: function(msg, status) {
            onSuccess;
        },
        error: function(xhr,msg,e){
            onFail;
        }
        });
}