(function($) {
	var $tabs;

	$.fn.tabify = function(options, trigger) {
		
		var hijack = function(e, ui) {
			$('form', ui.panel).formation({ 
				target: ui.panel, 
				success: function(){ hijack(e, ui); } 
			});
			
			$('a', ui.panel).click(function() {
				$(ui.panel).load(this.href, hijack(e, ui));
			});
			
			mainLoader();
		}
		
		if(options == 'trigger' && $tabs && trigger) {
			return $tabs.tabs('select', '#'+trigger);
		}

		var showTab = function(event, ui) {
			// curvy corners doesnt play nice with tabs
			var tabHeight = $(ui.panel).height();
			$tabs.parents('.autoPadDiv')
				.prev()
					.css('height', tabHeight + 50)
				.parents('.content_pane')
					.css('height', tabHeight + 60)
		}
		
		var settings = {
			cache: true,
			disabled: [],
			selected: 0,
			ajaxOptions: {
				cache: false
			},
			spinner: 'Loading...',
			hijack: true,
			show: showTab
		}
		options = $.extend(true, settings, options);
		
		if(options.hijack) {
			options.load = function(e, ui) {
				hijack(e, ui);
			}
		}

		$tabs = $(this).tabs(options);
		return true;
	}
})(jQuery);
