(function($){
	$.Popup = function(options){
		
		this.defaults = {
			popup: $('#popup'),
			blocker: $('#blocker'),
			onClass: 'on',
			close: $('.popup_close'),
			closeCallback : function(){ $('#Login1_UserName').focus(); console.log('closed!!!') }
		};
	
		this.settings = $.extend(this.defaults, options);
		
		var self = this,
			$popup = this.settings.popup,
			$blocker = this.settings.blocker,
			$close = this.settings.close;
		
		function _init(){
			$blocker
				.addClass(self.settings.onClass)
				.css({
					'width' : _utils.getDocWidth(),
					'height' : _utils.getDocHeight(),
					'opacity' : '0.8'
				});
			$popup
				.addClass(self.settings.onClass)
				.css({
					'left' : _utils.getPopupXPos(),
					'top' : _utils.getPopupYPos()
				});
			$close
				.bind('click', function(e){
					self.off();
				});
		}
		
		var _utils = {
			getDocHeight : function(){
				return $(document).height();
			},
			getDocWidth : function(){
				return $(document).width();
			},
			getPopupXPos : function(){
				return ( ($(window).width() - $popup.width()) / 2 + 'px');
			},
			getPopupYPos : function(){
				var YPos = ( ($(window).height() - $popup.height()) / 2);
				return (YPos > 300) ? '25%' : YPos + 'px';
			}
		}
		
		this.off = function(){
			$popup.hide();
			$blocker.hide();
			self.settings.closeCallback();
		}
		
		this.on = function(){
			$blocker.show();
			$popup.show();
		}
		
		_init();
	};
})(jQuery);