/* polskie znaczki aby editplus zapisywal jako utf-8 -> ąśź */
var opoznienieSchowaj, tmp, gNastepneMenuNazwa="";
var opoznienie = new Array();
var i_subs_count = new Array();

//Pop Menu Constructor
function stworzKomorke(napis, dziecko, link, szerokosc) {
 this._napis = napis;
 this._dziecko = dziecko;
 this._link = link;
 if (szerokosc != undefined) { this._szerokosc = szerokosc; }
}

function uruchomMenu(menu_id) {
 // stworz glowne menu
 var zindex_value, kolor_index, tlo_kierunek, tlo_index;
 if (menu_id == 0) { zindex_value = 50; tlo_kierunek = 1; tlo_index = 0; }
 else { zindex_value = 10; tlo_kierunek = 2; tlo_index = 2; }
 var result = '<div id="Mmenu_' + menu_id + '_0" style="position: relative; visibility: hidden; z-index: ' + zindex_value + ';">';
 result += '<table class="menu_tablica_glowna' + menu_id + '" cellspacing="0" cellpadding="0">';
 var i_el_count = Mtablica[menu_id][0].length;
 for (var i_el=0; i_el<i_el_count; i_el++) {
  if (MtablicaPosition[menu_id] == 1 || i_el == 0) { result += '<tr>'; }
  // ustal rodzica
  dzieciak = Mtablica[menu_id][0][i_el]._dziecko;
  // dodaj pasek rozdzielajacy pola
  if (menu_id == 0) {
   result += '<td class="menu_separator_glowna' + menu_id + '"><img class="img_moz" src="img/menu1_pasek.gif" style="width: 2px; height: 23px;" alt="" /></td>';
  }
  result += '<td';
  if (dzieciak >= 0) { result += ' id="Mmenu_' + menu_id + '_0_' + i_el + '"'; }
  // dodaj szerokosc pola glownego menu
  if (Mtablica[menu_id][0][i_el]._szerokosc != undefined) { result += ' style="width: ' + Mtablica[menu_id][0][i_el]._szerokosc + 'px;"'; }
  tmp = Mtablica[menu_id][0][i_el]._link;
  if (dzieciak == -1) {
   result += ' class="menu_komorka_dzial' + menu_id + '"';
   //result += ' onmouseover="javascript: changeBgColor(this, 8);" onmouseout="javascript: changeBgColor(this, 9);"';
  }
  else {
   result += ' class="menu_komorka_glowna' + menu_id + '"';
   if (menu_id == 0) { result += ' onmouseover="javascript: pokazNMenu(this); changeBgImage(this, ' + tlo_index + ', ' + tlo_kierunek + ');"'; }
   else { result += ' onmouseover="javascript: pokazNMenu(this); changeBgColor(this, 2);"'; }
   result += ' onmouseout="javascript: schowajMenuOpoznienie(' + menu_id + ');"';
  }
  if (tmp != "") {
   // nowe okno
   if (tmp.indexOf("http://") == 0) {
    result += 'onclick="javascript: otworzOkno(\'' + tmp + '\', 1);"';
   }
   // obecne okno
   else {
    result += 'onclick="javascript: location.href=\'' + tmp + '\';"';
   }
  }
  result += '>';
  result += Mtablica[menu_id][0][i_el]._napis + '</td>';
  if (MtablicaPosition[menu_id] == 1 || i_el == (i_el_count-1)) { result += '</tr>'; }
  if (menu_id >= 1) {
   //if (dzieciak == -1) { result += '<tr><td class="menu_separator_dzial' + menu_id + '"></td></tr>'; }
   //else { result += '<tr><td class="menu_separator_glowna' + menu_id + '"></td></tr>'; }
   result += '<tr><td class="menu_separator_glowna' + menu_id + '"></td></tr>';
  }
 }
 result += '</table></div>';

 // stworz submenus
 i_subs_count[menu_id] = Mtablica[menu_id].length;
 for (var i_subs=1; i_subs<i_subs_count[menu_id]; i_subs++) {
  zindex_value++;
  result += '<div id="Mmenu_' + menu_id + '_' + i_subs + '" style="position: absolute; left: 0px; top: 0px; padding: 1px; visibility: hidden; z-index: ' + zindex_value + ';" onmouseover="javascript: pokazPMenu(this);" onmouseout="javascript: schowajMenuOpoznienie(' + menu_id + ');">';
  result += '<table class="menu_tablica_sub' + menu_id + '" cellspacing="0" cellpadding="0">';
  // dodaj pomaranczowy pasek dla submenu
  if (menu_id >= 1) { result += '<tr><td class="menu_naglowek_sub1"></td></tr>'; }
  i_el_count = Mtablica[menu_id][i_subs].length;
  for (i_el=0; i_el<i_el_count; i_el++) {
   // ustal rodzica
   tmp = Mtablica[menu_id][i_subs][i_el]._dziecko;
   // ustal numer koloru tla
   if (menu_id == 0) { kolor_index = 0; }
   else { kolor_index = 4; }
   if (MtablicaPosition[menu_id] == 1) { result += '<tr>'; }
   tmp = (tmp > 0) ? "menu_wiecej_sub" : "menu_komorka_sub";
   result += '<tr><td id="Mmenu_' + menu_id + '_' + i_subs + '_' + i_el + '" class="' + tmp + menu_id + '"';
   result += ' onmouseover="javascript: pokazNMenu(this); changeBgColor(this, ' + kolor_index + ');" onmouseout="javascript: schowjNMenuOpoznienie(' + menu_id + '); changeBgColor(this, ' + (kolor_index+1) + ');"';
   tmp = Mtablica[menu_id][i_subs][i_el]._link;
   if (tmp != "") { result += 'onclick="javascript: location.href=\'' + tmp + '\';"'; }
   result += '>';
   result += Mtablica[menu_id][i_subs][i_el]._napis + '</td></tr>';
   // separator
   if (i_el < (i_el_count-1)) {
    result += '<tr><td style="text-align: center;">';
    result += '<div class="menu_separator_sub' + menu_id + '">';
    result += '<img class="img_moz" src="img/nic.gif" style="width: 1px; height: 1px;" alt="" /></div></td></tr>';
   }
  }
  result += '</table></div>';
 }

 przypiszRodzicow(menu_id);
 document.write(result);
 menuZaladowane = 1;

 var obj = layerObj("Mmenu_" + menu_id + "_0");
 obj.visibility = "visible";
}


function przypiszRodzicow(menu_id) {
 for (var i_subs=0; i_subs<i_subs_count[menu_id]; i_subs++) {
  i_el_count = Mtablica[menu_id][i_subs].length;
  for (i_el=0; i_el<i_el_count; i_el++) {
   tmp = Mtablica[menu_id][i_subs][i_el];
   if (tmp._dziecko > 0) {
    Mtablica[menu_id][tmp._dziecko]._rodzicTablicaId = i_subs;
    Mtablica[menu_id][tmp._dziecko]._rodzicKomorkaId = i_el;
   }
  }
 }
}


function schowajWszystkieMenu(menu_id) {
 window.clearTimeout(opoznienie[menu_id]);
 for (var i_subs=0; i_subs<i_subs_count[menu_id]; i_subs++) {
  i_el_count = Mtablica[menu_id][i_subs].length;
  for (i_el=0; i_el<i_el_count; i_el++) {
   tmp = Mtablica[menu_id][i_subs][i_el];
   elementNazwa = "Mmenu_" + menu_id + "_" + i_subs + "_" + i_el;
   tmp = layerGet(elementNazwa);
   if (tmp != null) {
    if (menu_id == 0) {
     if (i_subs == 0) { changeBgImage(tmp, 1, 1); } // zmiana wzoru tla 
     else { changeBgColor(tmp, 1); } // zmiana koloru tla
    }
    else {
     if (i_subs == 0) { changeBgColor(tmp, 3); } // zmiana wzoru tla 
     else { changeBgColor(tmp, 5); } // zmiana koloru tla
    }
   }
   if (i_subs > 0) {
    obiekt_obj = layerObj("Mmenu_" + menu_id + "_" + i_subs);
    obiekt_obj.visibility = "hidden";
   }
  }
 }
}


function schowajMenuOpoznienie(menu_id) {
 trzymajMenu(menu_id);
 opoznienie[menu_id] = window.setTimeout("schowajWszystkieMenu(" + menu_id + ")", 500);
}


function schowajPMenu() {
 if (gNastepneMenuNazwa != "") {
  obiekt_obj = layerObj(gNastepneMenuNazwa);
  obiekt_obj.visibility = "hidden";
 }
}

function schowjNMenuOpoznienie() {
 opoznienieSchowaj = window.setTimeout("schowajPMenu()", 500);
}


function znajdzPozycjeX(obj) {
 var curleft = 0;
 if (obj.offsetParent) {
  while (obj.offsetParent) {
   curleft += obj.offsetLeft
   obj = obj.offsetParent;
  }
 }
 else if (obj.x)
  curleft += obj.x;
 return curleft;
}


function znajdzPozycjeY(obj) {
 var curtop = 0;
 if (obj.offsetParent) {
  while (obj.offsetParent) {
   curtop += obj.offsetTop
   obj = obj.offsetParent;
  }
 }
 else if (obj.y)
  curtop += obj.y;
 return curtop;
}


function trzymajMenu(menu_id) {
 window.clearTimeout(opoznienie[menu_id]);
}

function trzymajNMenu() {
 window.clearTimeout(opoznienieSchowaj);
}


// pobieramy numer najwyzszego menu i dla niego odpalamy mechanizm
// ktory pobiera poprzednie menu i opkazuje je i zapetla sie az id menu jest wieksze od 0
function pokazNMenu(aktualnyElementNazwa) {
 if (menuZaladowane == 1) {

  aktualnyElementNazwa = aktualnyElementNazwa.id;
  rozbitaNazwa = aktualnyElementNazwa.split("_"); // rozbij nazwe elementu
  aktualneMenuNumer = rozbitaNazwa[1];
  aktualneMenuId = rozbitaNazwa[2];
  aktualnyElementId = rozbitaNazwa[3];

  schowajWszystkieMenu(aktualneMenuNumer);
  trzymajNMenu();
  trzymajMenu(aktualneMenuNumer);

  nastepneMenuId = Mtablica[aktualneMenuNumer][aktualneMenuId][aktualnyElementId]._dziecko;
  nastepneMenuNazwa = "Mmenu_" + aktualneMenuNumer + "_" + nastepneMenuId;

  if (nastepneMenuId > 0) { // pokaz i rozloz jesli trzeba nastepne menu
   var nastepny_obj = layerObj(nastepneMenuNazwa);
   var nastepny_sty = layerGet(nastepneMenuNazwa);
   if (nastepny_sty.left == undefined && nastepny_sty.top == undefined) { // jesli jeszcze nie rozlozone
    var aktualny_sty = layerGet(aktualnyElementNazwa);
    var aktualny_x = znajdzPozycjeX(aktualny_sty);
    var aktualny_y = znajdzPozycjeY(aktualny_sty);
    var aktualny_width = aktualny_sty.offsetWidth;
    var aktualny_height = aktualny_sty.offsetHeight;
    if (aktualneMenuId == 0 && MtablicaPosition[aktualneMenuNumer] == 0) { // horyzontalne
     nastepny_obj.left = aktualny_x + "px";
     nastepny_obj.top = ((aktualny_y + aktualny_height)-1) + "px";
    }
    else {
     // sprawdz czy nie wychodzi za obszar strony w prawo
	 l_aktualny_x = aktualny_x + aktualny_width;
	 l_max_x = (ds-780)/2 + 780;
	 if (l_aktualny_x >= l_max_x) { l_aktualny_x = (aktualny_x - aktualny_width)+20; }
	 else { l_aktualny_x = (aktualny_x + aktualny_width)-20; }
     nastepny_obj.left = l_aktualny_x + "px";
     nastepny_obj.top = (aktualny_y + 5) + "px";
    }
   }
   nastepny_obj.visibility = "visible";
   gNastepneMenuNazwa = nastepneMenuNazwa;
  }
  else { gNastepneMenuNazwa = ""; }
 }
}


function pokazPMenu(aktualnyElementNazwa) {
 if (menuZaladowane == 1) {
  aktualnyElementNazwa = aktualnyElementNazwa.id;
  rozbitaNazwa = aktualnyElementNazwa.split("_"); // rozbij nazwe elementu
  aktualneMenuNumer = rozbitaNazwa[1];
  aktualneMenuId = rozbitaNazwa[2];
  aktualnyElementId = rozbitaNazwa[3];
  pokazPoprzednieMenu(aktualneMenuNumer, aktualneMenuId, aktualnyElementId, 0)
 }
}


function pokazPoprzednieMenu(aktualneMenuNumer, aktualneMenuId, aktualnyElementId, oznaczPole) {
 trzymajMenu(aktualneMenuNumer);

 // oznacz pole wyboru
 if (oznaczPole == 1) {
  poprzedniElementNazwa = "Mmenu_" + aktualneMenuNumer + "_" + aktualneMenuId + "_" + aktualnyElementId;
  tmp = layerGet(poprzedniElementNazwa);
  if (aktualneMenuNumer == 0) {
   if (poprzednieMenuId == 0) { changeBgImage(tmp, 0, 1); } // zmiana wzoru tla
   else { changeBgColor(tmp, 0); } // zmiana koloru tla
  }
  else {
   if (poprzednieMenuId == 0) { changeBgColor(tmp, 2); } // zmiana wzoru tla
   else { changeBgColor(tmp, 4); } // zmiana koloru tla
  }
 }

 // jesli to menu wieksze od 0 to pokaz je
 if (aktualneMenuId > 0) {
  pokazAktualneMenu(aktualneMenuNumer, aktualneMenuId);
  poprzednieMenuId = Mtablica[aktualneMenuNumer][aktualneMenuId]._rodzicTablicaId;
  poprzedniElementId = Mtablica[aktualneMenuNumer][aktualneMenuId]._rodzicKomorkaId;
  pokazPoprzednieMenu(aktualneMenuNumer, poprzednieMenuId, poprzedniElementId, 1); // pokaz obecne menu i poprzednie az do menu z id 0
 }
}


function pokazAktualneMenu(aktualneMenuNumer, aktualneMenuId) {
 var obecneMenuNazwa = "Mmenu_" + aktualneMenuNumer + "_" + aktualneMenuId;
 var obiekt_obj = layerObj(obecneMenuNazwa);
 obiekt_obj.visibility = "visible";
}
