﻿var Sawbuck = window.Sawbuck || {}; Sawbuck.Renderer = function () {
    var _stats = null; var _idModifier = ""; var tabIDs = ["activeMedianListPrice", "activeDaysOnMarket", "activeTotalListings", "activeNewListings", "activePriceReductions", "soldContracts", "soldMedianSalesPrice", "soldDaysOnMarket", "soldTotalSales"]; var selectedTabs = { active: 0, sold: 6 }; function renderStats(stats, tabs) {
        stats = stats || _stats; tabs = tabs || selectedTabs; for (var t = 0; t < tabIDs.length; t++) {
            if (stats[t] && stats[t].RecentWeekValue) { $j("#" + tabIDs[t] + " .value").text(stats[t].RecentWeekValue); if (stats[t].ChangePercent4Weeks) { $j("#" + tabIDs[t] + " .percentage").text(stats[t].ChangePercent4Weeks).show(); } }
            else { $j("#" + tabIDs[t] + " .value").text("--"); $j("#" + tabIDs[t] + " .percentage").hide().text("--"); } 
        }
        var activeStats = stats[tabs.active]
        for (var k in activeStats) { activeStats[k] ? $j(".activeTable ." + k).text(activeStats[k]) : $j(".activeTable ." + k).text("--"); }
        if (!activeStats) { $j(".activeTable .odd, .activeTable .even").text("--"); $j(".activeTable img").attr("src", "/images/market_guide_default_chart.png"); }
        else if (activeStats.ChartEncoded) { $j(".activeTable img").attr("src", activeStats.ChartEncoded); console.log("Updating chart: ", activeStats.ChartEncoded); }
        else
            $j(".activeTable img").attr("src", "/images/market_guide_default_chart.png"); var recentSales = stats[tabs.sold]
        for (var k in recentSales) { recentSales[k] ? $j(".soldTable ." + k).text(recentSales[k]) : $j(".soldTable ." + k).text("--"); }
        if (!recentSales) { $j(".soldTable .odd, .soldTable .even").text("--"); $j(".soldTable img").attr("src", "/images/market_guide_default_chart.png"); }
        else if (recentSales.ChartEncoded)
            $j(".soldTable img").attr("src", recentSales.ChartEncoded)
        else
            $j(".soldTable img").attr("src", "/images/market_guide_default_chart.png"); var percentages = $j(".activeTable .percentage, .soldTable .percentage"); for (var i = 0; i < percentages.length; i++) {
            $j(percentages[i]).removeClass("positive").removeClass("negative"); if (percentages[i].innerHTML != "--") {
                var p = parseFloat($j(percentages[i]).text().replace(/%/, "")).format("1"); if (percentages[i].innerHTML.trim().startsWith("-")) { $j(percentages[i]).addClass("negative"); $j(percentages[i]).text(p + "%"); }
                else { $j(percentages[i]).addClass("positive"); $j(percentages[i]).text("+" + p + "%"); } 
            } 
        }
        _stats = stats;
    }; return { init: function (idModifier) { _idModifier = idModifier; }, render: function (stats) { return renderStats(stats); }, swapTabs: function (tab) {
        var tabID = tab.id; var category = tabID.match(/^active/) ? "active" : "sold"; $j("#" + category + "TabLabel").text($j("#" + tabID + " label").text()); if (tabID == "activeMedianListPrice" || tabID == "activeDaysOnMarket")
            $j(".maybeCurrent").text("Current"); else if (category == "active")
            $j(".maybeCurrent").text("Last 30 Days"); (category == "active") ? selectedTabs.active = $j(tab).index() : selectedTabs.sold = $j(tab).index() + 6; renderStats();
    } 
    };
} ();
