<!--#####################-->
<!-- 根据网上下载的代码，做修改，可以适应ie firefox opera的浮动窗口模块 -->
<!-- 用法 -->
<!-- 引入publicJS.js和这个文件 -->

<!-- 这个文件用在首页设置qq msn 电话的浮动窗口上 -->

<!--页面上悬浮的div div的id改为setqqmsnfloat-->
self.onError=null;
qqmsn_currentX = qqmsn_currentY = 0; 
qqmsn_whichIt = null; 
qqmsn_lastScrollX = 0; qqmsn_lastScrollY = 0;
qqmsn_NS = (document.layers) ? 1 : 0;
qqmsn_IE = (document.all) ? 1: 0;
qqmsn_FF = (document.getElementById) ? 1: 0;
<!-- STALKER CODE -->
function qqmsn_heartBeat() {
if(qqmsn_IE) { diffY = document.body.scrollTop; diffX = document.body.scrollLeft; }
else if(qqmsn_NS) { diffY = self.pageYOffset; diffX = self.pageXOffset; }
else if(qqmsn_FF) { diffY = document.body.scrollTop; diffX = document.body.scrollLeft;}

if(diffY != qqmsn_lastScrollY)
{
  percent = .1 * (diffY - qqmsn_lastScrollY);
  if(percent > 0) percent = Math.ceil(percent);
  else percent = Math.floor(percent);
  if(qqmsn_IE) document.all.setqqmsnfloat.style.pixelTop += percent;
  else if(qqmsn_NS) document.setqqmsnfloat.top += percent;
  else if(qqmsn_FF) 
  {
	var fftop = public_getObject("setqqmsnfloat").style.top;
	fftop = parseFloat(fftop) + percent + "px";
	public_getObject("setqqmsnfloat").style.top = fftop;
  }
  qqmsn_lastScrollY = qqmsn_lastScrollY + percent;
}//end if(diffY != qqmsn_lastScrollY)
if(diffX != qqmsn_lastScrollX) 
{
  percent = .1 * (diffX - qqmsn_lastScrollX);
  if(percent > 0) percent = Math.ceil(percent);
  else percent = Math.floor(percent);
  if(qqmsn_IE) document.all.setqqmsnfloat.style.pixelLeft += percent;
  else if(qqmsn_NS) document.setqqmsnfloat.left += percent;
  else if(qqmsn_FF) 
  {
	var ffleft = public_getObject("setqqmsnfloat").style.left;
	ffleft = parseFloat(ffleft) + percent + "px";
	public_getObject("setqqmsnfloat").style.left = ffleft;
  }
  qqmsn_lastScrollX = qqmsn_lastScrollX + percent;
}//end if(diffX != qqmsn_lastScrollX) 
}//end function
<!-- /STALKER CODE -->
<!-- DRAG DROP CODE -->
function qqmsn_checkFocus(x,y) { 
stalkerx = public_getObject("setqqmsnfloat").pageX;
stalkery = public_getObject("setqqmsnfloat").pageY;
stalkerwidth  = public_getObject("setqqmsnfloat").clip.width;
stalkerheight = public_getObject("setqqmsnfloat").clip.height;
if( (x > stalkerx && x < (stalkerx+stalkerwidth)) && (y > stalkery && y < (stalkery+stalkerheight))) return true;
else return false;
}
function qqmsn_grabIt(e) 
{
  if(qqmsn_IE)
  {
    qqmsn_whichIt = event.srcElement;
    while (qqmsn_whichIt.id.indexOf("setqqmsnfloat") == -1)
    {
      qqmsn_whichIt = qqmsn_whichIt.parentElement;
      if (qqmsn_whichIt == null)
	  {
	    return true;
	  }//end if
    }//end while
    qqmsn_whichIt.style.pixelLeft = qqmsn_whichIt.offsetLeft;
    qqmsn_whichIt.style.pixelTop = qqmsn_whichIt.offsetTop;
    qqmsn_currentX = (event.clientX + document.body.scrollLeft);
    qqmsn_currentY = (event.clientY + document.body.scrollTop); 
  }//end if(qqmsn_IE)
  else if (qqmsn_FF)
  {
    if (!e)
	{
      e = window.event;
	}
	
    qqmsn_whichIt = e.target;

    while (qqmsn_whichIt.id.indexOf("setqqmsnfloat") == -1)
    {
      qqmsn_whichIt = qqmsn_whichIt.parentNode;
      if (qqmsn_whichIt == null)
	  {
	    return true;
	  }//end if
    }//end while

    qqmsn_whichIt.style.left = qqmsn_whichIt.offsetLeft;
    qqmsn_whichIt.style.top = qqmsn_whichIt.offsetTop;

    qqmsn_currentX = (e.clientX + document.body.scrollLeft);
    qqmsn_currentY = (e.clientY + document.body.scrollTop);
  }//end else if (qqmsn_FF)
  else
  { 
    window.captureEvents(Event.MOUSEMOVE|Event.MOUSEUP);
    if(qqmsn_checkFocus(e.pageX,e.pageY))
	{ 
      qqmsn_whichIt = document.setqqmsnfloat;
      StalkerTouchedX = e.pageX-document.setqqmsnfloat.pageX;
      StalkerTouchedY = e.pageY-document.setqqmsnfloat.pageY;
    }//end if 
  }//end else
  return true;
}//end function
function qqmsn_moveIt(e) {
if (qqmsn_whichIt == null) { return false; }
if(qqmsn_IE) {
newX = (event.clientX + document.body.scrollLeft);
newY = (event.clientY + document.body.scrollTop);
distanceX = (newX - qqmsn_currentX); distanceY = (newY - qqmsn_currentY);
qqmsn_currentX = newX; qqmsn_currentY = newY;

qqmsn_whichIt.style.pixelLeft += distanceX;
qqmsn_whichIt.style.pixelTop += distanceY;
if(qqmsn_whichIt.style.pixelTop < document.body.scrollTop) qqmsn_whichIt.style.pixelTop = document.body.scrollTop;
if(qqmsn_whichIt.style.pixelLeft < document.body.scrollLeft) qqmsn_whichIt.style.pixelLeft = document.body.scrollLeft;
if(qqmsn_whichIt.style.pixelLeft > document.body.offsetWidth - document.body.scrollLeft - qqmsn_whichIt.style.pixelWidth - 20) qqmsn_whichIt.style.pixelLeft = document.body.offsetWidth - qqmsn_whichIt.style.pixelWidth - 20;
if(qqmsn_whichIt.style.pixelTop > document.body.offsetHeight + document.body.scrollTop - qqmsn_whichIt.style.pixelHeight - 5) qqmsn_whichIt.style.pixelTop = document.body.offsetHeight + document.body.scrollTop - qqmsn_whichIt.style.pixelHeight - 5;
event.returnValue = false;
}//end if(qqmsn_IE)
else if (qqmsn_FF)
{
    if (!e)
	{
      e = window.event;
	}
	
newX = (e.clientX + document.body.scrollLeft);
newY = (e.clientY + document.body.scrollTop);
distanceX = (newX - qqmsn_currentX);
distanceY = (newY - qqmsn_currentY);
qqmsn_currentX = newX; qqmsn_currentY = newY;

var whichitleft = qqmsn_whichIt.style.left;
whichitleft = parseFloat(whichitleft) + distanceX + "px";
qqmsn_whichIt.style.left = whichitleft;

var whichittop = qqmsn_whichIt.style.top;
whichittop = parseFloat(whichittop) + distanceY + "px";
qqmsn_whichIt.style.top = whichittop;

//qqmsn_whichIt.style.pixelLeft += distanceX;
//qqmsn_whichIt.style.pixelTop += distanceY;
if(qqmsn_whichIt.style.top < document.body.scrollTop) qqmsn_whichIt.style.top = document.body.scrollTop;
if(qqmsn_whichIt.style.left < document.body.scrollLeft) qqmsn_whichIt.style.left = document.body.scrollLeft;
if(qqmsn_whichIt.style.left > document.body.offsetWidth - document.body.scrollLeft - qqmsn_whichIt.style.width - 20) qqmsn_whichIt.style.left = document.body.offsetWidth - qqmsn_whichIt.style.width - 20;
if(qqmsn_whichIt.style.top > document.body.offsetHeight + document.body.scrollTop - qqmsn_whichIt.style.height - 5) qqmsn_whichIt.style.top = document.body.offsetHeight + document.body.scrollTop - qqmsn_whichIt.style.height - 5;
e.returnValue = false;
}//end else if (qqmsn_FF)
else
{ 
qqmsn_whichIt.moveTo(e.pageX-StalkerTouchedX,e.pageY-StalkerTouchedY);
if(qqmsn_whichIt.left < 0+self.pageXOffset) qqmsn_whichIt.left = 0+self.pageXOffset;
if(qqmsn_whichIt.top < 0+self.pageYOffset) qqmsn_whichIt.top = 0+self.pageYOffset;
if( (qqmsn_whichIt.left + qqmsn_whichIt.clip.width) >= (window.innerWidth+self.pageXOffset-17)) qqmsn_whichIt.left = ((window.innerWidth+self.pageXOffset)-qqmsn_whichIt.clip.width)-17;
if( (qqmsn_whichIt.top + qqmsn_whichIt.clip.height) >= (window.innerHeight+self.pageYOffset-17)) qqmsn_whichIt.top = ((window.innerHeight+self.pageYOffset)-qqmsn_whichIt.clip.height)-17;
return false;
}//end else
return false;
}//end fuction
function qqmsn_dropIt() {
qqmsn_whichIt = null;
if(qqmsn_NS) window.releaseEvents (Event.MOUSEMOVE|Event.MOUSEUP);
return true;
}
<!-- DRAG DROP CODE -->
if(qqmsn_NS)
{
  window.captureEvents(Event.MOUSEDOWN);
  //window.onmousedown = qqmsn_grabIt;
  //window.onmousemove = qqmsn_moveIt;
  //window.onmouseup = qqmsn_dropIt;
  public_attachEventListener(window,'mousedown',qqmsn_grabIt,false);
  public_attachEventListener(window,'mousemove',qqmsn_moveIt,false);
  public_attachEventListener(window,'mouseup',qqmsn_dropIt,false);
}
else if(qqmsn_IE)
{
  //document.onmousedown = qqmsn_grabIt;
  //document.onmousemove = qqmsn_moveIt;
  //document.onmouseup = qqmsn_dropIt;
  public_attachEventListener(document,'mousedown',qqmsn_grabIt,false);
  public_attachEventListener(document,'mousemove',qqmsn_moveIt,false);
  public_attachEventListener(document,'mouseup',qqmsn_dropIt,false);
}
else if (qqmsn_FF)
{
  public_attachEventListener(document,'mousedown',qqmsn_grabIt,false);
  public_attachEventListener(document,'mousemove',qqmsn_moveIt,false);
  public_attachEventListener(document,'mouseup',qqmsn_dropIt,false);
}

if(qqmsn_NS || qqmsn_IE || qqmsn_FF) action = window.setInterval("qqmsn_heartBeat()",1);//window.setTimeout("qqmsn_heartBeat()",1);//
<!-- /DRAG DROP CODE -->

