@using CarCareTracker.Helper
@inject IConfigHelper config
@inject ITranslationHelper translator
@model MPGForVehicleByMonth
@{
    var barGraphColors = StaticHelper.GetBarChartColors();
    var userConfig = config.GetUserConfig(User);
    var userLanguage = userConfig.UserLanguage;
}
@if (Model.CostData.Any(x => x.Cost > 0))
{

    <canvas id="bar-chart-mpg"></canvas>
    <script>
        renderChart();
        function renderChart() {
            var barGraphLabels = [];
            var barGraphData = [];
            //color gradient from high to low
            var barGraphColors = [];
            var useDarkMode = getGlobalConfig().useDarkMode;
        @foreach (CostForVehicleByMonth gasCost in Model.CostData)
        {
            @:barGraphLabels.push(decodeHTMLEntities("@gasCost.MonthName"));
            @:barGraphData.push(globalParseFloat('@gasCost.Cost'));
            var index = Model.SortedCostData.FindIndex(x => x.MonthName == gasCost.MonthName);
            @:barGraphColors.push('@barGraphColors[index]');
        }
                new Chart($("#bar-chart-mpg"), {
                    type: 'bar',
                    data: {
                        labels: barGraphLabels,
                        datasets: [
                            {
                                label: decodeHTMLEntities('@translator.Translate(userLanguage, "Fuel Mileage by Month")'),
                                backgroundColor: barGraphColors,
                                data: barGraphData
                            }
                        ]
                    },
                    options: {
                        plugins: {
                            title: {
                                display: true,
                                color: useDarkMode ? "#fff" : "#000",
                                text: decodeHTMLEntities('@($"{translator.Translate(userLanguage, "Fuel Mileage by Month")}({Model.Unit})")')
                            },
                            legend: {
                                display: false,
                                labels: {
                                    color: useDarkMode ? "#fff" : "#000"
                                }
                            }
                        },
                        scales: {
                            y: {
                                beginAtZero: true,
                                ticks: {
                                    color: useDarkMode ? "#fff" : "#000"
                                }
                            },
                            x: {
                                ticks: {
                                    color: useDarkMode ? "#fff" : "#000"
                                }
                            }
                        }
                    }
                });
        }
    </script>
}
else
{
    <div class="text-center">
        <h4>@translator.Translate(userLanguage,"No data found, insert/select some data to see visualizations here.")</h4>
    </div>
}