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 += "
![" + element["corporate_name"] + "](" + element["image"] + ")
";
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 += "
";
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");
}
});
}