﻿function Dashboard()
{
}

(function()
{
    var STATUS = 0;

    Dashboard.prototype.Childs = new Array();

    // Show dashboard.
    Dashboard.prototype.Show = function()
    {
        if(STATUS == 1) return;
        STATUS = 1;

        var bodyObject = document.body;
        var height = (bodyObject.offsetHeight > document.documentElement.clientHeight ? bodyObject.offsetHeight : document.documentElement.clientHeight);
        var width = (bodyObject.offsetWidth > document.documentElement.clientWidth ? bodyObject.offsetWidth : document.documentElement.clientWidth);
        var overlay = document.createElement("div");

        overlay.id = "DASHBOARD_OVERLAY";

        overlay.style.width = "100%";
        overlay.style.height = height + "px";
        overlay.style.backgroundColor = "#000";
        overlay.style.position = "absolute";
        overlay.style.left = "0px";
        overlay.style.top = "0px";
        overlay.style.zIndex = 100;

        overlay.onclick = this.Hide;
        overlay._childs = this.Childs;

        document.body.appendChild(overlay);

        Daedalus.GraphicEffects.FadeIn(overlay, 0, 60, 20, 1, attachChildPanels);

        // Attach dashboard contents to screen
        var childs = this.Childs;
        function attachChildPanels()
        {
            var contentPanel = document.body;
            if(childs.length > 0)
            {
                for(var i=0; i<childs.length; i++)
                {
                    var child = contentPanel.appendChild(childs[i]);
                    child.style.position = "absolute";
                    child.style.zIndex = 101;
                }
            }
            STATUS = 0;
        }
    }

    // Hide dashboard.
    Dashboard.prototype.Hide = function()
    {
        if(STATUS == 1) return;
        STATUS = 1;

        var overlay = document.getElementById("DASHBOARD_OVERLAY");

        var length = overlay._childs.length;
        var contentPanel = document.body;

        for(var i=0; i<length; i++) contentPanel.removeChild(overlay._childs.pop());

        function removeOverlay()
        {
            overlay.parentNode.removeChild(overlay);
            STATUS = 0;
        }

        Daedalus.GraphicEffects.FadeOut(overlay, 60, 0, 20, 1, removeOverlay);
    }
    
})();