function LoadCatalogMenu2() { const retriesCount = 1; LoadCatalogMenuWithRetries2(retriesCount); function LoadCatalogMenuWithRetries2(attemptsCount) { const timestamp = new Date().getTime(); const url = `/api/catalog_menu_json.asp?t=${timestamp}`; $.get(url) .done(function (response) { let htmlResult = generateCatalogHtml(response); $("#catalog-menu-content").append(htmlResult) $("#header-desktop-catalog-menu ul").each((index, element) => { let defaultElementsShowedCount = 6; let liElements = $(element).find("li"); if (liElements.length > defaultElementsShowedCount) { let template = document.getElementById("catalog-menu-more-button"); let itemNode = template.content.cloneNode(true); $(element).after(itemNode) $(element).parent().find("button[name-more]").on("click", function (ev) { let $listItems = $(ev.currentTarget).parent().find("ul > li") let hasHiddenItems = $listItems.filter(".d-none").length > 0; if (hasHiddenItems) { $listItems.removeClass("d-none"); $(ev.currentTarget).find("span").text($(ev.currentTarget).attr("name-less")) $(ev.currentTarget).find("svg > use").attr("href", "/build/sprite.svg#chevron-up") } else { $listItems.each((i, li) => { if (i >= defaultElementsShowedCount) { $(li).addClass("d-none"); } }); $(ev.currentTarget).find("span").text($(ev.currentTarget).attr("name-more")) $(ev.currentTarget).find("svg > use").attr("href", "/build/sprite.svg#chevron-bottom") } }) } liElements.each((i, li) => { if (i >= defaultElementsShowedCount) { $(li).addClass("d-none"); } }); }) let newIcon = $('html').attr("light-theme") != null ? "sun" : "moon"; $("#catalog-menu-content [name='theme-icon']").attr("xlink:href", `/build/sprite.svg#${newIcon}`); let catalogMenuSliders = ["#keys-and-pincodes-catalog-slider-mobile", "#keys-and-pincodes-catalog-slider-desktop"] catalogMenuSliders.forEach((sliderId) => { new Swiper(`${sliderId} div[name='catalog-slider']`, { navigation: { nextEl: `${sliderId} [name='catalog-slider-right-toggle']`, prevEl: `${sliderId} [name='catalog-slider-left-toggle']`, }, spaceBetween: 8, slidesPerView: "auto", breakpoints: { 1200: { spaceBetween: 12 } } }) }) }) .fail(function (jqXHR) { const errorDetails = { url: url, status: jqXHR.status, statusText: jqXHR.statusText, responseText: jqXHR.responseText, readyState: jqXHR.readyState, }; SendDataToLog(jqXHR.status, JSON.stringify(errorDetails)); if (attemptsCount > 0) { LoadCatalogMenuWithRetries2(attemptsCount - 1); } }); } const baseCategoryUrl = "/cat/" function generateMobileThirdLevelMenu(currentRazdel) { let codeLi = ""; if (currentRazdel.Children) { Object.keys(currentRazdel.Children).forEach((childKey) => { const child = currentRazdel.Children[childKey]; const href = `${baseCategoryUrl}${child.UrlPreparedName}/${childKey}`; codeLi += `
  • ${child.Title} ${child.Cnt}
  • `; }); } return codeLi; } function generateDesktopThirdLevelMenu(currentRazdel) { let codeLi = ""; if (currentRazdel.Children) { Object.keys(currentRazdel.Children).forEach((childKey) => { const child = currentRazdel.Children[childKey]; const href = `${baseCategoryUrl}${child.UrlPreparedName}/${childKey}`; codeLi += `
  • ${child.Title} ${child.Cnt}
  • `; }); } return codeLi; } function GetActiveClass(targetValue, currentValue) { return targetValue == currentValue ? "custom-dropdown-item--active" : ""; } function generateCatalogHtml(data) { let code = ""; let themeIcon = $('html').attr("light-theme") != null ? "sun" : "moon" let href = "" code = code + "
    " // " code = code + "
    " code = code + "
    " code = code + "" code = code + "" code = code + "" code = code + "" + data["10"]["Title"] + "" code = code + "" code = code + "" code = code + "" code = code + "
    " code = code + "
    " code = code + "" code = code + "" code = code + "" code = code + "" + data["2"]["Title"] + "" code = code + "" code = code + "" code = code + "" code = code + "
    " code = code + "
    " code = code + "" code = code + "" code = code + "" code = code + "" + data["138"]["Title"] + "" code = code + "" code = code + "" code = code + "" code = code + "
    " code = code + "
    " code = code + "" code = code + "" code = code + "" code = code + "" + data["1"]["Title"] + "" code = code + "" code = code + "" code = code + "" code = code + "
    " code = code + "
    " code = code + "
    " code = code + "" code = code + "" code = code + "
    " code = code + "" code = code + "
    " code = code + "
    " // " code = code + "
    " // " code = code + "
    " code = code + "" code = code + "
    " code = code + "" code = code + "
    " code = code + "
    " code = code + "
    " code = code + "" code = code + "" code = code + "" code = code + "
    " code = code + "
    " code = code + "" code = code + "" code = code + "" code = code + "
    " code = code + "
    " code = code + "" code = code + "" code = code + "" code = code + "
    " code = code + "
    " code = code + "" code = code + "" code = code + "" code = code + "
    " code = code + "
    " code = code + "" code = code + "" code = code + "" code = code + "
    " code = code + "
    " code = code + "" code = code + "" code = code + "" code = code + "
    " code = code + "
    " code = code + "" code = code + "" code = code + "" code = code + "
    " code = code + "
    " code = code + "" code = code + "" code = code + "" code = code + "
    " code = code + "
    " code = code + "" code = code + "" code = code + "" code = code + "
    " code = code + "
    " code = code + "" code = code + "" code = code + "" code = code + "
    " code = code + "
    " code = code + "" code = code + "" code = code + "" code = code + "
    " code = code + "
    " code = code + "" code = code + "" code = code + "" code = code + "
    " code = code + "
    " code = code + "
    " code = code + "" code = code + "
    " // " code = code + "
    " currentRazdel = data["10"]["Children"]["13"] //IP-телефония" href = baseCategoryUrl + currentRazdel["UrlPreparedName"] + "/" + currentRazdel["ID_R"] code = code + "
    " code = code + "" code = code + "
    " code = code + "
      " code = code + generateMobileThirdLevelMenu(currentRazdel) code = code + "
    " code = code + "
    " code = code + "
    " code = code + "
    " currentRazdel = data["10"]["Children"]["7682"] //Игры href = "/games/" code = code + "" code = code + "
    " code = code + "" code = code + "
    " code = code + "
    " code = code + "
    " currentRazdel = data["10"]["Children"]["12"] //Мобильная связь" href = baseCategoryUrl + currentRazdel["UrlPreparedName"] + "/" + currentRazdel["ID_R"] code = code + "" code = code + "
    " code = code + "
      " code = code + generateMobileThirdLevelMenu(currentRazdel) code = code + "
    " code = code + "
    " code = code + "
    " code = code + "
    " currentRazdel = data["10"]["Children"]["11674"] //Платежные системы" href = baseCategoryUrl + currentRazdel["UrlPreparedName"] + "/" + currentRazdel["ID_R"] code = code + "" code = code + "
    " code = code + "
      " code = code + generateMobileThirdLevelMenu(currentRazdel) code = code + "
    " code = code + "
    " code = code + "
    " code = code + "
    " currentRazdel = data["10"]["Children"]["9168"] //Спутниковое ТВ" href = baseCategoryUrl + currentRazdel["UrlPreparedName"] + "/" + currentRazdel["ID_R"] code = code + "" code = code + "
    " code = code + "
      " code = code + generateMobileThirdLevelMenu(currentRazdel) code = code + "
    " code = code + "
    " code = code + "
    " code = code + "
    " currentRazdel = data["10"]["Children"]["82795"] //Карты" href = baseCategoryUrl + currentRazdel["UrlPreparedName"] + "/" + currentRazdel["ID_R"] code = code + "" code = code + "
    " code = code + "
      " code = code + generateMobileThirdLevelMenu(currentRazdel) code = code + "
    " code = code + "
    " code = code + "
    " code = code + "
    " code = code + "
    " // " code = code + "
    " code = code + "" code = code + "" // " code = code + "
    " code = code + "
    " currentRazdel = data["2"]["Children"]["121"] //PC" href = baseCategoryUrl + currentRazdel["UrlPreparedName"] + "/" + currentRazdel["ID_R"] code = code + "" code = code + "
    " code = code + "
      " code = code + generateMobileThirdLevelMenu(currentRazdel) code = code + "
    " code = code + "
    " code = code + "
    " code = code + "
    " currentRazdel = data["2"]["Children"]["70"] //Безопасность" href = baseCategoryUrl + currentRazdel["UrlPreparedName"] + "/" + currentRazdel["ID_R"] code = code + "" code = code + "
    " code = code + "
      " code = code + generateMobileThirdLevelMenu(currentRazdel) code = code + "
    " code = code + "
    " code = code + "
    " code = code + "
    " currentRazdel = data["2"]["Children"]["51"] //Игры" href = baseCategoryUrl + currentRazdel["UrlPreparedName"] + "/" + currentRazdel["ID_R"] code = code + "" code = code + "
    " code = code + "
      " code = code + generateMobileThirdLevelMenu(currentRazdel) code = code + "
    " code = code + "
    " code = code + "
    " code = code + "
    " currentRazdel = data["2"]["Children"]["60"] //Программирование" href = baseCategoryUrl + currentRazdel["UrlPreparedName"] + "/" + currentRazdel["ID_R"] code = code + "" code = code + "
    " code = code + "
      " code = code + generateMobileThirdLevelMenu(currentRazdel) code = code + "
    " code = code + "
    " code = code + "
    " code = code + "
    " currentRazdel = data["2"]["Children"]["7"] //Интернет" href = baseCategoryUrl + currentRazdel["UrlPreparedName"] + "/" + currentRazdel["ID_R"] code = code + "" code = code + "
    " code = code + "
      " code = code + generateMobileThirdLevelMenu(currentRazdel) code = code + "
    " code = code + "
    " code = code + "
    " code = code + "
    " currentRazdel = data["2"]["Children"]["42"] //Мультимедиа и графика" href = baseCategoryUrl + currentRazdel["UrlPreparedName"] + "/" + currentRazdel["ID_R"] code = code + "" code = code + "
    " code = code + "
      " code = code + generateMobileThirdLevelMenu(currentRazdel) code = code + "
    " code = code + "
    " code = code + "
    " code = code + "
    " currentRazdel = data["2"]["Children"]["77"] //Редакторы" href = baseCategoryUrl + currentRazdel["UrlPreparedName"] + "/" + currentRazdel["ID_R"] code = code + "" code = code + "
    " code = code + "
      " code = code + generateMobileThirdLevelMenu(currentRazdel) code = code + "
    " code = code + "
    " code = code + "
    " code = code + "
    " currentRazdel = data["2"]["Children"]["82"] //Утилиты" href = baseCategoryUrl + currentRazdel["UrlPreparedName"] + "/" + currentRazdel["ID_R"] code = code + "" code = code + "
    " code = code + "
      " code = code + generateMobileThirdLevelMenu(currentRazdel) code = code + "
    " code = code + "
    " code = code + "
    " code = code + "
    " currentRazdel = data["2"]["Children"]["111"] //Образование, наука, техника" href = baseCategoryUrl + currentRazdel["UrlPreparedName"] + "/" + currentRazdel["ID_R"] code = code + "" code = code + "
    " code = code + "
      " code = code + generateMobileThirdLevelMenu(currentRazdel) code = code + "
    " code = code + "
    " code = code + "
    " code = code + "
    " currentRazdel = data["2"]["Children"]["125"] //Мобильное ПО" href = baseCategoryUrl + currentRazdel["UrlPreparedName"] + "/" + currentRazdel["ID_R"] code = code + "" code = code + "
    " code = code + "
      " code = code + generateMobileThirdLevelMenu(currentRazdel) code = code + "
    " code = code + "
    " code = code + "
    " code = code + "
    " currentRazdel = data["2"]["Children"]["376"] //Мобильная связь" href = baseCategoryUrl + currentRazdel["UrlPreparedName"] + "/" + currentRazdel["ID_R"] code = code + "" code = code + "
    " code = code + "
      " code = code + generateMobileThirdLevelMenu(currentRazdel) code = code + "
    " code = code + "
    " code = code + "
    " code = code + "
    " currentRazdel = data["2"]["Children"]["11326"] //Продвижение сайтов (SEO)" href = baseCategoryUrl + currentRazdel["UrlPreparedName"] + "/" + currentRazdel["ID_R"] code = code + "" code = code + "
    " code = code + "
      " code = code + generateMobileThirdLevelMenu(currentRazdel) code = code + "
    " code = code + "
    " code = code + "
    " code = code + "
    " code = code + "
    " // " code = code + "
    " code = code + "" code = code + "" // " code = code + "
    " code = code + " " code = code + "
    " currentRazdel = data["138"]["Children"]["19830"] //iTunes + App Store" href = baseCategoryUrl + currentRazdel["UrlPreparedName"] + "/" + currentRazdel["ID_R"] code = code + "" code = code + "
    " code = code + "
      " code = code + generateMobileThirdLevelMenu(currentRazdel) code = code + "
    " code = code + "
    " code = code + "
    " code = code + "
    " currentRazdel = data["138"]["Children"]["5"] //Разное" href = baseCategoryUrl + currentRazdel["UrlPreparedName"] + "/" + currentRazdel["ID_R"] code = code + "" code = code + "
    " code = code + "
      " code = code + generateMobileThirdLevelMenu(currentRazdel) code = code + "
    " code = code + "
    " code = code + "
    " code = code + "
    " currentRazdel = data["138"]["Children"]["198"] //Доступ к ресурсам" href = baseCategoryUrl + currentRazdel["UrlPreparedName"] + "/" + currentRazdel["ID_R"] code = code + "" code = code + "
    " code = code + "
      " code = code + generateMobileThirdLevelMenu(currentRazdel) code = code + "
    " code = code + "
    " code = code + "
    " code = code + "
    " currentRazdel = data["138"]["Children"]["378"] //Базы данных" href = baseCategoryUrl + currentRazdel["UrlPreparedName"] + "/" + currentRazdel["ID_R"] code = code + "" code = code + "
    " code = code + "
      " code = code + generateMobileThirdLevelMenu(currentRazdel) code = code + "
    " code = code + "
    " code = code + "
    " code = code + "
    " currentRazdel = data["138"]["Children"]["431"] //Системы активной рекламы" href = baseCategoryUrl + currentRazdel["UrlPreparedName"] + "/" + currentRazdel["ID_R"] code = code + "" code = code + "
    " code = code + "
      " code = code + generateMobileThirdLevelMenu(currentRazdel) code = code + "
    " code = code + "
    " code = code + "
    " code = code + "
    " currentRazdel = data["138"]["Children"]["18409"] //Дизайн" href = baseCategoryUrl + currentRazdel["UrlPreparedName"] + "/" + currentRazdel["ID_R"] code = code + "" code = code + "
    " code = code + "
      " code = code + generateMobileThirdLevelMenu(currentRazdel) code = code + "
    " code = code + "
    " code = code + "
    " code = code + "
    " currentRazdel = data["138"]["Children"]["21895"] //Подарочные сертификаты" href = baseCategoryUrl + currentRazdel["UrlPreparedName"] + "/" + currentRazdel["ID_R"] code = code + "" code = code + "
    " code = code + "
      " code = code + generateMobileThirdLevelMenu(currentRazdel) code = code + "
    " code = code + "
    " code = code + "
    " code = code + "
    " currentRazdel = data["138"]["Children"]["21940"] //Игровые аккаунты" href = baseCategoryUrl + currentRazdel["UrlPreparedName"] + "/" + currentRazdel["ID_R"] code = code + "" code = code + "
    " code = code + "
      " code = code + generateMobileThirdLevelMenu(currentRazdel) code = code + "
    " code = code + "
    " code = code + "
    " code = code + "
    " currentRazdel = data["138"]["Children"]["24274"] //Социальные сети" href = baseCategoryUrl + currentRazdel["UrlPreparedName"] + "/" + currentRazdel["ID_R"] code = code + "" code = code + "
    " code = code + "
      " code = code + generateMobileThirdLevelMenu(currentRazdel) code = code + "
    " code = code + "
    " code = code + "
    " code = code + "
    " currentRazdel = data["138"]["Children"]["117439"] //Криптоиндустрия" href = baseCategoryUrl + currentRazdel["UrlPreparedName"] + "/" + currentRazdel["ID_R"] code = code + "" code = code + "
    " code = code + "
      " code = code + generateMobileThirdLevelMenu(currentRazdel) code = code + "
    " code = code + "
    " code = code + "
    " code = code + "
    " currentRazdel = data["138"]["Children"]["20363"] //Видео и аудиокурсы, уроки " href = baseCategoryUrl + currentRazdel["UrlPreparedName"] + "/" + currentRazdel["ID_R"] code = code + "" code = code + "
    " code = code + "
    " currentRazdel = data["138"]["Children"]["158"] //Хостинг" href = baseCategoryUrl + currentRazdel["UrlPreparedName"] + "/" + currentRazdel["ID_R"] code = code + "" code = code + "
    " code = code + "
    " currentRazdel = data["138"]["Children"]["3572"] //Шаблоны для сайтов " href = baseCategoryUrl + currentRazdel["UrlPreparedName"] + "/" + currentRazdel["ID_R"] code = code + "" code = code + "
    " code = code + "
    " currentRazdel = data["138"]["Children"]["21708"] //Приглашения /инвайты " href = baseCategoryUrl + currentRazdel["UrlPreparedName"] + "/" + currentRazdel["ID_R"] code = code + "" code = code + "
    " code = code + "
    " code = code + "
    " // " code = code + "
    " code = code + "" code = code + "" // " code = code + "
    " Object.keys(data["1"]["Children"]).forEach((childKey) => { currentRazdel = data["1"]["Children"][childKey] href = baseCategoryUrl + currentRazdel["UrlPreparedName"] + "/" + currentRazdel["ID_R"] dataBsId = "for-" + currentRazdel["UrlPreparedName"] + "-content" code = code + "
    " code = code + "" code = code + "
    " code = code + "
      " code = code + generateMobileThirdLevelMenu(currentRazdel) code = code + "
    " code = code + "
    " code = code + "
    " }) code = code + "
    " code = code + "
    " code = code + "
    " code = code + "
    " code = code + "
    " code = code + "" code = code + "
    " code = code + "" return code; } }