﻿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("--"); }
		else if (activeStats.ChartEncoded)
			$j(".activeTable img").attr("src", 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("--"); }
		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(tabIDs).index(tabID) : selectedTabs.sold = $j(tabIDs).index(tabID); renderStats();
	} 
	};
} ();