// Copyright © 2004 - 2012 Interact Computer Services Ltd.
// All rights reserved. Use is subject to license terms.
// For more information contact Interact at info@interact-uk.com

var AL_IEOvers  = new Array ();

function getIEOver ()
{
  return ((AL_IEOvers.length > 0) ? AL_IEOvers.pop () : new IEOver ());
}

function freeIEOver (fobj)
{
  if (fobj)
  {
    fobj.hide       ();
    AL_IEOvers.push (fobj);
  }
}

function IEOver ()
{
  this.hframe = document.body.appendChild (document.createElement ("IFRAME"));
  
  this.hframe.style.display  = "none";
  this.hframe.style.position = "absolute";
  this.hframe.frameBorder    = "0";
  this.hframe.scrolling      = "no";
  this.hframe.style.filter   = "progid:DXImageTransform.Microsoft.Alpha(style=0,opacity=0)";
  
  this.hframe.oncontextmenu  = alEventCancel;
  
  this.show = function (pobj, zobj)
  {
    if (pobj) if (pobj.style.display != "none")
    {
      if (this.hframe.parentNode != pobj.parentNode)
      {
        this.hframe = pobj.parentNode.appendChild (this.hframe.parentNode.removeChild (this.hframe));
      }
/*      
      if (pobj.offsetParent != document.body)
      {
        var left  = parseInt (pobj.style.left, 10);
        var top   = parseInt (pobj.style.top,  10);
        var obj   = pobj;

        do
        {
          left += obj.offsetLeft;
          top  += obj.offsetTop;
          obj   = obj.offsetParent;

        } while (obj);

        this.hframe.style.left = left + "px";
        this.hframe.style.top  = top  + "px";
      }
      else
      {
        this.hframe.style.left = pobj.style.left;
        this.hframe.style.top  = pobj.style.top;
      }
*/

      this.hframe.style.left    = pobj.offsetLeft   + "px";
      this.hframe.style.top     = pobj.offsetTop    + "px";
      this.hframe.style.width   = pobj.offsetWidth  + "px";
      this.hframe.style.height  = pobj.offsetHeight + "px";
      this.hframe.style.zIndex  = (zobj ? zobj.style.zIndex : pobj.style.zIndex) - 1;
      this.hframe.style.display = "block";
    }
  }
  
  this.hide = function ()
  {
    this.hframe.style.display  = "none";
  }
  
  this.destroy = function ()
  {
    this.hframe.parentNode.removeChild (this.hframe);
    this.hframe = null;
  }
}

