var ns6 = (!document.all && document.getElementById);
var ie4 = (document.all);
var iniMenuBoxX = 10;
var iniMenuBoxY = 10;
var slideTarget = 0;
var elementSliding = false;

window.onload = function() {
  positionMenu();
  controlMenu();
}

function positionMenu() {
  if (document.getElementById) {
    var mnu = document.getElementById('MenuBox');
    mnu.style.left = iniMenuBoxX + "px";
    mnu.style.top = iniMenuBoxY + "px";
  }
  else if (ns6) {
    document.MenuBox.left = iniMenuBoxX;
    document.MenuBox.top = iniMenuBoxY;
  }
  else if (ie4) {
    document.all.MenuBox.style.pixelLeft = iniMenuBoxX;
    document.all.MenuBox.style.pixelTop = iniMenuBoxY;
  }
}

function controlMenu() {
  var topOfClientArea;
  if (ns6) {
    topOfClientArea = window.pageYOffset;
  }
  else if (ie4) {
    topOfClientArea = document.body.scrollTop;
  }
  slideElementTo('MenuBox', topOfClientArea + iniMenuBoxY);
  setTimeout("controlMenu()",500);
}

function slideElementTo(elementId, yPosition) {
  slideTarget = yPosition;
  if (!elementSliding) {
    slideElement(elementId);
  }
}

function slideElement(elementId) {
  var delta, elementY;
  if (document.getElementById) {
    var ele = document.getElementById(elementId);
    elementY = parseInt(ele.style.top);
  }
  else if (ns6) {
    elementY = document.layers[elementId].top;
  }
  else if (ie4) {
    elementY = document.all[elementId].style.pixelTop;
  }
  else {
    return;
  }
  elementSliding = true;
  if (elementY < slideTarget) {
    delta = (slideTarget - elementY) / 2;
  }  
  else {
    delta = (elementY - slideTarget) / 2;
  }
  if (delta < 1) delta = 1;
  if (elementY < slideTarget) {
    moveElementTo(elementId, elementY + delta);
  }  
  else if (elementY > slideTarget) {
    moveElementTo(elementId, elementY - delta);
  }
  else {
    elementSliding = false;
    return;
  }
  setTimeout("slideElement('"+elementId+"')",40);
}

function moveElementTo(elementId, yPosition) {
  if (document.getElementById) {
    var ele = document.getElementById(elementId);
    ele.style.top = yPosition + "px";
  }
  else if (ns6) {
    document.layers[elementId].top = yPosition;
  }
  else if (ie4) {
    document.all[elementId].style.pixelTop = yPosition;
  }
}
