// globals
var dxMenu = [];
dxMenu["Inf"] = new dx_Info();
dxMenu["EvtInf"] = new dx_EventInfo();
dxMenu["Utl"] = new dx_Utils();
dxMenu["Mng"] = new dx_MenuManager();
dxMenu["Pos"] = dxMenu.Utl.CreatePosHelper();
dxMenu["Obj"] = dxMenu.Utl.CreateObjHelper();
dxMenu["Evt"] = new dx_EventManager();

if(dxMenu.Inf.ns4) {
	dxMenu.Mng.OnResize = function() {
		for(var i = 0; i < this.menus.length; i++) {
			this.menus[i].ItemClear();
		}
		this.HideAll();
		this.OnLoad();
//		this.Initialize();
	}
}

function CreateMainMenu() {
	return dxMenu.Mng.CreateMainMenu();
}
function CreateContextMenu() {
	return dxMenu.Mng.CreateContextMenu();
}
function SelectMenuItem(id) {
	dxMenu.Mng.SelectItemId(id);
}
function PopupContextMenu(id, elem, x, y) {
	var _elem = GetArgValue(arguments, 1, null);
	var _x = GetArgValue(arguments, 2, 0);
	var _y = GetArgValue(arguments, 3, 0);
	
	if(null != _elem) { 
		var pt = dxMenu.Pos.GetAbsolutePos(_elem);
		_x += pt.x; _y += pt.y;
	}
	dxMenu.Mng.PopupMenu(id, _x, _y);
}
function ShowContextMenu(id, e, x, y) {
	var _e = GetArgValue(arguments, 1, null);
	var _x = GetArgValue(arguments, 2, 0);
	var _y = GetArgValue(arguments, 3, 0);
	if(null != _e) {
		_x += dxMenu.Pos.GetEventX(_e, window);
		_y += dxMenu.Pos.GetEventY(_e, window);
	}
	dxMenu.Mng.PopupMenu(id, _x, _y);
}
function HideContextMenu(id) {
	dxMenu.Mng.HideMenu(id);
}
function HideAllMenus() {
	return dxMenu.Mng.HideAll();
}
function RaiseItemEvent(id, itemId) {
	__doPostBack(id, DoEventArg("item",itemId));
}

dxMenu.Evt.Attach("window.onresize", function() { dxMenu.Mng.OnResize(); } );
window.onresize = function() { dxMenu.Evt.Exec("window.onresize"); }

dxMenu.Evt.Attach("window.onload", function() { dxMenu.Mng.OnLoad(); } );
window.onload = function() { dxMenu.Evt.Exec('window.onload'); }

dxMenu.Evt.Attach("window.document.onmousedown", function(e) { dxMenu.Mng.OnMouseDown(e); } );
window.document.onmousedown = function(e) { dxMenu.Evt.Exec("window.document.onmousedown",e); }

if(dxMenu.Inf.ns4) window.document.captureEvents(Event.MOUSEMOVE);
dxMenu.Evt.Attach("window.document.onmousemove", function(e) { dxMenu.Mng.OnMouseMove(e); } );
window.document.onmousemove = function(e) { dxMenu.Evt.Exec("window.document.onmousemove",e); }

window.onerror = function() { 
	return true;
};

