var tabGroups = new Array();

function GetE(elementId) {
	return document.getElementById(elementId)  ;
}

function ShowE(element, isVisible) {
	if (typeof(element) == 'string') element = GetE(element) ;
	if (element) element.style.display = isVisible ? '' : 'none' ;
}

function my_changeTab(tabGroupName, tabCode, invoker) {
	var el = tabGroups[tabGroupName]['elements'];
	if (!el) return;
	for (var i = 0; i < el.length; i++) {
		if (el[i].name) {
			var element = GetE('tab-' + el[i].name);
			if (element) ShowE(element, (tabCode == el[i].name));
			else return true;
		}
	}
	var liTags = GetE(tabGroupName).getElementsByTagName('LI');
	if (typeof Prototype !== 'undefined') {
		for (var i = 0; i < liTags.length; i++) { 
			liTags[i].removeClassName(tabGroups[tabGroupName]['selectedClassName'].valueOf());
		}
	} else if (typeof jQuery !== 'undefined') {
		for (var i = 0; i < liTags.length; i++) {
			jQuery(liTags[i]).removeClass(tabGroups[tabGroupName]['selectedClassName'].valueOf());
		}
	} else {
		for (var i = 0; i < liTags.length; i++) { 
			if (el[i] && el[i].name) liTags[i].className = tabGroups[tabGroupName]['selectedClassName'];
			else liTags[i].className = '';
		}
	}
	invoker.parentNode.className = tabGroups[tabGroupName]['selectedClassName'];
	invoker.blur();
	return false;
}

function createTabGroup(tabGroupName, selectedClassName) {
	tabGroups[tabGroupName] = new Array();
	tabGroups[tabGroupName]['elements'] = new Array();
	tabGroups[tabGroupName]['selectedClassName'] = new String(selectedClassName);
}

function addTab(tabGroupName, tabName, tabClass) {
	if (typeof tabClass == 'undefined') tabClass = '';
	if (tabName) 
		tabGroups[tabGroupName]['elements'].push({name: tabName, className: tabClass});
	else 
		tabGroups[tabGroupName]['elements'].push({name: '', className: tabClass});
}

