// global variables used while dragging
var offsetX = 0
var offsetY = 0
var selectedObj
var frontObj
var pixelLeft
var pixelTop
// set document-level event handlers

function setMoveFunctionOn() {
	if (navigator && navigator.appName == "Microsoft Internet Explorer") {
		document.onmousedown = engage
		document.onmouseup = release
	}
}
function setMoveFunctionOff() {
	document.onmousedown = null
	document.onmouseup = null	
}
// positioning an object at a specific pixel coordinate
function shiftTo(obj, x, y) {
    obj.style.pixelLeft = pixelLeft + x
    obj.style.pixelTop = pixelTop + y
}
// setting the z-order of an object
function bringToFront(obj) {
    if (frontObj) {
        frontObj.style.zIndex = 0
    }
    frontObj = obj
    frontObj.style.zIndex = 1
}
// set global var to a reference to dragged element
function setSelectedObj() {
    var imgObj = window.event.srcElement
    if (imgObj.id.indexOf("map") == 2) {
        selectedObj = imgObj
        //bringToFront(selectedObj)
        return
    }
    selectedObj = null
    return
}
// do the dragging (called repeatedly by onMouseMove)
function dragIt() {
    if (selectedObj) {
		if (offsetX == -9999) {
			offsetX = event.clientX;
			offsetY = event.clientY;
		}
        shiftTo(selectedObj, (event.clientX - offsetX), (event.clientY - offsetY))
        return false
    }
}
// set global vars and turn on mousemove trapping (called by onMouseDown)
function engage() {
    setSelectedObj()
    if (selectedObj) {
        document.onmousemove = dragIt
        //offsetX = window.event.offsetX - document.body.scrollLeft
        //offsetY = window.event.offsetY - document.body.scrollTop
		offsetX = -9999;
		offsetY = -9999;
		pixelLeft = selectedObj.style.pixelLeft;
		pixelTop = selectedObj.style.pixelTop;
    }
}
// restore everything as before (called by onMouseUp)
function release() {
    if (selectedObj) {
        document.onmousemove = null
        selectedObj = null
    }
}
