/*
Usage:

TB =  new Tabs(); // das Object, dieser Aufruf muss immer vorhanden sein
TB.activeTab = 'overviewMenuItem'; // der Tab der "an" ist, wenn die seite geladen wird
TB.activeTabClassname = 'on'; // die aktive css-class (wird zur vorhandenen hinzugefügt)

// Entweder vorab die Tabs deklarieren
TB.initTab('overviewMenuItem','overview');
TB.initTab('arbitrageMenuItem','arbitrage');
TB.initTab('portraitMenuItem','portrait');
TB.initTab('chartMenuItem','chart');
TB.initTab('archiveMenuItem','archive');

// Oder, wenn der Tab-Menüpunkt aufgerufen wird
<a href="#" onclick="TB.loadTabContent('tab_id','tabcontent_id'); return false;">Menüpunkt</a>
*/

function Tabs () {
		
	this.activeTab = false;
	this.activeTabClassname = 'on';
	
	// privat
	this.tabs = new Array();
	
	
	//---------------------------------------------------------------------------------------
	this.loadTabContent = function(tab_id,tabcontent_id) {
		
		if(!this.tabs[tab_id]) this.initTab(tab_id,tabcontent_id);
					
		if(!document.getElementById(this.tabs[tab_id].id)
		|| !document.getElementById(this.tabs[tab_id].tabcontent_id)) {
			return false;
		} 
		
		if(this.activeTab == tab_id
		|| this.tabs[tab_id].active === true) {
			return;
		}	
		
		if(this.activeTab 
		&& this.tabs[this.activeTab]
		&& document.getElementById(this.tabs[this.activeTab].id)
		&& document.getElementById(this.tabs[this.activeTab].tabcontent_id)) {
			if(!this.tabs[this.activeTab].el) {
				this.tabs[this.activeTab].el = document.getElementById(this.tabs[this.activeTab].id);
			}
			this.removeClassName(this.tabs[this.activeTab].el,this.activeTabClassname);
			if(!this.tabs[this.activeTab].content_el) {
				this.tabs[this.activeTab].content_el = document.getElementById(this.tabs[this.activeTab].tabcontent_id);
			}
			this.tabs[this.activeTab].content_el.style.display = 'none';
			this.tabs[this.activeTab].active = false;
		}
		
		if(!this.tabs[tab_id].el) {
			this.tabs[tab_id].el = document.getElementById(this.tabs[tab_id].id);
		}
		this.tabs[tab_id].active = true;
		this.tabs[tab_id].el.className += ' ' +this.activeTabClassname;
		this.tabs[tab_id].el.blur();
		this.tabs[tab_id].content_el = document.getElementById(this.tabs[tab_id].tabcontent_id);
		this.tabs[tab_id].content_el.style.display = '';		
		this.activeTab = tab_id;
	}
	
	//---------------------------------------------------------------------------------------
	this.initTab = function(tab_id,tabcontent_id) {
		this.tabs[tab_id] = new Object();
		this.tabs[tab_id].id = tab_id;
		this.tabs[tab_id].tabcontent_id = tabcontent_id;
		this.tabs[tab_id].content_el = false;
		this.tabs[tab_id].el = false;
		if(this.activeTab == tab_id) this.tabs[tab_id].active = true;
		else this.tabs[tab_id].active = false;
	}

	//---------------------------------------------------------------------------------------
	this.removeClassName = function(el, name) {
	
		var i, curList, newList;
		
		if (el.className == null) return;
				
		newList = new Array();
		curList = el.className.split(" ");
		for (i = 0; i < curList.length; i++)
			if (curList[i] != name)
				  newList.push(curList[i]);
		
		el.className = newList.join(" ");
	}

}
