window.addEventListener('load', () => {
  // Reload tracker every 60 seconds
  const url = window.location;
  setInterval(() => {
    const ajax = new XMLHttpRequest();
    ajax.onreadystatechange = () => {
      if (ajax.readyState !== 4) { return; }

      // Create a fake DOM using the returned HTML
      const domParser = new DOMParser();
      const fakeDOM = domParser.parseFromString(ajax.responseText, 'text/html');

      // Update item tracker
      document.getElementById('inventory-table').innerHTML = fakeDOM.getElementById('inventory-table').innerHTML;
      // Update only counters in the location-table
      let counters = document.getElementsByClassName('counter');
      const fakeCounters = fakeDOM.getElementsByClassName('counter');
      for (let i = 0; i < counters.length; i++) {
        counters[i].innerHTML = fakeCounters[i].innerHTML;
      }
    };
    ajax.open('GET', url);
    ajax.send();
}, 60000)

  // Collapsible advancement sections
  const categories = document.getElementsByClassName("location-category");
  for (let i = 0; i < categories.length; i++) {
    let hide_id = categories[i].id.split('-')[0];
    if (hide_id == 'Total') {
      continue;
    }
    categories[i].addEventListener('click', function() {
      // Toggle the advancement list
      document.getElementById(hide_id).classList.toggle("hide");
      // Change text of the header
      const tab_header = document.getElementById(hide_id+'-header').children[0];
      const orig_text = tab_header.innerHTML;
      let new_text;
      if (orig_text.includes("▼")) {
        new_text = orig_text.replace("▼", "▲");
      }
      else {
        new_text = orig_text.replace("▲", "▼");
      }
      tab_header.innerHTML = new_text;
    });
  }
});
