function fCode(t){//begin with pre
	obj = t.parentNode;
	ol = obj.getElementsByTagName('ol');
	pre = obj.getElementsByTagName('pre');
	if(ol.length==0){
		oList = document.createElement('ol');
		oLi = document.createElement('li');
		oList.style.display = 'none';
		children = pre[0].childNodes;
		for(i=0; i<children.length; i++){
			if(children[i].nodeName.toUpperCase() != 'BR'){
				oLi.appendChild(children[i].cloneNode(true));
			}else{
				if(!oLi.hasChildNodes){
					fakeTxt = document.createTextNode('\u00a0');
					//fakeTxt = document.createEntityReference('nbsp');
					oLi.appendChild(fakeTxt);
				}
				oList.appendChild(oLi);
				oLi = document.createElement('li');
			}
		}
		oList.appendChild(oLi);
		obj.appendChild(oList);
		ol = obj.getElementsByTagName('ol');
	}
	if(pre[0].style.display!='none'){pre[0].style.display='none';}else{pre[0].style.display='block';}
	if(ol[0].style.display!='none'){ol[0].style.display='none';}else{ol[0].style.display='block';}
	return false;
}

function fCode2(t){//friendly code v2.
var tags = t.parentNode.getElementsByTagName("pre");
	if (tags.length == 0){
		var newPRE = document.createElement("pre");newPRE.style.display = 'none';
		var li =  t.parentNode.getElementsByTagName("li");
		for(i=0; i<li.length; i++){
			var NL = document.createElement("br");
			var nodes = li[i].childNodes;
			for(k=0; k<nodes.length; k++){newPRE.appendChild(nodes[k].cloneNode(true));}
			if(i<li.length-1){newPRE.appendChild(NL);}
		}
		t.parentNode.appendChild(newPRE);
	}
	var pres = t.parentNode.getElementsByTagName("pre");
	var ols = t.parentNode.getElementsByTagName("ol");
	if(pres[0].style.display!='none'){pres[0].style.display='none';}else{pres[0].style.display='block';}
	if(ols[0].style.display!='none'){ols[0].style.display='none';}else{ols[0].style.display='block';}
	return false;
}

function fCode3(e){//begin with pre v2
	obj = this.parentNode;
	ol = obj.getElementsByTagName('ol');
	pre = obj.getElementsByTagName('pre');
	if(ol.length==0){
		oList = document.createElement('ol');
		oLi = document.createElement('li');
		oList.style.display = 'none';
		children = pre[0].childNodes;
		for(i=0; i<children.length; i++){
			if(children[i].nodeName.toUpperCase() != 'BR'){
				oLi.appendChild(children[i].cloneNode(true));
			}else{
				if(!oLi.hasChildNodes){
					fakeTxt = document.createTextNode('\u00a0');
					//fakeTxt = document.createEntityReference('nbsp');
					oLi.appendChild(fakeTxt);
				}
				oList.appendChild(oLi);
				oLi = document.createElement('li');
			}
		}
		oList.appendChild(oLi);
		obj.appendChild(oList);
		ol = obj.getElementsByTagName('ol');
	}
	if(pre[0].style.display!='none'){pre[0].style.display='none';}else{pre[0].style.display='block';}
	if(ol[0].style.display!='none'){ol[0].style.display='none';}else{ol[0].style.display='block';}
	//return false;
	(e.preventDefault) ? e.preventDefault() : (e.returnValue = false);
}


//getElementByClassName
//author: mynthon - http://www.mynthon.net
function getElementsByClassName(cs){
	var arr = new Array(); 
	var els = document.getElementsByTagName("*");
	var exp= new RegExp("^(.* )?"+cs+"( .*)?$", "g");
	for ( var cls, i = 0; ( el = els[i] ); i++ ){
	if (exp.test(el.className)){arr.push(el);}
	}
	return arr;
}




/*function al(e, o, x){
	alert(this.href +":"+e+" :" + o +" :" + x);
	
	(e.preventDefault) ? e.preventDefault() : (e.returnValue = false);
}*/


//add/remove event functions
//author: John Resig
//http://ejohn.org/projects/flexible-javascript-events/
//modified: mynthon
function addEventParams( obj, type, fn, p ){	
	obj["e"+type+fn] = fn;
	if (obj.addEventListener){
		eval( 'obj.addEventListener( type, function(event){obj["e"+type+fn](event, ' + p + ')}, false );' );
	}	else if (obj.attachEvent){
		obj[type+fn] = function() { eval ( 'obj["e"+type+fn](window.event, ' + p + ');' ); }
		obj.attachEvent("on"+type, obj[type+fn]);
	}
}


function addEvent( obj, type, fn )
{
	if (obj.addEventListener)
		obj.addEventListener( type, fn, false );
	else if (obj.attachEvent)
	{
		obj["e"+type+fn] = fn;
		obj[type+fn] = function() { obj["e"+type+fn]( window.event ); }
		obj.attachEvent( "on"+type, obj[type+fn] );
	}
}

function removeEvent( obj, type, fn )
{
	if (obj.removeEventListener)
		obj.removeEventListener( type, fn, false );
	else if (obj.detachEvent)
	{
		obj.detachEvent( "on"+type, obj[type+fn] );
		obj[type+fn] = null;
		obj["e"+type+fn] = null;
	}
}


function addSwitchToCode(){
	var a = getElementsByClassName("code");
	for(i=0; i<a.length; i++){
		var aLink = document.createElement("a");
		var aText = document.createTextNode("Zmień sposób wyświetlania kodu (numerowany / do kopiowania)");
		aLink.appendChild(aText);
		a[i].insertBefore(aLink,a[i].firstChild);
		//var href = document.createAttribute("href");
		//href.nodeValue=("#");
		a[i].firstChild.setAttribute("href", '#');	
		addEvent(a[i].firstChild, 'click', fCode3)
	}
}

function fnOnLoad(){
	addSwitchToCode();
}
