//Global variables
var popWin = null;
//var popWin2 = null;


//Function for the Query Pop-up Windows
function openWin(winURL, winWidth, winHeight, winFeatures, winLeft, winTop){
  var d_winLeft = 20  // default, pixels from screen left to window left
  var d_winTop = 20   // default, pixels from screen top to window top
  var winName = "popWin"
  closePopWin()           // close any previously opened pop-up window
  if (openWin.arguments.length >= 4)  // any additional features? 
    winFeatures = "," + winFeatures
  else 
    winFeatures = "" 
  if (openWin.arguments.length == 6)  // location specified
    winFeatures += getLocation(winWidth, winHeight, winLeft, winTop)
  else
    winFeatures += getLocation(winWidth, winHeight, d_winLeft, d_winTop)
    popWin = window.open(winURL, winName, "width=" + winWidth 
           + ",height=" + winHeight + winFeatures)
    //popWin.location.reload(winURL)
    popWin.focus();
  }

function closePopWin(){    // close pop-up window if it is open 
  if (navigator.appName != "Microsoft Internet Explorer" 
      || parseInt(navigator.appVersion) >=4) //do not close if early IE
  if(popWin != null) if(!popWin.closed) popWin.close() 
  }
  
// Function used by openWin() function for placement of pop-up window
function getLocation(winWidth, winHeight, winLeft, winTop){
  var winLocation = ""
  if (winLeft < 0)
    winLeft = screen.width - winWidth + winLeft
  if (winTop < 0)
    winTop = screen.height - winHeight + winTop
  if (winTop == "cen")
    winTop = (screen.height - winHeight)/2 - 20
  if (winLeft == "cen")
    winLeft = (screen.width - winWidth)/2
  if (winLeft>0 & winTop>0)
    winLocation =  ",screenX=" + winLeft + ",left=" + winLeft	
                + ",screenY=" + winTop + ",top=" + winTop
  else
    winLocation = ""
  return winLocation
  }
    
//Query selection list located top of map
//The submit button triggers this function 
 function selChanged()
{	
	var selOptions = top.mainFrame.document.form2.querySelect.options;

	if (selOptions[0].selected)
		{
			openWin('panel.cfm?TYPE=P-ADD',400,430,'scrollbars,resizable');
		}
	if (selOptions[1].selected)
		{
			openWin('panel.cfm?TYPE=P-PIN',400,430,'scrollbars,resizable');
		}
    if (selOptions[2].selected)
		{
			
			//window.open('panel.cfm?TYPE=INTERSECT', 'newWindow');
			openWin('panel.cfm?TYPE=INTERSECT',400,430,'scrollbars,resizable');
		}
}


//This function makes sure that the map will fit in the entire viewing area
//Called by the toggleLegend() function as well.
function setMapWidth() {
   
     var legendStat = top.mainFrame.getMap().LayersViewWidth;
	 var currentScale = top.mainFrame.getMap().getScale();
	 
	 if (legendStat == 200) {
	     top.mainFrame.getMap().setWidth(45.9,"MI");
		 top.mainFrame.getMap().refresh();
	 }
	 else 
	     top.mainFrame.getMap().zoomOut();
}

//Called by the toggleLegend() function to set the current Map legend size
function setLegend(turnOn) {
 
	    top.mainFrame.getMap().LayersViewWidth = turnOn;	
 }

//Function for creating the toggling effect in the Map -- 
//Must set the initial Map legend width to 1 in order for this to work.
//Calls the setLegend() and setMapWidth() functions
function toggleLegend() {

map = top.mainFrame.getMap();        
if (map.isBusy() == false)
 {
		var showinmap = top.mainFrame.getMap().LayersViewWidth;
		if (showinmap == 220) 
		    turnOn = 0;
		else 
		    turnOn = 220;
		setLegend(turnOn);		
		top.mainFrame.getMap().refresh();	
 }
  else 
   alert("Please Wait - map not fully loaded");
 }
 
 
// Incremental Panning function
function Pan(direction,pctchange)
{
   var map = getMap();
   
   // Get Width or Height in meters
   var delta;
   if (direction == "Left" | direction == "Right")
       delta = map.getWidth("FT");
   if (direction == "Up" | direction == "Down")
       delta = pctchange * map.getWidth("FT");
   delta = pctchange * delta;

   // Compute center point of map in Mapping Coordinate System (MCS)
   var xyPt = map.lonLatToMcs(map.getLon(), map.getLat());

   // Convert delta from Meters to MCS units.
   var MCStoFeet = map.getMCSScaleFactor();
   delta = delta / MCStoFeet;

   // Adjust by width / height of the map
    if (direction == "Left") 
    {
        xyPt.setX(xyPt.getX() - delta)
    }

    if (direction == "Right") 
    {
        xyPt.setX(xyPt.getX() + delta)
    }

    if (direction == "Up") 
    {
        xyPt.setY(xyPt.getY() + delta)
    }

    if (direction == "Down") 
    {
        xyPt.setY(xyPt.getY() - delta)
    }

   // Convert back to Lat/lon Coordinate System
   xyPt = map.mcsToLonLat(xyPt.getX(), xyPt.getY());

   // Zoom to the new location
   map.zoomScale(xyPt.getY(), xyPt.getX(), map.getScale());
}
 
 //Layer function in the topFrame
//The dropdown menu in the topFrame list the layers available
//The submit button in the topFrame triggers this function
 function viewLayers(layer)  {

  var map = top.mainFrame.getMap();
 
 if (map.isBusy() == false) {
 
   if (layer == 'MUNIS') 
   { drawMunis(layer); }
   else if (layer == 'Comprehensive Land Use Plan') 
   { viewFLUM(); }
   else if (layer == '2005 Color Aerials') 
   { viewAerials(); }
   else {
	 var mapLayer = map.getMapLayer(layer);
	 var layerGroup = mapLayer.getMapLayerGroup();
     if (mapLayer.isVisible() == false) {	
	   if(layerGroup) { layerGroup.expand(); }
	   mapLayer.setShowInLegend(true);
	   mapLayer.setVisibility(true);
	   mapLayer.setRebuild(true);
	   top.mainFrame.listSel = layer;
	   map.refresh();
     }	
     else  
	  mapLayer.setVisibility(false);
	  top.mainFrame.listSel = layer;
	  map.refresh();
   }	  
 }
 else 
   alert("Please Wait - map not fully loaded");
   
}

function drawMunis(layer) {
    var map = top.mainFrame.getMap();
    var layerGrp = map.getMapLayerGroup("MUNICIPAL");
	var layerz = layerGrp.getMapLayers();  
	var layercnt = layerz.size();
    var g;
    for (g = 0; g < layercnt; g++)
	{
          var MyLayerZ = layerz.item(g);
              if (MyLayerZ.isVisible() == true)
				{  
				  if(layerGrp) { layerGrp.setShowInLegend(false); }
				  MyLayerZ.setVisibility(false);
				  MyLayerZ.setShowInLegend(false);
				}
				else {
				  if(layerGrp) { layerGrp.setShowInLegend(true); }
				 MyLayerZ.setVisibility(true);
				 MyLayerZ.setShowInLegend(true); 
			    }	 
	}	
	//top.mainFrame.listSel = layer;
	map.refresh();
 }
 
 // Aerials layer viewing function
 // Not being used now because of Map changes
function viewAerials2() {

if (getMap().isBusy() == false) {

   var CurrentScale = getMap().getScale();
   var rLayer = getMap().getMapLayer('2003 Color Aerials');
   var rLayer2 = getMap().getMapLayer('2000 Color Aerials - Full');
   //var rGroup = rLayer.getMapLayerGroup();
   var parcelLayer = getMap().getMapLayer("Parcel Lines");
   var parcelLayer2 = getMap().getMapLayer("Parcel Polygons");
   var parcelLayer3 = getMap().getMapLayer("Parcel_Lines_Yellow");
   
 //if (CurrentScale < 10001) 
 //{
   if (rLayer.isVisible() == false)
   {
    //if(rGroup) { rGroup.setShowInLegend(true); }
	rLayer.setShowInLegend(false);
	rLayer.setVisibility(true);
	rLayer.setRebuild(true);
	rLayer2.setShowInLegend(false);
	rLayer2.setVisibility(true);
	rLayer2.setRebuild(true);
	if(parcelLayer.isVisible() == true) {
	    parcelLayer.setVisibility(false);
		parcelLayer.setShowInLegend(false);
		parcelLayer3.setVisibility(true);
		//parcelLayer3.setShowInLegend(true);
	}
	else if (parcelLayer2.isVisible() == true) {	
     	parcelLayer2.setVisibility(false);
		parcelLayer2.setShowInLegend(false);
		parcelLayer3.setVisibility(true);
		//parcelLayer3.setShowInLegend(true);
	}	
	getMap().refresh();
	//getMap().setAutoRefresh(true);
   }
    else 
	//if(rGroup) { rGroup.setShowInLegend(false); }
	rLayer.setShowInLegend(false);
	rLayer.setVisibility(false);
	rLayer.setRebuild(false);
	rLayer.setShowInLegend(false);
	rLayer.setVisibility(false);
	rLayer.setRebuild(false);
	parcelLayer3.setVisibility(false);
	parcelLayer3.setShowInLegend(false);
	parcelLayer3.setRebuild(false);
	parcelLayer2.setVisibility(true);
	parcelLayer2.setShowInLegend(true);
	parcelLayer2.setRebuild(true);   
	//if (parcelLayer3.isVisible() == true) {
	//   if (CurrentScale < 7001) {
	 //   parcelLayer3.setVisibility(false);
		//parcelLayer3.setShowInLegend(false);
		//parcelLayer2.setVisibility(true);
		//parcelLayer2.setShowInLegend(true);
		//parcelLayer2.setRebuild(true);
      // }
	   //if (CurrentScale > 7001) {
	   // parcelLayer3.setVisibility(false);
		//parcelLayer3.setShowInLegend(false);
		//parcelLayer.setVisibility(true);
		//parcelLayer.setShowInLegend(true);
		//parcelLayer.setRebuild(true);
      // }	
	//}
	getMap().refresh();
 //}
 //else
  // alert("Please zoom to scale less than 10,001 feet to view aerials. Thanks.")
 }
 else 
   alert("Wait - map not fully loaded");
}
// Not being used now because of Map changes
// End of Aerial function
 
 
 
 
 // Aerials layer viewing function
function viewAerials() {

if (getMap().isBusy() == false) {

   var CurrentScale = getMap().getScale();
   var rLayer = getMap().getMapLayer('2009 Color Aerials');
   var rLayer2 = getMap().getMapLayer('2009 Color Aerials - Full');
   var rGroup = rLayer.getMapLayerGroup();
   
 //if (CurrentScale < 10001) 
 //{
   if (rLayer.isVisible() == false && rLayer2.isVisible() == false)
   {
    if(rGroup) { rGroup.setShowInLegend(true); }
	//rLayer.setShowInLegend(false);
	rLayer.setVisibility(true);
	rLayer.setRebuild(true);
	rLayer2.setVisibility(true);
	rLayer2.setRebuild(true);
	getMap().refresh();
   }
	else 
	//rLayer.setShowInLegend(false);
	rLayer.setVisibility(false);
	rLayer2.setVisibility(false);
	getMap().refresh();
 //}
 //else
   //alert("Please zoom to scale less than 10,001 feet to view aerials. Thanks.")
 }
 else 
   alert("Wait - map not fully loaded");
}
// End of Aerial function


 // FLUM layer viewing function
function viewFLUM() {

if (getMap().isBusy() == false) {

   var map = getMap();
   var CurrentScale = getMap().getScale();
   var parcelLayer = map.getMapLayer("Parcel Lines - Black");
   var flumLayer = map.getMapLayer("FLUM_LEGEND");
   var rLayer = map.getMapLayer("Comprehensive Land Use Plan");
   var rGroup = parcelLayer.getMapLayerGroup();
   
 if (CurrentScale < 65001) 
 {
   if (rLayer.isVisible() == false)
   {
      if(rGroup) { rGroup.setShowInLegend(true); }
	rLayer.setShowInLegend(true);
	rLayer.setVisibility(true);
	rLayer.setRebuild(true);
	parcelLayer.setShowInLegend(true);
	parcelLayer.setVisibility(true);
	parcelLayer.setRebuild(true);
	flumLayer.setShowInLegend(true);
	flumLayer.setVisibility(true);
	flumLayer.setRebuild(true);
	map.refresh();
   }
	else 
	 flumLayer.setVisibility(false);
	 rLayer.setVisibility(false); 
	 parcelLayer.setShowInLegend(false);
	 parcelLayer.setVisibility(false);
	 map.refresh();
 }
 else
   alert("Please zoom to scale less than 65,001 feet to view land use map. Thanks.")
 }
 else 
   alert("Wait - map not fully loaded");
}
// End of FLUM function
