function IFramePop() {
//   this.loaderBar = new LoaderBar();
  this.screenCover = new ScreenCover();
  IFramePop.prototype.ids++;
  this.frameId = 'frame-pop-'+IFramePop.prototype.ids;
  this.popId = 'pop-'+IFramePop.prototype.ids;
  var div = make_el('DIV',{className:'box iframe-box',
			   id:this.popId,
			   style:{display:'none'}},document.body);
  for(var i=1; i<4; i++)
    div = make_el('DIV',{className:'unionskin'+i},div);
};
IFramePop.prototype.ids = 0;

IFramePop.prototype.addFrame = function(url,arg) {
  if (arg)
    this.kill();
  var div = get_by_id(this.popId);
  div.style.top = FindScrollOffset().y+50+'px';
  var frameHolder = div.firstChild.firstChild.firstChild;//<-- Perhaps we should kill the rounded corners so we dont have to do this.
  var iframe = make_el('IFRAME',{src:url,id:this.frameId,
                                	name:this.frameId,
					allowTransparency:true,
					frameBorder:0,
					style:{height:0 ,border: 'none'}},frameHolder);
//   this.loaderBar.addLoader(frameHolder);
//   this.screenCover.addCover();

  div.style.display = 'block';
};

IFramePop.prototype.reloadPage = function(url) {
  var iframe = get_by_id(this.frameId);
  this.kill();
  if(url){
    window.location.href=url;
  }
  else{
    if(window.location.href.indexOf('?') != -1)
      window.location.href = window.location.href.replace(/\?.*/,'');
    else window.location.href +='?rt='+(new Date).getTime();
  }
};

IFramePop.prototype.frameLoad = function() {
  var iframe = get_by_id(this.frameId);
  if(iframe) {
    var oDoc = get_iframe_doc(iframe);
    this.frameResize(iframe,oDoc);
    this.screenCover.addCover();
/*     this.screenCover.sizeCover(); */
  }
};

IFramePop.prototype.frameResize = function(iframe,oDoc) {
  if(!iframe) iframe = get_by_id(this.frameId);
  if(!oDoc) oDoc = get_iframe_doc(iframe);
  if(oDoc.body) {
    var y = oDoc.body.offsetHeight+1;
    iframe.style.height = y+'px';
    oDoc.body.style.overflowY = 'hidden';
  }
};

IFramePop.prototype.frameUnLoad = function() {
//   if(!this.noLoader) {
//     var iframe = get_by_id(this.frameId);
//     if(iframe.src.toLowerCase() != 'about:blank') {
//       this.loaderBar.addLoader(iframe.parentNode);
//       iframe.style.height = 0;
//     }
//   }
};

IFramePop.prototype.kill = function() {
  var div = get_by_id(this.popId);
  if (!div)
    return;
  this.noLoader = true;
  //div.innerHTML = '';
  remove_el(div);
  this.noLoader = false;
  this.screenCover.fadeCover();
};

function checkForGrayout(e) {
  var srcEl = get_srcEl(e);
  while(!className.test(srcEl,'grayout')
	&& (srcEl = srcEl.parentNode));
  if(srcEl) {
    preventDefault(e);
    window.Grayout = new IFramePop();

    window.Grayout.addFrame(srcEl.href.replace(srcEl.hash, '')+"?js=grayout");
    return false;
  };
  return true;
};

addEvent(document,'click',checkForGrayout,false);
addEvent(window,'unload',function(){
    if(window.Grayout)
      window.Grayout.kill();
},false);

/*ugly bad hack for safari follows*/
if(isSafari) {
  function grayout_prevent_a_action() {
    var As = get_by_tag('A');
    for(var i=0,l=As.length; i<l; i++)
      if(className.test(As[i],'grayout'))
	As[i].onclick = function(){return false;}
  };
  addEvent(window,'load',grayout_prevent_a_action,false);
};
