<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>JES 18/19 – Storkow – Manĝoj</title>
</head>
<body>

<input type="file" id="file-input" />
<br />
<input type="date" id="date" />
<br />
<form id='time'>
  <input type="radio" name="time" value="0">Matenman&#x11D;o</input>
  <input type="radio" name="time" value="1">Tagman&#x11D;o</input>
  <input type="radio" name="time" value="2">Vesperman&#x11D;o</input>
</form>
<br /><hr /><br />
<input type="text" id="user-id" />
<h1 id="food-choice">Man&#x11D;o</h1>
<pre id="user-data"></pre>

<script>
var table = {};
var day = 0;
var start_date = new Date('2018-12-27');
var time = 0;
var id = 0;

function readSingleFile(e) {
  let file = e.target.files[0];
  if (!file) {
    return;
  }
  var reader = new FileReader();
  reader.onload = function(e) {
    let lines = e.target.result.split("\n");
    for (i = 0, len = lines.length; i < len; i++) {
      if (lines[i].search(/^\D/i) >= 0) {
        continue;
      }
      var [key, ...elems] = lines[i].split("\t");
      table[key] = elems;
    }
    getUserData();
  };
  reader.readAsText(file);
  document.getElementById('user-id').focus();
}

function getIndex() {
  // - 2 because first meal is dinner
  return 3*day + time - 2;
}

function userLookup(e) {
  var input = e.target.value;
  console.log("input: " + input);
  if (input.length == 8) { // parse scan input
    input = input.substr(4, 3);
  }
  id = parseInt(input);
  getUserData();
  let input_field = document.getElementById('user-id');
  input_field.value = '';
}

function getUserData() {
  let index = getIndex();
  var food_element = document.getElementById('food-choice');
  var data_element = document.getElementById('user-data');
  if (table[id] == undefined) {
    console.log("undefined id " + id);
    food_element.style = "";
    food_element.textContent = "Ne trovis!";
    data_element.textContent = "";
    return;
  }
  console.log(table[id]);
  let [first_name, last_name, country, color, ...foods] = table[id];
  var food;
  switch(foods[index]) {
    case '1':
      food_element.style = "background-color: green";
      food = "vianda"
      break;
    case '2':
      food_element.style = "background-color: green";
      food = "vegetara"
      break;
    case '3':
      food_element.style = "background-color: green";
      food = "vegana"
      break;
    default:
      food_element.style = "background-color: red";
      food = "NE MANĜAS"
  }
  food_element.textContent = food;
  data_element.textContent = table[id].toString();
}

function updateDay(e) {
  var date = new Date(e.target.value);
  day = new Date(date - start_date).getDate() - 1;
  console.log('day: ' + day);
  getUserData();
  document.getElementById('user-id').focus();
}

function updateTime(e) {
  time = parseInt(e.target.value);
  console.log('time: ' + time);
  getUserData();
  document.getElementById('user-id').focus();
}

function dateInputValue(date) {
  return date.getFullYear() + '-' + date.getMonth() + '-' + date.getDate();
}

document.getElementById('file-input')
  .addEventListener('change', readSingleFile);
document.getElementById('user-id')
  .addEventListener('change', userLookup);
document.getElementById('date')
  .addEventListener('change', updateDay);
document.getElementById('time')
  .addEventListener('change', updateTime);
document.getElementById('date').value = dateInputValue(new Date());
</script>
</body>
</html>