dojo.require("dojo.currency");

var _initialAccordion = true;
var graphic;
var zoneLink = "http://www.lebanontn.org/departments/planning/zoningdocs/";
function showFeature3(keys, feature, openinfoWindow){
    showLoading();
    try {
        var photoName = insertIntoHtmlURL("http://statedetails.geopowered.com/tn.Wilson/StateDetails.aspx");
        map.graphics.remove(graphic);
        
        var infoTemplate = new esri.InfoTemplate();
        infoTemplate.setTitle(feature.attributes[keys.gpdata_par]);
        infoTemplate.setContent("<table><tr><td><div class='tableTitle'>Property Address</div>${FullAddr}</td></tr>" +
        "<tr><td><div class='tableTitle'>Property ID</div>${" +
        keys.FullAddr +
        "}</td></tr>" +
        "<tr><td><div class='tableTitle'>Owner Name</div>${" +
        keys.gpdata_own +
        "}</td></tr></table>");
        
        var highlightSymbol = new esri.symbol.SimpleFillSymbol(esri.symbol.SimpleFillSymbol.STYLE_SOLID, new esri.symbol.SimpleLineSymbol(esri.symbol.SimpleLineSymbol.STYLE_SOLID, new dojo.Color([0, 0, 255]), 3), new dojo.Color([125, 125, 125, 0.35]));
        graphic = new esri.Graphic(feature.geometry, highlightSymbol, feature.attributes, infoTemplate);
        
        map.graphics.add(graphic);
        var GISLINK = graphic.attributes.gislink;
        var feat = _searchResultFeature; //Stored after owner search result is chosen.
        //Retrieve data for state details link
        var _conum = graphic.attributes.conum + " ";
        var _cmap = graphic.attributes.cmap + " ";
        var _gp = graphic.attributes.gp + " ";
        var _parcel = graphic.attributes.parcel + " ";
        var _si = graphic.attributes.si + " ";
        var _pmap = graphic.attributes.map + " ";
        var _taxyr = graphic.attributes.taxyr + " ";
        var _di = graphic.attributes.di + " ";
        
        //Remove '.' from parcel string
        var _parcel2 = _parcel.replace(".", "") + " ";
        
        //Get the necessary values for the URL string
        var conum = _conum.slice(0, 3);
        var cmap = _cmap.slice(0, 5);
        var gp = _gp.slice(0, 2);
        var parcel = _parcel2.slice(0, 5);
        var si = _si.slice(0, 3);
        var pmap = _pmap.slice(0, 5);
        var taxyr = _taxyr.slice(0, 1);
        var di = _di.slice(0, 2);
        
        //First character either A or R = appr or reappr
        var _urlString = "A" + conum + cmap + gp + parcel + " " + si + pmap + taxyr + "A" + di;
        
        var popupContent = "<table><tr><td><div class='tableTitle nopoint'>Property Address</div><div class='tableValue'>" + graphic.attributes[keys.propaddr] + "</div></td></tr>";
        popupContent += "<tr><td><div class='tableTitle nopoint'>Parcel ID</div><div class='tableValue'>" + graphic.attributes[keys.gpdata_par] + "</div></td></tr>";
        popupContent += "<tr><td><div class='tableTitle nopoint'>Owner Name</div><div class='tableValue'>" + graphic.attributes[keys.gpdata_own] + "</div></td></tr></table>";
        
        var content = "<table><tr><td><div class='tableTitle nopoint'>Owner Name</div><div class='tableValue'>" + graphic.attributes.owner + "</div></td></tr>";
        content += "<tr><td> <div class='tableTitle nopoint'>Owner 2</div><div class='tableValue'>" + graphic.attributes.owner2 + "</div></td></tr>";
        content += "<tr><td> <div class='tableTitle nopoint'>Property Address</div><div class='tableValue'>" + graphic.attributes.propaddr + "</div></td></tr>";
        content += "<tr><td> <div class='tableTitle nopoint'>Parcel ID</div><div class='tableValue'>" + graphic.attributes.parcelid + "</div></td></tr>";
        content += "<tr><td> <div class='tableTitle nopoint'>Assessed Value</div><div class='tableValue'>" +
        (graphic.attributes[keys.gpdata_cor] ? dojo.currency.format(graphic.attributes[keys.gpdata_cor], {
            currency: "USD",
            symbol: "$",
            round: 0
        }) : "Unavailable") +
        "</div></td></tr>";
        content += "<tr><td> <div class='tableTitle nopoint'>Assessment Details</div><div class='tableValue'><a href=\"javascript:void(0)\" onclick=\"window.open('" + photoName + "?mradParcelID=" + _urlString + "')\">Click Here</a></div></td></tr>";
        
        map.infoWindow.setTitle(graphic.attributes[keys.gpdata_par]);
        map.infoWindow.setContent(popupContent);
        
        var ext = graphic.geometry.getExtent();
        var evt = ext.getCenter();
        map.setExtent(graphic.geometry.getExtent().expand(1.5));
        
        if (openinfoWindow === true) {
            map.infoWindow.show(evt, map.getInfoWindowAnchor(evt));
        }
        
        GetVotingAndAreaInfo(evt);
        
        parent.document.getElementById("SearchResults").innerHTML = content;
        
        map.infoWindow.resize(265, 200);
        map.infoWindow.show(evt, map.getInfoWindowAnchor(evt));
        
        if (_initialAccordion === true) {
            doSlider();
            _initialAccordion = false;
        }
        initializeGSV(evt);
        ZoomToVEMap(evt);
        geReZoom(evt);
        
        switchTab(1);
        
        hideLoading();
    } 
    catch (e) {
        hideLoading();
        console.log(e.message);
    }
}

//
//start returning results from ID'd features
//

function addToMap(idResults, evt){

    //5
    censusBlockResults = {
        displayFieldName: null,
        features: []
    };
    //6
    censusBlockGroupResults = {
        displayFieldName: null,
        features: []
    };
    //7
    chipperResults = {
      displayFieldName: null,
      features: []
    };
    //10
    councilWardResults = {
        displayFieldName: null,
        features: []
    };
    //13
    firmPanelResults = {
        displayFieldName: null,
        features: []
    };
    //15
    futureLandUseResults = {
        displayFieldName: null,
        features: []
    };
    //18
    mosquitoResults = {
        displayFieldName: null,
        features: []
    };
    //21
    sanitationResults = {
        displayFieldName: null,
        features: []
    };
    //24
    pudResults = {
        displayFieldName: null,
        features: []
    };
    //25
    zoningResults = {
        displayFieldName: null,
        features: []
    };
    //27
    elemResults = {
        displayFieldName: null,
        features: []
    };
    //28
    lssdElemResults = {
        displayFieldName: null,
        features: []
    };
    //29
    middleResults = {
        displayFieldName: null,
        features: []
    };
    //30
    lssdMiddleResults = {
        displayFieldName: null,
        features: []
    };
    //31
    highResults = {
        displayFieldName: null,
        features: []
    };
    
    for (var i = 0, il = idResults.length; i < il; i++) {
        var idResult = idResults[i];
        if (idResult.layerId === 5) {
            if (!censusBlockResults.displayFieldName) {
                censusBlockResults.displayFieldName = idResult.displayFieldName;
            }
            censusBlockResults.features.push(idResult.feature);
        }
        else 
            if (idResult.layerId === 6) {
                if (!censusBlockGroupResults.displayFieldName) {
                    censusBlockGroupResults.displayFieldName = idResult.displayFieldName;
                }
                censusBlockGroupResults.features.push(idResult.feature);
            }
              else 
                if (idResult.layerId === 7) {
                    if (!chipperResults.displayFieldName) {
                        chipperResults.displayFieldName = idResult.displayFieldName;
                    }
                    chipperResults.features.push(idResult.feature);
                }          
            
            
            
            
            else 
                if (idResult.layerId === 10) {
                    if (!councilWardResults.displayFieldName) {
                        councilWardResults.displayFieldName = idResult.displayFieldName;
                    }
                    councilWardResults.features.push(idResult.feature);
                }
                else 
                    if (idResult.layerId === 13) {
                        if (!firmPanelResults.displayFieldName) {
                            firmPanelResults.displayFieldName = idResult.displayFieldName;
                        }
                        firmPanelResults.features.push(idResult.feature);
                    }
                    else 
                        if (idResult.layerId === 15) {
                            if (!futureLandUseResults.displayFieldName) {
                                futureLandUseResults.displayFieldName = idResult.displayFieldName;
                            }
                            futureLandUseResults.features.push(idResult.feature);
                        }
                        else 
                            if (idResult.layerId === 18) {
                                if (!mosquitoResults.displayFieldName) {
                                    mosquitoResults.displayFieldName = idResult.displayFieldName;
                                }
                                mosquitoResults.features.push(idResult.feature);
                            }
                            else 
                                if (idResult.layerId === 21) {
                                    if (!sanitationResults.displayFieldName) {
                                        sanitationResults.displayFieldName = idResult.displayFieldName;
                                    }
                                    sanitationResults.features.push(idResult.feature);
                                }
                                        else 
                                            if (idResult.layerId === 24) {
                                                if (!pudResults.displayFieldName) {
                                                    pudResults.displayFieldName = idResult.displayFieldName;
                                                }
                                                pudResults.features.push(idResult.feature);
                                            }
                                            else 
                                                if (idResult.layerId === 25) {
                                                    if (!zoningResults.displayFieldName) {
                                                        zoningResults.displayFieldName = idResult.displayFieldName;
                                                    }
                                                    zoningResults.features.push(idResult.feature);
                                                }
                                                else 
                                                    if (idResult.layerId === 27) {
                                                        if (!elemResults.displayFieldName) {
                                                            elemResults.displayFieldName = idResult.displayFieldName;
                                                        }
                                                        elemResults.features.push(idResult.feature);
                                                    }
                                                    else 
                                                        if (idResult.layerId === 28) {
                                                            if (!lssdElemResults.displayFieldName) {
                                                            
                                                                lssdElemResults.displayFieldName = idResult.displayFieldName;
                                                            }
                                                            lssdElemResults.features.push(idResult.feature);
                                                        }
                                                        else 
                                                            if (idResult.layerId === 29) {
                                                                if (!middleResults.displayFieldName) {
                                                                    middleResults.displayFieldName = idResult.displayFieldName;
                                                                }
                                                                middleResults.features.push(idResult.feature);
                                                            }
                                                            else 
                                                                if (idResult.layerId === 30) {
                                                                    if (!lssdMiddleResults.displayFieldName) {
                                                                        lssdMiddleResults.displayFieldName = idResult.displayFieldName;
                                                                    }
                                                                    lssdMiddleResults.features.push(idResult.feature);
                                                                }
                                                                else 
                                                                    if (idResult.layerId === 31) {
                                                                        if (!highResults.displayFieldName) {
                                                                            highResults.displayFieldName = idResult.displayFieldName;
                                                                        }
                                                                        highResults.features.push(idResult.feature);
                                                                    }
    }//end for loop
    var census1 = layerTabContent(censusBlockResults, "censusBlockResults"); //5
    var census2 = layerTabContent(censusBlockGroupResults, "censusBlockGroupResults"); //6
    var chipperSvcResults = layerTabContent(chipperResults, "chipperResults"); //7
    var councilResults = layerTabContent(councilWardResults, "councilWardResults"); //10
    var firmPanel = layerTabContent(firmPanelResults, "firmPanelResults"); //13
    var fluResults = layerTabContent(futureLandUseResults, "futureLandUseResults"); //15
    var mosqResults = layerTabContent(mosquitoResults, "mosquitoResults"); //18
    var saniResults = layerTabContent(sanitationResults, "sanitationResults"); //21
    var pudResult = layerTabContent(pudResults, "pudResults"); //24
    var zoningResult = layerTabContent(zoningResults, "zoningResults"); //25
    var elem = layerTabContent(elemResults, "elemResults"); //27
    var lssdElem = layerTabContent(lssdElemResults, "lssdElemResults"); //28
    var middle = layerTabContent(middleResults, "middleResults"); //29
    var lssdMiddle = layerTabContent(lssdMiddleResults, "lssdMiddleResults"); //30
    var high = layerTabContent(highResults, "highResults"); //31
    parent.document.getElementById("censusBlockTab").innerHTML = census1; //5
    parent.document.getElementById("censusBlockGroupTab").innerHTML = census2; //6
    parent.document.getElementById("chipperTab").innerHTML = chipperSvcResults; //7
    parent.document.getElementById("councilTab").innerHTML = councilResults; //10
    parent.document.getElementById("firmPanelTab").innerHTML = firmPanel; //13
    parent.document.getElementById("fluTab").innerHTML = fluResults; //15
    parent.document.getElementById("mosquitoTab").innerHTML = mosqResults; //18
    parent.document.getElementById("sanitationTab").innerHTML = saniResults; //21
    parent.document.getElementById("zoningPudTab").innerHTML = pudResult; //24
    parent.document.getElementById("zoningTab").innerHTML = zoningResult; //25
    parent.document.getElementById("elemTab").innerHTML = elem; //27
    parent.document.getElementById("lssdElemTab").innerHTML = lssdElem; //28
    parent.document.getElementById("middleTab").innerHTML = middle; //29
    parent.document.getElementById("lssdMiddleTab").innerHTML = lssdMiddle; //30
    parent.document.getElementById("highTab").innerHTML = high; //31
} //end addToMap function
function layerTabContent(layerResults, layerName){
    var content = "";
    switch (layerName) {
        //5
        case "censusBlockResults":
            content += "<table><tr><td><div class='tableTitle 5' onclick='forceOnLayer(5);'>Census Block</div>";
            for (var i = 0, il = layerResults.features.length; i < il; i++) {
                content += "<div class='tableValue'>" + layerResults.features[i].attributes.STFID + "</div>";
            }
            content += "</td></tr></table>";
            break;
        //6
        case "censusBlockGroupResults":
            content += "<table><tr><td><div class='tableTitle 6' onclick='forceOnLayer(6);'>Census Block Group</div>";
            for (var i = 0, il = layerResults.features.length; i < il; i++) {
                content += "<div class='tableValue'>" + layerResults.features[i].attributes.STFID + "</div>";
            }
            content += "</td></tr></table>";
            break;
        //7
        case "chipperResults":
            content += "<table><tr><td><div class='tableTitle 7' onclick='forceOnLayer(7);'>Chipper Zone</div>";
            for (var i = 0, il = layerResults.features.length; i < il; i++) {
                content += "<div class='tableValue'>" + layerResults.features[i].attributes.NAME + "</div>";
            }
            content += "</td></tr></table>";
            break;
        //10
        case "councilWardResults":
            content += "<table><tr><td><div class='tableTitle 10' onclick='forceOnLayer(10);'>Council Ward</div>";
            for (var i = 0, il = layerResults.features.length; i < il; i++) {
                content += "<div class='tableValue'>" + "Ward: " + layerResults.features[i].attributes.WARD + "</div>";
                content += "<div class='tableValue'>" + "Councillor: " + layerResults.features[i].attributes.NAME + "</div>";
            }
            content += "</td></tr></table>";
            break;
        //13
        case "firmPanelResults":
            content += "<table><tr><td><div class='tableTitle 13' onclick='forceOnLayer(13);'>DFIRM Panel</div>";
            for (var i = 0, il = layerResults.features.length; i < il; i++) {
                content += "<div class='tableValue'>" + layerResults.features[i].attributes.FIRM_PAN + "</div>";
                content += "<div class='tableValue'>" + "Effective Date: " + layerResults.features[i].attributes.EFF_DATE + "</div>";
            }
            content += "</td></tr></table>";
            break;
            
        //15
        case "futureLandUseResults":
            content += "<table><tr><td><div class='tableTitle 15' onclick='forceOnLayer(15);'>Future Land Use</div>";
            for (var i = 0, il = layerResults.features.length; i < il; i++) {
                content += "<div class='tableValue'>" + layerResults.features[i].attributes.WSA_FLU + "</div>";
            }
            content += "</td></tr></table>";
            break;
        //18
        case "mosquitoResults":
            if (layerResults && layerResults.features && layerResults.features.length > 0) {
                content += "<table><tr><td><div class='tableTitle 18' onclick='forceOnLayer(18);'>Mosquito Spraying as Authorized</div>";
                for (var i = 0, il = layerResults.features.length; i < il; i++) {
                    content += "<div class='tableValue'>" + layerResults.features[i].attributes.NAME + "</div>";
                }
                content += "</td></tr></table>";
            }
            else {
                content += "<table><tr><td><div class='tableTitle 18'>Mosquito Spraying as Authorized</div>";
                content += "<div class='tableValue'>Property not located within </br> Mosquito Spray Zone</div>";
            }
            break;
        //21
        case "sanitationResults":
            content += "<table><tr><td><div class='tableTitle 21' onclick='forceOnLayer(21);'>Sanitation Pick Up Day</div>";
            for (var i = 0, il = layerResults.features.length; i < il; i++) {
                content += "<div class='tableValue'>" + layerResults.features[i].attributes.NAME + "</div>";
            }
            content += "</td></tr></table>";
            break;
        //24
        case "pudResults":
            if (layerResults && layerResults.features && layerResults.features.length > 0) {
                content += "<table><tr><td><div class='tableTitle 24' onclick='forceOnLayer(24);'>Overlay</div>";
                for (var i = 0, il = layerResults.features.length; i < il; i++) {
                    content += "<div class='tableValue'>" + layerResults.features[i].attributes.PUD_NAME + "</div>";
                }
                content += "</td></tr></table>";
            }
            else {
                content += "<table><tr><td><div class='tableTitle 24'>Overlay</div>";
                content += "<div class='tableValue'>Contact Planning Department </br> For Overlay Details</div>";
            }
            break;
        //25
        case "zoningResults":
            content += "<table><tr><td><div class='tableTitle 25' onclick='forceOnLayer(25);'>Zoning</div>";
            for (var i = 0, il = layerResults.features.length; i < il; i++) {
                var zoneLC = layerResults.features[i].attributes.ZONE.toLocaleLowerCase();//letters need to be lower case for the links to work
                content += "<div class='tableValue'>" + layerResults.features[i].attributes.ZONE + "</div>";
                content += "<div class='tableValue'><a href=\"javascript:void(0)\" onclick=\"window.open('" + zoneLink + zoneLC + ".pdf" + "')\">Zone Description</a></div>";
            }
            content += "</td></tr></table>";
            break;
        //27
        case "elemResults":
            content += "<table><tr><td><div class='tableTitle 27' onclick='forceOnLayer(27);'>Elementary School</div>";
            for (var i = 0, il = layerResults.features.length; i < il; i++) {
                content += "<div class='tableValue'>" + layerResults.features[i].attributes.ZONE_ + "</div>";
            }
            content += "</td></tr></table>";
            break;
        //28
        case "lssdElemResults":
            if (layerResults && layerResults.features && layerResults.features.length > 0) {
                content += "<table><tr><td><div class='tableTitle 28' onclick='forceOnLayer(28);'>LSSD Elementary School</div>";
                for (var i = 0, il = layerResults.features.length; i < il; i++) {
                    content += "<div class='tableValue'>" + layerResults.features[i].attributes.NAME + "</div>";
                }
                content += "</td></tr></table>";
            }
            else {
                content += "<table><tr><td><div class='tableTitle 28'>LSSD Middle School</div>";
                content += "<div class='tableValue'>Property not located within </br> Lebanon Special School District</div>";
            }
            break;
        //29
        case "middleResults":
            content += "<table><tr><td><div class='tableTitle 29' onclick='forceOnLayer(29);'>Middle School</div>";
            for (var i = 0, il = layerResults.features.length; i < il; i++) {
                content += "<div class='tableValue'>" + layerResults.features[i].attributes.ZONE_ + "</div>";
            }
            content += "</td></tr></table>";
            break;
        //30
        case "lssdMiddleResults":
            if (layerResults && layerResults.features && layerResults.features.length > 0) {
                content += "<table><tr><td><div class='tableTitle 30' onclick='forceOnLayer(30);'>LSSD Middle School</div>";
                for (var i = 0, il = layerResults.features.length; i < il; i++) {
                    content += "<div class='tableValue'>" + layerResults.features[i].attributes.NAME + "</div>";
                }
                content += "</td></tr></table>";
            }
            else {
                content += "<table><tr><td><div class='tableTitle 30'>LSSD Middle School</div>";
                content += "<div class='tableValue'>Property not located within </br> Lebanon Special School District</div>";
            }
            break;
        //31
        case "highResults":
            content += "<table><tr><td><div class='tableTitle 31' onclick='forceOnLayer(31);'>High School</div>";
            for (var i = 0, il = layerResults.features.length; i < il; i++) {
                content += "<div class='tableValue'>" + layerResults.features[i].attributes.ZONE_ + "</div>";
            }
            content += "</td></tr></table>";
            break;
    }
    return content;
}

