﻿/// <reference path="util.js" />

function fjTabs(container, group) {
	var self = this;
	this.container = container;
	this.group = group;

	this.init = function() {
		var tabNumber = 0;
		var tab = null;
		self.tabBar = document.createElement('ul');
		self.tabBar.className = 'tabBar';
		
		for(var t=0; t<self.container.childNodes.length; t++) {
			if(self.container.childNodes[t].tagName) {
				if (self.container.childNodes[t].tagName.toLowerCase() == 'h2') {
					tabNumber++;
					self.tabBar.appendChild(tab = self.createTab(self.container.childNodes[t].innerHTML, tabNumber));
					self.container.childNodes[t].style.display = 'none';
				}
				if (self.container.childNodes[t].tagName.toLowerCase() == 'div') {
					tab.content = self.container.childNodes[t];
					if(tabNumber > 1) self.container.childNodes[t].style.display = 'none';
				}
			}
		}
		var li = self.tabBar.getElementsByTagName('li');
		li[0].className = 'first active';
		li[0].getElementsByTagName('span')[2].className = 'tabractive';
		li[li.length-1].className = 'last';
		self.current = li[0];
		self.container.insertBefore(self.tabBar, self.container.childNodes[0]);
	}
	
	this.createTab = function(text, tabNumber) {
		var tab = document.createElement('li');
		tab.innerHTML = '<span class="tabl"></span><span class="tabm">' + text + '</span><span class="tabr"></span>';
		tab.onclick = self.tabClick;
		tab.number = tabNumber;
		return tab;
	}
	
	this.tabClick = function() {
		self.current.className = self.current.className.replace(/[ ]{0,1}active/gi,'');
		self.current.content.style.display = 'none';
		self.current.getElementsByTagName('span')[2].className = 'tabr';
		if(self.current.number > 1) {
			var prev = this.parentNode.childNodes[self.current.number-2];
			prev.className = prev.className.replace(/[ ]{0,1}prev/gi,'');
		}
		
		self.current = this;
		this.className = (this.className + ' active').trim();
		this.getElementsByTagName('span')[2].className = 'tabractive';
		self.current.content.style.display = 'block';
		if(this.number > 1) {
			var prev = this.parentNode.childNodes[this.number-2];
			prev.className = (prev.className + ' prev').trim();
		}
	}
	
	self.init();
}

var tabsInitialised = false;
function initTabs() {
	if(!tabsInitialised) {
		tabsInitialised = true;
		var divs = document.getElementsByTagName('div');
		for(var i=0; i<divs.length; i++) {
			if(divs[i].className == 'tabs') {
				new fjTabs(divs[i], i);
			}
		}
	}
}

util.addEvent(window, 'load', initTabs);
