﻿/*
弹出一个浮动框
参数
content:需要显示的内容Html支援
hascover:是否显示一个半透明的遮盖
*/
jQuery.extend({ dialog: function (params) {
    var default_params = { content: '', hascover: true };
    if (params) { $.extend(default_params, params); }


    if ($(".dlg_container").length == 0) {
        var cover_element = '<div class="dlg_cover" style="width:100%;height:100%;top:0px;left:0px;position:absolute;z-index:100;background-color:#C0C0C0;-moz-opacity:0.6;opacity: 0.6;filter: alpha(opacity = 60);display:none;"></div>';
        var container_element = '<div class="dlg_container" style="position:absolute;z-index:101;"></div>';
        $(document.body).append(container_element);
        if ($(document).find(".dlg_cover").length == 0 && default_params.hascover) $(document.body).append(cover_element);
        $(window).bind("scroll", function () { if ($(".dlg_container").css("display") == "none") return; handleSizeAndLocation(); });
        $(window).bind("resize", function () { if ($(".dlg_container").css("display") == "none") return; handleSizeAndLocation(); });
        $(document).bind("keypress", function (event) {
            if (event.keyCode == 27) { $.closedialog(); }
        });
    }

    var cover = $(".dlg_cover");
    var container = $(".dlg_container");

    $(container).html(default_params.content);

    if ($(cover).length > 0)
        $(cover).css("height", document.body.clientHeight).css("display", "inline"); //显示遮盖
    $(container).html(default_params.content).css("display", "inline"); //显示内容
    handleSizeAndLocation();

    function handleSizeAndLocation() {
        var topValue = 0;
        topValue = $(container).css("height") >= document.documentElement.clientHeight ? 0 : $(document.documentElement).scrollTop() + document.body.scrollTop + document.documentElement.clientHeight / 2 - $(container)[0].offsetHeight / 2;
        var leftValue = 0;
        leftValue = $(container).css("width") >= document.documentElement.clientWidth ? 0 : document.documentElement.clientWidth / 2 - $(container)[0].offsetWidth / 2;

        $(container).css("left", leftValue);
        $(container).css("top", topValue);
    }
    return this;
}, closedialog: function () {
    $(document).find(".dlg_cover").each(function () { $(this).css("display", "none"); });
    $(document).find(".dlg_container").each(function () { $(this).css("display", "none"); });
}
});
