
Zakladki = new Object()

Zakladki.tytul_tag = 'h5'; 															// potrzebny przy usuwaniu tytulu glownego bloczka zakladek
Zakladki.menu_kontener = '<table class="taby-glowne" border="0" cellspacing="0" cellpadding="0"><tr></tr></table>';			// to beda przyciski zakladek
Zakladki.menu_kontener_element_tytul = '[TUTAJ_TYTUL]';
Zakladki.menu_kontener_element = '<td><div>' + Zakladki.menu_kontener_element_tytul + '</div></td>';				// elementy konkretnych przyciskow
Zakladki.bloczki_kontener = '<div></div>';											// bloczki agregowane zostana tu przeniesione
Zakladki.bloczek_tabbable_class = 'jq-tab'; 										// tylko bloczki o takiej klasie CSS beda agregowane
Zakladki.bloczek_tytul_tag = 'h2';													// ten tyluł bedzie nazwą przycisku przełączająca zakładki 
Zakladki.pierwszy_przycisk_ma_class = true;											// okresla czy pierwszemu przyciskowi nadajemy klase 'isFirst' dla IE dodatkowo sa klasy: isActiveAndFirst
Zakladki.ostani_przycisk_ma_class = true;											// okresla czy ostatniemu przyciskowi nadajemy klase 'isLast' dla IE dodatkowo sa klasy: isActiveAndLast
Zakladki.przyciski_maja_class_hover = true;											// okresla czy przyciski maja onmouse over klase 'hover'


Zakladki.agreguj = function(blokID, iloscBloczkow, pokaz_tytul, zaznacz_losowy) {

	var BloczekTabow = $('#'+blokID);
	
	// jezeli nie ma takiego bloczka (raczej niemozliwe)
	if (BloczekTabow.size() == 0 ) return;  

	// czy pokazujeny tytul (tytul to zazwyczaj h2, h3 itd.)
	if (pokaz_tytul != 1) $( this.tytul_tag, BloczekTabow).remove();

	if (iloscBloczkow > 0) {
		// wyszukujemy wszystkie elementy ponizej bloczka agregujacego, (w wymaganej ilosci tylko)
		var bloczkiDoAgregacji = BloczekTabow.nextAll( ':lt('+iloscBloczkow+')' ); 

		// utworz menu dla przyciskow przelaczania tabow
		var TabyMenuKontener = $(Zakladki.menu_kontener).appendTo(BloczekTabow);
		
		// znajdywanie najglebszego elementu
		// to jest do poprawienia, ale
		while(TabyMenuKontener.get(0).firstChild) {
			TabyMenuKontener = $(TabyMenuKontener.get(0).firstChild);
		}
		
		// utworz kontener dla agregowanych bloczkow -> ich tresc bedzie tu przenoszona
		var TabyKontener = $(Zakladki.bloczki_kontener).appendTo( BloczekTabow );
		
		// iteracja po bloczkach do agregowania
		i = 0;
		bloczkiDoAgregacji.each(function() {
			// zatrzymaj sie jezeli osiagnieto limit
			if (i >= iloscBloczkow) return false; // return false = break;
			
			// zatrzymaj sie jezeli napotkasz bloczek ktory NIE JEST tabbable !
			if (  $(this).hasClass(Zakladki.bloczek_tabbable_class) == false || $(this).hasClass('jq-zakladki-bloczek') )
			{
				return false; // return false = break;
			}
			
			var id_bloczka =  $(this).attr('id');
			var tytulBloczka = $(this).find( Zakladki.bloczek_tytul_tag+':first' ); // :first dla pewnosci
			
			//dodaje przycisk na belce tabów
			var przycisk = $(Zakladki.menu_kontener_element.replace(Zakladki.menu_kontener_element_tytul,tytulBloczka.text()));
			
			// dodaj przycisk do menu
			TabyMenuKontener.append(przycisk);
			
			// podepnij akcje pod przyciski			
			przycisk.attr('rel', id_bloczka );
			przycisk.bind('click', {bloczek_id: id_bloczka, rodzic_id: blokID}, Zakladki.pokazZakladke);
			
			if (Zakladki.przyciski_maja_class_hover)
			{	// niesety .hover nie dziala za dobrze....
				przycisk.mouseover(function() {
					$(this).addClass('hover');
					if(przycisk.hasClass('isLast')) {
						$(this).addClass('hoverLast');
					}
				}).mouseout(function() {
					$(this).removeClass('hover');
					$(this).removeClass('hoverLast');
				});
			}
			
			// usun tytul zagregowanego bloczka 
			tytulBloczka.remove();			
			
			// przeniesienie bloczka do specjalnego kontenera
			TabyKontener.append( $(this) );
			$(this).hide();
			
			i++;
		});	
		
		// oprogramowanie class css dla przyciskow
		var wszystkiePrzyciski = $('[rel^=blok_]', TabyMenuKontener);

		// klasa dla ostaniego przycisku (potrzeban czasem przy stylowaniu)
		if (Zakladki.ostani_przycisk_ma_class)	wszystkiePrzyciski.eq( wszystkiePrzyciski.length-1 ).addClass('isLast');
		
		// klasa dla pierwszego przycisku (potrzeba czasem przy stylowaniu)
		if (Zakladki.pierwszy_przycisk_ma_class) wszystkiePrzyciski.eq(0).addClass('isFirst');		
		
		// pokaz tab -> jak nie losowo to pierwszy
		if (zaznacz_losowy == 1){
			var randomnumber = Math.floor(Math.random()* wszystkiePrzyciski.length )
			wszystkiePrzyciski.eq(randomnumber).click();	    	
		}
		else 
		{	// odpal pierwszy tab 
			wszystkiePrzyciski.eq(0).click();
		}		

	}
}	

Zakladki.pokazZakladke = function(eventObj) {

		var bloczekTabow = $(eventObj.target).parents('#' + eventObj.data.rodzic_id);
		var nacisnietyPrzycisk = $('[rel^='+eventObj.data.bloczek_id+']', bloczekTabow);
		
		//jezeli jest aktywne to nic rob nic - znaczy ze bloczek ejst aktualnie wyswietlany
		if (nacisnietyPrzycisk.hasClass('isActive')) return false;

		//usun klasy pozostalym przyciskom
		nacisnietyPrzycisk.siblings().removeClass('isActive isActiveAndFirst isActiveAndLast');
		
		// ustaw isActive na aktualnemu przyciskowi
		nacisnietyPrzycisk.addClass('isActive');
		nacisnietyPrzycisk.filter('.isFirst').addClass('isActiveAndFirst');
		nacisnietyPrzycisk.filter('.isLast').addClass('isActiveAndLast');
		
		var bloczekDoPokazania = $('#'+eventObj.data.bloczek_id, bloczekTabow);
		// ukryj wszystkie widoczne bloczki
		bloczekDoPokazania.siblings('[id^=blok_]').hide();
		// pokaz klikniety
		bloczekDoPokazania.show();
}

