var spinner = document.getElementById("spinner");
var offsetIn, offsetOut, elmInS, elmOutS, opa, inOpacity, outOpacity;

function absTop(element) { return element.offsetTop + ((element.offsetParent) ? absTop(element.offsetParent) : 0); }
function absLeft(element) { return element.offsetLeft + ((element.offsetParent) ? absLeft(element.offsetParent) : 0); }

function setOpacity(es, opacity) {
  es.opacity = (opacity / 100);
  es.MozOpacity = (opacity / 100);
  es.KhtmlOpacity = (opacity / 100);
  es.filter = "alpha(opacity=" + opacity + ")";
}

function doFadeIn() { setOpacity(elmInS, inOpacity++); }

function fadeIn(elm) {
  elmInS = elm.style;
  setOpacity(elmInS, 0);
  elmInS.visibility='visible';
  var timer=0;
  inOpacity = 0;
  for(var i=0; i < 100; i++)
    setTimeout(doFadeIn, 10 * timer++);
}

function doFadeOut() { setOpacity(elmOutS, outOpacity--); }

function fadeOut(elm) {
  elmOutS = elm.style;
  var timer=0;
  outOpacity = 100;
  for(var i=0; i < 100; i++)
    setTimeout(doFadeOut, 10 * timer++);
  setTimeout( function() { elmOutS.visibility='hidden'; }, 10 * timer);
}

var currentPanelNr;
var currentPanel;
var inProgress = false;

function slideFade(dir) {
  opa++;
  offsetIn += dir;
  offsetOut += dir;
  setOpacity(elmInS, opa);
  setOpacity(elmOutS, 100-opa);
  elmOutS.top = offsetOut + 'px';
  elmInS.top = offsetIn + 'px';

/*
  if(opa < 100) {
   window.clearInterval(slideInterval);
    slideInterval = null;
  } */
}

var orig;

function slidePanels(elm1,elm2,dir) {
  elmInS = elm1.style;
  elmOutS = elm2.style;
  setOpacity(elmInS, 0);
  elmInS.visibility = 'visible';
  offsetIn = orig + 100 * -dir;
  offsetOut = orig;
  opa = 0;
  var i, timer=0;
  for(i=0; i < 100; i+=1)
    setTimeout( function() { slideFade(dir); }, 6 * timer++);
  setTimeout( function() { elmOutS.visibility = 'hidden';  inProgress = false; }, 6 * timer);
  return elm1;
}

