// http://gisweb.azdeq.gov/arcgis/emaps/
// ADEQ: Arizona Department of Environmental Quality

function ZoomTownship()  // form button
{
    var township = dojo.byId("township").value;
    if (township.length == 0)
    {
        ShowError("Enter a township");
        dojo.byId("township").focus();
        return;
    }
    var ns = dojo.byId("ns").value;

    var range = dojo.byId("range").value;
    if (range.length == 0)
    {
        ShowError("Enter a range");
        dojo.byId("range").focus();
        return;
    }
    var ew = dojo.byId("ew").value;

    var section = dojo.byId("section").value;

    // search different layers depending on whether section is specified
    var findParams = new esri.tasks.FindParameters();
    findParams.returnGeometry = true;
    findParams.contains = false;  // exact match
    if (section.length == 0)
    {
        findParams.layerIds = [LayerID(_layerTownships)];
        findParams.searchFields = [_fieldTownships];
        findParams.searchText = township + ns + " " + range + ew;
    }
    else
    {
        findParams.layerIds = [LayerID(_layerTownshipSections)];
        findParams.searchFields = [_fieldTownshipSections];
        if (township.length == 1) township = "0" + township;
        if (range.length == 1) range = "0" + range;
        if (section.length == 1) section = "0" + section;
        findParams.searchText = township + " " + ns + " " + range + " " + ew + " " + section;
    }

    // send request to server
    var findTask = new esri.tasks.FindTask(_mapURL);
    findTask.execute(findParams, ZoomTownship2);
}

function ZoomTownship2(features)  // server response
{
    if (features.length == 0)
    {
        var section = dojo.byId("section").value;
        if (section.length == 0)
        {
            ShowError("Cannot find township");
            dojo.byId("township").focus();
        }
        else
        {
            ShowError("Cannot find township section");
            dojo.byId("section").focus();
        }
        return;
    }
    
    // zoom to township (section)
    var geometry = features[0].feature.geometry;
    if (geometry.type == "point")
    {
        var extent = EnvelopeFromPoint(geometry, 2000);
        ZoomExtent(extent);
    }
    else
    {
        var extent = geometry.getExtent().expand(1.1);
        ZoomExtent(extent);
    }
    
    // show township layer(s)
    ShowLayer("Townships");
    var section = dojo.byId("section").value;
    if (section.length > 0)
    {
        ShowLayer("Township Sections");
    }
}

