var Drag = {
  dragged:false,
  startX:0,
  startY:0,
  /**
   *  拖动开始
   * @param div 包含拖动内容的div层
   * @param title 拖动的标题
   */
  down:function(div, title)
  {
    var evt=EventUtil.getEvent();
	var element=evt.srcElement || evt.target;
    var titleObj = null;
    if (title) {
      titleObj = (title.constructor == String) ? Document.getObject(title) : title;
    }
    var dragObj = (titleObj) ? titleObj : div;

    if (evt.button!=2 && dragObj.contains(element))
    {
      
      var myX = event.x ? event.x : evt.pageX;
      var myY = event.y ? event.y: evt.pageY;
      
      Drag.startX=div.offsetLeft - myX;
      Drag.startY=div.offsetTop - myY;
      
      if(element.setCapture){  
         element.setCapture();  
      }else {  
         document.addEventListener('mouseup', Drag.up, true);  
         document.addEventListener('mousemove', Drag.move, true);  
         evt.preventDefault();  
      }
                    
      //element.setCapture();
      Drag.dragged=true;
    }
  },

  /**
   *  拖动中
   * @param div 包含拖动内容的div层
   */
  move:function(div)
  {
    if(Drag.dragged)
    {
      var evt=EventUtil.getEvent();
	  var myX = event.x ? event.x : evt.pageX;
      var myY = event.y ? event.y: evt.pageY;
	
      var left = Drag.startX + myX;
      var top = Drag.startY + myY;

      var element = Document.getScrollParent(div);

      if (left + element.scrollLeft >= 0) {
        div.style.left = left + element.scrollLeft;
      }
      else {
        div.style.left = 0;
      }
      if (top + element.scrollTop >= 0) {
        div.style.top = top + element.scrollTop;
      }
      else {
        div.style.top = 0;
      }
      
      if(!element.releaseCapture) {  
         evt.preventDefault();  
      }
    }

  },

  /**
   *  拖动结束
   * @param div 包含拖动内容的div层
   */
  up:function(div)
  {
    var evt=EventUtil.getEvent();
	var element=evt.srcElement || evt.target;

    if(element.releaseCapture)  
      element.releaseCapture();  
    else {  
      document.removeEventListener('mouseup', Drag.up, true);  
      document.removeEventListener('mousemove', Drag.move, true);  
      evt.preventDefault();  
    }
                    
    //element.releaseCapture();
    Drag.dragged = false;
  }
}
