//  JavaScript Document

//  popupImagePrimitive (2010-03-24)

//  typical using of this component
//  window.popupImagePrimitive = new popupImagePrimitive();
//  <a href="images/scan_gallery_infopopup.gif" title="" target="_blank" onclick="window.popupImagePrimitive.onClick(null,this);return false;"></a>

//

function popupImagePrimitive() {
  var self = this;
  //
  this.containerElem = null;
  this.backgroundElem = null;
  this.innerElem = null;
  this.imageTemp = new Image();
  //
  this.init = function() {
    dojo.require("dijit._base.place");
    dojo.addOnLoad(self.makeShadow);
    dojo.connect(window,'onresize',self.resize);
    return true;
  };
  //
  this.makeShadow = function() {
    self.containerElem = dojo.create('div', { className: 'pagepopup hidden' }, dojo.body(), 'first');
    self.backgroundElem = dojo.create('div', { className: 'pagepopup-bg' }, self.containerElem);
    self.innerElem = dojo.create('div', { className: 'pagepopup-inner' }, self.containerElem);
    self.imageElem = dojo.create('img', null, self.innerElem);
    //
    self.backgroundElem.onclick = self.hide;
    self.imageElem.onclick = self.hide;
    self.imageTemp.onload = self.show;
    //
  };
  //
  this.onClick = function (e,thisElem) {
    if (!thisElem) thisElem = this;
    if (dojo.isIE<=6) {
      self.imageTemp.src = thisElem.href.replace('.png','.gif');
    } else {
      self.imageTemp.src = thisElem.href;
    }
  };
  //
  this.show = function () {
    self.imageElem.src = self.imageTemp.src;
    dojo.removeClass(self.containerElem,'hidden');
    self.resize();
  };
  //
  this.hide = function () {
    dojo.addClass(self.containerElem,'hidden');
  };
  //
  this.resize = function () {
    var viewport = dijit.getViewport();
    var scrollTop = window.pageYOffset || document.documentElement.scrollTop || 0;
    self.backgroundElem.style.width = dojo.body().offsetWidth+'px';
    self.backgroundElem.style.height = dojo.body().offsetHeight+'px';
    self.innerElem.style.left = (Math.round((viewport.w-self.imageElem.offsetWidth)/2))+'px';
    self.innerElem.style.top = (Math.round((viewport.h-self.imageElem.offsetHeight)/2)+scrollTop)+'px';
  };
  //
  return self.init();
}

//  end of document