/*
jquery.semantictabs.js
Creates semantic tabs from nested divs
Chris Yates - see http://plugins.jquery.com/project/semantictabs
Usage:
$("#mycontainer").semantictabs({
  panel:'mypanelclass',         //-- Selector of individual panel body
  head:'headelement',           //-- Selector of element containing panel header
  active:':first',              //-- Which panel to activate by default
  activate:':eq(2)'             //-- Argument used to activate panel programmatically
});
*/
$.fn.semantictabs = function(passedArgsObj) {
  	/* defaults */
  	args = {panel:'panel', head:'h2', active:':first', activate:false};

  	/* override the defaults if necessary */
  	for (var argName in passedArgsObj) {
    	args[argName] = passedArgsObj[argName];
  	}
  
  	// Allow activation of specific tab, by index
	if (args.activate) {
	  	return this.each(function() {
	    	var container = $(this);
			container.find("." + args.panel).hide();
			container.find("ul.tabs li").removeClass("active");
			container.find("div." + args.panel + ":eq(" + args.activate + ")").show();
			container.find("ul.tabs li:eq(" + args.activate + ")").addClass("active");      
	  	});
	} 
	else {
    	return this.each(function() {
	  		// Load behavior
	  		var container = $(this);
	  		container.parent().find("." + args.panel).hide();
	  		container.find("div." + args.panel + args.active).show();
	  		container.prepend("<ul class=\"tabs semtabs\"></ul>");
	  		container.find("." + args.panel).each( function() {
	  		  	var title = $(this).find(args.head).text();
				var id = $(this).find(args.head).attr('id');
	  		  	this.title = title;
	  			container.find("ul.tabs").append("<li id=\""+id+"\"><a href=\"javascript:void(0);\"><span>"+title+"</span></a></li>");
				$(this).find(args.head).hide(); // hide the original h3
	  		});
	  		container.find("ul li" + args.active).addClass("active");
	  		// Tab click behavior
	  		container.find("ul.tabs li").click(function() {
	  			container.find("." + args.panel).hide();
	  			container.find("ul.tabs li").removeClass("active");
	  			container.find("div." + args.panel + "[title='"+$(this).text()+"']").show();
	  			$(this).addClass("active");
				setTimeout(function() {
					if($.browser.msie &&  $.browser.version < 7) {
						container.find("ul.tabs li").each(function() {
							$(this).hide().show();
						});
					}
				}, 100);
	  		});
	  		container.find("#remtabs").click(function() {
	  			container.find("ul.tabs").remove();
	  			container.find("." + args.container + " ." + args.panel).show();
	  			container.find("#remtabs").remove();
	  		});
	  	});
	}	
};