/* 20090429-1020 */
/******************************************************************************
 * Tabs 2.0 - Terra Networks - Equipe Webdev
 * 2008
 * Modulo independente
 *
 * COMO UTILIZAR
 * 
 * Usar como base o exemplo abaixo
 *
 *	<div class="tabs">
 *		<ul class="tab-list">
 *			<li><a href="#tab-content1" class="anchor"><span>Aba 1</span></a></li>
 *			<li><a href="#tab-content2" class="anchor"><span>Aba 2</span></a></li>
 *		</ul>
 *
 *		<div id="tab-content1" class="tab-content">
 *			Conteúdo da aba 1
 *		</div>
 *
 *		<div id="tab-content2" class="tab-content">
 *			Conteúdo da aba 2
 *		</div>
 *	</div>
 *
 * PARAMETROS
 *
 * Ao adicionar a classe "anchor" nos links das abas passamos a ter a funcionalidade de historico, esta classe é opcional
 *
 ******************************************************************************/

(function($) {

	$.fn.extend({

		// Tabs
		tabs: function() {

			$(this).each(function() {
				var objTabs = $(this);

				objTabs.find(".tab-content").hide();

				if (objTabs.find(".anchor").size() > 0) {
					objTabs.find(".tab-list a").each(function() {
						$(this).attr("href",$(this).attr("href").replace("#","#t"));
					});
				}

				var initTab = (/#.*$/).exec(window.location.href);
				if (objTabs.find("a[href='"+initTab+"']").size() > 0 && initTab != "#") {
					changeTab(objTabs.find("a[href='"+initTab+"']"));
					window.scrollTo(0,0);
				} else if (objTabs.find(".tab-list .selected").size() > 0) {
					changeTab(objTabs.find(".tab-list .selected a"));
				} else {
					objTabs.find(".tab-list li:first").addClass("selected");
					objTabs.find(".tab-content:first").show();
				}



				/*
				 * Events
				 */
				objTabs.find(".tab-list a").unbind("click").click(function(evt) {
					changeTab(this);
					if (!$(this).hasClass("anchor"))
						evt.preventDefault();
				});
			});



			/*
			 * Functions
			 */

			/*
			 * PARAMETERS
			 * - selector (a)
			 */
			function changeTab(selector) {
				obj = $(selector);
				var tabsContainer = obj.parents(".tab-list");
				var tabsContentContainer = obj.parents(".tabs:first");
				var tabContentName = obj.hasClass("anchor") ?  obj.attr("href").substr(obj.attr("href").indexOf("#"),obj.attr("href").length).replace("#t","#") : obj.attr("href").substr(obj.attr("href").indexOf("#"),obj.attr("href").length);

				// Tab
				tabsContainer.find("li.selected").removeClass("selected");
				obj.parent().addClass("selected");

				// Tab content
				tabsContentContainer.find(".tab-content:first").parent().find(">.tab-content:visible:not("+tabContentName+")").hide();
				tabsContentContainer.find(tabContentName).show();
			}
		}
	});

})(jQuery);

// $(".tabs").tabs();