﻿/* Flot
********************/
var datasets2;

function plotAccordingToChoicesHome() {
    var data = [];
    if (datasets2 !== null) {
        $("#SensorsHome").find("input:checked").each(function() {
            var key = $(this).attr("name").replace(/ /g, "");
            if (key && datasets2[key]) {
                data.push(datasets2[key]);
            }
        });
        plotAllHome(data);
    }
}

function plotAllHome(data) {

    var plot = $.plot($("#placeholderHome"), data, options);

    var overview = $.plot($("#overviewHome"), data, Ooptions);

    // now connect the two

    $("#placeholderHome").bind("plotselected", function(event, ranges) {
        // do the zooming
        plot = $.plot($("#placeholderHome"), data,
			$.extend(true, {}, options, {
			    xaxis: { min: ranges.xaxis.from, max: ranges.xaxis.to },
			    yaxis: { min: ranges.yaxis.from, max: ranges.yaxis.to },
			    points: { show: true }
			}));

        // don't fire event on the overviewHome to prevent eternal loop
        overview.setSelection(ranges, true);
    });

    $("#overviewHome").bind("plotselected", function(event, ranges) {
        plot.setSelection(ranges);
    });

    $("#clearSelectionHome").click(function() {
        overview.clearSelection();
        plotAccordingToChoicesHome();
    });
}

function onDataReceivedHome(e) {
    var loader = $("#loader");
    if (e) {
        try {
            datasets2 = eval(e);
            loader.after("<div id=\"overviewHome\" /><div id=\"placeholderHome\" />").hide();
            $('#SensorsHome tbody').empty();
            for (var i in datasets2) {
                $('#SensorsHome tbody').append('<tr>' +
							'<td><input type="checkbox" name="' + datasets2[i].label +
                               '" checked="checked" >' + datasets2[i].label + '</input></td>' +
							'<td>' + datasets2[i].WattHours + " kWh" + '</td>' +
							'<td align="center">' + datasets2[i].Cost + '</td>' +
							'<td align="center">' + datasets2[i].EstimatedCost + '</td>' +
							'</tr>');
            }
            $("#SensorsHome").find("input").click(plotAccordingToChoicesHome);
            setColors(datasets2);

            plotAccordingToChoicesHome();
        }
        catch (Error) {
            console.log(Error);
            onFailed();
        }


    }
}
function onFailed() {
    $("#overviewHome").hide();
    $("#placeholderHome").hide();
    $("#loader").after("<h3>Sorry it seems something went wrong with the graph. Hopefully this image can give you a good idea what it should look like.</h3>").fadeIn();
}

$(function() {
    var previousPoint = null;
    $("#placeholderHome").bind("plothover", function(event, pos, item) {
        if (item) {
            if (previousPoint != item.datapoint) {
                previousPoint = item.datapoint;

                $("#tooltip").remove();
                var x = item.datapoint[0].toFixed(2),
                        y = item.datapoint[1].toFixed(2);

                showTooltip(item.pageX, item.pageY,
                        item.series.label + " used an average of " + y + " watts since the last data point");
            }
        }
        else {
            $("#tooltip").remove();
            previousPoint = null;
        }
    });
});
