PageSourceSearch

https://www.escuelaunidadeditorial.es/themes/custom/esue/js/main.js?v=10.6.11

js escuelaunidadeditorial.es collected 2026-10-02 12:03:54 UTC 9,905 bytes, 308 lines download raw bytes

1// const changeLogo = () => {
2//   const url = window.location.href;
3//   console.log(url);
4//   if (url.includes("businessschool")) {
5//     document.querySelector(".menu__logo img").setAttribute("src", "/sites/default/files/2024-03/Grupo%20668.svg");
6//     document.querySelector("#block-esue-logofooter img").setAttribute("src", "/sites/default/files/2024-03/Grupo%20668.svg");
7//     document.querySelector("#block-esue-logofooter").style.maxWidth = "200px";
8//   }
9// };
10
11// set EBS footer logo click event
12/*
13  const target = document.querySelector("#block-esue-logofooter");
14  if (target !== null) {
15    target.style.cursor = "pointer";
16    target.addEventListener("click", function () {
17      window.location.href = "/businessschool";
18    });
19  };
20};
21*/
22window.addEventListener("load", function () {
23  // changeLogo();
24  // setClickEvent();
25  const testimonioSlider = () => {
26    const slider = document.querySelector(".testimonios__slider");
27    const prevButton = document.querySelector(".prev-btn");
28    const nextButton = document.querySelector(".next-btn");
29
30    if (prevButton) {
31      prevButton.addEventListener("click", function () {
32        slider.insertAdjacentElement("afterbegin", slider.lastElementChild);
33        hideFirstAndLastSlides();
34      });
35    }
36    if (prevButton) {
37      nextButton.addEventListener("click", function () {
38        slider.insertAdjacentElement("beforeend", slider.firstElementChild);
39        hideFirstAndLastSlides();
40      });
41    }
42
43    const hideFirstAndLastSlides = function () {
44      const slides = Array.from(slider.querySelectorAll(".slide"));
45      slides.forEach((slide) => slide.classList.remove("opacity-0"));
46      slider.firstElementChild.classList.add("opacity-0");
47      slider.lastElementChild.classList.add("opacity-0");
48    };
49  };
50
51  /*
52   * My adaptation of:
53   *   Flux 3D Carousel
54   *   Author: Dean Coulter
55   *   Licensed under the MIT license
56   *   Version 0.1
57   *
58   *   - Changed from figure element cards to any html.
59   *   - Removed use of id, to allow multiple carousels.
60   *   - Blocking of events on cards in the background.
61   *   - Dimming of cards in the background.
62   *   - Fixed continuous rotation.
63   *   - Added functionality for multiple carousels.
64   *   - Adding clickable arrow icon buttons on the sides.
65   */
66  function cardCarousel3d(carousels) {
67    var rotateHandler = function (evt) {
68      var carousel = this.parentElement;
69      if (carousel.classList.contains("card-carousel") === false) {
70        var carousel = carousel.parentElement;
71      }
72      var rotate_int = parseInt(carousel.dataset.rotateInt || 0);
73      if (this.classList.contains("counterclockwise")) {
74        rotate_int += 1;
75      } else if (this.classList.contains("clockwise")) {
76        rotate_int -= 1;
77      }
78      carousel.dataset.rotateInt = rotate_int;
79      animate_slider(carousel);
80    };
81    for (var i = 0; i < carousels.length; i++) {
82      var carousel = carousels[i];
83      var inner = carousel.querySelector(".inner-carousel");
84      var cards = carousel.querySelectorAll(".inner-carousel > div");
85      var size = cards.length;
86      var panelSize = inner.clientWidth;
87      var translateZ =
88        Math.round(panelSize / 2 / Math.tan(Math.PI / size)) * 1.7;
89      inner.style.transform = "rotateY(0deg) translateZ(-" + translateZ + "px)";
90      var btnLeft = carousel.querySelector(".button-spin.counterclockwise");
91      if (btnLeft !== null) {
92        btnLeft.addEventListener("click", rotateHandler, false);
93      }
94      var btnRight = carousel.querySelector(".button-spin.clockwise");
95      if (btnRight !== null) {
96        btnRight.addEventListener("click", rotateHandler, false);
97      }
98      animate_slider(carousel);
99    }
100
101    function animate_slider(carousel) {
102      var rotate_int = parseInt(carousel.dataset.rotateInt || 0);
103      var inner = carousel.querySelector(".inner-carousel");
104      var cards = carousel.querySelectorAll(".inner-carousel > div");
105      var size = cards.length;
106      var panelSize = inner.clientWidth;
107      var translateZ =
108        Math.round(panelSize / 2 / Math.tan(Math.PI / size)) * 1.7;
109      var rotateY = 0;
110      var ry = 360 / size;
111      rotateY = ry * rotate_int;
112
113      for (var i = 0; i < size; i++) {
114        var z = rotate_int * ry + i * ry;
115        var child = cards[i];
116        child.style.transform =
117          "rotateY(" +
118          z +
119          "deg) translateZ(" +
120          translateZ / 2 +
121          "px) rotateY(" +
122          (-z).toString() +
123          "deg)";
124        child.classList.remove("clockwise");
125        child.classList.remove("front");
126        child.classList.remove("counterclockwise");
127        child.removeEventListener("click", rotateHandler, false);
128        var zz = z % 360;
129        if (zz === 0) {
130          child.classList.add("front");
131        } else if (zz === ry || zz === -360 + ry) {
132          child.classList.add("clockwise");
133          child.addEventListener("click", rotateHandler, false);
134        } else if (zz === 360 - ry || zz === 0 - ry) {
135          child.classList.add("counterclockwise");
136          child.addEventListener("click", rotateHandler, false);
137        }
138      }
139    }
140  }
141
142  function showSlides(n) {
143    let i;
144    let slides = document.getElementsByClassName("hero-slider__slide");
145
146    if (slides && slides.length > 0) {
147      let animate = document.getElementById("slider__content");
148      // Check if 'animate' is null.
149      if (!animate) {
150        console.error("animate element not found");
151        return;
152      }
153      // let dots = document.getElementsByClassName("slider__pagination");
154
155      //If we go past the final slide, take us back to the beginning.
156      if (n > slides.length) {
157        slideIndex = 1;
158      }
159
160      //If we go less than 1, take us to the final slide.
161      if (n < 1) {
162        slideIndex = slides.length;
163      }
164
165      //Apply .2 opacity class for every instant of our slides.
166      for (i = 0; i < slides.length; i++) {
167        // Add a check here to see if the element is not null
168        if (slides[i]){
169          slides[i].style.opacity = "0"; // Access 'style' only if the element exists.
170        }
171
172      }
173
174      //setRRSSLinks();
175      // const clampString = (str) => {
176      //   return str.trim().substring(0, 3);
177      // };
178      //
179      // const clampEventBadge = async () => {
180      //   const elements = document.querySelectorAll(
181      //     ".event__card-date-badge-month",
182      //   );
183      //   await elements.forEach((element) => {
184      //     const month = element.textContent;
185      //     element.textContent = clampString(month);
186      //   });
187      // };
188
189      // clampEventBadge();
190
191      //Apply 1 opacity and apply is-active class for current slide and dot.
192      if (slides && slides.length > 0 && slideIndex > 0 && slideIndex <= slides.length  && slideIndex - 1 < slides.length) {
193        if (slides[slideIndex - 1]) {
194          slides[slideIndex - 1].style.opacity = "1";
195        }
196
197        // dots[slideIndex - 1].className += " is-active";
198        if (slideIndex > 1) {
199          animate.style.transform = "translateX(-" + (slideIndex - 1) + "00%)";
200        } else {
201          animate.style.transform = "translateX(0%)";
202        }
203      }
204    } else {
205      console.error("No elements with class 'hero-slider__slide' found.");
206      return; // Exit the function early if no elements are found.
207    }
208
209
210  }
211
212
213  cardCarousel3d(document.querySelectorAll(".card-carousel"));
214
215  let slideIndex = 1;
216  showSlides(slideIndex);
217  // eslint-disable-next-line no-unused-vars
218  function moveSlide(n) {
219    showSlides((slideIndex += n));
220  }
221  const prev = document.querySelector("#prev");
222  const next = document.querySelector("#next");
223  if (prev !== null && next !== null) {
224    prev.addEventListener("click", function () {
225      moveSlide(-1);
226    });
227    next.addEventListener("click", function () {
228      moveSlide(1);
229    });
230  }
231  // function currentSlide (n) {
232  //   showSlides(slideIndex = n);
233  // }
234
235
236
237
238  let autoSlider = null;
239
240  const stopAutoSlider = () => {
241    clearInterval(autoSlider);
242  };
243
244  const moveAutoSlider = () => {
245    autoSlider = setInterval(function () {
246      moveSlide(1);
247    }, 45000);
248  };
249  if (document.getElementById("slider__content") !== null) {
250    document
251      .getElementById("slider__content")
252      .addEventListener("mouseover", stopAutoSlider);
253    document
254      .getElementById("slider__content")
255      .addEventListener("mouseout", moveAutoSlider);
256  }
257  //setRRSSLinks();
258
259  const toggleMobileMenu = () => {
260    const toggler = document.querySelector(".menu__logo-button");
261    const target = document.querySelector(".menu");
262    if (toggler !== null && target !== null) {
263      toggler.addEventListener("click", function () {
264        toggler.classList.toggle("is--open");
265        target.classList.toggle("is--open");
266      });
267    }
268  };
269
270  testimonioSlider();
271  moveAutoSlider();
272  toggleMobileMenu();
273});
274
275const galleryItem = document.querySelectorAll(".card-gallery__container div");
276
277const carouselModal = (e) => {
278  e.preventDefault();
279
280  const modal = document.querySelector(".modal.gallery__modal");
281  const modalImg = document.querySelector(".modal__image img");
282
283  modalImg.setAttribute("src", "");
284  const imgSrc = e.target.getAttribute("src");
285  modalImg.setAttribute("src", imgSrc);
286
287  modal.classList.add("modal--visible");
288};
289const closeCarouselModal = () => {
290  const modal = document.querySelector(".modal.gallery__modal");
291  modal.classList.remove("modal--visible");
292};
293galleryItem.forEach((item) => {
294  item.addEventListener("click", carouselModal);
295});
296
297const closeModal = document.querySelector(".modal__close, .modal");
298if (closeModal !== null) {
299  closeModal.addEventListener("click", closeCarouselModal);
300}
301
302/*
303
304const EBSmenu = document.querySelector(".header-ebs .menu__logo");
305if (EBSmenu !== null) {
306  EBSmenu.href = "/businessschool";
307}
308*/

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.