<%

const locale = env.locale;
const baseURL = `/${locale}/docs/`;

const l10nStrings = mdn.localStringMap({
  "de": {
    "Accessibility" : "Barrierefreiheit",
    "Guides" : "Anleitungen",
    "Learn" : "Barrierefreiheit lernen",
    "ARIA" : "ARIA",
    "ARIA_guides" : "ARIA-Anleitungen",
    "ARIA states and properties": "ARIA-Zustände und -Eigenschaften",
    "ARIA roles": "ARIA-Rollen",
    "WCAG": "WCAG",
  },
  "en-US": {
    "Accessibility" : "Accessibility",
    "Guides" : "Guides",
    "Learn" : "Learn accessibility",
    "ARIA" : "ARIA",
    "ARIA_guides" : "ARIA guides",
    "ARIA states and properties": "ARIA states and properties",
    "ARIA roles": "ARIA roles",
    "WCAG": "WCAG",
  },
  "zh-CN": {
    "Accessibility" : "无障碍",
    "Guides" : "指南",
    "Learn" : "学习无障碍",
    "ARIA" : "ARIA",
    "ARIA_guides" : "ARIA 指南",
    "ARIA states and properties": "ARIA 状态及属性",
    "ARIA roles": "ARIA 角色",
    "WCAG": "WCAG",
  }
});

const sections = [
  {
    name: "Accessibility",
    link: "Web/Accessibility",
    subsections: [
      {
        name: "Guides",
        pages: [
          "Web/Accessibility/Information_for_Web_authors",
          "Web/Accessibility/Accessibility:_What_users_can_to_to_browse_safely",
          "Web/Accessibility/An_overview_of_accessible_web_applications_and_widgets",
          "Web/Accessibility/Keyboard-navigable_JavaScript_widgets",
          "Web/Accessibility/Mobile_accessibility_checklist",
          "Web/Accessibility/Understanding_WCAG",
          "Web/Accessibility/Cognitive_accessibility",
          "Web/Accessibility/Accessibility_and_Spacial_Patterns",
          "Web/Accessibility/Understanding_Colors_and_Luminance",
          "Web/Accessibility/Seizure_disorders",
        ]
      },
      {
        name: "Learn",
        pages: [
          "Learn/Accessibility/",
          "Learn/Accessibility/What_is_accessibility",
          "Learn/Accessibility/HTML",
          "Learn/Accessibility/CSS_and_JavaScript",
          "Learn/Accessibility/WAI-ARIA_basics",
          "Learn/Accessibility/Multimedia",
          "Learn/Accessibility/Mobile",
          "Learn/Accessibility/Accessibility_troubleshooting",
        ]
      },
      {
        name: "WCAG",
        directory: "Web/Accessibility/Understanding_WCAG",
      }
    ]
  },
  {
    name: "ARIA",
    link: "Web/Accessibility/ARIA",
    subsections: [
      {
        name: "ARIA_guides",
        pages: [
          "Web/Accessibility/ARIA/ARIA_Guides",
          "Web/Accessibility/ARIA/ARIA_Live_Regions",
          "Web/Accessibility/ARIA/ARIA_Screen_Reader_Implementors_Guide",
          "Web/Accessibility/ARIA/ARIA_Techniques",
          "Web/Accessibility/ARIA/Multipart_labels",
          "Web/Accessibility/ARIA/How_to_file_ARIA-related_bugs",
        ]
      },
      {
        name: "ARIA states and properties",
        directory: "Web/Accessibility/ARIA/attributes",
      },
      {
        name: "ARIA roles",
        directory: "Web/Accessibility/ARIA/roles",
      }
    ]
  }
];

async function renderSubsection(subsection) {
  let output = `<li><details><summary>${l10nStrings[subsection.name]}</summary><ol>`;

  if (subsection.pages) {
    for (const page of subsection.pages) {
      const link = web.smartLink(`${baseURL}${page}`);
      output += `<li>${link}</li>`;
    }
  } else {
    output += await renderDirectory(subsection.directory);
  }
  output += "</ol></details></li>";

  return output;
}


async function renderDirectory(directory) {
  const output = await template("ListSubpagesForSidebar", [directory, true, true]);

  return output;
}


async function renderSection(section) {
  let output = `<li class="section">${web.smartLink(`${baseURL}${section.link}`, null, l10nStrings[section.name])}</li>`;

  for (const subsection of section.subsections) {
    output += await renderSubsection(subsection);
  }

  return output;
}

async function renderSidebar() {
  let output = '<section id="Quick_links" data-macro="AccessibilitySidebar"><ol>';

  for (const section of sections) {
    output += await renderSection(section);
  }
  
  output += "</ol></section>";

  return output;
}

const output = await renderSidebar();

%>

<%-output%>
