(function($){
 
  $.fn.morerer = function(options){
 
    var defaults = {
      items: 'div.item',
      itemcount: 5,
      itemincrement: 5,
      morelink: 'more',
      showcount: true
    };
 
    var options = $.extend(defaults,options);
  
    return this.each(function(){
      var $this = $(this);
      var $items = $(options.items,$this);
      var _itemcount = options.itemcount;
      var $morelink = $('<p><a/></p>')
                        .addClass(options.morelink)
                        .find('a')
                          .attr('href','#')
                          .attr('title','More')
                          .text('More')
                        .end()                        
						
      function init(){             
        if($items.length > _itemcount){
		  $morelink.appendTo($this);
		  for (var i = options.itemcount; i < $items.length; i++) {
			$($items[i]).hide();          
		  }
		  updateCount(true);
        }
      }
      
      function updateCount(start){
        if(options.showcount){
			if(start)
			  $('<span/>').addClass('count').appendTo($this);			
			$('span.count',$this).text(_itemcount + '/' + $items.length);          
        }
      }
      
      init();
      
      // events
      $morelink.click(function(event){
        if(event != undefined){
          for (var i = _itemcount; i < _itemcount + options.itemincrement && i < $items.length; i++) {   
            $($items[i]).fadeIn();      
          }
          _itemcount += options.itemincrement;
          updateCount();
          if(_itemcount >= $items.length){
            $morelink.hide();
            $('span.count',$this).hide();
          }
        }
        return false;
      }); 
    }); 
  }; 
})(jQuery);
