/**
 * @id $Id: jquery.ppTabs.js 137 2010-09-10 11:46:18Z stefan.schult $
 */

(function($) {
	$.fn.ppTabs = function(options) {
		var defaults = {
			items: '>div h2',
			tabs: '>div',
			content:'',
			prefix: 'ppTabs-'
		};

		function clickButton($tabs, step) {
			var next = $tabs.tabs("option", "selected") + step;
			var length = $tabs.tabs("length") - 1;
			if (next < 0) {
				next = length;
			}
			if (next > length) {
				next = 0;
			}
			$tabs.tabs("select", next);
		}

		function tabChosen(classNames, selector) {
			var c = classNames.split(" ");
			var p = $.inArrayStartsWith(selector, c);
			if (p != -1) {
				return c[p].substr(selector.length);
			}
			return 0;
		}

		function initTabList(container, items) {

			var $tabs = $(container);
			var ul = $('<ul />');
			items.each(function(i) {
				ul.append($('<li><a href="#' + this.id + '"><span class="icon ' + $('h2', this)[0].className + '" >' + $(this).children('h2').text() + '</span>' + '</a></li>'));
			});
			var div = $('<div />');
			div.append(ul);
			var lastItem = $('>div:first', container).before(div);
			$tabs.tabs({
				fx: {opacity:'toggle', duration:100},
				idPrefix: 'ui-tabs-primary'
			});
			return $tabs;
		}

		var $allLength = this.length;
		return this.each(function(i) {
			var idPrefix = defaults.prefix + ((this.length == 1) ? '' : (i + 1) + '-');
			var $this = initTabList($(this), $(defaults.items, this).parent().ppUnifiedId(idPrefix));
			$this.tabs("option", "selected", tabChosen(this.className, "tab-chosen-"));
		});
	};

})(jQuery);

