function setState(step,property,suffix) {
  if (document.slideHandler) {
      if (property.toLowerCase() == 'alpha') {
        setAlpha(document.slideHandler, step);
        } else document.slideHandler.style[property] = step+''+suffix;
    }
  }

function slide(obj,from,to,duration,property,suffix) {
    var FPS = 20; /* Frame Rate */
    var frameSpeed = 1000 / FPS;
    var frameCount = Math.round(duration / frameSpeed); /* Frames per second * duration */
    var frameStep = (to-from)/frameCount;
    document.slideHandler = obj;
    for (var n=0; n<=frameCount; n++) {
      var step = from+(frameStep*n);
      setTimeout("setState("+Math.round(step)+",'"+property+"','"+suffix+"')", frameSpeed*n);
      }
  }

function menuSlide(direction) {
  if ($ID('overlayContainer')) {
    var obj = $ID('overlayContainer');
    var clHeight = 0-obj.clientHeight;
    var duration = 300; /* Milliseconds */
    obj.style.display = 'block';
    if (direction) {
      slide(obj,clHeight,0,duration,'top','px');
      slide(obj,0,95,duration,'alpha','');
      } else {
      slide(obj,0,clHeight,duration,'top','px');
      slide(obj,95,0,duration,'alpha','');
      }
    }
  };

function menuToggle(part, elem) {
    if ($ID('overlayContainer')) {
      var state = ($ID('overlayContainer').state) ? $ID('overlayContainer').state : false;

      if (!state) {
        $ID('overlayContainer').state = 1;
        var menus = classOf('menu',$ID('overlayContainer'));
        for (var i in menus) menus[i].style.display = 'none';
        classOf(elem,$ID('overlayContainer'))[0].style.display = 'block';
        $ID('overlayContainer').style.top = 0-$ID('overlayContainer').clientHeight+'px';
        //setTimeout("menuSlide(1)",1000);
        menuSlide(1);
        } else {

        var menus = classOf('menu',$ID('overlayContainer'));
        for (var i in menus) menus[i].style.display = 'none';

        classOf(elem,$ID('overlayContainer'))[0].style.display = 'block';
        }
      $ID('overlayContainer').lin = part;
      $ID('overlayContainer').lastElem = elem;
      }
  }

function timedHide() {
    if ($ID('overlayContainer').allowOut) {
      menuSlide(0);
      $ID('overlayContainer').allowOut = false;
      $ID('overlayContainer').state=0;
      } else
      $ID('overlayContainer').open = true;
  }
function permitTimedHide(state) {
    $ID('overlayContainer').allowOut = state;
    if (state) if ($ID('overlayContainer').open) {
        if ($ID('overlayContainer').allowOut) {
          setTimeout("timedHide()", 300);
          $ID('overlayContainer').open = false;
          }
        }
  }

/* Initiate */
function initOverlay() {
  /* Initiate Top Interactive Menu */
  $ID('overlayContainer').style.display = 'block';
  $ID('overlayContainer').style.top = 0-$ID('overlayContainer').clientHeight+'px';

  $ID('topMenuToggleWeb').onmouseover = function() {menuToggle(1,"web"); permitTimedHide(0); $ID('overlayContainer').open = true;}
  $ID('topMenuToggleLogo').onmouseover = function() {menuToggle(1,"logo"); permitTimedHide(0); $ID('overlayContainer').open = true;}
  $ID('topMenuToggleMobile').onmouseover = function() {menuToggle(1,"mobile"); permitTimedHide(0); $ID('overlayContainer').open = true;}
  $ID('topMenuToggleCMS').onmouseover = function() {menuToggle(1,"cms"); permitTimedHide(0); $ID('overlayContainer').open = true;}
  $ID('topMenuToggleSocial').onmouseover = function() {menuToggle(1,"social"); permitTimedHide(0); $ID('overlayContainer').open = true;}
  $ID('topMenuToggleContact').onmouseover = function() {menuToggle(1,"contact"); permitTimedHide(0); $ID('overlayContainer').open = true;}

  $ID('topBar').onmouseover = function() {permitTimedHide(0);}
  $ID('topBar').onmouseout = function() {permitTimedHide(1);}

  var elems = $ID('overlayContainer').getElementsByTagName('*');
  for (var i in elems) {
    elems[i].onmouseover = function() {permitTimedHide(0);}
    elems[i].onmouseout = function() {permitTimedHide(1);}
    }

  $ID('overlayContainer').onmouseover = function() {permitTimedHide(0);};
  $ID('overlayContainer').onmouseout =
    function() {

      };

  var menus = classOf('menu',$ID('overlayContainer'));
    for (var i in menus) {
      menus[i].style.display = 'none';
      menus[i].onmouseover = function() {permitTimedHide(0);}
      }
  };

