$.fn.hyhtabs = function(a_options)
{
	var Object = $(this);
	var changeFunctions = { 
		normal : {
			init : function() {
				$(options.tabElements).hide();
			},
			change : function(tabId) {
				$(options.tabElements).hide();
				$(options.tabElements).eq(tabId).show();		
			}
		},
		fade : { // beta
			init : function() {
				$(options.tabElements).hide();
			},
			change : function(tabId) {
				$(options.tabElements).fadeOut();
				$(options.tabElements).eq(tabId).fadeIn();		
			}
		}

	};

	var options = { makeSelected:'a', 
			tabElements:'div.tab',
			selectedClass:'selected', 
			defaultSelect:0, 
			changeFunction:'normal'};

	if (typeof(a_options) != 'undefined') {
		for (var key in a_options) {
			options[key] = a_options[key];
		}
	}

	changeFunctions[options.changeFunction].init();
	
	function selectTab(tabId) {
		Object.find(options.makeSelected).removeClass(options.selectedClass);
		Object.find(options.makeSelected).eq(tabId).addClass(options.selectedClass);

		changeFunctions[options.changeFunction].change(tabId);
	}

	Object.find(options.makeSelected).each(function(id, elem){
		$(elem).click(function(){ selectTab(id); return false; });
	});

	selectTab(options.defaultSelect);

	function logWarning(text) {
		if ("console" in window)
  			console.warn(text);
	} 
}

