pde={
	// CSS classes	
	hideClass:'hide',
	showClass:'show',
	parentClass:'parent2',
	aimgClass:'pde',
	// images added to the parent links
	openImage:'img/minus.gif',
	closedImage:'img/plus.gif',
	emptyImage:'img/none.gif',
	openMessage:'close section',
	closedMessage:'open section',
	emptyMessage:'empty section',
	// boolean to make the parent link collapse the section or not 
	linkParent:false,
	init:function(){
		pde.createClone();
		pde.createCloneEmpty();
		if(!document.getElementById || !document.createTextNode){return;}
		var ul=document.getElementById('menuKat');
		
		var inneruls, parentLI;
		var innerLis, childs, bPodKategorie, ulNode;


                       var childs = ul.childNodes;

			var innerLis=ul.getElementsByTagName('li');
				for ( var n=0 ; n<innerLis.length; n++ )
					{
						var childs = innerLis[n].childNodes;
						var bPodKategorie = false;
							for ( var k=0 ; k<childs.length; k++ )
								{
									if( childs[k].nodeType != 1) continue;
			  						if( childs[k].nodeName.toLowerCase()  == 'ul' ) 
										{
										  bPodKategorie = true;										
										  ulNode = childs[k];
										}
								}						

						pde.cssjs('add', innerLis[n], pde.parentClass);
						if( bPodKategorie )
						{
							innerLis[n].insertBefore( pde.clone.cloneNode(true), innerLis[n].firstChild );	
							pde.cssjs('add', ulNode, pde.hideClass);
							pde.addEvent( innerLis[n].getElementsByTagName('a')[0], 'click', pde.showhide, false);
                                                               innerLis[n].getElementsByTagName('a')[0].onclick=function(){return false;} // Safari hack
							pde.addEvent( innerLis[n].getElementsByTagName('a')[1], 'click', pde.showhide, false);
                                                               innerLis[n].getElementsByTagName('a')[1].onclick=function(){return false;} // Safari hack
						}
						else
				  			innerLis[n].insertBefore( pde.cloneEmpty.cloneNode(true), innerLis[n].firstChild );	
					}
		
		pde.findActive ();
	},
	findActive:function()
	{
		var parentUl, parentLi,  liActive;
		
		var liActive=document.getElementById('activeKat');
	
	    for( var i=0; i>=0; i++)	
	   {
		var parentUl = liActive.parentNode;
		if ( parentUl.nodeName.toLowerCase()  != 'ul') break;			
		//alert(parentUl.nodeName );		
		if(pde.cssjs('check', parentUl, pde.hideClass))
		{
			message=pde.openMessage;
			image=pde.openImage;
			pde.cssjs('remove', parentUl, pde.hideClass);
			pde.cssjs('add', parentUl, pde.showClass);

			var parentLi =  parentUl.parentNode;
			if(  parentLi.nodeName.toLowerCase()  != 'li') //z struktury dokumentu wiemy ze musi byc .., wiec to tak na wszelki wypadek
				break;
			var img= parentLi.getElementsByTagName('img')[0];
			img.setAttribute('src',image);
			img.setAttribute('alt',message);
			img.setAttribute('title',message);
			
			liActive = parentLi;
		}
		else
		{
			var parentLi =  parentUl.parentNode;
			if(  parentLi.nodeName != 'LI') //z struktury dokumentu wiemy ze musi byc .., wiec to tak na wszelki wypadek
				break;
			liActive = parentLi;
		}
	   }	
	},
	showhide:function(e){
		var image,message;
		var elm=pde.getTarget(e);
		var ul=elm.parentNode.getElementsByTagName('ul')[0];
		var img=elm.parentNode.getElementsByTagName('img')[0];
		if(pde.cssjs('check',ul,pde.hideClass)){
			message=pde.openMessage;
			image=pde.openImage;
			pde.cssjs('remove',elm.parentNode.getElementsByTagName('ul')[0],pde.hideClass);
			pde.cssjs('add',elm.parentNode.getElementsByTagName('ul')[0],pde.showClass);
		} else {
			message=pde.closedMessage;
			image=pde.closedImage;
			pde.cssjs('remove',elm.parentNode.getElementsByTagName('ul')[0],pde.showClass);
			pde.cssjs('add',elm.parentNode.getElementsByTagName('ul')[0],pde.hideClass);
		}
		img.setAttribute('src',image);
		img.setAttribute('alt',message);
		img.setAttribute('title',message);
		pde.cancelClick(e);
	},
	createClone:function(){
		pde.clone=document.createElement('a');
		pde.cssjs('add', pde.clone, pde.aimgClass);
                //pde.clone.style.border="none";
		pde.clone.setAttribute('href','#');				
		//pde.clone.appendChild(document.createTextNode('img'));

		pde.clone.appendChild(document.createElement('img'));
		pde.clone.getElementsByTagName('img')[0].src=pde.closedImage;
		pde.clone.getElementsByTagName('img')[0].alt=pde.closedMessage;
		pde.clone.getElementsByTagName('img')[0].title=pde.closedMessage;

		

	},

createCloneEmpty:function(){
		pde.cloneEmpty=document.createElement('img');
		pde.cloneEmpty.src=pde.emptyImage;
		pde.cloneEmpty.alt=pde.emptyMessage;
		pde.cloneEmpty.title=pde.emptyMessage;
	},
/* helper methods */
	getTarget:function(e){
		var target = window.event ? window.event.srcElement : e ? e.target : null;
		if (!target){return false;}
		if (target.nodeName.toLowerCase() != 'a'){target = target.parentNode;}
		return target;
	},
	cancelClick:function(e){
		if (window.event){
			window.event.cancelBubble = true;
			window.event.returnValue = false;
			return;
		}
		if (e){
			e.stopPropagation();
			e.preventDefault();
		}
	},
	addEvent: function(elm, evType, fn, useCapture){
		if (elm.addEventListener) 
		{
			elm.addEventListener(evType, fn, useCapture);
			return true;
		} else if (elm.attachEvent) {
			var r = elm.attachEvent('on' + evType, fn);
			return r;
		} else {
			elm['on' + evType] = fn;
		}
	},
	cssjs:function(a,o,c1,c2){
		switch (a){
			case 'swap':
				o.className=!pde.cssjs('check',o,c1)?o.className.replace(c2,c1):o.className.replace(c1,c2);
			break;
			case 'add':
				if(!pde.cssjs('check',o,c1)){o.className+=o.className?' '+c1:c1;}
			break;
			case 'remove':
				var rep=o.className.match(' '+c1)?' '+c1:c1;
				o.className=o.className.replace(rep,'');
			break;
			case 'check':
				return new RegExp("(^|\s)" + c1 + "(\s|$)").test(o.className)
			break;
		}
	}
}
pde.addEvent(window, 'load', pde.init, false);

