﻿dojo.require("esri.tasks.query");

var queryTask, query;

function init() {
    query = new esri.tasks.Query();
    query.returnGeometry = false;
}

function checkKeyDown(search) {
    if ((event.which && event.which == 13) || (event.keyCode && event.keyCode == 13)) {
        if (search == "tmk") {
            tmkSearch();
        }
        else if (search == "addr") {
            addrSearch();
        }
    }
}

function changeSearchType() {

    var sel = document.getElementById('selectSearchType');
    if (sel.options[sel.selectedIndex].value == "Park") {
        document.getElementById('rowTMK').style.display = 'none';
        document.getElementById('rowAddress').style.display = 'none';
        document.getElementById('rowPark').style.display = '';
    }
    else {
        document.getElementById('rowTMK').style.display = '';
        document.getElementById('rowAddress').style.display = '';
        document.getElementById('rowPark').style.display = 'none';
    }
}

function tmkSearch() {
    queryTask = new esri.tasks.QueryTask("http://gis.hicentral.com/ArcGIS/rest/services/OperAll/MapServer/15");
    query.outFields = ["TMK"];

    var tmk = dojo.byId('inTMK').value;
    if (tmk == "") {
        alert('Please enter TMK.');
        return;
    }
    dojo.byId("info").innerHTML = "Searching...";

    query.where = "tmk LIKE LTRIM(RTRIM('" + tmk + "')) + '%'";
    //query.text = tmk;
    //execute query
    queryTask.execute(query, showResults);
}

function addrSearch(num, street) {
    queryTask = new esri.tasks.QueryTask("http://gis.hicentral.com/ArcGIS/rest/services/OperParcelHide/MapServer/0");

    query.outFields = ["TMK", "HOUSEPRFX", "HOUSENUMBER", "HOUSESUFFX", "STREETNAME"];

    var num = dojo.byId('inNum').value;
    var street = dojo.byId('inStreet').value;
    if ((num == "") && (street == "")) {
        alert('Please enter number and/or street.');
        return;
    }

    var strWhere = "";

    dojo.byId("info").innerHTML = "Searching...";

    if (num != "") {
        strWhere += "(     CAST(housenumber AS VARCHAR(20)) LIKE LTRIM(RTRIM('" + num + "')) + '%'"
                      + " OR houseprfx + '-' + CAST(housenumber AS VARCHAR(20)) LIKE LTRIM(RTRIM('" + num + "')) + '%' "
                      + " OR houseprfx + '-' + CAST(housenumber AS VARCHAR(20)) + ' ' + housesuffx LIKE LTRIM(RTRIM('" + num + "')) + '%' "
                      + " OR CAST(housenumber AS VARCHAR(20)) + housesuffx LIKE LTRIM(RTRIM('" + num + "')) + '%' "
                      + " OR CAST(housenumber AS VARCHAR(20)) + ' ' + housesuffx LIKE LTRIM(RTRIM('" + num + "')) + '%')";
    }

    if (street != "") {
        if (strWhere != "") strWhere += " AND ";
        strWhere += "(       (STREETNAME LIKE '%' + LTRIM(RTRIM('" + street + "')) + '%') "
                      + " OR (STREETNAME LIKE '%' + REPLACE(LTRIM(RTRIM('" + street + "')), ' ', '') + '%'))";
    }
    dojo.byId("info").innerHTML = "Searching...";
    query.where = strWhere;

    //execute query
    queryTask.execute(query, showResults);
}

function parkSearch() {
    queryTask = new esri.tasks.QueryTask("http://gis.hicentral.com/ArcGIS/rest/services/OperParks/MapServer/4");
    query.outFields = ["LINK_ID", "PARK_NAME"];

    var park = document.getElementById('ddlPark').options[document.getElementById('ddlPark').selectedIndex].value;
    dojo.byId("info").innerHTML = "Searching...";

    query.where = "park_name = LTRIM(RTRIM('" + park + "'))";

    queryTask.execute(query, showResults);
}

function showResults(results) {
    if (results.features.length == 0) {
        dojo.byId("info").innerHTML = "No Records found.";
        return;
    }

    var s = "";
    if (results.features.length == 1) {
        s += "<b>" + results.features.length + " Record found.</b><br />";
    }
    else {
        s += "<b>" + results.features.length + " Records found.</b><br />";
    }

    if (results.features.length > 10) {
        s += "<b>(Only first 10 shown. Please refine search.)</b><br />";
    }

    var sel = document.getElementById('selectSearchType');

    for (var i = 0, il = results.features.length; i < il; i++) {
        var featureAttributes = results.features[i].attributes;
        var url = "";
        var addr = "";
        addr = getAddress(featureAttributes["HOUSEPRFX"], featureAttributes["HOUSENUMBER"], featureAttributes["HOUSESUFFX"], featureAttributes["STREETNAME"]);
        if (sel.options[sel.selectedIndex].value == "Property") {
            url = "http://gis.hicentral.com/pubwebsite/TMKDetails.aspx?tmk=" + featureAttributes["TMK"] + "&lyrLst=0|0|0|0|0|0|0|0|0|0|0|0|0|13|0|15|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|lblsaerial2008&unit=0000&address=" + addr;
            s = s + "<a href=\"" + url + "\" target=\"_blank\">" + featureAttributes["TMK"] + ": " + addr + "</a><br />";
        }
        else if (sel.options[sel.selectedIndex].value == "Refuse") {
            url = "http://gis.hicentral.com/fastmaps/env/EnvDetails.aspx?tmk=" + featureAttributes["TMK"] + "&lyrLst=1|1|1|1|0|0|0|lblsaerial2008&address=" + addr;
            s = s + "<a href=\"" + url + "\" target=\"_blank\">" + featureAttributes["TMK"] + ": " + addr + "</a><br />";
        }
        else if (sel.options[sel.selectedIndex].value == "PublicSafety") {
            url = "http://gis.hicentral.com/FastMaps/PublicSafety/PSDetails.aspx?tmk=" + featureAttributes["TMK"] + "&lyrLst=1|1|1|1|1|1|1|lblsaerial2008&address=" + addr;
            s = s + "<a href=\"" + url + "\" target=\"_blank\">" + featureAttributes["TMK"] + ": " + addr + "</a><br />";
        }
        else if (sel.options[sel.selectedIndex].value == "Park") {
            url = "http://gis.hicentral.com/fastmaps/parks/ParkDetails.aspx?id=" + featureAttributes["LINK_ID"] + "&lyrLst=1|0|0|0|1|lblsaerial2008";
            s = s + "<a href=\"" + url + "\" target=\"_blank\">" + featureAttributes["PARK_NAME"] + "</a><br />";
        }


        if ((i == 0) && (results.features.length == 1)) {
            window.open(url, '_blank');
        }

        if (i == 9) break; //only show first 10
    }
    dojo.byId("info").innerHTML = s;
    dojo.byId("infoBox").style.visibility = "visible";
    
}
function getAddress(houseprfx, housenumber, housesuffx, streetname) {
    var address = "";
    if ((houseprfx != undefined) && (houseprfx != " ")) address = houseprfx + '-';
    if (housenumber != undefined) address += housenumber + " ";
    if (housesuffx != undefined) address += housesuffx + " ";
    if (streetname != undefined) address += streetname;
    return address;
}

dojo.addOnLoad(init);

