// 弹出代码...
/*
var org = document.getElementById('dragdiv');

for(var i=0; i<3; i++) {
 var org2 = org.cloneNode(true);
 org.parentNode.insertBefore(org2,org);
}*/

// get The absolute position
function getPosition(obj) {
 var t=obj.offsetTop;
 var l=obj.offsetLeft;
 while(obj=obj.offsetParent) {
  t+=obj.offsetTop;
  l+=obj.offsetLeft;
 }
 var r = new Array();
 r['x'] = l;
 r['y'] = t;
 return r;
}

//_attachEvent(document, moveHandle, 'mousemove');
function _attachEvent(obj, evt, func) {
 if(obj.addEventListener) {
  obj.addEventListener(evt,func,true); 
 } else if(obj.attachEvent) {
  obj.attachEvent("on"+evt,func);
 } else {
  eval("var old"+func+"="+obj+".on"+evt+";");
  eval(obj+".on"+evt+"="+func+";");
 }
}

//_detachEvent(document, moveHandle, 'mousemove');
function _detachEvent(obj, evt, func) {
 if(obj.removeEventListener) { //DOM事件模型
  obj.removeEventListener(evt,func,true);
 } else if(obj.detachEvent) { //IE5+ 事件模型
  obj.detachEvent("on"+evt,func);
 } else  { //IE事件模型
  eval(obj+".on"+evt+"=old"+func+";");
 }
}

//阻止冒泡 _cancelBubble(event);
function _cancelBubble(e) {
 if(!e) e = window.event;
 if(e.stopPropagation) {
  e.stopPropagation();  //2级DOM
 }else {
  e.cancelBubble=true; //IE
 }
}

//禁止执行默认动作 _returnValueFalse(event);
function _returnValueFalse(e) {
 if(e.preventDefault) {
  e.preventDefault();  //2级DOM
 } else {
  e.returnValue=false; //IE
 } 
}

function beginDrag(elementToDrag,event)  {
 //计算元素原左上角与鼠标的距离
 //moveHandler要这值
 var delatX=event.clientX-parseInt(elementToDrag.style.left);
 var delatY=event.clientY-parseInt(elementToDrag.style.top);

 //注册响应mousemove和mousedown事件后的mouseup事件的处理程序
 _attachEvent(document, "mousemove", moveHandler);
 _attachEvent(document, "mouseup", upHandler);

 //我们处理了该事件,不要再让其他元素看见.
 _cancelBubble(event);
 
 //下面禁止执行默认动作
 _returnValueFalse(event);
 

 function moveHandler(e)  {
  //把元素移动到鼠标当前的位置,根据初始鼠标点击的偏移量进行调整
  elementToDrag.style.left=(e.clientX-delatX)+"px";
  elementToDrag.style.top=(e.clientY-delatY)+"px";
  //不要再让其他元素看到该事件.
  _cancelBubble(e);
 }

 /*  这是捕捉拖移结束最后发生的mouseup事件的处理程序.
  */
 function upHandler(e) {
  //if(!e) e=window.event; //IE事件模型.
  //注销捕捉事件程序.
  _detachEvent(document, 'mouseup', upHandler);
  _detachEvent(document, 'mousemove', moveHandler);

  //不要再让事件进一步传播.
  _cancelBubble(e);
 }

}

function showIt(e, re, obj ,im) {
 //显示
if(!im)
	{im=0 ;}

 //_attachEvent(re, "mouseout", keepclose);
	
 
 //修改后触发事件
 //_attachEvent(obj, 'click', _cancelBubble);
  //_attachEvent(document, 'click', hideIt);
 var stoutid
 var keepshowitem=1;
 // document.onclick = hideIt;
 // obj.onclick = keepshow;
 obj.onmouseover = keepshow;
 obj.onmouseout = sthideIt;
 
 showMain();
//obj.onclick = keepshow;
//stoutid=setTimeout("$('"+obj.id+"').style.display='none';",3000);

 function showMain()
 {
 	if( keepshowitem==0 )
 		return void(0);
  	document.onclick = hideIt;
  
	 var r = getPosition(re);
	  //是计算窗口变化偏移值 //需适应firefox
	 var rx=0,zzend=0;
	 var rbodywidth=document.body.clientWidth<1000?1000:document.body.offsetWidth;
	 zzend=rbodywidth-r['x']-obj.style.width.replace('px','') ;
	 if(zzend<5)
	 	{rx=rbodywidth-r['x']-obj.style.width.replace('px','')-20;}
	 
	  obj.style.left = (r['x']+rx)+'px';
	  
	 if ((document.body.clientHeight-r['y'])<80)
	 {obj.style.top = (r['y']+re.clientHeight+15-127)+'px';}
	 else
		  obj.style.top = (r['y']+re.clientHeight+8)+'px';
	 
	// }
	 // 阻止冒泡
	// obj.style.-moz-opacity=0.8;
	// obj.style.opacity=0.8;
	 obj.style.filter='alpha(opacity=10)';
	 setTimeout("$('"+obj.id+"').style.filter='alpha(opacity=40)';",100);
	 setTimeout("$('"+obj.id+"').style.filter='alpha(opacity=100)';",200);
	 obj.style.display = 'block';
	 _cancelBubble(e);
 }

 function hideIt() {
  	obj.style.display = 'none';
 }
 function sthideIt() {
	stoutid=setTimeout("$('"+obj.id+"').style.display='none';",300);
 }
 
 function keepclose() {
  keepshowitem=0;
  //stoutid=setTimeout("$('"+obj.id+"').style.display='none';",300);
  //obj.style.display = 'none';
 }
 
 function keepshow() {
  clearTimeout(stoutid);
  obj.style.display = 'block';
 }
}
