var ie=document.all
var ns=document.layers
var ns6=document.getElementById && !document.all

if (ns) alert("Sorry, active coordinates only work for IE5+ or NS6+");

function getImageXfromLeft(imgID) {
  if (ns) return imgID.x
  else return getRealLeft(imgID);
}

function getImageYfromTop(imgID) {
  if (ns) return imgID.y
  else return getRealTop(imgID);
}

function getRealLeft(imgElem) {
	var intX = imgElem.offsetLeft;
	objWorking = imgElem.offsetParent;
  	while (objWorking != null) {
  		intX += objWorking.offsetLeft;
  		objWorking = objWorking.offsetParent;
  	}
	return intX;
}

function getRealTop(imgElem) {
	var intY = imgElem.offsetTop;
	objWorking = imgElem.offsetParent;
	while (objWorking != null) {
  		intY += objWorking.offsetTop;
  		objWorking = objWorking.offsetParent;
  	}
	return intY;
}


function mtrack(intGridXOrigin, intGridYOrigin, intGridXOffset, intGridYOffset, lngMapScale, objWhichImage, e) {
   if (!objWhichImage) objWhichImage = 'mapimage';
   if (ns) {
   	text = e.pageX + ',' + e.pageY
   }
   else {
   	if (document.getElementById) {
		objImage = document.getElementById(objWhichImage)
	}
	else {
		alert('ns6')
		objImage = document.all.eval(objWhichImage)
	}
   	//var objImage = document.all.mapimage;
   	var intImageLeftX = getImageXfromLeft(objImage) - document.body.scrollLeft;
   	var intImageTopY = getImageYfromTop(objImage) - document.body.scrollTop;
   	var intMouseLocationX = (ns6)? e.x: event.x;
   	var intMouseLocationY = (ns6)? e.y: event.y;
   	text =	parseInt(intGridXOrigin + ((intMouseLocationX - intGridXOffset - intImageLeftX) / lngMapScale)) + 
   		', ' + 
   		parseInt(intGridYOrigin + ((intMouseLocationY - intGridYOffset - intImageTopY) / lngMapScale));
   }
   window.defaultStatus = 'Coordinates: ' + text;
   window.status = 'Coordinates: ' + text;
}

function ShowCoordinates(intGridXOrigin, intGridYOrigin, intGridXOffset, intGridYOffset, lngMapScale, objWhichImage) {
	mtrack(intGridXOrigin, intGridYOrigin, intGridXOffset, intGridYOffset, lngMapScale, objWhichImage);
	return (true);
}
