var E = xGetElementById;
var defSlideTime = 300;
var tnActive = 0;
var snActive = 0;
var hnActive = 0;

window.onload = function() {
  var i=1,j=1,k=1,t,s,h;
  t = E('t1');
  while (t) {
    t.topflapNumber = i;
    t.style.zIndex = 0;
    t = E('t' + ++i);
  }
  s = E('s1');
  while (s) {
    s.sideflapNumber = j;
    s.style.zIndex = 0;
    s = E('s' + ++j);
  }
  h = E('h1');
  while (h) {
    h.headflapNumber = k;
    h.style.zIndex = 0;
    h = E('h' + ++k);
  }
  xAddEventListener(document, 'mousemove', docOnMousemove, false);
}
function docOnMousemove(evt) {
  var e = new xEvent(evt);
  var t = getTopFlapEle(e.target);
  var s = getSideFlapEle(e.target);
  var h = getHeadFlapEle(e.target);
  if (t) { // mouse is over a topflap, activate it
	if (t.topflapNumber!=tnActive){
	      xSlideTo('t'+t.topflapNumber, 0, -10, defSlideTime);
	      xSlideTo('t'+tnActive, 0, 0, defSlideTime);
	      tnActive = t.topflapNumber;
	}
      xSlideTo('s'+snActive, 0, 0, defSlideTime);
      xSlideTo('h'+snActive, 0, 0, defSlideTime);
      snActive = 0;
      hnActive = 0;
  }
  else if (h){ // mouse is over a headflap, activate it
	if (h.headflapNumber!=hnActive){
	      xSlideTo('h'+h.headflapNumber, 0, 10, defSlideTime);
	      xSlideTo('h'+hnActive, 0, 0, defSlideTime);
	      hnActive = h.headflapNumber;
	}
      xSlideTo('t'+tnActive, 0, 0, defSlideTime);
      tnActive = 0;
      xSlideTo('s'+snActive, 0, 0, defSlideTime);
      snActive = 0;
  }
  else { // Not over a topflap
	  if (s) { // mouse is over a sideflap, activate it
		if (s.sideflapNumber!=snActive){
		      xSlideTo('s'+s.sideflapNumber, 10, 0, defSlideTime);
		      xSlideTo('s'+snActive, 0, 0, defSlideTime);
		      snActive = s.sideflapNumber;
		}
	  }
	else{
	      xSlideTo('s'+snActive, 0, 0, defSlideTime);
	      snActive = 0;
	}
      xSlideTo('t'+tnActive, 0, 0, defSlideTime);
      tnActive = 0;
      xSlideTo('h'+hnActive, 0, 0, defSlideTime);
      hnActive = 0;
  }
}
function getTopFlapEle(ele) {
  while(ele && !ele.topflapNumber) {
    if (ele == document) return null;
    ele = ele.offsetParent;
  }
  return ele;
}
function getSideFlapEle(ele) {
  while(ele && !ele.sideflapNumber) {
    if (ele == document) return null;
    ele = ele.offsetParent;
  }
  return ele;
}
function getHeadFlapEle(ele) {
  while(ele && !ele.headflapNumber) {
    if (ele == document) return null;
    ele = ele.offsetParent;
  }
  return ele;
}

