var _CoreIsNavigating = false;


function __DoLoginCheck(e)
{
	CoreCommand("Login", typeof(e) != "undefined" ? e : event)
}

if(document.addEventListener)
	document.addEventListener("mouseup", __DoLoginCheck, false);
else if(document.attachEvent)
	document.attachEvent("onmouseup", __DoLoginCheck);


function CoreCommand(cmd, arg) {
    switch (cmd) {
        case "Login":
            if (typeof (arg) != "undefined" && arg.button == 2 && arg.ctrlKey)
                document.location.href = _CoreAppPath + "Login.aspx";
            break;
        case "Logout":
            document.location.href = _CoreAppPath + "Login.aspx?Logout=1" + (arg != null ? "&Redirect=" + escape(arg) : "");
            break;
        case "GetDocumentTitle":
            return _CoreDocumentTitle;
            break;
        case "GetDocumentID":
            return _CoreDocumentID;
            break;
        case "GetStartDocumentID":
            return _CoreStartID;
            break;
        case "GetSiteID":
            return _CoreSiteID;
            break;
        case "LoadDocument":
            if (_CoreIsNavigating) return;
            var target = (arg.length ? arg[1].toString().toLowerCase() : "_self");
            var id = (arg.length ? arg[0] : arg);
            id = (id > 0) ? ("id=" + id) : "";
            if (target == "_self") {
                _CoreIsNavigating = true;
                window.location.href = _CoreUrl + (id.length > 0 ? ("?" + id) : "");
            }
            else
                window.open(_CoreUrl + (arg.length ? "?Popup=1&" : "?") + id, target, (arg.length ? arg[2] : null));
            break;
        case "LoadDocumentHref":
            if (_CoreIsNavigating) return;
            var target = "_self"; //(arg.length ? arg[1].toString().toLowerCase() : "_self");
            var path = arg; //(arg.length ? arg[0] : arg);
            if (target == "_self") {
                _CoreIsNavigating = true;
                window.location.href = path;
            }
            else
                window.open(path, target, (arg.length ? arg[2] : null));
            break;
        case "LoadHref":
            window.open(arg[0], arg[1], arg[2]);
            break;
        case "RefreshDocument":
            //document.forms[0].submit();
            //window.location.href = window.location.href;
            document.location.reload();
            break;
        case "RefreshStyleSheet":
            if (document.getElementById)
                document.getElementById('StyleSheet').href = (arg != null) ? arg : document.getElementById('StyleSheet').href;
            break;
        case "CloseWindow":
            window.top.close();
            break;
        case "GoBack":
            history.back();
            break;
        case "GetPermission":
            return _CorePermissions;
            break;
        case "WebObjectRemoveParameter":
            if (typeof (_CoreWebObjectData) != "undefined" && _CoreWebObjectData.value != "") {
                var e = _CoreWebObjectData;
                var s = e.value.indexOf(arg[0] + "," + escape(arg[1]) + ",");
                if (s > -1) {
                    e.value += ";";
                    e.value = e.value.substr(0, s) + e.value.substr(e.value.indexOf(";", s));
                }
            }
            else if (_CoreWebObjectParameterQue.length > 0) {
                var arr = new Array();
                for (var i = 0; i < _CoreWebObjectParameterQue.length; i++)
                    if (_CoreWebObjectParameterQue[i][0] != arg[0] || _CoreWebObjectParameterQue[i][1] != arg[1])
                    arr[arr.length] = _CoreWebObjectParameterQue[i];
                _CoreWebObjectParameterQue = arr;
            }
            break;
        case "WebObjectAddParameter":
            if (arg)
                CoreCommand("WebObjectRemoveParameter", arg);
            if (typeof (_CoreWebObjectData) != "undefined") {
                var e = _CoreWebObjectData;
                if (arg)
                    e.value += (e.value != "" ? ";" : "") + arg[0] + "," + escape(arg[1]) + "," + escape(arg[2].toString().replace(/,/g, "[Comma]").replace(/;/g, "[SemiColon]").replace(/\+/g, "[Plus]"));
                else
                    for (var i = 0; i < _CoreWebObjectParameterQue.length; i++)
                    e.value += (e.value != "" ? ";" : "") + _CoreWebObjectParameterQue[i][0] + "," + escape(_CoreWebObjectParameterQue[i][1]) + "," + escape(_CoreWebObjectParameterQue[i][2].toString().replace(/,/g, "[Comma]").replace(/;/g, "[SemiColon]").replace(/\+/g, "[Plus]"));
            }
            else
                _CoreWebObjectParameterQue[_CoreWebObjectParameterQue.length] = arg;
            break;
        case "SetWindowStatus":
            window.status = arg;
            return true;
            break;
        default:
            //alert("Unknown command: " + cmd);
            break;
    }
    return false;
}
function WebObjectParameterRemove(InstanceID, Name)
{
	CoreCommand("WebObjectRemoveParameter", new Array(InstanceID, Name));
}
function WebObjectParameterAdd(InstanceID, Name, Value)
{
	CoreCommand("WebObjectAddParameter", new Array(InstanceID, Name, Value));
}
function WebObjectSubmit()
{
	if(_CoreWebObjectParameterQue.length > 0)
		CoreCommand("WebObjectAddParameter", null);
	//CoreCommand("RefreshDocument", null);
	document.forms[0].submit();
}
var _CoreWebObjectParameterQue = new Array();
var _FrameCells = [];