$.Nokia.Tabs = function(options) {
	var self = this;
	var settings = $.extend({
		holder: null,
		prefix: "tab-",
		openCallback: function() {},
		numTabs: 0
	}, options);
	
	if(settings.holder != null) {
		// init tabs
		var tabHeadings = settings.holder.find("ul.tabs li:not(.ignore)");
		var tabContent = settings.holder.find("div.tab-content");
		
		settings.numTabs = tabHeadings.length;

		if(tabHeadings.length === tabContent.length) {
			$(tabHeadings.get(0)).addClass("on");
			tabContent.hide();
			$(tabContent.get(0)).show();
			//self.openTab();
			
			tabHeadings.each(function(index, itm) {
				itm.id = settings.prefix + index;
			});
			
			tabHeadings.click(function(e) {
			   self.openTab(e);
			});
			
		} else {
			throw new Error("Number of tab headings does not match number of content areas");	
		}
	}
	
	this.openTab = function(e) {
		e.preventDefault(e);		
		
		var $target = $(e.target);
		tabHeadings.removeClass("on");
		
		var $li = $target.parents("li");
		$li.addClass("on");
		var whichTab = $li.attr("id").replace(settings.prefix, "");
		
		tabContent.hide();
		$(tabContent.get(whichTab)).show();
		settings.openCallback(e);
	}
}