LDMain.addEvent(window, 'load', initbar);
LDMain.addEvent(document, 'mousemove', mouseMove);

var mouseX = 0;
var mouseY = 0;

var space = 0;

var sidebar = null;
var sbwidth = 0;
var sbleft = space;
var animTimer = null;
var destX = space;
var mout = true;
var cnt = 0;
var defaultpos = space;

var oldcontent = null;
var oldcontleft = 0;
var content = null;
var contleft = space;
var contdestX = space;
var contAnimTimer = null;

var oldimg = null;

var nextcont = null;
var nextimg = null;


function initbar()
{
  sidebar = document.getElementById('refbar');
  sbwidth = sidebar.offsetWidth;
  defaultpos = -Math.round((sbwidth-document.body.clientWidth)/2);

  mout = true;
  destX = defaultpos;
  animTimer = setInterval('sbupdatepos();', 20);
  sidebar.style.visibility = 'visible';
}

function showcont(img, name)
{
  if (document.getElementById('c'+name) != content)
  {
    if (contAnimTimer != null)
    {
      if (nextcont == null)
      {
        nextcont = name;
        nextimg = img;
        if (img.className != 'nohover') {img.className = 'refimgpend';}
      }
    } else
    {
      nextcont = null;
      nextimg = null;
      document.getElementById('contentbar').scrollTop = 0;
      oldcontent = content;
      oldcontleft = contleft;
      content = document.getElementById('c'+name);
      content.style.left = '-800px';
      content.style.display = 'block';
      contleft = -800;

      contdestX = Math.round((document.body.clientWidth-650)/2);
      clearInterval(contAnimTimer);
      contAnimTimer = setInterval('contupdatepos();', 20);

      if ((oldimg != null) && (oldimg.className != 'nohover')) {oldimg.className = 'refimg';}
      if ((img != null) && (img.className != 'nohover')) {img.className = 'refimgactive';}
      oldimg = img;
    }
  }
}


function contupdatepos()
{
  if (Math.round(contleft) != contdestX)
  {
    var dif = 0;
    if (contleft-contdestX > 0)
    {
      dif = (contleft-contDestX)/10;
      if (dif < 1) {dif = 1;}
    } else
    {
      dif = (contleft-contdestX)/10;
      if (dif > -1) {dif = -1;}
    }

    contleft = contleft-dif;
    oldcontleft = oldcontleft-dif;
    content.style.left = Math.round(contleft)+"px";
    if (oldcontent != null) {oldcontent.style.left = Math.round(oldcontleft)+"px";}
  } else
  {
    clearInterval(contAnimTimer);
    contAnimTimer = null;
    if (oldcontent != null) {oldcontent.style.display = 'none';}
    if (nextcont != null) {showcont(nextimg, nextcont);}
  }
}


function mouseMove(e)
{
  if (e == null) {e = window.event;}
  if (e.pageX == null)
  {
    mouseX = e.clientX + document.body.scrollLeft;
    mouseY = e.clientY + document.body.scrollTop;
  } else
  {
    mouseX = e.pageX;
    mouseY = e.pageY;
  }
}



function sbmouseover(sb)
{
  sidebar = sb;
  mout = false;
  sbwidth = sb.offsetWidth;
  clearInterval(animTimer);
  animTimer = setInterval('sbupdatepos();', 20);
  sbmousemove(sb);
  sbupdatepos();
}

function sbupdatepos()
{
  if (Math.round(sbleft) != destX)
  {
    var dif = 0;
    if (sbleft-destX > 0)
    {
      dif = (sbleft-destX)/10;
      if (dif < 1) {dif = 1;}
    } else
    {
      dif = (sbleft-destX)/10;
      if (dif > -1) {dif = -1;}
    }

    sbleft = sbleft-dif;
    sidebar.style.left = Math.round(sbleft)+"px";
  } else
  {
    if (mout) {clearInterval(animTimer);}
  }
}

function sbmousemove(sb)
{
  if (mout) {return;}

  if (window.pageXOffset == null) {var scrollX = document.body.scrollLeft;} else {var scrollX = window.pageXOffset;}
  if (mouseX-scrollX < space) {var nMouseX = space;} else {nMouseX = mouseX-scrollX;}
  if (window.innerWidth == null) {var pWidth = document.documentElement.clientWidth;} else {var pWidth = window.innerWidth;}
  var mov = pWidth-sbwidth-space*2;
  if (mov < 0)
  {
    var mdif = (nMouseX-space)/(pWidth-space*2);
    destX = Math.round(mdif*mov)+space;
  } else
  {
    destX = space;
  }
}

function sbmouseout(sb)
{
  mout = true;
  destX = defaultpos;
}
