//Capturando os eventos do navegador
document.onmousedown = mouseDown;
document.onmousemove = mouseMove;
document.onmouseup = mouseUp;

//Declarando a variável que irá conter o objeto a ser movido
var objetoMover;
var Xmouse;
var Ymouse;

//Função chamada quando o mouse é pressionado
function mouseDown(ev){
	
	//A cláusula || é utlizada pela diferença entre os navegadores
	ev = ev || window.event;
	var target = ev.target || ev.srcElement;
	
	//Verificando se o alvo possui position absolute
	if(target.style.position == 'absolute'){

		//Definindo o objeto alvo
		objetoMover = target;
	}else{
		
		//Caso não possua vamos mover o objeto no qual ele está contido
		objetoMover = target.parentNode;
	}
	
	//Recuperando a posição inicial do objeto em relação as margens da tela
	X = ev.clientX - objetoMover.offsetLeft;
	Y = ev.clientY - objetoMover.offsetTop;
}

//Função chamada quando o mouse é movimentado
function mouseMove(ev){
	
	ev = ev || window.event;
	
	//Movendo a div com informações da loja
	Ymouse = ev.clientY + document.body.scrollTop;
	Xmouse = ev.clientX + document.body.scrollLeft;

	//Verificando se o objeto foi definido
	if (objetoMover){
		
		if(objetoMover.nodeType == 1){
		
			if(objetoMover.getAttribute('mover')=='true'){
				
				//Definindo a distância entre o objeto e as margens da tela
				objetoMover.style.left = (ev.clientX-X);
				objetoMover.style.top = (ev.clientY-Y);
				
				return false;
			}
		}
	}
}

//Função chamada quando o mouse é solto
function mouseUp() {
	//Quebrando a associação com o objeto alvo
	objetoMover = null;
}
