JSFiddle - React, Tailwind, and code Playground

HTML

<script src="http://5945822.swh.strato-hosting.eu/Scripts/prot20140409/custom/js/jquery.jqplot.js"></script>
<script src="http://5945822.swh.strato-hosting.eu/Scripts/prot20140409/custom/js/jqplot.mobile.js"></script>
<script src="http://5945822.swh.strato-hosting.eu/Scripts/prot20140409/custom/js/jquery.mobile.touch.js"></script>
<script src="http://5945822.swh.strato-hosting.eu/Scripts/prot20140409/custom/js/jqplot.cursor.js"></script>
<div id="chartdiv"></div>

JavaScript

// SRS Levels:   A1    A2    A3    A4    G1    G2     M     E     B
var accuracy = [80.0, 80.0, 85.0, 90.0, 95.0, 95.0, 99.0, 96.0, 97.0];
//var accuracy = [90.0, 90.0, 90.0, 90.0, 90.0, 90.0, 90.0, 90.0, 90.0];
//var accuracy = [100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0];

//var review_times = ['06:00', '12:00', '17:00', '21:00'];
var review_times = ['07:00', '21:00'];
//var review_times = ['21:00'];

var max_lessons_per_day = 999; // Not yet used.

var srs_levels = [
  'Apprentice 1', 'Apprentice 2', 'Apprentice 3', 'Apprentice 4',
  'Guru 1', 'Guru 2', 'Master', 'Enlightened', 'Burned'
];
var lvls = [
  [ 1,26,18, 42],[ 2,35,38, 90],[ 3,22,33, 68],[ 4,33,38,104],[ 5,27,42,124],
  [ 6,19,40,115],[ 7,17,33, 95],[ 8,16,32,132],[ 9,15,35,115],[10,14,35,114],
  [11,14,38,121],[12,11,37,125],[13,16,37,113],[14, 6,32,114],[15, 7,33, 96],
  [16, 6,35,116],[17, 8,33,122],[18, 8,29,134],[19, 9,34,105],[20, 7,32,112],
  [21, 7,32,105],[22, 6,31,112],[23, 7,31, 96],[24, 7,31,118],[25, 8,33, 98],
  [26, 3,33,122],[27, 8,32,110],[28, 5,34,112],[29, 8,33,102],[30, 5,31,100],
  [31, 7,36,112],[32, 6,33,111],[33, 5,32,101],[34, 5,34,125],[35, 4,32, 99],
  [36, 7,33, 97],[37, 4,32,111],[38, 6,32,100],[39, 8,34,100],[40, 3,32,115],
  [41, 4,30,108],[42, 4,33, 98],[43, 5,35,108],[44, 5,34,106],[45, 3,35, 97],
  [46, 2,37,103],[47, 3,36, 94],[48, 3,37,105],[49, 2,33,104],[50, 3,35, 88],
  [51, 1,35, 77],[52, 0,35, 99],[53, 2,35,104],[54, 0,35,114],[55, 0,35, 76],
  [56, 0,35, 88],[57, 2,35, 93],[58, 0,35, 81],[59, 1,35, 79],[60, 1,32, 65]
];

var intervals = {
  r: [   4,    8,   23,   47,  167,  335,  729, 2921],
  k: [   4,    8,   23,   47,  167,  335,  729, 2921],
  v: [   4,    8,   23,   47,  167,  335,  729, 2921]
};

function newArray(dimensions, init_val) {
  if (typeof dimensions === 'number') dimensions = [dimensions];
  if (!dimensions.hasOwnProperty(length)) return undefined;

  var dim = dimensions[0];
  var arr = new Array(dim);
  if...