function AdLayer(path, name, options) {
  this.layerPath = path;
  this.layerName = name;
  this.options = options;
  this.flash;
  this.hiddenFlash = new Array();
  this.create();
  this.timer;
  
}

// Creates the layer
AdLayer.prototype.create = function() {

  var layerDiv = document.createElement("div");
  layerDiv.id = this.layerName;
  
  var borderDiv = document.createElement("div");
  borderDiv.id = "arrivaltopborder";
  layerDiv.appendChild(borderDiv);
  
  var closeDiv = document.createElement("div");
  closeDiv.id = "closelayer";
  
  layerDiv.appendChild(closeDiv);
  
  var iframeNode = document.createElement("iframe");
  iframeNode.src = this.layerPath;
  iframeNode.id = this.layerName + "_frame";
  iframeNode.setAttribute("scrolling", "no");
  iframeNode.setAttribute("frameBorder",0);
  
  layerDiv.appendChild(iframeNode);
  document.body.appendChild(layerDiv);
  closeDiv.innerHTML = "<a href=\"#\" onclick=\"AdLayer_closeLayer(); return false;\"><img src=\"/images/nocount/close.gif\"/></a><a href=\"#\" onclick=\"AdLayer_closeLayer(); return false;\" class=\"closelink\">close</a></div>";

  // Safari fix to hide flash because it can't support layers over Flash. 
  var agt=navigator.userAgent.toLowerCase();

  if(agt.indexOf("safari")!=-1 || (typeof document.childNodes!="undefined" && typeof document.all=="undefined" && typeof navigator.taintEnabled=="undefined")){ 
     this.timer = setInterval(AdLayer_hideFlash, 2000);

 }

  

  
}

AdLayer.prototype.closeAdLayer = function() {
  layerDiv = document.getElementById(this.layerName);
  layerDiv.style.display = 'none';
   
  for (var i=0; i<this.hiddenFlash.length; i++) {
    this.hiddenFlash[i].style.visibility = "visible";
  }

  if (this.timer) { clearInterval(this.timer); }
  this.timer = null;
  return false;
}


// Gets the absolute pixel position of the supplied element
AdLayer.prototype.getTagPixels = function(startTag, direction) {
   var pixelAmt = (direction == 'LEFT') ? startTag.offsetLeft : startTag.offsetTop;
   while ((startTag.tagName != 'BODY') && (startTag.tagName != 'HTML')) {
      startTag = startTag.offsetParent;
      pixelAmt += (direction == 'LEFT') ? startTag.offsetLeft : startTag.offsetTop;
   }

   return pixelAmt;
}

// Is the element behind the flash.
AdLayer.prototype.isBehindLayer = function(element, elemTopY) {
   var layerDiv = document.getElementById(this.layerName);
   var leftX = layerDiv.offsetLeft;
   var rightX = leftX + layerDiv.offsetWidth;
   var topY = layerDiv.offsetTop;
   var bottomY = topY + layerDiv.offsetHeight;
   var elemLeftX = this.getTagPixels(element, 'LEFT');
   var elemRightX = elemLeftX + element.offsetWidth;
   var elemBottomY = elemTopY + element.offsetHeight;
   return (((elemTopY < bottomY) && (elemBottomY > topY)) && ((elemLeftX < rightX) && (elemRightX > leftX)));
}
AdLayer.prototype.getDiv = function(flashDiv) {
  // Climb higher till we get a div.
  var i = true;
  parentDiv = flashDiv.parentNode;
  while (i) {
    if (parentDiv.tagName == "DIV") {
      return parentDiv;
    }
    if (parentDiv == null || parentDiv == undefined) { i = false; }
    parentDiv = parentDiv.parentNode;
  }
    

}

AdLayer.prototype.hideFlash = function() {

  this.hiddenFlash = new Array();
  this.flash = document.getElementsByTagName("EMBED");

  for (var i=0; i<this.flash.length; i++) {
    // check if the flash is behind the layer.
    if (this.isBehindLayer(this.flash[i], this.getTagPixels(this.flash[i], "TOP"))) {
      var flashDiv = this.getDiv(this.flash[i]);
      flashDiv.style.visibility = "hidden";
      this.hiddenFlash.push(flashDiv);
      
  }
  
  
  
  
    
  }
  return false;
}





