function newAllTabsExist( tabs )
{
	var tabNumber = 0;
	for (var i = tabs.length-1; i>=0; i--)
	{
		tabNumber = tabs[i].id.replace("SBtab", "");
		if (!document.getElementById("SBtab"+tabNumber))
			return false;
	}
	return true;
}

var tabsLinksList;
var tabs;

function newTabLink_onClick(clickedIndex)
{
	// check everything is set up
	if(tabsLinksList == null)
	{
		if (!document.getElementById || !document.getElementsByTagName) return;
		var contentZones = getChildElementsByTagNameClass( document, "div", "contentZone");
		var childLists;
		for (var i = contentZones.length-1; i>=0; i--)
		{
			childLists = getChildElementsByTagNameClass( contentZones[i], "ul", "SBtabs" );
			if (childLists.length == 0) continue;
			tabsLinksList = childLists[0];
			tabs = getChildElementsByTagNameClass( contentZones[i], "div", "SBtab" );
			if (! newAllTabsExist(tabs)) continue;
		}
	}
	// sort out tab content
	for(var i = 0; i < tabs.length; i++)
	{
		if(i != clickedIndex)
		{
			// hide this content
			tabs[i].style.display = "none";
		}
		else
		{
			// show current content
			tabs[i].style.display = "block";
		}
	}
	
	var lis = tabsLinksList.getElementsByTagName("li");
	
	// sort out tab links
	for(var i = 0; i < lis.length; i++)
	{
		var isLink;
		var a = lis[i].getElementsByTagName("a")[0];
		var span;
		isLink = (a != null);
		// calculate the tab this LI refers to
		var thisTabIndex = i;
		if(i%2 != 0) thisTabIndex --;
		thisTabIndex = thisTabIndex / 2;
		// show or hide it as necessary
		var showThisLi;
		if(thisTabIndex == clickedIndex)
		{
			addToClassName(lis[i], "selected");
			// show if span
			showThisLi = !isLink
		} else {
			delFromClassName(lis[i], "selected");
			// show if link
			showThisLi = isLink
		}
		if(showThisLi)
		{
			lis[i].style.display = "block";
		} else {
			lis[i].style.display = "none";
		}
	}
	return false;
}