﻿//http://www.webreference.com/programming/javascript/mk/column2/

addEvent(document, 'mousemove', mouseMove);
addEvent(document, 'mouseup', mouseUp);
addEvent(window, 'load', load);

var dragObject = null;
var mouseOffset = null;

function load ()
{
    makeDraggable(document.getElementById('disclaimerContainer'));
    //makeDraggable(document.getElementById('blockPanda'));
    //makeDraggable(document.getElementById('blockSpy'));    
}

function mouseMove(ev)
{    
	ev = ev || window.event;
	var mousePos = mouseCoords(ev);
	
	if(dragObject)
	{
		dragObject.style.position = 'absolute';
		dragObject.style.top      = mousePos.y - mouseOffset.y + "px";
		dragObject.style.left     = mousePos.x - mouseOffset.x + "px";		  
		return false;
	}
}

function mouseCoords(ev)
{
    if (document.body)
    {
	    if(ev.pageX || ev.pageY){
		    return {x:ev.pageX, y:ev.pageY};
	    }
	    return {
		    x:ev.clientX + document.body.scrollLeft - document.body.clientLeft,
		    y:ev.clientY + document.body.scrollTop  - document.body.clientTop
	    };
	}
}

function makeClickable(object)
{
    addEvent(object, 'mousedown', function(){ dragObject = this; } );
}

function mouseUp(ev)
{
	dragObject = null;
}

function getMouseOffset(target, ev)
{
	ev = ev || window.event;
	var docPos    = getPosition(target);
	var mousePos  = mouseCoords(ev);
	return {x:mousePos.x - docPos.x, y:mousePos.y - docPos.y};
}

function getPosition(e)
{
	var left = 0;
	var top  = 0;

	while (e.offsetParent)
	{
		left += e.offsetLeft;
		top  += e.offsetTop;
		e     = e.offsetParent;
	}

	left += e.offsetLeft;
	top  += e.offsetTop;

	return {x:left, y:top};
}

function makeDraggable(item)
{    
	if(!item) return;
	addEvent(item, 'mousedown', function (ev) { dragObject  = item; mouseOffset = getMouseOffset(item, ev); return false; }  ); 
}
