/*    --- blox.archiwum.js ---
	skrypt przerabia archiwum blox na dynamicznie zwijane zakładki: kliknij na folder rok a zobaczysz kolejne miesiace
	
	więcej szczegółów na http://sgk74exp.blox.pl/2008/02/archiwum-zwijane-jak-zakladki.html
	Gdy ktos skorzysta z tego rozwiazania to prosze zostawić komentarz pod wpisem. 
	
	wersja: 1 (2008-02-29)
	autor: eskey (sgk,	http://sgk74exp.blox.pl)
	
	Skrypt można przerabiać, ale z zachowaniem informacji o autorze.
*/

var W3CDOM = (document.createElement && document.getElementsByTagName);

function $(d){	return document.getElementById(d);}

function ahasClass(obj,cName) {
	return new RegExp('\\b'+cName+'\\b').test(obj.className); 
} 

function ahasClasses(obj,classes) { 
	for (f=0; f<classes.length; f++) if (!ahasClass(obj,classes[i])) return false;
	return true; 
} 

function aaddClass(obj,cName) { 
    if (!ahasClass(obj,cName)) obj.className+=obj.className?' '+cName:cName;
    return true; 
} 

function aremoveClass(obj,cName) { 
	if (!ahasClass(obj,cName)) return false; 
	var rep=obj.className.match(' '+cName)?' '+cName:cName;
	obj.className=obj.className.replace(rep,'');
	return true; 
} 

function aswitchClass(obj,to,from) { 
	if (ahasClass(obj,from)) aremoveClass(obj,from);
    aaddClass(obj,to); 
	return true; 
}

function aGetElementsByClassName(container, tag, className) { 
	container = container||document; 
	tag=tag||'*'; 
	var all = container.all||container.getElementsByTagName(tag);
	var found=new Array(); 
	for (f=0; f<all.length; f++) { 
		var el=all[f]; 
		if (ahasClass(all[f],className)) found.push(all[f]); 
	} 
	return found; 
}

function archShowHideGroup () {
	var pd = aGetElementsByClassName(this.parentNode, 'div', 'PoziomDrzewa');
	for (var i=0; i<pd.length;i++) {
		if (pd[i].number == this.number) {
			if (pd[this.number-1].style.display == 'block') {
				aswitchClass(this,'off','on');
				pd[this.number-1].style.display = 'none';
			}
			else {
				aswitchClass(this,'on','off');			
				pd[this.number-1].style.display = 'block';
			}
		}
	}
}

function bloxZwinArchiwum (div) {
	var yr = '1999';
	var yc = '1999';
	var fid = 1;
	
	var arcd = div.getElementsByTagName('a');
	arr = new Array(arcd.length);
	for (var i=0;i<arcd.length;i++) {
		arr[i] = new Array(2);
		arr[i][0] = arcd[i].href;
		arr[i][1] = arcd[i].innerHTML;
	}
	
	for (var i=0;div.childNodes.length;i++) { div.removeChild(div.lastChild); }	
	
	tfz = document.createElement('div');
	tfz.id = 'ArchiwumTytul';
	tfz.innerHTML = 'Archiwum';
	div.appendChild(tfz);
	
	for (var i=0;i<arr.length;i++) {
		ahr = arr[i][0];
		ads = arr[i][1];
		yc = ads.substr((ads.length-4),4)
		
		if ( yc != yr ) {			
			tfz = document.createElement('div');
			tfz.className = 'TytulFolderaZakladek off';
			tfz.style.cursor = 'pointer';
			tfz.number = fid;
			tfz.onclick = archShowHideGroup;	//zdarzenie do zwijania
			tfz.innerHTML += yc;
			div.appendChild(tfz);
			yr = yc;
			
			pd = document.createElement('div');
			pd.className = 'PoziomDrzewa';
			pd.number = fid;
			pd.style.display = 'none';
			div.appendChild(pd);
			fid++;
			
			ze = document.createElement('div');
			ze.className = 'ZakladkaEtykieta';
			ze.innerHTML = '<a href="'+ahr+'">'+ads+'</a>';
			pd.appendChild(ze);		
		}
		else {
			ze = document.createElement('div');
			ze.className = 'ZakladkaEtykieta';
			ze.innerHTML = '<a href="'+ahr+'">'+ads+'</a>';
			pd.appendChild(ze);	
		}		
	}
}

if ( $('BlogArchiwumBox') ) bloxZwinArchiwum($('BlogArchiwumBox'));
