﻿function showPopup(panelId, speed, callback) {
    if (speed == undefined)
        speed = "slow";
    if ($("#backgroundPopup").size() == 0)
        $("body").prepend("<div id='backgroundPopup'></div>");
    
    var bgnd = $("#backgroundPopup");
    var panel = $("#" + panelId).closest(".popupPanel"); //move from div to wrapping table tag
    var panelTop = ($(window).height() - panel.outerHeight()) / 2;

    if ($.browser.msie) {
        hideShadow(panel);
        if ($.browser.version == "6.0") {
            $("select").hide();
            bgnd.css("position", "absolute");
            panel.css("position", "absolute").find(".closeBtn img").css("position", "absolute");
            panelTop += $(window).scrollTop();
        }
    }
    
    panel.css({ top: panelTop, left: ($(window).width() - panel.outerWidth()) / 2 }).fadeIn(speed, showShadow);
    bgnd.css({ opacity: 0.7, height: $(document).height() }).fadeIn(speed);
}

function hidePopup(panelId) {
    var panel = $("#" + panelId).closest(".popupPanel");
    $("#backgroundPopup").fadeOut("slow");
    hideShadow(panel);
    panel.fadeOut("slow", function () { if ($.browser.msie && $.browser.version == "6.0") $("select").show(); });
}

function swapPanel(oldPanelId, newPanelId) {
    $("#" + oldPanelId).closest(".popupPanel").hide();
    showPopup(newPanelId, 0);
    $("#" + newPanelId + " input[type=text]:first").focus();
}

/* fix IE showing image fully opaque during animation */
function hideShadow(panel) {
    if ($.browser.msie)
        //table -> table section -> row -> cell
        panel.children().children().children().each(function () { $(this).css("background-image", "none"); });
}

/* show shadow that was hidden in IE unless it's IE6 or lower because it doesn't support transparent png */
function showShadow() {
    if ($.browser.msie && $.browser.version > 6)
        $(this).children().children().children().each(function () { $(this).css("background-image", ""); });
}
