dojo.require("dojo.currency");

var _initialAccordion = true;
var graphic;
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'>Property Address</div><div class='tableValue'>" + graphic.attributes[keys.propaddr] + "</div></td></tr>";
        content += "<tr><td> <div class='tableTitle nopoint'>Parcel ID</div><div class='tableValue'>" + graphic.attributes[keys.gpdata_par] + "</div></td></tr>";
        content += "<tr><td> <div class='tableTitle nopoint'>Owner Name</div><div class='tableValue'>" + graphic.attributes[keys.gpdata_own] + "</div></td></tr>";
        content += "<tr><td> <div class='tableTitle nopoint'>Owner Name</div><div class='tableValue'>" + graphic.attributes[keys.gpdata_own2] + "</div></td></tr>";
        content += "<tr><td> <div class='tableTitle nopoint'>County Community</div><div class='tableValue'>" + graphic.attributes[keys.CITY] + "</div></td></tr>";
        content += "<tr><td> <div class='tableTitle nopoint'>Use Description</div><div class='tableValue'>" + graphic.attributes[keys.gpdata_pt_] + "</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 Feaatures...
 */
function addToMap(idResults, evt){
    //7
    censusBlockResults = {
        displayFieldName: null,
        features: []
    };
    //8
    censusBlockGroupResults = {
        displayFieldName: null,
        features: []
    };
    //9
    commissionResults = {
        displayFieldName: null,
        features: []
    };
    //11
    firmPanelResults = {
        displayFieldName: null,
        features: []
    };
    //13
    schoolboardResults = {
        displayFieldName: null,
        features: []
    };
    //14
    soilResults = {
        displayFieldName: null,
        features: []
    };
    //16
    houseResults = {
        displayFieldName: null,
        features: []
    };
    //17
    senateResults = {
        displayFieldName: null,
        features: []
    };
    //18
    tazResults = {
        displayFieldName: null,
        features: []
    };
    //20
    watertownZoningResults = {
      displayFieldName: null,
      features: []
    };
    //21
    wilsonZoningResults = {
        displayFieldName: null,
        features: []
    };
    //23
    elemResults = {
        displayFieldName: null,
        features: []
    };
    //24
    lssdElemResults = {
        displayFieldName: null,
        features: []
    };
    //25
    middleResults = {
        displayFieldName: null,
        features: []
    };
    //26
    lssdMiddleResults = {
        displayFieldName: null,
        features: []
    };
    //27
    highResults = {
        displayFieldName: null,
        features: []
    };
    for (var i = 0, il = idResults.length; i < il; i++) {
        var idResult = idResults[i];
        
        if (idResult.layerId === 7) {
            if (!censusBlockResults.displayFieldName) {
                censusBlockResults.displayFieldName = idResult.displayFieldName;
            }
            censusBlockResults.features.push(idResult.feature);
        }
        else 
            if (idResult.layerId === 8) {
                if (!censusBlockGroupResults.displayFieldName) {
                    censusBlockGroupResults.displayFieldName = idResult.displayFieldName;
                }
                censusBlockGroupResults.features.push(idResult.feature);
            }
            else 
                if (idResult.layerId === 9) {
                    if (!commissionResults.displayFieldName) {
                        commissionResults.displayFieldName = idResult.displayFieldName;
                    }
                    commissionResults.features.push(idResult.feature);
                }
                else 
                    if (idResult.layerId === 11) {
                        if (!firmPanelResults.displayFieldName) {
                            firmPanelResults.displayFieldName = idResult.displayFieldName;
                        }
                        firmPanelResults.features.push(idResult.feature);
                    }
                    else 
                        if (idResult.layerId === 13) {
                            if (!schoolboardResults.displayFieldName) {
                                schoolboardResults.displayFieldName = idResult.displayFieldName;
                            }
                            schoolboardResults.features.push(idResult.feature);
                        }
                        else 
                            if (idResult.layerId === 14) {
                                if (!soilResults.displayFieldName) {
                                    soilResults.displayFieldName = idResult.displayFieldName;
                                }
                                soilResults.features.push(idResult.feature);
                            }
                            else 
                                if (idResult.layerId === 16) {
                                    if (!houseResults.displayFieldName) {
                                        houseResults.displayFieldName = idResult.displayFieldName;
                                    }
                                    houseResults.features.push(idResult.feature);
                                }
                                else 
                                    if (idResult.layerId === 17) {
                                        if (!senateResults.displayFieldName) {
                                            senateResults.displayFieldName = idResult.displayFieldName;
                                        }
                                        senateResults.features.push(idResult.feature);
                                    }
                                    else 
                                        if (idResult.layerId === 18) {
                                            if (!tazResults.displayFieldName) {
                                                tazResults.displayFieldName = idResult.displayFieldName;
                                            }
                                            tazResults.features.push(idResult.feature);
                                        }
                                                                            else 
                                        if (idResult.layerId === 20) {
                                            if (!watertownZoningResults.displayFieldName) {
                                                watertownZoningResults.displayFieldName = idResult.displayFieldName;
                                            }
                                            watertownZoningResults.features.push(idResult.feature);
                                        }
                                        else 
                                            if (idResult.layerId === 21) {
                                                if (!wilsonZoningResults.displayFieldName) {
                                                    wilsonZoningResults.displayFieldName = idResult.displayFieldName;
                                                }
                                                wilsonZoningResults.features.push(idResult.feature);
                                            }
                                            else 
                                                if (idResult.layerId === 23) {
                                                    if (!elemResults.displayFieldName) {
                                                        elemResults.displayFieldName = idResult.displayFieldName;
                                                    }
                                                    elemResults.features.push(idResult.feature);
                                                }
                                                else 
                                                    if (idResult.layerId === 24) {
                                                        if (!lssdElemResults.displayFieldName) {
                                                        
                                                            lssdElemResults.displayFieldName = idResult.displayFieldName;
                                                        }
                                                        lssdElemResults.features.push(idResult.feature);
                                                    }
                                                    else 
                                                        if (idResult.layerId === 25) {
                                                            if (!middleResults.displayFieldName) {
                                                                middleResults.displayFieldName = idResult.displayFieldName;
                                                            }
                                                            middleResults.features.push(idResult.feature);
                                                        }
                                                        else 
                                                            if (idResult.layerId === 26) {
                                                                if (!lssdMiddleResults.displayFieldName) {
                                                                    lssdMiddleResults.displayFieldName = idResult.displayFieldName;
                                                                }
                                                                lssdMiddleResults.features.push(idResult.feature);
                                                            }
                                                            else 
                                                                if (idResult.layerId === 27) {
                                                                    if (!highResults.displayFieldName) {
                                                                        highResults.displayFieldName = idResult.displayFieldName;
                                                                    }
                                                                    highResults.features.push(idResult.feature);
                                                                }
    }
    var census1 = layerTabContent(censusBlockResults, "censusBlockResults"); //7
    var census2 = layerTabContent(censusBlockGroupResults, "censusBlockGroupResults"); //8  
    var commission = layerTabContent(commissionResults, "commissionResults"); //9
    var firmPanel = layerTabContent(firmPanelResults, "firmPanelResults"); //11
    var schoolboard = layerTabContent(schoolboardResults, "schoolboardResults"); //13
    var soil = layerTabContent(soilResults, "soilResults"); //14
    var house = layerTabContent(houseResults, "houseResults"); //16
    var senate = layerTabContent(senateResults, "senateResults"); //17
    var taz = layerTabContent(tazResults, "tazResults"); //18
    var wtZoning = layerTabContent(watertownZoningResults, "watertownZoningResults"); //20
    var zoning = layerTabContent(wilsonZoningResults, "wilsonZoningResults"); //21
    var elem = layerTabContent(elemResults, "elemResults"); //22
    var lssdElem = layerTabContent(lssdElemResults, "lssdElemResults"); //24
    var middle = layerTabContent(middleResults, "middleResults"); //25
    var lssdMiddle = layerTabContent(lssdMiddleResults, "lssdMiddleResults"); //26 
    var high = layerTabContent(highResults, "highResults"); //27
    parent.document.getElementById("censusBlockTab").innerHTML = census1; //7  
    parent.document.getElementById("censusBlockGroupTab").innerHTML = census2; //8
    parent.document.getElementById("commDistTab").innerHTML = commission; //9
    parent.document.getElementById("firmPanelTab").innerHTML = firmPanel; //11
    parent.document.getElementById("schBoardTab").innerHTML = schoolboard; //13
    parent.document.getElementById("soilsTab").innerHTML = soil; //14
    parent.document.getElementById("houseTab").innerHTML = house; //16
    parent.document.getElementById("senateTab").innerHTML = senate; //17
    parent.document.getElementById("tazTab").innerHTML = taz; //18
    parent.document.getElementById("watertownZoningTab").innerHTML = wtZoning; //20
    parent.document.getElementById("wilsonZoningTab").innerHTML = zoning; //21
    parent.document.getElementById("elemTab").innerHTML = elem; //23
    parent.document.getElementById("lssdElemTab").innerHTML = lssdElem; //24
    parent.document.getElementById("middleTab").innerHTML = middle; //25
    parent.document.getElementById("lssdMiddleTab").innerHTML = lssdMiddle; //26
    parent.document.getElementById("highTab").innerHTML = high; //27
}

function layerTabContent(layerResults, layerName){
    var content = "";
    switch (layerName) {
        //7
        case "censusBlockResults":
            content += "<table><tr><td><div class='tableTitle 7' onclick='forceOnLayer(7);'>Census Block</div>";
            for (var i = 0, il = layerResults.features.length; i < il; i++) {
                content += "<div class='tableValue'>" + layerResults.features[i].attributes.STFID + "</div>";//TIM
            }
            content += "</td></tr></table>";
            break;
        //8
        case "censusBlockGroupResults":
            content += "<table><tr><td><div class='tableTitle 8' onclick='forceOnLayer(8);'>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;
        //9
        case "commissionResults":
            content += "<table><tr><td><div class='tableTitle 9' onclick='forceOnLayer(9);'>Commission District</div>";
            for (var i = 0, il = layerResults.features.length; i < il; i++) {
                content += "<div class='tableValue'>" + "District Number: " + layerResults.features[i].attributes.NAME + "</div>";
                content += "<div class='tableValue'>" + "Commissioner: " + layerResults.features[i].attributes.COM_NAME + "</div>";
            //content += "<td>" + layerResults.features[i].attributes['WEBSITE'] + "</td>";
            }
            content += "</td></tr></table>";
            break;
        //11
        case "firmPanelResults":
            content += "<table><tr><td><div class='tableTitle 11' onclick='forceOnLayer(11);'>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;
        //13
        case "schoolboardResults":
            content += "<table><tr><td><div class='tableTitle 13' onclick='forceOnLayer(13);'>School Board Representative</div>";
            for (var i = 0, il = layerResults.features.length; i < il; i++) {
                content += "<div class='tableValue'>" + layerResults.features[i].attributes.Name + "</div>";
                content += "<div class='tableValue'>" + layerResults.features[i].attributes.Member_Nam + "</div>";
            }
            content += "</td></tr></table>";
            break;
        //14
        case "soilResults":
            content += "<table><tr><td><div class='tableTitle 14' onclick='forceOnLayer(14);'>Soil Type</div>";
            for (var i = 0, il = layerResults.features.length; i < il; i++) {
                content += "<div class='tableValue'>" + layerResults.features[i].attributes.MUSYM + "</div>";
            }
            content += "</td></tr></table>";
            break;
        //16
        case "houseResults":
            content += "<table><tr><td><div class='tableTitle 16' onclick='forceOnLayer(16);'>Tennessee House District</div>";
            for (var i = 0, il = layerResults.features.length; i < il; i++) {
                content += "<div class='tableValue'>" + layerResults.features[i].attributes.Dist_Num + "</div>";
                content += "<div class='tableValue'>" + layerResults.features[i].attributes.Name + "</div>";
            }
            content += "</td></tr></table>";
            break;
        //17
        case "senateResults":
            content += "<table><tr><td><div class='tableTitle 17' onclick='forceOnLayer(17);'>Senate Representatives</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;
        //18
        case "tazResults":
            content += "<table><tr><td><div class='tableTitle 18' onclick='forceOnLayer(18);'>Traffic Analysis Zone</div>";
            for (var i = 0, il = layerResults.features.length; i < il; i++) {
                content += "<div class='tableValue'>" + layerResults.features[i].attributes.TRAFFICZON + "</div>";
            }
            content += "</td></tr></table>";
            break;
        //20
        case "watertownZoningResults":
            if (layerResults && layerResults.features && layerResults.features.length > 0) {
                content += "<table><tr><td><div class='tableTitle 20' onclick='forceOnLayer(20);'>Watertown Zoning</div>";
                for (var i = 0, il = layerResults.features.length; i < il; i++) {
                    content += "<div class='tableValue'>" + layerResults.features[i].attributes.ZONING + "</div>";
                }
                content += "</td></tr></table>";
            }
            else {
                content += "<table><tr><td><div class='tableTitle 21'>Watertown Zoning</div>";
                content += "<div class='tableValue'>Property not located within </br> Watertown Zoning Area</div>";
            }
            break;
        //21
        case "wilsonZoningResults":
            if (layerResults && layerResults.features && layerResults.features.length > 0) {
                content += "<table><tr><td><div class='tableTitle 21' onclick='forceOnLayer(21);'>Wilson County Zoning</div>";
                for (var i = 0, il = layerResults.features.length; i < il; i++) {
                    content += "<div class='tableValue'>" + layerResults.features[i].attributes.P_Zoning + "</div>";
                }
                content += "</td></tr></table>";
            }
            else {
                content += "<table><tr><td><div class='tableTitle 21'>Wilson County Zoning</div>";
                content += "<div class='tableValue'>Property not located within </br> Wilson County Zoning Area</div>";
            }
            break;
        //23
        case "elemResults":
            content += "<table><tr><td><div class='tableTitle 22' onclick='forceOnLayer(22);'>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;
        //24
        case "lssdElemResults":
            if (layerResults && layerResults.features && layerResults.features.length > 0) {
                content += "<table><tr><td><div class='tableTitle 23' onclick='forceOnLayer(23);'>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 23'>LSSD Elementary School</div>";
                content += "<div class='tableValue'>Property not located within </br> Lebanon Special School District</div>";
            }
            break;
        //25
        case "middleResults":
            content += "<table><tr><td><div class='tableTitle 24' onclick='forceOnLayer(24);'>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;
        //26
        case "lssdMiddleResults":
            if (layerResults && layerResults.features && layerResults.features.length > 0) {
                content += "<table><tr><td><div class='tableTitle 25' onclick='forceOnLayer(25);'>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 25'>LSSD Middle School</div>";
                content += "<div class='tableValue'>Property not located within </br> Lebanon Special School District</div>";
            }
            break;
        //27
        case "highResults":
            content += "<table><tr><td><div class='tableTitle 26' onclick='forceOnLayer(26);'>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;
}

