IPicture.ZoomWin = iClass.create({  
  initialize: function( url, width, height ) {
    this.url    = url;
    this.width  = width;
    this.height = height;
    
    this.opacityDiv = new OpacityDiv();
    
    this.modalBegin();
    this.markup();
    this.loadImage();
  }, // initialize
  
  modalBegin: function() {
    if ( window.UIManager ) {
    } else {
      this.opacityDiv.show();
    } // if
  }, // modalBegin
  
  markup: function() {
    var popupDiv    = cr( 'DIV' );
    var closeBtnDiv = cr( 'DIV' );
    
    this.popupDiv = popupDiv;
    this.closeBtn = closeBtnDiv;
    
    popupDiv.appendChild( closeBtnDiv );
    closeBtnDiv.className = 'closeBtn';
    
    var self = this;
    closeBtnDiv.onclick = function() {
      self.close();
    } // onclick
        
    hideElement( closeBtnDiv );
    
    var styleHash = {
      width      : this.width  + 'px',
      height     : this.height + 'px',
      zIndex     : 20000,
      visibility : 'hidden'
    }
    
    Element.setStyle( popupDiv, styleHash );
    
    Body.append( popupDiv );
    toScreenCenter( popupDiv );
    
    popupDiv.style.visibility = 'visible';
  }, // markup
  
  modalEnd: function() {
    if ( window.UIManager ) {
    } else {
      this.opacityDiv.hide();
    } // if
  }, // modalEnd
  
  loadImage: function() {
    var self = this;
    var img  = jQuery( new Image() );
    
    this.popupDiv.className = 'ipicture_popup loading';
    
    img.load( function() {
      self.onImageLoaded( img );
    }).attr( 'src', this.url );
  }, // loadImage
  
  onImageLoaded: function( img ) {
    displayElement( this.closeBtn );
    var imgElement = $A( img ).first();
    
    this.popupDiv.className = 'ipicture_popup';
    this.popupDiv.appendChild( imgElement );
  }, // onImageLoaded
  
  close: function() {
    rmObj( this.popupDiv );
    this.modalEnd();
  } // close
}); // IPicture.ZoomWin