// http://gisweb.azdeq.gov/arcgis/emaps/
// ADEQ: Arizona Department of Environmental Quality

function ShowMenu(tool)  // toolbar click handler
{
    HideMenus();
    if (!_menuOK) return;
    document.getElementById(tool).style.visibility = "visible";
}

function HideMenus()
{
    document.getElementById("navigation").style.visibility = "hidden";
    document.getElementById("features").style.visibility = "hidden";
    document.getElementById("information").style.visibility = "hidden";
}

function SetTool(tool)  // toolbar click handler
{
    // hide info window
    _map.infoWindow.hide();

    if (_currentTool.length > 0) DeactivateTool(_currentTool);
    ActivateTool(tool);
    _currentTool = tool;
}

function ActivateTool(tool)
{
    var alt = "";

    switch (tool)
    {
        case "zoomin":
            alt = "Zoom In";
            _navToolbar.activate(esri.toolbars.Navigation.ZOOM_IN);
            _onMouseDown = dojo.connect(_map, "onMouseDown", PreZoom2x);
            _onMouseUp = dojo.connect(_map, "onMouseUp", ZoomIn2x);
            break;

        case "zoomout":
            alt = "Zoom Out";
            _navToolbar.activate(esri.toolbars.Navigation.ZOOM_OUT);
            _onMouseDown = dojo.connect(_map, "onMouseDown", PreZoom2x);
            _onMouseUp = dojo.connect(_map, "onMouseUp", ZoomOut2x);
            break;

        case "pan":
            alt = "Pan Map";
            _navToolbar.activate(esri.toolbars.Navigation.PAN);
            _map.setMapCursor("move");
            break;

        case "latlong":
            alt = "Show Lat/Long";
            _onClick = dojo.connect(_map, "onClick", ShowLatLong);
            break;

        case "identify":
            alt = "Identify Feature";
            _onClick = dojo.connect(_map, "onClick", IdentifyFeature);
            _map.setMapCursor("help");
            break;

        case "hyperlink":
            alt = "Hyperlink Feature";
            _onClick = dojo.connect(_map, "onClick", HyperlinkFeature);
            _map.setMapCursor("help");
            break;

        case "select":
            alt = "Select Features";
            ClearGraphics();
            ShowForm("select");
            ActivateSelect(_selectTool);
            break;

        case "measure":
            alt = "Measure Distance";
            if (_measureGraphic)
            {
                _map.graphics.remove(_measureGraphic);
                _measureGraphic = null;
            }
            _onDrawEnd = dojo.connect(_drawToolbar, "onDrawEnd", DisplayDistance);
            _drawToolbar.activate(esri.toolbars.Draw.POLYLINE);
            ShowForm("measure");
            break;
    }

    // change toolbar tool to new tool
    document.getElementById("tool").src = document.getElementById(tool).src;
    document.getElementById("tool").alt = alt;
    HideMenus();

    // navToolbar.activate() disables scroll wheel 
    _map.enableScrollWheelZoom();
}

function DeactivateTool(tool)
{
    switch (tool)
    {
        case "zoomin":
            _navToolbar.deactivate(esri.toolbars.Navigation.ZOOM_IN);
            dojo.disconnect(_onMouseDown);
            dojo.disconnect(_onMouseUp);
            break;

        case "zoomout":
            _navToolbar.deactivate(esri.toolbars.Navigation.ZOOM_OUT);
            dojo.disconnect(_onMouseDown);
            dojo.disconnect(_onMouseUp);
            break;

        case "pan":
            _navToolbar.deactivate(esri.toolbars.Navigation.PAN);
            break;

        case "latlong":
            dojo.disconnect(_onClick);
            break;

        case "identify":
            dojo.disconnect(_onClick);
            break;

        case "hyperlink":
            dojo.disconnect(_onClick);
            break;

        case "select":
            DeactivateSelect();
            _currentTool = "";  // ShowTOC() calls DeactivateTool() for select
            ShowTOC();
            break;
            
        case "measure":
            dojo.disconnect(_onDrawEnd);
            _drawToolbar.deactivate(esri.toolbars.Draw.POLYLINE);
            _drawToolbar.deactivate(esri.toolbars.Draw.POLYGON);
            if (_measureGraphic)
            {
                _map.graphics.remove(_measureGraphic);
                _measureGraphic = null;
            }
            _currentTool = "";  // ShowTOC() calls DeactivateTool() for measure
            ShowTOC();
            break;
    }

    _map.setMapCursor("default");
}

function ToolOverride(event)
{
    // temporarily override current tool with zoom in
    if (event.ctrlKey && _overriddenTool.length == 0)
    {
        _overriddenTool = _currentTool;
        SetTool("zoomin");
    }
}

function ToolRestore(event)
{
    // restore overridden tool
    if (!event.ctrlKey && _overriddenTool.length > 0)
    {
        SetTool(_overriddenTool);
        _overriddenTool = "";
    }
}

function ShowPopup(popup)
{
    switch(popup)
    {
        case "topics":
            window.open("topics.html");
            break;

        case "metadata":
            window.open("metadata.html");
            break;

        case "help":
            window.open("help.html");
            break;

        case "home":
            window.open("http://www.azdeq.gov");
            break;
    }
    
    HideMenus();
}

