// Przyciski musza sie nazywac: 
// pagerButtonLeft, pagerButtonRight, pagerButton1, pagerButton2, pagerButton3
//
// DIV zawierajacy wszystkie tytuly (3) dla danej zakladki ma miec nazwe w formacie:
// [ID AKTYWNEJ ZAKLADKI]Pager np. BlokNr1NowosciPager
//
// DIV zawierajacy tytul dla kontentu o konkretnym numerze ma miec nazwe w formacie:
// [ID AKTYWNEJ ZAKLADKI]Pager[NUMER] np. BlokNr1NowosciPager2
//
// DIV zawierajacy wszystkie kontenty (3) dla danej zakladki ma miec nazwe w formacie:
// [ID AKTYWNEJ ZAKLADKI]Content np. BlokNr1NowosciContent
//
// DIV zawierajacy tytul dla kontentu o konkretnym numerze ma miec nazwe w formacie:
// [ID AKTYWNEJ ZAKLADKI]Content[NUMER] np. BlokNr1NowosciContent2

var CONTENT_SKIPPING_INTERVAL = 10000;

// zmienne przechowuja referencje do przyciskow
var oButtonLeft;
var oButtonRight
var arButtonsCenter


// funkcja jest wywolywana przy nacisnieciu przycisku strzalki lub 1 / 2 / 3 
function setActiveContentEvent(oEvent) {
	var iActiveIndex = getActiveContentIndex();
	var oEventSrc = getEventSrc(oEvent);

	if(oEventSrc == oButtonLeft) {
		iActiveIndex--;
		if(iActiveIndex < 1)
			iActiveIndex = 3;
	}
	else if(oEventSrc == oButtonRight) {
		iActiveIndex++;
		if(iActiveIndex > 3)
			iActiveIndex = 1;
	}
	else {
		var iButtonNumber = Number(oEventSrc.id.slice(-1));
		iActiveIndex = iButtonNumber;
	}
	
	showActiveElements(iActiveIndex);
	preventDefaultEvent(oEvent);
}



// funkcja zapisuje aktywny numer kontentu dla konkretnej zakladki
function setActiveContentIndex(iIndex) {
	var sActiveTabId = getActiveTabId("zakladkiBlokuNr1Lista");
	var oActiveTab = document.getElementById(sActiveTabId);
	oActiveTab.iIndex = iIndex;
}

// funkcja oczytuje aktywny numer kontentu dla konkretnej zakladki
function getActiveContentIndex() {
	var sActiveTabId = getActiveTabId("zakladkiBlokuNr1Lista");
	var oActiveTab = document.getElementById(sActiveTabId);
	if(typeof oActiveTab.iIndex == "undefined")
		return 1;
	return oActiveTab.iIndex;
}

// pokaz tytul kontentu o zadanym numerze
function showTitle(iIndex) {
	var sActiveTitleDivId = getActiveTabId("zakladkiBlokuNr1Lista") + "Pager";

	// zrob niewidocznymi wszystkie elementy div z tytulami (oporcz aktualnej)
	var arTabs = getTabsArray("zakladkiBlokuNr1Lista");
	for(var i = 0; i < arTabs.length; i++) {
		var sTitleDivId = arTabs[i].id + "Pager";
		if(sTitleDivId != sActiveTitleDivId) {
			var oTitleDiv = document.getElementById(sTitleDivId);	
			oTitleDiv.style.display = "none";
		}
	}

	// zrob widocznym konkretny element z tytulem ktory ma byc aktywny
	for(var i = 1; i <= 3; i++) {
		oTitle = document.getElementById(sActiveTitleDivId + i);
		if(i == iIndex) {
			oTitle.style.display = "block";
		}
		else {
			oTitle.style.display = "none";
		}
	}

	// uaktywnij caly div zbiorczy z tytulami dla danej zakladki
	var oActiveTitleDiv = document.getElementById(sActiveTitleDivId);
	oActiveTitleDiv.style.display = "block";
}

// dla aktywnej zakladki funkcja pokazuje kontent o numerze przekazanym jako parametr
function showContent(iIndex) {
	var sActiveContentDivId = getActiveTabId("zakladkiBlokuNr1Lista") + "Content";
	var arTabs = document.getElementById("zakladkiBlokuNr1Lista").arTabs;

	for(var k=0; k<arTabs.length; k++) {
		if(sActiveContentDivId != arTabs[k].id + "Content") {
			for(var i = 2; i <= 3; i++) {
				oNotActiveTabContent = document.getElementById(arTabs[k].id + "Content" + i);
				oNotActiveTabContent.style.display = "none";
			}
		}
	}

	for(var i = 1; i <= 3; i++) {
		oContent = document.getElementById(sActiveContentDivId + i);
		// jezeli zakladka jest aktywna pokaz 
		if(i == iIndex) {
			oContent.style.display = "block";
		}
		// jezeli nie - ukryj
		else {
			oContent.style.display = "none";
		}
	}

//	var oActiveContentDiv = document.getElementById(sActiveContentDivId);
//	oActiveContentDiv.style.display = "block";	
}

// funkcja definiuje wyglad i sposob zachowania sie przyciskow do zmiany numeru kontentu
function setButtonsBehavior(iActiveButton) {
	// jezeli przycisk nie odnosi sie do biezacego numeru kontentu
	// ustaw wskaznik myszy i dodaj zdarzenie
	for(var i = 1; i <= 3; i++) {
		if(i != iActiveButton) {
			var oButton = document.getElementById("pagerButton" + i);
			oButton.className = "";
			oButton.style.cursor = "pointer";
			addEventHandler(oButton, "click", setActiveContentEvent);
		}
	}
	// dla przycisku ktory wskazuje aktywny numer konentu ustaw klase aktywny
	// ustaw wskaznik myszy na zwykly i usun obsluge zdarzenia
	var oActiveButton = document.getElementById("pagerButton" + iActiveButton);
	oActiveButton.className = "aktywny";
	oActiveButton.style.cursor = "default";
	removeEventHandler(oActiveButton, "click", setActiveContentEvent);
}

// funkcja wywolywana przy zmianie zakladki - powoduje przeladowanie sie
// wszystkich elementow kontentu bloku (w odniesieniu do aktywnej zakladki)
function reloadAll(oEvent) {
	showActiveElements(getActiveContentIndex());
}


// funkcja wyswietla kontent o zadanym numerze
function showActiveElements(iActiveIndex) {
	showContent(iActiveIndex);
	setButtonsBehavior(iActiveIndex);
	var iNextTitle = iActiveIndex + 1;
	if(iNextTitle <= 3)
		showTitle(iNextTitle);
	else
		showTitle(1);
	setActiveContentIndex(iActiveIndex);
}

var iPagerIntervalId;
// funkcja aktywuje dzialanie "pagera"
function activatePager(fAutoSkipFunc) {

	oButtonLeft = document.getElementById("pagerButtonLeft");
	oButtonRight = document.getElementById("pagerButtonRight");	

	addEventHandler(oButtonLeft, "click", setActiveContentEvent);
	addEventHandler(oButtonRight, "click", setActiveContentEvent);

	arButtonsCenter = new Array();
	for(var i = 1; i <= 3; i++) {
		arButtonsCenter[i] = document.getElementById("pagerButton" + i);
		if(arButtonsCenter[i].className != "aktywny")	
			addEventHandler(arButtonsCenter[i], "click", setActiveContentEvent);
		else
			arButtonsCenter[i].style.cursor = "default";
	}

	var arTabs = getTabsArray("zakladkiBlokuNr1Lista");
	for(var i = 0; i < arTabs.length; i++) {
		addEventHandler(arTabs[i], "click", reloadAll);
	}	
	
	showActiveElements(1);
	
	if(fAutoSkipFunc) {
		iPagerIntervalId = setInterval(fAutoSkipFunc, CONTENT_SKIPPING_INTERVAL);
	}
}

function setNextActiveContent() {
	var iActiveIndex = getActiveContentIndex();

	iActiveIndex++;
	if(iActiveIndex > 3) {
		setNextTab();
		iActiveIndex = 1;
	}
	
	showActiveElements(iActiveIndex);
}
