/* ----
	Copyright by Maciej Jaros (C) 2006-2009
	
	TOC functions origianly came from
	http://www.quirksmode.org
---- */
document.write('<link rel="stylesheet" type="text/css"  media="screen" href="./wyglad/css/toc.css" />');

function getElementsByTagNames(list,obj)
{
	if (!obj) obj = document;
	var tagNames = list.split(',');
	var resultArray = new Array();
	for (var i=0;i<tagNames.length;i++)
	{
		var tags = obj.getElementsByTagName(tagNames[i]);
		for (var j=0;j<tags.length;j++)
		{
			resultArray.push(tags[j]);
		}
	}
	if (resultArray.length==0)
	{
		return resultArray;
	}
	var testNode = resultArray[0];
	if (testNode.sourceIndex)
	{
		resultArray.sort(function (a,b) {
				return a.sourceIndex - b.sourceIndex;
		});
	}
	else if (testNode.compareDocumentPosition)
	{
		resultArray.sort(function (a,b) {
				return 3 - (a.compareDocumentPosition(b) & 6);
		});
	}
	return resultArray;
}

function createTOC()
{
	if (top.bugRiddenCrashPronePieceOfJunk) return;
	if (!document.insertBefore) return;
// 	var x = document.body.childNodes;
	var y = document.createElement('div');
	y.id = 'toc_el';
	var a = y.appendChild(document.createElement('span'));
	a.onclick = showhideTOC;
	a.innerHTML = 'Spis treści';
	a.className = 'contentheader';
	var z = y.appendChild(document.createElement('div'));
	z.onclick = showhideTOC;
	var toBeTOCced = getElementsByTagNames('h1,h2,h3,h4');
	if (toBeTOCced.length < 2) return;

	//
	// top
	//
	var el1 = document.createElement('a');
	el1.innerHTML = 'do góry';
	el1.href = '#';
	el1.className = 'toc_top';
	z.appendChild(el1);
	
	//
	// inne
	//
	for (var i=0;i<toBeTOCced.length;i++)
	{
		var new_id = 'link' + i;
		var el1 = document.createElement('a');
		var el1str = stripHtmlTags(toBeTOCced[i].innerHTML);
		if (el1str.length > 40)
		{
			var l = 39
			while (l && (el1str.charAt(l)=='.' || el1str.charAt(l)==' '))
			{
				l--;
			}
			el1.innerHTML = el1str.substr(0,l+1) + '...';
		}
		else
		{
			el1.innerHTML = el1str;
		}
		el1.href = '#' + new_id;
		el1.className = 'page';
		z.appendChild(el1);
		switch (toBeTOCced[i].nodeName)
		{
			case 'H4':
				el1.className += ' indent3';
			break;
			case 'H3':
				el1.className += ' indent2';
			break;
			case 'H2':
				el1.className += ' indent';
			break;
		}
		var el2 = document.createElement('a');
		el2.id = new_id;
		toBeTOCced[i].parentNode.insertBefore(el2,toBeTOCced[i]);
	}
	document.body.insertBefore(y,document.body.childNodes[2]);
}

var TOCstate = 'none';

function showhideTOC()
{
	TOCstate = (TOCstate == 'none') ? 'block' : 'none';
	document.getElementById('toc_el').lastChild.style.display = TOCstate;

}

/* ===================================================== *\
	Function: stripHtmlTags
	
	Stripping HTML tags from the HTML text.
	Returns stripped text.
	
	Params
	------
		html - the html text
\* ===================================================== */
function stripHtmlTags(html){
	return html.replace(/<\S[^<>]*>/g, ''); // with global match (all will be replaced)
}
