function FstartDrag(evt,wid)
{
	function FDrag(et)
	{
		et=FgetEvent(et);
		if(!FisLeftKeyDown(et)) return;

		var pw=Fid(wid);
		if(Fempty(pw.$clientX)) pw.$clientX=et.clientX;
		if(Fempty(pw.$clientY)) pw.$clientY=et.clientY;

		//需要考虑滚动条的位置，非常有意思
		var sp=FgetScrollPostion();
		var x=pw.offsetLeft+et.clientX-pw.$clientX+sp.left-pw.$scrollLeft;
		var y=pw.offsetTop+et.clientY-pw.$clientY+sp.top-pw.$scrollTop;
		if(x<=0) x=0;
		if(y<=0) y=0;
		var ps=pw.style;
		ps.left=x+"px";
		ps.top=y+"px";
		pw.$scrollTop=sp.top;
		pw.$scrollLeft=sp.left;
		pw.$clientX=et.clientX;
		pw.$clientY=et.clientY;
		//想想为什么？呵呵
		FstopEventTransfer(et);
		return false;
	}

	function FstopDrag(et)
	{
		et=FgetEvent(et);
		var ph=Fid(wid+"_head");
		var pw=Fid(wid);
		pw.style.zIndex=pw.$zIndex;

		FremoveEvent(document,'mousemove',FDrag);
		FremoveEvent(document,'mouseup',FstopDrag);
		ph.onmousemove=null;
		ph.onmouseup=null;
		FreleaseEventCapture(ph);
		//想想为什么？呵呵
		FstopEventTransfer(et);
		return false;
	}

	evt=FgetEvent(evt);
	if(!FisLeftKeyDown(evt)) return;
	var w=Fid(wid);
	var h=Fid(wid+"_head");
	var s=w.style;
	var p=FgetScrollPostion();
	w.$scrollTop=p.top;
	w.$scrollLeft=p.left;
	w.$clientX=evt.clientX;
	w.$clientY=evt.clientY;
	w.$zIndex=s.zIndex;
	s.zIndex=999;

	FsetEventCapture(h);
	FaddEvent(document,'mousemove',FDrag);
	FaddEvent(document,'mouseup',FstopDrag);
	h.onmouseup=FstopDrag;
	h.onmousemove=FDrag;
	//想想为什么？呵呵
	FstopEventTransfer(evt);
	return false;
}

function FenableDrag(wid)
{
	var w=Fid(wid),h=Fid(wid+"_head");
	if(w.style.position!="absolute") return;
	h.onmousedown=function(evt){FstartDrag(evt,wid);};
}

//打开模态窗口,分为两种：一种是整个屏幕，一种是对指定元素
function FsetModal(e,isID,wid)
{
	if(!Fempty(e) && isID==true) e=Fid(e);
	FunsetModal(wid);
	var p=0;
	if(Fempty(e)){
		p=FgetPageSize();
		p.x=0,p.y=0;
	}else{
		p=FgetPostion(e);
	}
	if(Fempty(wid)) wid="$_modal_$";
	var w=Fid(wid);
	if(Fempty(w))
	{
		w=document.createElement('DIV');
		w.id=wid;
		var s=w.style;
		with(s){
			position="absolute",filter="alpha(opacity=20);-moz-Opacity:0;Opacity:0;",zIndex=1,background='#666666';
		}
		if(FBrowser.isFirefox) {
			s.background = "#000000";
			s.opacity = 0.2;
		}
		document.body.insertBefore(w, document.body.firstChild);

	}
	FsetPostion(w,p.x,p.y,p.width,p.height);
	if(FBrowser.isIE6)
		w.innerHTML='<iframe scrolling="No" style="z-index:99" border="0" frameborder="0" width="'+p.width+'" height="'+p.height+'"></iframe>';
	else if(FBrowser.isOpera)
		w.innerHTML='<img src="/image/b.gif" onMouseDown="return false;" galleryimg="no" style="z-index:99" width="'+p.width+'" height="'+p.height+'"/>';
}

//关闭模态窗口,分为两种：一种是整个屏幕，一种是对指定元素
function FunsetModal(wid)
{
	var e=(Fempty(wid)?Fid('$_modal_$'):Fid(wid));
	if(!Fempty(e)) 
		document.body.removeChild(e);
}
