function CP() { }

CP.MainUnderlay = null;
CP.LoadEvents = new Array();
CP.ActiveDialog = null;
CP.PopUpMenuList = new Array();
CP.HideDialogCallback = null;

CP.AddLoadEvent = function (func) {
    if (CP.LoadEvents.length == 0) {
        window.onload = function () {
            for (var i = 0; i < CP.LoadEvents.length; i++) {
                CP.LoadEvents[i]();
            }
        };
    }
    CP.LoadEvents.push(func);
};

CP.AddLoadEvent(function () {
    document.body.onmousedown = CP.ContextHandler(function (e, param) {
        if (e == null) { e = window.event; }
        for (var i = 0; i < CP.PopUpMenuList.length; i++) {
        	if (!CP.PopUpMenuList[i]._IsMouseOverSelf) {
        		CP.PopUpMenuList[i].Hide();
        	}
        }
    }, this);
    
    document.body.oncontextmenu = CP.ContextHandler(function (e, param) {
        if (e == null) { e = window.event; }

        for (var i = 0; i < CP.PopUpMenuList.length; i++) {
            if (CP.PopUpMenuList[i]._IsMouseOverTarget
            		&& CP.PopUpMenuList[i]._Type == "context") {
            	CP.PopUpMenuList[i].Show(e);
                return false;
            }
        }
        return true;
    }, this);
});

CP.ChangeActiveDialog = function (dialog) {
	if(CP.MainUnderlay == null){ CP.MainUnderlay = new CP.Underlay(); }
	if(CP.ActiveDialog == null){ CP.MainUnderlay.Show(); }
	if(CP.ActiveDialog != null){ document.body.removeChild(CP.ActiveDialog._MainDiv); }
	document.body.appendChild(dialog._MainDiv);	
	dialog.RePosition();
	CP.ActiveDialog = dialog;
};

CP.HideDialog = function (dialog) {
	if(CP.ActiveDialog != null){ CP.MainUnderlay.Hide(); }
	document.body.removeChild(dialog._MainDiv);
	CP.ActiveDialog = null;
	if(CP.HideDialogCallback != null) { CP.HideDialogCallback(); }
};
