' + '
DOWNLOADBaixar em alta resolução
' + '' + '').appendTo("#divCampanhaAtual"); } if ($row.children().length > 0) { $row.appendTo("#divCampanhaAtual"); } } if ((!registro.fotos || registro.fotos.length === 0) && (!registro.videos || registro.videos.length === 0) && (!registro.arquivos || registro.arquivos.length === 0)) { $("#divCampanhaAtual").html("Esta campanha não possui conteúdo disponível no momento.
"); } if (!temVideos) { $("#descricaoCol").addClass("toda-largura"); } else { $("#descricaoCol").removeClass("toda-largura"); } }; var carregarCampanhasAPI = function () { $.ajax({ url: apiUrl, type: 'GET', dataType: 'json', cache: false, success: function (response) { if (response && response.registros && response.registros.length > 0) { registrosData = response.registros; renderizarListaCampanhas(registrosData); verificarHashURL(); } else { $('#lista-campanhas').html('Nenhuma campanha encontrada
'); } }, error: function (error) { console.error('Erro ao carregar campanhas:', error); $('#lista-campanhas').html('Erro ao carregar campanhas. Por favor, tente novamente.
'); } }); }; window.addEventListener('load', function () { if (registrosData.length === 0) { carregarCampanhasAPI(); } }); window.addEventListener('pageshow', function (event) { if (event.persisted) { carregarCampanhasAPI(); } }); } if (window.location.href.indexOf('/produto/') > -1) { var secaoCaracteristicas = document.querySelector('.produto-caracteristicas'); if (secaoCaracteristicas) { var tabelas = secaoCaracteristicas.querySelectorAll('table.table-striped'); var linkEncontrado = false; var linkUrl = ''; var textoBotao = ''; var ocultarSecao = false; function verificarEstruturaLink(table) { var linhas = table.querySelectorAll('tr'); for (var i = 0; i < linhas.length; i++) { var tds = linhas[i].querySelectorAll('td'); if (tds.length >= 2) { var primeiroTd = tds[0]; var segundoTd = tds[1]; if (primeiroTd.textContent.trim() !== '' && segundoTd.querySelector('a')) { linkUrl = segundoTd.querySelector('a').href; textoBotao = primeiroTd.textContent.trim(); linkEncontrado = true; ocultarSecao = true; return true; } } } return false; } for (var j = 0; j < tabelas.length; j++) { if (verificarEstruturaLink(tabelas[j])) { break; } } if (ocultarSecao) { secaoCaracteristicas.style.display = 'none'; } if (linkEncontrado && linkUrl) { var div = document.createElement('div'); div.innerHTML = ` ${textoBotao} `; var novoBotao = div.firstElementChild; var containerBotao = document.getElementById('botao-caracteristica'); if (containerBotao) { containerBotao.appendChild(novoBotao); } else { var produtoDescricao = document.querySelector('.produto-descricao'); if (produtoDescricao) { produtoDescricao.insertAdjacentElement('afterend', novoBotao); } else { var infoProduto = document.querySelector('.produto-informacoes') || document.querySelector('.descricao-produto') || document.querySelector('.produto-detalhes'); if (infoProduto) { infoProduto.appendChild(novoBotao); } else { secaoCaracteristicas.parentNode.insertBefore(novoBotao, secaoCaracteristicas); } } } } } var apiUrl = "https://downloads.possebonjoias.com.br/campanhas/"; var campanhasData = []; function criarSlug(texto) { if (!texto) return ''; return texto .toString() .normalize('NFD') .replace(/[\u0300-\u036f]/g, '') .toLowerCase() .trim() .replace(/[^a-z0-9 ]/g, '') .replace(/\s+/g, '-'); } function verificarCorrespondenciaExata(filtroTexto, tituloCampanha) { return tituloCampanha === filtroTexto || tituloCampanha.includes(" " + filtroTexto + " ") || tituloCampanha.startsWith(filtroTexto + " ") || tituloCampanha.endsWith(" " + filtroTexto); } function verificarTodasPalavras(filtroTexto, tituloCampanha) { var palavrasFiltro = filtroTexto.split(' '); var palavrasTitulo = tituloCampanha.split(' '); if (Math.abs(palavrasFiltro.length - palavrasTitulo.length) > 1) { return false; } return palavrasFiltro.every(palavra => { if (palavra.length <= 2) { return true; } return palavrasTitulo.some(palavraTitulo => palavraTitulo === palavra || palavraTitulo.startsWith(palavra + "-") ); }); } function encontrarCorrespondencia(filtros) { for (var filtro of filtros) { var filtroTexto = filtro.toLowerCase().trim(); var campanha = campanhasData.find(campanha => { var tituloCampanha = campanha.titulo.toLowerCase(); if (verificarCorrespondenciaExata(filtroTexto, tituloCampanha)) { return true; } if (filtroTexto.includes(" ") && verificarTodasPalavras(filtroTexto, tituloCampanha)) { return true; } return false; }); if (campanha) { return { campanha, filtro }; } } return null; } function criarBotaoCampanha(campanha) { var slug = criarSlug(campanha.titulo); var linkCampanha = "/novas-campanhas#" + slug; var div = document.createElement('div'); div.innerHTML = ` `; return div.firstElementChild; } function inserirBotao(botao) { document.querySelector('.produto-descricao').insertAdjacentElement('afterend', botao); } function extrairFiltros() { var filtros = []; var secaoFiltros = document.querySelector('.produto-filtros'); if (secaoFiltros) { secaoFiltros.querySelectorAll('.label a').forEach(link => { var texto = link.textContent.trim(); if (texto) filtros.push(texto); }); } var descricao = document.querySelector('.descricao-completa') || document.querySelector('.produto-descricao p'); if (descricao) { var textoDescricao = descricao.textContent; var match = textoDescricao.match(/COLE[CÇ][AÃ]O\s+([A-Za-zÀ-ÖØ-öø-ÿ0-9\s]+)($|\n|
0) { campanhasData = data.registros; var filtros = extrairFiltros(); var correspondencia = encontrarCorrespondencia(filtros); if (correspondencia) { var botao = criarBotaoCampanha(correspondencia.campanha); inserirBotao(botao); } } } catch (error) { console.error('Erro ao carregar campanhas:', error); } } if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', carregarCampanhas); } else { carregarCampanhas(); } }