/* --------------------- code view switcher --------------------- */

var pretxt = "W\u0142\u0105cz widok: tekst preformatowany";
var listtxt = "W\u0142\u0105cz widok: listing numerowany";

function convListToPre(elems) {
	var s = "";
	var indpref = "i";
	var spclass = "space";
	
	for (var i = 0; i < elems.length; i++) {
		
		if (Element.hasClassName(elems[i], spclass)) s = s + "<br />";
				
		if (elems[i].className.indexOf(indpref) != -1) {
		
			var count = elems[i].className.split(indpref)[1];
			
			var j = 0;
			while (j < count) {
				s = s + '&nbsp;&nbsp;';
				j++;
			}//while j++
			
		}//if indpref
		
		s = s + elems[i].firstChild.innerHTML;

		s = s + "<br />";
		
	}//for i++
	
	return s;
}

function appendCodeStruct() {

	var ols = document.getElementsByTagName("ol");
	
	for (var i = 0; i < ols.length; i++) {
		
		if ((Element.hasClassName(ols[i], "code")) && !(Element.hasClassName(ols[i], "modified"))) {
		
			var div = document.createElement("div");
			ols[i].parentNode.insertBefore(div, ols[i]);
			div.appendChild(ols[i]);
			
			var p = document.createElement("p");
			p.className = "codeswitcher";
			p.innerHTML = '<span class="pre" title="' + pretxt + '" onclick="switchCodeLay(this)">Pre</span>';
			ols[i].style.marginRight = "20px";
			ols[i].parentNode.insertBefore(p, ols[i]);			
			
			var lis = ols[i].getElementsByTagName("li");
			var output = convListToPre(lis);
			
			var pre = document.createElement("pre");
			var code = document.createElement("code");
			code.innerHTML = output;
			pre.appendChild(code);		
			pre.style.display = "none";
			ols[i].parentNode.insertBefore(pre, ols[i]);
			
			
			Element.addClassName(ols[i], "modified");
			
		}//if ol.code, !ol.modified
		
	}//for
}

function switchCodeLay(elem) {

	var newclass = "";
	var newtitle = "";
	
	var div = elem.parentNode.parentNode;
	
	if (elem.className == "pre") {
		div.getElementsByTagName("ol")[0].style.display = "none";
		div.getElementsByTagName("pre")[0].style.display = "block";
		newclass = "list";
		newtitle = listtxt;
	} 
	
	else if (elem.className == "list") {
		div.getElementsByTagName("ol")[0].style.display = "block";
		div.getElementsByTagName("pre")[0].style.display = "none";
		newclass = "pre";
		newtitle = pretxt;
	}
	
	elem.className = newclass;
	elem.title = newtitle;
	
}