
var gbl_divHeight;
var gbl_OffSetY;

function SizeMap(CheckSize,divHeight,YOffset){

if (CheckSize == 1)
	{
	gbl_divHeight=divHeight;
	gbl_OffSetY=YOffset;	
	}
else
	{
	var toolsHeight=180;
	var screenHeight=document.body.clientHeight;
	gbl_divHeight=screenHeight-toolsHeight;
	if (gbl_divHeight < 340)
		{gbl_divHeight=340}
	else if (gbl_divHeight > 600)
		{gbl_divHeight=600}
	if (document.all)
		{var tmpobj=document.all("MapViewPort");}
	else
		{var tmpobj=document.getElementById("MapViewPort");}
	tmpobj.style.height=gbl_divHeight+'px';
	var tmpElem="tblLeft";
	if (document.all)
		{var tmpobj=document.all(tmpElem);}
	else
		{var tmpobj=document.getElementById(tmpElem);}
	tmpobj.style.height=gbl_divHeight+2+'px';
	var tmpElem="tblRight";
	if (document.all)
		{var tmpobj=document.all(tmpElem);}
	else
		{var tmpobj=document.getElementById(tmpElem);}
	tmpobj.style.height=gbl_divHeight+2+'px';
	
	//Now shift tiles up to account for viewport.
	if (gbl_divHeight < 600)
		{
		gbl_OffSetY=600-gbl_divHeight;
		gbl_OffSetY=gbl_OffSetY*-1;
		var tmpElem="mapMatrixDiv";
		if (document.all)
			{var tmpobj=document.all(tmpElem);}
		else
			{var tmpobj=document.getElementById(tmpElem);}
		tmpobj.style.top=gbl_OffSetY+'px';	
		var tmpElem="watermark";
		if (document.all)
			{var tmpobj=document.all(tmpElem);}
		else
			{var tmpobj=document.getElementById(tmpElem);}
		tmpobj.style.top=10-gbl_OffSetY+'px';			
		}
	//Now set form parameters so that resize doesn't get repeated.
	document.frmMapControl.HeightChecked.value=1;
	document.frmMapControl.divHeight.value=gbl_divHeight;
	if (gbl_OffSetY > 0 || gbl_OffSetY < 0)
		{
		document.frmMapControl.YOffset.value=gbl_OffSetY;		
		}
	}
GetImageCoords();
}


function ToggleLayer(divName)
{
if (document.all)
	{var tmpobj=document.all(divName);}
else
	{var tmpobj=document.getElementById(divName);}

var curstate=tmpobj.style.visibility;

if (curstate == 'hidden')
	{
	tmpobj.style.visibility='visible';
	}
else
	{
	tmpobj.style.visibility='hidden';
	}
}

var imgOverviewShow= new Image();
imgOverviewShow.src="Images/OverviewShow.gif";
var imgOverviewHide= new Image();
imgOverviewHide.src="Images/OverviewHide.gif";

function ToggleOverview()
{
var divName="OverviewMapDiv";
if (document.frmMapControl.OverviewMap.value=='Off')
	{
	document.frmMapControl.OverviewMap.value='On';
	document.imgOverviewControl.src="Images/OverviewHide.gif";
	if (document.all)
		{ document.all[divName].style.visibility='visible'; }
	
	else if (document.getElementById)
		{ document.getElementById(divName).style.visibility='visible'; }
	}
else
	{
	document.frmMapControl.OverviewMap.value='Off';
	document.imgOverviewControl.src="Images/OverviewShow.gif";
	if (document.all)
		{ document.all[divName].style.visibility='hidden'; }
	
	else if (document.getElementById)
		{ document.getElementById(divName).style.visibility='hidden'; }	
	}	
}

function ShowInstructions()
{
var divName="divInstructions";
if(document.all)
	{ document.all[divName].style.visibility='visible'; }
else if (document.getElementById)
	{ document.getElementById(divName).style.visibility='visible'; }
}

function HideInstructions()
{
var divName="divInstructions";
if (document.all)
	{ document.all[divName].style.visibility='hidden'; }
else if (document.getElementById)
	{ document.getElementById(divName).style.visibility='hidden'; }
}	

function PanMap(Direction)
{
switch (Direction) {
	case 1:
	var tempX=curX-imgXDist;
	var tempY=curY+imgYDist;	
	break
	case 2:
	var tempX=curX;
	var tempY=curY+imgYDist;	
	break	
	case 3:
	var tempX=curX+imgXDist;
	var tempY=curY+imgYDist;	
	break	
	case 4:
	var tempX=curX-imgXDist;
	var tempY=curY;	
	break	
	case 5:
	var tempX=curX;
	var tempY=curY;	
	break	
	case 6:
	var tempX=curX+imgXDist;
	var tempY=curY;	
	break	
	case 7:
	var tempX=curX-imgXDist;
	var tempY=curY-imgYDist;	
	break	
	case 8:
	var tempX=curX;
	var tempY=curY-imgYDist;	
	break	
	case 9:
	var tempX=curX+imgXDist;
	var tempY=curY-imgYDist;	
	break	
}
document.frmMapControl.theX.value=tempX;
document.frmMapControl.theY.value=tempY;
//document.frmMapControl.lstServiceLayersOn.value=GetCurrentLayersOn();
//alert(document.frmMapControl.ZoomScale.value);
document.frmMapControl.submit();
}

function ZoomIn(ZoomScale)
{
document.frmMapControl.theX.value=curX;
document.frmMapControl.theY.value=curY;
document.frmMapControl.ZoomScale.value=ZoomScale;
document.frmMapControl.submit();
}

var imageX1;
var imageY1;
var imageX2;
var imageY2;
var postcodeX1;
var postcodeX2;

function GetImageCoords()
{
HandlePNGs();
	if (document.all)
	{var obj=document.all("MapViewPort");}
	else if (document.getElementById)
	{var obj=document.getElementById("MapViewPort");}
	else
	{IncompatibleBrowser()}

	// find x of the image	
	imageX1 = obj.offsetLeft;
	parentObj = obj.offsetParent;
	while (parentObj!=null) 
	{
		imageX1+= parentObj.offsetLeft;
		parentObj = parentObj.offsetParent;
	}
	imageX1=imageX1;

	// find y of the image
	imageY1 = obj.offsetTop;
	parentObj = obj.offsetParent;
	while (parentObj!=null) 
	{
		imageY1+= parentObj.offsetTop;
		parentObj = parentObj.offsetParent;
	}
	imageY1=imageY1;

	//alert("ImageX: "+imageX1+" : ImageY: "+imageY1+"");
	
	imgx = 600;
	imgy = gbl_divHeight;

	imageX2 = imgx + imageX1;
	imageY2 = imgy + imageY1;

	<!--- Catch the mouse posistion --->
	document.onmousedown=GetMouseCoords;

	window.focus();
}
var MouseX;
var MouseY;

function GetMouseCoords(e) {
	if (document.all)
	{
		MouseX=event.clientX;
		MouseY=event.clientY;		
   		if (event.button==1)
   		{
			var leftClick=true;
		}
	}
	else
	{
		MouseX=e.clientX;
		MouseY=e.clientY;		
		if (e.button==0)
   		{
			var leftClick=true;
		}
	}
  	if (leftClick)
   	{
	   if (OverImage())
	   {
		MouseX=MouseX-imageX1;
		MouseY=MouseY-imageY1;
			if (document.frmMapControl.Mode.value == 'ZoomIn')
			{
				document.frmMapControl.ImageX.value=MouseX;
				if (gbl_OffSetY)
					{document.frmMapControl.ImageY.value=MouseY-gbl_OffSetY;}
				else
					{document.frmMapControl.ImageY.value=MouseY;}
					
				
				document.frmMapControl.submit();		
			}
			else
			{	
				if (document.all)
				{
					document.all["markerDiv"].style.left=MouseX-20;
					document.all["markerDiv"].style.top=MouseY-20;
					document.all["markerDiv"].style.visibility='visible';
				}
			else
				{
					document.getElementById("markerDiv").style.left=MouseX-20;
					document.getElementById("markerDiv").style.top=MouseY-20;
					document.getElementById("markerDiv").style.visibility='visible';
				}
			}
		}
		else
		{
			return;
		}	
	}
}

function OverImage()
{
	var over_image = true;

	// Get Height & Width of Screen
	var screenY;
	var screenX;
    if( typeof( window.innerWidth ) == 'number' ) {
     //Non-IE
     screenX = window.innerWidth;
     screenY = window.innerHeight;
    } else if( document.documentElement &&
       ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) {
     //IE 6+ in 'standards compliant mode'
     screenX = document.documentElement.clientWidth;
     screenY = document.documentElement.clientHeight;
    } else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {
     //IE 4 compatible
     screenX = document.body.clientWidth;
     screenY = document.body.clientHeight;
    }
	
    // Get extent of scrollbars	
	var adjustX=0;
	var adjustY=0;	
    if( typeof( window.pageYOffset ) == 'number' ) {
       //Netscape compliant
       adjustY = window.pageYOffset;
       adjustX = window.pageXOffset;
    } else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) {
       //DOM compliant
       adjustY = document.body.scrollTop;
       adjustX = document.body.scrollLeft;
    } else if( document.documentElement &&
         ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) {
       //IE6 standards compliant mode
       adjustY = document.documentElement.scrollTop;
       adjustX = document.documentElement.scrollLeft;
    }	
	
	var imgX=600;
	var imgY=gbl_divHeight;	

	var ImageX1=imageX1;	
	var ImageY1=imageY1;
	var ImageX2 = imgX + ImageX1;
	var ImageY2 = imgY + ImageY1;
		
	MouseX=MouseX+adjustX;
	MouseY=MouseY+adjustY;
	
	if (MouseX<=ImageX1 || MouseX>ImageX2) {over_image = false;}
	if (MouseY<=ImageY1 || MouseY>ImageY2) {over_image = false;}
	
	//alert("OriginalX: "+imageX1+" : OriginalY: "+imageY1+"\n\n adjustX: "+adjustX+" : adjustY: "+adjustY+"\n\n (X1,Y1)=("+ImageX1+","+ImageY1+") & (X2,Y2)=("+ImageX2+","+ImageY2+")\n\n Mouse("+MouseX+","+MouseY+")");	
	
	if (over_image) 
	{
		return true;
	}
	else
	{
		return false;
	}	
}

function InvokeCrossHandler()
{
document.frmMapControl.Mode.value="PlaceCross";
document.imgMarker.src='Images/Marker.gif';
}	

function ClearCrossHandler()
{
document.frmMapControl.Mode.value="ZoomIn";
if (document.all)
	{document.all["markerDiv"].style.visibility='hidden';}
else
	{document.getElementById("markerDiv").style.visibility='hidden';}
document.imgMarker.src='Images/CircleMarker.gif';		
}	

function LayerUnavailable(Layer)
{
alert("Please zoom in further to see the location of "+Layer+".");
document.frmLayerControl.elements[Layer].checked=false;
}

function LoadLayer(Layer)
{
document.frmMapControl.theX.value=curX;
document.frmMapControl.theY.value=curY;
document.frmMapControl.AddLayer.value=Layer;
//document.frmMapControl.lstServiceLayersOn.value=GetCurrentLayersOn();	
document.frmMapControl.submit();
}

function GetCurrentLayersOn()
{
var lstLayers='';
for (i=0;i<document.frmLayerControl.length;i++)
	{
	if (document.frmLayerControl.elements[i].checked)
		{
		lstLayers=lstLayers+","+document.frmLayerControl.elements[i].name;
		}
	}
lstLayers=lstLayers.substring(1);	
return lstLayers;
}

function IncompatibleBrowser()
{
document.location.href="IncompatibleBrowser.cfm";
}

function ChangeCursor()
{
if (document.all)
	{document.all("mapMatrixDiv").style.cursor='hand'}
else
	{
	document.getElementById("mapMatrixDiv").style.cursor='pointer'
	}	
}

function CheckPostcodeForm()
{
if (!document.frmPostcodeSearch.txtPostcode.value)
	{
	alert("Please enter a postcode!");
	}
else
	{
	document.frmPostcodeSearch.submit();
	}	
}


function LaunchHelp()
{
var intX=(screen.width/2)-250;
var intY=(screen.height/2)-200;
ZoomWin = window.open("MapHelp.cfm", "MapHelpWin", "height=400,width=500,screenX="+intX+",screenY="+intY+",top="+intY+",left="+intX+",scrollbars")	
}

var boxX1;
var boxY1;
var boxX2;
var boxY2;

function StoreChanges(){
if (document.all)
	{var divobj=document.all("SelectionBox");}
else
	{var divobj=document.getElementById("SelectionBox");}

boxX1=divobj.offsetLeft;
boxY1=divobj.offsetTop;
var divWidth=parseInt(divobj.style.width);
var divHeight=parseInt(divobj.style.height);
boxX2=boxX1+divWidth;
boxY2=boxY1+divHeight;

//If div goes beyond map extents then clip
if (boxX1<0) {boxX1=0;}
if (boxY1<0) {boxY1=0;}
if (boxX2>imgx) {boxX2=imgx;}
if (boxY2>imgy) {boxY2=imgy;}
//window.status="Div Dimensions "+divWidth+" by "+divHeight+"";

//alert("Div Coords: ("+divX1+","+divY1+") ("+divX2+","+divY2+")");

document.frmMapControl.SelectBoxX1.value=boxX1;
document.frmMapControl.SelectBoxY1.value=boxY1;
document.frmMapControl.SelectBoxX2.value=boxX2;
document.frmMapControl.SelectBoxY2.value=boxY2;
}

function GoReport(){
var strAction="../Reporting/Report_ConfirmArea.cfm";
document.frmMapControl.action=strAction;
document.frmMapControl.submit();
}

var arVersion = navigator.appVersion.split("MSIE")
var version = parseFloat(arVersion[1])

function HandlePNGs(){
if ((version >= 5.5) && (version < 7) && (document.body.filters)) 
{
var arrPNGs=new Array();
arrPNGs[0]='imgMarker';
   for(var i=0; i<arrPNGs.length; i++)
   {
	var img = document.all(arrPNGs[i]);
    var imgID = (img.id) ? "id='" + img.id + "' " : ""
    var imgClass = (img.className) ? "class='" + img.className + "' " : ""
    var imgTitle = (img.title) ? "title='" + img.title + "' " : "title='" + img.alt + "' "
    var imgStyle = "display:inline-block;" + img.style.cssText 
    if (img.align == "left") imgStyle = "float:left;" + imgStyle
    if (img.align == "right") imgStyle = "float:right;" + imgStyle
    if (img.parentElement.href) imgStyle = "cursor:hand;" + imgStyle
    var strNewHTML = "<span " + imgID + imgClass + imgTitle
    + " style=\"" + "width:" + img.width + "px; height:" + img.height + "px;" + imgStyle + ";"
    + "filter:progid:DXImageTransform.Microsoft.AlphaImageLoader"
    + "(src=\'" + img.src + "\');\"></span>" 
    img.outerHTML = strNewHTML
   }
}
}

function SetToolTip(e,id,strDesc,Dist,Bearing){
var divName='imgNumb';
if (document.all)
	{var el=document.all(divName);}
else
	{var el=document.getElementById(divName);}
var tmpImage='Images/Waypoint'+id+'.png';	
el.src=tmpImage;
		
var divName='tdInstruction';
if (document.all)
	{var el=document.all(divName);}
else
	{var el=document.getElementById(divName);}
el.innerHTML=strDesc;

var divName='tdDistance';
if (document.all)
	{var el=document.all(divName);}
else
	{var el=document.getElementById(divName);}
el.innerHTML='<b>'+Dist+'</b>';

var divName='imgBear';
if (document.all)
	{var el=document.all(divName);}
else
	{var el=document.getElementById(divName);}
var tmpImage='Images/Bearing_'+Math.round(Bearing/10)+'.png';	
if (Bearing.length==0) tmpImage='Images/Spacer.gif';	
el.src=tmpImage;

ShowToolTip(e);
}

function ShowToolTip(e){
var divName='divPop';
if (document.all)
	{var el=document.all(divName);}
else
	{var el=document.getElementById(divName);}
Locate(e);
el.style.visibility='visible';
el.onmousemove=Locate
}

function Locate(e){
var posx=0,posy=0;
if(e==null) e=window.event;
if(e.pageX || e.pageY){
    posx=e.pageX; posy=e.pageY;
    }
else if(e.clientX || e.clientY){
    if(document.documentElement.scrollTop){
        posx=e.clientX+document.documentElement.scrollLeft;
        posy=e.clientY+document.documentElement.scrollTop;
        }
    else{
        posx=e.clientX+document.body.scrollLeft;
        posy=e.clientY+document.body.scrollTop;
        }
    }
document.getElementById("divPop").style.top=(posy+1)+"px";
document.getElementById("divPop").style.left=(posx-30)+"px";	
}

function HideToolTip(){
var divName='divPop';
if (document.all)
	{var el=document.all(divName);}
else
	{var el=document.getElementById(divName);}
el.style.visibility='hidden';
}