var tocShowText = "show";
var tocHideText = "hide";
var tocCookie;

function showTocToggle(tocname)
{
	// tocname allows each toc to have it's own state/cookie
	if (document.createTextNode)
	{
		// Uses DOM calls to avoid document.write + XHTML issues

		var linkHolder = document.getElementById('toctitle');
		if (!linkHolder)
		{
			return;
		}

		var outerSpan = document.createElement('span');
		outerSpan.className = 'toctoggle';

		var toggleLink = document.createElement('a');
		toggleLink.id = 'togglelink';
		toggleLink.className = 'internal';
		toggleLink.href = 'javascript:toggleToc()';
		toggleLink.appendChild(document.createTextNode(tocHideText));

		outerSpan.appendChild(document.createTextNode('['));
		outerSpan.appendChild(toggleLink);
		outerSpan.appendChild(document.createTextNode(']'));

		linkHolder.appendChild(document.createTextNode(' '));
		linkHolder.appendChild(outerSpan);

		// Note the trailing '='
		tocCookie = tocname + '-hidetoc=';

		var cookiePos = document.cookie.indexOf(tocCookie);
		if (cookiePos > -1 && document.cookie.charAt(cookiePos + tocCookie.length) == 1)
		{
			toggleToc();
		}
	}
}

function changeText(el, newText)
{
	// Safari work around
	if (el.innerText)
	{
		el.innerText = newText;
	}
	else if (el.firstChild && el.firstChild.nodeValue)
	{
		el.firstChild.nodeValue = newText;
	}
}

function toggleToc()
{
	var toc = document.getElementById('toc').getElementsByTagName('ul')[0];
	var toggleLink = document.getElementById('togglelink');

	if (toc && toggleLink && toc.style.display == 'none')
	{
		changeText(toggleLink, tocHideText);
		toc.style.display = 'block';
		document.cookie = tocCookie + '0';
	}
	else
	{
		changeText(toggleLink, tocShowText);
		toc.style.display = 'none';
		document.cookie = tocCookie + '1';
	}
}
