(function ($) {
Drupal.behaviors.rate_fivestar = {
attach: function(context) {
$('.rate-widget-fivestar ul:not(.rate-fivestar-processed)', context).addClass('rate-fivestar-processed').each(function () {
var $this = $(this);
// Save the current vote status
var status = $('li a.rate-fivestar-btn-filled', $this).length;
$this.children().hover(
function()
{
// Append rate-fivestar-btn-filled class to all the a-elements except the a-elements after the hovered element
var $this = $(this);
$this.siblings().children('a').addClass('rate-fivestar-btn-filled').removeClass('rate-fivestar-btn-empty');
$this.children('a').addClass('rate-fivestar-btn-filled').removeClass('rate-fivestar-btn-empty');
$this.nextAll().children('a').removeClass('rate-fivestar-btn-filled').addClass('rate-fivestar-btn-empty');
},
function()
{
// Restore the current vote status
$(this).parent().children().children('a').removeClass('rate-fivestar-btn-filled').addClass('rate-fivestar-btn-empty');
$(this).parent().children().slice(0,status).children('a').removeClass('rate-fivestar-btn-empty').addClass('rate-fivestar-btn-filled');
}
);
});
}
};
})(jQuery);