var core = function(){
  return {
		
	  init: function(){
			this.initMask();
			this.setHandlers();
		},
		
		initMask: function(){
			this.mask = Ext.get('mask');
			this.mask.select('.mask-close').each(function(el){
        el.on('click', this.hideMask, this);
			}, this);
		},
		
		showMask: function(){
		  this.mask.fadeIn({duration: .2, endOpacity: .9});
		},
		
		hideMask: function(dur){
			Ext.get('image-container').hide();
			Ext.get('image-container').dom.src = '#';
		  this.mask.fadeOut({duration: .1, endOpacity: 0, remove: false, useDisplay: true });
		},
		
		setHandlers: function(){
			var els = Ext.select('.attachment-thumbnail');
			if(els){
				els.each(function(el){
					var a = el.findParent('a', null, true);
					a.on('click', core.showImage, core);
					a.dom.$href = a.dom.href;
          a.dom.href = '#';
				});
			}
			Ext.get('image-container').on('click', this.hideMask, this);
			Ext.get('mask').on('click', this.hideMask, this);
		},
		
		showImage: function(e, t){
			var el = e.getTarget('a');
			Ext.get('image-container').dom.src = el.$href;
			var l = Ext.get('wrapper').getLeft() + 40;
			Ext.get('image-container').position('absolute');
			Ext.get('image-container').setLeft(l);
			Ext.get('image-container').fadeIn();
			this.showMask();
			
		}
		
	}
}();

Ext.onReady(function(){ core.init(); });
