//Tabs Class
var tabsManager = Class.create({
	initialize: function(element,options) {
		this.element = $(element);
        this.options = Object.extend({
			tabClass: 'viewTrigger',
            containerClass: 'contentBox',
			activeTabClass: 'activeBtn',
			triggerEvent: 'click' 
		}, options || {});
		this._tabs = this.element.select('.' + this.options.tabClass);
		this._containers = this.element.select('.' + this.options.containerClass);
		if(this._tabs.length > 0 && this._containers.length > 0){
            this.initEventHandlers();
        }
	},
	initEventHandlers: function() {
		this.openFirst();
		this._tabs.each(function(elem){
			elem.setStyle({cursor:'pointer'});
			elem.observe(this.options.triggerEvent,this.handleToggle.bind(this))
		}.bind(this));
	},
	openFirst: function() {
		this._tabs[0].addClassName(this.options.activeTabClass);
		this._containers[0].show();
	},
	closeAllBoxes: function() {
		this._containers.each(function(elem){elem.hide();});
	},
	removeActiveClasses: function() {
		this._tabs.each(function(elem){elem.removeClassName( this.options.activeTabClass )}.bind(this));
	},
	handleToggle: function(e) {
		var ele = Event.element(e);
		this.closeAllBoxes();
		this.removeActiveClasses();
		try{
          ele.addClassName(this.options.activeTabClass);
        }catch(e){}
        try{
            $(ele.readAttribute('rel')).show();
        }catch(e){}
	}	
});



var tab_object = Class.create({
	initialize: function(container) {
		this.container = $(container);
		this.triggers = this.container.select('.tab_triggers li');
		this.triggersA = this.container.select('.tab_triggers li a');
		this.content = this.container.select('.tab_item');
		this.onLoad();
		this.startup();
	},
	onLoad: function() {
		var i = 0;
		this.triggers.each(function(elem){
			elem.writeAttribute('tab',i);
			elem.observe('click',this.handleToggle.bind(this));
			i++;
		}.bind(this));
		this.triggersA.each(function(elem){
			elem.observe('click',this.handleToggle.bind(this));
		}.bind(this));
		this.container.select('h2.removeHeading').each(function(elem){
			elem.hide();
		});
	},
	startup: function() {
		this.closeTabs();
		this.triggers[0].addClassName('active_tab');
		this.content[0].show();
	},
	closeTabs: function(){
		this.content.each(function(elem){
			elem.hide();
		});
		this.resetTriggers();
	},
	openTab: function(num) {
		this.closeTabs();
		this.triggers[num].addClassName('active_tab');
		this.content[num].show();		
	},
	jumpToTab: function(id,num) {
		this.closeTabs();
		this.triggers[num].addClassName('active_tab');
		this.content[num].show();
		Effect.ScrollTo(id);
	},
	resetTriggers: function(){
		this.triggers.each(function(elem){
			elem.removeClassName('active_tab');
		});
	},
	handleToggle: function(e){
		var tab = Event.element(e);
		if(!tab.hasClassName('dontstop')){
			Event.stop(e);
		}
		if(tab.readAttribute('tab') == undefined) {
			tab = tab.up();
		}
		this.closeTabs();
		tab.addClassName('active_tab');
		var tmp = parseInt(tab.readAttribute('tab'));
		try {
			this.content[tmp].show();
		} catch(e) {
			this.openTab(0);
		};
	}
});