{{/*  variables for enabling/disabling various features  */}}
{{ $blogEnabled   := site.Params.features.blog.enable   | default false }}
{{ $notesEnabled  := site.Params.features.notes.enable  | default false }}
{{ $maxVisibleSections   := site.Params.topNavbar.maxVisibleSections   | default 5 }}

{{/*  keep backward compatibility for blog post  */}}
{{ if site.Params.enableBlogPost }}
  {{ $blogEnabled = true }}
{{ end }}

{{/* by default, don't use any logo */}}
{{ $mainLogo := "" }}
{{ $invertedLogo := "" }}

{{/*  if custom logo has been provided, use them  */}}
{{ if site.Params.logo.main }}
  {{ $mainLogo = site.Params.logo.main }}
{{ end }}
{{ if site.Params.logo.inverted }}
  {{ $invertedLogo = site.Params.logo.inverted }}
{{ end }}

{{/* resize the logos. don't resize svg because it is not supported */}}
{{ if $mainLogo }}
  {{ $mainLogo = resources.Get $mainLogo}}
  {{ if and $mainLogo (ne $mainLogo.MediaType.SubType "svg") }}
    {{ $mainLogo = $mainLogo.Resize "42x" }}
  {{ end }}
  {{ $mainLogo = $mainLogo.RelPermalink}}
{{ end }}

{{ if $invertedLogo }}
  {{ $invertedLogo = resources.Get $invertedLogo}}
  {{ if and $invertedLogo (ne $invertedLogo.MediaType.SubType "svg")}}
    {{ $invertedLogo = $invertedLogo.Resize "42x" }}
  {{ end }}
  {{ $invertedLogo = $invertedLogo.RelPermalink}}
{{ end }}

{{ $customMenus := site.Params.customMenus }}
{{ if (index site.Data site.Language.Lang).site.customMenus }}
  {{ $customMenus = (index site.Data site.Language.Lang).site.customMenus }}
{{ end }}

{{ $sections := site.Data.sections }}
{{ if (index site.Data site.Language.Lang).sections }}
  {{ $sections = (index site.Data site.Language.Lang).sections }}
{{ end }}

<nav class="navbar navbar-expand-xl top-navbar initial-navbar" id="top-navbar">
  <div class="container">
    <a class="navbar-brand" href="{{ site.BaseURL | relLangURL }}">
      {{ if $invertedLogo }}
        <img src="{{ $invertedLogo }}" id="logo" alt="Logo">
      {{ end }}
      {{- site.Title -}}
    </a>
    <button
      class="navbar-toggler navbar-dark"
      id="navbar-toggler"
      type="button"
      data-toggle="collapse"
      data-target="#top-nav-items"
      aria-label="menu"
    >
      <span class="navbar-toggler-icon"></span>
    </button>

    <div class="collapse navbar-collapse dynamic-navbar" id="top-nav-items">
      <ul class="navbar-nav ml-auto">
        <li class="nav-item">
          <a class="nav-link" href="#home">{{ i18n "home" }}</a>
        </li>
        {{ if $sections }}
          {{ $sectionCount := 1 }}
          {{ range sort $sections "section.weight" }}
            {{ if and (.section.enable) (.section.showOnNavbar)}}
              {{ $sectionCount  = add $sectionCount 1}}
              {{ if le $sectionCount $maxVisibleSections }}
                <li class="nav-item">
                  <a class="nav-link" href="#{{ partial "helpers/get-section-id.html" . }}">{{ .section.name }}</a>
                </li>
              {{ end }}
            {{ end }}
          {{- end }}
          {{ if gt $sectionCount $maxVisibleSections }}
          <li class="nav-item dropdown">
            <a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">{{i18n "more" }}</a>
            <div class="dropdown-menu" aria-labelledby="navbarDropdown">
                {{ $sectionCount := 1 }}
                {{ range sort $sections "section.weight" }}
                  {{ if and (.section.enable) (.section.showOnNavbar) }}
                    {{ $sectionCount  = add $sectionCount 1}}
                    {{ if gt $sectionCount $maxVisibleSections }}
                      <a class="dropdown-item" href="#{{ partial "helpers/get-section-id.html" . }}">{{ .section.name }}</a>
                    {{ end }}
                  {{ end }}
                {{- end }}
              </div>
            </li>
          {{ end }}
        {{- end }}
        {{ $shouldAddSeparator:= partial "helpers/add-navbar-separator.html" . }}
        {{ if $shouldAddSeparator }}
          <div class="dropdown-divider" id="top-navbar-divider"></div>
        {{ end }}
        {{ if $blogEnabled }}
          <li class="nav-item">
            <a class="nav-link" id="blog-link" href="{{ "/posts/" | relLangURL }}">{{ i18n "posts" }}</a>
          </li>
        {{ end }}
        {{ if $notesEnabled }}
          <li class="nav-item">
            <a class="nav-link" id="note-link" href="{{ "/notes/" | relLangURL }}">{{ i18n "notes" }}</a>
          </li>
        {{ end }}
        {{ range $customMenus }}
            {{ if (not .hideFromNavbar) }}
              <li class="nav-item">
                <a class="nav-link" href="{{ .url }}">{{ .name }}</a>
              </li>
            {{ end }}
        {{ end }}
        {{ if .IsTranslated }}
          {{ partial "navigators/lang-selector.html" . }}
        {{ end }}
        {{ if site.Params.darkMode.enable }}
          {{ partial "navigators/theme-selector.html" . }}
        {{ end }}
      </ul>
    </div>
  </div>
  <!-- Store the logo information in a hidden img for the JS -->
  {{ if $mainLogo }}
    <img src="{{ $mainLogo }}" class="d-none" id="main-logo" alt="Logo">
  {{ end }}
  {{ if $invertedLogo }}
    <img src="{{ $invertedLogo }}" class="d-none" id="inverted-logo" alt="Inverted Logo">
  {{ end }}
</nav>
