
function Region_VeilClicked(vielConfirmedCookieName, dialogDivID, contentDivID, veilDivID, veilMessageDivID, toggleChildVeilMethodCalls)
{

    // determine whether or not the confirm dialog has been shown
    var veilConfirmed = getCookie(vielConfirmedCookieName);
    if(veilConfirmed)
    {
        Region_ToggleVeil(contentDivID, veilDivID, veilMessageDivID, toggleChildVeilMethodCalls, false);
    }
    else
    {
        Region_ToggleDialog(dialogDivID, contentDivID, true);
    }
      
}

function Region_DialogConfirmedAndToggleVeil(vielConfirmedCookieName, dialogDivID, contentDivID, veilDivID, veilMessageDivID, toggleChildVeilMethodCalls)
{
    Region_ToggleDialog(dialogDivID, contentDivID,  false);
    Region_ToggleVeil(contentDivID, veilDivID, veilMessageDivID, toggleChildVeilMethodCalls, false);
    document.cookie = vielConfirmedCookieName + "=true";
}

function Region_ToggleDialog(dialogDivID, contentDivID, visible)
{

    var dialogDiv = document.getElementById(dialogDivID);
    
    if(visible)
    {
        centerObjInWindow(dialogDiv);
        dialogDiv.style.zIndex = getMaxZIndex(document.body) + 1;
        dialogDiv.style.position = "absolute";
        dialogDiv.style.visibility = "visible";
        
        Region_OnPaintDialog(dialogDiv);
    }
    else
    {
        dialogDiv.style.visibility = 'hidden';
        window.onresize = "";
        window.onscroll = "";
        
        // reshow any selects that were hidden
        showCollidedSelects(dialogDiv);
    }

}

function Region_OnPaintDialog(dialogDiv)
{
    if(dialogDiv.style.visibility=='visible')
    {
        centerObjInWindow(dialogDiv);
                
        // hide all collided selects for IE
        hideCollidedSelects(dialogDiv);
    }
}

function Region_OnPaint(dialogDivID, contentDivID, veilDivID, veilMessageDivID)
{
    var dialogDiv = document.getElementById(dialogDivID);
    if(dialogDiv.style.visibility=='visible')
    {
        Region_OnPaintDialog(dialogDiv);
    }
    
    var veilDiv = document.getElementById(veilDivID);
    // Note this does not appear to get called correctly for browsers other than IE7 check the attachEventHandler function
    if(veilDiv.style.visibility=='visible')
    {
        var contentDiv = document.getElementById(contentDivID);
        var veilMessageDiv = document.getElementById(veilMessageDivID);
        Region_OnPaintVeil(contentDiv, veilDiv, veilMessageDiv);
    }
}

function Region_OnPaintVeil(contentDiv, veilDiv, veilMessageDiv)
{
    if(veilDiv.style.visibility=='visible')
    {
        var contentTop = getAbsoluteTop(contentDiv);
        var contentLeft = getAbsoluteLeft(contentDiv);
        var width = contentDiv.offsetWidth - 4;
        if (width < 400) { width = 400 };
        veilDiv.style.top = contentTop + 2 + 'px';
        veilDiv.style.left = contentLeft + 2 + 'px';
        veilDiv.style.width = width + 'px';
        veilDiv.style.height = contentDiv.offsetHeight - 4 + 'px';
              
        veilMessageDiv.style.top = contentTop + 3 + 'px';
        veilMessageDiv.style.left = contentLeft + 3 + 'px';
        veilMessageDiv.style.width = width + 'px';
    }
}


function Region_AttachEventHandlers(dialogDivID, contentDivID, veilDivID, veilMessageDivID)
{
    attachEventHandler(window, "onresize", function(e) { Region_OnPaint(dialogDivID, contentDivID, veilDivID, veilMessageDivID); });
    attachEventHandler(window, "onscroll", function(e) { Region_OnPaint(dialogDivID, contentDivID, veilDivID, veilMessageDivID); });
}

function Region_ToggleVeil(contentDivID, veilDivID, veilMessageDivID, toggleChildVeilMethodCalls, visible)
{
    
    // toggle the data viel
    var contentDiv = document.getElementById(contentDivID);
    var veilDiv = document.getElementById(veilDivID);
    
    var veilMessageDiv = document.getElementById(veilMessageDivID);
     
    if(visible)
    {
    
        // hide all children veils now that we are hidden
        if(null!=toggleChildVeilMethodCalls)
        {
            for(i=0;i<toggleChildVeilMethodCalls.length;i++)
            {
                eval(toggleChildVeilMethodCalls[i].replace('true','false'));
            }
        }

        // set disabled to true
        setDisabledChildren(contentDiv, true);
        
        var contentTop = getAbsoluteTop(contentDiv);
        var contentLeft = getAbsoluteLeft(contentDiv);
                
        // make the veil visible
        veilDiv.style.visibility = 'visible';
        veilDiv.style.zIndex = getMaxZIndex(contentDiv) + 1;
        
        veilMessageDiv.style.visibility = 'visible';
        veilMessageDiv.style.zIndex = veilDiv.style.zIndex + 1;
        
        Region_OnPaintVeil(contentDiv, veilDiv, veilMessageDiv);
        
        // hide all collided selects for IE
        hideCollidedSelects(veilDiv);
    }
    else
    {
        veilDiv.style.visibility = 'hidden';
        veilMessageDiv.style.visibility = 'hidden';
        
        // show all children veils now that we are hidden
        if(null!=toggleChildVeilMethodCalls)
        {
            for(i=0;i<toggleChildVeilMethodCalls.length;i++)
            {
                eval(toggleChildVeilMethodCalls[i].replace('false','true'));
            }
        }
    
        // reshow any selects that were hidden
        showCollidedSelects(veilDiv);
        
        // revert the disabled children
        revertDisabledChildren(contentDiv);
    }
    
}
