
function fnGetBrowser() {
if (navigator.appName.indexOf("Netscape")>=0 || navigator.appName.indexOf("Opera")>=0) {
	m_sClientBrowserType = 'Netscape';
} else if (navigator.appName.indexOf('Microsoft') >=0) {
	m_sClientBrowserType = 'IE';
} else {}
}

function chgImageOver(x){
var y = x.name
  if (x.src.indexOf("down") > 0 || x.src.indexOf("stop") > 0) {}
  else{if (x.src.indexOf("over") < 0) {
  	x.src = "images/"+ y +"_over.gif"
  	} else {
  	x.src = "images/"+ y +".gif"
  };}
}

function chgImageOut(x){
var y = x.name
if (x.src.indexOf("over") > 0) {
  	x.src = "images/"+ y +".gif"
 } else {}
}

function chgImage2(x){
  if (x.src.indexOf("over") > 0) {
	x.src = "images/"+ x.name +"_down.gif"
  } else {
	x.src = "images/"+ x.name +"_over.gif"
  }
}

function imgReset(tool){
  var path;
  path = "images/"+tool.name+".gif";
  return path
}

function fnTurnOffTools() {
  zin.src = imgReset(zin);
  zout.src = imgReset(zout);
  pan.src = imgReset(pan);
  zoomfull.src = imgReset(zoomfull);
  ident.src = imgReset(ident);
  selfeature.src = imgReset(selfeature);
  bufffea.src = imgReset(bufffea);
  buffpnt.src = imgReset(buffpnt);
  bufflin.src = imgReset(bufflin);
  measure.src = imgReset(measure);
  clear.src = imgReset(clear);
  print.src = imgReset(print);
  senid.src = imgReset(senid);
  m_iToolMode = 0
  m_iToolSelected = ""
}

function fnSetIdentTool() {
  	  ident.src = "images/identify_down.gif"
	  m_iToolMode = 10
	  m_iToolSelected = "identify"
}


function chgImageClickTool(x) {
  zin.src = imgReset(zin);
  zout.src = imgReset(zout);
  pan.src = imgReset(pan);
  zoomfull.src = imgReset(zoomfull);
  ident.src = imgReset(ident);
  selfeature.src = imgReset(selfeature);
  bufffea.src = imgReset(bufffea);
  buffpnt.src = imgReset(buffpnt);
  bufflin.src = imgReset(bufflin);
  measure.src = imgReset(measure);
  clear.src = imgReset(clear);
  print.src = imgReset(print);
  senid.src = imgReset(senid);

//hide HS identify box becuase we are changing tools
if (x.name != 'senIdent') {
  fnResetDivContentToolClick();
}
var y = x.name
if (y != m_iToolSelected) {
  //hide the measure line on tool change:
  fnHideMeasureDiv();
  
	switch(x.name) {
	case "fullext":
	  m_iToolMode = 0
	  m_iToolSelected = ""
	  myMap.getMapStartUp();
	  fnClearSelection();
	break;
	case "measure":
	  x.src = "images/"+ y +"_down.gif"
	  m_iToolMode = 5
	  m_iToolSelected = x.name
	  myMap.getMapObj().style.cursor = 'crosshair';
	  fnSetMenuLocation(m_iToolMode)
	break;
	case "clear":
	  m_iToolMode = 0
	  m_iToolSelected = ""
	  fnClearSelection();
	  myMap.clear();
	  myMap.getMapObj().style.cursor = 'pointer';
	break;
	case "zoomin":
	  x.src = "images/"+ y +"_down.gif"
	  m_iToolMode = 1
	  m_iToolSelected = x.name
	  myMap.getMapObj().style.cursor = 'crosshair';
	break;
	case "zoomout":
	  x.src = "images/"+ y +"_down.gif"
	  m_iToolMode = 2
	  m_iToolSelected = x.name
	  myMap.getMapObj().style.cursor = 'crosshair';
	break;
	case "zoompre":
	  if (x.src.indexOf("stop") < 0) {
		fnZoomPrevious();
		m_iToolMode = 0
		m_iToolSelected = ""
	  }
	break;
	case "zoomcur":
	if (x.src.indexOf("stop") < 0) {
	  fnZoomCurrent();
	  m_iToolMode = 0
	  m_iToolSelected = ""
	}
	break;
	case "pan":
	  x.src = "images/"+ y +"_down.gif"
	  m_iToolMode = 3
	  m_iToolSelected = x.name
	  myMap.getMapObj().style.cursor = 'url(images/openhand.cur), auto;';
	break;
	case "identify":
	  x.src = "images/"+ y +"_down.gif"
	  m_iToolMode = 10
	  m_iToolSelected = x.name
	  myMap.getMapObj().style.cursor = 'crosshair';
	break;
	case "senIdent":
	  x.src = "images/"+ y +"_down.gif"
	  m_iToolMode = 9
	  m_iToolSelected = x.name	
	  fnSetMenuLocation(m_iToolMode)
	  myMap.getMapObj().style.cursor = 'crosshair';
	break;
	case "bufferfeature":
	  x.src = "images/"+ y +"_down.gif"
	  m_iToolMode = 6
	  m_iToolSelected = x.name
	  fnSetMenuLocation(m_iToolMode)
	  IdentLayer.disabled = false;
	  myMap.getMapObj().style.cursor = 'crosshair';
	break;
	case "bufferpnt":
	  x.src = "images/"+ y +"_down.gif"
	  m_iToolMode = 8
	  m_iToolSelected = x.name
	  fnSetMenuLocation(m_iToolMode)
	  IdentLayer.disabled = true;
	  myMap.getMapObj().style.cursor = 'crosshair';
	break;
	case "bufferline":
	  x.src = "images/"+ y +"_down.gif"
	  m_iToolMode = 7
	  m_iToolSelected = x.name
	  fnSetMenuLocation(m_iToolMode)
	  IdentLayer.disabled = true;
	  myMap.getMapObj().style.cursor = 'crosshair';
	break;
	case "print":
	  m_iToolMode = 0
	  m_iToolSelected = ""
	  window.open("DisplayMap.aspx")
	break;
	case "selectfeature":
	  x.src = "images/"+ y +"_down.gif"
	  m_iToolMode = 4
	  m_iToolSelected = x.name
	  fnSetMenuLocation(m_iToolMode)
	  myMap.getMapObj().style.cursor = 'crosshair';
	}
} else {
  x.src = "images/"+y+".gif"
  m_iToolMode = 0
  m_iToolSelected = ""
 }
}

function chgImageClickMap(x) {
  street.src = imgReset(street);
  aerial.src = imgReset(aerial);
  land.src = imgReset(land);
  plat.src = imgReset(plat);
  topo.src = imgReset(topo);
var y = x.name
	switch(x.name) {
	case "street":
	  myMap.setMapSource('EMapper_street_image')
	  legend.src = "images/legend_street.gif"
	break;
	case "aerial":
	  myMap.setMapSource('EMapper_doqq_image')
	  legend.src = "images/noimage.gif"
	break;
	case "plat":
	  myMap.setMapSource('EMapper_rockfords_image')
	  legend.src = "images/noimage.gif"
	break;
	case "land":
	  myMap.setMapSource('EMapper_landcover_image')
	  legend.src = "images/legend_land.gif"
	break;
	case "topo":
	  myMap.setMapSource('EMapper_drg_image')
	  legend.src = "images/legend_topo.jpg"
	break;
	}
	x.src = "images/"+ y +"_down.gif"
	myMap.setAXL()
	//fnScrollerStartup(true);
}

function fnOpenFacilityPage() {
  window.open('FacilityData.aspx')
  //location.href('FacilityData.aspx')
}

function fnGetObjects() {
  zin = document.getElementById('zoomin');
  zout = document.getElementById('zoomout');
  zpre = document.getElementById('zoompre');
  zcur = document.getElementById('zoomcur');
  pan = document.getElementById('pan');
  zoomfull = document.getElementById('fullext');
  ident = document.getElementById('identify');
  measure = document.getElementById('measure');
  selfeature = document.getElementById('selectfeature');
  bufffea = document.getElementById('bufferfeature');
  buffpnt = document.getElementById('bufferpnt');
  bufflin = document.getElementById('bufferline');
  print = document.getElementById('print');
  latlong = document.getElementById('latlong');
  street = document.getElementById('street');
  aerial = document.getElementById('aerial');
  plat = document.getElementById('plat');
  land = document.getElementById('land');
  topo = document.getElementById('topo');
  clear = document.getElementById('clear');
  legend = document.getElementById('baselegend');
  m_msrLineLen = document.getElementById('segLength');
  m_msrLineTotal = document.getElementById('segTotal');
  IdentLayer = document.getElementById('buffLayer');
  BufferUnits = document.getElementById('BuffU');
  BufferDistance = document.getElementById('buffTol');
  senid = document.getElementById('senIdent');
}

function fnClearSelection() {
		m_msrLine.hide();
		m_drawLine.hide();
		m_msrLine.clear();
		m_drawLine.clear();
		pntX.length = 0;
		pntY.length = 0;
		m_msrLineTotal.innerHTML = ''
		m_msrLineLen.innerHTML = ''
}

function fnHideMeasureDiv() {
  if (lineX.length > 0) {
	  newLine = true;
	  m_msrLine.hide();
	  m_msrLine.clear();
	  fnSetMenuLocation();
  }
}

function fnStartUp() {
  try {
		jg = new jsGraphics("mapAcetate");
		dl = new jsGraphics("mapDragLineAcetate");
		myMap = new map(document.getElementById("mMap"))
		preEnv = new envelope;
		curEnv = new envelope;
		m_zbxZoom = new zoomBox(document.getElementById("divZoomBox"));
		m_msrLine = new measureLine(fnGetAcetateSettings(document.getElementById("mapAcetate")));
		m_drawLine = new measureLine(fnGetAcetateSettings(document.getElementById("mapDragLineAcetate")));
		ld = fnGetAcetateSettings(document.getElementById('load'));
		hideOnload = false //turn on the window resize event
		
		if(document.captureEvents)document.captureEvents(Event.MOUSEDOWN | Event.MOUSEMOVE | Event.MOUSEUP);
		document.ondblclick = handleMouseDbl;
		document.onmousedown = handleMouseDown;
		document.onmousemove = handleMouseMove;
		document.onmouseup = handleMouseUp;
	  }
  catch(ex) {
	if (ex.description == null)
	{
	  alert("Error Name: " + ex.name + "\rMessage: " + ex.message + "\rLine: " + ex.lineNumber+ "\rPath: " + ex.fileName)
	} else {
	  alert("Error Name: " + ex.name + "\rError Description: " + ex.description + "\rLine: " + ex.lineNumber + "\rPath: " + ex.fileName)
	}
  }
  //set the default values for the map **** to be changed so that the default values are pulled from ArcIMS on startup
myMap.getMapStartUp();
}

function fnUpdateAcetateSize() {
	//m_zbxZoom = new zoomBox(document.getElementById("divZoomBox"));
  	m_msrLine = new measureLine(fnGetAcetateSettings(document.getElementById("mapAcetate")));
	m_drawLine = new measureLine(fnGetAcetateSettings(document.getElementById("mapDragLineAcetate")));
	ld = fnGetAcetateSettings(document.getElementById('load'));
}

function fnGetAcetateSettings(divobj) {
  with (divobj) {
	style.top = myMap.getMapTop()
	style.left = myMap.getMapLeft()
	style.width = myMap.getWidth()
	style.height = myMap.getHeight()
  }
 return divobj;
}

function fnClearControls() {
  document.getElementById('180OLUST').checked = false;
  document.getElementById('180CLUST').checked = false;
  document.getElementById('170').checked = false;
  document.getElementById('180AUST').checked = false;
  document.getElementById('180CUST').checked = false;
}

function changeVis(x) {
  myMap.setLayer(x.name, x.checked)
}

function isEventOverMap(eventX, eventY) {
		if ((eventX <= myMap.getMapLeft()) ||
        (eventY <= myMap.getMapTop()) ||
				(eventX > (myMap.getWidth() + myMap.getMapLeft())) ||
				(eventY > (myMap.getHeight() + myMap.getMapTop()))) {
		document.getElementById("latlong").innerHTML = ''
			return false;
		} else {
			displayCoors(eventX, eventY)
			return true;
		}
}	

function displayCoors(eventX, eventY) {
	p = getLatLon(cvtX(parseFloat(eventX) - myMap.getMapLeft()),cvtY(myMap.getMapTop() + parseFloat(myMap.getHeight()) - parseFloat(eventY)))
	if (isNaN(p.x.toFixed(5))) {
	  document.getElementById("latlong").innerHTML = "0,0"
	} else {
	  document.getElementById("latlong").innerHTML = p.x.toFixed(5) + ',' + p.y.toFixed(5)
	}
}


function setZextRect(zX1,zX2,zY1,zY2) {
		var zXmin;
		var zYmin;
		var zXmax;
		var zYmax;
		var nXmin;
		var nYmin;
		var nXmax;
		var nYmax;		
		var xStart;
		var yStart;
		var dX;
		var dY;
		var zMapX1;
		var zMapY1;
		var zMapX2;
		var zMapY2;
		var zDX;
		var zDY;
		var xStart;
		var yStart;

		xStart = myMap.getXmin()
		yStart = myMap.getYmin()
		dX = myMap.getDeltaX()
		dY = myMap.getDeltaY()

		corRatio = dX/dY

		zMapX1 = dX*zX1/myMap.getWidth()
		zMapY1 = dY*zY1/myMap.getHeight()
		zMapX2 = dX*zX2/myMap.getWidth()
		zMapY2 = dY*zY2/myMap.getHeight()

		zXmin = zMapX1 + parseFloat(myMap.getXmin())
		zYmin = zMapY1 + parseFloat(myMap.getYmin())
		zXmax = zMapX2 + parseFloat(myMap.getXmin())
		zYmax = zMapY2 + parseFloat(myMap.getYmin())

		zDX = zXmax - zXmin
		zDY = zYmax - zYmin


		mapRatio = zDX/zDY
		zbxRatio = m_zbxZoom.getWidth()/m_zbxZoom.getHeight()
		imgRatio = myMap.getWidth()/myMap.getHeight()

		if (zDX/myMap.getWidth()< zDY/myMap.getHeight()) {
			//The Y dimension constrains the map size.
			xc = (zXmax + zXmin)/2
			nXmin = xc - 0.5*zDY*myMap.getWidth()/myMap.getHeight()
			nXmax = xc + 0.5*zDY*myMap.getWidth()/myMap.getHeight()
			nYmin = zYmin
			nYmax = zYmax
		} else {
			xc = (zYmax + zYmin)/2
			nXmin = zXmin
			nXmax = zXmax
			nYmin = xc - 0.5*zDX*myMap.getHeight()/myMap.getWidth()
			nYmax = xc + 0.5*zDX*myMap.getHeight()/myMap.getWidth()
		}		
	if (m_iToolMode == 1) {
	  fnSetPreExt(myMap)
	  with(myMap) {
		setXmin(nXmin)
		setXmax(nXmax)
		setYmin(nYmin)
		setYmax(nYmax)
		setExtent()
	  }
	} else {if (m_iToolMode == 4) {
		myMap.setSelect(zXmin, zXmax, zYmin, zYmax)
	} else {if (m_iToolMode == 6) {
		myMap.bufferFeature(zXmin, zYmin, zXmax, zYmax, BufferUnits.value, BufferDistance.value, IdentLayer.value)};};}
}

function fnZoomPrevious() {
  with (curEnv) {
	curEnv.xmin = myMap.getXmin();
	curEnv.xmax = myMap.getXmax();
	curEnv.ymin = myMap.getYmin();
	curEnv.ymax = myMap.getYmax();
  }
  with (myMap) {
	setXmin(preEnv.xmin);
	setXmax(preEnv.xmax);
	setYmin(preEnv.ymin);
	setYmax(preEnv.ymax);
	setExtent();
  }
  zcur.src = "images/zoomcur.gif"
  zpre.src = "images/zoompre_stop.gif"
}

function fnZoomCurrent() {
  with (preEnv) {
	preEnv.xmin = myMap.getXmin();
	preEnv.xmax = myMap.getXmax();
	preEnv.ymin = myMap.getYmin();
	preEnv.ymax = myMap.getYmax();
  }
  with (myMap) {
	setXmin(curEnv.xmin);
	setXmax(curEnv.xmax);
	setYmin(curEnv.ymin);
	setYmax(curEnv.ymax);
	setExtent();
  }
  zpre.src = "images/zoompre.gif"
  zcur.src = "images/zoomcur_stop.gif"
}

function fnMapTools(eX, eY, x) {
	var evp = new envelope()

	evp.xmin = parseFloat(eX) - (myMap.getDeltaX()/2)
	evp.xmax = parseFloat(eX) + (myMap.getDeltaX()/2)
	evp.ymin = parseFloat(eY) - (myMap.getDeltaY()/2)
	evp.ymax = parseFloat(eY) + (myMap.getDeltaY()/2)
	
	with (myMap) {
	  switch(x) {
		case "in":
		  fnSetPreExt(myMap)
		  setXmin(parseFloat(evp.xmin) + (evp.getDeltaX() * .25))
		  setXmax(parseFloat(evp.xmax) - (evp.getDeltaX() * .25))
		  setYmin(parseFloat(evp.ymin) + (evp.getDeltaY() * .25))
		  setYmax(parseFloat(evp.ymax) - (evp.getDeltaY() * .25))		
		break;
	    case "out":
	      fnSetPreExt(myMap)
		  setXmin(parseFloat(evp.xmin) - (evp.getDeltaX() * .5))
		  setXmax(parseFloat(evp.xmax) + (evp.getDeltaX() * .5))
		  setYmin(parseFloat(evp.ymin) - (evp.getDeltaY() * .5))
		  setYmax(parseFloat(evp.ymax) + (evp.getDeltaY() * .5))
		break;
	  }
	setExtent()
	}
  }
  
  function fnSetPreExt(myMap) {
	with (preEnv) {
	  preEnv.xmin = myMap.getXmin();
	  preEnv.xmax = myMap.getXmax();
	  preEnv.ymin = myMap.getYmin();
	  preEnv.ymax = myMap.getYmax();
	}
	zpre.src = "images/zoompre.gif"
	zcur.src = "images/zoomcur_stop.gif"
  }

/* 
  function fnScrollerStartup(bol) {
    //collect the variables
	var docH = document.getElementById("contentmiddle").offsetHeight;
    var contH = document.getElementById("sidecontentmiddle").offsetHeight;
    var scrollAreaH = document.getElementById("scrollarea").offsetHeight;

    //calculate height of scroller and resize the scroller div
    //(however, we make sure that it isn't to small for long pages)
    var scrollH = (contH * scrollAreaH) / docH;

    if(scrollH < 15) scrollH = 15;
    if(scrollH > scrollAreaH) {
	  scrollH = scrollAreaH;
	  document.getElementById("contentmiddle").style.top = '0px';
	  document.getElementById("scroller").style.top = '0px';
	} else {
	  if (bol == true) {
		//var x = Math.round(scrollAreaH-scrollH);
		document.getElementById("contentmiddle").style.top = '0px';
		document.getElementById("scroller").style.top = '0px';
	  }
	}
    document.getElementById("scroller").style.height = Math.round(scrollH) + "px";

    //what is the effective scroll distance once the scoller's height has been taken into account
    var scrollDist = Math.round(scrollAreaH-scrollH);

    //make the scroller div draggable
    Drag.init(document.getElementById("scroller"),null,0,0,-1,scrollDist);
    
    //add ondrag function
    document.getElementById("scroller").onDrag = function (x,y) {
	  if (scrollH!=scrollAreaH){
      var scrollY = parseInt(document.getElementById("scroller").style.top);
      var docY = 0 - (scrollY * (docH - contH) / scrollDist);
      document.getElementById("contentmiddle").style.top = docY + "px";}
	}
  }
  */
  
  function fnSearchCounty() {
	for (var i=0; i < document.getElementsByName("rdoGroupCnty").length; i++){
	  if (document.getElementsByName("rdoGroupCnty")[i].checked){
		var rad_val = document.getElementsByName("rdoGroupCnty")[i].value;}
	}
	var x = fnCheckVis(rad_val)
	if (x == true) {
		if (rad_val == 'YES') document.getElementById('btnBoundCntyView').style.visibility = 'visible';
		fnClearSelection();
		myMap.getCounty(document.getElementById('ddlCountyName').value, rad_val);
	} else {
		alert('You must have at least 1 layer visible to select Point feature!')
	}
  }
  
  function fnSearchRRD() {
  	for (var i=0; i < document.getElementsByName("rdoGroupRRD").length; i++){
	  if (document.getElementsByName("rdoGroupRRD")[i].checked){
		var rad_val = document.getElementsByName("rdoGroupRRD")[i].value;}
	}
	var x = fnCheckVis(rad_val)
	if (x == true) {
		if (rad_val == 'YES') document.getElementById('btnBoundRRDView').style.visibility = 'visible';
		fnClearSelection();
		myMap.getRRDDistrict(document.getElementById('ddlRRDSearch').value, rad_val);
	} else {
		alert('You must have at least 1 layer visible to select Point feature!')
	}
  }
  
  function fnSearchwsd() {
    for (var i=0; i < document.getElementsByName("rdoGroupwsd").length; i++){
	  if (document.getElementsByName("rdoGroupwsd")[i].checked){
		var rad_val = document.getElementsByName("rdoGroupwsd")[i].value;}
	}
	var x = fnCheckVis(rad_val)
	if (x == true) {
		if (rad_val == 'YES') document.getElementById('btnBoundwsdView').style.visibility = 'visible';
		fnClearSelection();
		myMap.getWatershed(document.getElementById('ddlWatershedSearch').value, rad_val);
	} else {
		alert('You must have at least 1 layer visible to select Point feature!')
	}
  }
  
  function fnSearchLegislativeD() {
	var ddl;
  	for (var i=0; i < document.getElementsByName("rdoGroupHS").length; i++){
	  if (document.getElementsByName("rdoGroupHS")[i].checked){
		var rad_val = document.getElementsByName("rdoGroupHS")[i].value;}
	}
	var x = fnCheckVis(rad_val)
	if (x == true) {
		if (rad_val == 'YES') document.getElementById('btnHSView').style.visibility = 'visible';
		if (legSearchType == 'HOUSE'){
		ddl=document.getElementById('ddlHouseSearch').value
		} else {
		ddl=document.getElementById('ddlSenateSearch').value}
		fnClearSelection();
		myMap.getLegislativeDistrict(ddl, legSearchType, rad_val);
	} else {
		alert('You must have at least 1 layer visible to select Point feature!')
	}
  }
  
  function fnUpdateLegSearch(x) {
	if (x == 'HOUSE') {
	  legSearchType = 'HOUSE';
	  document.getElementById('ddlH').style.visibility = 'visible';
	  document.getElementById('ddlS').style.visibility = 'hidden';
	} else {
	  legSearchType = 'SENATE';
	  document.getElementById('ddlS').style.visibility = 'visible';
	  document.getElementById('ddlH').style.visibility = 'hidden';
	}
  }

  function fnSearchAddress() {
	fnResetDivContentMenuExpand('sc8');
	if (document.getElementById('txtAddress').value !="") {
	  if (document.getElementById('txtCity').value!="" || document.getElementById('txtZip').value!=""){
	    fnClearSelection();
		myMap.SearchAddress(document.getElementById('txtAddress').value, document.getElementById('txtCity').value, document.getElementById('txtZip').value)
	  } else {
		alert('Incomplete Address. Unable to process request without City or Zip Code.');
	  };
	} else {
	  alert('Incomplete Address. Unable to process request without Street Address.');
	};
  }
  
  function fnMapAddressMultiple(x, y, addy, city, zip) {
	myMap.getGeocode(x, y, addy, city, zip)
  }
  
  function fnSearchCommunity() {
	fnResetDivContentMenuExpand('sc9');
	for (var i=0; i < document.getElementsByName("rdoGroupComm").length; i++){
	  if (document.getElementsByName("rdoGroupComm")[i].checked){
		var rad_val = document.getElementsByName("rdoGroupComm")[i].value;}
	}
	var x = fnCheckVis(rad_val)
	if (x == true) {
	  if (document.getElementById('txtplace').value != "") {
		fnResetDivContentMenuExpand('scp');
		if (rad_val == 'YES') document.getElementById('btnBoundCommView').style.visibility = 'visible';
		fnClearSelection();
		myMap.SearchCommunity(document.getElementById('txtplace').value, document.getElementById('ddlCommunType').value, rad_val);
	  } else {
		alert('You must enter a location for community search')
	  }
	} else {
		alert('You must have at least 1 layer visible to select Point feature!')
	}
  }
  
  function fnMapCommunityMultiple(place, cnty, type, fips) {
  	for (var i=0; i < document.getElementsByName("rdoGroupComm").length; i++){
	  if (document.getElementsByName("rdoGroupComm")[i].checked){
		var rad_val = document.getElementsByName("rdoGroupComm")[i].value;}
	}
	if (rad_val == 'YES') document.getElementById('btnBoundCommView').style.visibility = 'visible';
	fnClearSelection();
	myMap.getCommunity(place, cnty, type, fips, rad_val);
  }
  
  function fnCheckVis(x) {
	if (x == 'YES') {
	  var test = false;
	  if (document.getElementById('180OLUST').checked == true) test = true
	  if (document.getElementById('180CLUST').checked == true) test = true
	  if (document.getElementById('170').checked == true) test = true
	  if (document.getElementById('180AUST').checked == true) test = true
	  if (document.getElementById('180CUST').checked == true) test = true
	  return test;
	} else {
	  return true;
	}
  }
  
  function fnResetDivContentToolClick() {
    document.getElementById('sc6').style.display = 'none'
	document.getElementById('imgHS').src = 'images/plus.gif'
	document.getElementById('mapInfo').innerHTML = HSidentToolTipText
	//document.getElementById('searchResults').innerHTML = ""
  }
  
  function fnResetDivContentMenuExpand(curobj) {
	switch (curobj){
	 case "sc6":
	  document.getElementById('mapInfo').innerHTML = HSidentToolTipText
	 break;
	 case "sc8":
	  document.getElementById('searchResults').innerHTML = ""
	 break;
	 case "sc9":
	  document.getElementById('communResults').innerHTML = ""
	 break;
	}
  }

  function fnInitiateConnect(x) {
	sessionTime = x;
	clearTimeout(sessionKeepAlive);
	sessionKeepAlive = setTimeout('fnAddElement("cBox")', sessionTime);
  }
  
  function fnCallKeeper(x) {
	if (x.value == 'Yes') { 
	  clearTimeout(sessionKeepAlive);
	  myMap.getSessionKeeper();
	} 
	document.body.removeChild(document.getElementById('cBox'))
  }
  
  function fnTerminateSessionMsg() {
	if (document.getElementById('cBox')) {
	  document.body.removeChild(document.getElementById('cBox'))
	}
	fnAddElement('tBox');
	window.status = 'session terminated.  Click the browser refresh button to start a new session';
  }
 
 function fnAddElement(x) {
	fnTurnOffTools();
	switch(x){
	  case "cBox":
		var sessTotal = (parseInt(sessionTime) + 30000)/60000;
		var mc = document.getElementById('maincontainer');
		var newdiv = document.createElement('div');
		newdiv.setAttribute('id','cBox');
		newdiv.className = 'popContainer';
		newdiv.innerHTML = '<div class=\"top-left\"></div><div class=\"top-right\"></div><div class=\"inside"\><p class=\"notopgap\"><span style=\"float: left; position: relative;\"><img src=images/exclamation_pnt.gif></span></p><p>This Application has been idle for ' + sessTotal + ' minutes and your session is about to end!   Do you wish to continue your current session?</p><hr width=\"100%\"><p class=\"notbottomgap\"><input type=\"button\" id=\"CKyes\" value=\"Yes\" style=\"width: 50px;\" onclick=\"fnCallKeeper(this)\">&nbsp;<input type=\"button\" value=\"No\" id=\"CKno\" style=\"width: 50px;\" onclick=\"fnCallKeeper(this)\"></p></div><div class=\"bottom-left\"></div><div class=\"bottom-right\"></div>';
		newdiv.style.top = mc.offsetHeight / 2 - 75
		newdiv.style.left = mc.offsetWidth / 2 - 75
		document.body.appendChild(newdiv);
		sessionKeepAlive = window.setTimeout('fnTerminateSessionMsg()', 60000)
	  break;
	  case "tBox":
		var sessTotal = (parseInt(sessionTime) + 30000)/60000;
		var mc = document.getElementById('maincontainer');
		var newdiv = document.createElement('div');
		newdiv.setAttribute('id','tBox');
		newdiv.className = 'popContainer';
		newdiv.innerHTML = '<div class=\"top-left\"></div><div class=\"top-right\"></div><div class=\"inside"\><p class=\"notopgap\"><span style=\"float: left; position: relative;\"><img src=images/exclamation_pnt.gif></span></p><p><b>session terminated</b></p><p class=\"notbottomgap\">Click the browser refresh button to start a new session...</p></div><div class=\"bottom-left\"></div><div class=\"bottom-right\"></div>';
		newdiv.style.top = mc.offsetHeight / 2 - 75
		newdiv.style.left = mc.offsetWidth / 2 - 75
		document.body.appendChild(newdiv);
		document.ondblclick = '';
		document.onmousedown = '';
		document.onmousemove = '';
		document.onmouseup = '';
	  break;
	  case "gBox":
		var newdiv = document.createElement('div');
		newdiv.setAttribute('id','gBox');
		newdiv.className = 'popContainer';
		newdiv.style.width = parseInt(dynDivWidth);
		newdiv.innerHTML = '<div class=\"top-left\"></div><div class=\"top-right\"></div><div class=\"inside"\>'+dynInsideContents+'</div><div class=\"bottom-left\"></div><div class=\"bottom-right\"></div><div id=\"popCall\" class=\"callout\"></div>';
		//newdiv.style.left = myMap.getConvXtoP()-5;
		//newdiv.style.top = myMap.getConvYtoP()- parseInt(dynDivHeight);
		document.body.appendChild(newdiv);
		fnSetHeight();
	  break;
	}
  }
  
  function fnSetHeight() {
	if (document.getElementById('gBox')) {
	  var x = document.getElementById('gBox')
	  //if (x.childNodes[2].innerHTML.indexOf("TABLE") > 0) {
		dynDivHeight = x.offsetHeight;
		x.style.left = myMap.getConvXtoP()-5;
		x.style.top = myMap.getConvYtoP()- parseInt(dynDivHeight);
	//  }
	}
  }
    
  function fnCloseDHTML(x) {
	var n;
	if (typeof(x) == "object") {
		n = x.id;
	} else { n = x }
	if (document.getElementById(n)) {
	  document.body.removeChild(document.getElementById(n))
	}
	clickEnable();
  }
  
  function fnHideDHTML() {
	if (document.getElementById('gBox')) {
	  document.getElementById('gBox').style.display = 'none';
	}
  }
  
  function fnShowDHTML() {
	if (document.getElementById('gBox')) {
	  document.getElementById('gBox').style.display = 'block';
	}
  }
  
  function fnMoveDHTML() {
	if (document.getElementById('gBox')) {
	  if (myMap.getGeoX() > myMap.getXmin() && myMap.getGeoX() < myMap.getXmax() && myMap.getGeoY() > myMap.getYmin() && myMap.getGeoY() < myMap.getYmax()) {
		var pop = document.getElementById('gBox');
		var x = 'gBox';
		if (Math.abs(myMap.getMapLeft() + myMap.getWidth()) - Math.abs(myMap.getConvXtoP()) < dynDivWidth || Math.abs(myMap.getConvYtoP()) - Math.abs(myMap.getMapTop()) < dynDivHeight) {  //need to change hard code to offsetWidth *** however - the current design does not allow this - FIX when time permits
		  if (Math.abs(myMap.getMapLeft() + myMap.getWidth()) - Math.abs(myMap.getConvXtoP()) < dynDivWidth && Math.abs(myMap.getConvYtoP()) - Math.abs(myMap.getMapTop()) < dynDivHeight) { //too far to right and too close to top
			pop.innerHTML = '<div id=\"popCall\" class=\"callout_bottom2\"></div><div class=\"top-left\"></div><div class=\"top-right\"></div><div class=\"inside"\>'+dynInsideContents+'</div><div class=\"bottom-left\"></div><div class=\"bottom-right\"></div>';
			pop.style.left = myMap.getConvXtoP()- parseInt(dynDivWidth);
			pop.style.top = myMap.getConvYtoP();			
		  } else { if (Math.abs(myMap.getMapLeft() + myMap.getWidth()) - Math.abs(myMap.getConvXtoP()) < dynDivWidth) { // too far right
			pop.innerHTML = '<div class=\"top-left\"></div><div class=\"top-right\"></div><div class=\"inside"\>'+dynInsideContents+'</div><div class=\"bottom-left\"></div><div class=\"bottom-right\"></div><div id=\"popCall\" class=\"callout_right\"></div>';
			pop.style.left = myMap.getConvXtoP()- parseInt(dynDivWidth) + 7;
			pop.style.top = myMap.getConvYtoP()- parseInt(dynDivHeight);
		  } else { if (Math.abs(myMap.getConvYtoP()) - Math.abs(myMap.getMapTop()) < dynDivHeight) { // to close to top
			pop.innerHTML = '<div id=\"popCall\" class=\"callout_bottom\"></div><div class=\"top-left\"></div><div class=\"top-right\"></div><div class=\"inside"\>'+dynInsideContents+'</div><div class=\"bottom-left\"></div><div class=\"bottom-right\"></div>';
			pop.style.left = myMap.getConvXtoP();
			pop.style.top = myMap.getConvYtoP();	
		  };};}
		} else { // no change needed from default
		  pop.innerHTML = '<div class=\"top-left\"></div><div class=\"top-right\"></div><div class=\"inside"\>'+dynInsideContents+'</div><div class=\"bottom-left\"></div><div class=\"bottom-right\"></div><div id=\"popCall\" class=\"callout\"></div>';
		  pop.style.left = myMap.getConvXtoP()-5;
		  pop.style.top = myMap.getConvYtoP()- parseInt(dynDivHeight);
		};
		fnShowDHTML();
	  } else {
		fnHideDHTML();
	  }
	}
  }
  
  function clickDisable() {
	document.ondblclick = '';
	document.onmousedown = '';
	document.onmousemove = '';
	document.onmouseup = '';
  }
  
  function clickEnable() {
  	document.ondblclick = handleMouseDbl;
	document.onmousedown = handleMouseDown;
	document.onmousemove = handleMouseMove;
	document.onmouseup = handleMouseUp;
  }
