var slideTime = 2000, fId = '', topOffset = 40, topLimit;
window.onload = function()
{
  winOnResize(); // set initial position
  xAddEventListener(window, 'resize', winOnResize, false);
  xAddEventListener(window, 'scroll', winOnScroll, false);
  return;
}
function winOnResize()
{
  xMoveTo(fId, 0, 0);
  topLimit = xPageY(fId);
  winOnScroll(); // initial slide
}
function winOnScroll()
{
  var ft = xPageY(fId);
  var fh = xHeight(fId);
  var st = xScrollTop();
  var ch = xClientHeight();
  var y = st - topLimit + topOffset;
  if (st < topLimit) {
    xSlideTo(fId, 0, 0, slideTime);
  }
  // don't slide unless floater scrolls off-screen
  else if (ft < st || ft + fh > st + ch) {
    xSlideTo(fId, 0, y, slideTime);
  }
}
