/*
 * Nábytkárstvo.sk — mobilné menu.
 * Na šírke do 767 px otvorí vlastný panel namiesto pôvodného bočného menu.
 * Desktopové menu ostáva.
 */
(function () {
  "use strict";

  if (window.__waMobileNav) return;
  window.__waMobileNav = true;

  var MQ = "(max-width: 767px)";
  var chevron = '<svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="#57524a" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="m9 6 6 6-6 6"/></svg>';
  var rooms = [
    {
      name: "Obývacia izba",
      href: "/Obyvacia-izba-c92_0_1.htm",
      image: "/fotky13204/homepage_redesign/produkt-lugo.jpg",
      groups: [
        { title: "Sedenie", links: [
          ["Sedacie súpravy", "/Sedacie-supravy-c92_493_3.htm"],
          ["Rohové sedacie súpravy", "/Obyvacia-izba-c92_494_4.htm"],
          ["Sedacie súpravy v tvare U", "/Obyvacia-izba-c92_495_4.htm"],
          ["Modulárne sedacie súpravy", "/Obyvacia-izba-c92_499_3.htm"],
          ["Relaxačné kreslá a ušiaky", "/Obyvacia-izba-c92_500_3.htm"],
          ["Kreslá k sedacím súpravám", "/Obyvacia-izba-c92_496_4.htm"],
          ["Pohovky k sedacím súpravám", "/Pohovky-k-sedacim-supravam-c92_497_4.htm"],
          ["Taburetky", "/Obyvacia-izba-c92_498_4.htm"]
        ]},
        { title: "Obývací nábytok", links: [
          ["Obývacie steny", "/Obyvacia-izba-c92_502_3.htm"],
          ["Sektorový nábytok", "/Sektorovy-nabytok-do-obyvacky-c92_503_3.htm"],
          ["TV stolíky", "/Obyvacia-izba-c92_504_3.htm"],
          ["Konferenčné stolíky", "/Obyvacia-izba-c92_505_3.htm"],
          ["Všetok obývací nábytok", "/Obyvacia-izba-c92_501_2.htm"]
        ]},
        { title: "Úložný nábytok", links: [
          ["Komody", "/Obyvacia-izba-c92_507_3.htm"],
          ["Vitríny", "/Obyvacia-izba-c92_508_3.htm"],
          ["Regály a police", "/Obyvacia-izba-c92_509_3.htm"]
        ]},
        { title: "Kolekcie", links: [
          ["Exkluzívny nábytok", "/Exkluzivny-nabytok-c92_510_2.htm"]
        ]}
      ]
    },
    {
      name: "Spálňa",
      href: "/Spalna-c93_0_1.htm",
      image: "/fotky13204/homepage_redesign/postel_cassa.jpg",
      groups: [
        { title: "Postele", links: [
          ["Manželské postele", "/Manzelske-postele-c93_513_4.htm"],
          ["Jednolôžkové postele", "/Jednolozkove-postele-c93_514_4.htm"],
          ["Drevené postele", "/Drevene-postele-c93_684_4.htm"],
          ["Všetky postele", "/Postele-c93_512_3.htm"]
        ]},
        { title: "Spánok", links: [
          ["Matrace", "/Matrace-c93_518_3.htm"],
          ["Rošty do postelí", "/Rosty-do-posteli-c93_519_3.htm"]
        ]},
        { title: "Nábytok", links: [
          ["Spálňové zostavy", "/Spalnove-zostavy-c93_521_3.htm"],
          ["Šatníkové skrine", "/Satnikove-skrine-c93_522_3.htm"],
          ["Nočné stolíky", "/Nocne-stoliky-c93_523_3.htm"],
          ["Toaletné stolíky", "/Toaletne-stoliky-c93_524_3.htm"],
          ["Komody", "/Komody-c93_525_3.htm"],
          ["Zrkadlá", "/Zrkadla-c93_526_3.htm"],
          ["Všetok nábytok do spálne", "/Nabytok-do-spalne-c93_520_2.htm"]
        ]},
        { title: "Kolekcie", links: [
          ["Kolekcie do spálne", "/Kolekcie-do-spalne-c93_527_2.htm"]
        ]}
      ]
    },
    {
      name: "Kuchyňa a jedáleň",
      href: "/Kuchyna-a-jedalen-c94_0_1.htm",
      image: "/fotky13204/homepage_redesign/kuchyna.jpg",
      groups: [
        { title: "Jedáleň", links: [
          ["Jedálenské sety", "/Jedalenske-sety-c94_535_3.htm"],
          ["Jedálenské stoly", "/Jedalenske-stoly-c94_537_4.htm"],
          ["Barové stoly", "/Barove-stoly-c94_538_4.htm"],
          ["Všetky stoly", "/Stoly-c94_536_3.htm"],
          ["Jedálenské stoličky", "/Jedalenske-stolicky-c94_540_4.htm"],
          ["Barové stoličky", "/Barove-stolicky-c94_541_4.htm"],
          ["Všetky stoličky", "/Stolicky-c94_539_3.htm"]
        ]},
        { title: "Kuchyňa", links: [
          ["Kuchynské linky", "/Kuchynske-linky-c94_529_3.htm"],
          ["Drezy", "/Drezy-c94_530_3.htm"],
          ["Nerezové drezy", "/Nerezove-drezy-c94_531_4.htm"],
          ["Fragranitové drezy", "/Fragranitove-drezy-c94_532_4.htm"],
          ["Tectonitové drezy", "/Tectonitove-drezy-c94_533_4.htm"]
        ]}
      ]
    },
    {
      name: "Detská izba",
      href: "/Detska-izba-c95_0_1.htm",
      image: "/fotky13204/homepage_redesign/detska-izba.jpg",
      groups: [
        { title: "Spánok a učenie", links: [
          ["Detské postele", "/Detske-postele-c95_542_2.htm"],
          ["Poschodové postele", "/Poschodove-postele-c95_543_2.htm"],
          ["Písacie a PC stoly", "/Pisacie-a-PC-stoly-c95_544_2.htm"]
        ]},
        { title: "Sedenie", links: [
          ["Pohovky do detskej izby", "/Pohovky-do-detskej-izby-c95_545_2.htm"],
          ["Kreslá do detskej izby", "/Kresla-do-detskej-izby-c95_546_2.htm"]
        ]},
        { title: "Kolekcie", links: [
          ["Kolekcie do detskej izby", "/Kolekcie-do-detskej-izby-c95_547_2.htm"]
        ]}
      ]
    },
    {
      name: "Predsieň",
      href: "/Predsien-c96_0_1.htm",
      image: "/fotky13204/homepage_redesign/predsien.jpg",
      groups: [
        { title: "Nábytok", links: [
          ["Predsieňové zostavy", "/Predsienove-zostavy-c96_548_2.htm"],
          ["Botníky", "/Botniky-c96_549_2.htm"],
          ["Skrinky do predsiene", "/Skrinky-do-predsiene-c96_551_2.htm"],
          ["Vešiakové panely", "/Vesiakove-panely-c96_550_2.htm"],
          ["Zrkadlá do predsiene", "/Zrkadla-do-predsiene-c96_552_2.htm"]
        ]},
        { title: "Kolekcie", links: [
          ["Kolekcie do predsiene", "/Kolekcie-do-predsiene-c96_553_2.htm"]
        ]}
      ]
    },
    {
      name: "Kancelária",
      href: "/Kancelaria-c97_0_1.htm",
      image: "/fotky13204/homepage_redesign/kancelaria.jpg",
      groups: [
        { title: "Práca", links: [
          ["Kancelárske stoly", "/Kancelarske-stoly-c97_554_2.htm"],
          ["Kancelárske kreslá", "/Kancelarske-kresla-c97_555_2.htm"],
          ["Konferenčné stoličky", "/Konferencne-stolicky-c97_556_2.htm"],
          ["Regály a skrine", "/Kancelarske-regaly-a-skrine-c97_557_2.htm"]
        ]},
        { title: "Kolekcie", links: [
          ["Kolekcie do kancelárie", "/Kolekcie-do-kancelarie-c97_558_2.htm"]
        ]}
      ]
    }
  ];

  var drawer;
  var roomView;
  var mobileQuery = window.matchMedia(MQ);

  function esc(value) {
    return String(value).replace(/[&<>"']/g, function (char) {
      return { "&": "&amp;", "<": "&lt;", ">": "&gt;", '"': "&quot;", "'": "&#39;" }[char];
    });
  }

  function isMobile() {
    return mobileQuery.matches;
  }

  function menuButton() {
    return document.querySelector("#left-box .responsive-menu-button.eshop-menu-button");
  }

  function hideNative() {
    var nodes = document.querySelectorAll("#left-box .mobile-menu-content, #left-box .fixed-parent-node");
    for (var i = 0; i < nodes.length; i += 1) {
      nodes[i].style.setProperty("display", "none", "important");
    }
  }

  function syncMode() {
    document.documentElement.classList.toggle("wa-mnav", isMobile());
    if (!isMobile()) closeMenu();
  }

  function linkRows(links) {
    return links.map(function (link) {
      return '<a href="' + esc(link[1]) + '"><span>' + esc(link[0]) + '</span>' + chevron + "</a>";
    }).join("");
  }

  function openRoom(index) {
    var room = rooms[index];
    roomView.innerHTML =
      '<div class="wa-mnav-head">' +
        '<button class="wa-mnav-icon" type="button" data-mnav-back aria-label="Späť na miestnosti">' +
          '<svg width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M15 18 9 12l6-6"/></svg>' +
        "</button>" +
        "<div><span>Miestnosť</span><h2>" + esc(room.name) + "</h2></div>" +
        '<button class="wa-mnav-icon wa-mnav-room-close" type="button" data-mnav-close aria-label="Zavrieť menu">' +
          '<svg width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" aria-hidden="true"><path d="M6 6l12 12M18 6 6 18"/></svg>' +
        '</button>' +
      "</div>" +
      '<div class="wa-mnav-body">' +
        room.groups.map(function (group) {
          return '<section class="wa-mnav-group"><h3>' + esc(group.title) + '</h3><div class="wa-mnav-links">' + linkRows(group.links) + "</div></section>";
        }).join("") +
        '<a class="wa-mnav-all" href="' + esc(room.href) + '"><span>Celá ' + esc(room.name.toLowerCase()) + "</span>" + chevron + "</a>" +
      "</div>";
    drawer.classList.add("is-room");
    var scroller = roomView.querySelector(".wa-mnav-body");
    if (scroller) scroller.scrollTop = 0;
  }

  function showRoot() {
    if (!drawer) return;
    drawer.classList.remove("is-room");
  }

  function suggestInput() {
    return drawer ? drawer.querySelector(".wa-mnav-search input[name=slovo]") : null;
  }

  function placeSuggest() {
    var input = suggestInput();
    if (!input) return;
    var rect = input.getBoundingClientRect();
    if (rect.bottom < 64) {
      closeSuggest();
      return;
    }
    document.documentElement.style.setProperty("--wa-mnav-suggest-top", Math.round(rect.bottom + 8) + "px");
  }

  function closeSuggest() {
    var input = suggestInput();
    if (!input || !window.jQuery || !jQuery.fn.bsautocomplete) return;
    if (jQuery(input).data("custom-bsautocomplete")) jQuery(input).bsautocomplete("close");
  }

  function bindSuggest() {
    var input = suggestInput();
    if (!input || input.getAttribute("data-wa-suggest") === "1") return;
    if (!window.jQuery || !jQuery.fn.bsautocomplete || !window.BS || !BS.Request || !BS.User) {
      bindSuggest.tries = (bindSuggest.tries || 0) + 1;
      if (bindSuggest.tries < 40) window.setTimeout(bindSuggest, 50);
      return;
    }
    input.setAttribute("data-wa-suggest", "1");
    var $input = jQuery(input);
    $input.bsautocomplete({
      minLength: 3,
      delay: 500,
      source: function (request, response) {
        var exact = jQuery("#search_exact_phrase").length && jQuery("#search_exact_phrase").is(":checked") ? 1 : 0;
        jQuery.ajax(BS.extend(BS.Request.$default, {
          data: {
            action: "Search_autocompleter",
            id_zakaznik: BS.User.id,
            term: request.term,
            exact_phrase: exact,
            source_service: jQuery("#source_service").val()
          },
          timeout: 2000,
          success: function (data) {
            if (BS.Fce && BS.Fce.hide_top_bar_loading) BS.Fce.hide_top_bar_loading();
            var menu = jQuery(".ui-autocomplete");
            menu.data("total_category", data.total_categories);
            menu.data("total_product", data.total_products);
            response(data.found_items && data.found_items.length ? data.found_items : [{ type: "no_results_found" }]);
            placeSuggest();
          },
          error: function () {
            if (BS.Fce && BS.Fce.hide_top_bar_loading) BS.Fce.hide_top_bar_loading();
            response([{ type: "too_ambiguous" }]);
          }
        }));
      },
      select: function (event, ui) {
        if (ui.item && ui.item.url) window.location.href = ui.item.url;
        return false;
      },
      open: function () {
        jQuery(".ui-autocomplete").addClass("search_autocomplete");
        placeSuggest();
      },
      search: function () {
        var query = $input.val() || "";
        var words = query.trim() === "" ? 0 : query.trim().split(/\s+/).length;
        if (query === "" || query.length > (BS.User.max_search_query_length || 50) || words > (BS.User.max_autocomplete_words_count || 5)) {
          jQuery(".ui-autocomplete").hide();
          return false;
        }
        if (BS.Fce && BS.Fce.show_top_bar_loading) BS.Fce.show_top_bar_loading();
      },
      response: function () {
        if (BS.Fce && BS.Fce.hide_top_bar_loading) BS.Fce.hide_top_bar_loading();
        placeSuggest();
      }
    });
    var scroller = drawer.querySelector('[data-view="root"] .wa-mnav-body');
    if (scroller) scroller.addEventListener("scroll", placeSuggest);
  }

  function openMenu() {
    if (!drawer || !isMobile()) return;
    hideNative();
    showRoot();
    drawer.hidden = false;
    document.documentElement.classList.add("wa-mnav-open");
    var button = menuButton();
    if (button) button.setAttribute("aria-expanded", "true");
  }

  function closeMenu() {
    if (!drawer) return;
    closeSuggest();
    drawer.hidden = true;
    showRoot();
    document.documentElement.classList.remove("wa-mnav-open");
    var button = menuButton();
    if (button) button.setAttribute("aria-expanded", "false");
  }

  function build() {
    drawer = document.createElement("section");
    drawer.className = "wa-mnav-drawer";
    drawer.setAttribute("aria-label", "Menu");
    drawer.hidden = true;
    drawer.innerHTML =
      '<div class="wa-mnav-views">' +
        '<div class="wa-mnav-view" data-view="root">' +
          '<div class="wa-mnav-head">' +
            '<button class="wa-mnav-icon" type="button" data-mnav-close aria-label="Zavrieť menu">' +
              '<svg width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" aria-hidden="true"><path d="M6 6l12 12M18 6 6 18"/></svg>' +
            "</button>" +
            "<h2>Menu</h2>" +
          "</div>" +
          '<div class="wa-mnav-body">' +
            '<form class="wa-mnav-search" action="/search-engine.htm" method="get">' +
              '<svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="#57524a" stroke-width="2" stroke-linecap="round" aria-hidden="true"><circle cx="11" cy="11" r="7"/><path d="m20 20-3.5-3.5"/></svg>' +
              '<input name="slovo" type="search" maxlength="50" placeholder="Hľadám sedačku, posteľ, skriňu…" aria-label="Hľadanie">' +
              '<input type="hidden" name="hledatjak" value="2">' +
            "</form>" +
            '<div class="wa-mnav-quick">' +
              '<a href="/TOVAR-SKLADOM-c50_0_1.htm">TOVAR SKLADOM</a>' +
              '<a href="/VYPREDAJ-c83_0_1.htm">VÝPREDAJ</a>' +
            "</div>" +
            '<p class="wa-mnav-eyebrow">Obľúbené kategórie</p>' +
            '<div class="wa-mnav-picks">' +
              '<a href="/Sedacie-supravy-c92_493_3.htm"><img src="/fotky13204/fotos/_vyr_8619Nave-U_26878_maly-RGB.jpg" alt=""><span>Sedacie súpravy</span></a>' +
              '<a href="/Postele-c93_512_3.htm"><img src="/fotky13204/homepage_redesign/postel_cassa.jpg" alt=""><span>Postele</span></a>' +
              '<a class="is-matrace" href="/Matrace-c93_518_3.htm"><img src="/fotky13204/homepage_redesign/obrazky_kategorii/spalna/matrace_a_rosty.jpg" alt=""><span>Matrace</span></a>' +
              '<a href="/Pohovky-k-sedacim-supravam-c92_497_4.htm"><img src="/fotky13204/homepage_redesign/obrazky_kategorii/detska_izba/pohovky_a_kresla.jpg" alt=""><span>Pohovky</span></a>' +
            "</div>" +
            '<p class="wa-mnav-eyebrow">Miestnosti</p>' +
            '<div class="wa-mnav-rooms">' +
              rooms.map(function (room, index) {
                return '<button class="wa-mnav-room" type="button" data-mnav-room="' + index + '"><img src="' + esc(room.image) + '" alt=""><strong>' + esc(room.name) + "</strong>" + chevron + "</button>";
              }).join("") +
            "</div>" +
          "</div>" +
        "</div>" +
        '<div class="wa-mnav-view" data-view="room"></div>' +
      "</div>";
    document.body.appendChild(drawer);
    roomView = drawer.querySelector('[data-view="room"]');

    drawer.addEventListener("click", function (event) {
      if (event.target.closest("[data-mnav-close]")) {
        closeMenu();
        return;
      }
      if (event.target.closest("[data-mnav-back]")) {
        showRoot();
        return;
      }
      var roomButton = event.target.closest("[data-mnav-room]");
      if (roomButton) {
        closeSuggest();
        openRoom(Number(roomButton.getAttribute("data-mnav-room")));
      }
    });
    bindSuggest();

    document.addEventListener("keydown", function (event) {
      if (event.key === "Escape" && drawer && !drawer.hidden) closeMenu();
    });
  }

  document.addEventListener("click", function (event) {
    if (!isMobile() || !drawer) return;
    var button = event.target.closest("#left-box .responsive-menu-button.eshop-menu-button");
    if (!button) return;
    event.preventDefault();
    event.stopPropagation();
    if (typeof event.stopImmediatePropagation === "function") event.stopImmediatePropagation();
    if (drawer.hidden) openMenu();
    else closeMenu();
  }, true);

  function start() {
    if (drawer) return;
    build();
    syncMode();
    if (typeof mobileQuery.addEventListener === "function") mobileQuery.addEventListener("change", syncMode);
    else if (typeof mobileQuery.addListener === "function") mobileQuery.addListener(syncMode);
    window.setTimeout(hideNative, 0);
  }

  if (document.readyState === "loading") document.addEventListener("DOMContentLoaded", function () { window.setTimeout(start, 0); });
  else window.setTimeout(start, 0);
})();
