var newMinx = 0;
var newMiny = 0;
var newMaxx = 0;
var newMaxy = 0;
var boxMinx = 0;
var boxMiny = 0;
var boxMaxx = 0;
var boxMaxy = 0;

var mapClickAsRecenter = true;
var mapBoxAsZoom = true;
var allowRubberband = true;
var allowMapClick = true;
//var state = "zoomIn";  // zoomOut, pan
var state = "nothing";

// Global vars to save mouse position
var mouseX=0;
var mouseY=0;
var x1=0;
var y1=0;
var x2=0;
var y2=0;
var zminx=0;
var zmaxx=0;
var zmaxy=0;
var zminy=0;

var mapX = 0; 
var mapY = 0; 
var zoomBoxWidth = 1;

//state plane integer values, added 03/21/07
var stateplaneX = 0;
var stateplaneY = 0;

//SEARCHLITE var state = "zoom"; // "pan"

var zooming=false;
var panning=false;
//var measuring=false;

var bottomBorderHeight = 13;

// setup test for Nav 4.0
var isIE = false;
var isNav = (navigator.appName.indexOf("Netscape")>=0);
var isNav4 = false;
var isIE4 = false;
var is5up = false;
var isMac = false;
var isWin = false;

// measure tool variables 10/23/07
var mtpl = null;			// reference to vml poly line
var mtl = null;				// reference to vml line
var mtpt = null;			// reference to vml oval
var mtpline = null;		// x,y values for mtpl
var mtprevX = 0;			// previous x,y
var mtprevY = 0;
var mtN = 0;								// number of vertices on the polygon being drawn
var mtmapX = new Array();		// x coordinates at each vertice
var mtmapY = new Array();		// y
var mtlength_total = 0;			// poly line total length
var mtl_to = '';						// first point in x,y 
var mtwindow = null;				// measure html page

if (isNav) {
	if (parseFloat(navigator.appVersion)<5) {
		isNav4=true;
		//alert("Netscape 4.x or older");
	} else {
		is5up = true;
	}
} else {
	isIE4=true;
	isIE=true;
	if (navigator.appVersion.indexOf("MSIE 5")>0) {
		isIE4 = false;
		is5up = true;
	}
	//alert(isNav4 + "," + is5up + "," + isIE4 + "," + isIE);
}	

if (navigator.userAgent.indexOf("Win") >= 0) 
	isWin = true;
else
	isMac = true;

//alert(isNav4 + "," + is5up + "," + isIE4 + "," + isIE);
//alert(navigator.appName + ';' + navigator.appVersion);
//***********************************************	
//***************** FUNCTIONS *******************
//***********************************************

function setZoomBoxSettings() {
	//alert("setZoomBoxSettings");
	// Set up event capture for mouse movement
	if (isNav && is5up) {
		document.captureEvents(Event.MOUSEMOVE);
		document.captureEvents(Event.MOUSEDOWN);
		document.captureEvents(Event.MOUSEUP);
		document.onmousemove = getMouse;
		document.onmousedown = mapTool;
		document.onmouseup = chkMouseUp;
	} else if (isNav4) {
		// otherwise the buttons don't work
		getLayer("theTop").captureEvents(Event.MOUSEMOVE);
		getLayer("theTop").captureEvents(Event.MOUSEDOWN);
		getLayer("theTop").captureEvents(Event.MOUSEUP);
		getLayer("theTop").onmousemove = getMouse;
		getLayer("theTop").onmousedown = mapTool;
		getLayer("theTop").onmouseup = chkMouseUp;
	} else {
		document.onmousemove = getMouse;
		document.onmousedown = mapTool;
		document.onmouseup = chkMouseUp;
	}
}

function setState(newState) {
	state = newState;
    if (state == "pan") {
		if (document.getElementById){   // DOM3 = IE5, NS6
				document.getElementById('theTop').style.cursor = "move";
				document.getElementById('theMap').style.cursor = "move";
			}else if (document.layers){   // Netscape 4
				document.theTop.style.cursor = "move";
				document.theMap.style.cursor = "move";
			}else {  // IE 4
				document.all.theTop.style.cursor = "move";
				document.all.theMap.style.cursor = "move";
			}
		}
	else {
			if (document.getElementById){   // DOM3 = IE5, NS6
				document.getElementById('theTop').style.cursor = "crosshair";
				document.getElementById('theMap').style.cursor = "crosshair";
				document.getElementById('mTool').style.cursor = "crosshair";
		}else 	if (document.layers) {  // Netscape 4
				document.theTop.style.cursor = "crosshair";
				document.theMap.style.cursor = "crosshair";
				document.mTool.style.cursor = "crosshair";
		}else  { // IE 4
				document.all.theTop.style.cursor = "crosshair";
				document.all.theMap.style.cursor = "crosshair";
				document.all.mTool.style.cursor = "crosshair";
		}}

	if (state == "zoomIn" || state == "zoomOut") {
		mapBoxAsZoom = true;
		setZoomBoxColor("#ff0000");
		setZoomBoxWidth(1);
	} else if (state == "measure") {
		if ( isIE ) {
			document.ondblclick = mtinit;
			mtpl = document.getElementById("measurePolyLine");
			mtpl.style.visibility = "hidden";
			mtl = document.getElementById("measureLine");
			mtl.style.visibility = "hidden";
			mtpt = document.getElementById("measurePoint");
			mtpt.style.visibility = "hidden";
			//alert(mtpt.style.visibility);
			mtpline = null;
		}else{
			alert('This measure tool will only work with Internet Explorer.');
			state = "nothing";
		}
	} else if (state == "latlong") {
			parcel_initLatLong();
	} else if (state == "pan") {
	}
	//alert(state);
}

function mtinit() {
	// on double click initialize measure tool vars to start new measure
	mtpline = null;
	mtprevX = 0;
	mtprevY = 0;
	mtN = 0;
	mtmapX = new Array();
	mtmapY = new Array();
	mtlength_total = 0;
	mtl_to = '';
	mtwindow.focus();
	return;
}	

function measure_line(x,y) {
// 10/23/07	
	if(mtpline == null) {								// first measure tool map click
		//alert("measure line");
		mtpt.style.left = x;
		mtpt.style.top = y;
		mtpt.style.visibility = "visible";
		mtpl.style.visibility = "hidden";
		mtl.style.visibility = "hidden";
		mtpline = x + ',' + y;
		mtl_to = mtpline;
		getMapXY(x,y);
		mtprevX = Math.round(mapX);
		mtprevY = Math.round(mapY);
		mtN = 1;
		mtmapX[0] = mapX - 1240000;			// change the orgin x,y before I multiply with there numbers
		mtmapY[0] = mapY - 650000;
	}else{
		mtpline += ' ' + x + ',' + y;
		mtpl.style.visibility = "visible";
		mtpl.points.value = mtpline;		// this is our poly line
		getMapXY(x,y);
		mapX = Math.round(mapX);
		mapY = Math.round(mapY);
		var mtlength_segment = ccgis_calc_length(mapX,mapY,mtprevX,mtprevY);
		mtlength_total += mtlength_segment;
		mtprevX = mapX;
		mtprevY = mapY;
		mtmapX[mtN] = mapX - 1240000;
		mtmapY[mtN] = mapY - 650000;
		mtN += 1;
		var mtarea = '';
		var mtarea_ac = '';
		if ( mtN >= 3 ) {			// 3 or more points we can draw a line between the first and last point and calc the area 
			mtl.to = mtl_to;		// mtl. is the red dash line between the first and last points
			mtl.from = x + ',' + y;
			mtl.style.visibility = "visible";	
			mtarea = ccgis_calc_area_poly(mtN, mtmapX, mtmapY);				// area in sq ft
			mtarea_ac = mtarea / 43560;																		// 43560 sq ft in an acre
			mtarea_ac = Math.round(mtarea_ac*Math.pow(10,2))/Math.pow(10,2);	// area in acres
		}
		measure_results(mtlength_segment,mtlength_total,mtarea,mtarea_ac);
	}
	return;
}

function measure_results(segment,total,ar,ar_ac) {
// display a new measure results window
	mtwindow = window.open('measure.html' + '?seg=' + segment + '&tot=' + total + '&ar=' + ar + '&ac=' + ar_ac, + 'mtwin','resizable=yes,width=220,height=200');
	mtwindow.focus();
}

// check for mouseup
function chkMouseUp(e) { 
	if (zooming || panning) {
		if (mouseX<0)
		 	mouseX = 0;
		if (mouseX>iWidth)
			mouseX = iWidth;
		if (mouseY<0)
			mouseY = 0;
		if (mouseY>iHeight)
			mouseY = iHeight;
		mapTool(e);
	}else if ((state == "latlong") && 
	    (mouseX >= 0) && (mouseX <= iWidth) && 
	    (mouseY >= 0) && (mouseY <= iHeight)){
	    	latlongtool();
	}
}

function latlongtool() {
	mtpt = document.getElementById("measurePoint");
	mtpt.style.left = mouseX;
	mtpt.style.top = mouseY;
	mtpt.style.visibility = "visible";
	getMapXY(mouseX,mouseY);
	stateplaneX = parseInt(mapX);
	stateplaneY = parseInt(mapY);
	var latLonDD = ccgis_convertSP(stateplaneX, stateplaneY);
  var ll = latLonDD.split("|");
  var LonDD = ccgis_round(ll[0],5);
  var LatDD = ccgis_round(ll[1],5);
	var latLonDMS = ccgis_convertDMS(LonDD,LatDD,0);
  ll = latLonDMS.split("|");
  var LonDMS = ll[0];
  var LatDMS = ll[1];
  parcel_showLatLon(LatDD,LonDD,LatDMS,LonDMS);
  return;
}	
function getImageXY(e) {
	//if (document.layers) {
	if (isNav) {
		mouseX=e.pageX;
		mouseY=e.pageY;
	} else {
		mouseX=event.clientX + document.body.scrollLeft;
		mouseY=event.clientY + document.body.scrollTop;
	}
	// subtract offsets from page left and right
	mouseX = mouseX-hspc;
	mouseY = mouseY-vspc;
}	

// convert mouse click xy's into map coordinates
//function getMapXY(xIn,yIn) {
//	mouseX = xIn;
//	var pixelX = (maxx-minx) / iWidth;
//	mapX = pixelX * mouseX + minx;
//	mouseY = iHeight - yIn;
//	var pixelY = (maxy-miny) / iHeight;
//	mapY = pixelY * mouseY + miny;
//}

// convert mouse click xy's into map coordinates
// 10/17/07 the function changes mouseX, mouseY, I think that is wrong, modified the function
function getMapXY(xIn,yIn) {
	var pixelX = (maxx-minx) / iWidth;
	mapX = pixelX * xIn + minx;
	var pixelY = (maxy-miny) / iHeight;
	mapY = pixelY * (iHeight - yIn) + miny;
}

// get the coords at mouse position
function getMouse(e) {
 
	//window.status="";
	getImageXY(e);
	if (zooming) {
		if (mouseX<0)
		 	mouseX = 0;
		if (mouseX>iWidth)
			mouseX = iWidth;
		if (mouseY<0)
			mouseY = 0;
		if (mouseY>iHeight-bottomBorderHeight)
			mouseY = iHeight-bottomBorderHeight;
		x2=mouseX;
		y2=mouseY;
		setClip();
		return false;
	} else if (panning) {
		x2=mouseX;
		y2=mouseY;
		panMouse();	
		return false;
	} else if( (mouseX >= 0) && (mouseX <= iWidth) && (mouseY >= 0) && (mouseY <= iHeight) ) {
		getMapXY(mouseX,mouseY);			// added 03/21/07
		stateplaneX = parseInt(mapX);
		stateplaneY = parseInt(mapY);
		
		//added 01/30/08
		var latLonDD = ccgis_convertSP(stateplaneX, stateplaneY);
    var ll = latLonDD.split("|");
    var LonDD = ccgis_round(ll[0],5);
    var LatDD = ccgis_round(ll[1],5);
    var latLonDMS = ccgis_convertDMS(LonDD,LatDD,1);
    ll = latLonDMS.split("|");
    var LonDMS = ll[0];
    var LatDMS = ll[1];
    window.status="NC State Plane Coordinates " + stateplaneX + ", " + stateplaneY + " feet;  Lat/Long DEC " + LatDD + ", " + LonDD + ";   Lat/Long DMS " + LatDMS + ", " + LonDMS;
  }  	
	return true;
}

function hideZoomBox() {
	hideLayer("zoomBoxTop");
	hideLayer("zoomBoxLeft");
	hideLayer("zoomBoxRight");
	hideLayer("zoomBoxBottom");
}

// perform appropriate action with mapTool
function mapTool (e) {
	//alert(state);
	if ( state == "identify" || state == "zoomIn" || state == "zoomOut" || state == "pan" || state == "select" || state == "measure" ) {
	// this stops the drawing of a box on the map if no map tool has been selected
	getImageXY(e);
	
	// Deal with the possibility of an "identify" first, since it is a
	// little different than the other states (doesn't require a mouse up event).  
	//alert(state);  	
	if ((state == "identify") && 
	    (mouseX >= 0) && (mouseX <= iWidth) && 
	    (mouseY >= 0) && (mouseY <= iHeight)){
			getMapXY(mouseX,mouseY);
			sendIdentify(mapX,mapY);
			return false; // <-- false assures that the popup box stays in front.
	}
	
	// measure tool 10/23/07
	if ((state == "measure") && 
	    (mouseX >= 0) && (mouseX <= iWidth) && 
	    (mouseY >= 0) && (mouseY <= iHeight)){
	    	measure_line(mouseX,mouseY);
	    	return false; // <-- false assures that the popup box stays in front.
	}
	
	  // If we made it to here, it's a navigational click and not an identify or measure
	
	if ((!zooming) && (!panning) && 
		(mouseX >= 0) && (mouseX <= iWidth) && 
		(mouseY >= 0) && (mouseY <= iHeight)) {
		if (state == "pan")
			startPan(e);
		else 
			startZoomBox(e);
			
		return false;
	} else if (zooming) {
		getMouse(e);
		stopZoomBox(e);
	} else if (panning) {
		getMouse(e);
		stopPan(e);
	}
	
  }
	return true;
}

// move map image with mouse
function panMouse() {
	var xMove = x2-x1;
	var yMove = y2-y1;
	var cLeft = -xMove;
	var cTop = -yMove;
	var cRight = iWidth;
	var cBottom = iHeight;
	if (xMove>0) {
		cLeft = 0;
		cRight = iWidth - xMove;
	}
	if (yMove>0) {
		cTop = 0;
		cBottom = iHeight - yMove;
	}
	clipLayer("theMap",cLeft,cTop,cRight,cBottom);
	moveLayer("theMap",xMove+hspc,yMove+vspc);

	return false;
}

// recenter map is the default option
function recenter(e) {

	// otherwise we don't have these layers
	if (allowRubberband)
		hideZoomBox();
		
	getMapXY(mouseX,mouseY);
	if (mapClickAsRecenter) {
		var widthHalf = Math.abs(maxx - minx) / 2;
		var heightHalf = Math.abs(maxy - miny) / 2;
		//alert(widthHalf);
		// 02/19/07 zommin/out a fixed amount on a mouse click
		if ( state == "zoomOut" ) {
			widthHalf = widthHalf * 1.2;
			heightHalf = heightHalf * 1.2;
		}
		if ( state == "zoomIn" ) {
			widthHalf = widthHalf * .8;
			heightHalf = heightHalf * .8;
		}
		newMinx = mapX - widthHalf;
		newMaxx = mapX + widthHalf;
		newMaxy = mapY + heightHalf;
		newMiny = mapY - heightHalf;

		refreshMap(); 
	} else
		customMapClick(mapX,mapY);
}

function refreshMap() {
  hideZoomBox();
  showLayer("loadLayer");
  document.location = sMapProcessor+"?Cmd="+state+
                      "&MinX="+newMinx.toString()+
                      "&MinY="+newMiny.toString()+
                      "&MaxX="+newMaxx.toString()+
                      "&MaxY="+newMaxy.toString()
  //NOTE: calling hideLayer("loadLayer") causes the "Loading" image to disappear immediately.
}

function sendIdentify(numMapX,numMapY) {
//alert('sendIdentify');
//var objWin;
//var sURL;

//  sURL = sIDProcessor+"?"+
//		 "X="+numMapX.toString()+"&"+
//		 "Y="+numMapY.toString();
		 
//  objWin = window.open(sURL, "Identify", "height=480,width=240,scrollbars=yes,resizeable=yes");
//  if (parseInt(navigator.appVersion) >=4) objWin.window.focus();
//objWin = window.open('parcel_main.asp?Cmd=IDENTIFY&x=' + numMapX + '&y=' + numMapY);
	document.frmIdentify.xx.value = numMapX;
	document.frmIdentify.yy.value = numMapY; 
	document.frmIdentify.submit();
}

// clip zoom box layer to mouse coords
function setClip() {	

	if (x1>x2) {
		zmaxx=x1;
		zminx=x2;
	} else {
		zminx=x1;
		zmaxx=x2;
	}
	if (y1>y2) {
		zminy=y1;
		zmaxy=y2;
	} else {
		zmaxy=y1;
		zminy=y2;
	}
	
	if ((x1 != x2) && (y1 != y2)) {
		clipLayer("zoomBoxTop",zminx,zmaxy,zmaxx,zmaxy+zoomBoxWidth);
		clipLayer("zoomBoxLeft",zminx,zmaxy,zminx+zoomBoxWidth,zminy);
		clipLayer("zoomBoxRight",zmaxx-zoomBoxWidth,zmaxy,zmaxx,zminy);
		clipLayer("zoomBoxBottom",zminx,zminy-zoomBoxWidth,zmaxx,zminy);
	}
}

function setExtent(_minx,_miny,_maxx,_maxy) {
	minx = _minx;
	miny = _miny;
	maxx = _maxx;
	maxy = _maxy;
}

function setZoomBoxColor(color) {
	setLayerBackgroundColor("zoomBoxTop", color);
	setLayerBackgroundColor("zoomBoxLeft", color);
	setLayerBackgroundColor("zoomBoxRight", color);
	setLayerBackgroundColor("zoomBoxBottom", color);
}
	
function setZoomBoxWidth(size) {
	zoomBoxWidth = size;
}

function showZoomBox() {
	showLayer("zoomBoxTop");
	showLayer("zoomBoxLeft");
	showLayer("zoomBoxRight");
	showLayer("zoomBoxBottom");
}

// start pan.... image will move
function startPan(e) {

	moveLayer("theMap",hspc,vspc);

	getImageXY(e);
	// keep it within the MapImage
	if ((mouseX<iWidth) && (mouseY<iHeight)) {
		if (panning) {
			stopPan(e);
		} else {
			x1=mouseX;
			y1=mouseY
			x2=x1+1;
			y2=y1+1;
			panning=true;
		}
	}
	return false;

}

// start zoom in.... box displayed
function startZoomBox(e) {

	getImageXY(e);	

	if (!allowRubberband) {
		stopZoomBox(e);
	} else {	
		// keep it within the MapImage
		if ((mouseX<iWidth) && (mouseY<iHeight-bottomBorderHeight)) {
			if (!zooming) {
				x1=mouseX;
				y1=mouseY;
				x2=x1+1;
				y2=y1+1;
				zooming=true;
				clipLayer("zoomBoxTop",x1,y1,x2,y2);
				clipLayer("zoomBoxLeft",x1,y1,x2,y2);
				clipLayer("zoomBoxRight",x1,y1,x2,y2);
				clipLayer("zoomBoxBottom",x1,y1,x2,y2);
				showZoomBox();
			}
		} else {
			if (zooming) {
				stopZoomBox(e);
			}
		}
	}
	return false;	
}

// stop moving image.... pan 
function stopPan(e) {

	if ((Math.abs(x2-x1) < 2) && (Math.abs(y2-y1) < 2)) {
		// the move is too small
		recenter(e);
	} else  {
		window.scrollTo(0,0);
		panning=false;
		var width = Math.abs(maxx - minx);
		var height = Math.abs(maxy - miny);
		var tempLeft=minx;
		var tempRight=maxx;
		var tempTop=maxy;
		var tempBottom=miny;
		var ixOffset = x2-x1;
		var iyOffset = y1-y2;
		pixelX = width / iWidth;
		var theY = iHeight - zmaxy;
		pixelY = height / iHeight;
		var xOffset = pixelX * ixOffset;
		var yOffset = pixelY * iyOffset;
		newMaxy = maxy - yOffset;
		newMaxx = maxx - xOffset;
		newMinx = minx - xOffset;
		newMiny = miny - yOffset;

		// AP specific setting
		attributeUpdate = false;
		
		refreshMap();
	}
		
	return true;
	
}

// stop zoom box display... zoom in
function stopZoomBox(e) {
	zooming=false;
	if ((zmaxx <zminx+2) && (zmaxy < zminy+2)) {
		// if the zoom box is too small
		//alert('recenter');
		recenter(e);
	} else {
		var width = Math.abs(maxx - minx);
		var height = Math.abs(maxy - miny);
		var pixelX = width / iWidth;
		var theY = iHeight - zmaxy;
		var pixelY = height / iHeight;
		newMaxy = pixelY * theY + miny;
		newMaxx = pixelX * zmaxx + minx;
		newMinx = pixelX * zminx + minx;
		theY = iHeight - zminy;
		pixelY = height / iHeight;
		newMiny = pixelY * theY + miny;

		if (mapBoxAsZoom) {
			if (state == "zoomOut") {
				percentX = (maxx-minx)/(newMaxx-newMinx);
				percentY = (maxy-miny)/(newMaxy-newMiny);
				percent = (percentX+percentY)/2;
				
				widthH = (maxx-minx)/2;
				heightH = (maxy-miny)/2;
				cx = newMinx + widthH;
				cy = newMiny + heightH;
				
				newMinx = cx - percent * widthH;
				newMiny = cy - percent * heightH;
				newMaxx = cx + percent * widthH;
				newMaxy = cy + percent * heightH;
			}
			refreshMap();
		} else
			customMapBox(newMinx, newMiny, newMaxx, newMaxy);
			
	}
	return true;
}

function customMapBox(_newMinx, _newMiny, _newMaxx, _newMaxy) {

}

function customMapClick(_newX, _newY) {

}

//-------- LAYER SUPPORT FUNCTIONS --------------

// atlas_common.js

// clip layer display to clipleft, cliptip, clipright, clipbottom
function clipLayer(name, clipleft, cliptop, clipright, clipbottom) {		
	var layer = getLayer(name);		
	if (layer != null) {
  		if (isNav4) {
			layer.clip.left   = clipleft;
			layer.clip.top    = cliptop;
		    layer.clip.right  = clipright;
			layer.clip.bottom = clipbottom;
		} else if (isIE) {
			layer.clip = 'rect(' + cliptop + ' ' +  clipright + ' ' + clipbottom + ' ' + clipleft +')';
	    } else {
     		layer.height = clipbottom - cliptop;
			layer.width	= clipright - clipleft;
			layer.top	= (cliptop+vspc) + "px";
			layer.left	= (clipleft+hspc) + "px";
		}
	}
}

// Create a DHTML layer
function createLayer(name, left, top, width, height, visible, content) {
	  var layer;
	  if (isNav4) {
	    document.writeln('<layer name="' + name + '" left=' + left + ' top=' + top + ' width=' + width + ' height=' + height +  ' visibility=' + (visible ? '"show"' : '"hide"') +  '>');
	    document.writeln(content);
	    document.writeln('</layer>');
	    layer = getLayer(name);
	    layer.width = width;
	    layer.height = height;
	  } else {
	    document.writeln('<div id="' + name + '" style="position:absolute; left:' + left + 'px; top:' + top + 'px; width:' + width + 'px; height:' + height + 'px;' + ' visibility:' + (visible ? 'visible;' : 'hidden;') +  '">');
	    document.writeln(content);
	    document.writeln('</div>');
	  }
	  	  clipLayer(name, 0, 0, width, height);
}

// get the layer object called "name"
function getLayer(name) {
	  if (isNav4)
	    return(document.layers[name]);
	  else if (isIE4) {
	  	if ( eval('document.all.' + name) != null) {
		    layer = eval('document.all.' + name + '.style');
		    return(layer);
		} else
			return(null);
	  } else if (is5up) {
		var theObj = document.getElementById(name);
		return theObj.style
	  } else
	    return(null);
}

// toggle layer to invisible
function hideLayer(name) {		
  	var layer = getLayer(name);		
	if (layer != null) {
	 	if (isNav4)
    		layer.visibility = "hide";
		else
   			 layer.visibility = "hidden";
	}
}

// move layer to x,y
function moveLayer(name, x, y) {		
  	var layer = getLayer(name);		
	if (layer != null) {
	  	if (isNav4)
    		layer.moveTo(x, y);
	 	else if (isIE) {
    		layer.left = x + "px";
   			layer.top  = y + "px";
		} else {
			layer.height = iHeight - y;
			layer.width	= iWidth - x;
    		layer.left = x + "px";
   			layer.top  = y + "px";
	  	}
	}
}

// replace layer's content with new content
function replaceLayerContent(name, content) {
	  if (isNav4) {
		    var layer = getLayer(name);
			if (layer != null) {
			    layer.document.open();
			    layer.document.writeln(content);
			    layer.document.close();
			}
	  }  else if (isIE) {
			if (eval("document.all." + name) != null) {
		  		content = content.replace(/\'/g,"\\'");
			    var str = "document.all." + name + ".innerHTML = '" + content + "'";
			    eval(str);
			}
	  }
}

// set layer background color
function setLayerBackgroundColor(name, color) {		
  	var layer = getLayer(name);		
	if (layer != null) {
	    if (isNav4) 
    		layer.bgColor = color;
		else 
    		layer.backgroundColor = color;
	}
}

// toggle layer to visible
function showLayer(name) {		
  	var layer = getLayer(name);		
	if (layer != null) {
	  	if (isNav4)
    		layer.visibility = "show";
		else
   		 	layer.visibility = "visible";
	}
}

