function buildChart() {
  data = new google.visualization.DataTable();
  data.addColumn('date', 'date');

  chart = new google.visualization.LineChart(document.getElementById('chart_div'));

  drawChart();
}

function findColumn(name) {
    var i = null;
    for (var x = 0; x < data.getNumberOfColumns(); x++) {
        if (data.getColumnLabel(x) == name) {
            i = x;
            break;
        }
    }
    if (i == null) {
        i = data.addColumn('number', name);
    }
    return i
}

function findRow(theDate) {
    var i = null;
    for (var x = 0; x < data.getNumberOfRows(); x++) {
        if (data.getValue(x, 0) && data.getValue(x, 0).valueOf() == theDate.valueOf()) {
            i = x;
            break;
        }
    }
    if (i == null) {
        i = data.addRow();
    }
    return i
}

function  addFriend(friend, friendStats) {
    c = findColumn(friend);
    if (friendStats == null) {
        data.removeColumn(c);
        drawChart();
        return;
    }
    if (friendStats.length == 0 ) {
        for (var row = 0; row < data.getNumberOfRows(); row++) {
            data.setValue(row, c);
        }
    }

    friendStats.forEach(function(stat) {
        theDate = new Date(stat[0]);
        theValue = stat[1];
        var row = findRow(theDate);
        data.setCell(row, c, theValue ,stat[2]);
        data.setValue(row, 0, theDate);
    });

    drawChart();
}

function addColumn() {

}

function drawChart() {
    data.sort(0);
    chart.draw(data, {width: 860, height: 340, legend: 'bottom', title: chartTitle, titleColor : '#626567', pointSize: 5 });
 }
