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 = "Login.aspx";
			break;
		case "Logout":
			document.location.href = "Login.aspx?Logout=1" + (arg != null ? "&Redirect=" + escape(arg) : "");
			break;			
		case "GetDocumentTitle":
			return _CoreDocumentTitle;
			break;
		case "GetDocumentID":
			return _CoreDocumentID;
			break;
		case "LoadDocument":
			if(_CoreIsNavigating) return;
			var target = (arg.length?arg[1].toString().toLowerCase():"_self");
			if(target == "_self")
			{
				_CoreIsNavigating = true;
				window.location.href = _CoreUrl + "?id=" + (arg.length?arg[0]:arg);
			}
			else
				window.open(_CoreUrl + (arg.length?"?Popup=1&":"?") + "id=" + (arg.length?arg[0]:arg), target, (arg.length?arg[2]:null));
			break;
		case "LoadHref":
			window.open(arg[0], arg[1], arg[2]);
			break;
		case "RefreshDocument":
			document.forms[0].submit();
			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);
}
var _CoreWebObjectParameterQue = new Array();
var _FrameCells = [];