function BrowserCheck() {
  var b = navigator.appName
  if (b=="Netscape") this.b = "ns"
  else if (b=="Microsoft Internet Explorer") this.b = "ie"
  else this.b = b
  this.version = navigator.appVersion
  this.v = parseInt(this.version)
  this.ns = (this.b=="ns" && this.v>=4)
  this.ns4 = (this.b=="ns" && this.v==4)
  this.ns5 = (this.b=="ns" && this.v==5)
  this.ie = (this.b=="ie" && this.v>=4)
  this.ie4 = (this.version.indexOf('MSIE 4')>0)
  this.ie5 = ((this.version.indexOf('MSIE 5')>0) || (this.version.indexOf('MSIE 6')>0))
  this.min = (this.ns||this.ie)
}

is = new BrowserCheck();
var mapPoints = null;

function get(eN)
{
if (document.getElementById)
	{
		return(eval('document.getElementById(\'' + eN + '\')'))
	}
	else
	{
		if (document.all)
		{
			return(eval('document.all.' + eN))
		}
	}
}

function clearLines()
{
    get('MapLayer').innerHTML = '';
    if (parent.m_activeTool == "selectByPoly" && mapPoints.length>4) {
  	  showHourGlass();
	  document.location.href='useControls.asp?value=selectByPoly&p1=' + mapPoints.join(",");
    }
  
    rulerStarted = false;
    polyStarted = false;
    totalDist=0;

    labelText.innerHTML = '';
    labelText.style.visibility = "hidden";
    
}

function popupFile(sPicURL) {
	window.open("../core/popup.asp?"+sPicURL, "_blank", "resizable=1,HEIGHT=200,WIDTH=200");
}

function showExtInfo(theLink) {
      myWin = window.open(theLink, 'extInfoWin', 'scrollbars=yes,status=no,resizable=yes, toolbar=no,width=250,height=300');
}

function showHourGlass() {

  if (!window.opener) {


    if ((is.ie) && (parent.frameMap.document.all['HourGlass'])){
      parent.frameMap.document.all['HourGlass'].style.visibility='visible';
    }

    else if (is.ns4) {
      parent.frameMap.document.layers['HourGlass'].visibility='visible';
    }

    else if ((is.ns5) && (parent.frameMap.document.getElementById('HourGlass'))){
      parent.frameMap.document.getElementById('HourGlass').style.visibility='visible';
    }
    

  }

}

function processAllLayers() {

	showHourGlass();
	
	var strAllLayers;
	strAllLayers = '';

	var strAllLabels;
	strAllLabels = '';
	
	for (var i = 0; i<document.layerForm.elements.length; i++) 
	{
		if (document.layerForm.elements[i].checked) 
	    	{
       			strAllLayers = strAllLayers + document.layerForm.elements[i].name + '@';
    		}
	}

	document.layerForm.chosenLayer.value = strAllLayers.substring(0,strAllLayers.length-1);
	document.layerForm.submit();
	
	
}

function mouseDown(e) {

  var x = (ns4 || ns5)? e.pageX : event.x
  var y = (ns4 || ns5)? e.pageY : event.y+document.body.scrollTop
  
  if(x>posLeft && y>posTop && x<posLeft+iWidth && y<posTop+iHeight) {
    
    panActive = false;
    clipActive = false;
    rulerActive = false;
    allDone = false;

    if (parent.m_activeTool == "zoomInBox" || parent.m_activeTool == "zoomOutBox") {
      clipActive = true;
    }

    if (parent.m_activeTool == "pan")  {
      panActive = true;
    }

    if (parent.m_activeTool == "selectByPoly")  {

      polyActive = true;
     	useATool = true;

	var dLine = new jsGraphics("MapLayer");		
      
	      if (polyStarted) {

			get('MapLayer').innerHTML = '';
	      	
			var i = mapPoints.length;
  			mapPoints[i] = x-posLeft-3;
  			mapPoints[i+1] = y-posTop-3;  			
	      	
			dLine.setStroke(2);		      	
			dLine.setColor("#B64848");
			
			for (i = 0; i < mapPoints.length; i+=2) {
				
   			    dLine.drawImage("../images/pin.gif", mapPoints[i]-16,mapPoints[i+1]-16,18,18);
				
			    switch (i) {
			    case 0:
				      break;
			    case mapPoints.length-2:
			            dLine.drawLine(mapPoints[i-2],mapPoints[i-1],mapPoints[i],mapPoints[i+1]);			    
			      	dLine.drawLine(mapPoints[0],mapPoints[1],mapPoints[i],mapPoints[i+1]);			      
				      break;			    
			    default:
				      dLine.drawLine(mapPoints[i-2],mapPoints[i-1],mapPoints[i],mapPoints[i+1]);
				      break;			    			    
			    }	
			}			
			
			dLine.paint(); 
			labelPolygon();
	      }
		else
		{
			mapPoints = new Array();
  			mapPoints[0] = x-posLeft-3;
  			mapPoints[1] = y-posTop-3;  			
			rulerActive = false;  			
	      	polyStarted = true;
			dLine.drawImage("../images/pin.gif", x-posLeft-17,y-posTop-18,18,18);		
			dLine.paint(); 		
			createText();			      			
		}
		clickx = x-3;
		clicky = y-3;      			
	      return;		

    }

    if (parent.m_activeTool == "calculateArea")  {

      polyActive = true;
     	useATool = true;

	var dLine = new jsGraphics("MapLayer");		
      
	      if (polyStarted) {

			get('MapLayer').innerHTML = '';
	      	
			var i = mapPoints.length;
  			mapPoints[i] = x-posLeft-3;
  			mapPoints[i+1] = y-posTop-3;  			
	      	
			dLine.setStroke(2);		      	
			dLine.setColor("#B64848");
			
			for (i = 0; i < mapPoints.length; i+=2) {
				
   			    dLine.drawImage("../images/pin.gif", mapPoints[i]-16,mapPoints[i+1]-16,18,18);
				
			    switch (i) {
			    case 0:
				      break;
			    case mapPoints.length-2:
			            dLine.drawLine(mapPoints[i-2],mapPoints[i-1],mapPoints[i],mapPoints[i+1]);			    
			      	dLine.drawLine(mapPoints[0],mapPoints[1],mapPoints[i],mapPoints[i+1]);			      
				      break;			    
			    default:
				      dLine.drawLine(mapPoints[i-2],mapPoints[i-1],mapPoints[i],mapPoints[i+1]);
				      break;			    			    
			    }	
			}			
			
			dLine.paint(); 
			labelPolygon();
	      }
		else
		{
			mapPoints = new Array();
  			mapPoints[0] = x-posLeft-3;
  			mapPoints[1] = y-posTop-3;  			
			rulerActive = false;  			
	      	polyStarted = true;
			dLine.drawImage("../images/pin.gif", x-posLeft-17,y-posTop-18,18,18);		
			dLine.paint(); 		
			createText();			      			
		}
		clickx = x-3;
		clicky = y-3;      			
	      return;		

    }
    
    if (parent.m_activeTool == "measure")  {

      rulerActive = true;
     	useATool = true;

	var dLine = new jsGraphics("MapLayer");		
      
      if (rulerStarted) {

		get('MapLayer').innerHTML = '';

		var i = mapPoints.length;
		mapPoints[i] = x-posLeft-3;
		mapPoints[i+1] = y-posTop-3;  			

		dLine.setStroke(2);		      	
		dLine.setColor("blue");

		for (i = 0; i < mapPoints.length; i+=2) {
			
	  	    dLine.drawImage("../images/blue_flag.gif", mapPoints[i],mapPoints[i+1]-11,11,11);
			
		    switch (i) {
		    case 0:
			      break;
		    default:
			      dLine.drawLine(mapPoints[i-2],mapPoints[i-1],mapPoints[i],mapPoints[i+1]);
			      break;			    			    
		    }	
		}			
      	
		dLine.paint(); 
		labelLine();
		
      }
	else
	{
		mapPoints = new Array();
		mapPoints[0] = x-posLeft-3;
		mapPoints[1] = y-posTop-3;  			
		rulerActive = true;  			
      	polyStarted = false;
		rulerStarted = true;  			      	
		dLine.setStroke(2);		      	
		dLine.drawImage("../images/blue_flag.gif", x-posLeft-3,y-posTop-14,11,11);		
		dLine.paint(); 			      			
		totalDist = 0;			      	
		createText();
	}
	clickx = x-3;
	clicky = y-3;      			
      return;		
	
    }
    
    if (((ns4 || ns5) && e.which == 1) || ie4) {

      clickx = x;
      clicky = y;
      
      if (clipActive || panActive) {

        moveLayer('drawvDiv',x,posTop);
        moveLayer('drawhDiv',posLeft,y);
        clipLayer('drawvDiv',0,clicky-posTop,1,y-posTop)
        clipLayer('drawhDiv',clickx-posLeft,0,x-posLeft,1)
        showLayer('drawhDiv');
        showLayer('drawvDiv');

      }

    }

  }
}

function mouseMove(e) {
	
  var x = (ns4 || ns5)? e.pageX : event.x
  var y = (ns4 || ns5)? e.pageY : event.y+document.body.scrollTop

  if (useCross) {
    minLeft = posLeft + 11;
    minTop = posTop + 11;
    maxRight = posLeft+ iWidth - 6 - 25;
    maxBottom = posTop+ iHeight - 6;
  }
  else {
    minLeft = posLeft;
    minTop = posTop;
    maxRight = posLeft + iWidth - 25;
    maxBottom = posTop + iHeight;
  }

  if(x>minLeft && y>minTop && x<maxRight && y<maxBottom && !allDone)
  {
	switch (parent.m_activeTool)
		{
			case "zoomInBox" :
			
				useATool = true;
				useCross = false;
				
				if ((ns4)|| (ie4 && clipActive) || (ns5 && clipActive)) 
				{
					hideLayer('crosspanhDiv');
					hideLayer('crosspanvDiv');
					showLayer('crosshDiv');
					showLayer('crossvDiv');
					moveLayer('crossvDiv',x,posTop);
					moveLayer('crosshDiv',posLeft,y);
				}
				
				if (!clipActive & ns4) 
				{
					clipLayer('crossvDiv',0,y-posTop-5,1,y-posTop+5)
					clipLayer('crosshDiv',x-posLeft-4,0,x-posLeft+4,1)
				}
				break;
	
			case "zoomOutBox" :
			
				useATool = true;
				useCross = false;
				
				if ((ns4) || (ie4 && clipActive) || (ns5 && clipActive)) 
				{
					hideLayer('crosspanhDiv');
					hideLayer('crosspanvDiv');
					showLayer('crosshDiv');
					showLayer('crossvDiv');
					moveLayer('crossvDiv',x,posTop);
					moveLayer('crosshDiv',posLeft,y);
				}
				
				if (!clipActive) 
				{
					clipLayer('crossvDiv',0,y-posTop-5,1,y-posTop+5)
					clipLayer('crosshDiv',x-posLeft-4,0,x-posLeft+4,1)
				}
				
				break;
			
			case "pan" :
			
				useATool = true;
				useCross = false;
				
				if (panActive) 
				{
				
					if (x>maxRight-25 || x<minLeft+25 || y<minTop+25 || y>maxBottom-25)
					{
						mouseUp(e);
						return;
					}
				
					var xMove = x-clickx;
					var yMove = y-clicky;
					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("MapLayer",cLeft,cTop,cRight,cBottom);
					moveLayer("MapLayer",xMove+posLeft,yMove+posTop);       
				}
				
				if ((ns4)&& !panActive) 
				{
					hideLayer('crosspanhDiv');
					hideLayer('crosspanvDiv');
					showLayer('crosshDiv');
					showLayer('crossvDiv');
					moveLayer('crossvDiv',x,posTop);
					moveLayer('crosshDiv',posLeft,y);
					clipLayer('crossvDiv',0,y-posTop-5,1,y-posTop+5)
					clipLayer('crosshDiv',x-posLeft-4,0,x-posLeft+4,1)
				}
				
				break;
			
			case "selectByClick" :
			
				useATool = true;
				useCross = true;
				hideLayer('crosshDiv');
				hideLayer('crossvDiv');
				showLayer('crosspanhDiv');
				showLayer('crosspanvDiv');
				moveLayer('crosspanvDiv',x-11,y-3);
				moveLayer('crosspanhDiv',x-3,y-11);
				break;

			case "editAbutters" :
			
				useATool = true;
				useCross = true;
				hideLayer('crosshDiv');
				hideLayer('crossvDiv');
				showLayer('crosspanhDiv');
				showLayer('crosspanvDiv');
				moveLayer('crosspanvDiv',x-11,y-3);
				moveLayer('crosspanhDiv',x-3,y-11);
				break;
			
			case "info" :
			
				useATool = true;
				useCross = true;
				hideLayer('crosshDiv');
				hideLayer('crossvDiv');
				showLayer('crosspanhDiv');
				showLayer('crosspanvDiv');
				moveLayer('crosspanvDiv',x-11,y-3);
				moveLayer('crosspanhDiv',x-3,y-11);
				break;

			case "selectByPoly" :
			
				useATool = true;
				useCross = true;
				showLayer('crosspanhDiv');
				showLayer('crosspanvDiv');
				moveLayer('crosspanvDiv',x-11,y-3);
				moveLayer('crosspanhDiv',x-3,y-11);
				break;

			case "calculateArea" :
			
				useATool = true;
				useCross = true;
				showLayer('crosspanhDiv');
				showLayer('crosspanvDiv');
				moveLayer('crosspanvDiv',x-11,y-3);
				moveLayer('crosspanhDiv',x-3,y-11);
				break;
			
			case "measure" :
			
				useATool = true;
				useCross = true;
				showLayer('crosspanhDiv');
				showLayer('crosspanvDiv');
				moveLayer('crosspanvDiv',x-11,y-3);
				moveLayer('crosspanhDiv',x-3,y-11);
				break;
			
			default :
	
				useATool = false;
				break;
		}
		   
		if (clipActive) {
		(y >= clicky) ? clipLayer('drawvDiv',0,clicky-posTop,1,y-posTop):
		  clipLayer('drawvDiv',0,y-posTop,1,clicky-posTop);
		(y >= clicky) ? clipLayer('crossvDiv',0,clicky-posTop,1,y-posTop):
		  clipLayer('crossvDiv',0,y-posTop,1,clicky-posTop);
		(x >= clickx) ? clipLayer('drawhDiv',clickx-posLeft,0,x-posLeft,1):
		  clipLayer('drawhDiv',x-posLeft,0,clickx-posLeft,1);
		(x >= clickx) ? clipLayer('crosshDiv',clickx-posLeft,0,x-posLeft,1):
		  clipLayer('crosshDiv',x-posLeft,0,clickx-posLeft,1);
		}
        
  }
  else {
    useATool = false;
  }
}

function mouseUp(e) {
	
  var x = (ns4 || ns5)? e.pageX : event.x
  var y = (ns4 || ns5)? e.pageY : event.y+document.body.scrollTop

  if (useCross) {
    x=x-22;
    y=y-22;
  }

  if(x>posLeft && y>posTop && x<posLeft+iWidth && y<posTop+iHeight && clipActive)
  {
	width0 = (x-clickx);
	height0 = (y-clicky);
  }
  else 
  {
	xVal = (iWidth/2 + clickx-x);
	yVal = (iHeight/2 + clicky-y);
  }

  if (useATool)
  {

	if ((parent.m_activeTool != "selectByClick") && (parent.m_activeTool != "selectByPoly") && (parent.m_activeTool != "calculateArea") && (parent.m_activeTool != "editAbutters") && (parent.m_activeTool != "info") && (parent.m_activeTool != "measure"))
	{
		allDone = true;
		if (ns4) 
		{
			parent.frameMap.document.layers['HourGlass'].visibility='visible';
		}
		else if (ie4)
		{
			parent.frameMap.document.all['HourGlass'].style.visibility='visible';
		}    	
	}

	if (ie4 || ns4) {
		hideLayer('drawhDiv');
		hideLayer('drawvDiv');
		hideLayer('crosshDiv');
		hideLayer('crossvDiv');
	}
    
	switch (parent.m_activeTool)
	{
	
		case "zoomInBox" :
		
			showHourGlass();
			document.location.href='useControls.asp?value=zoomInBox&startX=' + clickx + '&startY=' + clicky + '&endX=' + x + '&endY=' + y;
			break;
		
		case "zoomOutBox" :
		
			showHourGlass();
			document.location.href='useControls.asp?value=zoomOutBox&startX=' + clickx + '&startY=' + clicky + '&endX=' + x + '&endY=' + y;
			break;
	
		case "pan" :
		
			showHourGlass();    
			if (panActive)
			{			
				document.location.href='useControls.asp?value=pan&startX=' + xVal + '&startY=' + yVal;
			}
			else
			{
				document.location.href='useControls.asp?value=pan&startX=' + x + '&startY=' + y;
			}
			break;
		
		case "selectByClick" :
		
			showHourGlass();    
			document.location.href='useControls.asp?value=selectByClick&startX=' + x + '&startY=' + y;
			break;

		case "editAbutters" :
		
			showHourGlass();    
			document.location.href='useControls.asp?value=editAbutters&startX=' + x + '&startY=' + y;
			break;
	
		case "info" :
		
			theLink = 'useControls.asp?value=info&startX=' + x + '&startY=' + y;
			myWin = window.open(theLink, 'infoWin', 'scrollbars=yes,status=no,resizable=yes, toolbar=no,width=250,height=200');
			break;
	}
  }
  else 
  {
	hideLayer('drawhDiv');
	hideLayer('drawvDiv');
	clickx=1;
	clicky=1;
	window.status='';
  }

}

function hideLayer(name) {    
    var layer = getLayer(name);   
    if (ns4)
      layer.visibility = "hide";
  else
  layer.visibility = "hidden";
}

function showLayer(name) {    
    var layer = getLayer(name);   
    if (ns4)
      layer.visibility = "show";
  else
    layer.visibility = "visible";
}

function moveLayer(name, x, y) {    
    var layer = getLayer(name);   
    if (ns4)
        layer.moveTo(x, y);
  else {
        layer.left = x;
      layer.top  = y;
    }
}

function clipLayer(name, clipleft, cliptop, clipright, clipbottom) {    
    var layer = getLayer(name);   
    if (ns4) {
        layer.clip.left   = clipleft;
        layer.clip.top    = cliptop;
        layer.clip.right  = clipright;
        layer.clip.bottom = clipbottom;
    }
    else
        layer.clip = 'rect(' + cliptop + ' ' +  clipright + ' ' + clipbottom + ' ' + clipleft +')';
}

function getLayer(name) {
  
    if (ns4)
      return(document.layers[name]);
    else if (ie4) {
      layer = eval('document.all.' + name + '.style');
      return(layer);
    }
    else if (ns5) { 
      layer = document.getElementById(name).style;
      return(layer);
    }
    else
      return(null);
}

function createLayer(id,left,top,width,height,visibility,content,bgColor,zIndex) {

  if (ie4) {
    
    var str = '\n<DIV id='+id+' style="position:absolute; left:'+left+'; top:'+top+'; width:'+width
    if (height!=null) {
      str += '; height:'+height
      str += '; clip:rect(0,'+width+','+height+',0)'
    }
    if (bgColor!=null) str += '; background-color:'+bgColor   
    if (zIndex!=null) str += '; z-index:'+zIndex
    if (visibility) str += '; visibility:'+visibility
    str += ';">'+((content)?content:'')+'</DIV>'
    document.body.insertAdjacentHTML("BeforeEnd",str)
    
  }
    
  else if (ns4) {
    
    var lyr = document.layers[id] = new Layer(width)
    eval("document."+id+" = lyr")
    lyr.name = id
    lyr.left = left
    lyr.top = top
    if (height!=null) lyr.clip.height = height
    if (bgColor!=null) lyr.bgColor = bgColor
    lyr.visibility = (visibility=='hidden')? 'hide' : 'show'
    if (zIndex!=null) lyr.zIndex = zIndex
    if (content) {
      lyr.document.open()
      lyr.document.write(content)
      lyr.document.close()
    }
  }
  
  else if (ns5) {
    
    var str = '\n<DIV id='+id+' style="position:absolute; left:'+left+'; top:'+top+'; width:'+width
    if (height!=null) {
      str += '; height:'+height
      str += '; clip:rect(0,'+width+','+height+',0)'
    }
    if (bgColor!=null) str += '; background-color:'+bgColor   
    if (zIndex!=null) str += '; z-index:'+zIndex
    if (visibility) str += '; visibility:'+visibility
    str += ';"></DIV>'
    var r = document.createRange();
    r.setStartBefore(document.body);
    var parsedHTML = r.createContextualFragment(str);
    document.body.appendChild(parsedHTML);
    
  }

}

function createText() {
	
  if (document.getElementById("labelText") == null ) {
	  labelText = document.createElement("div");
	  labelText.style.position = "absolute";
	  labelText.style.textAlign = "left";
	  labelText.style.fontFamily = "Verdana";
	  labelText.style.fontSize = "9px";
	  labelText.style.color = "#0000FF";
	  labelText.style.width = "110px";
	  labelText.style.height = "27px";
	  labelText.style.visibility = "hidden";
	  labelText.style.background = "#EED31E";
	  labelText.style.zIndex = 50;  
	  document.body.appendChild(labelText);
  }
}

function labelLine() {
	
  var dist = 0;
  var totalDist = 0;

  if (mapPoints.length <4) return;
  
  for (i = 0; i < mapPoints.length; i+=2) {
	
    switch (i) {
    case 0:
	      break;
    case mapPoints.length-2:
		totalDist += Math.sqrt((mapPoints[i-2]-mapPoints[i])* (mapPoints[i-2]-mapPoints[i]) + (mapPoints[i-1]-mapPoints[i+1])* (mapPoints[i-1]-mapPoints[i+1]));
		dist += Math.sqrt((mapPoints[i-2]-mapPoints[i])* (mapPoints[i-2]-mapPoints[i]) + (mapPoints[i-1]-mapPoints[i+1])* (mapPoints[i-1]-mapPoints[i+1]));
	      break;	      
    default:
		totalDist += Math.sqrt((mapPoints[i-2]-mapPoints[i])* (mapPoints[i-2]-mapPoints[i]) + (mapPoints[i-1]-mapPoints[i+1])* (mapPoints[i-1]-mapPoints[i+1]));
	      break;			    			    
    }	
    
  }			

  dist = dist * measureRatio;
  dist = Math.round(dist*Math.pow(10,2))/Math.pow(10,2);

  totalDist = totalDist * measureRatio;
  totalDist = Math.round(totalDist*Math.pow(10,2))/Math.pow(10,2);			

  if (totalDist < 5280) {
    	labelText.innerHTML = "Segment = " + Math.round(dist) + " feet.<BR>Total =" + Math.round(totalDist) + " feet.";
  }
  else {
    if (dist < 5280) {	
    	labelText.innerHTML = "Segment = " + Math.round(dist) + " feet.<BR>Total =" + Math.round(totalDist / 5280, 1) + " miles.";	
    }
    else {
    	labelText.innerHTML = "Segment = " + Math.round(dist / 5280, 1) + " miles.<BR>Total =" + Math.round(totalDist / 5280, 1) + " miles.";		
    }
	
  }

  labelText.style.visibility = "visible";
  labelText.style.left = mapPoints[mapPoints.length-2] - 100;
  labelText.style.top = mapPoints[mapPoints.length-1]  - 7;
  labelText.style.height = "27px";
  labelText.style.width = labelText.innerHTML.length * 3 + "px";  
  
}

function labelPolygon() {
  if (mapPoints.length < 3) {
    return;
  }
  
  var c = centroid().split(',');
  labelText.style.visibility = "visible";
  labelText.style.left = c[0];
  labelText.style.top = c[1];
  labelText.style.width = "110px";
  labelText.style.height = "13px";

  var a = area();
  a *= measureRatio * measureRatio;
  
  if (a < 27878400) {
    labelText.innerHTML = Math.round(a,2) + " square feet";
  }
  else {
    labelText.innerHTML = Math.round((a/27878400)*Math.pow(10,2),2)/Math.pow(10,2) + " square miles.";
  }
  
  labelText.style.width = labelText.innerHTML.length * 6 + "px";  
  
}

function area() {

  if (mapPoints.length < 6) {
    return;
  }
	
  var a = 0;
  
  for (i = 0; i < mapPoints.length; i+=2) {
    switch (i) {
    case 0:
	      break;
    case mapPoints.length-2:
	      a += (mapPoints[i - 2] - mapPoints[i]) * (mapPoints[i - 1] + mapPoints[i+1]) / 2;    
	      a += (mapPoints[i] - mapPoints[0]) * (mapPoints[i + 1] + mapPoints[1]) / 2;
	      break;	      
    default:
	      a += (mapPoints[i - 2] - mapPoints[i]) * (mapPoints[i - 1] + mapPoints[i+1]) / 2;
	      break;			    			    
    }
    
  }

  window.status = a * measureRatio* measureRatio;
  return Math.abs(a);
}

function centroid() {

  var a = 0;
  var centerX = 0;
  var centerY = 0;
  
  for (i = 0; i < mapPoints.length; i+=2) {
    switch (i) {
    case 0:
	      break;
    case mapPoints.length-2:
		var n = (mapPoints[i-2] * mapPoints[i+1]) - (mapPoints[i] * mapPoints[i-1]);
		a += n;
		centerX += (mapPoints[i-2] + mapPoints[i]) * n;
		centerY += (mapPoints[i-1] + mapPoints[i+1]) * n;      
		var n = (mapPoints[i] * mapPoints[1]) - (mapPoints[0] * mapPoints[i+1]);
		a += n;
		centerX += (mapPoints[i] + mapPoints[0]) * n;
		centerY += (mapPoints[i+1] + mapPoints[1]) * n;      
	      break;	      
    default:
		var n = (mapPoints[i-2] * mapPoints[i+1]) - (mapPoints[i] * mapPoints[i-1]);
		a += n;
		centerX += (mapPoints[i-2] + mapPoints[i]) * n;
		centerY += (mapPoints[i-1] + mapPoints[i+1]) * n;      
	      break;			    			    
    }
  }
  
  if (a == 0) {
    return null;
  }
  
  a *= 3;
  centerX /= a;
  centerY /= a;
  
  return centerX + ',' + centerY;
}
