window.addEventListener('load', () => {
  // Reload tracker every 15 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();
  }, 15000)

  // Collapsible advancement sections
  const categories = document.getElementsByClassName("location-category");
  for (let category of categories) {
    let hide_id = category.id.split('_')[0];
    if (hide_id === 'Total') {
      continue;
    }
    category.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;
    });
  }
});