$(function() {
    $(".rating_control").livequery(function() {
        var field = $(this).siblings(".rating_control_field");
        var display = $(this).siblings(".rating_control_display").get(0);
        var help_text = $(this).siblings(".help_text").get(0);

        $(this).parent().hover(function() {
            $("#help").html($(help_text).html());
        }, function() {
            $("#help").html("")
        });

        var set_field_display_value = function(evt, ui) {
            $(field).val(ui.value);

            if (ui.value == 0) {
                $(display).addClass("no_rating");
                $(display).html("No rating");
            } else {
                $(display).removeClass("no_rating");
                $(display).html(ui.value);
            }

            var sum = 0;
            var count = 0;
            $(".ratings .rating_control").each(function() {
                var value = $(this).slider("value");
                if (value != 0 && value != undefined && value != null) {
                    sum += parseInt(value);
                    count += 1;
                }
            });

            if (count > 0) {
                var average = Math.round(sum / count);
                $("#ratings_average").html(average);
            } else {
                $("#ratings_average").html("-");
            }
        };

        $(this).slider({
            orientation: 'horizontal',
            range: "min",
            value: $(field).val(),
            min: 0,
            max: 100,
            step: 10,
            slide: set_field_display_value,
            change: set_field_display_value
        });
    });

});