// MediaWiki JavaScript support functions

var clientPC = navigator.userAgent.toLowerCase(); // Get client info
var is_gecko = ((clientPC.indexOf('gecko')!=-1) && (clientPC.indexOf('spoofer')==-1)
                && (clientPC.indexOf('khtml') == -1) && (clientPC.indexOf('netscape/7.0')==-1));
var is_safari = ((clientPC.indexOf('applewebkit')!=-1) && (clientPC.indexOf('spoofer')==-1));
var is_khtml = (navigator.vendor == 'KDE' || ( document.childNodes && !document.all && !navigator.taintEnabled ));
// For accesskeys
var is_ff2_win = (clientPC.indexOf('firefox/2')!=-1 || clientPC.indexOf('minefield/3')!=-1) && clientPC.indexOf('windows')!=-1;
var is_ff2_x11 = (clientPC.indexOf('firefox/2')!=-1 || clientPC.indexOf('minefield/3')!=-1) && clientPC.indexOf('x11')!=-1;
if (clientPC.indexOf('opera') != -1) {
	var is_opera = true;
	var is_opera_preseven = (window.opera && !document.childNodes);
	var is_opera_seven = (window.opera && document.childNodes);
}



function showTocToggle(id,tagName) {
	if (document.createTextNode) {
		// Uses DOM calls to avoid document.write + XHTML issues

		var linkHolder = document.getElementById(id + '-title');
		if (!linkHolder) {
		  alert('link not found');
			return;
		}

		var outerSpan = document.createElement('span');
		outerSpan.className = id + '-toggle';

		var toggleLink = document.createElement('a');
		toggleLink.id = id + '-link';
		toggleLink.className = 'main';
		toggleLink.href = 'javascript:toggleToc("' + id + '","' + tagName + '")';
		toggleLink.appendChild(document.createTextNode(tocHideText));

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

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

		var cookiePos = document.cookie.indexOf("hidetoc=");
		var cookieVal = "0";
		if (cookiePos > -1) {
		  cookieVal = document.cookie.substr(cookiePos + 8);
		} 
		if (cookieVal != "0") {
			toggleToc(id,tagName);
		}
	}
}

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(id,tagName) {

  var ele        = document.getElementById(id + '-toc');
	var toc        = (ele != null) ? ele.getElementsByTagName(tagName)[0] : null;
	var toggleLink = document.getElementById(id + '-link');

  
	if (toc && toggleLink && toc.style.display == 'none') {
		changeText(toggleLink, tocHideText);
		toc.style.display = 'block';
		document.cookie = "hidetoc=0";
	} else {
	  if (tocShowText != undefined) {
		  changeText(toggleLink, tocShowText);
		  if ( (toc != null) && (toc.style != null) ) toc.style.display = 'none';
		  document.cookie = "hidetoc=" + id;
		}
	}
}
