(function ($) {
    $.fn.popLayer = function(popWidth, options, overName, overZindex, popupName, popupZindex, topSize) {
        // Å¸°Ù Å¬¸¯½Ã ½ÇÇà
        $(this).click(function(event) {
        	popLayer(popWidth, options, overName, overZindex, popupName, popupZindex, topSize);
        });
    };
})(jQuery);

function popLayer(popWidth, options, overName, overZindex, popupName, popupZindex, topSize) {
	var settings = $.extend({
        over : overName || "overLay",
        popup : popupName || "popupLay",
		load: null,
		secure: false,
		// ¿À¹ö ·¹ÀÌ¾î ¿É¼Ç
        overLayer : {
            position: ($.browser.msie) ? "absolute" : "fixed",
            zIndex: overZindex || 99,
            width: "100%",
            height: ($.browser.msie) ? $(document).height() : $(window).height(),
            top:  "0px",
            left: "0px",
            backgroundColor: "#000",
            opacity: "0.4",
            display: "none"
        },
        // ÆË¾÷ ·¹ÀÌ¾î ¿É¼Ç
        popupLayer : {
            position : ($.browser.msie) ? "absolute" : "fixed",
            zIndex: popupZindex || 100,
            width: popWidth,
            marginLeft: "-" + (popWidth / 2) + "px",
            height: "auto",
            top: topSize || "80px",
            left: "50%",
            display: "none"
        }
    }, options);
	
    //inserts the background element in the document
    $("<div></div>")
    	.attr("id", settings.over)
        .css(settings.overLayer)
        .appendTo("body");
    
    $("<div></div>")
        .attr({id: settings.popup}) 
        .css(settings.popupLayer)
        .appendTo("body")
        .end();
    
	if (settings.load) {
		if(settings.secure) {
			if (!settings.load.params) {
				settings.load.params = {secure: 'true'}
			}
			$("#" + settings.popup).secureLoad(settings.load.url, settings.load.params, function() {
				$(this).html(BlockDec(s));
				$(".btn_close").click(function (event) {
					$("#" + settings.popup).fadeOut(200, function () {
		                $("#" + settings.over).fadeOut(200, function () {
		   				$("#" + settings.popup).remove();
		   				$("#" + settings.over).remove();
		               });
		           });
	            });
				
				$("#" + settings.over)
	            .fadeIn(200, function () {
	                $("div#" + settings.popup).fadeIn(300, function(event) {
	                	if (settings.load.callback) {
							settings.load.callback();
						}
	                });
	            });
			});
		} else {
			$("#" + settings.popup).load(settings.load.url, settings.load.params, function() {
				$(".btn_close").click(function (event) {
					$("#" + settings.popup).fadeOut(200, function () {
		                $("#" + settings.over).fadeOut(200, function () {
		   				$("#" + settings.popup).remove();
		   				$("#" + settings.over).remove();
		               });
		           });
	            });
				
				$("#" + settings.over)
	            .fadeIn(200, function () {
	                $("div#" + settings.popup).fadeIn(300, function(event) {
	                	if (settings.load.callback) {
							settings.load.callback();
						}
	                });
	            });
			});
		}
	}
	
	$(document).one("keypress", function (e) {
        var escKey = $.browser.mozilla ? 0 : 27;
        if (e.which === escKey) {
        	$("#" + settings.popup).fadeOut(200, function () {
                $("#" + settings.over).fadeOut(200, function () {
   				$("#" + settings.popup).remove();
   				$("#" + settings.over).remove();
               });
           });
        }
    });
	
	// ½ºÅ©·ÑÀÌ »ý±â¸é ¿À¹ö·¹ÀÌ¾îÀÇ Å©±â¸¦ Á¶Á¤
	$(window).scroll(function (event) {
		var winHeight =  $(window).height();
		var overlayHeight = $(document).height();
		
		if ($.browser.msie) { 
			$("#" + settings.over).css({
				top: 0,
				height: overlayHeight,
				position: "absolute"
			});
		} else{
			$("#" + settings.over).css({
				top: 0, 
				height: winHeight,
				position: "fixed"
			});
		}
	});
}
