// Copyright Loopback Systems AS & Nextframe AS 2007 //
// Author: Håkon Nessjøen <haakon@loopback.no>       //
///////////////////////////////////////////////////////

	var tabgroups = new Array();

	function autotabs() {
		var tabgroup = new Array();
		var objects = document.getElementsByTagName('LI');
		var re = /(tab\d+)_(tbg\d+)/;
		var res;

		for (var i = 0 ; i < objects.length; ++i) {
			if (res = re.exec(objects[i].id)) {

				if (typeof(tabgroups[res[2]]) == 'undefined') {
					tabgroups[res[2]] = new lbsTabs('selected','');
					tabgroup[tabgroup.length] = tabgroups[res[2]];
				}

				tabgroups[res[2]].addTab(objects[i].id);
				objects[i].tabParent = tabgroups[res[2]];
				objects[i].onclick = function () { this.tabParent.onClick(this); };

			}
		}

		var re = new RegExp(/tbg\d+=\d+/g);
		var re2 = new RegExp(/(tbg\d+)=(\d+)/);
		var match = window.location.href.match(re);

		if (match) {
			for (var ii = 0; ii < match.length; ++ii) {
				var res = re2.exec(match[ii]);
				if (res && res.length == 3) {
					if (typeof(tabgroups[res[1]]) != 'undefined') {
						tabgroups[res[1]].selectedTab = res[2] - 1;
					}
				}
			}
		}

		for (var i = 0; i < tabgroup.length ; ++i) {
			tabgroup[i].redraw();
		}
	}  

	function lbsTabs(classActive,classDisabled) {
		this.tabs = new Array(0);
		this.classDisabled = classDisabled;
		this.classActive = classActive;
		this.selectedTab = 0;

		this.addTab = function (sName) {
			this.tabs.push(sName);
		}
		this.findTabId = function (tabName) {
			for (var i = 0; i < this.tabs.length; ++i) {
				if (this.tabs[i] == tabName)
					return i;
			}
			return 0; // fallback
		}
		this.setActive = function (sName) {
			this.selectedTab = this.findTabId(sName);
			this.redraw();
		}
		this.redraw = function () {
			for (var i = 0; i < this.tabs.length; ++i) {
				var tabObj = this.getObj(this.tabs[i]);
				var contentObj = this.getObj(this.tabs[i] + '_contents');

				if (tabObj)
					tabObj.className = (i == this.selectedTab ? this.classActive : this.classDisabled);

				if (contentObj && contentObj.style) {
					if (i == this.selectedTab) {
						contentObj.style.display = 'inline';
					} else {
						contentObj.style.display = 'none';
					}
				}
			}
		}
		this.onClick = function (cObj) {
			this.selectedTab = this.findTabId(cObj.id);
			this.redraw();
		}
		this.getObj = function (objName) {
			if (document.all) {
				return document.all[objName];
			} else {
				return document.getElementById(objName);
			}
		}
	}

