﻿
Zakladki = new Object()

Zakladki.tytul_tag = 'h5'; 															// potrzeby przy usuwaniu tytulu glowngeo bloczka zakladek
Zakladki.menu_kontener_wrap_with = '<table cellpadding="0" cellspacing="0"></table>';								// wrapper dla kontenera przyciskow zakladek
Zakladki.menu_kontener = '<tr></tr>';												// tu beda przyciski zakladek
Zakladki.menu_kontener_element = '<td><div><span>tutaj_tytul</span></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'
Zakladki.ostani_przycisk_ma_class = true;											// okresla czy ostatniemu przyciskowi nadajemy klase 'isLast'
Zakladki.przyciski_maja_class_hover = true;											// okresla czy przyciski maja onmouse over klase 'hover'
Zakladki.idKoszyk = "blok_24"; // wyjątek dla koszyka i przechowalni 


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 );
		
		// 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 tempTag = blokID == Zakladki.idKoszyk ? "div" : Zakladki.bloczek_tytul_tag; // wyjątek koszyk				
			var tytulBloczka = $(this).find( tempTag+':first' ); // :first dla pewnosci
			
			//dodaje przycisk na belce tabów
			var tempTytul = blokID == Zakladki.idKoszyk ? tytulBloczka.html() : tytulBloczka.text(); // wyjątek koszyk
			var tempKontener = blokID == Zakladki.idKoszyk ? '<td>tutaj_tytul</td>' : Zakladki.menu_kontener_element; // wyjątek koszyk
			var przycisk = $( tempKontener.replace('tutaj_tytul',tempTytul) );
			
			// 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')}).mouseout(function(){$(this).removeClass('hover')});
			}
			
			// usun tytul zagregowanego bloczka 
			tytulBloczka.remove();
			
			// przeniesienie bloczka do specjalnego kontenera
			TabyKontener.append( $(this) );
			$(this).hide();
			
			i++;
		});	
		
		if (Zakladki.menu_kontener_wrap_with.length > 5)
		{
			TabyMenuKontener.wrap(Zakladki.menu_kontener_wrap_with)
		}
		
		// oprogramowanie class css dla przyciskow
		var wszystkiePrzyciski = $('[rel^=blok_]', TabyMenuKontener);

		// klasa dla ostaniego przycisku (potrzeban czasem przy stylowaniu)
		var tempCalss1 = blokID == Zakladki.idKoszyk ? "isLastKoszyk" : "isLast"; // wyjątek koszyk
		if (Zakladki.ostani_przycisk_ma_class)	wszystkiePrzyciski.eq( wszystkiePrzyciski.length-1 ).addClass(tempCalss1);
		
		// klasa dla pierwszego przycisku (potrzeba czasem przy stylowaniu)
		var tempCalss2 = blokID == Zakladki.idKoszyk ? "isFirstKoszyk" : "isFirst"; // wyjątek koszyk
		if (Zakladki.pierwszy_przycisk_ma_class) wszystkiePrzyciski.eq(0).addClass(tempCalss2);		

		// 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;
		
		// ustaw isActive na aktualnym a usun klase w pozostalych
		nacisnietyPrzycisk.addClass('isActive').siblings().removeClass('isActive');
		
		var bloczekDoPokazania = $('#'+eventObj.data.bloczek_id, bloczekTabow);
		// ukryj wszystkie widoczne bloczki
		bloczekDoPokazania.siblings('[id^=blok_]').hide();
		// pokaz klikniety
		bloczekDoPokazania.show();
}

