var slideTime = 600, topMargin;
function winOnLoad()
{
  topMargin = xPageY('leftColumn');
  winOnResize(); // set initial position
  xAddEventListener(window, 'resize', winOnResize, false);
  xAddEventListener(window, 'scroll', winOnScroll, false);
  return;
}
function winOnResize() {
  xMoveTo('menue', xPageX('leftColumn')+xWidth('leftColumn')+10, topMargin +170);
  xShow('menue');
  winOnScroll(); // initial slide
}
function winOnScroll() {
  xSlideTo('menue', xLeft('menue'), xScrollTop() + topMargin +170, slideTime);
}
function setSlideTime(st) {
  st = parseInt(st);
  if (!isNaN(st)) slideTime = st;
  var e = xGetElementById('st');
  e.value = st;
  return false;
}
var xWinScrollWin = null;

function xWinScrollTo(win,x,y,uTime) {
  var e = win;
  if (!e.timeout) e.timeout = 25;
  e.xTarget = x; e.yTarget = y; e.slideTime = uTime; e.stop = false;
  e.yA = e.yTarget - xScrollTop();
  e.xA = e.xTarget - xScrollLeft(); // A = distance
  e.B = Math.PI / (2 * e.slideTime); // B = period
  e.yD = xScrollTop();
  e.xD = xScrollLeft(); // D = initial position
  var d = new Date(); e.C = d.getTime();
  if (!e.moving) {
    xWinScrollWin = e;
    xWinScroll();
  }
}

function xWinScroll() {
  var e = xWinScrollWin || window;
  var now, s, t, newY, newX;
  now = new Date();
  t = now.getTime() - e.C;
  if (e.stop) { e.moving = false; }
  else if (t < e.slideTime) {
    setTimeout("xWinScroll()", e.timeout);
    s = Math.sin(e.B * t);
    newX = Math.round(e.xA * s + e.xD);
    newY = Math.round(e.yA * s + e.yD);
    e.scrollTo(newX, newY);
    e.moving = true;
  }
  else {
    e.scrollTo(e.xTarget, e.yTarget);
    xWinScrollWin = null;
    e.moving = false;
  }
}

function go(n)
{
  var t = (n < 5) ? n * 5000 : n * 3000;
  xWinScrollTo(window, 0, xPageY('lnk' + n), t);
  return false;
}