1var slider; 2 3function cambiar_idioma(e) { 4 if (!e) e = $("#cambio_de_idiomaselect").find("option:selected").val(); 5 var loc = location.pathname.split("/"); 6 console.log("idioma:", e, loc); 7 // if(loc.length > 3) { 8 // var urlToOpen = "/" + sitio.pais + "/"+e+"/"+ loc[loc.length - 1] 9 // console.log(urlToOpen) 10 // $.post(urlToOpen, { idioma: e }, function (e) { 11 // window.open(urlToOpen, "_self"); 12 // }); 13 // } else { 14 $.post("/" + sitio.pais + "/idioma", { idioma: e }, function (e) { 15 window.open(e.url, "_self"); 16 }); 17 // } 18} 19function cambiar_categoria(e) { 20 if (!e) e = $("#filtro_categoria").find("option:selected").val(); 21 $(".list__recetas__item").each(function (r, o) { 22 var a = $(o); 23 $.inArray(e, a.data("categoria")) >= 0 ? a.show() : a.hide(); 24 }); 25} 26function fbShare(e, r, o) { 27 var a = screen.height / 2 - o / 2, 28 t = screen.width / 2 - r / 2; 29 window.open( 30 "http://www.facebook.com/sharer.php?s=100&p[url]=" + e, 31 "sharer", 32 "top=" + 33 a + 34 ",left=" + 35 t + 36 ",toolbar=0,status=0,width=" + 37 r + 38 ",height=" + 39 o 40 ); 41} 42function validateEmail(e) { 43 return /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/.test(e); 44} 45$(function () { 46 $(".linkRecetaTrigger").click(function (e) { 47 e.preventDefault(); 48 var r = $(this) 49 .closest(".list__recetas__item") 50 .find("a.originalLink") 51 .attr("href"); 52 window.location.href = r; 53 }), 54 $(".name__product").click(function (e) { 55 e.preventDefault(); 56 var r = $(this) 57 .closest(".item__product") 58 .find("a.foto__productLink") 59 .attr("href"); 60 window.location.href = r; 61 }), 62 $("#select__idiomMobile").change(function () { 63 var lang = $("#select__idiomMobile").find("option:selected").val(); 64 $.post( 65 "/" + sitio.pais + "/idioma", 66 { idioma: lang }, 67 function (e) { 68 window.open(e.url, "_self"); 69 } 70 ); 71 }), 72 $("#filtro_categoria").change(function () { 73 cambiar_categoria($(this).val()); 74 }), 75 $("body").css("display", "inherit"), 76 $(".slider__beneficios").length > 0 && 77 $(".slider__beneficios").bxSlider({ 78 pager: true, 79 controls: false, 80 touchEnabled: !0, 81 responsive: !0, 82 adaptiveHeight: true, 83 slideSelector: "div.itemSlider__beneficios", 84 }), 85 $(".slider__productos").length > 0 && 86 ((maxSlidesCounter = 4), 87 (slideCount = $( 88 ".slider__productos .itemSlider__productos" 89 ).length), 90 (maxSlidesCounter = slideCount >= 4 ? 3 : slideCount >= 3 ? 2 : 1), 91 console.log(slideCount, maxSlidesCounter), 92 (slider = 93 $(window).width() > 767 94 ? $(".slider__productos").bxSlider({ 95 pager: !1, 96 minSlides: 1, 97 maxSlides: maxSlidesCounter, 98 moveSlides: 1, 99 slideWidth: 180, 100 controls: !0, 101 responsive: !0, 102 infiniteLoop: false, 103 hideControlOnEnd: true, 104 touchEnabled: !1, 105 slideSelector: "div.itemSlider__productos", 106 nextSelector: ".next__control", 107 prevSelector: ".prev__control", 108 nextText: '<span class="inner__control"></i>', 109 prevText: '<span class="inner__control"></i>', 110 }) 111 : $(".slider__productos").bxSlider({ 112 pager: false, 113 minSlides: 1, 114 maxSlides: 1, 115 moveSlides: 1, 116 slideWidth: 200, 117 controls: true, 118 responsive: !0, 119 infiniteLoop: false, 120 hideControlOnEnd: true, 121 slideSelector: "div.itemSlider__productos", 122 nextSelector: ".next__control", 123 prevSelector: ".prev__control", 124 nextText: '<span class="innes__control"></i>', 125 prevText: '<span class="innes__control"></i>', 126 }))), 127 $(".popup-youtube, .popup-vimeo, .popup-gmaps").length > 0 && 128 $(".popup-youtube, .popup-vimeo, .popup-gmaps").magnificPopup({ 129 type: "iframe", 130 mainClass: "mfp-fade", 131 removalDelay: 160, 132 preloader: !1, 133 fixedContentPos: !1, 134 }), 135 $(".open-popup-link").magnificPopup({ 136 type: "inline", 137 closeBtnInside: true, 138 autoFocusLast: true, 139 focus: ".mfp-close", 140 }), 141 $(".openVideo__receta").length > 0 && 142 "?type=video" == window.location.search && 143 setTimeout(function () { 144 $(".openVideo__receta").trigger("click"); 145 }, 200), 146 $(".triggersearch__header").click(function () { 147 $(".c-header-search").toggleClass("open"), 148 $(".c-header-search").hasClass("open") 149 ? setTimeout(function () { 150 $(".box-search input").focus(); 151 }, 800) 152 : setTimeout(function () { 153 $(".box-search input").blur(); 154 }, 800); 155 }), 156 // $(".triggermenu__header").click(function () { 157 // $(".header .nav__menu").toggleClass("open") 158 // $(this).toggleClass('open') 159 // $(this).hasClass('open') ? ( 160 // $(this).attr('aria-expanded','true') , 161 // $('.header > a').focus() 162 // ) 163 // : 164 // $(this).attr('aria-expanded','false').focus() 165 // }), 166 // $(".close__menu, .nav__menu a").click(function () { 167 // $(".header .nav__menu").removeClass("open") 168 // $(".triggermenu__header").attr('aria-expanded','false').removeClass('open') 169 // }), 170 $(".rating__receta").length > 0 && 171 $(".rating__receta").starRating({ 172 initialRating: 0, 173 strokeColor: "#F9B605", 174 strokeWidth: 10, 175 starSize: 25, 176 useFullStars: !0, 177 emptyColor: "transparent", 178 strokeColor: "#562E07", 179 }), 180 $(".cart__header").click(function () { 181 $(".ctn__cart").toggleClass("open"); 182 }), 183 $(".accordion > li:eq(0) a").addClass("active").next().slideDown(), 184 $(".accordion a").click(function (e) { 185 var r = $(this).closest("li").find(".ctn"); 186 $(this).closest(".accordion").find(".ctn").not(r).slide
186Up(), 187 $(this).hasClass("active") 188 ? $(this).removeClass("active") 189 : ($(this) 190 .closest(".accordion") 191 .find("a.active") 192 .removeClass("active"), 193 $(this).addClass("active")), 194 r.stop(!1, !0).slideToggle(), 195 e.preventDefault(); 196 }), 197 $(".sendFormSearch").click(function (e) { 198 e.preventDefault(), 199 "" == $(".box-search input").val() 200 ? $(".box-search input").focus() 201 : $("#FormSearch").submit(); 202 }), 203 document.addEventListener("DOMContentLoaded", function () { 204 window.location.hash && 205 smoothScroll.animateScroll(null, window.location.hash); 206 }), 207 $("form").on("change", ".file-upload-field", function () { 208 $(this) 209 .parent(".file-upload-wrapper") 210 .attr( 211 "data-text", 212 $(this) 213 .val() 214 .replace(/.*(\/|\\)/, "") 215 ); 216 }), 217 $("#formnewrecipe").submit(function (e) { 218 e.preventDefault(), 219 $("#formnewrecipe .form__send").addClass("disabled"); 220 var r = !0; 221 if ( 222 ("" === $("#nameUser").val() && 223 ($("#nameUser").addClass("error"), (r = !1)), 224 "" === $("#apaternoUser").val() && 225 ($("#apaternoUser").addClass("error"), (r = !1)), 226 "" === $("#emailUser").val() && 227 ($("#amaternoUser").addClass("error"), (r = !1)), 228 "" === $("#emailUser").val() && 229 ($("#emailUser").addClass("error"), (r = !1)), 230 validateEmail($("#emailUser").val()) || 231 ($("#emailUser").addClass("error"), (r = !1)), 232 "" === $("#tituloRecipe").val() && 233 ($("#tituloRecipe").addClass("error"), (r = !1)), 234 "" === $("#selectCategory").val() && 235 ($("#selectCategory").addClass("error"), (r = !1)), 236 0 === $("#photoRecipe").get(0).files.length && 237 ($(".file-upload-wrapper").addClass("error"), (r = !1)), 238 "" === $("#ingredientsRecipe").val() && 239 ($("#ingredientsRecipe").addClass("error"), (r = !1)), 240 "" === $("#preparationRecipe").val() && 241 ($("#preparationRecipe").addClass("error"), (r = !1)), 242 0 == $("#aceptAviso").prop("checked") && 243 ($("#aceptAviso").addClass("error"), (r = !1)), 244 console.log(r), 245 !0 === r) 246 ) { 247 console.log("serialize form"); 248 var o = $("#formnewrecipe")[0]; 249 new FormData(o); 250 $.ajax({ 251 url: "./nueva_receta_usuario", 252 type: "POST", 253 enctype: "multipart/form-data", 254 processData: !1, 255 contentType: !1, 256 cache: !1, 257 data: new FormData(this), 258 cache: !1, 259 success: function (e, r) { 260 console.log("is success"); 261 }, 262 }) 263 .done(function (e) { 264 console.log("done", e), 265 1 == e.valido 266 ? ($( 267 ".ctn__overlayResponse .card__overlayResponse.error" 268 ).fadeOut(0), 269 $( 270 ".ctn__overlayResponse .card__overlayResponse.success" 271 ) 272 .fadeIn() 273 .focus(), 274 $(".ctn__overlayResponse").fadeIn(), 275 $("#formnewrecipe input").val(""), 276 $("#formnewrecipe select").val(""), 277 $("#formnewrecipe .file-upload-wrapper").attr( 278 "data-text", 279 "" 280 ), 281 $("#formnewrecipe textarea").val(""), 282 $("#formnewrecipe #aceptAviso").prop( 283 "checked", 284 !1 285 ), 286 $("#formnewrecipe .form__send").removeClass( 287 "disabled" 288 )) 289 : ($( 290 ".ctn__overlayResponse .card__overlayResponse.success" 291 ).fadeOut(0), 292 $( 293 ".ctn__overlayResponse .card__overlayResponse.error .desc__overlayResponse" 294 ) 295 .text(e.mensaje) 296 .focus(), 297 $( 298 ".ctn__overlayResponse .card__overlayResponse.error" 299 ).fadeIn(), 300 $(".ctn__overlayResponse").fadeIn(), 301 $("#formnewrecipe input").val(""), 302 $("#formnewrecipe select").val(""), 303 $("#formnewrecipe .file-upload-wrapper").attr( 304 "data-text", 305 "" 306 ), 307 $("#formnewrecipe textarea").val(""), 308 $("#formnewrecipe #aceptAviso").prop( 309 "checked", 310 !1 311 ), 312 $("#formnewrecipe .form__send").removeClass( 313 "disabled" 314 )); 315 }) 316 .fail(function (e) { 317 console.log("fail", e); 318 }); 319 } else $("#formnewrecipe .form__send").removeClass("disabled"); 320 console.log($("#formnewrecipe").serialize()); 321 }), 322 $(".close__overlayResponse").click(function () { 323 $(".ctn__overlayResponse").fadeOut(); 324 contactModalOpen = false;
325 }), 326 $(".close__overlayContact").click(function () { 327 $(".ctn__overlayResponse").fadeOut(); 328 contactModalOpen = false; 329 }), 330 $('#formnewrecipe input[type="text"]').keyup(function () { 331 "" !== $(this).val() && $(this).removeClass("error"); 332 }), 333 $('#formnewrecipe input[type="email"]').keyup(function () { 334 "" !== $(this).val() && $(this).removeClass("error"); 335 }), 336 $("#formnewrecipe select").change(function () { 337 "" !== $(this).val() && $(this).removeClass("error"); 338 }), 339 $("#formnewrecipe select").change(function () { 340 "" !== $(this).val() && $(this).removeClass("error"); 341 }), 342 $("#formnewrecipe textarea").keyup(function () { 343 "" !== $(this).val() && $(this).removeClass("error"); 344 }), 345 $("#photoRecipe").on("change", function () { 346 console.log("change file"), 347 0 == !$("#photoRecipe").get(0).files.length && 348 $(".file-upload-wrapper").removeClass("error"); 349 }), 350 $("#aceptAviso").change(function () { 351 1 == $("#aceptAviso").prop("checked") && 352 $(this).removeClass("error"); 353 }), 354 $(".btn__like").click(function (e) { 355 e.preventDefault(), $(this).addClass("disabled"); 356 var r = $(this).data("id"); 357 console.log(r), 358 $.post("/tu_receta_like", { id: r }, function (e) { 359 console.log(e), 360 1 == e.valido 361 ? ($(".result__message").text( 362 "Gracias por tu voto" 363 ), 364 $(".btn__like span").text( 365 parseInt($(".btn__like span").text()) + 1 366 ), 367 setTimeout(function () { 368 $(".result__message").text(""); 369 }, 4e3), 370 $(".btn__like").removeClass("disabled")) 371 : ($(".result__message").text(e.mensaje), 372 setTimeout(function () { 373 $(".result__message").text(""); 374 }, 4e3), 375 $(".btn__like").removeClass("disabled")); 376 }); 377 }), 378 $("#formContact").submit(function (e) { 379 e.preventDefault(); 380 var idioma = $("#cambio_de_idiomaselect") 381 .find("option:selected") 382 .val(); 383 var r = !0; 384 "" == $("#nameUser").val() && 385 ($("#nameUser") 386 .addClass("error") 387 .closest(".form__group") 388 .find(".message__describe__error"), 389 (r = !1)), 390 "" == $("#apaternoUser").val() && 391 ($("#apaternoUser") 392 .addClass("error") 393 .closest(".form__group") 394 .find(".message__describe__error"), 395 (r = !1)), 396 $("#amaternoUser").length > 0 && 397 "" == $("#amaternoUser").val() && 398 ($("#amaternoUser") 399 .addClass("error") 400 .closest(".form__group") 401 .find(".message__describe__error"), 402 (r = !1)), 403 "" == $("#emailUser").val() && 404 ($("#emailUser") 405 .addClass("error") 406 .closest(".form__group") 407 .find(".message__describe__error"), 408 (r = !1)), 409 0 == validateEmail($("#emailUser").val()) && 410 ($("#emailUser") 411 .addClass("error") 412 .closest(".form__group") 413 .find(".message__describe__error"), 414 (r = !1)), 415 "" == $("#mensajeUser").val() && 416 ($("#mensajeUser") 417 .addClass("error") 418 .closest(".form__group") 419 .find(".message__describe__error"), 420 (r = !1)), 421 0 == $("#aceptAviso").prop("checked") && 422 ($("#aceptAviso") 423 .addClass("error") 424 .closest(".form__group") 425 .find(".message__describe__error"), 426 (r = !1)), 427 !0 === r 428 ? (console.log("sending form"), 429 $.post( 430 "/enviar_formulario_contactanos", 431 $("#formContact").serialize(), 432 function (e) { 433 1 == e.valido 434 ? ($( 435 ".ctn__overlay__contact .card__overlayResponse" 436 ).fadeIn(), 437 $(".img__overlayResponse").text( 438 "/themes/custom/sanissimo/assets/img/icons/icon__send.svg" 439 ), 440 $(".tit__overlayResponse").text( 441 idioma == "en" 442 ? "Thank you for your message" 443 : "¡Gracias por tu mensaje!" 444 ), 445 $(".desc__overlayResponse").text( 446 idioma == "en" 447 ? "We will contact you soon." 448 : "En breve te contactaremos." 449 ), 450 (contactModalOpen = true), 451 $(".ctn__overlay__contact").fadeIn(), 452 setTimeout(function () { 453 $( 454 ".ctn__overlay__contact .close__overlayResponse" 455 ).focus(); 456 }, 200)) 457 : ($( 458 ".ctn__overlay__contact .card__overlayResponse" 459 ).fadeIn(), 460 $(".img__overlayResponse").text( 461 "/themes/custom/sanissimo/assets/img/icons/icon__send__error.svg" 462 ), 463 $(".tit__overlayResponse").text( 464 idioma == "en" 465 ? "We´re sorry..." 466 : "Lo sentimosâ¦" 467 ), 468 $(".desc__overlayResponse").text( 469 idioma == "en" 470 ? "an error has occurred, try again later." 471 : "Ha ocurrido un error al enviar tus datos, inténtalo nuevamente más tarde." 472 ), 473 (contactModalOpen = true), 474 $(".ctn__overlay__contact").fadeIn(), 475 setTimeout(function () { 476 $( 477 ".ctn__overlay__contact .close__overlayResponse" 478 ).focus(); 479 }, 200)); 480 } 481 )) 482 : (console.log("Invalid form"), 483 $('#formContact input[type="text"].error').length > 0 484 ? $("#formContact") 485 .find('input[type="text"].error') 486 .eq(0) 487 .focus() 488 : $('#formContact input[type="email"].error').length > 489 0 490 ? $("#formContact") 491 .find('input[type="email"].error') 492 .eq(0) 493 .focus() 494 : $("#formContact textarea").hasClass("error") 495 ? $("#formContact textarea").focus() 496 : $("#formContact #aceptAviso").hasClass("error") 497 ? $("#formContact #aceptAviso").focus() 498 : null); 499 }); 500 501 $(".send__formCol").click(function (e) { 502 e.preventDefault();
503 var validform = true; 504 if ($("#name").val() == "") { 505 validform = false; 506 $("#name").addClass("error"); 507 } 508 if ($("#lastname").val() == "") { 509 validform = false; 510 $("#lastname").addClass("error"); 511 } 512 if ($("#email").val() == "" || !validateEmail($("#email").val())) { 513 validform = false; 514 $("#email").addClass("error"); 515 } 516 if ($("#phone").val() == "") { 517 validform = false; 518 $("#phone").addClass("error"); 519 } 520 if ($("#description").val() == "") { 521 validform = false; 522 $("#description").addClass("error"); 523 } 524 if ($("#subject").val() == "") { 525 validform = false; 526 $("#subject").addClass("error"); 527 } 528 529 if (validform) { 530 // $("#formCol").submit() 531 var idioma = $("#cambio_de_idiomaselect") 532 .find("option:selected") 533 .val(); 534 $.post( 535 "/enviar_formulario_contactanos", 536 $("#formCol").serialize(), 537 function (data) { 538 if (data.valido) { 539 $( 540 ".ctn__overlay__contact .card__overlayResponse" 541 ).fadeIn(); 542 $(".img__overlayResponse").text( 543 "/themes/custom/sanissimo/assets/img/icons/icon__send.svg" 544 ); 545 $(".tit__overlayResponse").text( 546 idioma == "en" 547 ? "Thank you for your message" 548 : "¡Gracias por tu mensaje!" 549 ); 550 $(".desc__overlayResponse").text( 551 idioma == "en" 552 ? "We will contact you soon." 553 : "En breve te contactaremos." 554 ); 555 contactModalOpen = true; 556 $(".ctn__overlay__contact").fadeIn(); 557 setTimeout(function () { 558 $( 559 ".ctn__overlay__contact .close__overlayResponse" 560 ).focus(); 561 }, 200); 562 // clear form 563 $( 564 "#name, #lastname,#email, #phone, #subject, #description" 565 ).val(""); 566 } else { 567 $( 568 ".ctn__overlay__contact .card__overlayResponse" 569 ).fadeIn(); 570 $(".img__overlayResponse").text( 571 "/themes/custom/sanissimo/assets/img/icons/icon__send__error.svg" 572 ); 573 $(".tit__overlayResponse").text( 574 idioma == "en" ? "We're sorry..." : "Lo sentimosâ¦" 575 ); 576 $(".desc__overlayResponse").text( 577 idioma == "en" 578 ? "an error has occurred, try again later." 579 : "Ha ocurrido un error al enviar tus datos, inténtalo nuevamente más tarde." 580 ); 581 contactModalOpen = true; 582 $(".ctn__overlay__contact").fadeIn(); 583 setTimeout(function () { 584 $( 585 ".ctn__overlay__contact .close__overlayResponse" 586 ).focus(); 587 }, 200); 588 } 589 } 590 ); 591 grecaptcha 592 .execute("6Lejg-geAAAAAA-u4Q-pX8H5JWJ8cI97Yi868p35", { 593 action: "formulario", 594 }) 595 .then(function (token) { 596 var recaptchaResponse = 597 document.getElementById("recaptchaResponse"); 598 recaptchaResponse.value = token; 599 }); 600 } else { 601 if ($("#formCol .form__block input.error").length > 0) { 602 $("#formCol .form__block input.error").eq(0).focus(); 603 } else { 604 $("#formCol .form__block textarea.error").eq(0).focus(); 605 } 606 } 607 }); 608 $(".valid__email").keyup(function () { 609 if (!validateEmail($(this).val())) { 610 $(this).addClass("error"); 611 $(this) 612 .closest(".form__group") 613 .find(".message__describe__error") 614 .css("display", "block"); 615 } else { 616 $(this).removeClass("error"); 617 $(this) 618 .closest(".form__group") 619 .find(".message__describe__error") 620 .css("display", "none"); 621 } 622 }); 623 624 $("#formCol .form__group input,#formCol .form__group textarea").change( 625 function () { 626 if ($(this).hasClass("error")) { 627 $(this).removeClass("error"); 628 } 629 } 630 ); 631 $( 632 "#formContact .form__group input,#formContact .form__group textarea" 633 ).change(function () { 634 if ($(this).hasClass("error")) { 635 $(this).removeClass("error"); 636 $(this) 637 .closest(".form__group") 638 .find(".message__describe__error") 639 .css("display", "none"); 640 } 641 }); 642}); 643 644// accordion faqs 645var headersAccordion; 646// video home 647var triggerVideo; 648var backdrop; 649var dialog; 650var videoID; 651var closeButton; 652var otherButtons; 653var firstFocusableElement, lastFocusableElement; 654var isOpen = false;
655 656window.addEventListener("DOMContentLoaded", function () { 657 // Accordion faqs 658 headersAccordion = document.querySelectorAll(".header__accordion button"); 659 headersAccordion.forEach(function (header) { 660 header.addEventListener("click", function () { 661 var isExpanded = 662 header.getAttribute("aria-expanded") == "true" ? true : false; 663 header.setAttribute("aria-expanded", !isExpanded); 664 $("#" + header.getAttribute("aria-controls")).slideToggle(); 665 }); 666 }); 667 668 // Video Component 669 triggerVideo = document.querySelector(".trigger__video"); 670 if (triggerVideo) { 671 backdrop = document.querySelector(".modal__wrapper__video"); 672 dialog = backdrop.querySelector(".inner__wrapper__video"); 673 videoID = dialog.querySelector(".isVideo"); 674 closeButton = dialog.querySelector(".close-button"); 675 otherButtons = dialog.querySelectorAll( 676 ".wrapper__video__buttons button" 677 ); 678 firstFocusableElement = dialog.querySelector( 679 ".first-focusable-element" 680 ); 681 lastFocusableElement = dialog.querySelector(".last-focusable-element"); 682 683 // Open the dialog when the trigger button is activated. 684 triggerVideo.addEventListener("click", function (e) { 685 openDialog(); 686 // playVideo(videoID) 687 }); 688 689 // Close the dialog when the inner close button is activated. 690 closeButton.addEventListener("click", function (e) { 691 stopVideo(videoID); 692 closeDialog(); 693 }); 694 695 // Close the dialog when the user clicks on the backdrop. 696 backdrop.addEventListener("click", function (e) { 697 if (!dialog.contains(e.target)) { 698 stopVideo(videoID); 699 closeDialog(); 700 } 701 }); 702 703 // Close the dialog when 'Escape' key is pressed. 704 backdrop.addEventListener("keydown", function (e) { 705 if (e.key == "Escape") { 706 stopVideo(videoID); 707 closeDialog(); 708 } 709 }); 710 711 // Trap keyboard focus by moving focus to the first or last focusable element when the user tries to tab (or "backwards" tab) past them. 712 dialog.addEventListener("keydown", function (e) { 713 if ( 714 e.target == firstFocusableElement && 715 e.key == "Tab" && 716 e.shiftKey 717 ) { 718 e.preventDefault(); 719 lastFocusableElement.focus(); 720 } else if ( 721 e.target == lastFocusableElement && 722 e.key == "Tab" && 723 !e.shiftKey 724 ) { 725 e.preventDefault(); 726 firstFocusableElement.focus(); 727 } 728 }); 729 730 // For code demo purposes only. Close the dialog when the Cancel or OK buttons are activated. In a real use case these might actually do something like set cookies or refresh the page or something. 731 otherButtons.forEach(function (button) { 732 button.addEventListener("click", function (e) { 733 stopVideo(videoID); 734 closeDialog(); 735 }); 736 }); 737 } 738 739 var allInteractiveEleProductos = document.querySelectorAll( 740 ".itemSlider__productos a, .itemSlider__productos" 741 ); 742 allInteractiveEleProductos && 743 allInteractiveEleProductos.forEach(function (element) { 744 element.setAttribute("tabindex", -1); 745 }); 746 747 var allInteractiveEleBeneficios = document.querySelectorAll( 748 ".itemSlider__beneficios" 749 ); 750 allInteractiveEleBeneficios && 751 allInteractiveEleBeneficios.forEach(function (element) { 752 element.setAttribute("tabindex", -1); 753 }); 754 755 var dialogModal = $(".dialog__modal"); 756 if (dialogModal.length > 0) { 757 var firstFocusableElement = $(".first-focusable-element"); 758 var lastFocusableElement = $(".last-focusable-element"); 759 760 dialogModal.on("keydown", function (e) { 761 console.log(e, e.target, firstFocusableElement, e.key, e.shiftKey); 762 if (e.target == firstFocusableElement && e.key == "Tab") { 763 e.preventDefault(); 764 lastFocusableElement.focus(); 765 } else if (e.target == lastFocusableElement && e.key == "Tab") { 766 e.preventDefault(); 767 firstFocusableElement.focus(); 768 } 769 770 if (e.key == "Escape") { 771 $(".ctn__overlayResponse").fadeOut(); 772 setTimeout(function () { 773 $(".sendContactForm").focus(); 774 }, 400); 775 } 776 }); 777 } 778 779 if ($(".dialog__modal__contact").length > 0) { 780 var firstFocusElement = document.querySelector( 781 ".dialog__modal__contact .first-focusable-element" 782 ); 783 var lastFocusElement = document.querySelector( 784 ".dialog__modal__contact .last-focusable-element" 785 ); 786 787 $(".dialog__modal__contact").on("keydown", function (e) { 788 console.log(e.target, firstFocusElement, e.key); 789 if (e.target == firstFocusElement && e.key == "Tab") { 790 e.preventDefault(); 791 lastFocusElement.focus(); 792 } else if (e.target == lastFocusElement && e.key == "Tab") { 793 e.preventDefault(); 794 firstFocusElement.focus(); 795 } 796 if (e.key == "Escape") { 797 $(".ctn__overlay__contact").fadeOut(); 798 setTimeout(function () { 799 $(".sendContactForm").focus(); 800 }, 400); 801 } 802 }); 803 } 804 805 // Menu interaction 806 var openButtonMenu = document.querySelector(".triggermenu__header"); 807 var closeButtonMenu = document.querySelector(".close__menu"); 808 var modalMenu = document.querySelector(".nav__menu"); 809 var menuIsOpen = false;
810 menu = modalMenu.querySelector(".menu"); 811 var firstFocusableElement = modalMenu.querySelector( 812 ".first-focusable-element" 813 ); 814 var lastFocusableElement = modalMenu.querySelector( 815 ".last-focusable-element" 816 ); 817 818 // Show and move focus into the mobile menu when the hamburger icon button is activated 819 openButtonMenu.addEventListener("click", function (e) { 820 console.log("open menu"); 821 e.stopPropagation(); 822 modalMenu.classList.add("open"); 823 openButtonMenu.classList.add("is__hidden"); 824 setTimeout(() => { 825 closeButtonMenu.focus(); 826 }, 300); 827 menuIsOpen = true; 828 }); 829 830 // Hide the mobile menu and move focus back to the hamburger icon butter when the close button is activated 831 closeButtonMenu.addEventListener("click", function (e) { 832 closeMenu(); 833 }); 834 835 // Trap keyboard focus inside the mobile menu 836 modalMenu.addEventListener("keydown", function (e) { 837 if (menuIsOpen) { 838 if (e.key == "Tab") { 839 if (!e.shiftKey) { 840 if (document.activeElement == lastFocusableElement) { 841 firstFocusableElement.focus(); 842 e.preventDefault(); 843 } 844 } else { 845 if (document.activeElement == firstFocusableElement) { 846 lastFocusableElement.focus(); 847 e.preventDefault(); 848 } 849 } 850 } 851 852 if (e.key == "Escape") { 853 closeMenu(); 854 } 855 } 856 }); 857}); 858 859function closeMenu() { 860 document.querySelector(".nav__menu").classList.remove("open"); 861 menuIsOpen = false; 862 document 863 .querySelector(".triggermenu__header") 864 .classList.remove("is__hidden"); 865 document.querySelector(".triggermenu__header").focus(); 866} 867 868function openDialog() { 869 backdrop.classList.add("is-visible"); 870 closeButton.focus(); 871} 872 873function closeDialog() { 874 backdrop.classList.remove("is-visible"); 875 triggerVideo.focus(); 876} 877 878function playVideo(idElementVideo) { 879 idElementVideo.play(); 880} 881function stopVideo(idElementVideo) { 882 idElementVideo.pause(); 883 idElementVideo.currentTime = 0; 884}
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.