<template>
  <section id="map">
    <div
      id="title"
      class="text-container title-text"
    >
      <h3 v-html="t('text.components.mapText.title')"></h3>
      <br>
      <div class="accordion-container">

        <!-- Accordion 1 -->
        <button class="accordion households-accordion active">
          <span v-html="t('text.components.mapText.p1Title')"></span><span class="symbol">-</span>
        </button>
        <div class="panel households-panel">
          <p v-html="t('text.components.mapText.paragraph1')"></p>
          <picture>
            <source
              type="image/webp"
              :srcset="getImageSrcSet('avg_household_size_2022', 'webp')"
              sizes="(max-width: 600px) 320px, (max-width: 1200px) 640px, (min-width: 1201px) 1280px, 1920px"
            />
            <img
              :srcset="getImageSrcSet('avg_household_size_2022', 'jpg')"
              sizes="(max-width: 600px) 320px, (max-width: 1200px) 640px, (min-width: 1201px) 1280px, 1920px"
              :src="getImageSrc('avg_household_size_2022', 'jpg', 1280)"
              :alt="t('text.components.mapText.p1Alt')"
            />
          </picture>
        </div>

<!-- Accordion 2 -->
<button class="accordion latino-accordion">
          <span v-html="t('text.components.mapText.p4Title')"></span><span class="symbol">+</span>
        </button>
        <div class="panel">
          <p v-html="t('text.components.mapText.paragraph4')"></p>
          <picture>
            <source
              type="image/webp"
              :srcset="getImageSrcSet('perc_hispanic_census_2022', 'webp')"
              sizes="(max-width: 600px) 320px, (max-width: 1200px) 640px, (min-width: 1201px) 1280px, 1920px"
            />
            <img
              :srcset="getImageSrcSet('perc_hispanic_census_2022', 'jpg')"
              sizes="(max-width: 600px) 320px, (max-width: 1200px) 640px, (min-width: 1201px) 1280px, 1920px"
              :src="getImageSrc('perc_hispanic_census_2022', 'jpg', 1280)"
              :alt="t('text.components.mapText.p4Alt')"
            />
          </picture>
        </div>

        <!-- Accordion 3 -->
        <button class="accordion disability-accordion">
          <span v-html="t('text.components.mapText.p5Title')"></span><span class="symbol">+</span>
        </button>
        <div class="panel">
          <p v-html="t('text.components.mapText.paragraph5')"></p>
          <picture>
            <source
              type="image/webp"
              :srcset="getImageSrcSet('perc_disabled_census_2022', 'webp')"
              sizes="(max-width: 600px) 320px, (max-width: 1200px) 640px, (min-width: 1201px) 1280px, 1920px"
            />
            <img
              :srcset="getImageSrcSet('perc_disabled_census_2022', 'jpg')"
              sizes="(max-width: 600px) 320px, (max-width: 1200px) 640px, (min-width: 1201px) 1280px, 1920px"
              :src="getImageSrc('perc_disabled_census_2022', 'jpg', 1280)"
              :alt="t('text.components.mapText.p5Alt')"
            />
          </picture>
        </div>

        <!-- Accordion 4 -->
        <button class="accordion income-accordion">
          <span v-html="t('text.components.mapText.p2Title')"></span><span class="symbol">+</span>
        </button>
        <div class="panel">
          <p v-html="t('text.components.mapText.paragraph2')"></p>
          <picture>
            <source
              type="image/webp"
              :srcset="getImageSrcSet('med_income_census_2022', 'webp')"
              sizes="(max-width: 600px) 320px, (max-width: 1200px) 640px, (min-width: 1201px) 1280px, 1920px"
            />
            <img
              :srcset="getImageSrcSet('med_income_census_2022', 'jpg')"
              sizes="(max-width: 600px) 320px, (max-width: 1200px) 640px, (min-width: 1201px) 1280px, 1920px"
              :src="getImageSrc('med_income_census_2022', 'jpg', 1280)"
              :alt="t('text.components.mapText.p2Alt')"
            />
          </picture>
        </div>

        <!-- Accordion 5 -->
        <button class="accordion renters-accordion">
          <span v-html="t('text.components.mapText.p3Title')"></span><span class="symbol">+</span>
        </button>
        <div class="panel">
          <p v-html="t('text.components.mapText.paragraph3')"></p>
          <picture>
            <source
              type="image/webp"
              :srcset="getImageSrcSet('median_rent_2022', 'webp')"
              sizes="(max-width: 600px) 320px, (max-width: 1200px) 640px, (min-width: 1201px) 1280px, 1920px"
            />
            <img
              :srcset="getImageSrcSet('median_rent_2022', 'jpg')"
              sizes="(max-width: 600px) 320px, (max-width: 1200px) 640px, (min-width: 1201px) 1280px, 1920px"
              :src="getImageSrc('median_rent_2022', 'jpg', 1280)"
              :alt="t('text.components.mapText.p3Alt')"
            />
          </picture>
        </div>

      </div>   
    </div>
  </section>
</template>


<script setup>
import { onMounted } from 'vue';
import { useI18n } from 'vue-i18n';

const { t, locale } = useI18n();

const getImageSrc = (baseName, format, size) => {
  const lang = locale.value === 'es' ? 'es' : 'en';  // Get language
  return new URL(`../assets/images/responsive_images/${baseName}_${lang}-${size}.${format}`, import.meta.url).href;
};

const getImageSrcSet = (baseName, format) => {
  const lang = locale.value === 'es' ? 'es' : 'en';  // Get language
  return `
    ${new URL(`../assets/images/responsive_images/${baseName}_${lang}-320.${format}`, import.meta.url).href} 320w,
    ${new URL(`../assets/images/responsive_images/${baseName}_${lang}-640.${format}`, import.meta.url).href} 640w,
    ${new URL(`../assets/images/responsive_images/${baseName}_${lang}-1280.${format}`, import.meta.url).href} 1280w,
    ${new URL(`../assets/images/responsive_images/${baseName}_${lang}-1800.${format}`, import.meta.url).href} 1920w
  `;
};

// Accordion click handler
onMounted(() => {
  const acc = document.getElementsByClassName("accordion");
  for (let i = 0; i < acc.length; i++) {
    acc[i].addEventListener("click", function () {
      this.classList.toggle("active");
      const panel = this.nextElementSibling;
      const symbol = this.querySelector('.symbol');
      if (panel.style.display === "block") {
        panel.style.display = "none";
        symbol.textContent = "+";
      } else {
        panel.style.display = "block";
        symbol.textContent = "-";
      }
    });
  }
});
</script>
<style lang="scss" scoped>

$Demographiccharacteristics: var(--color-Demographiccharacteristics);
$Landtenure: var(--color-Landtenure);
$Livingconditions: var(--color-Livingconditions);
$Socioeconomicstatus: var(--color-Socioeconomicstatus);
$Health: var(--color-Health);
$Riskperception: var(--color-Riskperception);
$Exposure: var(--color-Exposure);
$ThemeGrey: var(--color-themegrey);

.accordion {
  background-color: #eee;
  color: #fff;
  cursor: pointer;
  padding: 16px;
  width: 100%;
  border: none;
  text-align: left;
  outline: none;
  line-height: 1.2;
  transition: 0.4s;
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 2.15rem;
  font-family: 'Source Sans Pro', sans-serif;
  font-weight: 600;
  position: relative;
  border: 2px solid transparent;
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
  margin-bottom: 8px
}

.accordion.households-accordion {
  background-color: $Demographiccharacteristics;
}

.accordion.income-accordion {
  background-color: $Socioeconomicstatus;
}

.accordion.renters-accordion {
  background-color: $Landtenure;
}

.accordion.latino-accordion {
  background-color: $Demographiccharacteristics;
}

.accordion.disability-accordion {
  background-color: $Demographiccharacteristics;
}

.accordion::before {
  content: "";
  position: absolute;
  top: -2px;
  left: -2px;
  right: -2px;
  bottom: -2px;
  border: 2px solid transparent;
  z-index: -1;
  transition: border-color 0.3s;
}

.accordion:hover::before, .accordion.active::before {
  border-color: rgba(217, 217, 217, 0.95);
}

.active, .accordion:hover {
  background-color: black; 
}

.panel {
  display: none; 
  overflow: hidden;
  border: 3px solid #F0F0F0; 
  margin-bottom: 15px;
  margin-top: -15px;
  border-top-width: 0;
  border-radius: 0 0 10px 10px;
}

.panel p {
  margin: 20px;
}

.panel img {
  display: block;
  margin-left: auto;
  margin-right: auto;
  max-width: 100%;
}

.households-accordion.active + .households-panel {
  display: block;
}

.symbol {
  font-size: 32px;
  font-weight: bold;
}


</style>

<style lang="scss">
  #choropleth-map-tooltip {
    margin-left: -120px;
  }
</style>