	//传一个函数过来,返回函数调用的字符串
	function GetEventFuncName(mstr)
	{
		try
		{
			if(mstr == null) return "";
			tmstr = space_trim(mstr + "");
			var mpos2 = tmstr.indexOf(" ");
			var mpos1 = tmstr.indexOf("(");
			if(mpos1 > 0 && mpos2 > 0)	return space_trim(tmstr.substring(mpos2,mpos1));
		}catch(e){}
		return "";
	}
	var mArrayDocumentMouseUp = new Array();
	var mArrayDocumentMouseDown = new Array();
	var mArrayDocumentMouseMove = new Array();
	var mArrayDocumentFunc = new Array(); //onclick
	var mArrayDocumentKeyDown = new Array();
	var mArrayDocumentKeyUp = new Array();
	function AddDocumentFuncMouseUp(index,mFunc)
	{
		if(mArrayDocumentMouseUp[index]) return false;
		mArrayDocumentMouseUp[index] = mFunc;
		return true;
	}
	function DelDocumentFuncMouseUp(index)
	{
		delete mArrayDocumentMouseUp[index];
	}
	function document_onmouseup()
	{
		for(var prop in mArrayDocumentMouseUp)
			try{eval(mArrayDocumentMouseUp[prop]);}catch(e){}
	}
	function AddDocumentFuncMouseDown(index,mFunc)
	{
		if(mArrayDocumentMouseDown[index]) return false;
		mArrayDocumentMouseDown[index] = mFunc;
		return true;
	}
	function DelDocumentFuncMouseDown(index)
	{
		delete mArrayDocumentMouseDown[index];
	}
	function document_onmousedown()
	{
		for(var prop in mArrayDocumentMouseDown)
		{
			try{eval(mArrayDocumentMouseDown[prop]);}catch(e){}
			//alert(mArrayDocumentMouseDown[prop]);
		}
	}
	function AddDocumentFuncMouseMove(index,mFunc)
	{
		if(mArrayDocumentMouseMove[index]) return false;
		mArrayDocumentMouseMove[index] = mFunc;
		return true;
	}
	function DelDocumentFuncMouseMove(index)
	{
		delete mArrayDocumentMouseMove[index];
	}
	function document_onmousemove()
	{
		for(var prop in mArrayDocumentMouseMove)
			try{eval(mArrayDocumentMouseMove[prop]);}catch(e){}
	}
	function AddDocumentFunc(index,mFunc)
	{
		if(mArrayDocumentFunc[index]) return false;
		mArrayDocumentFunc[index] = mFunc;
		return true;
	}
	function DelDocumentFunc(index)
	{
		delete mArrayDocumentFunc[index];
	}
	function document_onclick()
	{
		for(var prop in mArrayDocumentFunc)
			try{eval(mArrayDocumentFunc[prop]);}catch(e){}
	}
	function AddDocumentFuncKeyUp(index,mFunc)
	{
		if(mArrayDocumentKeyUp[index]) return false;
		mArrayDocumentKeyUp[index] = mFunc;
		return true;
	}
	function DelDocumentFuncKeyUp(index)
	{
		delete mArrayDocumentKeyUp[index];
	}
	function document_onkeyup()
	{
		for(var prop in mArrayDocumentKeyUp)
			try{eval(mArrayDocumentKeyUp[prop]);}catch(e){}
	}
	function AddDocumentFuncKeyDown(index,mFunc)
	{
		if(mArrayDocumentKeyDown[index]) return false;
		mArrayDocumentKeyDown[index] = mFunc;
		return true;
	}
	function DelDocumentFuncKeyDown(index)
	{
		delete mArrayDocumentKeyDown[index];
	}
	function document_onkeydown()
	{
		for(var prop in mArrayDocumentKeyDown)
			try{eval(mArrayDocumentKeyDown[prop]);}catch(e){}
	}
	function SetupDocumentEvent()
	{
		var mstr = GetEventFuncName(document.onkeydown);
		if(mstr != "document_onkeydown")
		{
			AddDocumentFuncKeyDown(mstr,mstr+"()");
		}
		mstr = GetEventFuncName(document.onkeyup);
		if(mstr != "document_onkeyup")
		{
			AddDocumentFuncKeyUp(mstr,mstr+"()");
		}
		mstr = GetEventFuncName(document.onclick);
		if(mstr != "document_onclick")
		{
			AddDocumentFunc(mstr,mstr+"()");
		}
		mstr = GetEventFuncName(document.onmousemove);
		if(mstr != "document_onmousemove")
		{
			AddDocumentFuncMouseMove(mstr,mstr+"()");
		}
		mstr = GetEventFuncName(document.onmousedown);
		if(mstr != "document_onmousedown")
		{
			AddDocumentFuncMouseDown(mstr,mstr+"()");
		}
		mstr = GetEventFuncName(document.onmouseup);
		if(mstr != "document_onmouseup")
		{
			AddDocumentFuncMouseUp(mstr,mstr+"()");
		}
		document.onkeydown = document_onkeydown;
		document.onkeyup = document_onkeyup;
		document.onclick = document_onclick;
		document.onmousemove = document_onmousemove;
		document.onmousedown = document_onmousedown;
		document.onmouseup = document_onmouseup;
		setTimeout("SetupDocumentEvent()",1000);
	}
	function space_trim(str)
	{
		if(!str || str.length <= 0) return "";
		
		var hel_str = str;
		try
		{
			while(hel_str.substring(0,1) == " ")
			{
				hel_str = hel_str.substring(1,hel_str.length);    //去掉首部空格
			}
			while(hel_str.substring(hel_str.length-1,hel_str.length) == " ")
			{
				hel_str = hel_str.substring(0,hel_str.length-1);  //去掉尾部空格
			}
		}catch(e){}
		
		return hel_str;
	}
	SetupDocumentEvent();