  function InfoLayer(layerName, varname) {
    this.name = layerName;
    this.self = varname;
    document.onmousemove = this.getMousePos;
  }
  
  InfoLayer.prototype.showLayer = function(elem) {
    var layer = document.getElementById(elem);
    this.closeAllLayers(layer.id);
      
    if(document.all) {
      var vspace = mouseY;
    }
    else {
      var vspace = mouseY-window.pageYOffset;
    }
    
    if(vspace > 220) {
      layer.style.top = "";
      layer.style.bottom = "0";
    }
    else {
      layer.style.top = "0";
      layer.style.bottom = "";
    }
    
    this.displayLayer(layer.id);
  }
  
  InfoLayer.prototype.displayLayer = function(elem) {
    var layer = document.getElementById(elem);
    layer.style.display = 'block';
    if(!document.all) {
      layer.style.opacity = 1;
    }
    else {
      layer.filters.alpha.opacity = 100;
    }
    
    window.clearTimeout(layer.timer);
  }
  
  InfoLayer.prototype.hideLayer = function(elem) {
    var layer = document.getElementById(elem);
    layer.timer = window.setTimeout(this.self+".closeLayer('"+layer.id+"')",500);
  }
  
  InfoLayer.prototype.closeLayer = function(elem) {
    var layer = document.getElementById(elem);
    if(!document.all) {
      if(layer.style.opacity == 0) {
        window.clearTimeout(layer.timer);  
        layer.style.display = 'none';
      }
      else {
        layer.style.opacity -= 0.1;
        layer.timer = window.setTimeout(this.self+".closeLayer('"+layer.id+"')",50);
      }
    }
    else {
      if(layer.filters.alpha.opacity == 0) {
        window.clearTimeout(layer.timer);  
        layer.style.display = 'none';
      }
      else {
        layer.filters.alpha.opacity -= 10;
        layer.timer = window.setTimeout(this.self+".closeLayer('"+layer.id+"')",50);
      }
    }
  }
  
  InfoLayer.prototype.closeAllLayers = function(exeptID) {
    layers = document.getElementsByName('infoLayer');
    
    for(i=0;i<layers.length;i++) {
      if(layers[i].id != exeptID) {
        window.clearTimeout(layers[i].timer);  
        layers[i].style.display = 'none';
      }
    }
  }
  
  InfoLayer.prototype.getMousePos = function(e) {
    if(!e)
     e = window.event;
    
    if(document.all) {
      mouseX = e.clientX;
      mouseY = e.clientY;
    }
    else {
      mouseX = e.pageX;
      mouseY = e.pageY;
    }
  }
  
  iL = new InfoLayer('infoLayer', 'iL');