<!doctype html>
<html data-theme="light" class="has-navbar-fixed-top">


  <head>
      <title>{{ tmp }} - {{ title }}</title>
<meta name="viewport" content="width=device-width, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no, initial-scale=1.0">    <!-- CSS Reset -->
    <link
      rel="stylesheet"
      href="https://cdn.jsdelivr.net/npm/bulma@1.0.0/css/bulma.min.css">

<script src="https://www.kryogenix.org/code/browser/sorttable/sorttable.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.7.1/jquery.min.js" integrity="sha512-v2CJ7UaYy4JwqLDIrZUI/4hqeoQieOmAZNXBeQyjo21dadnwR+8ZaIJVT8EE2iyI61OV8e6M8PP2/4hpQINQ/g==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>

<style>

table.sortable th:not(.sorttable_sorted):not(.sorttable_sorted_reverse):not(.sorttable_nosort):after {
    content: " \25B4\25BE"
}
table.sortable tbody tr:nth-child(2n) td {
  background: #ffffff;
}
table.sortable tbody tr:nth-child(2n+1) td {
  background: #ecf0f1;
}

.hidden { 
	display: none;
}

table { 
    width: 100%; /* Ensure the table takes full width of its container */

}

td {
    overflow: hidden;
    text-overflow: ellipsis;
    word-wrap: break-word;
}

.name-class {
  max-width: 300px; 
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}

@media only screen and (min-width: 600px) {

  .hidden-desktop {
    display: none;
  }

}


@media only screen and (max-width: 480px) {
    /* horizontal scrollbar for tables if mobile screen */
    .hidden-mobile {
  	display: none;
    }

}





      /* Chrome, Safari, Edge, Opera */
input::-webkit-outer-spin-button,
input::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

/* Firefox */
input[type=number] {
  -moz-appearance: textfield;
}

.header {
width:100%;
    text-align:center;
z-index: 99;
background-color: white;
}

.content {
	padding: 16px;
}


.inputContainer {
	  display: inline-block; /* Display as an inline block */
	    vertical-align: middle; /* Center vertically within the cell */
	    width: 120px;
}

.inputContainer form {
	margin: 5% auto 5% auto;
}

.inputField {
	  display: flex;
  align-items: center; /* Align items vertically */
  width: 100%; /* Ensure inputField fills out inputContainer */
  height: 100%; /* Ensure inputField fills out inputContainer */
}
.inputField input {
	flex: 1;
	width: 70%;
	padding: 0px;
	margin: auto 2.5px auto 2.5px;
}
.inputField button {
	width: 30%;
	padding: 0px;
	margin: 0 2.5px 0 2.5px;
}

.square-button {
	background-color: white;
  border: 1px solid #d1d1d1;
}


      /* Modal Styles */
      #lightbox-modal {
  display: none;
  position: fixed;
  z-index: 1000;
  padding-top: 50px;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0,0,0,0.5);
}
.lightbox-wrapper {
  position: relative;
  width: 100%;
  height: 100%;
}



.lightbox-content {
  max-width: 90%;
  max-height: 90%;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}

#lightbox-text {
  position: absolute;
  bottom: 20px; /* Adjust as needed */
  left: 50%;
  transform: translateX(-50%);
  padding: 10px;
  background-color: rgba(0, 0, 0, 0.5); /* Adjust background color and opacity */
  color: white;
  text-align: center;
}


#lightbox-modal .close {
  position: absolute;
  top: 10px;
  right: 25px;
  font-size: 50px;
  color: white;
  cursor: pointer;
}

#lightbox-modal img {
  display: block;
  margin: 0 auto;
  max-width: 90%;
  max-height: 90%;
}

</style>

  </head>
  <body>
    <nav class="navbar is-dark is-fixed-top is-size-6" role="navigation" aria-label="main navigation">
      <div class="navbar-brand">
        <a class="navbar-item" href="/">
          Home
        </a>

	{% if minifig_list | length > 0 %}
	<a class="navbar-item" href="#minifigs">Jump2Figs</a>
	{% endif %}    

        <a class="navbar-item hidden-desktop" id="expand-button">
          Expand Columns
        </a> 
	<a class="navbar-item" id="filter-button">
	Missing Parts
	</a>
        
        <a class="navbar-item hidden-desktop js-modal-trigger" data-target="modal-delete-set" >
            Delete
          </a>
        
      </div>
      
      <div id="navMenu" class="navbar-menu"> 
        <div class="navbar-end"> 
          <!-- <a class="navbar-item" onclick="delete_set('{{ u_id }}','{{ tmp }}', '{{ title }}')">
            Delete
          </a> -->
          <a class="navbar-item js-modal-trigger" data-target="modal-delete-set">
            Delete
          </a>
        </div>
      </div>
    </nav>

    <div class="modal" id="modal-delete-set">
      <div class="modal-background"></div>
      <div class="modal-card">
        <header class="modal-card-head">
          <p class="modal-card-title">Delete set?</p>
          <button class="delete" aria-label="close"></button>
        </header>
        <section class="modal-card-body">
          Are you sure you want to delete:
          <br>
          <b>{{ tmp }} - {{ title }}</b>
          <br><br>
          With unique ID: <br><b>{{ u_id }}</b>
        </section>
        <footer class="modal-card-foot">
          <div class="buttons">
            <a href="{{ '/delete/' + u_id }}" class="button is-danger">Delete</a>
            <button class="button">Cancel</button>
          </div>
        </footer>
      </div>
    </div>

    <div class="container">
      <center>
        <h1 class="title">{{ tmp }} - {{ title }}</h1>
      <img class="lightbox-trigger" id="cover" style='height: 150px; width: auto; object-fit: contain'  src="/static/sets/{{ tmp }}.jpg" alt="{{ tmp }} - {{ title }}">
      {% block content %}{% endblock %}
    </div>
    {% block scripts %}{% endblock %}
  </body>
  <script>
    function delete_set(u_id,tmp,title) {
      let text = "";
      if (confirm(text) == true) {
        text = "You pressed OK!";
      } else {
        text = "You canceled!";
      }
      document.getElementById("demo").innerHTML = text;
    }
    document.addEventListener('DOMContentLoaded', () => {
  // Functions to open and close a modal
  function openModal($el) {
    $el.classList.add('is-active');
  }

  function closeModal($el) {
    $el.classList.remove('is-active');
  }

  function closeAllModals() {
    (document.querySelectorAll('.modal') || []).forEach(($modal) => {
      closeModal($modal);
    });
  }

  // Add a click event on buttons to open a specific modal
  (document.querySelectorAll('.js-modal-trigger') || []).forEach(($trigger) => {
    const modal = $trigger.dataset.target;
    const $target = document.getElementById(modal);

    $trigger.addEventListener('click', () => {
      openModal($target);
    });
  });

  // Add a click event on various child elements to close the parent modal
  (document.querySelectorAll('.modal-background, .modal-close, .modal-card-head .delete, .modal-card-foot .button') || []).forEach(($close) => {
    const $target = $close.closest('.modal');

    $close.addEventListener('click', () => {
      closeModal($target);
    });
  });

  // Add a keyboard event to close all modals
  document.addEventListener('keydown', (event) => {
    if(event.key === "Escape") {
      closeAllModals();
    }
  });
});

/*
  document.getElementById("filter-button").addEventListener("click", () => {
  const table = document.getElementById("data");
  const rows = table.querySelectorAll("tbody tr");

  // Check if any rows are currently hidden
  const isFiltered = Array.from(rows).some(row => row.classList.contains("hidden"));

  rows.forEach(row => {
    const inputField = row.querySelector("input#missing");
    if (inputField) {
      const inputValue = inputField.value.trim();
      if (isFiltered) {
        // If currently filtered, show all rows
        row.classList.remove("hidden");
      } else {
        // If not filtered, hide rows with empty input fields
        if (inputValue === "") {
          row.classList.add("hidden");
        }
      }
    }
  });

  // Update button text based on the state
  document.getElementById("filter-button").textContent = isFiltered
    ? "Only Show Missing"
    : "Show All Parts";
});

*/
document.getElementById("filter-button").addEventListener("click", () => {
      const tables = document.querySelectorAll("#data"); // Select all tables with the class 'data-table'
      let isFiltered = false;

      // Check if any row in any table is hidden
      tables.forEach(table => {
        const rows = table.querySelectorAll("tbody tr");
        if (Array.from(rows).some(row => row.classList.contains("hidden"))) {
          isFiltered = true;
        }
      });

      // Apply toggle logic to each table
      tables.forEach(table => {
        const rows = table.querySelectorAll("tbody tr");
        rows.forEach(row => {
          const inputField = row.querySelector("input#missing");
          if (inputField) {
            const inputValue = inputField.value.trim();
            if (isFiltered) {
              row.classList.remove("hidden");
            } else {
              if (inputValue === "") {
                row.classList.add("hidden");
              }
            }
          }
        });
      });

      // Update button text based on the state
      document.getElementById("filter-button").textContent = isFiltered
        ? "Missing Parts"
        : "All Parts";
    });

  </script>
</html>