google.load("visualization", "1", { packages: ["gauge"] });

function drawChartGlobalEnergyGauge() {
    var data = new google.visualization.DataTable();
    data.addColumn('string', 'Label');
    data.addColumn('number', 'Value');
    data.addRows(1);
    data.setValue(0, 0, 'Watts');
    //var globalChartGUageoptions = { greenFrom: minPower, greenTo: valGreenTo, width: 300, height: 150, redFrom: valRedFrom, redTo: maxPower, yellowFrom: valYellowFrom, yellowTo: valYellowTo, minorTicks: 10, min: minPower, max: maxPower };
    var chart = new google.visualization.Gauge(document.getElementById('chart_GlobalEnergyGaugeAvgWatts'));
    //chart.draw(data, globalChartGUageoptions);

    setInterval(
                         function() {
                             var pwr = getGlobalPowerWatts();
                             
                             if (pwr == null) {
                                 pwr = new Array(1);
                                 pwr[0] = { 'user': 0, 'usage': 0 };
                             }

                             var usage = pwr.usage;
                             
                             var totalWattsUsed = 0;

                             for (var i = 0; i <= usage.length - 1; i++) {
                                 totalWattsUsed += usage[i].usage;
                             }
                             var avgWattsUsed = Math.round(totalWattsUsed)

                             var minPower = pwr.minPower;
                             var maxPower = pwr.maxPower;

                             var valGreenTo = minPower + (minPower * 0.4);
                             var valRedFrom = maxPower - (maxPower * 0.2);
                             var valYellowFrom = maxPower - (maxPower * 0.3);
                             var valYellowTo = maxPower - (maxPower * 0.2);

                             var globalChartGUageoptions = { greenFrom: minPower, greenTo: valGreenTo, width: 300, height: 150, redFrom: valRedFrom, redTo: maxPower, yellowFrom: valYellowFrom, yellowTo: valYellowTo, minorTicks: 10, min: minPower, max: maxPower };
                             data.setValue(0, 1, avgWattsUsed);
                             chart.draw(data, globalChartGUageoptions);


                             //                            data.setValue(0, 1, 60 + Math.round(20 * Math.random()));
                             //                            chart.draw(data, options);
                         },
                         1000);
    
}


function initGlobalUsage() {
    drawChartGlobalEnergyGauge();
    drawChartGlobalEnergyGaugeAvgUnits();

    //setInterval("drawChartGlobalEnergyGauge()", 1000);
    //setInterval("drawChartGlobalEnergyGaugeAvgUnits()", 1000);
}



function drawChartGlobalEnergyGaugeAvgUnits() {
    var data = new google.visualization.DataTable();
    data.addColumn('string', 'Label');
    data.addColumn('number', 'Value');
    data.addRows(1);
    data.setValue(0, 0, 'KW/H');
    var chart = new google.visualization.Gauge(document.getElementById('chart_GlobalEnergyGaugeAVGUnits'));
    setInterval(
                    function() {
                        var pwr = getGlobalUnitsLast60();
                        if (pwr == null || pwr.units == undefined)
                            return;
                        
                        var units = pwr.units;
                        var minPower = pwr.minPower;
                        var maxPower = pwr.maxPower;

                        var valGreenTo = minPower + (minPower * 0.4);
                        var valRedFrom = maxPower - (maxPower * 0.2);
                        var valYellowFrom = maxPower - (maxPower * 0.3);
                        var valYellowTo = maxPower - (maxPower * 0.2);
                        var globalChartGUageoptions = { greenFrom: minPower, greenTo: valGreenTo, width: 300, height: 150, redFrom: valRedFrom, redTo: maxPower, yellowFrom: valYellowFrom, yellowTo: valYellowTo, minorTicks: 10, min: minPower, max: maxPower };

                        data.setValue(0, 1, units);
                        chart.draw(data, globalChartGUageoptions);
                    },
                    1000);
}
