function flipLayerVisibility(id)
{
	//get objects style reference
	var obj = findStyleObject(id);
	
	//return opposite visibility value
	if (document.layers) //NN4+
		return obj.visibility == 'show' ? 0 : 1;
	else // everything else try this
		return obj.visibility == 'visible' ? 0 : 1;	
}
			
function toggleLayerVisibility(divID, iState) // 1 visible, 0 hidden 
{
	// cross-browser function to update object's visibility state given its id 
	if(document.layers)	   //NN4+ 
	{
		document.layers[divID].visibility = iState ? "show" : "hide"; 
	}
	else if(document.getElementById)	  //gecko(NN6) + IE 5+ 
	{
		var obj = document.getElementById(divID); 
		obj.style.visibility = iState ? "visible" : "hidden"; 
	}
	else if(document.all)	// IE 4 
	{
		document.all[divID].style.visibility = iState ? "visible" : "hidden"; 
	}
}

function findStyleObject(objectId) 
{
	// cross-browser function to get an object's style object given its id 
	if(document.getElementById && document.getElementById(objectId)) 
	{
		// W3C DOM 
		return document.getElementById(objectId).style;
	}
	else if (document.all && document.all(objectId))
	{
		// MSIE 4 DOM 
		return document.all(objectId).style; 
	}
	else if (document.layers && document.layers[objectId])
	{
		// NN 4 DOM.. note: this won't find nested layers 
		return document.layers[objectId]; 
	}
	else 
	{
		return false; 
	}
}

function findObject(objectId)  
{
	// cross-browser function to get an object's style object given its id 
	if(document.getElementById && document.getElementById(objectId)) 
	{
		// W3C DOM 
		return document.getElementById(objectId); 
	}
	else if (document.all && document.all(objectId))  
	{
		// MSIE 4 DOM 
		return document.all(objectId); 
	}
	else if (document.layers && document.layers[objectId])  
	{
		// NN 4 DOM.. note: this won't find nested layers 
		return document.layers[objectId]; 
	}
	else 
	{
		return false; 
	}
}


function showTab(tabPrefix, tabItems, tabSelected, tabClassPrefix, obj) {

 //iterate items
 for (var i=0; i < tabItems; i++) {

    //construct tab name
    var tabName = tabPrefix + i;

    //toggle visibility
    if(i == tabSelected){

          //set tab visiblity
    	  toggleLayerVisibility(tabName, 1);

	  //set active class
	  obj.className = tabClassPrefix + tabSelected + ' selected';
 
    } else {
	  
	  //set tab visiblity
    	  toggleLayerVisibility(tabName, 0);

	  //create tab class name
          var tabClass = tabClassPrefix + i + ' selected';

	  //iterate items and turn off any active tab items
	  var tabmenu = document.getElementById('tabmenu_' + tabClassPrefix);
	  var tabmenuitems = tabmenu.getElementsByTagName('a');

	  for (var j=0;j<tabmenuitems.length;j++) {

		if(tabmenuitems[j].className == tabClassPrefix + j + ' selected' && j != tabSelected)
			tabmenuitems[j].className = tabClassPrefix + j; 

 	  }

    }

 }

}

function setVisibility(id, visibility) {
	document.getElementById(id).style.display = visibility;
}

