console.log('custom.js loaded'); let currentCustomAjaxRequest = null; $(document).ready(function () { produto(); rate_product(); validate_rate(); home(); filters_home(); header(); about_us(); category_page(); btn_wpp_central(); units_page(); loadRelatedProducts(); deliveryCenterList(); deliveryCentersFilter(); customBuyTogether(); customFooter(); sucata(); orderBtnSucata(); ratingScroll(); feedbackProducts(); sucataScroll(); if ($('.deliveryCenterMain').length > 0) { deliveryCentersMap(); owlCarouselMobile(); } if ($(window).width() < 1141) { $(".wrapper-payment-page-new .right-payment-page .top-content").click( function () { $(this).parent().toggleClass("active"); } ); } $(document).on('click', '.btn-click-floating-wpp, .atendimento_wrapper .need-help .need-help-lists .item-help:eq(1) .wrapper-item-help .btn', function(e) { e.preventDefault(); $('button.bricks--floating--button').trigger('click'); }); }); function produto() { if ($(window).width() < 980) { $('.infos-prod').insertAfter('.product_page .float-right-side .align-images-details .prod_info'); } $('.infos-prod .infos-prod-item .top').on('click', function() { $(this).parent().toggleClass('active'); }); if (window.history.length > 1) { $('#custom-return-subcat').show(); } $('#custom-return-subcat').on('click', function() { history.back(); }); $("#info-scrap-video").magnificPopup({ type: "iframe", mainClass: "mfp-fade", removalDelay: 160, preloader: false, fixedContentPos: false, }); $(".select_buy .add--cart").on("click", function() { $(".wrp-popup-scrap .overlay-popup-scrap, .wrp-popup-scrap .popup-scrap").addClass("active"); }); $(".wrp-popup-scrap .overlay-popup-scrap").on("click", function() { var url = window.location.href; window.history.pushState({}, document.title, url.split('?')[0]); $(this).removeClass("active"); $(".wrp-popup-scrap .popup-scrap").removeClass("active"); $(".deliveryCenterPage .content-main .list .itens .item").removeClass("selected"); }); if ($(".shipping_and_buy").length > 0) { var distance = $('.shipping_and_buy').offset().top, $window = $(window); $window.scroll(function() { if ($window.scrollTop() >= distance) { $(".fixed-product-info").addClass("active"); } else { $(".fixed-product-info").removeClass("active"); } }); } $(".fixed-product-info .content .btn-prod").on("click", function() { $("#add_cart a").trigger("click"); }); $(".fixed-product-info .content .btn-prod-scrap").on("click", function() { $("#add_cart span").trigger("click"); }); $("#add_video").on("click", function() { $(".video-sucatas").show(); }); $(".wrapper-creating_rating .modal-content #form_avaliacao .rating_stars .stars").on("click", function(){ $(this).parent().parent().find(".avaliacao").addClass("active"); }); $(document).on("click", ".big_img .slick-slide", function () { var img = $(this).data("zoom-image").replace("/thumb/4", ""); $.magnificPopup.open( { items: { src: img, }, type: "image", mainClass: "mfp-with-zoom", zoom: { enabled: false, opener: function (openerElement) { return $(".big_img"); }, }, }, 0 ); }); $("#owl-demo").slick({ dots: false, speed: 500, autoplay: false, autoplaySpeed: 5000, slidesToShow: 1, arrows: true, infinite: true, fade: true }); $("#gallery_img").slick({ dots: false, speed: 500, autoplay: false, autoplaySpeed: 5000, slidesToShow: 5, arrows: true, infinite: false, fade: false, responsive: [ { breakpoint: 768, settings: { slidesToShow: 4 } }, { breakpoint: 480, settings: { slidesToShow: 3 } }, { breakpoint: 376, settings: { vertical: false, verticalSwiping: false, slidesToShow: 2 } } ] }); $(".gallery_carrousel").on("click", ".slick-slide", function () { $(this).addClass("active"); var index = $(this).data("slick-index"); $("#owl-demo").slick("slickGoTo", index); }); $(".prod-video").magnificPopup({ type: "iframe", mainClass: "mfp-fade", removalDelay: 160, preloader: false, fixedContentPos: false, }); $(".open-payment-methods").on("click", function() { $(".overlay-payment-methods").addClass("active"); $(".popup-payment-methods").addClass("active"); }); $(".overlay-payment-methods, .close-payment-methods").on("click", function() { $(".overlay-payment-methods").removeClass("active"); $(".popup-payment-methods").removeClass("active"); }); // Calcular frete $("form#product_shipping_calc").on("submit", function (e) { e.preventDefault(); var cep = $(this).find("#cep_prod").val(), produto = $(this).find("#prod_id").val(), codigo_estrutura = $(this).find("#codigo_estrutura").val(), quantidade = $("input[name=qtdProdutouq]").val(); if (cep.length == 9) { $(".button-and-loading .overlay").addClass("show"); $(".freight_product").hide(); $.ajax({ url: SITE + "/produto/frete", type: "POST", dataType: "json", data: { cep: cep, produto: produto, codigo_estrutura: codigo_estrutura, quantidade: quantidade, }, beforeSend: function () { $(".shipping_and_buy .button-wrapper").addClass("loading"); }, success: function (data) { $(".button-and-loading .overlay").removeClass("show"); $(".shipping_and_buy .button-wrapper").removeClass( "loading" ); if (data.error == "Cep Inválido") { $(".freight_product").show(); $("#freight_prod tbody tr").remove(); $("#freight_prod tbody").append( "" + "" + data.error + "" + "" ); } else if (data) { $(".freight_product").show(); $("#freight_prod tbody tr").remove(); $.each(data, function (x, y) { if (typeof y.Tarifa != "undefined") { valor = "R$ " + parseFloat(y.Tarifa, 10) .toFixed(2) .replace(/(\d)(?=(\d{3})+\.)/g, "$1,") .toString(); } else { valor = y.Erro; } var prazover = y.Prazo; if (y.Erro) { prazover = 0; } $("#freight_prod tbody").append( "" + "" + y.Nome + "
" + (/^\S+$/.test(y.Prazo) || y.Prazo === '1' || y.Prazo === '0' ? "Em até " : "De ") + prazover + (y.Prazo === '1' || y.Prazo === '0 a 1' ? " dia útil" : " dias úteis") + "" + "" + valor + "" + "" ); }); } else { $(".freight_product").show(); $("#freight_prod tbody tr").remove(); $("#freight_prod tbody").append( "" + "Nenhum serviço disponível." + "" ); } }, }); } else { $(".freight_product").show(); $("#freight_prod tbody tr").remove(); $("#freight_prod tbody").append( "" + "Nenhum serviço disponível." + "" ); } }); $(".select_buy .wrapper-amount .more").on("click", function (e) { e.preventDefault(); var wrapper = $(this).closest("#add_cart"), qtd = $("input[name=qtdProdutouq]"), val = parseInt($(qtd).val()) + 1, limit = $(qtd).attr("max"); if (val > limit) val = limit; $(qtd).val(val); $(wrapper) .find(".wrapper-amount .amount") .text(val.toString().padStart(2, "0")); if ($("form#product_shipping_calc #cep_prod").val().length === 9) { $("form#product_shipping_calc").submit(); } }); $(".select_buy .wrapper-amount .less").on("click", function (e) { e.preventDefault(); var wrapper = $(this).closest("#add_cart"), qtd = $("input[name=qtdProdutouq]"), val = parseInt($(qtd).val()) - 1, limit = 1; if (val < limit) val = limit; $(qtd).val(val); $(wrapper) .find(".wrapper-amount .amount") .text(val.toString().padStart(2, "0")); if ($("form#product_shipping_calc #cep_prod").val().length === 9) { $("form#product_shipping_calc").submit(); } }); $(".wrapper-attrs > div .bt .type input").on("change", function () { $(".wrapper-attrs .loader").addClass("show"); $(".wrapper-attrs .wrppr-vltgm, .wrapper-attrs .wrppr-crs").addClass( "loading" ); var _this = this, voltageId = $(".wrapper-attrs .wrppr-vltgm input:checked").val(), colorId = $(".wrapper-attrs .wrppr-crs input:checked").val(); setTimeout(() => { $.ajax({ url: SITE + "/produto/atributos", type: "POST", dataType: "json", data: { voltageId: voltageId, colorId: colorId, }, success: function (data) { if (data.success) { window.location.href = data.variationUrl; } }, }); }, 1000); }); $(".wrapper-specifications > div").on("click", function (e) { e.preventDefault(); var wrapper = $(this).find(".wrapper-descs"); wrapper.toggleClass("active"); if (wrapper.hasClass("active")) { $(this).find("h1 svg, h1 i").attr("data-icon", "minus"); } else { $(this).find("h1 svg, h1 i").attr("data-icon", "plus"); } }); } function rate_product() { $("#rating_list_link, .create_rating a").click(function () { $(".creating_rating").addClass("active"); jQuery("html, body") .stop() .animate( { scrollTop: $(".creating_rating").offset().top - 50 }, "slow" ); }); $(document).on( "click", ".inside-rating .rating-wrapper .prod_rating .creating_rating .wrapper-creating_rating .modal-header svg, .inside-rating .rating-wrapper .prod_rating .creating_rating .wrapper-creating_rating .modal-header i", function () { $(".creating_rating").removeClass("active"); } ); var num_stars = 5; $(document).on("click", ".stars i, .stars svg", function () { var n = parseInt($(this).attr("data-name")); $("#avaliacao_nota").val(n); $( ".wrapper-creating_rating .stars i, .wrapper-creating_rating .stars svg" ).each(function (i, svg) { $(svg).attr("marked", false); if (i + 1 <= n) { $(svg).attr("marked", true); } }); }); } function validate_rate() { $("#form_avaliacao").validate({ ignore: [], rules: { avaliacao_nota: { min: 1 }, avaliacao_nome: { required: true }, avaliacao_email: { required: true, email: true }, avaliacao_estado: { required: true }, avaliacao_cidade: { required: true }, avaliacao_op: { required: true, maxlength: 350 }, }, messages: { avaliacao_nota: { min: "Defina uma estrela para avaliar" }, avaliacao_nome: { required: "Insira seu nome" }, avaliacao_email: { required: "Insira seu email", email: "Email inválido", }, avaliacao_estado: { required: "Selecione o seu estado" }, avaliacao_cidade: { required: "Seleciona a sua cidade" }, avaliacao_op: { required: "Insira sua opinião", maxlength: "O tamanho deve ser de no máximo 250 caracteres.", }, }, errorLabelContainer: $("#avaliacao_error"), }); $("select[name=avaliacao_estado]").on("change", function () { var id = $(this).val(); $.ajax({ url: SITE + "/ajax/cities", type: "POST", dataType: "json", data: { state_id: id, }, success: function (data) { if (data.length > 0) { $("select[name=avaliacao_cidade]").empty(); $("select[name=avaliacao_cidade]").append( "" ); $.each(data, function (i, c) { var option = ""; $("select[name=avaliacao_cidade]").append(option); }); } }, }); }); } function home() { $("#banner .banners-items").slick({ fade: false, dots: false, speed: 900, autoplay: true, autoplaySpeed: 5000, slidesToShow: 1, slidesToScroll: 1, arrows: false, infinite: true, adaptiveHeight: false }); $(".banner-arrows .prev").click(function () { $("#banner .banners-items").slick("slickPrev"); }); $(".banner-arrows .next").click(function () { $("#banner .banners-items").slick("slickNext"); }); $('.infos-site .content .list-infos').slick({ dots: false, speed: 500, autoplay: true, autoplaySpeed: 5000, slidesToShow: 4, slidesToScroll: 1, arrows: false, infinite: false, fade: false, responsive: [ { breakpoint: 1021, settings: { slidesToShow: 3.2 } }, { breakpoint: 826, settings: { slidesToShow: 2.2 } }, { breakpoint: 571, settings: { slidesToShow: 1.2 } } ] }); $('.slick-product-grid').slick({ dots: false, speed: 500, autoplay: false, autoplaySpeed: 5000, slidesToShow: 4, slidesToScroll: 4, arrows: true, infinite: true, fade: false, responsive: [ { breakpoint: 980, settings: { slidesToShow: 3, slidesToScroll: 3 }, }, { breakpoint: 768, settings: { slidesToShow: 2, slidesToScroll: 2 }, } ] }); } function filters_home() { const slickParams = { dots: false, speed: 500, autoplay: false, autoplaySpeed: 5000, slidesToShow: 4, slidesToScroll: 4, arrows: true, infinite: true, fade: false, responsive: [ { breakpoint: 980, settings: { slidesToShow: 3, slidesToScroll: 3 }, }, { breakpoint: 768, settings: { slidesToShow: 2, slidesToScroll: 2 }, } ] }; // Destaques const slickElement = ".featured.main .content-prods .product-grid ul"; $(".featured.main .content .categories-standard h1").on("click", function() { if (!$(this).hasClass("active")) { const catID = $(this).data("category-id"); const heightProductGrid = $(".featured.main .content-prods").height(); $(".featured.main .content-prods").attr("style", "min-height: " + heightProductGrid + "px;"); $(".featured.main .content .categories-standard h1").removeClass("active"); $(this).addClass("active"); $(".featured.main .content-prods").addClass("transition"); setTimeout(function () { $(".featured.main .content-prods .product-grid").remove(); $.ajax({ url: SITE + "/portal/custom/api/produtos/categoria/" + catID, type: "GET", dataType: "json", data: null, success: function (response) { if (response) { $(".featured.main .content-prods").append(response.data); } $(slickElement).addClass("slick-product-grid content"); $(slickElement).slick(slickParams); setTimeout(function () { $(".featured.main .content-prods").removeClass("transition"); }, 350); }, }); }, 350); } }); $(".featured.main .content .categories-standard h1:first").trigger("click"); // Baterias const slickElementSub = ".featured.sub .content-prods .product-grid ul"; $(".featured.sub .content .categories-standard h1").on("click", function() { if (!$(this).hasClass("active")) { const catIdSub = $(this).data("category-id"); const heightProductGridSub = $(".featured.sub .content-prods").height(); $(".featured.sub .content-prods").attr("style", "min-height: " + heightProductGridSub + "px;"); $(".featured.sub .content .categories-standard h1").removeClass("active"); $(this).addClass("active"); $(".featured.sub .content-prods").addClass("transition"); setTimeout(function () { $(".featured.sub .content-prods .product-grid").remove(); $.ajax({ url: SITE + "/portal/custom/api/produtos/categoria/" + catIdSub, type: "GET", dataType: "json", data: null, success: function (response) { if (response) { $(".featured.sub .content-prods").append(response.data); } $(slickElementSub).addClass("slick-product-grid content"); $(slickElementSub).slick(slickParams); setTimeout(function () { $(".featured.sub .content-prods").removeClass("transition"); }, 350); }, }); }, 350); } }); $(".featured.sub .content .categories-standard h1:first").trigger("click"); } function header() { $(".header-banners .wrp-header-banners").slick({ fade: true, dots: false, speed: 350, autoplay: true, autoplaySpeed: 10000, slidesToShow: 1, slidesToScroll: 1, arrows: false, infinite: false, adaptiveHeight: false }); $(".wrapper-itens-menu-resp .list-prods-inside-wrp .list-cats .cat-item.hasSubs h1").on("click", function() { $(this).parent().toggleClass("active"); }); } function about_us() { $(".gallery-about-us").slick({ fade: true, dots: false, speed: 900, autoplay: false, autoplaySpeed: 5000, slidesToShow: 1, slidesToScroll: 1, arrows: true, infinite: false, adaptiveHeight: false }); $('.gallery-about-us .item a').magnificPopup({ type: 'image', gallery:{ enabled:true } }); } function category_page() { $(".filter-resp-cats").on("click", function () { $(".overlay-filter-resp-cats").addClass("active"); $(".categories_content .content-page .left_menu").addClass("active"); }); $(".overlay-filter-resp-cats").on("click", function () { $(this).removeClass("active"); $(".categories_content .content-page .left_menu").removeClass("active"); }); $(".filters-search .close-filter-resp img").on("click", function () { $(".overlay-filter-resp-cats").removeClass("active"); $(".categories_content .content-page .left_menu").removeClass("active"); }); } function btn_wpp_central() { const item_help_nth = $('.atendimento_wrapper .need-help .need-help-lists .item-help:nth-child(2) .wrapper-item-help'); const siteWhatsJs = $('meta[name=site-whats-js]').attr('content'); $(item_help_nth.find('h5')).text('CHAMAR NO WHATSAPP'); $(item_help_nth.find('.desc')).text('Caso necessite falar com um de nossos atendentes, chame a gente no WhatsApp.'); $(item_help_nth.find('a')).removeClass('chat'); $(item_help_nth.find('a')).on('click', function(e) { e.preventDefault(); window.open(siteWhatsJs, '_blank'); }); } function units_page() { $(".units-list .unit-item .top").on("click", function() { $(this).parent().toggleClass("active"); }); $(".filters select#estados-category").on("change", function() { var estadosCategory = $(this).val(); $(".units-list .unit-item").removeClass("active"); if(estadosCategory == 0) { $(".units-list .unit-item").fadeIn(350); $(".wrapper-units-list .content .filters h3.mrgn").fadeOut(10); $(".wrapper-units-list .content .filters select.city-select").fadeOut(10); } else { $(".units-list .unit-item").fadeOut(10); $(".units-list .unit-item." + estadosCategory).fadeIn(350); $(".wrapper-units-list .content .filters h3.mrgn").fadeIn(350); $(".wrapper-units-list .content .filters select.city-select:not(" + estadosCategory + ")").fadeOut(10); $(".wrapper-units-list .content .filters select." + estadosCategory).fadeIn(350); } }); $(".filters select#cidade-category").on("change", function() { var cidadeCategory = $(this).val(); $(".units-list .unit-item").removeClass("active"); if(cidadeCategory == 0) { $(".units-list .unit-item").fadeIn(350); } else { $(".units-list .unit-item").fadeOut(10); $(".units-list .unit-item." + cidadeCategory).fadeIn(350); } }); } function loadRelatedProducts() { if ($(".product-grid.related-grid").length > 0) { let productPageID = 0; $(window).on("resize scroll", function () { if ($(".product-grid.related-grid").isInViewport()) { if (!productPageID) { productPageID = $("#idProduto").val(); $.ajax({ url: SITE + "/ajax/relatedProducts", type: "POST", dataType: "json", data: { productID: productPageID, }, success: function (data) { if (data.includes('article')) { $(".product-grid.related-grid").html(data); $(".product-grid.related-grid ul").slick({ dots: false, speed: 500, autoplay: false, autoplaySpeed: 5000, slidesToShow: 4, slidesToScroll: 4, arrows: true, infinite: true, fade: false, responsive: [ { breakpoint: 980, settings: { slidesToShow: 3, slidesToScroll: 3 }, }, { breakpoint: 768, settings: { slidesToShow: 2, slidesToScroll: 2 }, } ] }); $(".product-grid.related-grid ul").addClass("slick-product-grid content"); } else { $(".product_page .inside-related").fadeOut(350); } }, }); } } }); } } let useHTTPS = false; if(SITE.substring(0, 8) == 'https://'){ useHTTPS = true; } const platform = new H.service.Platform({ apikey: 'DXBRw27cHtMKakOeTOnNqb-UePIh4j6F_RNETT2bFxQ', useHTTPS: useHTTPS, }); const marker_image = "/portal/custom/assets/images/marker.svg"; var map = null, group = null; function deliveryCentersMap() { if($("#deliveryCentersMap").length > 0) { let maptypes = platform.createDefaultLayers({lang:'pt-BR'}); map = new H.Map( document.getElementById("deliveryCentersMap"), maptypes.vector.normal.map, { zoom: 4, center: { lat: "-13.23266", lng: "-57.04944" }, } ); let mapTileService = platform.getMapTileService({ type: "base", }); window.addEventListener("resize", () => map.getViewPort().resize()); let behavior = new H.mapevents.Behavior(new H.mapevents.MapEvents(map)); behavior.disable(H.mapevents.Behavior.WHEELZOOM); let ui = H.ui.UI.createDefault(map, maptypes, "pt-BR"); group = new H.map.Group(); map.addObject(group); group.addEventListener('tap', function (evt) { let bubble = new H.ui.InfoBubble(evt.target.getGeometry(), { content: evt.target.content }); }, false); $.ajax({ url: "/api/maps/delivery-centers", type: "POST", dataType: "json", success: function(data) { $.each(data, function(i, location) { const size = new H.math.Size(22, 30); const icon = new H.map.Icon(marker_image, { size: size }); let marker = new H.map.Marker( { id: location.codigo, lat: location.latitude, lng: location.longitude }, { icon: icon } ); group.addObject(marker); // map.setViewBounds(group.getBounds()); marker.addEventListener('tap', function(){ map.setCenter({lat:location.latitude, lng:location.longitude}); map.setZoom(14); }); marker.addEventListener("tap", function () { $("#buscaDeliveryCenter").val(location.corporate_name).trigger('change'); }); $(document).on("click", ".verNoMapa", function(e) { e.preventDefault(); $("html, body") .stop() .animate( { scrollTop: $("#deliveryCentersMap").offset() .top, }, "slow" ); const item = $(this) .parent() .parent() .parent(); const latthis = item.data("lat"); const longthis = item.data("long"); $( ".deliveryCenterPage .content-main .list .itens .item" ).removeClass("selected"); item.addClass("selected"); map.setCenter({ lat: latthis, lng: longthis }); map.setZoom(14); $(".wrp-popup-scrap .overlay-popup-scrap, .wrp-popup-scrap .popup-scrap").addClass("active"); }); map.addEventListener('pointermove', function (event) { if (event.target instanceof H.map.Marker) { map.getViewPort().element.style.cursor = 'pointer'; } else { map.getViewPort().element.style.cursor = 'auto'; } }, false); }); }, error: function(data){} }); } } function deliveryCentersFilter(){ const buscaDeliveryCenterInput = $("#buscaDeliveryCenter"); buscaDeliveryCenterInput.on("keyup", function() { const value = this.value.toLowerCase().replace('-',''); $(".deliveryCenterPage .item").show().filter(function() { let show = true; if(value.length == 8){ $(this).find('.activityAreas').each(function(i, input) { let areas = $(input).val(); areas = areas.split(':'); const areaStart = areas[0].replace('-',''); const areaEnd = areas[1].replace('-',''); if(areaStart <= value && value <= areaEnd){ show = false; } }); } if(!($(this).find('.search-info').text().toLowerCase().indexOf(value) === -1)){ show = false; } if(value == ''){ show = false; $('.clearInput').removeClass('active'); }else{ $('.clearInput').addClass('active'); } return show; }).hide(); }); $('.clearInput').on("click", function() { buscaDeliveryCenterInput.val(""); buscaDeliveryCenterInput.trigger("keyup"); $('.clearInput').removeClass('active'); }); } function owlCarouselMobile(){ if ($(window).width() <= 767) { $(".deliveryCenterMain .sectionbannerDeliveryCenter").owlCarousel({ items : 1, dots: true, itemsCustom : false, itemsDesktop : [1199,1], itemsDesktopSmall : [980,1], itemsTablet: [768,1], itemsTabletSmall: false, itemsMobile : [479,1], singleItem : false, itemsScaleUp : false, }); } } function deliveryCenterList() { const buscaDeliveryCenterInput = $("#buscaDeliveryCenter"); searchAndLoad(''); buscaDeliveryCenterInput.on('change', function(){ searchAndLoad($(this).val()); if($(this).val()){ $('.clearInput').addClass('active'); $("#loadMoreDeliveryCenters").fadeOut(0); } }); $(".clearInput").on("click", function () { buscaDeliveryCenterInput.val(""); buscaDeliveryCenterInput.trigger("keyup"); buscaDeliveryCenterInput.trigger("change"); $(".clearInput").removeClass("active"); $("#loadMoreDeliveryCenters").fadeIn(350); }); let loaded = 13; $('#loadMoreDeliveryCenters').click(function(){ $.ajax({ url: "/custom/api/delivery-centers/search?offset[step]=" + loaded, type: "GET", dataType: "json", success: function (data) { loaded = loaded + 14; let htmlElements = elementsHtml(data.data); $(".deliveryCenterMain .deliveryCenterPage>.leftSide .content-main .list .itens").append(htmlElements); }, error: function(data){ $("#loadMoreDeliveryCenters").hide(); } }); }); function searchAndLoad(val) { $.ajax({ url: "/custom/api/delivery-centers/search?search[param]=" + val, type: "GET", dataType: "json", success: function (data) { $('.deliveryCenterMain .deliveryCenterPage>.leftSide .content-main .list .itens .item').remove(); let htmlElements = elementsHtml(data.data); $(".deliveryCenterMain .deliveryCenterPage>.leftSide .content-main .list .itens").append(htmlElements); } }); if(!val){ $("#loadMoreDeliveryCenters").show(); } } function elementsHtml(data) { let htmlElements = ''; $.each(data, function (i, element) { htmlElements += "
"; htmlElements += "
"; htmlElements += "
"; htmlElements += ""; htmlElements += "
"; htmlElements += "
"; htmlElements += "
"; htmlElements += "

" + element["corporate_name"] + "

"; htmlElements += "
"; htmlElements += "

" + element["address"] + "

"; htmlElements += "

" + element["city"] + ' ' + element["state"] + ' ' + '(' + element["zipcode"] + ')' + "

"; htmlElements += "

" + element["phone"] + "

"; if (element["whatsapp"]) { htmlElements += "

" + element["whatsapp"] + "

"; } htmlElements += "
"; htmlElements += "
"; htmlElements += "
"; htmlElements += "
"; htmlElements += "Atendimento"; htmlElements += "

" + element["service_hours"] + "

"; htmlElements += "
"; htmlElements += "
"; htmlElements += "Ver no mapa"; htmlElements += ""; htmlElements += "chamar no WhatsApp"; htmlElements += ""; htmlElements += "
"; htmlElements += "
"; htmlElements += "
"; htmlElements += "
"; htmlElements += "
"; htmlElements += "
"; htmlElements += ""; }); return htmlElements; } } $(".remove_map").click(function () { $(".wrp-popup-scrap .overlay-popup-scrap, .wrp-popup-scrap .popup-scrap").removeClass("active"); $(".deliveryCenterPage .content-main .list .itens .item").removeClass("selected"); }) function customBuyTogether() { $(".buy-together-btn").on("click", function() { var dataIdProd = $(this).data("id-prod"), dataIdEstr = $(this).data("id-estr"), prodQtdPreview = 1; $("#idProduto").val(dataIdProd).trigger("change"); $("#idEstrutura").val(dataIdEstr).trigger("change"); $("#produto_quantidade_preview").val(prodQtdPreview).trigger("change"); $.ajax({ url: SITE + "/ajax/add_to_cart", type: "POST", dataType: "json", data: { produto: dataIdProd, estrutura: dataIdEstr, quantidade: prodQtdPreview }, success: function (data) { if (data.validate) { window.location.href = SITE + "/carrinho"; } }, }); }); } function customFooter() { $('.main-footer .item a').on('click', function (e) { const href = $(this).attr('href'); if (!href.includes('/central-atendimento')) return; const url = new URL(href, window.location.origin); const baseUrl = url.origin + url.pathname; const currentUrl = window.location.origin + window.location.pathname; const hash = url.hash.replace('#', ''); if (hash) { sessionStorage.setItem('scrollToId', hash); if (currentUrl === baseUrl) { activateAndScroll(hash); } else { window.location.href = baseUrl; } } }); } function activateAndScroll(id) { const targetSub = $('.item-question-sub[data-id="' + id + '"]'); if (targetSub.length) { const questionMaster = targetSub.closest('.item-question-master'); $('.item-question-master.active').not(questionMaster).removeClass('active'); if (!questionMaster.hasClass('active')) { questionMaster.find('.title-master').trigger('click'); } const scrollOffset = questionMaster.offset().top - 100; $('html, body').animate({ scrollTop: scrollOffset }, 600); } else { setTimeout(() => activateAndScroll(id), 200); } } $(function () { const id = sessionStorage.getItem('scrollToId'); if (id) { sessionStorage.removeItem('scrollToId'); setTimeout(() => activateAndScroll(id), 100); } customFooter(); }); function sucata() { const $opcoesSucata = $('.options-select.sucata'); if (!$opcoesSucata.length) return; const $prodRefElement = $('.prod_ref'); if (!$prodRefElement.length) return; const codigoProduto = $prodRefElement.html().replace('Código ', ''); const chaveUrl = `produto_${codigoProduto}_url`; const chaveIndex = `produto_${codigoProduto}_indice`; const $linksVariacao = $opcoesSucata.find('.option-select a'); const isDevolverSucata = $el => { const text = $el.text().toLowerCase(); return text.includes('devolver') && text.includes('sucata') && !text.includes('sem'); }; const applyVisual = $el => { const isSucata = isDevolverSucata($el); if (isSucata) { $('.info-scrap').removeClass('hide preload'); $('.warning').removeClass('hide preload'); } else { $('.info-scrap').addClass('hide').removeClass('preload'); $('.warning').addClass('hide').removeClass('preload'); } }; // Adiciona título se não existir if (!$('.title-sucata').length) { const titulo = $('

Escolha se sua compra será com a opção:

'); $opcoesSucata.first().before(titulo); } // Reset visual e selected $linksVariacao.removeClass('selected'); $('.info-scrap, .warning').addClass('hide').removeClass('preload'); // Se tiver apenas 1 variação → seleciona automaticamente if ($linksVariacao.length === 1) { const $linkUnico = $linksVariacao.eq(0); $linkUnico.addClass('selected'); localStorage.setItem(chaveUrl, $linkUnico.attr('href')); localStorage.setItem(chaveIndex, 0); applyVisual($linkUnico); $('.warning').removeClass('show preload').addClass('hide'); return; } // Restaurar seleção se houver no localStorage const indiceSalvo = localStorage.getItem(chaveIndex); if (indiceSalvo !== null) { const index = parseInt(indiceSalvo, 10); const $selecionado = $linksVariacao.eq(index); if ($selecionado.length) { $selecionado.addClass('selected'); applyVisual($selecionado); } } else { $('.warning').removeClass('hide preload').addClass('show'); } // Clique nas opções $linksVariacao.off('click').on('click', function (e) { e.preventDefault(); const $this = $(this); const href = $this.attr('href'); const indexClicked = $linksVariacao.index(this); $linksVariacao.removeClass('selected'); $this.addClass('selected'); localStorage.setItem(chaveUrl, href); localStorage.setItem(chaveIndex, indexClicked); $('.warning').removeClass('show'); applyVisual($this); // Redireciona mantendo selected window.location.href = href; }); // Comprar agora const $addCartLink = $("#add_cart a"); if ($addCartLink.length) { $addCartLink.off('click').on('click', function (e) { e.preventDefault(); const urlSelecionada = localStorage.getItem(chaveUrl); if (!urlSelecionada) { $(".warning").addClass("show"); $('.option-select a').css('border', '1px solid #ffca00'); return; } localStorage.removeItem(chaveUrl); localStorage.removeItem(chaveIndex); addToCartHandleClick.call(this, e); }); $(".warning").removeClass("show"); } // Limpar seleção ao sair da página de produto window.addEventListener('beforeunload', function () { const nextHref = document.activeElement?.href; if (!nextHref || !nextHref.includes('/produto/')) { localStorage.removeItem(chaveUrl); localStorage.removeItem(chaveIndex); } }); } function orderBtnSucata() { const $semDevolver = $('.option-select a').filter(function () { return $(this).text().toLowerCase().includes('sem devolver sucata'); }); const $devolver = $('.option-select a').filter(function () { return $(this).text().toLowerCase().includes('devolver sucata') && !$(this).text().toLowerCase().includes('sem'); }); if ($semDevolver.length && $devolver.length) { const indiceSem = $semDevolver.index(); const indiceDevolver = $devolver.index(); if (indiceSem < indiceDevolver) { $('.scrap-warning-box').addClass('right-arrow'); } else { $('.scrap-warning-box').removeClass('right-arrow'); } } else { $('.scrap-warning-box').removeClass('right-arrow'); } } function ratingScroll() { $(".rating-scroll").click(function () { const $target = $(".infos-prod-item").eq(1); if ($target.length) { $([document.documentElement, document.body]).animate( { scrollTop: $target.offset().top - 65, }, 1000 ); $(".infos-prod-item").removeClass("active"); $target.addClass("active"); } }); } function feedbackProducts() { $('.reviews-slider').slick({ slidesToShow: 3, slidesToScroll: 1, autoplay: true, autoplaySpeed: 4000, dots: true, arrows: false, infinite: true, responsive: [ { breakpoint: 1024, settings: { slidesToShow: 2 } }, { breakpoint: 768, settings: { slidesToShow: 2 } }, { breakpoint: 650, settings: { slidesToShow: 1 } }, ] }); } function sucataScroll() { $(".option-select").click(function () { sessionStorage.setItem("scrollToProductPage", "true"); }); $(document).ready(function () { if (sessionStorage.getItem("scrollToProductPage") === "true") { const $target = $(".product_page"); if ($target.length) { let offset = 65; if (window.innerWidth < 980) { offset = -750; } if (window.innerWidth < 468) { offset = -500; } $([document.documentElement, document.body]).animate( { scrollTop: $target.offset().top - offset, }, 1000 ); } sessionStorage.removeItem("scrollToProductPage"); } }); }