/**
 * Title:        TerraMapTool - Map Navigation JS
 * Description:  Javascript file for the Maptool JSP file. This JS file is used to for the rubber banding
 * Copyright:    Copyright (c) 2004
 * Company:      LISAsoft
 * @author       Benjamin Schiavone
 */
function direct(direction) {
 document.forms[0].operation.value = direction;
 document.forms[0].submit();
}

function zoomchange(level) {
 document.forms[0].ZOOM_LEVEL.value = level;
 document.forms[0].operation.value = "Zoom";
 document.forms[0].submit();
}

function zoombutton(change) {
 if (change == 'in') {
  var zoomIncrease = document.forms[0].ZOOM_LEVEL.value;

  if (zoomIncrease > 1) {
   zoomIncrease--;
   document.forms[0].ZOOM_LEVEL.value = zoomIncrease;
   document.forms[0].operation.value = "Zoom";
  }

  document.forms[0].submit();
 } else if (change == 'out') {
  var zoomDecrease = document.forms[0].ZOOM_LEVEL.value;

  if (zoomDecrease < 5) {
   zoomDecrease++;
   document.forms[0].ZOOM_LEVEL.value = zoomDecrease;
   document.forms[0].operation.value = "Zoom";
  }

  document.forms[0].submit();
 }
}

function recenter() {
 document.forms[0].operation.value = "Recenter";
 document.forms[0].submit();
}

function restart(level) {
 document.forms[0].ZOOM_LEVEL.value = level;
 document.forms[0].operation.value = "Recenter";
 document.forms[0].submit();
}

function imgClickHandler (evt, img) {
			if (!evt) {
				var evt = window.event;
			}
		    //alert("offsetX = " + evt.offsetX + "  offsetY = " + evt.offsetY);
			if (typeof evt.offsetX == 'undefined') {
				//alert("compute offsets");
				var evtOffsets = getOffsets(evt);
				document.MapServ.pixelX.value = evtOffsets.offsetX;
				document.MapServ.pixelY.value = evtOffsets.offsetY;
				//alert("computed offsetX: " + evtOffsets.offsetX);
				//alert("computed offsetY: " + evtOffsets.offsetY);
		    } else {
		    	//alert("use offsets");
			    document.MapServ.pixelX.value = evt.offsetX;
				document.MapServ.pixelY.value = evt.offsetY;
			    //alert("offsetX = " + evt.offsetX + "  offsetY = " + evt.offsetY);
			}
			document.forms[0].operation.value = "Recenter";
			document.forms[0].submit();
		}     
		
function getOffsets (evt) {
  var target = evt.target;
  if (typeof target.offsetLeft == 'undefined') {
    target = target.parentNode;
  }
  var pageCoords = getPageCoords(target);
  var eventCoords = { 
    x: window.pageXOffset + evt.clientX,
    y: window.pageYOffset + evt.clientY
  };
  var offsets = {
    offsetX: eventCoords.x - pageCoords.x,
    offsetY: eventCoords.y - pageCoords.y
  }
  return offsets;
}		

function getPageCoords (element) {
  var coords = {x : 0, y : 0};
  while (element) {
    coords.x += element.offsetLeft;
    coords.y += element.offsetTop;
    element = element.offsetParent;
  }
  return coords;
}

/*
 *  FUNCTION: 	reloadButton
 *	ARGUMENTS:	referral field
 *	PROCESS:	checks the referral field. If its not empty or
 *				a negative, returns the user to that field.
 *				otherwise, it redirects to TerraPages web site		
 */

function reloadButton(referral) {
	if (referral.value >= 1) {
		urlpath = "/mapbutton/RetrieveButtonServlet?buttonID=" + referral.value;
		window.location = urlpath;
    } else { 
    	window.location = "/mapbutton/multiRegistration-submit.do";
	}	
}
