jQuery.fn.rating = function( options) {
  
  var settings = {
    increment : 1, // value to increment by
    maxvalue  : 5,   // max number of stars
    curvalue  : 0    // number of selected stars
  };
  
  if(options) {
    jQuery.extend(settings, options);
  };
   
   
  var container = this;
  this.disabled = (settings.disabled) ? settings.disabled : false;
  settings.increment = (settings.increment < .75) ? .5 : 1;
  var s = 0;
  for(var i= 0; i <= settings.maxvalue ; i++){
      if (i == 0) {
      jQuery(container).empty();
    } else {
      var jQuerydiv = jQuery('<div class="star"></div>')
        .append('<a href="javascript:void(0)" onclick="jQuery(\'#e_class\').attr({\'value\':'+i*2+'});jQuery(\'#rating_reset\').css({visibility:\'visible\'})">'+i+'</a>')
        .appendTo(container);
      if (settings.increment == .5) {
        if (s%2) {
          jQuerydiv.addClass('star-left');
        } else {
          jQuerydiv.addClass('star-right');
        }
      }
   }
    i=i-1+settings.increment;
    s++;
  }


    var stars = jQuery(container).children('.star');
  if (! this.disabled){  
      jQuery(this).addClass('rating_enabled');
    stars
      .mouseover(function(){
        if (!stars.parent().hasClass('rating_enabled')) return;
        event.drain();
        event.fill(this);
      })
      .mouseout(function(){
        if (!stars.parent().hasClass('rating_enabled')) return;        
        event.drain();
        event.reset();
      })
      .focus(function(){
        if (!stars.parent().hasClass('rating_enabled')) return;        
        event.drain();
        event.fill(this);
      })
      .blur(function(){
        if (!stars.parent().hasClass('rating_enabled')) return;        
        event.drain();
        event.reset();
      });

    stars.click(function(){
        settings.curvalue = (stars.index(this) * settings.increment) + settings.increment; 
         event.reset();
        jQuery('#slut_search_price').attr('value', settings.curvalue);
      return true;
        
    });
   } 
  var event = {
    fill: function(el){ // fill to the current mouse position.
      var index = stars.index(el) + 1;
      stars
        .children('a').css('width', '100%').end()
        .slice(0,index).addClass('hover').end();
    },
    drain: function() { // drain all the stars.
      stars
        .filter('.on').removeClass('on').end()
        .filter('.hover').removeClass('hover').end();
    },
    reset: function(){ // Reset the stars to the default index.
      stars.slice(0,settings.curvalue / settings.increment).addClass('on').end();
    }
  };    
  event.reset();
  
  return(this);  

};
