  ///////////////////////////////////////////////
  // 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) {
//      alert ('show: '+id);
    if (isNS6) {
      document.getElementById(id).style.visibility='visible';
    } //if
    else if (isNS4) {
      document.layers[id].visibility = "show";
    } //else if
    else if (isIE) {
      document.all[id].style.visibility = "visible";
    } //else if
  }

  function hide(id) {
//      alert ('hide: '+id);
    if (isNS6)
      document.getElementById(id).style.visibility='hidden';
    else if (isNS4)
      document.layers[id].visibility = "hide";
    else if (isIE) 
      document.all[id].style.visibility = "hidden";

  }


  // 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 180 /*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, extra) {
      //extra występuje przy pierwszym poziomie
    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+=196;
      if (extra) {
          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+196;
      if (extra) {
          x+=0;
      }
    }
    else if (isNS6) {
      var el=document.getElementById(a_name);
      var ol=el.offsetLeft;
      while ((el=el.offsetParent) != null) { 
        ol += el.offsetLeft; 
      }
      x=ol+226;
      if (extra) {
          x-=30;
      }
    }
	return x;
  } /*getMenuPositionX*/

  function getMenuPositionY (a_name, extra) {
      //extra występuje przy pierwszym poziomie
    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+=1;
      if (extra) {
          y-=1;
      }
    } else if (ie4) {
      var el=document.all[a_name];
      var ot=el.offsetTop;
      while((el=el.offsetParent) != null) { 
        ot += el.offsetTop; 
      }
      y=ot+1;
      if (extra) {
          y-=1;
      }
    }
    else if (isNS6) {
      var el=document.getElementById(a_name);
      var ot=el.offsetTop;
      while((el=el.offsetParent) != null) { 
        ot += el.offsetTop; 
      }
      y=ot-15;
      if (extra) {
          y-=1;
      }
    }
    return y;
  } /*getMenuPositionY*/

    function getMenuPositionLX (pageid) {
        return getLayerX ('di' + pageid);
    } /*getMenuPositionDownY*/

    function getMenuPositionLX2 (pageid) {
        return getLayerX2 ('di' + pageid);
    } /*getMenuPositionDownY*/


    function getMenuPositionLY (pageid, extra) {
        return getLayerY ('di' + pageid)+getLayerH ('di' + pageid);
    } /*getMenuPositionDownY*/

  /* 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 opened_by = new Array();
  var opened_level = 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 htS(pageid, parent_id, issub) {
    if (issub && (! showed[pageid])) {
		hMA();
	}
  }

  function getScroll () {
      var ret = 0;
      if (isIE) {
          ret = document.body.scrollTop;
      } //if
      else {
          if (isNS6) {
              ret = window.scrollY;
          } //if
      } //else
      return ret;
  } /*getScroll*/

    function tSI (pageid, parent_id, issub) {
        if (issub && (! 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 = getLayerX ('di'+pageid);
            var width1 = getLayerW ('di'+pageid);
            var width2 = getLayerW ('submenu_'+pageid);

            moveDiv(posX, getLayerY ('di'+pageid)+55, 'submenu_' + pageid, posX+width1-width2);
            show('submenu_' + pageid);
        }
        return true;
    }


    function tS (pageid, parent_id, issub) {
        var x_add = 185;
        var y_add = -1;
        if (isNS6) {
            x_add += 16;
        } //if
        else if (isNS4) {
            x_add += 16;
        } //else if
        else if (isIE) {
            x_add += 1;
        } //else if
        if (issub && (! 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 = getLayerX ('di'+pageid);

            moveDiv(posX+x_add, getLayerY ('di'+pageid)+y_add, 'submenu_' + pageid, posX-(x_add+30));
            show('submenu_' + pageid);
        }
        return true;
    }

  function uS(pageid, issub) {
    if (issub) {
      pH(pageid);
    }
    return true;
  }

  function hM(parent_id) {
    if (opened_by[parent_id]) {
    hideMenuNow(opened_by[parent_id]);
   	}
 }

  function hMA() {
	for (elem in showed)
	{
		if (elem != 0)
		{
			//alert (elem);
		    hideMenuNow(elem);
		}

	}
 }

  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);
      hide('submenu_' + 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);
    hide('submenu_' + 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
        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) {
                    var layer = getLayer (div_name);
                    layer.style.top = y+"px";
                    layer.style.left = x+"px";
                } //if
            } //else
        } //else
    } /*moveDiv*/


  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 getLayerX2 (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;
        }
		x +=190;
        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 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*/

    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 moveResizeDiv (div_dest, div_src) {
        var x = getLayerX (div_src);
        var y = getLayerY (div_src);
        var w = getLayerW (div_src);
        var h = getLayerH (div_src);
        resizeDiv (w, h, div_dest);
        moveDiv (x+1, y+1, div_dest, 0);
        show (div_dest);
    } //if

    function on (div_name) {
        if (! isNS4) {
            var lay = getLayer ('di'+div_name);
            lay.className='iOn';
        }
    } /*on*/

    function off (div_name) {
        if (! isNS4) {
            var lay = getLayer ('di'+div_name);
            lay.className='i';
        }
    } /*off*/

