
var tapIntoSource = { 
	'config' : { 	// default container is #tapIntoSource
		'container' : $('#tapIntoSource')
	},
	
	'init' : function(config) { 
 		// provide for custom configuration via init()
		if (config && typeof(config) == 'object') {
			$.extend(tapIntoSource.config, config);
		}

		// create and/or cache some DOM elements 
		// we'll want to use throughout the code
		tapIntoSource.$container = tapIntoSource.config.container;
	 
		tapIntoSource.$items = tapIntoSource.$container.
			// only select immediate children!
			find('#mainContent > ul.items > li');

		tapIntoSource.$sidebar1 = $('<div/>').
			attr('id', 'sidebar1').
			prependTo(tapIntoSource.$container);
		
		tapIntoSource.$item_nav = $('<ul/>').
			attr('id','nav').
			appendTo(tapIntoSource.$sidebar1);
		
		tapIntoSource.$content = $('<div/>').
			attr('id','content').
			insertAfter(tapIntoSource.$sidebar1);
		
		tapIntoSource.$innerContent = $('<div/>').
			appendTo(tapIntoSource.$content);
		
		tapIntoSource.$sidebar2 = $('<div/>').
			attr('id', 'sidebar2').
			insertAfter(tapIntoSource.$content);
		
		$('<br/>').attr('class', 'clearfloat').
			insertAfter(tapIntoSource.$sidebar2);
		
		tapIntoSource.$testimonials = tapIntoSource.$container.
			find('#mainContent > ul.testimonials > li');
 
 		tapIntoSource.buildNav(tapIntoSource.$items);
		tapIntoSource.$item_nav.find('li:first a').click();

		tapIntoSource.buildSidebar2(tapIntoSource.$testimonials);

		tapIntoSource.$container.find('#mainContent').remove();

		tapIntoSource.initialized = true;

	},
	
	'buildNav' : function($items) {
		$items.each(function() {
			var $item = $(this);
			
			var $newLi = $('<li/>').
				appendTo(tapIntoSource.$item_nav);
			
			$('<a/>').
				attr('href', "javascript:;").
				text($item.find('h2:first').text()).
				appendTo($newLi).
				data('item', $item).
				click(tapIntoSource.showContentItem);
		});
	},
	
	'buildSidebar2' : function($testimonials) {
		$('#sidebar2').html($testimonials);
	},
	
	'showContentItem' : function() { 
		
		var $a = $(this);
		
		$a.parent('li').addClass('current').
			siblings().removeClass('current');

		var $item = $a.data('item');

		tapIntoSource.$innerContent.html($item.html());
		tapIntoSource.$content.find("h2").remove();
	}
};


