(function($) { jQuery.fn.innerWrap = function(u) {
	return this.each(function() {
		var w = $(u)[0], v = w;
		while (v.firstChild) v = v.firstChild;
		while (this.firstChild) v.appendChild(this.firstChild);
		this.appendChild(w);
	});
}})(jQuery);


(function($) {
	var activeTab = null;
	var defaultOptions = {
		tabClass: 'btabsTab',
		activeTabClass: 'active',
		contentClass: 'btabsContent'
	}
	var obj = null;

	$.showTab = function(tab) {
		var dts = obj.children('dt:eq('+tab+')').click();
	}

	jQuery.fn.btabs = function(options) {
		obj = this;
		var o = jQuery.extend(defaultOptions, options);

		this.addClass('btabsHeader');

		// create and append a div for the content
		var contentDiv = document.createElement('div');
		$(contentDiv).addClass(o['contentClass']);
		this.after(contentDiv);

		// hide content blocks
		this.children('dd').hide();
		// converts DTs to tabs
		this.children('dt')
			.addClass(o['tabClass'])
			.click(function() { tabClick(this); })
			.innerWrap('<div class="bg1"><div class="bg2"></div></div>');
		
		// activate the first tab
		activeTab = this.children('dt:first').addClass(o['activeTabClass']);;
		showContent(this.children('dd').html());

		function tabClick(tab) {
			if (activeTab) {
				$(activeTab).removeClass(o['activeTabClass']);
			}
			activeTab = tab;
			$(tab).addClass(o['activeTabClass']);
			showContent($(tab).next('dd').html());
		}

		function showContent(content) {
			if ($.browser.msie && $.browser.version<7) $(contentDiv).html('');
			$(contentDiv).slideUp('fast', function() {
				$(contentDiv).html(content);
				$(contentDiv).slideDown();
			});
		}
	}
})(jQuery);