function parseDate(str) { var y = str.substr(0,4), m = str.substr(4,2) - 1, d = str.substr(6,2); var D = new Date(y,m,d); return (D.getFullYear() == y && D.getMonth() == m && D.getDate() == d) ? D : null; } function getData(csv, callback) { Papa.parse(csv, { download: true, comments: "#", complete: callback }); } function graph(div, results, cols, labels) { var data = []; for (var rowIndex in results.data) { var row = results.data[rowIndex]; var createdRow = []; var date = parseDate(row[0]); if (date == null) { continue; } createdRow.push(date); for (var colIndex in cols) { var col = cols[colIndex]; if (row.length < col) { continue; } else { createdRow.push(parseInt(row[col], 10)); } } data.push(createdRow); } data.reverse(); var dygraph = new Dygraph(div, data, { labels: labels, width: 860 } ); } getData("stats/net.cbaines.suma_overall_installs.csv", function(results) { graph( document.getElementById("current"), results, [1], ["Date", "Current Instalations by Device"] ); graph( document.getElementById("total"), results, [6], ["Date", "Total User Installs"] ); });