/*=================================================================
*	log_mousemove.js
*   ----------------
*   Description : JavaScript Move Div with mouse
*   Copyright   : (c) 2009 Arthur Aminov, EAI Developer, Smile 012
*   Last build  : 30.06.2009 @ 18:00
=================================================================*/

//=================================================================
// move Div functions
//=================================================================

//=================================================================
// Coded by Waseem Khan
// Developer at PakCoders
// Downloaded from http://blog.pakcoders.com
//=================================================================

//=================================================================
// Dragging Function Starts Here
//=================================================================

//=================================================================
// Global object to hold drag information
//=================================================================
	var dragObj = new Object();
//=================================================================
// start dragging
//=================================================================
	function dragStart(event, id)
	{
		var x, y;
		dragObj.elNode = returnOBJ(id);

		dragObj.elNode.style.cursor = 'move';

		// Get cursor position with respect to the page.
		if (detectBrowserType() == 'ie') {
			x = window.event.clientX + document.documentElement.scrollLeft
			+ document.body.scrollLeft;
			y = window.event.clientY + document.documentElement.scrollTop
			+ document.body.scrollTop;
		}
		if (detectBrowserType() == 'ns6') {
			x = event.clientX + window.scrollX;
			y = event.clientY + window.scrollY;
		}

		// Save starting positions of cursor and element.
		dragObj.cursorStartX = x;
		dragObj.cursorStartY = y;
		dragObj.elStartLeft  = parseInt(dragObj.elNode.style.left, 10);
		dragObj.elStartTop   = parseInt(dragObj.elNode.style.top,  10);

		if (isNaN(dragObj.elStartLeft)) dragObj.elStartLeft = 0;
		if (isNaN(dragObj.elStartTop))  dragObj.elStartTop  = 0;

		// Capture mousemove and mouseup events on the page.
		if (detectBrowserType() == 'ie') {
			document.attachEvent("onmousemove", dragGo);
			document.attachEvent("onmouseup",   dragStop);
			window.event.cancelBubble = true;
			window.event.returnValue = false;
		}
		if (detectBrowserType() == 'ns6') {
			document.addEventListener("mousemove", dragGo,   true);
			document.addEventListener("mouseup",   dragStop, true);
			event.preventDefault();
		}
	}
//=================================================================
// dragging
//=================================================================
	function dragGo(event)
	{
		var x, y;

		// Get cursor position with respect to the page.
		if (detectBrowserType() == 'ie') {
			x = window.event.clientX + document.documentElement.scrollLeft
			+ document.body.scrollLeft;
			y = window.event.clientY + document.documentElement.scrollTop
			+ document.body.scrollTop;
		}
		if (detectBrowserType() == 'ns6') {
			x = event.clientX + window.scrollX;
			y = event.clientY + window.scrollY;
		}

		// Move drag element by the same amount the cursor has moved.
		dragObj.elNode.style.left = tooltipLeft = (dragObj.elStartLeft + x - dragObj.cursorStartX) + "px";
		dragObj.elNode.style.top  = tooltipTop = (dragObj.elStartTop  + y - dragObj.cursorStartY) + "px";

		if (detectBrowserType() == 'ie') {
			window.event.cancelBubble = true;
			window.event.returnValue = false;
		}
		if (detectBrowserType() == 'ns6') event.preventDefault();
	}
//=================================================================
// drag stopped
//=================================================================
	function dragStop(event)
	{
		dragObj.elNode.style.cursor = 'auto';

		// Stop capturing mousemove and mouseup events.
		if (detectBrowserType() == 'ie') {
			document.detachEvent("onmousemove", dragGo);
			document.detachEvent("onmouseup",   dragStop);
		}
		if (detectBrowserType() == 'ns6') {
			document.removeEventListener("mousemove", dragGo,   true);
			document.removeEventListener("mouseup",   dragStop, true);
		}
	}
//---[EOF]---