var UK_MAP_WIDTH = 330;
var UK_MAP_HEIGHT = 397;

var UK_X_ZERO = -20163;
var UK_Y_ZERO = 102679;
var UK_X_PIXEL_TO_GRID = 266.901597;
var UK_Y_PIXEL_TO_GRID = -266.901597;
var UK_PIXEL_TO_MILE = 1.668195638;

function Gridm100ToMiles(g)
{
	return (g / 100) * 0.625;
}

function map_location()
{
    var txtE = document.getElementById(mapname("txtE"));
    var txtN = document.getElementById(mapname("txtN"));
    
	var ge = txtE.value;
	var gn = txtN.value;
	
	if (ge == "" || gn == "")
		return;

	offsetY = GetElementPosY(document.getElementById("Map"));
	offsetX = GetElementPosX(document.getElementById("Map"));
	
	var x = Math.round(Gridm100ToMiles(ge - UK_X_ZERO) / UK_PIXEL_TO_MILE) + offsetX;
	var y = Math.round(Gridm100ToMiles(UK_Y_ZERO - gn) / UK_PIXEL_TO_MILE) + offsetY;
	map_point(x, y);
}

function map_point(x, y)
{
    var cborange = document.getElementById(mapname("cboRange"));
	var radius = cborange.value;
	if (radius == "") 
		radius = 0;
	var p = radius / UK_PIXEL_TO_MILE;

	map.clear();
	map.setColor("#ffffff");
	map.drawLine(x, offsetY, x, UK_MAP_HEIGHT + offsetY - 1);
	map.drawLine(offsetX, y, UK_MAP_WIDTH + offsetX - 1, y);

	map.setColor("#FF0000");
	map.drawEllipse(x-p, y-p, 2*p, 2*p);

	map.paint();
	document.getElementById(mapname('btnFindMap')).disabled = 0;

	document.getElementById(mapname('cboRange')).disabled = 0;
}

function clearmap()
{
    var txtE = document.getElementById(mapname("txtE"));
    var txtN = document.getElementById(mapname("txtN"));
	map.clear();
	txtE.value = '';
	txtN.value = '';
}


function selectmap(e)
{
    var txtE = document.getElementById(mapname("txtE"));
    var txtN = document.getElementById(mapname("txtN"));
      if (e.button == 2)
            return;

      offsetY = GetElementPosY(document.getElementById("Map"));
      offsetX = GetElementPosX(document.getElementById("Map"));
      
      var diff = (navigator.appName == "Microsoft Internet Explorer")? 2 : 0;
      var x = e.clientX + GetScrollX() - diff;
      var y = e.clientY + GetScrollY() - diff;
      
      var ge = Math.round(UK_X_ZERO + ((x - offsetX) * UK_X_PIXEL_TO_GRID));
      var gn = Math.round(UK_Y_ZERO + ((y - offsetY) * UK_Y_PIXEL_TO_GRID));
      txtE.value = ge;
      txtN.value = gn;
      map_point(x, y);
}


var offsetY;
var offsetX;
var map = new jsGraphics("theMap");

function GetElementPosX(obj)
{
	var X = 0;
	for(;obj != null; obj = obj.offsetParent)
	{
		if (obj.offsetLeft != null)
			X += obj.offsetLeft;
	}
	return X;
}

function GetElementPosY(obj)
{
	var Y = 0;
	for(;obj != null; obj = obj.offsetParent)
	{
		if (obj.offsetTop != null)
			Y += obj.offsetTop;
	}
	return Y;
}

function GetScrollX()
{
      if (document.body.scrollLeft)
            return document.body.scrollLeft;
      if (window.pageXOffset)
            return window.pageXOffset;
      if (document.body.parentElement)
            return document.body.parentElement.scrollLeft;
      return 0;
}

function GetScrollY()
{
      if (document.body.scrollTop)
            return document.body.scrollTop;
      if (window.pageYOffset)
            return window.pageYOffset;
      if (document.body.parentElement)
            return document.body.parentElement.scrollTop;
      return 0;
}

