  /* Singleton objects ... */
  
  var Objects = new Array();
  
  function getObject(Class, ID)
  {
    if (!ID) ID = 0;
  
    Index = Class;
    Index += "___" + ID;
    
    if (Class && Objects[Index])
    {
      return Objects[Index];
    }
    else
    {    
      createStr = "Objects['"+Index+"'] = new "+Class+"('"+ID+"');";
      eval(createStr);
      return Objects[Index];
    }
  }
  
  /* Show/Hide Layers */

  var hideTimeout = null;
  var showTimeout = null;
  var openedID1=null;
  var openedID2=null;
  
  function showInfo(level, ID)
  {
    if (!showTimeout)
    {
      showTimeout = window.setTimeout("performShow('"+level+"','" + ID + "','')", 200);
    }
  }
  
  function performShow(level, ID)
  {
    window.clearTimeout(hideTimeout);
    window.clearTimeout(showTimeout);
    showTimeout=null;
    
    if (level==1)
    {
      if (openedID1 && ID && !(openedID1==ID))
      {
        performHide(1, openedID1);      
      }
    }
    else
    {
      if (openedID2 && ID && !(openedID2==ID))
      {
        performHide(2, openedID2);      
      }
    }
    
    objDiv = document.getElementById(ID);
    
    if (objDiv)
    {
      if (objDiv.style.display == "block" && hideTimeout)
      {
        window.clearTimeout(hideTimeout);
        hideTimeout=null;
      }
      else if (objDiv.style.display == "block" && showTimeout)
      {
        window.clearTimeout(showTimeout);
        showTimeout=null;
      }
      else if (objDiv.style.display == "none")
      {
        objDiv.style.display = "block";
        
        if (level==1)
          openedID1=ID;
        else
          openedID2=ID;        
      }
    }
  }
  
  function hideInfo(level, ID)
  {
    hideTimeout = window.setTimeout("performHide('"+level+"','" + ID + "')",1000);
  }
  
  function performHide(level, ID)
  {
    objDiv = document.getElementById(ID);
      
    if (objDiv)
    {
      objDiv.style.display = "none";
    }
    
    window.clearTimeout(hideTimeout);
    window.clearTimeout(showTimeout);
    showTimeout=null;
    hideTimeout=null;
    
    if (level==1)
      openedID1=null;
    else
      openedID2=null;    
  }
  
  function hideAll(level, ID)
  {
    if (showTimeout!=null)
      window.clearTimeout(showTimeout);
     if (hideTimeout!=null)
      window.clearTimeout(hideTimeout);  
      
    openedID1=null;
    openedID2=null;
  
    if (ID!=null)
    {
      objDiv = document.getElementById(ID);
      if (objDiv && objDiv.style.display=='block')
      {
        objDiv.style.display="none";
      }
    }
  }

  function hoverIE()
  {
  }
