var Tabs = Class.create( {
	current : {},
	initialize : function(id) {
		this.id = id;
		var links = this.element().select(".tabs-nav ul li a");
		var handler = this.update;

		$("tab").select("li").invoke("observe", "tab:open", this.open);
		$("tab").select("li").invoke("observe", "tab:close", this.close);
		
		links.each( function(element, index) {

			if (!element.ancestors().first().hasClassName("active")) {
				$(element.rel).hide();
			}

			element.observe("click", handler);
		});

	},
	element : function() {
		var element = $(this.id);

		return element;
	},
	open: function (event) {
		var tab = event.element();
		var link = tab.down("a");
		
		tab.addClassName("active");
		
		new Effect.Appear(link.rel, {
			duration :0.3
		});
	},
	close: function (event) {
		var tab = event.element();
		var link = tab.down("a");
		
		tab.removeClassName("active");

		new Effect.Fade(link.rel, {
			duration :0.1
		});
		
	},
	update : function(event) {
		event.stop();
		
		var nav = event.element().up("ul");
		var tab = event.element().up("li");
		
		if (tab.hasClassName("active")) {
			
			return false;
		}
		
		nav.down("li.active").fire("tab:close");
		tab.fire("tab:open");

	}
});

Event.observe(window, "load", function(event) {

	if (Object.isUndefined(classes)) {
		var classes = {
			content : {}
		};
	}

	classes.content.tabs = new Tabs("bestsellers");

});