  var pnumFinderLoaded = false;
  var dojoLoadReq;
  var curMap = "Config/SOHConfigCSV.xml";


  function toggleStatus(defaultAOI,force) {
      if (force) {
          // Since we are toggling, set it to the wrong one!
          curMap = "Config/SOHConfigCSV.xml";
          toggleMap(defaultAOI);
      } else if (curMap == "Config/SOHConfigCSV.xml") {
          toggleMap(defaultAOI);
      }
  }
  
  function toggleSOH(defaultAOI,force) {
      if (force) {
          // Since we are toggling, set it to the wrong one!
          curMap = "Config/StatusConfigCSV.xml";
          toggleMap(defaultAOI);
      } else if (curMap != "Config/SOHConfigCSV.xml") {
          toggleMap(defaultAOI);
      }
  }
  
  function toggleMap(defaultAOI) {
    //showLoading();
    if (curMap == "Config/SOHConfigCSV.xml") {
      curMap = "Config/StatusConfigCSV.xml";
      setFilterName("Status");
      document.getElementById('mapProgressButton').innerHTML='<input value="Progress Map" disabled class="disabledButton" type="button" onClick="toggleMap();"/>';
      document.getElementById('mapSOHButton').innerHTML='<input value="Health Map" type="button" class="enabledButton" onClick="toggleMap();"/>';
      document.getElementById('mapTitle').innerHTML='<b>PBO Network Progress Map</b>';
      set_visibility(null, 'statusFilterDiv',true);
      set_visibility(null, 'sohFilterDiv',false);
    } else {
      curMap = "Config/SOHConfigCSV.xml";
      setFilterName("SOH");
      document.getElementById('mapProgressButton').innerHTML='<input value="Progress Map" class="enabledButton" type="button" onClick="toggleMap();"/>';
      document.getElementById('mapSOHButton').innerHTML='<input value="Health Map" disabled class="disabledButton" type="button" onClick="toggleMap();"/>';
      document.getElementById('mapTitle').innerHTML='<b>PBO Network State of Health Map</b>';
      set_visibility(null, 'statusFilterDiv',false);
      set_visibility(null, 'sohFilterDiv',true);
    }
    iagt_map_onLoad(curMap, "", defaultAOI);
    updateFilterDisplay();
    hideLoading();
  }
  
  function setFilterName(filterName) {
    var elem = document.getElementById("filterName");
    if (elem) {
        elem.value = filterName;
    } else {
        alert("Unable to set filterName!");
    }
  }
  
  function zoomToAOI(aoiName) {
    var updated = false;
    if (aoiName) {
      //It makes me feel dirty...
      var aoiSelectList = document.getElementById("aoiList");
      if (aoiSelectList && aoiSelectList.options) {
        for (var i = 0; i < aoiSelectList.options.length; i++) {
          if (aoiName == aoiSelectList.options[i].text) {
            if (!aoiSelectList.options[i].selected) {
              updateMap(aoiSelectList.options[i].value,lastPointLayer,lastOtherMapStyle);
              aoiSelectList.options[i].selected = true;
              updated = true;
            }
            break;
          }
        }
      }
    }
    return updated;
  }
  
  function setDefault(defaultFilterName, mapLayer, aoiName) {
    clearFilters(false);
    if ("SOH" == mapLayer) {
        toggleSOH(aoiName);
    } else if ("Status" == mapLayer) {
        toggleStatus(aoiName);
    }
    var defaultFilter = document.getElementById('defaultFilter');
    if (defaultFilter) {
        defaultFilter.value=defaultFilterName;
    }
    if (aoiName) {
        // Need a way to zoom with out updating.  The problem with 
        // updating filters first and then zooming is that we don't have the
        // new 'zoomed to' bbox when we apply the filter.
        updateFilterDisplay();
        if (!zoomToAOI(aoiName)) {
            applyFilters();
        }
    } else {
        applyFilters();
    }
    // Since we have applied the filter, it is saved in the session on the
    // server and we no longer want to be sent along with future requests.
    if (defaultFilter) {
        defaultFilter.value=null;
    }
  }
  
  var combo;
  function initPNumFinder() {
      if (!combo) {
          combo = dojo.widget.createWidget("dojo:Select", {name:"pnumZoomFinder",autocomplete:true,maxListLength:"5",onValueChanged:zoomToPNumNew,dataUrl:"/pbostation/Filter?request=fourCharJSON"}, dojo.byId("pnumZoomInput"));
      }
  }
  


