var isIE					= navigator.appName == "Microsoft Internet Explorer" ? true : false
var classRef			= isIE ? "className" : "class"
var cssClassTabOn		= "on"
var cssClassTabOff	= "off"	

function nodeNameTest(type, ele) {
	return type == ele.nodeName ? true : false
}

function toggleTabs(ele) {
	if(document.getElementById) {
		
		var activeTabNode				= ele.parentNode
		var eleDepth					= 2 // from ele to first top level node [0] without children
		var firstContentNodeDepth	= 2 // depth to parent node of first content node [0]
		var tabCount					= 0
		var tabNode						= null
		var topLevelTemp				= ele
		var currentNode, topLevelNode

		/*
			set lowest top level node
		*/
		for(i = 0; i <= eleDepth; i++) {
			topLevelTemp = topLevelTemp.parentNode
			if(nodeNameTest("TBODY", topLevelTemp)) {
				topLevelNode = topLevelTemp
				break
			}
		}

		/*
			find tab container node
		*/
		if(topLevelNode.hasChildNodes()) {
			if(nodeNameTest("TR", topLevelNode.childNodes[0])) {
				tabNode = topLevelNode.childNodes[0]
			}
		}
		
		/*
			iterate through each tab node;
			change styles as appropriate
		*/
		if(tabNode != null && tabNode.hasChildNodes()) {
			for(i = 0; i < tabNode.childNodes.length; i++) {
				currentNode = tabNode.childNodes[i]
				if(nodeNameTest("TD", currentNode)) {
					tabCount ++
					if(currentNode.getAttribute(classRef) == cssClassTabOn) {
						currentNode.setAttribute(classRef, cssClassTabOff)
					}
				}
			}
			
			activeTabNode.setAttribute(classRef, cssClassTabOn)
			toggleContent(topLevelNode, tabCount, activeTabNode, firstContentNodeDepth)
		}
	}
}


function toggleContent(topLevelNode, tabCount, activeTabNode, firstContentNodeDepth) {
	var tabNamePrefix			= "td"
	var tabNameSuffix			= "Tab"
	var contentNamePrefix	= "tr"
	var contentNameSuffix	= "Results"
	var activeTabName, currentContentNodeName, currentNode
	
	activeTabName	= activeTabNode.id.split(tabNamePrefix)
	activeTabName	= activeTabName[1].split(tabNameSuffix);
	activeTabName	= activeTabName[0];

	for(i = 0; i < tabCount; i++) {

		currentNode					= topLevelNode.childNodes[firstContentNodeDepth + i]
		currentContentNodeName	= currentNode.id
		currentContentNodeName	= currentContentNodeName.split(contentNamePrefix)
		currentContentNodeName	= currentContentNodeName[1].split(contentNameSuffix);
		currentContentNodeName	= currentContentNodeName[0];
		currentNode.setAttribute(classRef, cssClassTabOff);
		
		if(currentContentNodeName == activeTabName) {
			currentNode.setAttribute(classRef, cssClassTabOn);
		}
	}
}

