//Put all the tab panels into an array.
function prepareAllTabPanels(tabStripMode)
{
	// Get the tab panels into an array for later processing
	var tabPanels = []; 
	var allDivs = document.getElementsByTagName("div");
	for (var divIndex = 0; divIndex < allDivs.length; divIndex++)
	{
		if(allDivs[divIndex].className == "tabPanel")
			{
				tabPanels[tabPanels.length] = allDivs[divIndex];
			}
	}

	for (var tabPanelIndex = 0; tabPanelIndex < tabPanels.length; tabPanelIndex++)
	{
		prepareTabPanel(tabPanels[tabPanelIndex], tabStripMode);
	}
}
//sorts the elements into the correct order.	
function prepareTabPanel(tabPanelDiv, tabStripMode)
{
	var allH3s = tabPanelDiv.getElementsByTagName('h3');
	var allTabsArray = new Array();
	for (var h3Index = allH3s.length-1; h3Index >= 0; h3Index--)
	{
		allTabsArray[h3Index] = allH3s[h3Index];
		if(tabStripMode) tabPanelDiv.removeChild(allH3s[h3Index]);
	}

	var tabStrip;
	var allDivs = tabPanelDiv.getElementsByTagName('div');
	for (var divIndex = 0; divIndex < allDivs.length; divIndex++)
	{
		if(allDivs[divIndex].className == "tabstrip")
		{
			tabStrip = allDivs[divIndex];
		}
	}

	if(tabStripMode)
	{
		for (var tabIndex = 0; tabIndex < allTabsArray.length; tabIndex++)
		{
			tabStrip.appendChild(allTabsArray[tabIndex]);
		}
	}

	var allParas = tabPanelDiv.getElementsByTagName('p');
	var allParasArray = new Array();
	for (var paraIndex = 0; paraIndex < allParas.length; paraIndex++)
	{
		if(allParas[paraIndex].parentNode.className == "tabPanel")
		{
			allParasArray[paraIndex] = allParas[paraIndex];
			if(tabStripMode) tabPanelDiv.removeChild(allParas[paraIndex]);
		}
	}
	if(tabStripMode)
	{
		for (var paraArrayIndex = 0; paraArrayIndex < allParasArray.length; paraArrayIndex++)
		{
			tabPanelDiv.insertBefore(allParasArray[paraArrayIndex], tabStrip);
		}
	}
}

//called when a tab is clicked, shows the tab and the related div and hides all the others.
function showTab(callingH3, callingId)
{
	var callingNode = document.getElementById(callingId);
	var elementsToUnselect = callingNode.parentNode.childNodes;
	for (var elementIndex = 0; elementIndex < elementsToUnselect.length; elementIndex++)
	{
		if(elementsToUnselect[elementIndex].className.indexOf("tabContentContainer tabContentContainerSelected") == 0)
		{
			elementsToUnselect[elementIndex].className =
			elementsToUnselect[elementIndex].className.replace('Selected', 'NotSelected');
		}
		if(elementsToUnselect[elementIndex].className.indexOf("tabstrip") == 0)
		{
			var h3sToUnselect = elementsToUnselect[elementIndex].getElementsByTagName('h3');
			for (var h3Index = 0; h3Index < h3sToUnselect.length; h3Index++)
			{
				if(h3sToUnselect[h3Index].className.indexOf("tab tabSelected") == 0)
				{
					h3sToUnselect[h3Index].className = 
						h3sToUnselect[h3Index].className.replace('Selected', 'NotSelected');
					h3sToUnselect[h3Index].childNodes[0].className =
						h3sToUnselect[h3Index].childNodes[0].className.replace('Selected', 'NotSelected');
				}
			}
		}
	}
	callingNode.className =
		callingNode.className.replace('NotSelected', 'Selected');
	callingH3.className =
		callingH3.className.replace('NotSelected', 'Selected');
	callingH3.childNodes[0].className =
		callingH3.childNodes[0].className.replace('NotSelected', 'Selected');
}
