//Draggable object - Requires oDhtml.js and oBrowser.js
function oDrag() {}

oDrag.start=function(event,div,text, absolute, xOffset, yOffset, cursor) {
	drag.div=div;
	if (text) {
		drag.div.innerHTML=text;
		drag.div.style.display='';}	
	drag.absolute=absolute?absolute:false;
	drag.xOffset=xOffset?xOffset:0;
	drag.yOffset=yOffset?yOffset:0;	
	document.body.style.cursor = cursor?cursor:'move';
	
	//Save starting positions of cursor and element.
	pos=oDhtml.getCursor(event);
	drag.cursorStart=pos;
  	drag.div.style.left=drag.absolute?pos.x + drag.xOffset:drag.div.style.left;
  	drag.div.style.top=drag.absolute?pos.y + drag.yOffset:drag.div.style.top;
  	drag.elStartLeft=parseInt(drag.div.style.left,10);
	drag.elStartTop=parseInt(drag.div.style.top,10);
  	
 	// Update element's z-index.
  	//this.divDrag.style.zIndex=++this.zIndex;
	browser.attachEvent("onmousemove", oDrag.go, true);
	browser.attachEvent("onmouseup", oDrag.stop, false);
	browser.preventBubble(event);}

oDrag.go=function(event) {
	// Move drag element by the same amount the cursor has moved.
	var pos=oDhtml.getCursor(event);
	if (drag.absolute) {
		drag.div.style.left=pos.x + drag.xOffset;
  		drag.div.style.top=pos.y + drag.yOffset;}
  	else {
		drag.div.style.left=(drag.elStartLeft + pos.x - drag.cursorStart.x) + "px";
		drag.div.style.top=(drag.elStartTop  + pos.y - drag.cursorStart.y) + "px";}
	browser.preventBubble(event);}

// Stop capturing mousemove and mouseup events.
oDrag.stop=function(event) {
	document.body.style.cursor = 'default';
	if (drag.absolute) drag.div.style.display='none';
	browser.detachEvent("onmousemove", oDrag.go, true);
	browser.detachEvent("onmouseup", oDrag.stop, false);
	oDrag.postProcess();
	drag=new oDrag();}

oDrag.postProcess=function() {}

var drag=new oDrag();
