/* polskie znaczki aby editplus zapisywal jako utf-8 -> ąśź */
var tablicaWartosciAlpha = new Array(); // wartosc aplha obiektow
var tablicaDocelowaAlpha = new Array(); // wartosc docelowa alpha
var tablicaAlphaInterval = new Array(); // co ile wywoluj funkcje do zarzadania alpha
var tablicaAlphaAdd = new Array(); // co ile zwiekszaj.zmniejszaj alpha danego obiektu
var tablicaAlphaTimeout = new Array(); // obiekt timeout dla obiektow
var tablicaAlphaZakonczono = new Array(); // co zrobic po zakonczeniu petli alphy

var tablicaAktualnyRozmiarX = new Array(); // przy rozszerzaniu/zwerzaniu obiektow aktualny rozmiar X
var tablicaAktualnyRozmiarY = new Array(); // przy rozszerzaniu/zwerzaniu obiektow aktualny rozmiar Y
var tablicaDocelowyRozmiarX = new Array(); // przy rozszerzaniu/zwerzaniu obiektow docelowy rozmiar X
var tablicaDocelowyRozmiarY = new Array(); // przy rozszerzaniu/zwerzaniu obiektow docelowy rozmiar Y
var tablicaRozmiarTimeout = new Array(); // obiekt timeout dla obiektow
var tablicaRozmiarZakonczono = new Array(); // co ma zrobic po zakonczeniu zmiany rozmiaru

var objRuchPojemnik = new Array(); // uchwyt do obiektu
var objRuchPojemnikStatus = new Array(); // czy przesuwac dany obiekt
var objRuchAktualnePolozenie = new Array(); // aktualne polozenie obiektu
var objRuchInterval = new Array(); // przerwanie obiektu przesuwanego
var objRuchGora = new Array();

var ajaxboxInfPokazany = 0; // czy ajax box informacyjny jest pokazywany

// -------------------------- GŁÓWNE FUNKCJE ---------------------------
// pobiera pozycje obiektu od gornej krawedzi
function pozycjaObiektuTop(obiekt) {
 var obj = layerObj(obiekt);
 var objGet = layerGet(obiekt);
 if (obj.top) { return parseInt(obj.top); }
 if (obj.pixelTop) { return parseInt(obj.pixelTop); }
 if (objGet.offsetTop) { return parseInt(objGet.offsetTop); }
 return (0);
}

// pobiera pozycje obiektu od lewej krawedzi
function pozycjaObiektuLeft(obiekt) {
 var obj = layerObj(obiekt);
 var objGet = layerGet(obiekt);
 if (obj.left) { return parseInt(obj.left); }
 if (obj.pixelLeft) { return parseInt(obj.pixelLeft); }
 if (objGet.offsetLeft) { return parseInt(objGet.offsetLeft); }
 return (0);
}

// pobiera szerokosc obiektu
function szerokoscObiektu(obiekt) {
 var objGet = layerGet(obiekt);
 if (objGet.offsetWidth) { return parseInt(objGet.offsetWidth); }
 //if (objGet.clip.width) { return parseInt(objGet.clip.width); }
 return (0);
}

// pobiera wysokosc obiektu
function wysokoscObiektu(obiekt) {
 var objGet = layerGet(obiekt);
 if (objGet.offsetHeight) { return parseInt(objGet.offsetHeight); }
 //if (objGet.clip.height) { return parseInt(objGet.clip.height); }
 return (0);
}

// ustawia polozenie top obiektu
function narzucObiektTop(obiekt, wartosc) {
 var obj = layerObj(obiekt);
 obj.top = parseInt(wartosc) + "px";
}

// ustawia polozenie left obiektu
function narzucObiektLeft(obiekt, wartosc) {
 var obj = layerObj(obiekt);
 obj.left = parseInt(wartosc) + "px";
}

// ustawia szerokosc obiektu
function narzucObiektSzerokosc(obiekt, wartosc) {
 var obj = layerObj(obiekt);
 obj.width = parseInt(wartosc) + "px";
}

// ustawia wysokosc obiektu
function narzucObiektWysokosc(obiekt, wartosc) {
 var obj = layerObj(obiekt);
 obj.height = parseInt(wartosc) + "px";
}

// ustawia obiekt na srodku ekranu
function ustawNaSrodku(obiekt, dodaj_x, dodaj_y) {
 if(dodaj_x == undefined) { dodaj_x = 0; }
 if(dodaj_y == undefined) { dodaj_y = 0; }
 obj = layerObj(obiekt);
 obj.left = Math.round((ds - szerokoscObiektu(obiekt))/2) + dodaj_x + "px";
 obj.top = Math.round(((dw - wysokoscObiektu(obiekt))/2) + pozycjaStronyTop()) + dodaj_y + "px";
}
// -------------------------- GŁÓWNE FUNKCJE - KONIEC ---------------------------


// -------------------------- AJAX BOX INFORMACYJNY --------------------------
function konfigurujBoxInf(opis, przycisk, funkcja_js) {
 var opis_put = opis;
 opis_put += '<br /><br />';
 opis_put += '<form name="ajax_box_inf" id="ajax_box_inf" method="post" action="" style="margin: 0px; padding: 0px;">';
 opis_put += '<input type="button" name="przycisk1" class="przycisk" value="' + przycisk + '" style="background-color: #f9fcf9; width: 120px; cursor: pointer;" onclick="javascript: ' + funkcja_js + ';" />';
 opis_put += '</form><br />';
 layerPut("ajax_box_inf_tresc", opis_put);
 
}

function rozlozBoxInformacyjny() {
 ustawNaSrodku("ajaxBoxInformacyjny");
 ustawOdstepTop("ajaxBoxInformacyjny", pozycjaObiektuTop("ajaxBoxInformacyjny"));
 ustawObiektRozruch("ajaxBoxInformacyjny", true);
}

function pokazInformacje() {
 ajaxboxInfPokazany = 1;
 
 // ustawiaj na nowo za kazdym razem bo mogl sie zmenic rozmiar glownego okienka
 rozlozBoxInformacyjny();
 
 // odpal alphy obu pojemnikow informacyjnych
 tablicaAlphaZakonczono["ajaxBoxInformacyjny"] = "";
 tablicaDocelowaAlpha["ajaxBoxInformacyjny"] = 100;
 zarzadzajAlpha("ajaxBoxInformacyjny");
}


function schowajInformacje() {
 // odpal alphy obu pojemnikow informacyjnych
 tablicaAlphaZakonczono["ajaxBoxInformacyjny"] = "informacjeSchowane";
 tablicaDocelowaAlpha["ajaxBoxInformacyjny"] = 0;
 zarzadzajAlpha("ajaxBoxInformacyjny");
}

function informacjeSchowane() {
 ajaxboxInfPokazany = 0;
 
 var obj = layerObj("ajaxBoxInformacyjny");
 obj.visibility = "hidden";
 objRuchPojemnikStatus["ajaxBoxInformacyjny"] = false;
}
// -------------------------- AJAX BOX INFORMACYJNY - KONIEC ---------------------


// -------------------------- DUZE TLO --------------------------------
// odpala tlo duze
function odpalAjaxTlo() {
 tablicaWartosciAlpha["ajaxTlo"] = 0;
 ustawRozmiarPicBack();
 narzucAlpha("ajaxTlo", tablicaWartosciAlpha["ajaxTlo"]) // wyzeruj alpha
 var obj = layerObj("ajaxTlo");
 obj.display = "block";
 zarzadzajAlpha("ajaxTlo");
}

// rozpoczyan sekwencje chowania tla duzego
function schowajAjaxTlo() {
 tablicaDocelowaAlpha["ajaxTlo"] = 0;
 tablicaAlphaZakonczono["ajaxTlo"] = "ukryjAjaxTlo";
 zarzadzajAlpha("ajaxTlo");
}

// chowa calkowicie tlo duze
function ukryjAjaxTlo() {
 var obj = layerObj("ajaxTlo");
 obj.display = "none";
}

// ustawia rozmiar tla w zaleznosci od rozmiarów aktywnego okna przegladarki
function ustawRozmiarPicBack() {
 wymiaryOkna();
 var obj = layerObj("ajaxTlo");
 obj.width = ds + "px";
 obj.height = dwc + "px";
}
// -------------------------- DUZE TLO - KONIEC --------------------------------


// -------------------------- PRZESUWANIE XY ------------------------------
// pobiera pozycje scroll top strony
function pozycjaStronyTop() {
 if (window.pageYOffset != null) { return parseInt(window.pageYOffset); }
 if (document.body.scrollTop != null) { return parseInt(document.body.scrollTop); }
 return (0);
}

// zmienia wartosc odstepu od top strony
function ustawOdstepTop(obiekt, od_gory) {
 objRuchAktualnePolozenie[obiekt] = od_gory;
 objRuchGora[obiekt] = od_gory - pozycjaStronyTop();
}

// narzuca wartosc od_gory i polozenie
function narzucOdstepTop(obiekt, od_gory) {
 objRuchGora[obiekt] = od_gory;
 objRuchAktualnePolozenie[obiekt] = od_gory + pozycjaStronyTop();
}

// odpala obiekt ktory ma byc przesuwany
function ustawObiektRozruch(obiekt, pokaz) {
 objRuchPojemnik[obiekt] = layerObj(obiekt);
 objRuchPojemnikStatus[obiekt] = true;
 if (pokaz == true) { objRuchPojemnik[obiekt].visibility = "visible"; }
 ustawObiekt(obiekt);
}

// petla - ustawia obiekt na wskaznej pozycji
function ustawObiekt(obiekt) {
 clearTimeout(objRuchInterval[obiekt]);
 objRuchAktualnePolozenie[obiekt] += Math.ceil((pozycjaStronyTop() + objRuchGora[obiekt] - objRuchAktualnePolozenie[obiekt])/8);

 // gdy nie ma odstepu od gory a zdjecie wychodzi nad ramke
 if (objRuchAktualnePolozenie[obiekt] <= 0) { objRuchAktualnePolozenie[obiekt] = 0; }
 
 // jesli polozenie po powyzszej poeracji jest wieksze od zera
 if (objRuchAktualnePolozenie[obiekt] > 0) {
  // jesli wychodzi na dole za obszar przegladarki
  if ((objRuchAktualnePolozenie[obiekt] + tablicaAktualnyRozmiarY[obiekt]) > (pozycjaStronyTop() + dw)) {
   calkowita_wysokosc = pozycjaStronyTop() + dw;
   nowe_polozenie = calkowita_wysokosc - (tablicaAktualnyRozmiarY[obiekt] + 10); // + 10 dla cieni
   // jesli nowe polozenie nie jest mniejsze od 0 to uluz na tej pozycji
   if (nowe_polozenie > 0) { objRuchAktualnePolozenie[obiekt] = nowe_polozenie; }
  }
 }
 
 objRuchPojemnik[obiekt].top = objRuchAktualnePolozenie[obiekt] + "px";
 
 if (objRuchPojemnikStatus[obiekt] == true) {
  objRuchInterval[obiekt] = setTimeout("ustawObiekt('" + obiekt + "')", 10);
 }
}
// -------------------------- PRZESUWANIE XY - KONIEC ------------------------------


// ----------------------- ZARZADANIE ROZMIAREM OBIEKTOW ---------------------------
// w petli zmienia rozmiar danego obiektu
function zarzadzajRozmiarem(obiekt, naSrodku, dodaj_x, dodaj_y) {
 if (dodaj_x == undefined) { dodaj_x = 0; }
 if (dodaj_y == undefined) { dodaj_y = 0; }
 var odpalTimeout = false;
 clearTimeout(tablicaRozmiarTimeout[obiekt]);
 
 if (tablicaAktualnyRozmiarX[obiekt] <= tablicaDocelowyRozmiarX[obiekt]) { tmpSzer = Math.ceil(tablicaAktualnyRozmiarX[obiekt]); }
 else { tmpSzer = Math.floor(tablicaAktualnyRozmiarX[obiekt]); }

 if (tmpSzer != tablicaDocelowyRozmiarX[obiekt]) {
  tablicaAktualnyRozmiarX[obiekt] = zwrocNowyRozmiarX(obiekt, tablicaAktualnyRozmiarX[obiekt]);
  narzucObiektSzerokosc(obiekt, parseFloat(tablicaAktualnyRozmiarX[obiekt]));
  odpalTimeout = true;
 }
 else { tablicaAktualnyRozmiarX[obiekt] = tablicaDocelowyRozmiarX[obiekt]; }
 
 if (tablicaAktualnyRozmiarY[obiekt] <= tablicaDocelowyRozmiarY[obiekt]) { tmpWys = Math.ceil(tablicaAktualnyRozmiarY[obiekt]); }
 else { tmpWys = Math.floor(tablicaAktualnyRozmiarY[obiekt]); }

 if (tmpWys != tablicaDocelowyRozmiarY[obiekt]) {
  tablicaAktualnyRozmiarY[obiekt] = zwrocNowyRozmiarY(obiekt, tablicaAktualnyRozmiarY[obiekt]);
  narzucObiektWysokosc(obiekt, parseFloat(tablicaAktualnyRozmiarY[obiekt]));
  odpalTimeout = true;
 }
 else { tablicaAktualnyRozmiarY[obiekt] = tablicaDocelowyRozmiarY[obiekt]; }

 if (odpalTimeout == true) {
  // dla okna zdjec zapisz nowa pozycje top
  if (naSrodku == true) {
   ustawNaSrodku(obiekt, dodaj_x, dodaj_y);
   if (obiekt == "picObrazekBox" || obiekt == "picObrazekBoxTlo") {
	narzucOdstepTop(obiekt, pozycjaObiektuTop(obiekt) - pozycjaStronyTop());
   }
  }
  tablicaRozmiarTimeout[obiekt] = setTimeout("zarzadzajRozmiarem('" + obiekt + "', " + naSrodku + ", " + dodaj_x + ", " + dodaj_y + ")", 10);
 }
 else {
  // przejdz do wskazanej funkcji
  if (tablicaRozmiarZakonczono[obiekt] && tablicaRozmiarZakonczono[obiekt] != "") {
   setTimeout(tablicaRozmiarZakonczono[obiekt] + "();", 0);
  }
  tablicaRozmiarZakonczono[obiekt] = "";
 }
}

// otrzymuja aktualny rozmiar X i zwraca nowy
function zwrocNowyRozmiarX(obiekt, aktualnyRozmiarX) {
 if (tablicaDocelowyRozmiarX[obiekt] > aktualnyRozmiarX) { nowyRozmiarX = (tablicaDocelowyRozmiarX[obiekt]-aktualnyRozmiarX)/7; }
 else { nowyRozmiarX = (tablicaDocelowyRozmiarX[obiekt] - aktualnyRozmiarX)/3; }
 nowyRozmiarX = aktualnyRozmiarX + nowyRozmiarX;
 return nowyRozmiarX;
}

// otrzymuja aktualny rozmiar Y i zwraca nowy
function zwrocNowyRozmiarY(obiekt, aktualnyRozmiarY) {
 if (tablicaDocelowyRozmiarY[obiekt] > aktualnyRozmiarY) { nowyRozmiarY = (tablicaDocelowyRozmiarY[obiekt]-aktualnyRozmiarY)/7; }
 else {  nowyRozmiarY = (tablicaDocelowyRozmiarY[obiekt] - aktualnyRozmiarY)/3; }
 nowyRozmiarY = aktualnyRozmiarY + nowyRozmiarY;
 return nowyRozmiarY;
}
// ----------------------- ZARZADANIE ROZMIAREM OBIEKTOW - KONIEC ---------------------------


// ----------------------- ZARZADANIE ALPHA OBIEKTOW ---------------------------
// dodaje obiekt do tablic alpha
function dodajDoAlpha(obiekt, alpha_obecna, alpha_interval, alpha_dodaj, alpha_funkcja) {
 tablicaWartosciAlpha[obiekt] = alpha_obecna;
 tablicaAlphaInterval[obiekt] = alpha_interval;
 tablicaAlphaAdd[obiekt] = alpha_dodaj;
 tablicaAlphaZakonczono[obiekt] = alpha_funkcja;
}

// zmienia wartosc docelowa alpha dla danego obiektu i odpala go
function ustalDoceloweAlpha(obiekt, alpha_docelowa) {
 tablicaDocelowaAlpha[obiekt] = alpha_docelowa;
 zarzadzajAlpha(obiekt);
}

// narzuca wartosc alpha dla danego obiektu
function narzucAlpha(obiekt, wartosc) {
 clearTimeout(tablicaAlphaTimeout[obiekt]);
 var obj = layerObj(obiekt);
 wartosc = parseInt(wartosc);
 ff_op_opacity = (wartosc/100)-0.01;
 obj.filter="alpha(opacity=" + wartosc+ ")";
 // po przyjeciu wartosci 1 - nn6 nie schodzi w dol wartosci, dlatego od wartosci odejmuje 0.01
 obj.MozOpacity=ff_op_opacity;
 obj.opacity=ff_op_opacity;
}

// petla do zmiany wartosci alpha danego obiektu
function zarzadzajAlpha(obiekt) {
 if (tablicaDocelowaAlpha[obiekt] > tablicaWartosciAlpha[obiekt]) { // rozjasnienie
  tablicaWartosciAlpha[obiekt] = tablicaWartosciAlpha[obiekt] + tablicaAlphaAdd[obiekt];
  // sprawdz czy nie przeskoczylismy wartosci docelowej
  if (tablicaWartosciAlpha[obiekt] > tablicaDocelowaAlpha[obiekt]) { tablicaWartosciAlpha[obiekt]=tablicaDocelowaAlpha[obiekt]; }
 }
 else { // zciemnienie
  tablicaWartosciAlpha[obiekt] = tablicaWartosciAlpha[obiekt] - tablicaAlphaAdd[obiekt];
  // sprawdz czy nie przeskoczylismy wartosci docelowej
  if (tablicaWartosciAlpha[obiekt] < tablicaDocelowaAlpha[obiekt]) { tablicaWartosciAlpha[obiekt]=tablicaDocelowaAlpha[obiekt]; }
 }

 narzucAlpha(obiekt, tablicaWartosciAlpha[obiekt]);

 if (tablicaDocelowaAlpha[obiekt] == tablicaWartosciAlpha[obiekt]) {
  // przejdz do wskazanej funkcji
  if (tablicaAlphaZakonczono[obiekt] && tablicaAlphaZakonczono[obiekt] != "") {
   setTimeout(tablicaAlphaZakonczono[obiekt] + "();", 0);
  }
  tablicaAlphaZakonczono[obiekt] = "";
 }
 else {
  tablicaAlphaTimeout[obiekt] = setTimeout("zarzadzajAlpha('" + obiekt + "');", tablicaAlphaInterval[obiekt]);
 }
}

// ----------------------- ZARZADANIE ALPHA OBIEKTOW - KONIEC ---------------------------

