      var slideThreads = new Array(4);
      var curStep = new Array(118, 118, 118, 118);

      function increment(x) {
        y = Math.sin(x/200); 
        y *= 29;

        return Math.abs(y);
      }

      function slideIn(num) {
        menu = 'menu' + num;
        curMenu = document.getElementById(menu);
        curTop = curMenu.style.top.substr(0, curMenu.style.top.length-2);
        if(curTop == '')
          curTop= -170;

        if(curTop < 0) {
          curStep[num]-=2;
          curTop = (curTop - (-1 * increment(curStep[num])));
          if(curTop > 0)
            curTop = 0;
          curMenu.style.top = curTop + 'px';
          slideThreads[num] = setTimeout("slideIn(" + num + ")", 10);
        } else {
          curStep[num] = 118;
          curMenu.style.top = '0px';
        }
      }

      function slideOut(num) {
        menu = 'menu' + num;
        curMenu = document.getElementById(menu);
        curTop = curMenu.style.top.substr(0, curMenu.style.top.length-2);
        if(curTop == '')
          curTop = 0;

        if(curTop > -170) {
          curStep[num]+=2;
          curTop -= increment(curStep[num]);

          curMenu.style.top = curTop + 'px';
          slideThreads[num] = setTimeout("slideOut(" + num + ")", 10);
        } else {
          menuClip = 'menu' + num + 'Position';
          clipMenu = document.getElementById(menuClip);
          clipMenu.style.display = 'none';
        } 
      }

      function showMenu(n) {
        menuClip = 'menu' + n + 'Position';
        clipMenu = document.getElementById(menuClip);
        clipMenu.style.display = 'block'; 
      }

      function startSlide(n, d) {
        menu = 'menu' + n;
        curMenu = document.getElementById(menu);

        if(d == 0) {
          clearTimeout(slideThreads[n]);
          slideThreads[n] = setTimeout("slideOut(" + n + ")", 100);
        } else {
          showMenu(n);
          clearTimeout(slideThreads[n]);
          slideIn(n);
        }
      }

