(function($) {	$.fn.tablist = function(){		var c = this;		this.list = $(this);		this.labels = null;		this.currentTab = null;		var fadeDuration = 500;				this.generateLables = function(){			var getTitle = function(element){ for(var i = 1; i <= 6;i++){ var h = 'h'+i; var headings = $(element).find(h); if(headings.size()>0){ return headings.eq(0).text(); }} return ''; }						c.labels = $('<ul class="tablabels"></ul>').insertBefore(c.list);			var nr = 0;			$(c.list).find('>li').each(function(){				nr++;				$('<li class="tabnr_'+nr+'"><label for="'+$(this).attr('id')+'">'+getTitle($(this))+'</label></li>').appendTo(c.labels);			});		}		this.attachEvents = function(){			$(c.labels).find('>li label').click(function(){				showTab($(this).attr('for'));			});		}		var showFirst = function(){ $(c.labels).find('label').eq(0).click(); }								var showTab = function(tabId){			activateLabel(tabId);			if(c.currentTab != null){				$(c.list).find('>li').not('#'+c.currentTab).css('z-index', '100').hide();				$(c.list).find('#'+c.currentTab).css('z-index', '101').fadeOut(fadeDuration);				$(c.list).find('#'+tabId).css('z-index', '102').fadeIn(fadeDuration);			}			else{				$(c.list).find('>li').not('#'+tabId).hide();				}			c.currentTab = tabId;		}				var activateLabel = function(tabId){			$('ul.tablabels > li').removeClass('active');			$(c.labels).find('>li label').each(function(){				if($(this).attr('for') == tabId){					$(this).parents('ul.tablabels > li').addClass('active');				}			});		}				this.getLabels = function(){			return c.labels;		}						this.generateLables();		this.attachEvents(); // labels must be generated, custom labels must be available in labels variable		showFirst(); // requires events to be set.		return this;	}})( jQuery );
