PageSourceSearch

https://miskolc.hu/themes/custom/miskolc/js/global.js?v=10.6.18

js miskolc.hu collected 2026-10-02 08:33:51 UTC 44,296 bytes, 1,173 lines download raw bytes

1/**
2 * @file
3 * Global utilities.
4 *
5 */
6(function (Drupal) {
7  "use strict";
8
9  Drupal.behaviors.miskolc = {
10    attach: function (context, settings) {},
11  };
12
13})(Drupal);
14
15jQuery(document).ready(function () {
16  // AT-TOP START
17
18  // Ellenőrizzük az oldal görgetését
19  jQuery(window).on("scroll", function () {
20    if (jQuery(window).scrollTop() === 0) {
21      // Ha az oldal tetején vagyunk, hozzáadjuk a class-t
22      jQuery("body").addClass("at-top");
23    } else {
24      // Ha nem vagyunk az oldal tetején, eltávolítjuk a class-t
25      jQuery("body").removeClass("at-top");
26    }
27  });
28
29  // Inicializáláskor is ellenőrizzük a scroll pozíciót
30  if (jQuery(window).scrollTop() === 0) {
31    jQuery("body").addClass("at-top");
32  } else {
33    jQuery("body").removeClass("at-top");
34  }
35
36  // AT-TOP END //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
37
38  // FEJÉC LOGÓ CSERÉJE STRAT
39
40  var originalImage =
41    "/themes/custom/miskolc/img/frontpage/miskolc_logo_fekvo_szines_inverz_RGB.svg";
42  var newImage =
43    "/themes/custom/miskolc/img/frontpage/miskolc_logo_fekvo_szines_RGB.svg"; // Új kép, ha az .at-top eltűnik
44
45  function checkBodyClass() {
46    if (jQuery("body").hasClass("at-top")) {
47      // Ha a body rendelkezik az .at-top class-szal, visszaállítjuk az eredeti képet
48      jQuery(".navbar-brand img").attr("src", originalImage);
49    } else {
50      // Ha a body nem rendelkezik az .at-top class-szal, lecseréljük a képet
51      jQuery(".navbar-brand img").attr("src", newImage);
52    }
53  }
54
55  // Görgetés figyelése
56  jQuery(window).on("scroll", function () {
57    checkBodyClass();
58  });
59
60  // Betöltéskor is ellenőrizzük
61  checkBodyClass();
62
63  // FEJÉC LOGÓ CSERÉJE END //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
64
65  // CÍMKEFELHŐ SZÍNEINEK BEÁLLÍTÁSA
66
67  // Végigmegy a tag-cloud-element elemeken
68  jQuery(".tag-cloud-element div a").each(function () {
69    // Keresd meg a class attribútumokat
70    var classes = jQuery(this).attr("class").split(" ");
71
72    classes.forEach(function (cls) {
73      if (cls.startsWith("tag-bg-#")) {
74        // Kivágja a színkódot a tag-bg-# osztályból és CSS-ként beállítja a háttérszínt
75        var bgColor = cls.replace("tag-bg-#", "#");
76        jQuery(this).css("background-color", bgColor);
77      } else if (cls.startsWith("tag-color-#")) {
78        // Kivágja a színkódot a tag-color-# osztályból és CSS-ként beállítja a szöveg színét
79        var fontColor = cls.replace("tag-color-#", "#");
80        jQuery(this).css("color", fontColor);
81      }
82    }, this); // Az each-ben megadott kontextust átadjuk
83  });
84
85  // HOVER EFFECT BEÁLLÍTÁSA
86
87  // Minden gombhoz tároljuk az eredeti háttérszínt a hover előtt
88  jQuery(".tag-cloud-element a").each(function () {
89    var originalBgColor = jQuery(this).css("background-color");
90    jQuery(this).data("original-bg", originalBgColor); // Eredeti szín mentése adatként
91  });
92
93  // Hover effektus beállítása minden gombra
94  jQuery(".tag-cloud-element a").hover(
95    function () {
96      // Hover eseménynél az eredeti szín lekérése
97      var originalBgColor = jQuery(this).data("original-bg");
98
99      // Sötétebb szín generálása az aktuális színből
100      var darkerColor = darkenColor(originalBgColor, -20);
101
102      // Hover esetén a sötétebb szín beállítása
103      jQuery(this).css("background-color", darkerColor);
104    },
105    function () {
106      // Az egér elhagyásakor visszaállítjuk az eredeti színt
107      var originalBgColor = jQuery(this).data("original-bg");
108      jQuery(this).css("background-color", originalBgColor);
109    }
110  );
111
112  // Segédfüggvény: RGB színt hexadecimálissá alakít
113  function rgbToHex(rgb) {
114    var rgbValues = rgb.match(/\d+/g);
115    return (
116      "#" +
117      (
118        (1 << 24) +
119        (parseInt(rgbValues[0]) << 16) +
120        (parseInt(rgbValues[1]) << 8) +
121        parseInt(rgbValues[2])
122      )
123        .toString(16)
124        .slice(1)
125        .toUpperCase()
126    );
127  }
128
129  // Segédfüggvény: Szín világosítása/sötétítése
130  function adjustBrightness(hex, amount) {
131    var usePound = false;
132
133    if (hex[0] == "#") {
134      hex = hex.slice(1);
135      usePound = true;
136    }
137
138    var num = parseInt(hex, 16);
139
140    var r = (num >> 16) + amount;
141    var g = ((num >> 8) & 0x00ff) + amount;
142    var b = (num & 0x0000ff) + amount;
143
144    if (r > 255) r = 255;
145    else if (r < 0) r = 0;
146
147    if (g > 255) g = 255;
148    else if (g < 0) g = 0;
149
150    if (b > 255) b = 255;
151    else if (b < 0) b = 0;
152
153    return (
154      (usePound ? "#" : "") +
155      ((r << 16) | (g << 8) | b).toString(16).padStart(6, "0").toUpperCase()
156    );
157  }
158
159  // Szín sötétítése
160  function darkenColor(color, amount) {
161    var colorHex = rgbToHex(color);
162    return adjustBrightness(colorHex, amount);
163  }
164
165  // CÍMKEFELHŐ SZÍNEINEK BEÁLLÍTÁSA END //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
166
167  // ANIMÁCIÓK LEJÁTSZÁSA MAGYAR
168
169  var ugyintezes_anim, menetrend_anim, telefonkonyv_anim;
170
171  // főoldali gyors elérés
172  function load_quick_access_animations_hu() {
173    if (document.getElementById("front-quick-access")) {
174      var element_ugyintezes = document.getElementById(
175        "front-quick-access-icon-ugyintezes"
176      );
177      ugyintezes_anim = lottie.loadAnimation({
178        container: element_ugyintezes,
179        renderer: "svg",
180        loop: true,
181        autoplay: false,
182        path: "/themes/custom/miskolc/img/animations/front-quick-access/contact3.json",
183      });
184
185      var element_menetrend = document.getElementById(
186        "front-quick-access-icon-menetrend"
187      );
188      menetrend_anim = lottie.loadAnimation({
189        container: element_menetrend,
190        renderer: "svg",
191        loop: true,
192        autoplay: false,
193        path: "/themes/custom/miskolc/img/animations/front-quick-access/bus3.json",
194      });
195
196      var element_telefonkonyv = document.getElementById(
197        "front-quick-access-icon-telefonkonyv"
198      );
199      telefonkonyv_anim = lottie.loadAnimation({
200        container: element_telefonkonyv,
201        renderer: "svg",
202        loop: true,
203        autoplay: false,
204        path: "/themes/custom/miskolc/img/animations/front-quick-access/calendar.json",
205      });
206    }
207  }
208  load_quick_access_animations_hu();
209
210  jQuery("#block-miskolc-gyorseleres .quick-access a").hover(
211    function () {
212      if (jQuery(this).find("#front-quick-access-icon-ugyintezes").length) {
213        ugyintezes_anim.play();
214      }
215
216      if (jQuery(this).find("#front-quick-access-icon-menetrend").length) {
217        menetrend_anim.play();
218      }
219
220      if (jQuery(this).find("#front-quick-access-icon-telefonkonyv").length) {
221        telefonkonyv_anim.play();
222      }
223    },
224    function () {
225      if (jQuery(this).find("#front-quick-access-icon-ugyintezes").length) {
226        ugyintezes_anim.stop();
227      }
228
229      if (jQuery(this).find("#front-quick-access-icon-menetrend").length) {
230        menetrend_anim.stop();
231      }
232
233      if (jQuery(this).find("#front-quick-access-icon-telefonkonyv").length) {
234        telefonkonyv_anim.stop();
235      }
236    }
237  );
238
239  var latnivalok_anim, szallas_es_gasztro_anim, hasznos_informaciok_anim, miskolcpass_anim;
240
241  // turizmus gyors elérés
242  function load_quick_access_animations_turizmus() {
243    if (document.getElementById("block-miskolc-gyorseleresturizmus")) {
244      var element_latnivalok = document.getElementById(
245        "quick-access-icon-latnivalok"
246      );
247      latnivalok_anim = lottie.loadAnimation({
248        container: element_latnivalok,
249        renderer: "svg",
250        loop: true,
251        autoplay: false,
252        path: "/themes/custom/miskolc/img/animations/turizmus-landing-page/latnivalok2.json",
253      });
254
255      var element_szallas_es_gasztro = document.getElementById(
256        "quick-access-icon-szallas-es-gasztro"
257      );
258      szallas_es_gasztro_anim = lottie.loadAnimation({
259        container: element_szallas_es_gasztro,
260        renderer: "svg",
261        loop: true,
262        autoplay: false,
263        path: "/themes/custom/miskolc/img/animations/turizmus-landing-page/szallas_gasztro.json",
264      });
265
266      var element_hasznos_informaciok = document.getElementById(
267        "quick-access-icon-hasznos-informaciok"
268      );
269      hasznos_informaciok_anim = lottie.loadAnimation({
270        container: element_hasznos_informaciok,
271        renderer: "svg",
272        loop: true,
273        autoplay: false,
274        path: "/themes/custom/miskolc/img/animations/turizmus-landing-page/hasznos_informaciok.json",
275      });
276
277      var element_miskolcpass = document.getElementById(
278        "quick-access-icon-miskolcpass"
279      );
280      miskolcpass_anim = lottie.loadAnimation({
281        container: element_miskolcpass,
282        renderer: "svg",
283        loop: true,
284        autoplay: false,
285        path: "/themes/custom/miskolc/img/animations/turizmus-landing-page/miskolc_pass.json",
286      });
287    }
288  }
289
290  load_quick_access_animations_turizmus();
291
292  jQuery("#block-miskolc-gyorseleresturizmus .quick-access a").hover(
293    function () {
294      if (jQuery(this).find("#quick-access-icon-latnivalok").length) {
295        latnivalok_anim.play();
296      }
297
298      if (jQuery(this).find("#quick-access-icon-szallas-es-gasztro").length) {
299        szallas_es_gasztro_anim.play();
300      }
301
302      if (jQuery(this).find("#quick-access-icon-hasznos-informaciok").length) {
303        hasznos_informaciok_anim.play();
304      }
305
306      if (jQuery(this).find("#quick-access-icon-miskolcpass").length) {
307        miskolcpass_anim.play();
308      }
309    },
310    function () {
311      if (jQuery(this).find("#quick-access-icon-latnivalok").length) {
312        latnivalok_anim.stop();
313      }
314
315      if (jQuery(this).find("#front-quick-access-icon-szallas-es-gasztro").length) {
316        szallas_es_gasztro_anim.stop();
317      }
318
319      if (jQuery(this).find("#quick-access-icon-hasznos-informaciok").length) {
320        hasznos_informaciok_anim.stop();
321      }
322
323      if (jQuery(this).find("#quick-access-icon-miskolcpass").length) {
324        miskolcpass_anim.stop();
325      }
326    }
327  );
328
329  // ANIMÁCIÓK LEJÁTSZÁSA MAGYAR END //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
330
331  // ANIMÁCIÓK LEJÁTSZÁSA ANGOL
332
333  var client_service_anim, timetable_anim, gift_anim, tourinform_anim ;
334
335  // front shortcut moving icons
336  function load_quick_access_animations_en() {
337    if (document.getElementById("front-quick-access-en")) {
338      var element_client_service = document.getElementById(
339        "front-quick-access-icon-client-service"
340      );
341      client_service_anim = lottie.loadAnimation({
342        container: element_client_service,
343        renderer: "svg",
344        loop: true,
345        autoplay: false,
346        path: "/themes/custom/miskolc/img/animations/front-quick-access/contact3.json",
347      });
348
349      var element_timetable = document.getElementById(
350        "front-quick-access-icon-timetable"
351      );
352      timetable_anim = lottie.loadAnimation({
353        container: element_timetable,
354        renderer: "svg",
355        loop: true,
356        autoplay: false,
357        path: "/themes/custom/miskolc/img/animations/front-quick-access/bus3.json",
358      });
359
360      var element_gift = document.getElementById(
361        "front-quick-access-icon-gift"
362      );
363      gift_anim = lottie.loadAnimation({
364        container: element_gift,
365        renderer: "svg",
366        loop: true,
367        autoplay: false,
368        path: "/themes/custom/miskolc/img/animations/front-quick-access/gift.json",
369      });
370
371      var element_tourinform = document.getElementById(
372        "front-quick-access-icon-tourinform"
373      );
374      tourinform_anim = lottie.loadAnimation({
375        container: element_tourinform,
376        renderer: "svg",
377        loop: true,
378        autoplay: false,
379        path: "/themes/custom/miskolc/img/animations/front-quick-access/latnivalok2.json",
380      });
381    }
382  }
383
384  load_quick_access_animations_en();
385
386  jQuery("#block-miskolc-quickaccess .quick-access a").hover(
387    function () {
388      if (jQuery(this).find("#front-quick-access-icon-client-service").length) {
389        client_service_anim.play();
390      }
391
392      if (jQuery(this).find("#front-quick-access-icon-timetable").length) {
393        timetable_anim.play();
394      }
395
396      if (jQuery(this).find("#front-quick-access-icon-gift").length) {
397        gift_anim.play();
398      }
399
400      if (jQuery(this).find("#front-quick-access-icon-tourinform").length) {
401        tourinform_anim.play();
402      }
403    },
404    function () {
405      if (jQuery(this).find("#front-quick-access-icon-client-service").length) {
406        client_service_anim.stop();
407      }
408
409      if (jQuery(this).find("#front-quick-access-icon-timetable").length) {
410        timetable_anim.stop();
411      }
412
413      if (jQuery(this).find("#front-quick-access-icon-gift").length) {
414        gift_anim.stop();
415      }
416
417      if (jQuery(this).find("#front-quick-access-icon-tourinform").length) {
418        tourinform_anim.stop();
419      }
420    }
421  );
422
423  var sights_anim, accommodation_gastro_anim, miskolcpass_anim;
424
425  // Tourism quick access
426  function load_quick_access_animations_tourism() {
427    if (document.getElementById("quick-access-sights")) {
428      var element_sights = document.getElementById(
429        "quick-access-icon-sights"
430      );
431      sights_anim = lottie.loadAnimation({
432        container: element_sights,
433        renderer: "svg",
434        loop: true,
435        autoplay: false,
436        path: "/themes/custom/miskolc/img/animations/turizmus-landing-page/latnivalok2.json",
437      });
438
439      var element_accommodation_gastro = document.getElementById(
440        "quick-access-icon-accommodation-gastro"
441      );
442      accommodation_gastro_anim = lottie.loadAnimation({
443        container: element_accommodation_gastro,
444        renderer: "svg",
445        loop: true,
446        autoplay: false,
447        path: "/themes/custom/miskolc/img/animations/turizmus-landing-page/szallas_gasztro.json",
448      });
449
450      var element_miskolcpass = document.getElementById(
451        "quick-access-icon-miskolcpass"
452      );
453      miskolcpass_anim = lottie.loadAnimation({
454        container: element_miskolcpass,
455        renderer: "svg",
456        loop: true,
457        autoplay: false,
458        path: "/themes/custom/miskolc/img/animations/turizmus-landing-page/miskolc_pass.json",
459      });
460    }
461  }
462
463  load_quick_access_animations_tourism();
464
465  jQuery("#block-miskolc-quickaccesstourism .quick-access a").hover(
466    function () {
467      if (jQuery(this).find("#quick-access-icon-sights").length) {
468        sights_anim.play();
469      }
470
471      if (jQuery(this).find("#quick-access-icon-accommodation-gastro").length) {
472        accommodation_gastro_anim.play();
473      }
474
475      if (jQuery(this).find("#quick-access-icon-miskolcpass").length) {
476        miskolcpass_anim.play();
477      }
478    },
479    function () {
480      if (jQuery(this).find("#quick-access-icon-sights").length) {
481        sights_anim.stop();
482      }
483
484      if (jQuery(this).find("#quick-access-icon-accommodation-gastro").length) {
485        accommodation_gastro_anim.stop();
486      }
487
488      if (jQuery(this).find("#quick-access-icon-miskolcpass").length) {
489        miskolcpass_anim.stop();
490      }
491    }
492  );
493
494  // ANIMÁCIÓK LEJÁTSZÁSA ANGOL END //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
495
496  // Kereső mező helykitöltő
497  jQuery("html:lang(hu) .path-frontpage #edit-keys--2").attr("placeholder", "Miben segíthetünk?");
498  jQuery("html:lang(en) .path-frontpage #edit-keys--2").attr("placeholder", "Search");
499
500  // Kereső mező effekt
501  jQuery("#edit-keys--2").focus(function() {
502    jQuery(".front-video-background").css("filter", "brightness(30%)");
503    jQuery(".front-picture-background").css("filter", "brightness(30%)");
504  });
505  jQuery("#edit-keys--2").blur(function() {
506    jQuery(".front-video-background").css("filter", "brightness(100%)");
507    jQuery(".front-picture-background").css("filter", "brightness(100%)");
508  });
509  // Kereső mező helykitöltő END
510
511  // Nem fordítható mezők fordítsai
512
513  jQuery("html:lang(en) .field.field--name-field-image.field--type-image.field--label-above .field__label").text("Photos");
514
515
516  // Nem fordítható mezők fordítsai END
517
518  // MENÜ BETÖLTŐDÉSI BEVILLANÁS MEGSZŰNTETÉSE
519
520  jQuery(".sf-menu li").mouseenter(function () {
521  
522    jQuery(this).children("ul").css({
523      "display": "flex",
524      "visibility": "visible"
525    });
526  });
527
528  // jQuery(".sf-menu li").mouseleave(function () {
529  //   let $submenu = $(this).children("ul");
530
531  // });
532
533
534  // MENÜ BETÖLTŐDÉSI BEVILLANÁS MEGSZŰNTETÉSE
535
536    let hoverTriggered = false;
537
538  jQuery(document).ready(function () {
539    // Második szintű menü megnyitása fókuszra
540    jQuery(".sf-depth-1 > a").on("focus", function () {
541        let $parentMenuItem = jQuery(this).parent(); // Az aktuális szintű menüpont
542        let $subMenu = $parentMenuItem.children("ul"); // Az alatta lévő submenu
543
544        // Ha van submenu, azt megjelenítjük
545        if ($subMenu.length) {
546            $parentMenuItem.addClass("sfHover");
547            $subMenu.removeClass("sf-hidden").css({
548                "display": "flex",
549                "visibility": "visible"
550            });
551        }
552
553        // Bezárjuk az összes többi sibling submenu-jét
554        $parentMenuItem.siblings().each(function () {
555            let $siblingSubMenu = jQuery(this).children("ul");
556            if ($siblingSubMenu.length) {
557                jQuery(this).removeClass("sfHover");
558                $siblingSubMenu.addClass("sf-hidden").css({
559                    "display": "none",
560                    "visibility": "hidden"
561                });
562            }
563        });
564    });
565
566    // Harmadik szintű menü megnyitása fókuszra
567    jQuery(".sf-depth-2 > a").on("focus", function () {
568        let $parentMenuItem = jQuery(this).parent(); // Az aktuális szintű menüpont
569        let $subMenu = $parentMenuItem.children("ul"); // Az alatta lévő submenu
570
571        // Ha van submenu, azt megjelenítjük
572        if ($subMenu.length) {
573            $parentMenuItem.addClass("sfHover");
574            $subMenu.removeClass("sf-hidden").css({
575                "display": "flex",
576                "visibility": "visible"
577            });
578        }
579
580        // Bezárjuk az összes többi sibling submenu-jét
581        $parentMenuItem.siblings().each(function () {
582            let $siblingSubMenu = jQuery(this).children("ul");
583            if ($siblingSubMenu.length) {
584                jQuery(this).removeClass("sfHover");
585                $siblingSubMenu.addClass("sf-hidden").css({
586                    "display": "none",
587                    "visibility": "hidden"
588                });
589            }
590        });
591    });
592
593    // Fókuszvesztés (blur) esemény kezelése
594    jQuery(".sf-depth-1 > a, .sf-depth-2 > a").on("blur", function () {
595        let $currentMenuItem = jQuery(this).parent();
596
597        setTimeout(function () {
598            // Ellenőrizzük, hogy nincs-e aktív fókusz a teljes menüben
599            if (!jQuery(":focus").closest($currentMenuItem).length) {
600                $currentMenuItem.removeClass("sfHover");
601                $currentMenuItem.children("ul").addClass("sf-hidden").css({
602                    "display": "none",
603                    "visibility": "hidden"
604                });
605            }
606        }, 100); // Kis késleltetés az új fókusz ellenőrzéséhez
607    });
608
609    // Tab indexek beállítása a menüelemekhez
610    jQuery(".sf-menu li > a").attr("tabindex", 0);
611});
612
613
614    // Élet a városban
615    jQuery(document).ready(function () {
616      let menuTimeout;
617    
618      // Egér belépésekor megnyitjuk a menüt
619      jQuery("#main-menu-link-contentfd578be0-baf2-48c7-9ec9-f18921eeedb3").mouseenter(function () {
620        clearTimeout(menuTimeout); // Megszakítjuk a bezárási késleltetést
621        let $secondLevelMenu = jQuery("li#main-menu-link-content7c84a252-31ef-43e0-92fb-71a48f1abead");
622        $secondLevelMenu.addClass("sfHover");
623        $secondLevelMenu.children("ul").removeClass("sf-hidden").css({
624          "display": "flex",
625          "visibility": "visible"
626        });
627      });
628    
629      // Egér elhagyásakor késleltetjük a menü bezárását
630      jQuery("#main-menu-link-contentfd578be0-baf2-48c7-9ec9-f18921eeedb3").mouseleave(function () {
631        let $secondLevelMenu = jQuery("li#main-menu-link-content7c84a252-31ef-43e0-92fb-71a48f1abead");
632    
633        menuTimeout = setTimeout(function () {
634          $secondLevelMenu.removeClass("sfHover");
635          $secondLevelMenu.children("ul").addClass("sf-hidden").css({
636            "display": "none",
637            "visibility": "hidden"
638          });
639        }, 300); // 300 ms késleltetés
640      });
641    
642      // Az almenüre is alkalmazzuk a belépési és kilépési logikát
643      jQuery("li#main-menu-link-content7c84a252-31ef-43e0-92fb-71a48f1abead").mouseenter(function () {
644        clearTimeout(menuTimeout); // Megszakítjuk a bezárási késleltetést
645        jQuery(this).addClass("sfHover");
646        jQuery(this).children("ul").removeClass("sf-hidden").css({
647          "display": "flex",
648          "visibility": "visible"
649        });
650      });
651    
652      jQuery("li#main-menu-link-content7c84a252-31ef-43e0-92fb-71a48f1abead").mouseleave(function () {
653        let $submenu = jQuery(this);
654    
655        menuTimeout = setTimeout(function () {
656          $submenu.removeClass("sfHover");
657          $submenu.children("ul").addClass("sf-hidden").css({
658            "display": "none",
659            "visibility": "hidden"
660          });
661        }, 300); // 300 ms késleltetés
662      });
663
664      jQuery("section.row.region.region-header-menu .menu-eletavarosban").on("focus", function () {
665        let $secondLevelMenu = jQuery("li#main-menu-link-content7c84a252-31ef-43e0-92fb-71a48f1abead");
666      
667        if (!$secondLevelMenu.hasClass("sfHover")) {
668          $secondLevelMenu.addClass("sfHover");
669          $secondLevelMenu.children("ul").removeClass("sf-hidden").css({
670            "display": "flex",
671            "visibility": "visible"
672          });
673        }
674      });
675      
676      jQuery("section.row.region.region-header-menu .menu-varoshaza").on("focus", function () {
677        let $secondLevelMenu = jQuery("li#main-menu-link-contentbceba185-9cc2-4472-bff8-ec03ba085b79");
678      
679        if (!$secondLevelMenu.hasClass("sfHover")) {
680          $secondLevelMenu.addClass("sfHover");
681          $secondLevelMenu.children("ul").removeClass("sf-hidden").css({
682            "display": "flex",
683            "visibility": "visible"
684          });
685        }
686      });
687            
688      jQuery("section.row.region.region-header-menu .menu-varoshaza").on("mouseenter", function () {
689        let $secondLevelMenu = jQuery("li#main-menu-link-contentbceba185-9cc2-4472-bff8-ec03ba085b79");
690      
691        if (!$secondLevelMenu.hasClass("sfHover")) {
692          $secondLevelMenu.addClass("sfHover");
693          $secondLevelMenu.children("ul").removeClass("sf-hidden").css({
694            "display": "flex",
695            "visibility": "visible"
696          });
697        }
698      });
699    });
700    
701
702
703    jQuery(document).ready(function () {
704      let menuTimeout;
705    
706
707      // CITY  GOVERMENT 
708
709
710      // Egér belépésekor megnyitjuk a menüt
711      jQuery("#main-navigation-menu-link-content12095c77-f0bd-49dd-884a-5194be333b78").mouseenter(function () {
712        clearTimeout(menuTimeout); // Megszakítjuk a bezárási késleltetést
713        let $secondLevelMenu = jQuery("li#main-navigation-menu-link-contentfa941e6b-2400-42c6-a5ed-2a7bad61cbb4");
714        $secondLevelMenu.addClass("sfHover");
715        $secondLevelMenu.children("ul").removeClass("sf-hidden").css({
716          "display": "flex",
717          "visibility": "visible"
718        });
719      });
720    
721      // Egér elhagyásakor késleltetjük a menü bezárását
722      jQuery("#main-navigation-menu-link-content12095c77-f0bd-49dd-884a-5194be333b78").mouseleave(function () {
723        let $secondLevelMenu = jQuery("li#main-navigation-menu-link-contentfa941e6b-2400-42c6-a5ed-2a7bad61cbb4");
724    
725        menuTimeout = setTimeout(function () {
726          $secondLevelMenu.removeClass("sfHover");
727          $secondLevelMenu.children("ul").addClass("sf-hidden").css({
728            "display": "none",
729            "visibility": "hidden"
730          });
731        }, 300); // 300 ms késleltetés
732      });
733    
734      // Az almenüre is alkalmazzuk a belépési és kilépési logikát
735      jQuery("li#main-navigation-menu-link-contentfa941e6b-2400-42c6-a5ed-2a7bad61cbb4").mouseenter(function () {
736        clearTimeout(menuTimeout); // Megszakítjuk a bezárási késleltetést
737        jQuery(this).addClass("sfHover");
738        jQuery(this).children("ul").removeClass("sf-hidden").css({
739          "display": "flex",
740          "visibility": "visible"
741        });
742      });
743    
744      jQuery("li#main-navigation-menu-link-contentfa941e6b-2400-42c6-a5ed-2a7bad61cbb4").mouseleave(function () {
745        let $submenu = jQuery(this);
746    
747        menuTimeout = setTimeout(function () {
748          $submenu.removeClass("sfHover");
749          $submenu.children("ul").addClass("sf-hidden").css({
750            "display": "none",
751            "visibility": "hidden"
752          });
753        }, 300); // 300 ms késleltetés
754      });
755
756
757
758      // LIFE IN THE CITY
759            // Egér belépésekor megnyitjuk a menüt
760            jQuery("#main-navigation-menu-link-contentba83ce17-85b9-4503-bffc-97f860be27ce").mouseenter(function () {
761              clearTimeout(menuTimeout); // Megszakítjuk a bezárási késleltetést
762              let $secondLevelMenu = jQuery("li#main-navigation-menu-link-content821c85bd-3335-4eff-8727-ca4cbdc16db3");
763              $secondLevelMenu.addClass("sfHover");
764              $secondLevelMenu.children("ul").removeClass("sf-hidden").css({
765                "display": "flex",
766                "visibility": "visible"
767              });
768            });
769          
770            // Egér elhagyásakor késleltetjük a menü bezárását
771            jQuery("#main-navigation-menu-link-contentba83ce17-85b9-4503-bffc-97f860be27ce").mouseleave(function () {
772              let $secondLevelMenu = jQuery("li#main-navigation-menu-link-content821c85bd-3335-4eff-8727-ca4cbdc16db3");
773          
774              menuTimeout = setTimeout(function () {
775                $secondLevelMenu.removeClass("sfHover");
776                $secondLevelMenu.children("ul").addClass("sf-hidden").css({
777                  "display": "none",
778                  "visibility": "hidden"
779                });
780              }, 300); // 300 ms késleltetés
781            });
782          
783            // Az almenüre is alkalmazzuk a belépési és kilépési logikát
784            jQuery("li#main-navigation-menu-link-content821c85bd-3335-4eff-8727-ca4cbdc16db3").mouseenter(function () {
785              clearTimeout(menuTimeout); // Megszakítjuk a bezárási késleltetést
786              jQuery(this).addClass("sfHover");
787              jQuery(this).children("ul").removeClass("sf-hidden").css({
788                "display": "flex",
789                "visibility": "visible"
790              });
791            });
792          
793            jQuery("li#main-navigation-menu-link-content821c85bd-3335-4eff-8727-ca4cbdc16db3").mouseleave(function () {
794              let $submenu = jQuery(this);
795          
796              menuTimeout = setTimeout(function () {
797                $submenu.removeClass("sfHover");
798                $submenu.children("ul").addClass("sf-hidden").css({
799                  "display": "none",
800                  "visibility": "hidden"
801                });
802              }, 300); // 300 ms késleltetés
803            });
804
805    });
806    
807  // MENÜ BETÖLTŐDÉSI BEVILLANÁS MEGSZŰNTETÉSE END
808
809
810  // OSZTÁLY ELTÁVOLAÍTÁSA
811
812  jQuery("#views-bootstrap-frontpage-page-1").removeClass("row");
813  jQuery("#views-bootstrap-aktualis-aloldal-block-1").removeClass("row");
814  jQuery("#block-miskolc-fonavigacio-2 ul li ul").removeClass("dropdown-menu");
815  jQuery("#block-miskolc-fonavigacio-2 a.nav-link.dropdown-toggle").attr("data-bs-toggle","");
816
817  
818
819  // OSZTÁLY ELTÁVOLAÍTÁSA END //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
820
821  // HEADER MENÜ KÖZÉPRE IGAZÍTÁSA
822
823  function centerMenu() {
824    // Megkapjuk a képernyő szélességét
825    var windowWidth = jQuery(window).width();
826    
827    // Ha a képernyő szélessége 1366px vagy kisebb, akkor a menü szélessége 1170px, különben 1270px
828    var menuWidth = (windowWidth <= 1366) ? 1170 : 1270;
829    
830    // Számoljuk ki a left eltolást
831    var leftOffset = (windowWidth - menuWidth) / 2;
832
833    // Ellenőrizzük az oldal nyelvét
834    var isHungarian = jQuery('html').attr('lang') === 'hu';
835    var isEnglish = jQuery('html').attr('lang') === 'en';
836
837    // Csak a magyar oldalakon futtatjuk ezt
838    if (isHungarian) {
839        jQuery('#block-miskolc-fonavigacio ul li.sf-depth-1 > ul').css('left', leftOffset + 'px');
840    }
841
842    // Csak az angol oldalakon futtatjuk ezt
843    if (isEnglish) {
844        jQuery('#block-miskolc-mainnavigation ul li.sf-depth-1 > ul').css('left', leftOffset + 'px');
845    }
846  }
847
848// Meghívjuk a funkciót oldalbetöltéskor
849centerMenu();
850
851// Újraszámoljuk az eltolást, ha az ablak méretét megváltoztatják
852jQuery(window).resize(function() {
853    centerMenu();
854});
855
856  // HEADER MENÜ KÖZÉPRE IGAZÍTÁSA END
857
858  // MÁSODIK MENÜSZINTHEZ BEFOGLALÓ DIV ADÁSA //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
859
860
861    // Ellenőrizzük az oldal nyelvét
862    var isHungarian = jQuery('html').attr('lang') === 'hu';
863    var isEnglish = jQuery('html').attr('lang') === 'en';
864
865    // Magyar oldalon: az ul tartalmát becsomagoljuk egy div.sub-menu elembe
866    if (isHungarian) {
867      jQuery('#block-miskolc-fonavigacio ul li.sf-depth-1 > ul').each(function() {
868        jQuery(this).contents().wrapAll('<div class="sub-menu"></div>');
869        });
870    }
871
872    // Angol oldalon: az ul tartalmát becsomagoljuk egy div.sub-menu elembe
873    if (isEnglish) {
874      jQuery('#block-miskolc-mainnavigation ul li.sf-depth-1 > ul').each(function() {
875        jQuery(this).contents().wrapAll('<div class="sub-menu"></div>');
876        });
877    }
878
879  // LAPOZÓ OSZTÁLYOK HOZZÁADÁSA //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
880
881  jQuery('.pagination a > span[aria-hidden="true"]').addClass('pagination-span');
882  jQuery('.pagination a[title="Ugrás a következő oldalra"]').addClass('pagination-next');
883  jQuery('.pagination a[title="Ugrás az utolsó oldalra"]').addClass('pagination-last');
884  jQuery('.pagination a[title="Ugrás az előző oldalra"]').addClass('pagination-prev');
885  jQuery('.pagination a[title="Ugrás az első oldalra"]').addClass('pagination-first');
886
887  // LAPOZÓ OSZTÁLYOK HOZZÁADÁSA //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
888
889  // MOBIL MENÜ //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
890
891  // Az icon osztályú elem kiválasztása
892  var iconElement = jQuery('#block-miskolc-responsivemenumobileicon .icon');
893  
894  // Három span elem hozzáadása
895  iconElement.append('<span class="line1"></span>');
896  iconElement.append('<span class="line2"></span>');
897  iconElement.append('<span class="line3"></span>');
898
899  // MOBIL MENÜ END //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
900
901  // HÍREK KATEGÓRIA VÍZSZINTES GÖRGETÉSE //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
902
903  var scrollStartPos = 0;
904
905  jQuery('.path-frontpage .view-filters').on('touchstart', function(e) {
906    scrollStartPos = this.scrollLeft + e.touches[0].pageX;
907  });
908
909  jQuery('.path-frontpage .view-filters').on('touchmove', function(e) {
910    this.scrollLeft = scrollStartPos - e.touches[0].pageX;
911    e.preventDefault(); // Megakadályozza a függőleges görgetést
912  });
913
914// HÍREK KATEGÓRIA VÍZSZINTES GÖRGETÉSE //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
915
916// BETTER SOCIAL  //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
917
918  jQuery('.social-sharing-buttons-button.share-facebook').append('<span>Facebook</span>');
919  jQuery('.social-sharing-buttons-button.share-email').append('<span>E-mail</span>');
920  // jQuery('.bssb-printlink').append('<span>Oldal nyomtatása</span>');
921  // jQuery('html:lang(en) .bssb-printlink').append('<span>Print this page</span>');
922  // Ellenőrzi az oldal nyelvét
923  var lang = jQuery('html').attr('lang');
924
925  if (lang === 'hu') {
926      // Magyar nyelv esetén
927      jQuery('.bssb-printlink').append('<span>Oldal nyomtatása</span>');
928  } else if (lang === 'en') {
929      // Angol nyelv esetén
930      jQuery('.bssb-printlink').append('<span>Print this page</span>');
931  }
932  
933// BETTER SOCIAL  //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
934
935// ALOLDAL KÁRTYAKÉP BEÁLLÍTÁSA  //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
936
937  jQuery('.sub-card-bg').each(function() {
938      var imageUrl = jQuery(this).data('imageurl');
939      if (imageUrl) {
940        jQuery(this).css('background-image', 'url(' + imageUrl + ')');
941      }
942  });
943
944// ALOLDAL KÁRTYAKÉP BEÁLLÍTÁSA END  //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
945
946
947// MOBILON A MENÜ NYITÁSA/ZÁRÁSA  ///////////////////////////
948
949function isMobile() {
950  return window.matchMedia("(max-width: 991px)").matches;
951}
952
953// Állandó értékek a stílusokhoz
954const CUSTOM_STYLE_1 = `
955  <style id="custom-menu-style1">
956    #block-miskolc-views-block-szulo-menupont-neve-block-1 .view-content.row a:after {
957      background-image: url(/themes/custom/miskolc/img/page/menu-up-arrow-green.svg);
958    }
959  </style>`;
960const CUSTOM_STYLE_2 = `
961  <style id="custom-menu-style2">
962    #block-miskolc-views-block-szulo-menupont-neve-block-1 .view-content.row a:after {
963      background-image: url(/themes/custom/miskolc/img/page/menu-down-arrow-green.svg);
964    }
965  </style>`;
966
967// Függvény a stílus hozzáadására
968function addStyle(styleId, styleContent) {
969  if (!document.getElementById(styleId)) {
970    document.head.insertAdjacentHTML('beforeend', styleContent);
971  }
972}
973
974// Függvény a stílus eltávolítására
975function removeStyle(styleId) {
976  const styleElement = document.getElementById(styleId);
977  if (styleElement) {
978    styleElement.remove();
979  }
980}
981
982// Menü állapotának toggolása
983function toggleMenu(submenu) {
984  const isHidden = submenu.style.display === 'none' || submenu.style.display === '';
985  submenu.style.display = isHidden ? 'flex' : 'none';
986}
987
988// Kattintási esemény kezelése
989function handleMenuClick(e) {
990  const submenu = document.getElementById('block-miskolc-views-block-bal-oldalsav-menu-block-1');
991  if (!submenu) return;
992
993  const isHidden = window.getComputedStyle(submenu).display === 'none';
994
995  // Stílusok kezelése
996  if (isHidden) {
997    addStyle('custom-menu-style1', CUSTOM_STYLE_1);
998    removeStyle('custom-menu-style2');
999  } else {
1000    addStyle('custom-menu-style2', CUSTOM_STYLE_2);
1001    removeStyle('custom-menu-style1');
1002  }
1003
1004  // Mobil eszközökön előzzük meg az alapértelmezett viselkedést és toggoljuk a menüt
1005  if (isMobile()) {
1006    e.preventDefault();
1007    toggleMenu(submenu);
1008  }
1009}
1010
1011// Események hozzárendelése
1012document.querySelectorAll('.view.view-szulo-menupont-neve .views-field-views-conditional-field .field-content a')
1013  .forEach(link => link.addEventListener('click', handleMenuClick));
1014
1015
1016
1017
1018  // A böngésző ablakának újraméretezésekor frissítjük a láthatóságot
1019  jQuery(window).resize(function() {
1020    var submenu = jQuery('#block-miskolc-views-block-bal-oldalsav-menu-block-1');
1021    
1022    if (!isMobile()) {
1023        // Ha nem mobil eszköz, biztosítjuk, hogy a menü látható legyen
1024        submenu.show();
1025    } else {
1026        // Ha mobil eszköz, akkor elrejtjük, hogy a felhasználó kinyithassa
1027        if (submenu.css('display') === 'block') {
1028            submenu.hide();
1029        }
1030    }
1031  });
1032
1033// MOBILON A MENÜ NYITÁSA/ZÁRÁSA END ///////////////////////////
1034
1035// AKTUÁLIS ALOLDAL H1 ///////////////////////////
1036jQuery(".path-aktualis .current-page-title").replaceWith(function () {
1037  return jQuery("<h1>", {
1038      class: "current-page-title",
1039      html: jQuery(this).html()
1040  });
1041});
1042
1043// AKTUÁLIS ALOLDAL H1 END ///////////////////////////
1044
1045// BACKTOTOP OLDAL ALJÁN IGAZÍTÁSA ///////////////////////////
1046
1047jQuery(window).on('scroll', function () {
1048  var scrollTop = jQuery(window).scrollTop();
1049  var windowHeight = jQuery(window).height();
1050  var documentHeight = jQuery(document).height();
1051
1052  if (scrollTop + windowHeight >= documentHeight - 100) {
1053    jQuery('#backtotop').addClass('at-bottom');
1054  } else {
1055    jQuery('#backtotop').removeClass('at-bottom');
1056  }
1057});
1058
1059
1060Drupal.behaviors.backToTopAdjust = {
1061  attach: function (context, settings) {
1062
1063    jQuery(window, context).once('backToTopAdjust').on('scroll', function () {
1064      console.log("Scroll esemény (Drupal behaviors)!");
1065    });
1066  }
1067};
1068
1069// BACKTOTOP OLDAL ALJÁN IGAZÍTÁSA  END ///////////////////////////
1070
1071// FANCYBOX ATTRIBÚTUM HOZZÁADÁSA  //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
1072
1073  jQuery(".field.field--name-field-image.field--type-image .field__item a").attr("data-fancybox", "gallery");
1074  jQuery(".node--type-kozgyulesi-tag .field.field--name-field-vezerkep.field--type-image a").attr("data-fancybox", "gallery");
1075
1076
1077// FANCYBOX ATTRIBÚTUM HOZZÁADÁSA END  //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
1078
1079// TAB INDEX MÓDOSÍTÁSA  //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
1080
1081  jQuery("#quicktabs-tabpage-fooldali_aktualis_blokkok-0").attr("tabindex", "-1");
1082  jQuery("#sliding-popup .find-more-button").attr("tabindex", "1");
1083  jQuery("#sliding-popup #cookie-category-analitika_elemzes").attr("tabindex", "1");
1084  jQuery("#sliding-popup button.eu-cookie-compliance-save-preferences-button.button.button--small").attr("tabindex", "1");
1085  jQuery("#sliding-popup .agree-button.eu-cookie-compliance-default-button.button.button--small.button--primary").attr("tabindex", "1");
1086
1087// TAB INDEX MÓDOSÍTÁSA END  //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
1088
1089
1090// Android eszközökön a mobil menü megjelenésének kijavítása //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
1091
1092  if (window.matchMedia("(max-width: 600px)").matches) {
1093    jQuery(':root').css('--mm-max-size', '290px');
1094  }
1095  
1096// Android eszközökön a mobil menü megjelenésének kijavítása //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
1097
1098// Kitüntetések keresőmező //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
1099
1100var views = ['.view-miskolc-varos-kituntetettjei', '.view-miskolc-varos-diszpolgarai'];
1101
1102views.forEach(function(viewClass) {
1103    jQuery(document).on('input', viewClass + ' [id^=edit-title]', function() {
1104        var titleValue = jQuery(this).val();
1105        jQuery(viewClass + ' [id^=edit-field-kituntetett-eloneve-value]').val(titleValue);
1106    });
1107});
1108
1109// Kitüntetések keresőmező //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
1110
1111
1112
1113// TÁBLÁZATOKHOZ TABLE_RESPONSIVE BEFOGLAÓ HOZZÁADÁSA //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
1114
1115jQuery('table').each(function() {
1116  // Ellenőrzi, hogy a táblázat már be van-e csomagolva egy .table-responsive div-be
1117  if (!jQuery(this).parent().hasClass('table-responsive')) {
1118    // Új table-responsive div létrehozása és a táblázat becsomagolása
1119    jQuery(this).wrap('<div class="table-responsive"></div>');
1120  }
1121});
1122
1123// TÁBLÁZATOKHOZ TABLE_RESPONSIVE BEFOGLAÓ HOZZÁADÁSA //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
1124
1125});
1126
1127
1128// SZÉCHENYI TERV PLUSZ FIX LOGÓ ////////////////////////////////////////////////////////////////////////
1129
1130// if (!jQuery('#stp-overlay').length) {
1131
1132//   jQuery('body').append(`
1133//     <div id="stp-overlay">
1134    
1135//       <button id="stp-close" aria-label="Bezárás">×</button>
1136
1137//       <a href="https://www.palyazat.gov.hu/" target="_blank" rel="noopener">
1138//         <img
1139//           src="/sites/default/files/2026-05/szechenyi-terv-plusz_allo_infoblokk_rgb_tarsfinanszirozas.png"
1140//           alt="Széchenyi Terv Plusz"
1141//         >
1142//       </a>
1143
1144//     </div>
1145//   `);
1146
1147// }
1148
1149// Bezárás
1150jQuery(document).on('click', '#stp-close', function () {
1151  jQuery('#stp-overlay').fadeOut(200);
1152});
1153
1154// SZÉCHENYI TERV PLUSZ FIX LOGÓ END ////////////////////////////////////////////////////////////////////////
1155
1156
1157
1158jQuery(document).ajaxStop(function () {
1159  // ROW OSZTÁLY ELTÁVOLAÍTÁSA
1160  jQuery("div[id^=views-bootstrap-frontpage-page-1]").removeClass("row");
1161  jQuery("div[id^=views-bootstrap-aktualis-aloldal-block-1]").removeClass(
1162    "row"
1163  );
1164
1165  jQuery('.pagination a > span[aria-hidden="true"]').addClass('pagination-span');
1166  jQuery('.pagination a[title="Ugrás a következő oldalra"]').addClass('pagination-next');
1167  jQuery('.pagination a[title="Ugrás az utolsó oldalra"]').addClass('pagination-last');
1168  jQuery('.pagination a[title="Ugrás az előző oldalra"]').addClass('pagination-prev');
1169  jQuery('.pagination a[title="Ugrás az első oldalra"]').addClass('pagination-first');
1170});
1171
1172
1173

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.