jQuery.fn.jTabs = function(options){
	
	//Defaults
	var options = jQuery.extend({
		unique_id: '',
		tabs_total: 1,
		tab_open: 0,
		tab_width: 896,
		tab_height: 200
	},options);
	
	return this.each(function(){
		
		// set options
		options.unique_id = jQuery(this).attr('id');
		options.tabs_total = jQuery(this).children('li').length;
		
		// Grab top level Li's
		var topTabs = jQuery(this).children('li');

		// Setup Arrays
		var tabContents = new Array();
		var tabText = new Array();
		

		//loop through content uls and store in array then remove
		topTabs.each(function(){
			var myC = jQuery(this).children('ul');
			var myLi = jQuery(this).children('ul').children('li');
			tabContents.push(myLi);
			myC.remove();
		});
		
		// loop through lis removing title text and store in array 
		topTabs.each(function(){
			var myText = jQuery(this).text();
			tabText.push(myText);
			jQuery(this).remove();
		});
		
		// Create Tabs
		var jTabsList = jQuery('<ul class="jTabs" id="jTabs'+options.unique_id+'"></ul>');
		jTabsList.css('width',options.tab_width);
		jQuery(this).before(jTabsList);

	
		for(var i=0; i<tabText.length; i++){
			if(i == options.tab_open){
				jTabsList.append(jQuery('<li class="selected_tab"><a href="#jTabContents'+options.unique_id+'">'+tabText[i]+'</a></li>'));
			}else{
				jTabsList.append(jQuery('<li><a href="#jTabContents'+options.unique_id+'">'+tabText[i]+'</a></li>'));			
			}
		}
		
		// Create contents
		var jTabsContent = jQuery('<ul class="jTabsContent" id="jTabContents'+options.unique_id+'"></ul>');
		jTabsList.after(jTabsContent);
		
		var current_height;
		var combined_height = 0;
		
		for(var i=0; i<tabContents.length; i++){
			jTabsContent.append(tabContents[i]);
			current_height = jTabsContent.height() - combined_height;
			if(current_height > options.tab_height){
				options.tab_height = current_height;
			}
			combined_height+=current_height;

		}
		
		
		
		for(var i=0; i<tabContents.length; i++){
			if(i != options.tab_open){
				tabContents[i].hide();
			}		
		}
		
		
		
		
		var newContentsId = '#jTabContents'+options.unique_id;
		var tabHeight = jTabsList.height();
		jQuery(newContentsId).css({
				height: options.tab_height+tabHeight,
				width: options.tab_width
			});		
		
		var newTabContent = jQuery(newContentsId).children('li');
		newTabContent.each(function(){
			jQuery(this).css({
				height: options.tab_height,
				width: options.tab_width
			});
		});		


		var newTabsId = '#jTabs'+options.unique_id;
		var newTabs = jQuery(newTabsId).children('li');
		newTabs.each(function(i){
			var inT;
			var fadeInTarget;
			
			newTabContent.each(function(u){
				if(u == i){
					fadeInTarget = jQuery(this);
				}
			});
			
			var fadeOutTarget;
			
			jQuery(this).bind('click', function(){
							
				newTabs.each(function(){
					if(jQuery(this).hasClass('selected_tab')){
						jQuery(this).removeClass('selected_tab');				
					}				
				});				
				
				if(jQuery(this).hasClass('selected_tab') == false){
					jQuery(this).addClass('selected_tab');				
				}
				
				if(i != options.tab_open){
					newTabContent.each(function(u){
						if(u == options.tab_open){
							fadeOutTarget = jQuery(this);
						}
					});			
					
					
					
					fadeOutTarget.fadeOut(400, function(){
						fadeInTarget.fadeIn(400);
					});
					options.tab_open = i;
				}
				return false;						
			});
		});
/*
				
		var newTabsId = '#jTabs'+options.unique_id;
		var newTabs = jQuery(newTabsId).children('li');
		newTabs.each(function(i){
			jQuery(this).bind('click', function(){
				if(options.tab_open != i){
					newTabContent.each(function(u){
						if(u != i){
							jQuery(this).fadeOut();
						}else{
							jQuery(this).fadeIn();						
						}
					});
					options.tab_open = i; 
				}
			});
		});
*/		
		//var jQuery()
		
		
		// Remove the original element	
		jQuery(this).remove();
	});

};