function getSubCat( obj )
{
	return obj.getElementsByTagName( 'UL' )[0];
}

var openSubCat = null;

function containsDOM (container, containee)
{
	var isParent = false;
	do
	{
		if ( ( isParent = container == containee ) )
			break;
		containee = containee.parentNode;
	}
	while (containee != null);
	return isParent;
}

Effect.fadeOut = function( element )
{
	if( element == null )
		return;
	new Effect.Opacity( 
		element, 
		{ 
			from: 1.0,
			to: 0.0,
			duration: 1.0,
			afterFinish: function( effect )
			{
				effect.element.hide();
				effect.element.setOpacity(0);
				effect.element.parentNode.style.zIndex = 100;
				if( openSubCat == effect.element )
					openSubCat = null;
			}
		} 
	);
}

Effect.fadeIn = function( element )
{
	if( element == null || element == openSubCat )
		return;
	new Effect.Opacity( 
		element, 
		{ 
			from: 0.0,
			to: 1.0,
			duration: 0.3,
			beforeStart: function( effect )
			{
				effect.element.setOpacity(0);
				effect.element.show();
				if( openSubCat != effect.element )
					Effect.fadeOut( openSubCat );
				openSubCat = effect.element;
				openSubCat.parentNode.style.zIndex = 200;
			}
		} 
	);
}

function checkMouseEnter (element, evt)
{
	var subCat = getSubCat( element.parentNode );
	if( subCat == null )
		return false;
	Effect.fadeIn( subCat );
	return true;
}

function checkMouseLeave (element, evt)
{
	var contains = false;
	if (element.contains && evt.toElement)
	{
		contains = element.contains(evt.toElement);
	}
	else if (evt.relatedTarget)
	{
		contains = containsDOM(element, evt.relatedTarget);
	}
	if( !contains )
	{
		Effect.fadeOut( getSubCat( element.parentNode ) );
	}
}

function detailNav( anchor )
{
	if( anchor.parentNode.className == "selected" )
		return;
		
	var tabs = anchor.parentNode.parentNode.getElementsByTagName( 'li' );
	
	for( var i = 0; i < tabs.length; i++ )
		tabs[i].className = "";
		
	anchor.parentNode.className = "selected";
}

function reviewsTab( )
{
	var ul = document.getElementById( 'detailNav' );
	var links = ul.getElementsByTagName( 'a' );
	var reviewLink = links[1];
	detailNav( reviewLink );
}

function writeTab( )
{
	var ul = document.getElementById( 'detailNav' );
	var links = ul.getElementsByTagName( 'a' );
	var writeLink = links[2];
	detailNav( writeLink );
}