(function($){ 
     $.fn.extend({  
         tabnavi: function(options) {
			$.fn.tabnavi.defaults = {
					tab_path: 'li>a',
					tab_class: 'selected',
					content_path: '.tabs'
			};
			
			// build main options before element iteration
			var opts = $.extend({}, $.fn.tabnavi.defaults, options);
            
			return this.each(function() {
				$this = $(this);
				
				$(opts.content_path).hide();
				
				$.each($this.find(opts.tab_path), function(i, el){
					$(el).data('tab_nr', i);
					$(this).click(function(e){
						change($(this), $(this).data('tab_nr'), opts);
						return void(0);
					});
					
					if ($(el).hasClass(opts.tab_class)) {
						var content = $('body').find(opts.content_path)[i];
						if ($(content)) $(content).show();
					}
					
				});
				
				function change(el, nr, opts){
					$(opts.content_path).hide();
					var content = $('body').find(opts.content_path)[nr];
					if ($(content)) $(content).show();
					
					el.parents('ul').find(opts.tab_path).removeClass(opts.tab_class);
					el.addClass(opts.tab_class);
				}
				
            });
        } 
    }); 
})(jQuery);
