var smOriginal;

function smTreeClick(event) {
	var target = Event.element(event).parentNode;
	var img = Event.element(event);
	
	if (target.className == 'open') {
		var ulek=target.getElementsByTagName('ul');
		if(ulek.length>0){
			target.className = 'closed';
			img.className = 'closed';
		}
	} else if (target.className == 'open last') {
		var ulek=target.getElementsByTagName('ul');
		if(ulek.length>0){
			target.className = 'closed last';
			img.className = 'closed last';
		}
	} else if (target.className == 'closed') {
			var ulek=target.getElementsByTagName('ul');
				for(i=0;i<ulek.length;i++){
					var lik=ulek[i].getElementsByTagName('li');
					for(j=0;j<lik.length;j++){
					  alatta=lik[j].getElementsByTagName('ul');
					  if(alatta.length==0){
						var kepek=lik[j].getElementsByTagName('img');
						var kep=kepek[0];
						kep.className='triangle';
						lik[j].className='triangle'
						}
					  }
					}
			target.className = 'open';
			img.className = 'open';
	} else if (target.className == 'closed last') {
			var ulek=target.getElementsByTagName('ul');
				for(i=0;i<ulek.length;i++){
					var lik=ulek[i].getElementsByTagName('li');
					for(j=0;j<lik.length;j++){
					  alatta=lik[j].getElementsByTagName('ul');
					  if(alatta.length==0){
						var kepek=lik[j].getElementsByTagName('img');
						var kep=kepek[0];
						kep.className='open';
						lik[j].className='open'
						}
					  }
					}
			target.className = 'open last';
			img.className = 'open';
	}
	var lik = target.getElementsByTagName('li');
	for(var i = 0; i < lik.length; i++) {
		if (lik[i].getElementsByTagName('li').length == 0) {
			lik[i].getElementsByTagName('img')[0].className = 'triangle';
			lik[i].className = 'triangle';
		}
	}
	
}

var smUniq = 0;
var smOldFilter = "";
var nincsTalalat = false;

function smFilter(filter){
	nincsTalalat = true;
	filter = filter.toLowerCase().strip();
	if (filter == smOldFilter){
		$('loader').setStyle({ display:'none'});
		return;
	}
	var stop = document.getElementById('sitemaplist');
	if (filter == '') {
		stop.innerHTML = smOriginal;
		$('loader').setStyle({ display:'none'});
		return;
	}
	
	var menuk = $A(document.getElementById('sitemaplist').getElementsByTagName('li'));
	var arr = $A($('sitemaplist').getElementsByTagName('a'));

	for (var i = 0; i < menuk.length; i++)
		menuk[i].nyitva = false;

	for (var i = 0; i < arr.length; i++) {
		var el = arr[i];
		if (el.innerHTML.toLowerCase().indexOf(filter) > -1) {
			el.className = '';
			smMenuOpenWithParents(smMenuGetParent(el, stop), stop);
			nincsTalalat = false;
		} else
			el.className = 'noLink';
	}

	for (var i = 0; i < menuk.length; i++) 
		smMenuDisplay(menuk[i], menuk[i].nyitva);

	smOldFilter = filter;
	$('loader').setStyle({ display:'none'});
	if (nincsTalalat) $('nincsTalalat').setStyle({ display:'block'});
	
};

function smOpenAll() {
	var els = $A(document.getElementsByTagName('li'));
	for(var i = 0; i < els.length; i++) {
		if (els.className == 'closed') {
			els.className = 'open';
		} else if (els.className == 'closed last') {
			els.className = 'open last';
		} else if (els.className == 'closed last hidden') {
			els.className = 'open last';
		}
	}
	var els = $A(document.getElementsByTagName('a'));
	for(var i = 0; i < els.length; i++) {
		if (els.className == 'noLink') {
			els.className = '';
		}
	}
}

function smPreFilter(filter) {
	if (filter.strip().length == 0) {
		smOpenAll();
	};
	
	$('loader').setStyle({ display:'block'});

	smFilter(filter);

}

var t;

function sitemapFilter(filter){
	$('loader').setStyle({ display:'none'});
	$('nincsTalalat').setStyle({ display:'none'});
	filter = filter.replace(/[^A-Za-záéíóöőúüűÁÉÍÓÖŐÚÜŰ.@\:\/]/g,'').strip();
	document.getElementById('siteMapFilerInput').value = filter;
	clearTimeout(t);
	t=setTimeout("smPreFilter('"+filter+"')",1500);
}

function sitemapInit() {
	var s = $('sitemaplist');
	Event.observe(s, 'click', smTreeClick.bindAsEventListener($('sitemaplist')));
	var stuff=$$('#sitemaplist li'); 
	var noChildItems = []; 
	stuff.each(function(child) { if (child.down('li') == null) noChildItems.push(child) });
	noChildItems.each(function(el) { el.addClassName('triangle'); el.down('img').addClassName('triangle').removeClassName('open'); });
	smOriginal = s.innerHTML;
}

function smMenuDisplay(el, display) {
	if (display)
		smMenuOpen(el);
	else
		smMenuClose(el);
}

function smMenuOpen(el){
	if (el.className == 'closed') {
		el.className = 'open';
	} else
	if (el.className == 'closed last') {
		el.className = 'open last';
	} else 
	if (el.className == 'closed hidden') {
		el.className = 'open';
	} else
	if (el.className == 'closed last hidden') {
		el.className = 'open last';
	} else 
	if (el.className == 'hidden') {
		el.className = '';
	};
}

function smMenuClose(el){
	if (el.className == 'open') {
		el.className = 'closed hidden';
	} else
	if (el.className == 'open last') {
		el.className = 'closed last hidden';
	} else
	if (el.className == 'closed') {
		el.className = 'closed hidden';
	} else
	if (el.className == '') {
		el.className = 'hidden';
	}
}

function smMenuOpenWithParents(el, stopEl) {
	while (el != stopEl) {
		if (el.nyitva)
			break;
		el.nyitva = true;
		el = smMenuGetParent(el, stopEl);
	}
}

function smMenuGetParent(el, stopEl) {
	do {
		if (el == stopEl)
			break;
		el = el.parentNode;
	} while (el.tagName.toLowerCase() != "li");

	return el;
}

