// JavaScript Document
//firefox对于鼠标事件的捕捉，ie使用的是setCapture（）函数，非常适合用于拖拽功能中捕捉鼠标事件
if(!document.all) document.captureEvents(Event.MOUSEDOWN);
var _Tmenu = 0;
var _Amenu = 0;
var _Type = 'A';
//点击执行_Hidden()
document.onclick = _Hidden;
function _Hidden()
{
	if(_Tmenu==0) return;
	//获取id为'_Tmenu',隐藏该区域（style.visibility='hidden'），如显示则是'visible'
	document.getElementById(_Tmenu).style.visibility='hidden';
	_Tmenu=0;
}
//一个oncontextmenu事件且调用函数，这个是用来替换右键菜单
document.oncontextmenu = function (e)
{
	_Hidden();
	//document.all成立，则event.srcElement，否则e.target
	//document.all,html中的所有对象集合
	//event.srcElement就是指向触发事件的元素，他是什么就有什么的属性
	var _Obj = document.all ? event.srcElement : e.target;
	if(_Type.indexOf(_Obj.tagName) == -1) return;
	_Amenu = _Obj.getAttribute('menu');
	if(_Amenu == 'null') return;
	if(document.all) e = event;
	_ShowMenu(_Amenu, e);

	return false;
}

function _ShowMenu(Eid, event)
{
	var _Menu = document.getElementById(Eid);
	var _Left = document.documentElement.clientWidth-event.clientX;
	var _Top = document.documentElement.clientHeight-event.clientY;
	//alert("横坐标位置:"+_Left+"  纵坐标位置:"+_Top+"  菜单宽度:"+_Menu.offsetWidth+"  菜单高度:"+_Menu.offsetHeight);
	if(_Menu!=null){
		if(_Left<_Menu.offsetWidth){// 判断右侧宽度是否够菜单出现时的宽度
			_Menu.style.left=(document.body.scrollLeft+event.clientX-_Menu.offsetWidth)+"px";//若是则将单击事件处的横坐标减去菜单总宽度
		}else{
			_Menu.style.left=(document.body.scrollLeft+event.clientX)+"px";//否则鼠标点击的横坐标为菜单出现的坐标
		}
		if(_Top<_Menu.offsetHeight){//下面是处理纵坐标，与上面处理横坐标类似
			_Menu.style.top=(document.body.scrollTop+event.clientY-_Menu.offsetHeight)+"px";
		}else{
		   _Menu.style.top=(document.body.scrollTop+event.clientY)+"px";
		}	
		
		_Menu.style.visibility = 'visible';
		//alert("  菜单宽度:"+_Menu.offsetWidth);
		_Tmenu = Eid;
	}
	

}

/***
可以支持其他标签INPUT,IMG
***/
_Type='INPUT,A,DIV,BODY,IMG,TD,TR,TABLE,STRONG,SPAN,LABEL'; 