  ///////////////////////////////////////////////
  // Zmienne uzytkowe

  var isIE = (document.all) ? true : false; 
  var isNS4 = (document.layers) ? true : false; 
  var isNS6 = (document.getElementById&&!document.all) ? true : false;

  var ns4 = isNS4;
  var ie4 = isIE;

  // Zmienna przechowujaca identyfikatory uruchomionych przerwan
  var timerStore = Array;
  // Zmienna przechowujaca obiekty, ktore maja byc wywolane w poszczegolnych przerwaniach
  var timerObjStore = Array();
  // Zmienna przechowujaca nazwy metod, ktore maja byc uruchomione dla poszczegolnych obiektow
  var timerMethodStore = Array();
  // Zmienna przechowujaca argumenty, z ktorymi maja byc wywolane metody
  var timerArgsStore = Array();
  // Zmienna przechowujaca identyfikator aktualnie wolnego przerwania
  var timerEventId = 0;

  // pokazywanie / chowanie warstw

    function show (id) {
        var layer = getLayer (id);
        if (layer != null) {
            if (isNS6) {
                layer.style.visibility='visible';
            } //if
            else {
                if (isNS4) {
                    layer.visibility = "show";
                } //if
                else {
                    if (isIE) {
                        layer.style.visibility = "visible";
                    } //if
                } //else
            } //else
        } //if
    } /*show*/

    function hide (id) {
        var layer = getLayer (id);
        if (layer != null) {
            if (isNS6) {
                layer.style.visibility='hidden';
            } //if
            else {
                if (isNS4) {
                    layer.visibility = "hide";
                } //if
                else {
                    if (isIE) {
                        layer.style.visibility = "hidden";
                    } //if
                } //else
            } //else
        } //if
    } /*hide*/


  // Wyszukiwanie warstw

  function getLayer(layer_name) {
    if (isNS6)
      return document.getElementById(layer_name);
    else if (ns4)
      return document.layers[layer_name];
    else if (ie4) 
      return document.all[layer_name];

    return null;
  }
  
  function getLeft(id) {
    if (isNS6)
      return parseInt(document.getElementById(id).style.left);
    else if (ns4)
      return document.layers[id].left;
    else if (ie4) 
      return Number(document.all[id].style.left.substring(0, document.all[id].style.left.indexOf("p")));

    return 0;
  }

  function getTop(id) {
    if (isNS6)
      return parseInt(document.getElementById(id).style.top);
    else if (ns4)
      return document.layers[id].top;
    else if (ie4)
      return Number(document.all[id].style.top.substring(0, document.all[id].style.top.indexOf("p")));

    return 0;
  }

  function getWidth(id) {
    if (isNS6)
      return parseInt(document.getElementById(id).style.width);
    else if (ns4)
      return 160 /*lay.width*/;
    else if (ie4)
      return Number(document.all[id].style.width.substring(0, document.all[id].style.width.indexOf("p")));

    return 0;
  }

  function getHeight(id) {
    if (isNS6)
      return parseInt(document.getElementById(id).style.height);
    else if (ns4)
      return 110 /*lay.height*/;
    else if (ie4)
      return Number(document.all[id].style.height.substring(0, document.all[id].style.height.indexOf("p")));

    return 0;
  }

  /* Obsluga kursora myszy */

  function getMenuPositionX (a_name) {
    var x=100;
    if (ns4) {
      for (var i=0; i<document.anchors.length; i++) {
        if (document.anchors[i].name==a_name) { 
          x=document.anchors[i].x;
          break; 
        }
      }
      x+=0;
    } else if (ie4) {
      var el=document.all[a_name];
      var ol=el.offsetLeft;
      while ((el=el.offsetParent) != null) { 
        ol += el.offsetLeft; 
      }
      x=ol+0;
    }
    else if (isNS6) {
      var el=document.getElementById(a_name);
      var ol=el.offsetLeft;
      while ((el=el.offsetParent) != null) { 
        ol += el.offsetLeft; 
      }
      x=ol+0;
    }
    return x;
  } /*getMenuPositionX*/

  function getMenuPositionY (a_name) {
    var y=50;
    if (ns4) {
      for (var i=0; i<document.anchors.length; i++) {
        if (document.anchors[i].name==a_name) { 
          y=document.anchors[i].y;
          break; 
        }
      }
      y+=0;
    } else if (ie4) {
      var el=document.all[a_name];
      var ot=el.offsetTop;
      while((el=el.offsetParent) != null) { 
        ot += el.offsetTop; 
      }
      y=ot+0;
    }
    else if (isNS6) {
      var el=document.getElementById(a_name);
      var ot=el.offsetTop;
      while((el=el.offsetParent) != null) { 
        ot += el.offsetTop; 
      }
      y=ot+0;
    }
    return y;
  } /*getMenuPositionY*/

  /* obsluga menu */

  // Tabica wyswietlonych warstw
  var showed = new Array();
  showed[0] = 0;
  // Tablica pokazujaca warswe, otworzona przez warstwe maciezysta
  // uzywana do szybkiego chowania warstw w sytuacji, gdy trzeba otworzyc nowa
  // - przejscie od jednej opcji menu do drugiej
  var mainSubMenu = new Array();
  // Tablica przechowuje informacje, czy menu glowne wywolalo podmenu
  var mainMenu = new Array();
  // Tablica przechowuje informacje, ktora z warstw jest polaczona
  // z warstwa menu glownego
  var opened_by = new Array();
  // Tablica przechowuje informacje, ktora z warstw sa przyblokowene przed schowaniem
  // z powodu tego, ze otworzyly nowe submenu - zapisy kogo - kto blokuje
  var blocked_by = new Array();
  // Taka sama jak wyzej, tylko odwrotne zapisy (kto - kogo blokuje)
  var blocking = new Array();
  // Tablica przechowuje identyfikatory tych warst, ktore mozna juz schowac, 
  // jednak chowanie jest przyblokowane z powodu utworzenia submenu
  var ready_to_hide = new Array();
  // Identyfikator ostatnio otwartej pozycji w menu
//  current_menu = null;
  var timerID = new Array();
 
  function tS(pageid, parent_id) {
    if (! showed[pageid]) {
      showed[pageid] = 1;
      cH(pageid);
      ready_to_hide[pageid] = 0;
      if (blocked_by[parent_id]) {
        blocking[blocked_by[parent_id]] = 0;
      }
      blocked_by[parent_id] = pageid;
      if (opened_by[parent_id]) {
        hideMenuNow(opened_by[parent_id]);
      }
      opened_by[parent_id] = pageid;
      blocking[pageid] = parent_id;
      var posX = getMenuPositionX('a'+pageid);
      var x_add = 244;
      var x_add_alt = -244;
      if (isIE) {
          x_add -= 4;
          x_add_alt += 4;
      } //if

      var y_add = -6;
      moveDiv(posX+x_add, getMenuPositionY('a'+pageid)+y_add, 's_' + pageid, posX+x_add_alt);
      show('s_' + pageid);
    }
    return true;
  }

  function tS1(pageid, parent_id) {
    if (! showed[pageid]) {
      showed[pageid] = 1;
      cH(pageid);
      ready_to_hide[pageid] = 0;
      if (blocked_by[parent_id]) {
        blocking[blocked_by[parent_id]] = 0;
      }
      blocked_by[parent_id] = pageid;
      if (opened_by[parent_id]) {
        hideMenuNow(opened_by[parent_id]);
      }
      opened_by[parent_id] = pageid;
      blocking[pageid] = parent_id;

      var x = getLayerX ('a'+pageid);
      var w = getLayerW ('a'+pageid);
      var posX = getMenuPositionX('a'+pageid);
      var posY = getMenuPositionY('a'+pageid);
      var h = getLayerH ('a'+pageid);
      var x_add = 0;
      var x_alt = x+w-getLayerW ('s_'+pageid) + 2;
      var y_add = 8; //25;
      moveDiv(posX+x_add, posY+h+y_add, 's_' + pageid, x_alt);
      show('s_' + pageid);
    }
    return true;
  }
  
  function uS(pageid) {
    pH(pageid);
    return true;
  }

  function hM(parent_id) {
    if (opened_by[parent_id]) {
      hideMenuNow(opened_by[parent_id]);
    }
  }

  function pH(page_id) {

    // Przygotowuje menu do ukrycia - ustawia timer na 1 sekunde
    timerID[page_id] = setTimeout("hideMenu('" + page_id + "')", 1000);
  }

  function cH(page_id) {
    // Anuluje chowanie warstwy, ktora zostala ustawiona w kolejce do ukrycia
    if (timerID[page_id]){
      clearTimeout(timerID[page_id]);
      timerID[page_id] = 0;
      ready_to_hide[page_id] = 0;
    }
  }

  function hideMenu(page_id) {
    // Przygotowuje do ukrycia warstwy
    if (! blocked_by[page_id]) {
      showed[page_id] = 0;
      cH(page_id);
      if (mainMenu[page_id]) {
          hide('l_' + page_id);
          mainMenu[page_id] = 0;
          if (mainSubMenu[page_id]) {
              hide('s_' + page_id);
              mainSubMenu[page_id]=0;
          }
      }
      else {
          hide('s_' + page_id);
      }
      if (blocking[page_id]) {
        // jezeli aktualnie chowana warstwa blokowala ukrycie innej warstwy
        blocked_id = blocking[page_id];
        // to odblokowujemy te inna - parentMenu
//        opened_by[page_id] = 0;
        blocking[page_id] = 0;
        if (blocked_by[blocked_id] == page_id) {
          blocked_by[blocked_id] = 0;
          if (ready_to_hide[blocked_id]) {
            // jezeli blokowana warstwa byla gotowa do schowania, to ja chowamy
            hideMenu(blocked_id);
          }
        }
      }
    } else {
      ready_to_hide[page_id] = 1;
    }
  }

  function hideMenuNow(page_id) {
    // Chowa warstwe natychmiast, ukrywajac jednoczesnie wszystkie warstwy 
    // otworzone powyzej 
    cH(page_id);
    if (mainMenu[page_id]) {
      hide('l_' + page_id);
      mainMenu[page_id] = 0;
        if (mainSubMenu[page_id]) {
            hide('s_' + page_id);
            mainSubMenu[page_id] = 0;
        }
    }
    else {
        hide('s_' + page_id);
    }
    blocked_id = blocking[page_id];
    blocking[page_id] = 0;
    blocked_by[blocked_id] = 0;
    showed[page_id] = 0;
    if (opened_by[page_id]) {
      opened_id = opened_by[page_id];
      opened_by[page_id] = 0;
      hideMenuNow(opened_id);
    }
  }

  
    function moveDiv (x, y, div_name, x_alt) {
        var docW = 0;
        if (x_alt > 0) {
            if (ns4) {
                docW = document.body.clientWidth;
            }
            else {
                if (ie4) {
                    docW = document.body.clientWidth;
                } //if
                else {
                    if (isNS6) {
                        docW = document.body.clientWidth;
                    } //if
                } //else
            } //else
            if ((getLayerW (div_name) + x ) > docW) {
                x = x_alt;
            } //if
        } //if
        var layer = getLayer (div_name);
        if (ns4) {
            eval("document." + div_name  + ".top=" + y);
            eval("document." + div_name + ".left=" + x);
        }
        else {
            if (ie4) {
                eval(div_name + ".style.top=" + y);
                eval(div_name + ".style.left=" + x);
            } //if
            else {
                if (isNS6) {
                    layer.style.top = y+"px";
                    layer.style.left = x+"px";
                } //if
            } //else
        } //else
    } /*moveDiv*/

    function resizeDiv (w, h, div_name) {
        var layer = getLayer (div_name);
        if (ns4) {
            eval("document." + div_name  + ".width=" + w);
            eval("document." + div_name + ".height=" + h);
        }
        else if (ie4) {
            eval(div_name + ".style.width=" + w);
            eval(div_name + ".style.height=" + h);
        }
        else if (isNS6) {
            layer.style.width = w+"px";
            layer.style.height = h+"px";
        }
    } /*resizeDiv*/

    function getLayerX (div_name) {
        var layer = getLayer (div_name);
        var x=100;
        if (ns4) {
          x=layer.pageX;
        }
        else if (ie4) {
            var el=layer;
            var ol=el.offsetLeft;
            while ((el=el.offsetParent) != null) { 
                ol += el.offsetLeft; 
            }
            x=ol;
        }
        else if (isNS6) {
            var el=layer;
            var ol=el.offsetLeft;
            while ((el=el.offsetParent) != null) { 
                ol += el.offsetLeft; 
            }
            x=ol;
        }
        return x;
    } /*getLayerX*/

    function getLayerY (div_name) {
        var layer = getLayer (div_name);
        var y=50;
        if (ns4) {
            y=layer.pageY;
        }
        else if (ie4) {
            var el=layer;
            var ot=el.offsetTop;
            while((el=el.offsetParent) != null) { 
                ot += el.offsetTop; 
            }
            y=ot;
        }
        else if (isNS6) {
            var el=layer;
            var ot=el.offsetTop;
            while((el=el.offsetParent) != null) { 
                ot += el.offsetTop; 
            }
            y=ot;
        }
        return y;
    } /*getLayerY*/


    function getLayerW (id) {
        var layer = getLayer (id);
        var w=0;
        if (ns4) {
            if (layer.document.height)
                w = layer.document.height;
            else
                w = layer.clip.bottom - layer.clip.top;
        }
        else {
            if (ie4) {
                w = layer.offsetWidth;
            } //if
            else {
                if (isNS6) {
                    w=layer.offsetWidth;
                } //if
            } //else
        } //else
        return w;
    } /*getLayerW*/

    function getLayerH (id) {
        var layer = getLayer (id);
        var h=0;
        if (ns4) {
            if (layer.document.height)
                h = layer.document.height;
            else
                h = layer.clip.bottom - layer.clip.top;
        }
        else {
            if (ie4) {
                h = layer.offsetHeight;
            } //if
            else {
                if (isNS6) {
                    h=layer.offsetHeight;
                } //if
            } //else
        } //else
        return h;
    } /*getLayerH*/

var zeroLevelMenu = 0;
var zeroLevelMenuTimeout = new Array ();

    function phlM (pageid, submenu) {
        zeroLevelMenuTimeout[pageid] = setTimeout("hlM('" + pageid + "', '"+ submenu +"')", 100);
    } 

    function chlM (pageid) {
        clearTimeout (zeroLevelMenuTimeout[pageid]);
        zeroLevelMenuTimeout[pageid] = null;
    }

    function hlM (pageid, submenu) {
        var parent_id = 1;
        if (! showed[pageid]) {
            showed[pageid] = 1;
            cH(pageid);
            ready_to_hide[pageid] = 0;
            if (blocked_by[parent_id]) {
                blocking[blocked_by[parent_id]] = 0;
            }
            blocked_by[parent_id] = pageid;
            if (opened_by[parent_id]) {
                hideMenuNow(opened_by[parent_id]);
            }
            opened_by[parent_id] = pageid;
            blocking[pageid] = parent_id;

            mainMenu[pageid] = 1;

            var x = getLayerX ('l_'+pageid+'_h');
            var y = getLayerY ('l_'+pageid+'_h');
            var w = getLayerW ('l_'+pageid+'_h');
            var h = getLayerH ('l_'+pageid+'_h');
            resizeDiv (w, h, 'l_'+pageid);
            moveDiv (x, y, 'l_'+pageid, 0);
            show ('l_'+pageid);

            if (submenu != 0) {
                mainSubMenu[pageid] = 1;
                var posX = getMenuPositionX('a'+pageid);
                var x_add = 0;
                var x_alt = x+w-getLayerW ('s_'+pageid) + 2;
                var y_add = 0; //25;
                moveDiv(posX+x_add, getMenuPositionY('a'+pageid)+y_add, 's_' + pageid, x_alt);
                show('s_' + pageid);
            }

        }
        
    } /*hlM*/

    function uhlM (pageid, submenu) {
        pH (pageid);
    } /*uhlM*/

    function mMN (pages) {
        var hMax = 0;
        var h, i;
        for (i in pages) {
            h = getLayerH (pages[i]);
            if (h > hMax) {
                hMax = h;
            }
        }
    } /*mMN*/



