//Global Vars
var isCSS, isW3C, isIE4, isNN4, isIE6CSS, isVML;
var pageLoading = false;
var helpWindow = null;
//for watching the 'SelectTools' dropdown menu
var showSelectTools = false;
function initDHTMLAPI(){
	if(document.images){
		isCSS = (document.body && document.body.style) ? true : false;
		isW3C = (isCSS && document.getElementById) ? true : false;
		isIE4 = (isCSS && document.all) ? true : false;
		isNN4 = (document.layers) ? true : false;
		isIE6CSS = (document.compatMode && document.compatMode.indexOf("CSS1") >= 0) ? true : false;
		isVML = document.getElementById("rubberBand").fillColor ? true : false  //try to read a property
		//if( (!isIE4) && (!isIE6CSS)){
		//	document.getElementById("selectRad").style.display="none"
		//}
	}
	//assign event handlers depending on browser
	if(document.layers){
		//turn on event capture for these events in NN4+ event model
		document.captureEvents(Event.MOUSEDOWN | Event.MOUSEMOVE | Event.MOUSEUP | Event.KEYDOWN | Event.DBLCLICK);
	}	
	else if(document.body & document.body.addEventListener){
		//turn on event capture for these events in W3C DOM event model
		document.addEventListener("mousedown",engage,true);  //dragimg.js
		document.addEventListener("mousemove",dragIt,true);
		document.addEventListener("mouseup",release,true);
		document.addEventListener("submit",loading,true);
		document.addEventListener("keyup",readKey,true);
		document.addEventListener("keydown",checkKeyDown,true);
		document.addEventListener("dblclick",doDoubleClick,true);
	}
	document.onmousedown=engage;
	document.onmousemove=dragIt;
	document.onmouseup=release;
	document.onkeyup=readKey;
	document.onkeydown=checkKeyDown;
	document.ondblclick=doDoubleClick;

	/*document.body.oncontextmenu=function(evt){
		if(isIE4){
			evt = window.event
			evt.returnValue=false;
		}else{
			evt.preventDefault();
		}
	};	
	*/
}
function doClick(evt){
	evt = (evt) ? evt : window.event;
	if(isRightMouse(evt)){
		return false;
	}
	var id =(evt.srcElement) ? evt.srcElement.id : evt.target.id;
	if(id.toLowerCase()!="mapimage"){
		return true;
	}
	var coords = getPageEventCoords(evt)
	startX = coords.left-minX;
	startY = coords.top-minY;

	var txt = document.forms[0].txtToolState.value.toLowerCase();
	switch(txt){
		case "point anno": drawPoint(startX,startY);break;
		case "text anno":break;
		case "line anno":break;		
	}
}
function getPageEventCoords(evt){
	var coords={left:0,top:0};
	if(evt.pageX){
		coords.left=evt.pageX;
		coords.top=evt.pageY;
	}else{
		coords.left=parseInt(evt.clientX) + parseInt(document.body.scrollLeft) - parseInt(document.body.clientLeft);
		coords.top =parseInt(evt.clientY) + parseInt(document.body.scrollTop) - parseInt(document.body.clientTop);
		if(document.body.parentElement && document.body.parentElement.clientLeft){
			var bodParent = document.body.parentElement;
			coords.left += parseInt(bodParent.scrollLeft - bodParent.clientLeft);
			coords.top += parseInt(bodParent.scrollTop - bodParent.clientTop);
		}		
	}
	return coords;
}
function seekLayer(doc, name){
	var theObj;
	for (var i = 0;i<doc.layers;i++){
		if(doc.layers[i].name==name){
			theObj = doc.layers[i];
			break;
		}
		//recursive search into child layers
		if(doc.layers[i].document.layers.length > 0){
			theObj = seekLayer(document.layers[i].document,name);
		}
	}
	return theObj
}
function getRawObject(obj){
	var theObj;
	if(typeof obj == "string"){
		if(isW3C){
			theObj = document.getElementById(obj);
		}else if(isIE4){
			theObj = document.all(obj);
		}else if(isNN4){
			theObj = seekLayer(document,obj);
		}
	}else{
			//pass the obj ref
			theObj = obj;
	}
	return theObj;
}
function getObject(obj){
	var theObj = getRawObject(obj);
	if(theObj && isCSS){
		theObj = theObj.style;
	}
	return theObj;
}
//move the object by x,y pixels
function shiftTo(obj,x,y){
	var frm = document.forms[0];
	var theObj = getObject(obj);
	if(theObj){
		if(isCSS){
			//equalize incorrect numeric value typef
			var units = (typeof theObj.left == "string") ? "px" : 0;
			theObj.left = (x + units);
			theObj.top = (y + units);
			frm.x2.value = x;
			frm.y2.value = y;
		}else if(isNN4){
			theObj.moveTo(x,y)
			frm.x2.value=x;
			frm.y2.value=y;
		}
	}
}
function shiftBy(obj, deltaX, deltaY){
	var theObj = getObject(obj);
	if(theObj){
		if(isCSS){
			//equalize incorrect numeric value type
			var units = (typeof theObj.left == "string") ? "px" : 0;
			theObj.left = getObjectLeft(obj) + deltaX + units;
			theObj.top = getObjectTop(obj) + deltaY + units;
		}else if(isNN4){
			theObj.moveBy(deltaX, deltaY)
		}
	}
}

function setBGColor(obj,color){
	var theObj = getObject(obj);
	if(theObj){
		if(isNN4){
			theObj.bgColor = color;
		}else if(isCSS){
			theObj.backgroundColor = color;
		}
	}
}
//show the object
function show(obj){
	var theObj = getObject(obj);
	if(theObj){
		theObj.display = "inline";
	}
}
//hide the object. Whitespace held
function hide(obj){
	var theObj = getObject(obj);
	if(theObj){
		theObj.display="none";
	}
}
//get x coordinate of object
function getObjectLeft(obj){
	var elem = getRawObject(obj);
	var result = 0;
	var tempResult = 0;
	
	if (elem.offsetParent) {
	    tempResult = elem.offsetParent.offsetLeft;
	    if (tempResult > result) {
	        result = tempResult;
	    }
	} 
	
	if(elem.offsetLeft) {
	    tempResult = elem.offsetLeft;
	    if (tempResult > result) {
	        result = tempResult;
	    }
	}
    
	if(document.defaultView){
		var style = document.defaultView;
		var cssDec1 = style.getComputedStyle(elem,"");
		tempResult = cssDec1.getPropertyValue("left");
		if (tempResult > result) {
		    result = tempResult;
		}
    }
    
	if(elem.currentStyle){
	    tempResult = elem.currentStyle.left;
	    if (tempResult > result) {
	        result = tempResult;
	    }
	} 
	
	if(elem.style){
	    tempResult = elem.style.left;
	    if (tempResult > result) {
	        result = tempResult;
	    }
	}
	
	if(isNN4){
	    tempResult = elem.left
	    if (tempResult > result) {
	        result = tempResult;
	    }
	}
	
	return parseInt(result);
}
//return y coordinate
function getObjectTop(obj){
	var elem = getRawObject(obj);
	var result = 0;
	var tempResult = 0;
	
	if(elem.offsetParent){
	    tempResult = elem.offsetParent.offsetTop;
	    if (tempResult > result) {
	        result = tempResult;
	    }

    } 
	if(elem.offsetTop) {
	    tempResult = elem.offsetTop;
	    if (tempResult > result) {
	        result = tempResult;
	    }
	}
    
	if(document.defaultView){
		var style = document.defaultView;
		var cssDec1 = style.getComputedStyle(elem,"");
		tempResult = cssDec1.getPropertyValue("top");
		if (tempResult > result) {
		    result = tempResult;
		}
}
    
	if(elem.currentStyle){
	    tempResult = elem.currentStyle.top;
	    if (tempResult > result) {
	        result = tempResult;
	    }
	}
    
	if(elem.style){
	    tempResult = elem.style.top;
	    if (tempResult > result) {
	        result = tempResult;
	    }
	}
    
	if(isNN4){
	    tempResult = elem.top;
	    if (tempResult > result) {
	        result = tempResult;
	    }

	}
	
	return parseInt(result);
}
//get width of object
function getObjectWidth(obj){
	var elem = getRawObject(obj);
	var result = 0;
	if(elem.offsetWidth){
		result = elem.offsetWidth;
	}else if(elem.clip && elem.clip.width){
		result = elem.clip.width;
	}else if(elem.style && elem.style.pixelWidth){
		result = elem.style.pixelWidth;
	}
	return parseInt(result);
}
function getObjectHeight(obj){
	var elem = getRawObject(obj);
	var result = 0;
	if(elem.offsetHeight){
		result = elem.offsetHeight;
	}else if(elem.clip && elem.clip.height){
		result = elem.clip.height;
	}else if(elem.style && elem.style.pixelHeight){
		result = elem.style.pixelHeight;
	}
	return parseInt(result);
}
//get available content width inside of browser window
function getInsideWindowWidth(){
	if(window.innerWidth){
		return window.innerWidth;
	}else if(isIE6CSS){
		//measure the html element's clientWidth
		return document.body.parentElement.clientWidth;
	}else if(document.body && document.body.clientWidth){
		return document.body.parentElement.clientWidth;
	}
	return 0;
}
//get available content height inside of browser window
function getInsideWindowheight(){
	if(window.innerHeight){
		return window.innerHeight;
	}else if(isIE6CSS){
		//measure the html element's clientWidth
		return document.body.parentElement.clientHeight;
	}else if(document.body && document.body.clientHeight){
		return document.body.parentElement.clientheight;
	}
	return 0;
}
//// CODE FROM maptool.js  ///////////
function setTool(tool){
	document.forms[0].txtToolState.value = tool;
	if(tool.substring(0,6).toLowerCase()=="select") document.forms[0].txtSelectTool.value=tool;
	document.getElementById("divMsg").innerHTML = "Active Tool: " + tool;
}
function showTool(){
	document.getElementById("divMsg").innerHTML = "Active Tool: " + document.forms[0].txtToolState.value;
}

function toggleTools( name , evt ){
	document.getElementById("mapImage").onclick=null;
	try
	{
		if(!document.getElementById("tblTools")==null) { return; }
		
		clickX			= new Array();
		clickY			= new Array();
		clickCount		= 0;
		document.getElementById("divTextAnno").style.visibility="hidden";		
		document.getElementById("tblPolyLink").style.visibility="hidden";
		document.getElementById("spnAnnoInfo").innerHTML="You may set annotation to the map by selecting an anno type on the left then entering the appropriate information below.";
		document.onmouseup=release;
		
		switch(name.toLowerCase()){
			case "zoom in":
				document.getElementById("fullextent").src	= eval("fullextent1").src;
				document.getElementById("zoomout").src		= eval("zoomout1").src;
				document.getElementById("zoomin").src		= eval("zoomin2").src;
				document.getElementById("zoomlast").src		= eval("zoomlast1").src;			
				document.getElementById("pan").src			= eval("pan1").src;
				document.getElementById("select").src		= eval(swapSpaceForUnderscore(document.Form1.txtSelectTool.value) + "1").src;
				document.getElementById("selectMeasure").src= eval(swapSpaceForUnderscore(document.Form1.txtMeasureTool.value) + "1").src;
				document.getElementById("overview").src		= eval("overview1").src;
				document.getElementById("identify").src	    = eval("identify1").src;
				document.getElementById("clear").src		= eval("clear1").src;
				document.getElementById("maillabels").src	= eval("maillabels1").src;
				document.getElementById("displaycoords").src= eval(swapSpaceForUnderscore(document.forms[0].txtCoordsTool.value) + "1").src;
				setTool("Zoom In");
				hideMenus()
				deselectAnno();
				setMapCursor('zoomin');
				break;			
			case "zoom out":
				document.getElementById("fullextent").src	= eval("fullextent1").src;
				document.getElementById("zoomout").src		= eval("zoomout2").src;
				document.getElementById("zoomin").src		= eval("zoomin1").src;
				document.getElementById("zoomlast").src		= eval("zoomlast1").src;
				document.getElementById("pan").src			= eval("pan1").src;
				document.getElementById("select").src		= eval(swapSpaceForUnderscore(document.Form1.txtSelectTool.value) + "1").src;
				document.getElementById("selectMeasure").src= eval(swapSpaceForUnderscore(document.Form1.txtMeasureTool.value) + "1").src;
				document.getElementById("overview").src		= eval("overview1").src;
				document.getElementById("identify").src	    = eval("identify1").src;
				document.getElementById("clear").src		= eval("clear1").src;
				document.getElementById("maillabels").src	= eval("maillabels1").src;	
				document.getElementById("displaycoords").src= eval(swapSpaceForUnderscore(document.forms[0].txtCoordsTool.value) + "1").src;
				setTool("Zoom Out");
				hideMenus()
				deselectAnno();
				setMapCursor('zoomout');
				break;			
			case "pan":
				document.getElementById("fullextent").src	= eval("fullextent1").src;
				document.getElementById("zoomout").src		= eval("zoomout1").src;
				document.getElementById("zoomin").src		= eval("zoomin1").src;
				document.getElementById("zoomlast").src		= eval("zoomlast1").src;
				document.getElementById("pan").src			= eval("pan2").src;
				document.getElementById("select").src		= eval(swapSpaceForUnderscore(document.Form1.txtSelectTool.value) + "1").src;
				document.getElementById("selectMeasure").src= eval(swapSpaceForUnderscore(document.Form1.txtMeasureTool.value) + "1").src;
				document.getElementById("overview").src		= eval("overview1").src;
				document.getElementById("identify").src		= eval("identify1").src;
				document.getElementById("clear").src		= eval("clear1").src;
				document.getElementById("maillabels").src	= eval("maillabels1").src;	
				document.getElementById("displaycoords").src= eval(swapSpaceForUnderscore(document.forms[0].txtCoordsTool.value) + "1").src;
				setTool("Pan");
				deselectAnno();	
				hideMenus();
				setMapCursor('pan');
				break;
			case "identify":
				document.getElementById("fullextent").src	= eval("fullextent1").src;
				document.getElementById("zoomout").src		= eval("zoomout1").src;
				document.getElementById("zoomin").src		= eval("zoomin1").src;
				document.getElementById("zoomlast").src		= eval("zoomlast1").src;
				document.getElementById("pan").src			= eval("pan1").src;
				document.getElementById("select").src		= eval(swapSpaceForUnderscore(document.Form1.txtSelectTool.value) + "1").src;
				document.getElementById("selectMeasure").src= eval(swapSpaceForUnderscore(document.Form1.txtMeasureTool.value) + "1").src;
				document.getElementById("overview").src		= eval("overview1").src;
				document.getElementById("identify").src		= eval("identify2").src;
				document.getElementById("clear").src		= eval("clear1").src;
				document.getElementById("maillabels").src	= eval("maillabels1").src;
				document.getElementById("displaycoords").src= eval(swapSpaceForUnderscore(document.forms[0].txtCoordsTool.value) + "1").src;
				setTool("Identify");
				deselectAnno();	
				hideMenus();
				setMapCursor('identify');
				break;
			case "hyperlink":
				document.getElementById("fullextent").src	= eval("fullextent1").src;
				document.getElementById("zoomout").src		= eval("zoomout1").src;
				document.getElementById("zoomin").src		= eval("zoomin1").src;
				document.getElementById("zoomlast").src		= eval("zoomlast1").src;
				document.getElementById("pan").src			= eval("pan1").src;
				document.getElementById("select").src		= eval(swapSpaceForUnderscore(document.Form1.txtSelectTool.value) + "1").src;
				document.getElementById("selectMeasure").src= eval(swapSpaceForUnderscore(document.Form1.txtMeasureTool.value) + "1").src;
				document.getElementById("overview").src		= eval("overview1").src;
				document.getElementById("identify").src		= eval("identify1").src;
				document.getElementById("clear").src		= eval("clear1").src;
				document.getElementById("maillabels").src	= eval("maillabels1").src;
				document.getElementById("displaycoords").src= eval(swapSpaceForUnderscore(document.forms[0].txtCoordsTool.value) + "1").src;	
				setTool("hyperlink");
				deselectAnno();	
				hideMenus(); //shuts off Measure dropdown
				setMapCursor('crosshair');
				break;					
			case "select by rectangle":  //1
				document.getElementById("fullextent").src	= eval("fullextent1").src;
				document.getElementById("zoomout").src		= eval("zoomout1").src;
				document.getElementById("zoomin").src		= eval("zoomin1").src;
				document.getElementById("zoomlast").src		= eval("zoomlast1").src;
				document.getElementById("pan").src			= eval("pan1").src;
				document.getElementById("select").src		= eval("select_by_rectangle2").src;
				document.getElementById("selectMeasure").src= eval(swapSpaceForUnderscore(document.Form1.txtMeasureTool.value) + "1").src;
				select_by_rectangle1.src=eval("select_by_rectangle1").src;
				select_by_rectangle2.src=eval("select_by_rectangle2").src;
				document.getElementById("overview").src		= eval("overview1").src;
				document.getElementById("identify").src		= eval("identify1").src;
				document.getElementById("clear").src		= eval("clear1").src;	
				document.getElementById("maillabels").src	= eval("maillabels1").src;
				document.getElementById("displaycoords").src= eval(swapSpaceForUnderscore(document.forms[0].txtCoordsTool.value) + "1").src;	
				setTool("Select by Rectangle");
				document.Form1.txtSelectTool.value = name;
				deselectAnno();
				hideMenus(); //shuts off Measure dropdown
				setMapCursor('crosshair');
				break;	
			case "select by radius":  //2
				document.getElementById("fullextent").src	= eval("fullextent1").src;
				document.getElementById("zoomout").src		= eval("zoomout1").src;
				document.getElementById("zoomin").src		= eval("zoomin1").src;
				document.getElementById("zoomlast").src		= eval("zoomlast1").src
				document.getElementById("pan").src			= eval("pan1").src;
				document.getElementById("select").src		= eval("select_by_radius2").src;
				document.getElementById("selectMeasure").src= eval(swapSpaceForUnderscore(document.Form1.txtMeasureTool.value) + "1").src;
				select_by_rectangle1.src					= eval("select_by_radius1").src;
				select_by_rectangle2.src					= eval("select_by_radius2").src;
				document.getElementById("overview").src		= eval("overview1").src;
				document.getElementById("identify").src		= eval("identify1").src;
				document.getElementById("clear").src		= eval("clear1").src;	
				document.getElementById("maillabels").src	= eval("maillabels1").src;
				document.getElementById("displaycoords").src= eval(swapSpaceForUnderscore(document.forms[0].txtCoordsTool.value) + "1").src;
				setTool("Select by Radius");
				deselectAnno();
				hideMenus(); //shuts off Measure dropdown
				setMapCursor('crosshair');
				break;	
			case "select by line":  //3
				document.getElementById("fullextent").src	= eval("fullextent1").src;
				document.getElementById("zoomout").src		= eval("zoomout1").src;
				document.getElementById("zoomin").src		= eval("zoomin1").src;
				document.getElementById("zoomlast").src		= eval("zoomlast1").src;
				document.getElementById("pan").src			= eval("pan1").src;
				document.getElementById("select").src		= eval("select_by_line2").src;
				document.getElementById("selectMeasure").src= eval(swapSpaceForUnderscore(document.Form1.txtMeasureTool.value) + "1").src;
				select_by_rectangle1.src					= eval("select_by_line1").src;
				select_by_rectangle2.src					= eval("select_by_line2").src;
				document.getElementById("overview").src		= eval("overview1").src;
				document.getElementById("identify").src		= eval("identify1").src;
				document.getElementById("clear").src		= eval("clear1").src;	
				document.getElementById("maillabels").src	= eval("maillabels1").src;
				document.getElementById("displaycoords").src= eval(swapSpaceForUnderscore(document.forms[0].txtCoordsTool.value) + "1").src;
				setTool("Select by Line");
				deselectAnno();
				hideMenus();//shuts off Measure dropdown
				setMapCursor('crosshair');
				break;	
			case "select by polygon":  //4				
				document.getElementById("fullextent").src	= eval("fullextent1").src;
				document.getElementById("zoomout").src		= eval("zoomout1").src;
				document.getElementById("zoomin").src		= eval("zoomin1").src;
				document.getElementById("zoomlast").src		= eval("zoomlast1").src;
				document.getElementById("pan").src			= eval("pan1").src;
				document.getElementById("select").src		= eval("select_by_polygon2").src;
				document.getElementById("selectMeasure").src= eval(swapSpaceForUnderscore(document.Form1.txtMeasureTool.value) + "1").src;
				select_by_rectangle1.src					= eval("select_by_polygon1").src;
				select_by_rectangle1.src					= eval("select_by_polygon2").src;
				document.getElementById("overview").src		= eval("overview1").src;
				document.getElementById("identify").src		= eval("identify1").src;
				document.getElementById("clear").src		= eval("clear1").src;	
				document.getElementById("maillabels").src	= eval("maillabels1").src;
				document.getElementById("displaycoords").src= eval(swapSpaceForUnderscore(document.forms[0].txtCoordsTool.value) + "1").src;
				setTool("Select by Polygon");
				deselectAnno();
				hideMenus();//shuts off Measure dropdown
				setMapCursor('crosshair');
				break;
			case "clear":	
				document.getElementById("fullextent").src	= eval("fullextent1").src;
				document.getElementById("zoomout").src		= eval("zoomout1").src;
				document.getElementById("zoomin").src		= eval("zoomin1").src;
				document.getElementById("zoomlast").src		= eval("zoomlast1").src;
				document.getElementById("pan").src			= eval("pan1").src;
				document.getElementById("select").src		= eval(swapSpaceForUnderscore(document.Form1.txtSelectTool.value) + "1").src;
				document.getElementById("selectMeasure").src= eval(swapSpaceForUnderscore(document.Form1.txtMeasureTool.value) + "1").src;
				document.getElementById("overview").src		= eval("overview1").src;
				document.getElementById("identify").src		= eval("identify1").src;
				document.getElementById("clear").src		= eval("clear2").src;
				document.getElementById("maillabels").src	= eval("maillabels1").src;
				document.getElementById("displaycoords").src= eval(swapSpaceForUnderscore(document.forms[0].txtCoordsTool.value) + "1").src;
				document.forms[0].txtDisplayCoords.value="0"
				deselectAnno();
				hideMenus(); //shuts off Measure dropdown
				showRetrieving();
				break;
			case "measure distance":
				document.Form1.txtMeasureTool.value ="measure distance";
				document.getElementById("fullextent").src	= eval("fullextent1").src;
				document.getElementById("zoomout").src		= eval("zoomout1").src;
				document.getElementById("zoomin").src		= eval("zoomin1").src;				
				document.getElementById("zoomlast").src		= eval("zoomlast1").src;
				document.getElementById("pan").src			= eval("pan1").src;
				document.getElementById("select").src		= eval(swapSpaceForUnderscore(document.Form1.txtSelectTool.value) + "1").src;
				document.getElementById("selectMeasure").src= eval(swapSpaceForUnderscore(document.Form1.txtMeasureTool.value) + "2").src;
				document.getElementById("overview").src		= eval("overview1").src;
				document.getElementById("identify").src		= eval("identify1").src;
				document.getElementById("clear").src		= eval("clear1").src;
				document.getElementById("maillabels").src	= eval("maillabels1").src;	
				document.getElementById("displaycoords").src= eval(swapSpaceForUnderscore(document.forms[0].txtCoordsTool.value) + "1").src;
				deselectAnno();
				document.forms[0].txtDisplayCoords.value="0";
				hideMenus();
				//loLiteTool(document.forms[0].txtMeasureTool.value);
				setTool("Measure distance");
				setMapCursor('measurefeet');
				break;
			case "measure area":
				document.Form1.txtMeasureTool.value ="measure area";
				document.getElementById("fullextent").src	= eval("fullextent1").src;
				document.getElementById("zoomout").src		= eval("zoomout1").src;
				document.getElementById("zoomin").src		= eval("zoomin1").src;				
				document.getElementById("zoomlast").src		= eval("zoomlast1").src;
				document.getElementById("pan").src			= eval("pan1").src;
				document.getElementById("select").src		= eval(swapSpaceForUnderscore(document.Form1.txtSelectTool.value) + "1").src;
				document.getElementById("selectMeasure").src= eval(measure_area2).src;
				document.getElementById("overview").src		= eval("overview1").src;
				document.getElementById("identify").src		= eval("identify1").src;
				document.getElementById("clear").src		= eval("clear1").src;
				document.getElementById("maillabels").src	= eval("maillabels1").src;	
				document.getElementById("displaycoords").src= eval(swapSpaceForUnderscore(document.forms[0].txtCoordsTool.value) + "1").src;
				deselectAnno();
				document.forms[0].txtDisplayCoords.value="0";
				hideMenus();
				setTool("Measure area");
				setMapCursor('measure');
				break;
				
			case "toggle overview":
			{
				showRetrieving();
				document.forms[0].txtToggle.value = name;
				hideMenus();
				__doPostBack('anchOverview','OnClick');
			}
			break;
			
			case "toggle scale":			
			{
				/*var shortname = document.Form1.txtToggle.value;
				shortname = shortname.substring(0,6);
			
				document.getElementById("fullextent").src	= eval("fullextent1").src;
				document.getElementById("zoomout").src		= eval("zoomout1").src;
				document.getElementById("zoomin").src		= eval("zoomin1").src;				
				document.getElementById("zoomlast").src		= eval("zoomlast1").src;
				document.getElementById("pan").src			= eval("pan1").src;
				document.getElementById("select").src		= eval(shortname + "_1").src;
				document.getElementById("selectMeasure").src= eval(toggle_scale2).src;
				document.getElementById("overview").src		= eval("overview1").src;
				document.getElementById("identify").src		= eval("identify1").src;
				document.getElementById("clear").src		= eval("clear1").src;
				document.getElementById("maillabels").src	= eval("maillabels1").src;	
				document.getElementById("displaycoords").src= eval(shortname + "_1").src;*/			
			
				showRetrieving();
				document.forms[0].txtToggle.value = name;
				var txt = document.getElementById('txtToggleScale');
				txt.value = (txt.value == '' || txt.value == '1') ? '0' : '1';
				hideMenus();
				__doPostBack('btnGetNewMap','OnClick');
			}
			break;
				
			case "toggle compass":
			{
				showRetrieving();
				document.forms[0].txtToggle.value = name;
				var txt = document.getElementById('txtToggleCompass');
				txt.value = (txt.value == '' || txt.value == '1') ? '0' : '1';
				hideMenus();
				__doPostBack('btnGetNewMap','OnClick');
			}
			break;
				
			case "refresh":
				toggleTools(document.forms[0].txtToolState.value);
				document.forms[0].submit();
				break;
				
			case "help":
				var width=350;
				var left = (screen.availWidth-360) ;
				var height = (screen.availHeight - 110);				
				window.open("help.aspx","help","",false);
				break;
			case "zoomscale":
				if(validateScale(document.forms[0].txtScale,"Scale")){
					showRetrieving();
					__doPostBack("anchZoomScale","");
				}
				return false;
				break;
			case "maillabels":  //image/anchor moved from toolbar to 'Results' tab
				if (document.forms[0].txtMailingLabels.value.length > 0){
					showRetrieving();
					setTimeout(hideRetrieving,5000);
					Open_Mailing();  //windowfunctions.js
				}else{
					alert("No parcels were selected.");
				}
				break;
				
			case "printparcels":
				if (document.forms[0].txtMailingLabels.value.length > 0){
					showRetrieving();
					setTimeout(hideRetrieving,5000);
					PrintParcels();  //windowfunctions.js
				}else{
					alert("No parcels were selected.");
				}
				break;
			
			case "exportcsv":  //image/anchor moved from toolbar to 'Results' tab
				if (document.forms[0].txtMailingLabels.value.length > 0){
					showRetrieving();
					setTimeout(hideRetrieving,5000);
					Export_CSV();  //windowfunctions.js
				}else{
					alert("No parcels were selected.");
				}
				break;

			case "exportrtf":  //image/anchor moved from toolbar to 'Results' tab
				if (document.forms[0].txtMailingLabels.value.length > 0){
					showRetrieving();
					setTimeout(hideRetrieving,5000);
					Export_RTF();  //windowfunctions.js
				}else{
					alert("No parcels were selected.");
				}
				break;

			case "display map coordinates":
				var txt = document.forms[0].txtDisplayCoords;
				document.forms[0].txtCoordsTool.value=name;
				document.getElementById("displaycoords").src=eval(display_map_coordinates2).src;
				document.getElementById("tblMeasure").style.visibility="visible";
				document.getElementById("fullextent").src	= eval("fullextent1").src;
				document.getElementById("zoomout").src		= eval("zoomout1").src;
				document.getElementById("zoomin").src		= eval("zoomin1").src;
				document.getElementById("zoomlast").src		= eval("zoomlast1").src;
				document.getElementById("pan").src			= eval("pan1").src;
				document.getElementById("select").src		= eval(swapSpaceForUnderscore(document.Form1.txtSelectTool.value) + "1").src;
				document.getElementById("selectMeasure").src= eval(swapSpaceForUnderscore(document.Form1.txtMeasureTool.value) + "1").src;
				document.getElementById("overview").src		= eval("overview1").src;
				document.getElementById("identify").src		= eval("identify1").src;
				document.getElementById("clear").src		= eval("clear1").src;
				document.getElementById("maillabels").src	= eval("maillabels1").src;	
				document.getElementById("displaycoords").src= eval(display_map_coordinates2).src;				
				setTool(name);	
				deselectAnno();
				setMapCursor('northeast');
				break;
			case "display lat/long coordinates":
				var txt = document.forms[0].txtDisplayCoords;
				document.forms[0].txtCoordsTool.value=name;
				document.getElementById("displaycoords").src=eval(display_lat_long_coordinates2).src;
				document.getElementById("tblMeasure").style.visibility="visible";
				document.getElementById("fullextent").src	= eval("fullextent1").src;
				document.getElementById("zoomout").src		= eval("zoomout1").src;
				document.getElementById("zoomin").src		= eval("zoomin1").src;
				document.getElementById("zoomlast").src		= eval("zoomlast1").src;
				document.getElementById("pan").src			= eval("pan1").src;
				document.getElementById("select").src		= eval(swapSpaceForUnderscore(document.Form1.txtSelectTool.value) + "1").src;
				document.getElementById("selectMeasure").src= eval(swapSpaceForUnderscore(document.Form1.txtMeasureTool.value) + "1").src;
				document.getElementById("overview").src		= eval("overview1").src;
				document.getElementById("identify").src		= eval("identify1").src;
				document.getElementById("clear").src		= eval("clear1").src;
				document.getElementById("maillabels").src	= eval("maillabels1").src;	
				setTool(name);	
				deselectAnno();
				hideMenus();
				setMapCursor('latlong');
				break;
			case "measure area":
				var txt = document.forms[0].txtDisplayCoords
				document.forms[0].txtCoordsTool.value=name
				document.getElementById("displaycoords").src=eval(measurearea2).src;
				document.getElementById("tblMeasure").style.visibility="visible";
				document.getElementById("fullextent").src	= eval("fullextent1").src;
				document.getElementById("zoomout").src		= eval("zoomout1").src;
				document.getElementById("zoomin").src		= eval("zoomin1").src;
				document.getElementById("zoomlast").src		= eval("zoomlast1").src;
				document.getElementById("pan").src			= eval("pan1").src;
				document.getElementById("select").src		= eval(swapSpaceForUnderscore(document.Form1.txtSelectTool.value) + "1").src;
				document.getElementById("selectMeasure").src= eval(swapSpaceForUnderscore(document.Form1.txtMeasureTool.value) + "1").src;
				document.getElementById("overview").src		= eval("overview1").src;
				document.getElementById("identify").src		= eval("identify1").src;
				document.getElementById("clear").src		= eval("clear1").src;
				document.getElementById("maillabels").src	= eval("maillabels1").src;	
				document.getElementById("displaycoords").src= eval(display_map_coordinates1).src;
				setTool(name);
				deselectAnno();
				hideMenus();
				//hiLiteMeasure(39)
				break;
			case "measure distance":
				var txt = document.forms[0].txtDisplayCoords
				document.forms[0].txtCoordsTool.value=name
				document.getElementById("displaycoords").src=eval(measure_distance2).src;
				document.getElementById("tblMeasure").style.visibility="visible";
				document.getElementById("fullextent").src	= eval("fullextent1").src;
				document.getElementById("zoomout").src		= eval("zoomout1").src;
				document.getElementById("zoomin").src		= eval("zoomin1").src;
				document.getElementById("zoomlast").src		= eval("zoomlast1").src;
				document.getElementById("pan").src			= eval("pan1").src;
				document.getElementById("select").src		= eval(swapSpaceForUnderscore(document.Form1.txtSelectTool.value) + "1").src;
				document.getElementById("selectMeasure").src= eval(swapSpaceForUnderscore(document.Form1.txtMeasureTool.value) + "2").src;
				document.getElementById("overview").src		= eval("overview1").src;
				document.getElementById("identify").src		= eval("identify1").src;
				document.getElementById("clear").src		= eval("clear1").src;
				document.getElementById("maillabels").src	= eval("maillabels1").src;	
				//document.getElementById("displaycoords").src= eval(display_map_coordinates1).src;
				setTool(name);
				deselectAnno();
				hideMenus();
				//hiLiteTool(document.forms[0].txtSelectTool.value)
				//hiLiteMeasure(40)
				setMapCursor('crosshair');
				break;				
			case "rectangle anno":
				document.getElementById("fullextent").src	= eval("fullextent1").src;
				document.getElementById("zoomout").src		= eval("zoomout1").src;
				document.getElementById("zoomin").src		= eval("zoomin1").src;				
				document.getElementById("zoomlast").src		= eval("zoomlast1").src;	
				document.getElementById("pan").src			= eval("pan1").src;
				document.getElementById("select").src		= eval(swapSpaceForUnderscore(document.Form1.txtSelectTool.value) + "1").src;
				document.getElementById("selectMeasure").src= eval(swapSpaceForUnderscore(document.Form1.txtMeasureTool.value) + "1").src;
				document.getElementById("overview").src		= eval("overview1").src;
				document.getElementById("identify").src		= eval("identify1").src;
				document.getElementById("clear").src		= eval("clear1").src;
				document.getElementById("maillabels").src	= eval("maillabels1").src;
				document.getElementById("displaycoords").src= eval(display_map_coordinates1).src;	
				setTool("Rectangle Anno")
				var annos = document.forms[0].radAnno
				for(i=0;i<annos.length;i++){
					if(annos[i].checked){
						setAnnoType(annos[i].value);
						break;
					}
				}
				//turn off Select By and Measure Type dropdowns
				document.forms[0].txtDisplayCoords.value="0"
				hideMenus(); //shuts off Measure dropdown
				setMapCursor('crosshair');
				break;				
			case "circle anno":
				document.onmouseup=null;
				document.getElementById("fullextent").src	= eval("fullextent1").src;
				document.getElementById("zoomout").src		= eval("zoomout1").src;
				document.getElementById("zoomin").src		= eval("zoomin1").src;				
				document.getElementById("zoomlast").src		= eval("zoomlast1").src;
				document.getElementById("pan").src			= eval("pan1").src;
				document.getElementById("select").src		= eval(swapSpaceForUnderscore(document.Form1.txtSelectTool.value) + "1").src;
				document.getElementById("selectMeasure").src= eval(swapSpaceForUnderscore(document.Form1.txtMeasureTool.value) + "1").src;
				document.getElementById("overview").src		= eval("overview1").src;
				document.getElementById("identify").src		= eval("identify1").src;
				document.getElementById("clear").src		= eval("clear1").src;
				document.getElementById("maillabels").src	= eval("maillabels1").src;
				document.getElementById("displaycoords").src= eval(display_map_coordinates1).src;
				setTool("Circle Anno");	
				var annos = document.forms[0].radAnno
				for(i=0;i<annos.length;i++){
					if(annos[i].checked){
						setAnnoType(annos[i].value);
						break;
					}
				}
				document.forms[0].txtDisplayCoords.value="0"
				hideMenus(); //shuts off Measure dropdown
				setMapCursor('crosshair');
				break;
			case "point anno":
				//document.onmouseup=release;
				document.getElementById("fullextent").src	= eval("fullextent1").src;
				document.getElementById("zoomout").src		= eval("zoomout1").src;
				document.getElementById("zoomin").src		= eval("zoomin1").src;				
				document.getElementById("zoomlast").src		= eval("zoomlast1").src;
				document.getElementById("pan").src			= eval("pan1").src;
				document.getElementById("select").src		= eval(swapSpaceForUnderscore(document.Form1.txtSelectTool.value) + "1").src;
				document.getElementById("selectMeasure").src= eval(swapSpaceForUnderscore(document.Form1.txtMeasureTool.value) + "1").src;
				document.getElementById("overview").src		= eval("overview1").src;
				document.getElementById("identify").src		= eval("identify1").src;
				document.getElementById("clear").src		= eval("clear1").src;
				document.getElementById("maillabels").src	= eval("maillabels1").src;	
				document.getElementById("displaycoords").src= eval(display_map_coordinates1).src;
				setTool("Point Anno");
				var annos = document.forms[0].radAnno;
				for(i=0;i<annos.length;i++){
					if(annos[i].checked){
						setAnnoType(annos[i].value);
						break;
					}
				}						
				document.forms[0].txtDisplayCoords.value="0"
				hideMenus();
				toggleAnnoCoordsFields(document.forms[0].ddlCoordType.selectedIndex);
				document.getElementById("trText1").style.display="none";
				document.getElementById("tblAnnoText").style.visibility="visible";
				setMapCursor('crosshair');
				break;
			case "line anno":
				document.onmouseup=release;
				document.getElementById("fullextent").src	= eval("fullextent1").src
				document.getElementById("zoomout").src		= eval("zoomout1").src
				document.getElementById("zoomin").src		= eval("zoomin1").src				
				document.getElementById("zoomlast").src		= eval("zoomlast1").src	
				document.getElementById("pan").src			= eval("pan1").src
				document.getElementById("select").src		= eval(swapSpaceForUnderscore(document.Form1.txtSelectTool.value) + "1").src
				document.getElementById("selectMeasure").src= eval(swapSpaceForUnderscore(document.Form1.txtMeasureTool.value) + "1").src
				document.getElementById("overview").src		= eval("overview1").src
				document.getElementById("identify").src		= eval("identify1").src
				document.getElementById("clear").src		= eval("clear1").src
				document.getElementById("maillabels").src	= eval("maillabels1").src
				document.getElementById("displaycoords").src= eval(display_map_coordinates1).src;	
				setTool("Line Anno");
				var annos = document.forms[0].radAnno;
				for(i=0;i<annos.length;i++){
					if(annos[i].checked){
						setAnnoType(annos[i].value);
						break;
					}
				}
				document.forms[0].txtDisplayCoords.value="0";
				hideMenus() //shuts off Measure dropdown
				setMapCursor('crosshair');
				break;
			case "text anno":
				document.getElementById("fullextent").src	= eval("fullextent1").src
				document.getElementById("zoomout").src		= eval("zoomout1").src
				document.getElementById("zoomin").src		= eval("zoomin1").src				
				document.getElementById("zoomlast").src		= eval("zoomlast1").src	
				document.getElementById("pan").src			= eval("pan1").src
				document.getElementById("select").src		= eval(swapSpaceForUnderscore(document.Form1.txtSelectTool.value) + "1").src
				document.getElementById("selectMeasure").src= eval(swapSpaceForUnderscore(document.Form1.txtMeasureTool.value) + "1").src
				document.getElementById("overview").src		= eval("overview1").src
				document.getElementById("identify").src		= eval("identify1").src
				document.getElementById("clear").src		= eval("clear1").src
				document.getElementById("maillabels").src	= eval("maillabels1").src
				document.getElementById("displaycoords").src= eval(display_map_coordinates1).src;
				selectedObj = getRawObject("mapImage");
				setTool("Text Anno");	
				var annos = document.forms[0].radAnno;
				setAnnoType(evt);
				if(isIE4){
					document.getElementById("trText1").style.display="block"; //IE
				}else{
					document.getElementById("trText1").style.display="table-row"; //moz
				}
				document.getElementById("tblAnnoText").style.visibilty="visible";
				document.forms[0].txtDisplayCoords.value="0";
				hideMenus(); //shuts off Measure dropdown
				setMapCursor('crosshair');
				break;
		}
		if(!evt == "undefined"){
			evt.cancelBubble=true;
		}
	}
	catch (ex){
		alert(ex.message)
		return false;
	}
}

// dispatch print options
function printOption(evt) {
	if (document.forms[0].txtMailingLabels.value.length == 0){
		alert("No parcels were selected.");
		return;
	}

	var ctrl = document.getElementById('ddlPrintOption');
	if(ctrl == null) return;

	if(ctrl.selectedIndex < 0){
		toggleTools('maillabels',evt);
		return;
	}

	var selstr = ctrl.value;
	switch(selstr.toLowerCase()) {
		case "mailinglabels": toggleTools('maillabels',evt); break;
		case "parcelpdf": toggleTools('printparcels',evt); break;
		case "parcelcsv": toggleTools('exportcsv',evt); break;
		case "parcelrtf": toggleTools('exportrtf',evt); break;
	}
	return true;
}

function swapSpaceForUnderscore(theString){
	var theLength = theString.length
	var c;
	var word=""
	if(theLength==0){
		return ""
	}
	for(var i=0;i<theLength;i++){
		c = theString.charAt(i)
		if(c==" " || c=="/"){
			word+="_"
		}else{
			word+=c;
		}
	}
	return word.toLowerCase()
}
function checkActiveLayer(){
	var ddl = document.forms[0].ddlActiveLayer
	var activeLayer = ddl.options[ddl.selectedIndex].value
	var arLayerID, arLayerName
	var intScale = document.forms[0].txtScale.value
	//verify the active layer is visible at current scale	
	//iterate through the array of layers and check the active layer/maxScale
	for(i=0;i<layerScales.length;i++){
		arLayerID = layerScales[i][0];
		arLayerName = layerScales[i][1];
		min = layerScales[i][3]
		max = layerScales[i][4]
		if(arLayerID==activeLayer){
			//compare min scale	
			if( (minx==0) && (maxx==0)){
				return true;
			}
			minX = document.forms[0].txtXMin.value;
			maxX = document.forms[0].txtXMax.value;
			theScale = document.forms[0].txtScale.value;
			if(!isLayerVisible(minX, maxX,min,max,theScale)){
				alert(arLayerName + " is not visible at the current scale, so you may not be able to see the selected items.\nTo view them, you will need to change the scale or change or the active layer.");
				return false;
			}
			//check max scale
			//0 can buffer at any scale
			//if(max==0){return true;}
			//if(max<intScale){
			//	alert("The maximum scale (" + max + ") for " + arLayerName + " is less than the current scale(" + intScale + ") and cannot be shown.\nEither change the scale or change the active layer.");
			//	return false;
			//}else{
			//	return true;
			//}
		}							
	}	
}
function IsLayerVisible(txtMinX, txtMaxX, layerMinScale, layerMaxScale, currentScale){
	//parse extent textboxes and compare against maxscale
	var Xmin,Xmax, effectiveMinScale, effectiveMaxScale, resultant
	if(layerMinScale==0 && layerMaxScale==0){
		return true;
	}
	effectiveMinScale = (layerMinScale * 96 * 12)
	effectiveMaxScale = (layerMaxScale * 96 * 12)
	if(currentScale>layerMaxScale){
		return false
	}
	if(currentScale<layerMinScale){
		return false
	}
	return true	
}
function hiLiteTool(toolName,idx){
	try{
		showStatus(idx);
		if(toolName.toLowerCase()!= document.forms[0].txtToolState.value.toLowerCase()){
			if(toolName.substring(0,6).toLowerCase()=="select"){
				document.getElementById("select").src=eval(swapSpaceForUnderscore(document.Form1.txtSelectTool.value) + "2").src;
				return;
			}
			if(toolName.toLowerCase().indexOf("measure")>-1){
				document.getElementById("selectMeasure").src=eval(swapSpaceForUnderscore(document.forms[0].txtMeasureTool.value) + "2").src;
				return;
			}
			if(toolName.toLowerCase().indexOf("display")>-1){
				document.getElementById("displaycoords").src=eval(swapSpaceForUnderscore(document.forms[0].txtCoordsTool.value) + "2").src;
				return;
			}
		};		
		var imgTool = document.getElementById(toolName);
		imgTool.src = eval(swapSpaceForUnderscore(toolName) + "2").src;
		
	}catch(ex){
		//surpress the exception
	}
}
function loLiteTool(toolName){
	var tool = document.getElementById(toolName);
	if(tool == null) return;
	try{
		if(toolName.substring(0,6).toLowerCase()=="select"){
			if(toolName.toLowerCase() != document.forms[0].txtSelectTool.value.toLowerCase()){
				document.getElementById('select').src=eval(swapSpaceForUnderscore(document.Form1.txtSelectTool.value) + '1').src;
				//return
			}else{
				if(toolName.toLowerCase() != document.forms[0].txtToolState.value.toLowerCase()){
					document.getElementById('select').src=eval(swapSpaceForUnderscore(document.Form1.txtSelectTool.value) + '1').src;
					//return;	
				}else{
					//return;
				}
			}
		}
		if(toolName.toLowerCase().indexOf("measure")>-1){//measure tool
			if(toolName.toLowerCase() != document.forms[0].txtToolState.value.toLowerCase()){
				document.getElementById('selectMeasure').src=eval(swapSpaceForUnderscore(document.Form1.txtMeasureTool.value) + '1').src;
			}else{
				document.getElementById('selectMeasure').src=eval(swapSpaceForUnderscore(document.Form1.txtMeasureTool.value) + '2').src;
			}
		}
		if(toolName.toLowerCase().indexOf("display")>-1){ //map/lat-long coords
			if(toolName.toLowerCase() != document.forms[0].txtToolState.value.toLowerCase()){
				document.getElementById('displaycoords').src=eval(swapSpaceForUnderscore(document.Form1.txtCoordsTool.value) + '1').src;
			}else{
				document.getElementById('displaycoords').src=eval(swapSpaceForUnderscore(document.Form1.txtCoordsTool.value) + '2').src;
			}
		}
		
		var toolState = document.forms[0].txtToolState.value.toLowerCase()
		toolName = toolName.toLowerCase()
		switch(toolName){
			case "zoomin":
				if(toolState != "zoom in"){
					document.getElementById(toolName).src=eval(zoomin1).src
				}
				break;
			case "zoomout":
				if(toolState != "zoom out"){
					document.getElementById(toolName).src=eval(zoomout1).src
				}
				break;
			case "zoomlast":
				if(toolState != "zoom out"){
					document.getElementById(toolName).src=eval(zoomlast1).src
				}
				break;
			case "fullextent":
				if(toolState != "fullextent"){
					document.getElementById(toolName).src=eval(fullextent1).src
				}
				break;
			case "pan":
				if(toolState !="pan"){
					document.getElementById(toolName).src=eval(pan1).src
				}
				break;
			case "identify":
				if(toolState != "identify"){
					document.getElementById(toolName).src=eval(identify1).src
				}
				break;
			case "hyperlink":
				if(toolState != "hyperlink"){
					document.getElementById(toolName).src=eval(hyperlink1).src
				}
				break;
			case "clear":
				if(toolState != "clear"){
					document.getElementById(toolName).src=eval(clear1).src
				}
				break;
			case "overview":
				if(toolState != "overview"){
					document.getElementById(toolName).src=eval(overview1).src
				}
				break;
			case "refresh":
				if(toolState != "refresh"){
					document.getElementById(toolName).src=eval(refresh1).src
				}
				break;
			case "help":
				if(toolState != "help"){
					document.getElementById(toolName).src=eval(help1).src
				}
				break;				
			/*case "display map coordinates":
				txt = document.forms[0].txtDisplayCoords;
				if(txt.value=="0"){
					document.getElementById("displaycoords").src=eval(display_map_coordinates1).src;
				}else if(txt.value=="1"){
					document.getElementById("displaycoords").src=eval(display_map_coordinates1).src;
				}
				break;				
			case "display lat/long coordinates":
				txt = document.forms[0].txtDisplayCoords;
				if(txt.value=="0"){
					document.getElementById("displaycoords").src=eval(display_lat_long_coordinates1).src;
				}else if(txt.value=="1"){
					document.getElementById("displaycoords").src=eval(display_lat_long_coordinates2).src;
				}
				break;	
			*/	
		};		
		clearStatus();
		document.getElementById("maillabels").src=eval(maillabels1).src;	
		document.getElementById("divMsg").innerHTML ="Active Tool: " + document.forms[0].txtToolState.value;	
	}catch (ex){
		alert(ex);
		//surpress it
	}
}
function hiLiteMeasure(toolName,idx){
	try{
		if(toolName.substring(0,7).toLowerCase()=="measure"){
			if(toolName.toLowerCase() == document.forms[0].txtMeasureTool.value.toLowerCase()){
				document.getElementById("selectMeasure").src=eval(swapSpaceForUnderscore(document.Form1.txtMeasureTool.value) + '2').src;
				return;
			}		
		}		
		//var imgTool = document.getElementById(toolName)
		//imgTool.src = eval(swapSpaceForUnderscore(toolName) + "2").src
		showStatus(idx);	
	}catch(ex){;
		alert("DHTMLAPI.hiLiteMeasure(): " + ex.message);
	}	
}
function loLiteMeasure(){
	try{
		var txt = document.forms[0].txtMeasureTool.value.toLowerCase();
		var tool = document.forms[0].txtToolState.value.toLowerCase();
		if(txt==tool){
			switch(txt.toLowerCase()){
				case "measure distance":
					document.getElementById("selectMeasure").src = eval(measure_distance2).src;
					break;				
				case "measure area":
					document.getElementById("selectMeasure").src = eval(measure_area2).src;
					break;
			}
		}else{
			switch(txt.toLowerCase()){
				case "measure distance":
					document.getElementById("selectMeasure").src = eval(measure_distance1).src;
					break;				
				case "measure area":
					document.getElementById("selectMeasure").src = eval(measure_area1).src;
					break;
			}		
		}
		document.getElementById("divMsg").innerHTML="Active Tool: " + document.forms[0].txtToolState.value;
		setHideMeasureDropdown();
		clearStatus();
		showMeasureMenu=false;
	}catch(ex){
		alert("DHTMLAPI.loLiteMeasure(): " + ex.message)
	}
}
function hiLiteCoords(idx){
	var txt = document.forms[0].txtDisplayCoordsImage.value;
	showStatus(idx);	
	switch(txt.toLowerCase()){		
		case "display map coordinates":
			document.getElementById("displaycoords").src = eval(display_map_coords2).src
			break;
		case "display lat/long coordinates":
			document.getElementById("displaycoords").src = eval(display_lat_long_coordinates2).src
			break;
		case "measure area":
			document.getElementById("displaycoords").src = eval(measure_area2).src
			break;		
	}
}
function loLiteCoords(){
	var idx = document.forms[0].txtDisplayCoords.value
	var txt = document.forms[0].txtDisplayCoordsImage.value.toLowerCase();
	switch(txt){		
		case "display map coordinates":
			if(txt!=document.forms[0].txtToolState.value.toLowerCase()){
				document.getElementById("displaycoords").src = eval(mapcoords1).src;
			}
			break;
		case "display lat/long coordinates":
			if(txt!=document.forms[0].txtToolState.value.toLowerCase()){
				document.getElementById("displaycoords").src = eval(latlongcoords1).src;
			}
			break;
		case "measure area":
			if(txt!=document.forms[0].txtToolState.value.toLowerCase()){
				document.getElementById("displaycoords").src = eval(measurearea1).src;
			}
			break;
	}
	document.getElementById("divCoords").style.display="none";
	document.getElementById("divMsg").innerHTML="Active Tool: " + document.forms[0].txtToolState.value
}

function setMousePosition(evt){

	//if(!AutoIdentify) return;

	try{		
		evt = (evt) ? evt : ((window.event) ? event : null);
		
		var coords = getPageEventCoords(evt);
		var Xpos = coords.left-minX;
		var Ypos = coords.top-minY;
		
		if( (Xpos <= 1) || (Xpos >= (parseInt(mapWidth)-2)) ||
			(Ypos <= 1) || (Ypos >= (parseInt(mapHeight)-2)) )
		{
			return;
		}
		
		//AutoIdentify.setCurrentMousePos(Xpos, Ypos);
	}
	catch(ex){}	
}

function hideCoords() {
	var divMouse=document.getElementById("divCoords");
	divMouse.style.visibility="hidden";
}

function showCoords(evt){	
	var Xpos,Ypos,Xmin,Xmax,Ymin,Ymax,Xnew,Ynew;
	var tool = document.forms[0].txtToolState.value.toLowerCase();
	var txt=document.forms[0].txtDisplayCoords;
	var divMouse=document.getElementById("divCoords");
	var theImage = document.getElementById("mapImage");	
	try{		
		evt = (evt) ? evt : ((window.event) ? event : null)
		setObjectMinMax("mapImageHolder"); // boh 07/02/09
		var coords = getPageEventCoords(evt)
		Xpos = coords.left-minX
		Ypos = coords.top-minY
		// boh - removed 07/02/09 and replaced by hideCoords function
		//if( (Xpos == 0) ||
		//	(Xpos == parseInt(mapWidth)-1) ||
		//	(Ypos == 0) ||
		//	(Ypos == parseInt(mapHeight)-1)) {
		//	// when the mouse is on the very edge of the map, hide the coordinates, because the mouse may be leaving the map 
		//	// and we don't want the coordinates to continue appearing after the mouse leaves the map
		//	divMouse.style.visibility="hidden";
		//	return false;
		//}	

		if(tool=="display map coordinates"){			
			Ynew = roundIt(flipYMouseCoord(Ypos));
			Xnew = mapWidth - (mapWidth-Xpos)
			Xnew = roundIt(Get_Map_PointX(Xnew));		
			divMouse.innerHTML = "Northing: " + Ynew + "<br/>Easting: " + Xnew;
			//divMouse.innerHTML = Xpos + " : " + Ypos;
			divMouse.style.left=Xpos + minX + 8; //offset div from mouse
			divMouse.style.top=Ypos + minY -16;  //offset div from mouse
			divMouse.style.visibility="visible";			
		}else if(tool=="display lat/long coordinates"){		
			if(Lat1stParallel==Lat2ndParallel){
				//Ynew = flipYMouseCoord(Ypos) //Get_Map_PointY(Ypos);
				//Xnew = Get_Map_PointX(Xpos);
				divMouse.innerHTML = "Click to set lat/long";
			}else{
				Ynew = flipYMouseCoord(Ypos) //Get_Map_PointY(Ypos);
				Xnew = Get_Map_PointX(Xpos);
				divMouse.innerHTML = getLatLon(Xnew,Ynew)
			}
			divMouse.style.left=Xpos + minX + 8; //offset div from mouse
			divMouse.style.top=Ypos + minY -16;  //offset div from mouse
			if (divMouse.style.visibility != "visible") {
				divMouse.style.visibility="visible";
			}
		}else{
			return false;
		}		
	}catch (ex){
		alert(ex.message);
		//surpress the exception
	}
}
function scaleKeyDown(evt){
	//alert(event.keyCode);
	evt = (evt) ? evt : ((window.event) ? event : null);
	if(evt.keyCode==13){  //trap enter key
		if(validateScale(document.forms[0].txtScale,"Scale")){
			__doPostBack("anchzoomScale","")
			return false;
		}else{
			return false;
		}
	}
}
function isRightMouse(evt){	
	//kill right mouse button
	if (evt){
		var rightButton = false;
		if((typeof evt.button != "undefined" && evt.button==2) ||
		    (evt.which && evt.which==3)){
				rightButton = true;
		}
		
		//return rightButton;
		
		//let the right mouse button go for now
		if(rightButton){
			if(isIE4){
				evt.cancelBubble=false;
				evt.returnValue=false;
				return true;
			}else{
				evt.preventDefault();
				if(evt.stopPropogation){
					evt.stopPropogation();
				}
				return true;
			}
		}else{
			return false;
		}
	}
	return false;
}
function saveSearchResultsScroll(obj){
	if(obj.scrollTop){
		document.getElementById("txtpnlResultsScrollPos").value = obj.scrollTop	
		document.forms[0].txtScrollingObjectId.value=obj.id
	}
}
function scrollSearchResults(){
	var theObj = document.forms[0].txtScrollingObjectId.value
	if(theObj==""){
		return;
	}
	if(!document.getElementById(theObj)){
		return;
	}
	if(theObj!=""){
		var txt = document.forms[0].txtpnlResultsScrollPos
		if(txt.value >= 0){
			document.getElementById(theObj).scrollTop = txt.value;
		}
	}
}
var hideMenusEvent;
var hideMeasureToolsEvent;
var showMenus = false;
var theMenu=null;
function hideMenu(){
	showMenus=false;
	if(hideMenusEvent!="undefined"){
		window.clearTimeout(hideMenusEvent)
	}
	hideMenusEvent = window.setTimeout(hideMenus,500);
}
function hideMenus(obj){	
	if(obj){
		showMenus=false;
	}
	if(showMenus==false){
		theMenu=null;
		document.getElementById("divSelect").style.display="none";
		document.getElementById("tblCoords").style.display="none";
		document.getElementById("tblMeasure").style.display="none";
		//document.getElementById("tblToggle").style.display="none";
		window.clearInterval(hideMenusEvent)
	}
}
var theMenu=null
function toggleMenu(menuId){
	if(theMenu!="undefined" && theMenu!=null){
		if(theMenu.id.toLowerCase()!=menuId.toLowerCase()){
			theMenu.style.display="none";
		};
	};
	theMenu = document.getElementById(menuId)
	if(theMenu.style.display=='none'){
		theMenu.style.display="block";
		showMenus=true;
	}else{
		showMenus=false;		
		theMenu.style.display="none";
		//theMenu=null;
		window.clearInterval(hideMenusEvent);
	};
};
function hiLiteMenu(menuId){
	showMenus=true;
	var theMenu = document.getElementById(menuId);
	theMenu.style.display="block";
	document.getElementById(menuId).className='selectItemHover';
};
function loLiteMenu(menuId){	
	showMenus=false;
	document.getElementById(menuId).className='selectItem';	
	hideMenu()
	//window.clearInterval(hideMenusEvent);
};
function textAreaKeyDown(evt){
	evt = (evt) ? evt : window.event;
	if(evt.stopPropogation){
		evt.stopPropogation();
	}else{
		if(window.event){
			window.event.cancelBubble=true;
		}
	};	
	if(evt.preventDefault){
		evt.preventDefault();
	};
	return true;
}
function formatNumber2Dec(dNumber){
	//get whole number
	var wholeNumber = new Number()
	var decDecimal = new Number()
	var theNumber = new String()
	var theDecimal= new String()
	var theMultiplier = new String("1")
	var newMultiplier = new Number()
	var theLength = new Number
	var newNumber = new Number
	/*  EXAMPLE:
		var original=28.4531 //round "original" to two decimals
		var result=Math.round(original*100)/100  //returns 28.452) // round "original" to 1 decimal
		var result=Math.round(original*10)/10  //returns 28.53) //round 8.111111 to 3 decimals
		var result=Math.round(8.111111*1000)/1000  //returns 8.111In case you haven't picked up on it, the formula to round any number to x decimal points is:

		1) Multiple the original number by 10^x (10 to the power of x)
		2) Apply Math.round() to the result
		3) Divide result by 10^x      */
	var sNumber = new String();
	sNumber = dNumber.toString();	
	//get # of decimal places
	if(sNumber.indexOf(".")>-1){
		theNumber = sNumber.substring(0,sNumber.indexOf("."));
		theDecimal= sNumber.substring(sNumber.indexOf(".")+1,sNumber.length);	
		theLength = theDecimal.length;
	}else{
		return dNumber;
	}
	//get the number of decimal places. gen the multiplier
	var i
	for(i=0;i<theLength-12;i++){
		theMultiplier += "0";
	}
	newMultiplier = parseFloat(theMultiplier);
	var result = Math.round(dNumber * newMultiplier)/newMultiplier;
	return result;	
}
function getLineLength(mouseStartX, mouseCurrentX, mouseStartY, mouseCurrentY){	
	try{	
		var xStartCoord = Get_Map_PointX(mouseStartX);
		var xStopCoord  = Get_Map_PointX(mouseCurrentX);
		var yStartCoord = Get_Map_PointY(mouseStartY);
		var yStopCoord  = Get_Map_PointY(mouseCurrentY);
		var xCrdDiff = Math.abs(xStartCoord-xStopCoord);
		var yCrdDiff = Math.abs(yStartCoord-yStopCoord);		
		lineLength = Math.sqrt(Math.pow(xCrdDiff,2) + Math.pow(yCrdDiff,2))		
		return lineLength		
	}catch(ex){
		throw(ex)
	} 
 } 
