﻿var popupOpen='';
var closingFlag='';
function showPopup(id, setLeft)
{
    if (popupOpen==id)
    {
        document.getElementById(popupOpen + 'popupDiv').style.display='none';
        popupOpen='';
        manageIFrame(id, false);
    }
    else
    {
        if(popupOpen!='')
        {
            document.getElementById(popupOpen + 'popupDiv').style.display='none';
            manageIFrame(id, false);
        }
        popupOpen=id;
        closingFlag=id;
        var popupDiv = document.getElementById(popupOpen + 'popupDiv')
        var openTag = document.getElementById(id + 'openTag');
        if(setLeft)
        {
            var isIE = window.navigator && window.navigator.appName == "Microsoft Internet Explorer" && !window.opera;
            if (!isIE)
            {
                popupDiv.style.left = openTag.offsetLeft + 'px';
            }
        }
        popupDiv.style.display='block';
        popupDiv.focus();
        
        // Adjust the popup to keep it with in the client window
        var clientWidth = document.documentElement.clientWidth;
        var leftOffset = (popupDiv.offsetLeft + popupDiv.offsetWidth) - clientWidth;
        if (leftOffset > 0)
        {
            popupDiv.style.left = (popupDiv.offsetLeft - (leftOffset + 2)) + 'px';
            popupDiv.style.top = (popupDiv.offsetTop + (openTag.offsetHeight + 2)) + 'px';
        }
        
        manageIFrame(id, true);
    }   
}
function manageIFrame(id, show)
{
    var childFrame = document.getElementById("popupControlFrame");
    if (!childFrame) 
    {
        childFrame = document.createElement("iframe");
        childFrame.id = "popupControlFrame";
        childFrame.style.position = "absolute";
        childFrame.style.display = "none";
        childFrame.scrolling = "no";
        childFrame.frameBorder = "0";
            
        document.body.appendChild(childFrame);
    }
    if (show)
    {
        var popupDiv = document.getElementById(id + 'popupDiv')
    
        childFrame.style.width = popupDiv.offsetWidth + 'px';
        childFrame.style.height = popupDiv.offsetHeight + 'px';
        childFrame.style.top = popupDiv.offsetTop + 'px';
        childFrame.style.left = popupDiv.offsetLeft + 'px';
        
        childFrame.style.zIndex = popupDiv.style.zIndex - 1;
        childFrame.style.display='block';
    }
    else
    {
        childFrame.style.display='none';
    }
}
function popupLostFocus(id)
{
    if (closingFlag!='true')
    {
        var popupDiv = document.getElementById(id + 'popupDiv')
        if(!popupDiv.contains(document.activeElement))
        {
            popupDiv.style.display='none';
            popupOpen='';
            manageIFrame(id, false);
        }
    }
}
function managePopup(id)
{
    if (closingFlag==id)
    {
        closingFlag='true';
    }
}