var state = new Array();

/*
Nils
 */

var isActive=false;
var activeElmId=null;
var hideSpeed=100;

function showElm(thisElement,elementId) {
  
  if(activeElmId != null  && activeElmId != elementId) {
    document.getElementById(activeElmId).style.display='none';
  }
  
  if (!state[elementId]) state[elementId]={};
  
  var elm=document.getElementById(elementId);
  if (!state[elementId]['left'] || !state[elementId]['top']) {
    //state[elementId]['top']=getElementTop(thisElement)-165;
    state[elementId]['top']=getElementTop(thisElement);
    //state[elementId]['left']=getElementLeft(thisElement)-55;
    state[elementId]['left']=getElementLeft(thisElement)+50;
    elm.style.left=state[elementId]['left']+'px';
    elm.style.top=state[elementId]['top']+'px';
  }
  
  //if (mode == 'hide' && state[elementId]['status'] == 'visible') {
    //elm.style.display='none';
    //state[elementId]['status'] = 'hidden';
  //}
  //else if (mode == 'show' && state[elementId]['status'] == 'hidden') {
    //elm.style.display='block';
    //state[elementId]['status'] = 'visible';
  //}
  
  /*for (i in state) {
    if (state[i]['status'] == 'visible' && elementId != i) {
      var elm=document.getElementById(i);
      elm.style.display='none';
      state[i]['status'] == 'hidden';
    }
  }*/
  
  // if (mode) return false;
  //elm.style.display=(elm.style.display == 'block' ? 'none' : 'block');
  elm.style.display='block';
  //state[elementId]['status'] = 'visible';
  
  //setTimeout("_hideElm()",hideSpeed);
  hideElm(thisElement,elementId);
  return false;
}

/*
function hideElm (thisElement,elementId) {
  var elm=document.getElementById(elementId);
  elm.style.display='none';
  state[elementId]['status'] = 'hidden';
}
*/



function getElementLeft(eElement) {
  var nLeftPos = eElement.offsetLeft;
  var eParElement = eElement.offsetParent;
  
  while (eParElement != null) {
    nLeftPos += eParElement.offsetLeft;
    eParElement = eParElement.offsetParent;
  }
  
  return nLeftPos;
}

function getElementTop(eElement) {
  var nTopPos = eElement.offsetTop;
  var eParElement = eElement.offsetParent;

  while (eParElement != null)  {
    nTopPos += eParElement.offsetTop;
    eParElement = eParElement.offsetParent;
  }
  
  return nTopPos;
}

function cancelHide() {
  isActive=true;
  //alert("is active:"+isActive);
}

function _hideElm() {
  if(isActive || activeElmId == null) return;
  //alert("active _hide "+isActive+" "+activeElmId);
  var elm=document.getElementById(activeElmId);
  elm.style.display='none';
  state[activeElmId]['status'] = 'hidden';
  isActive=false;
  activeElmId=null;
}

function hideElm (thisElement,elementId) {
  //(alert("active hide "+isActive);
  activeElmId=elementId;
  isActive=false;
  setTimeout("_hideElm()",hideSpeed);
}
