(function($){
	$.fn.draaimolen = function(options)
	{
	  var opts = $.extend({}, $.fn.draaimolen.defaults, options);
	  
    return this.each(function() {  
      var timer;
      var obj = jQuery(this);
      
      obj.find('ul:first').addClass('images').find('li').hide();
      obj.find('ul:last').addClass('titles');
      obj.find('.titles li:first').attr('id', 'first');
      obj.find('.titles li:last').attr('id', 'last');  
      obj.find('.titles li').wrapInner('<div></div>');
      obj.find('.hide').show();
      
      obj.bind('draaimolen_loop', function(){        
				var curr = obj.find(".images li:visible");
				var next = curr.next("li");
				var indexcurr = curr.prevAll("li").size();
				var indexnext = next.prevAll("li").size();
        
				if (next.size() == 0) 
					next = curr.siblings('li').eq(0);
								
				curr.fadeOut('slow', function(){
					obj.find("ul.titles li").eq(indexcurr).removeClass('active');
					obj.find("ul.titles li").eq(indexnext).addClass('active');
					next.fadeIn('slow');
				});
				
				timer = setTimeout(function(){obj.trigger('draaimolen_loop')}, opts.interval);
			});
                  
      obj.find(".images li").each(function(index)
      {
        jQuery(this).hover(function()
        {
          clearTimeout(timer);
          obj.find(".images li").stop(false, true);                    
        }, 
        function()
        {
          timer = setTimeout(function(){obj.trigger('draaimolen_loop')}, 20);
        });
        
        jQuery(this).click(function(){
          var indexcurr = jQuery(this).prevAll("li").size();
          obj.find("ul.titles li").eq(indexcurr).find("a:first").each(function(){location.href=jQuery(this).attr('href');});
        });
        
        if (index == 0) {
          jQuery(this).show();
        }
        else {
          jQuery(this).hide();
        }
      }); 
      
      obj.find(".titles li").click(function(){
        jQuery(this).find("a:first").each(function(){location.href=jQuery(this).attr('href');});
      });
      
      obj.find(".titles li").hover(function(sender){
				clearTimeout(timer);
        obj.find(".images li").stop(false, true);								
				var indexcurr = jQuery(this).prevAll("li").size();
				obj.find("ul.images li").hide();
				obj.find("ul.images li").eq(indexcurr).show();
				obj.find("ul.titles li").removeClass("active");
				jQuery(this).addClass("active");
			}, function(){
				timer = setTimeout(function(){obj.trigger('draaimolen_loop')}, 20);
			});
      
      obj.trigger('draaimolen_loop');      
    });
	};
	
	$.fn.draaimolen.defaults = { 
	  interval: 3500
	};
})(jQuery);