function initGlideLayers() {
  var i, el;
  var glideLyrs = new Array();

  // Set up your layers here
  // arguments: id, amount to be visible (left), top, width, height
  // duration of glide onscroll, accel (-1 to 1, -1 decelerates)
  glideLyrs[0] = new Glider('voliraci', 5, 50, 450, 360, 2500, -1);

  for (i=0; glideLyrs[i]; i++) {
                // hold amount to be left visible
                glideLyrs[i].xOff = glideLyrs[i].x;
                if ( !glideLyrs[i].y ) // position based on previous glideLyrs height and position
                        if ( glideLyrs[i-1] ) glideLyrs[i].y = glideLyrs[i-1].y + glideLyrs[i-1].h + 2;
                glideLyrs[i].shiftTo( -(glideLyrs[i].w - glideLyrs[i].xOff), glideLyrs[i].y );
                glideLyrs[i].show();
    el = dynObj.getElemRef( glideLyrs[i].id );
    if (el) {
      el.onmouseover = slideIntoView;
      el.onmouseout = slideOutOfView;
    }
  }

}

function slideIntoView() {
  var glideLyr = dynObj.getInstance(this.id);
  glideLyr.slideTo(2, null, 250, -.8);
}

function slideOutOfView(e) {
  var glideLyr = dynObj.getInstance(this.id);
        e = e? e: window.event;
  var toEl = e.relatedTarget? e.relatedTarget: e.toElement;
  if ( toEl != glideLyr.el && !contained(toEl, glideLyr.el) )
          glideLyr.slideTo( -(glideLyr.w - glideLyr.xOff), null, 300, -.8);
}

// returns true if oNode is contained by oCont (container)
function contained(oNode, oCont) {
  if (!oNode) return; // in case alt-tab away while hovering (prevent error)
  while ( oNode = oNode.parentNode ) if ( oNode == oCont ) return true;
  return false;
}

