const navText = [ '', '' ]; class Web { static init() { Web.initDynamicBG(); ClassVehiculos.init(); $(document).ready(function (e) { $("html").addClass("loaded"); $('.selectpicker').on('changed.bs.select', function (e, clickedIndex, isSelected, previousValue) { if (isSelected === null) return; $(this).removeClass("error"); }); const btnSubir = $("#btn-subir"); let toScroll = null; $(window).scroll(function () { let scrollPosition = $(window).scrollTop(); if (scrollPosition > 300) { clearTimeout(toScroll); toScroll = setTimeout(function () { btnSubir.removeClass("d-none"); }, 100); } else { clearTimeout(toScroll); btnSubir.addClass("d-none"); } btnSubir.click(function () { clearTimeout(toScroll); window.scrollTo({top: 0, behavior: 'smooth'}); $(this).addClass("d-none"); }); }); new WOW( { boxClass: "title-animation", offset: 50, callback: function (box) { $(box).addClass("animate"); } } ).init(); }); } static initInicio() { } static initVenderCoche() { $(document).ready(function () { const formId = "vender-coche"; $.mask.definitions['l'] = "[A-Za-z]"; $(`#${formId}-matricula`).mask("9999-lll"); $('#vender-coche-marca').on('changed.bs.select', function (e, clickedIndex, isSelected, previousValue) { if (isSelected === null) return; const modeloElement = $("#vender-coche-modelo"); modeloElement.find("option:not(.bs-title-option)").remove(); modeloElement.selectpicker("refresh"); modeloElement.selectpicker("val", ""); var successCallback = function (data, textStatus, XMLHttpRequest) { if (data["error_number"] >= 0) { $.each(data["items"], function (i, e) { modeloElement.append($("").attr("value", e["id"]).text(e["nombre"])); }); modeloElement.selectpicker("refresh"); } }; Utils.sendStandardAjax(undefined, "https://www.leadercar.es/ajax/ModelosVentas.listado.php?marca=" + $("#vender-coche-marca").val(), { successCallback: successCallback, esperePorFavor: false, }); }); $("#btn-solicitar-tasacion").click(function (e) { var extraMsg = ""; if (!$("#politica-coche").is(":checked")) { extraMsg = $("#politica-coche").attr("title"); } Utils.sendStandardAjax(formId, "https://www.leadercar.es/ajax/VenderCoche.enviar.php", { extraErroresForm: extraMsg, successCallback: function (data, textStatus, XMLHttpRequest) { if (data["error_number"] >= 0) { window.dataLayer = window.dataLayer || []; window.dataLayer.push({ event: "form_submitted" }); } ClassBlockUI.abrirBlockUIEstandarMensaje(data["error_message"], true); }, resetFormOnSuccess: true }); }); }); } static initDynamicBG() { $(document).ready(function () { new WOW( { boxClass: "dynamic-bg", //offset: 200, callback: function (box) { $(box).addClass("loaded"); }, } ).init(); }); } static initTexto() { $("document").ready(function () { //$(".textoSeccion a").attr("target", "_blank"); $(".textoSeccion a[href^='tel']").removeAttr("target"); $(".textoSeccion img[style^='float: left'], .textoSeccion img[style^='float:left']").addClass("margin-right-20 margin-bottom-20 img-float"); $(".textoSeccion img[style^='float: right'], .textoSeccion img[style^='float:right']").addClass("margin-left-20 margin-bottom-20 img-float"); $(".textoSeccion img:not(.imagenDerecha)").addClass("img-fluid").css("max-width", "100%").css("height", "auto").css("object-fit", "cover"); }); } static initBanner() { let owl = null; let timeout = null; let videoFallbackTimeout = null; let activePlaybackToken = 0; $(document).ready(function () { if ($('#carousel-banner').length) { owl = $('#carousel-banner').owlCarousel({ animateOut: 'fadeOut', animateIn: 'fadeIn', loop: true, lazyLoad: true, //video:true, margin: 0, nav: true, dots: false, mouseDrag: false, smartSpeed: 900, autoplay: true, autoplayTimeout: 700000000, items: 1, navText: navText, onInitialized: onTranslated, onTranslate: onTranslate, onTranslated: onTranslated }); } $("#carousel-banner").on("click", ".owl-dots .owl-dot", function () { clearBannerTimeout(); clearVideoFallbackTimeout(); }); }); function onTranslate() { activePlaybackToken++; clearVideoFallbackTimeout(); clearBannerTimeout(); } function onTranslated() { activePlaybackToken++; clearVideoFallbackTimeout(); clearBannerTimeout(); const $activeItem = getActiveBannerItem(); const $activeVideo = $activeItem.find("video").first(); $("#carousel-banner .owl-item video").each(function () { if ($activeVideo.length > 0 && this === $activeVideo[0]) { return; } this.oncanplay = null; this.onloadeddata = null; this.onended = null; this.onerror = null; this.pause(); this.currentTime = 0; }); if ($activeVideo.length > 0) { $activeVideo[0].currentTime = 0; playVideo($activeVideo[0], activePlaybackToken); } else { const currentToken = activePlaybackToken; timeout = setTimeout(function () { if (currentToken !== activePlaybackToken) { return; } owl.trigger('next.owl.carousel'); }, 7000); } } function playVideo(video, playbackToken) { video.muted = true; video.playsInline = true; video.autoplay = true; video.setAttribute("muted", ""); video.setAttribute("autoplay", ""); video.setAttribute("playsinline", ""); video.setAttribute("webkit-playsinline", ""); clearBannerTimeout(); clearVideoFallbackTimeout(); video.onended = function () { if (!isCurrentPlayback(video, playbackToken)) { return; } activePlaybackToken++; clearVideoFallbackTimeout(); clearBannerTimeout(); owl.trigger('next.owl.carousel'); }; video.onerror = function () { if (!isCurrentPlayback(video, playbackToken)) { return; } scheduleVideoFallback(playbackToken); }; video.oncanplay = function () { video.oncanplay = null; if (!isCurrentPlayback(video, playbackToken)) { return; } startVideoPlayback(video, playbackToken); }; video.onloadeddata = function () { video.onloadeddata = null; if (!isCurrentPlayback(video, playbackToken)) { return; } startVideoPlayback(video, playbackToken); }; if (video.readyState >= video.HAVE_FUTURE_DATA) { startVideoPlayback(video, playbackToken); } else if (video.readyState === 0) { video.load(); scheduleVideoFallback(playbackToken); } else { scheduleVideoFallback(playbackToken); } } function clearBannerTimeout() { if (timeout != null) { clearTimeout(timeout); timeout = null; } } function clearVideoFallbackTimeout() { if (videoFallbackTimeout != null) { clearTimeout(videoFallbackTimeout); videoFallbackTimeout = null; } } function scheduleVideoFallback(playbackToken, durationSeconds = 0) { clearVideoFallbackTimeout(); let fallbackMs = 7000; if (durationSeconds && isFinite(durationSeconds) && durationSeconds > 0) { fallbackMs = Math.ceil(durationSeconds * 1000) + 2000; } videoFallbackTimeout = setTimeout(function () { if (playbackToken !== activePlaybackToken) { return; } owl.trigger('next.owl.carousel'); }, fallbackMs); } function startVideoPlayback(video, playbackToken) { if (!isCurrentPlayback(video, playbackToken)) { return; } scheduleVideoFallback(playbackToken, video.duration); const playPromise = video.play(); if (playPromise && typeof playPromise.catch === "function") { playPromise.catch(function () { if (!isCurrentPlayback(video, playbackToken)) { return; } scheduleVideoFallback(playbackToken); }); } } function getActiveBannerItem() { let $activeItem = $("#carousel-banner .owl-item.active:not(.cloned)").first(); if ($activeItem.length === 0) { $activeItem = $("#carousel-banner .owl-item.active").first(); } return $activeItem; } function isCurrentPlayback(video, playbackToken) { return playbackToken === activePlaybackToken && getActiveBannerItem().find("video").first()[0] === video; } } static initResenas() { $(document).ready(function () { const elementCarousel = $("#valoraciones"); if (elementCarousel.length > 0) { let numItems = elementCarousel.find(".item-resena").length; elementCarousel.owlCarousel({ margin: 30, nav: false, navText: navText, dots: true, lazyLoad: true, stagePadding: 3, responsive: { 0: { items: 1, loop: numItems > 1, }, 768: { items: numItems > 1, loop: numItems > 1, stagePadding: numItems > 1 ? 60 : 0 }, 992: { items: numItems > 3 ? 1.5 : 2, loop: numItems > 3, }, 1200: { items: numItems > 4 ? 2.5 : 3, loop: numItems > 6, }, 1600: { items: 3, loop: numItems > 3, } } }); $("body").on("click", ".btn-mas-valoracion", function () { var padre = $(this).parents(".item-resena"); //$(padre).find(".valoracion-texto").addClass("d-none"); //$(padre).find(".valoracion-texto-completo").removeClass("d-none"); $("#bloque-resena .textoSeccion").html(padre.find(".valoracion-texto-completo").html()); ClassBlockUI.abrirBlockUIEstandar("bloque-resena", undefined, "Reseña de " + padre.find(".item-resena-usuario").text(), "modal622"); }); $("body").on("click", "#btn-cerrar-resena", function (e) { $(".modal").modal("hide"); }); } }); } static initClientesSatisfechos() { $(document).ready(function () { const elementCarousel = $("#clientes-satisfechos-owl"); if (elementCarousel.length > 0) { let numItems = elementCarousel.find(".caja-cliente").length; elementCarousel.owlCarousel({ margin: 30, nav: false, dots: true, responsive: { 0: { items: 1, loop: numItems > 1, }, 576: { items: 1, loop: numItems > 1, stagePadding: numItems > 1 ? 80 : 0 }, 768: { items: numItems > 1, loop: numItems > 1, stagePadding: numItems > 1 ? 160 : 0 }, 992: { items: 3, loop: numItems > 3, }, 1600: { items: 4, loop: numItems > 4, } } }); } }); } static initMedios() { $(document).ready(function () { const elementCarousel = $("#medios"); if (elementCarousel.length > 0) { let numItems = elementCarousel.find(".caja-medio").length; elementCarousel.owlCarousel({ margin: 30, nav: false, dots: true, autoplay: true, autoplayTimeout: 2500, responsive: { 0: { margin: 15, items: 2, loop: numItems > 2, }, 576: { margin: 15, items: 3, loop: numItems > 3, }, 992: { items: 4, loop: numItems > 4, }, 1200: { items: 5, loop: numItems > 5, } } }); } }); } static initFiltrosBuscador({ precioMinSeleccionado = 0, precioMaxSeleccionado = 150000, precioMin = 0, precioMax = 150000, cuotaMinSeleccionado = 0, cuotaMaxSeleccionado = 800, cuotaMin = 0, cuotaMax = 800, anyoMinSeleccionado = 1959, anyoMaxSeleccionado = new Date().getFullYear(), anyoMin = 1959, anyoMax = new Date().getFullYear(), kmMinSeleccionado = 0, kmMaxSeleccionado = 300000, kmMin = 0, kmMax = 300000, } = {} ) { $(document).ready(function (e) { $("#buscar").pressEnter(function (e) { $(".btn-buscar-coches").trigger("click"); }); const elementToggleExtraFiltros = $("#btn-toggle-extra-filtros"); const elementSliderPrecio = $("#slider-range-precio"); const elementSliderCuota = $("#slider-range-cuota-mensual"); const elementSliderAnyo = $("#slider-range-anyo"); const elementSliderKm = $("#slider-range-km"); $("#btn-abrir-filtros, #btn-cerrar-filtros").click(function (e) { $("#filtros-buscador").toggleClass("open"); }); elementToggleExtraFiltros.click(function (e) { $("#filtros-buscador").toggleClass("expand"); elementToggleExtraFiltros.toggleClass("active"); if ($(window).width() < 992 && elementToggleExtraFiltros.hasClass("active")) { var $precio = $("#banner #container-filtro-precio"); var $cuota = $("#banner #container-filtro-cuota"); if ($precio.length === 0 || $cuota.length === 0) return; if ($precio.parent().is("#filtros-buscador-top")) { $("#filtros-buscador-bottom").prepend($cuota).prepend($precio); } if ($(window).width() < 576) { var $modelo = $("#banner #container-filtro-modelo"); if ($modelo.parent().is("#filtros-buscador-top")) { $("#filtros-buscador-bottom").prepend($modelo); } } } }); elementSliderPrecio.slider({ range: true, min: precioMin, max: precioMax, step: 100, values: [precioMinSeleccionado, precioMaxSeleccionado], slide: function (event, ui) { $("#precio-min-label").html(Utils.number_format(ui.values[0], { numberOfDecimals: 0, thousandSeparator: "." }) + "€"); $("#precio-max-label").html(Utils.number_format(ui.values[1], { numberOfDecimals: 0, thousandSeparator: "." }) + "€"); }, stop: function (event, ui) { $("#precio-min-label").html(Utils.number_format(ui.values[0], { numberOfDecimals: 0, thousandSeparator: "." }) + "€"); $("#precio-max-label").html(Utils.number_format(ui.values[1], { numberOfDecimals: 0, thousandSeparator: "." }) + "€"); $("#precio-min").val(elementSliderPrecio.slider("values", 0)); $("#precio-max").val(elementSliderPrecio.slider("values", 1)); } }); elementSliderCuota.slider({ range: true, min: cuotaMin, max: cuotaMax, step: 20, values: [cuotaMinSeleccionado, cuotaMaxSeleccionado], slide: function (event, ui) { $("#cuota-min-label").html(Utils.number_format(ui.values[0], { numberOfDecimals: 0, thousandSeparator: "." }) + "€"); $("#cuota-max-label").html(Utils.number_format(ui.values[1], { numberOfDecimals: 0, thousandSeparator: "." }) + "€"); }, stop: function (event, ui) { $("#cuota-min-label").html(Utils.number_format(ui.values[0], { numberOfDecimals: 0, thousandSeparator: "." }) + "€"); $("#cuota-max-label").html(Utils.number_format(ui.values[1], { numberOfDecimals: 0, thousandSeparator: "." }) + "€"); $("#cuota-min").val(elementSliderCuota.slider("values", 0)); $("#cuota-max").val(elementSliderCuota.slider("values", 1)); } }); elementSliderAnyo.slider({ range: true, min: anyoMin, max: anyoMax, step: 1, values: [anyoMinSeleccionado, anyoMaxSeleccionado], slide: function (event, ui) { $("#anyo-min-label").html(ui.values[0]); $("#anyo-max-label").html(ui.values[1]); }, stop: function (event, ui) { $("#anyo-min-label").html(ui.values[0]); $("#anyo-max-label").html(ui.values[1]); $("#anyo-min").val(elementSliderAnyo.slider("values", 0)); $("#anyo-max").val(elementSliderAnyo.slider("values", 1)); } }); elementSliderKm.slider({ range: true, min: kmMin, max: kmMax, step: 200, values: [kmMinSeleccionado, kmMaxSeleccionado], slide: function (event, ui) { $("#km-min-label").html(Utils.number_format(ui.values[0], { numberOfDecimals: 0, thousandSeparator: "." }) + "km"); $("#km-max-label").html(Utils.number_format(ui.values[1], { numberOfDecimals: 0, thousandSeparator: "." }) + "km"); }, stop: function (event, ui) { $("#km-min-label").html(Utils.number_format(ui.values[0], { numberOfDecimals: 0, thousandSeparator: "." }) + "km"); $("#km-max-label").html(Utils.number_format(ui.values[1], { numberOfDecimals: 0, thousandSeparator: "." }) + "km"); $("#km-min").val(elementSliderKm.slider("values", 0)); $("#km-max").val(elementSliderKm.slider("values", 1)); } }); $(".btn-buscar-coches").click(function (e) { const buscar = $("#buscar").val(); const marca = $("#marca").val(); const modelo = $("#modelo").val(); const carroceria = $("#carroceria").val(); const etiqueta = $("#etiqueta").val(); const loMasBuscado = $("#lo-mas-buscado").val(); const precioMinUser = $("#precio-min").val() * 1; const precioMaxUser = $("#precio-max").val() * 1; const cuotaMinUser = $("#cuota-min").val() * 1; const cuotaMaxUser = $("#cuota-max").val() * 1; const combustible = $("#combustible").val(); const anyoMinUser = $("#anyo-min").val() * 1; const anyoMaxUser = $("#anyo-max").val() * 1; const kmMinUser = $("#km-min").val() * 1; const kmMaxUser = $("#km-max").val() * 1; const cambio = $("#cambio").val(); const orden = $("#filtro-ordenar").val(); const potenciaElement = $("#potencia"); let mainUrl = 'https://www.leadercar.es/comprar-vehiculo/'; if (marca !== "" && marca !== null) mainUrl += "marca-" + marca + "/"; if (modelo !== "" && modelo !== null) mainUrl += "modelo-" + modelo + "/"; if (carroceria !== "" && carroceria !== null) mainUrl += "tipo-vehiculo-" + carroceria + "/"; if (etiqueta !== "" && etiqueta !== null) mainUrl += "etiqueta-" + etiqueta + "/"; if (loMasBuscado !== "" && loMasBuscado !== null) mainUrl += "mas-buscado-" + loMasBuscado + "/"; let url = new URL(mainUrl); if (buscar !== "" && buscar !== undefined) { url.searchParams.append("buscar", buscar); } if ((precioMinUser !== precioMin || precioMaxUser !== precioMax) && precioMaxUser > 0) { url.searchParams.append("precio", precioMinUser + "-" + precioMaxUser); } if ((cuotaMinUser !== cuotaMin || cuotaMaxUser !== cuotaMax) && cuotaMaxUser > 0) { url.searchParams.append("cuota", cuotaMinUser + "-" + cuotaMaxUser); } if ((anyoMinUser !== anyoMin || anyoMaxUser !== anyoMax) && anyoMaxUser > 0) { url.searchParams.append("anyo", anyoMinUser + "-" + anyoMaxUser); } if ((kmMinUser !== kmMin || kmMaxUser !== kmMax) && kmMaxUser > 0) { url.searchParams.append("kilometros", kmMinUser + "-" + kmMaxUser); } if (combustible !== "" && combustible !== null) { url.searchParams.append("combustible", combustible); } if (cambio !== "" && cambio !== null) { url.searchParams.append("cambio", cambio); } const potenciaMin = potenciaElement.find("option:selected").data("min"); const potenciaMax = potenciaElement.find("option:selected").data("max"); if (potenciaMin > 0) url.searchParams.append("potencia-min", potenciaMin); if (potenciaMax > 0) url.searchParams.append("potencia-max", potenciaMax); if (orden !== "" && orden !== null && orden !== undefined) { url.searchParams.append("orden", orden); } window.location.href = url.toString(); }); $('#marca').on('changed.bs.select', function (e, clickedIndex, isSelected, previousValue) { if (isSelected === null) return; const modeloElement = $("#modelo"); modeloElement.find("option:not(.bs-title-option)").not(":first").remove(); modeloElement.selectpicker("refresh"); modeloElement.selectpicker("val", ""); var successCallback = function (data, textStatus, XMLHttpRequest) { if (data["error_number"] >= 0) { $.each(data["items"], function (i, e) { modeloElement.append($("").attr("value", e["url"]).text(e["nombre"])); }); modeloElement.selectpicker("refresh"); } }; Utils.sendStandardAjax(undefined, "https://www.leadercar.es/ajax/Modelos.listado.php?marca=" + $("#marca").val(), { successCallback: successCallback, esperePorFavor: false, }); }); }); } static initCompartir() { $(document).ready(function (e) { $(".compartir").jsSocials({ showCount: false, showLabel: true, shareIn: "popup", shares: [ {share: "twitter", logo: "fab fa-twitter", label: "Post"}, { share: "facebook", label: "Compartir", logo: "fab fa-facebook" }, {share: "pinterest", label: "Pin it", logo: "fab fa-pinterest"}, ] }); $(".fa.fa-facebook").removeClass("fa").addClass("fab").addClass("fa-facebook-f"); $(".fa.fa-twitter").removeClass("fa").addClass("fab"); /* $(".fa.fa-google").removeClass("fa").addClass("fab").addClass("fa-google-plus-g");*/ $(".fa.fa-pinterest").removeClass("fa").addClass("fab"); //$('
').appendTo('.jssocials-shares'); }); } static initContacto() { $(document).ready(function (e) { $("#btnEnviarContacto").click(enviarFormulario); }); function enviarFormulario(event) { event.preventDefault(); var extraMsg = ""; if (!$("#politica").is(":checked")) { extraMsg = $("#politica").attr("title"); } Utils.sendStandardAjax("formContacto", "https://www.leadercar.es/ajax/Contacto.enviar.php", { extraErroresForm: extraMsg, successCallback: function (data, textStatus, XMLHttpRequest) { if (data["error_number"] >= 0) { window.dataLayer = window.dataLayer || []; window.dataLayer.push({ event: "form_submitted" }); } ClassBlockUI.abrirBlockUIEstandarMensaje(data["error_message"], true); }, resetFormOnSuccess: true }); } } static initWhatsapp() { $(document).ready(function () { const $whatsapp = $(".redes-sociales .whatsapp"); const $iconWhatsapp = $whatsapp.find(".iconWhatsapp"); const $bloqueWhatsapp = $whatsapp.find("#bloque-whatsapp"); const $radiosDepartamento = $whatsapp.find("input[name='departamento']"); const $btnWhatsapp = $whatsapp.find("#btn-whatsapp"); function getWhatsappUrl() { const telefono = $radiosDepartamento.filter(":checked").data("telefono"); if (!telefono) return ""; return "https://wa.me/" + telefono + "/?text="; } function actualizarBotonWhatsapp() { $btnWhatsapp.prop("disabled", !getWhatsappUrl()); } $iconWhatsapp.on("click", function (e) { e.stopPropagation(); $whatsapp.toggleClass("open"); }); $bloqueWhatsapp.on("click", function (e) { e.stopPropagation(); }); $radiosDepartamento.on("change", function () { actualizarBotonWhatsapp(); }); $btnWhatsapp.on("click", function () { const url = getWhatsappUrl(); if (!url) return; window.open(url, "_blank"); $whatsapp.removeClass("open"); }); $(document).on("click", function (e) { if (!$(e.target).closest(".redes-sociales .whatsapp").length) $whatsapp.removeClass("open"); }); actualizarBotonWhatsapp(); }); } } function findPos(obj) { var curtop = 0; if (obj.offsetParent) { do { curtop += obj.offsetTop; } while (obj = obj.offsetParent); return [curtop]; } } function isEmail(email) { var regex = /^([a-zA-Z0-9_.+-])+\@(([a-zA-Z0-9-])+\.)+([a-zA-Z0-9]{2,4})+$/; return regex.test(email); } function preparaLugar(pais, provincia, poblacion, idInputPais, idInputProvincia, idInputLocalidad) { if (pais > 0) { if (provincia > 0) provincia = (provincia + "").padStart(2, "0"); actualizaProvincias(idInputLocalidad, idInputProvincia, idInputPais, provincia, pais, provincia, poblacion, undefined); } $('#' + idInputPais).on('changed.bs.select', function (e, clickedIndex, isSelected, previousValue) { //console.log(e, clickedIndex, isSelected, previousValue, $(this).val(), $('#frmServicioProvincia').val(), $('#frmServicioProvincia').selectpicker("val")); actualizaProvincias(idInputLocalidad, idInputProvincia, idInputPais, provincia, undefined, undefined, undefined, undefined, undefined, undefined, true); }); /*$("body").on("change", "#"+idInputPais, function() { actualizaProvincias(idInputLocalidad,idInputProvincia, idInputPais, provincia); });*/ if (provincia > 0) { if (poblacion > 0) poblacion = (poblacion + "").padStart(3, "0"); actualizaCiudades(idInputLocalidad, idInputProvincia, idInputPais, poblacion, pais, provincia, poblacion, $("#" + idInputProvincia).val() * 1); } $('#' + idInputProvincia).on('changed.bs.select', function (e, clickedIndex, isSelected, previousValue) { //console.log(e, clickedIndex, isSelected, previousValue, $(this).val(), $('#frmServicioProvincia').val(), $('#frmServicioProvincia').selectpicker("val")); if (isSelected === null) return; $('#' + idInputProvincia).removeClass("error"); actualizaCiudades(idInputLocalidad, idInputProvincia, idInputPais, undefined, $("#" + idInputPais).val() * 1, $("#" + idInputProvincia).val() * 1); }); $('#' + idInputLocalidad).on('changed.bs.select', function (e, clickedIndex, isSelected, previousValue) { if (isSelected === null) return; $('#' + idInputLocalidad).removeClass("error"); }); } function actualizaProvincias(idCampoLocalidad, idCampoRegion, idCampoPais, idRegionPreEstablecida, forceIdPais, forceIdRegion, forceIdLocalidad, onFinish, textoSelect, textoLoading, actualizarLocalidad) { if (forceIdPais == undefined) { forceIdPais = $("#" + idCampoPais).val(); } if (forceIdRegion == undefined) { forceIdRegion = $("#" + idCampoRegion).val(); } if (forceIdLocalidad == undefined) { forceIdLocalidad = $("#" + idCampoLocalidad).val(); } if (textoSelect == undefined) { //textoSelect = ""; textoSelect = ""; } //var textoSelectLoc = ""; var textoSelectLoc = ""; if (textoLoading == undefined) { textoLoading = ""; } var data = {idPais: forceIdPais}; $("#" + idCampoRegion).empty(); $("#" + idCampoRegion).append(""); $("#" + idCampoRegion).selectpicker("refresh"); $("#" + idCampoRegion).selectpicker('val', 0); if (actualizarLocalidad) { $("#" + idCampoLocalidad).empty(); $("#" + idCampoLocalidad).append(""); $("#" + idCampoLocalidad).selectpicker("refresh"); $("#" + idCampoLocalidad).selectpicker('val', 0); } var returned = $.ajax( { url: "https://www.leadercar.es/ajax/Ubicacion.listadoRegiones.php?CSRF=" + CSRF, type: "POST", dataType: "json", data: data, error: function (XMLHttpRequest, textStatus, errorThrown) { //ClassBlockUI.abrirBlockUIEstandarMensaje(XMLHttpRequest.responseText, true); }, success: function (data) { $("#" + idCampoRegion).empty(); $("#" + idCampoRegion).append(""); for (var index in data) { $("#" + idCampoRegion).append(""); } $("#" + idCampoRegion).selectpicker("refresh"); if (idRegionPreEstablecida != undefined && idRegionPreEstablecida != "") { $("#" + idCampoRegion).val(idRegionPreEstablecida); } else { $("#" + idCampoRegion).val(0); } $("#" + idCampoRegion).selectpicker("refresh"); if (actualizarLocalidad) { $("#" + idCampoLocalidad).empty(); $("#" + idCampoLocalidad).append(""); $("#" + idCampoLocalidad).val(0); $("#" + idCampoLocalidad).selectpicker("refresh"); } if (onFinish != undefined && typeof (onFinish) == "function") { onFinish(); } } }); } function actualizaCiudades(idCampoLocalidad, idCampoRegion, idCampoPais, idLocalidadPreEstablecida, forceIdPais, forceIdRegion, forceIdLocalidad, onFinish, textoSelect, textoLoading) { if (forceIdPais == undefined) { forceIdPais = $("#" + idCampoPais).val(); } if (forceIdRegion == undefined) { forceIdRegion = $("#" + idCampoRegion).val(); } if (forceIdLocalidad == undefined) { forceIdLocalidad = $("#" + idCampoLocalidad).val(); } if (textoSelect == undefined) { //textoSelect = ""; textoSelect = ""; } if (textoLoading == undefined) { textoLoading = ""; } var data = { idPais: forceIdPais, idRegion: forceIdRegion }; $("#" + idCampoLocalidad).empty(); $("#" + idCampoLocalidad).append(""); $("#" + idCampoLocalidad).selectpicker("refresh"); $("#" + idCampoLocalidad).selectpicker('val', 0); var returned = $.ajax( { url: "https://www.leadercar.es/ajax/Ubicacion.listadoCiudades.php?CSRF=" + CSRF, type: "POST", dataType: "json", data: data, error: function (XMLHttpRequest, textStatus, errorThrown) { //ClassBlockUI.abrirBlockUIEstandarMensaje(XMLHttpRequest.responseText, true); }, success: function (data) { $("#" + idCampoLocalidad).empty(); $("#" + idCampoLocalidad).append(""); for (var index in data) { $("#" + idCampoLocalidad).append(""); } $("#" + idCampoLocalidad).selectpicker("refresh"); if (idLocalidadPreEstablecida != undefined) { $("#" + idCampoLocalidad).val(idLocalidadPreEstablecida); } else { $("#" + idCampoLocalidad).val(0); } $("#" + idCampoLocalidad).selectpicker("refresh"); if (onFinish != undefined && typeof (onFinish) == "function") { onFinish(); } } }); } class Chatbot { constructor() { this.$chatContainer = $("#chatbot-contiene-chat"); this.$messages = $("#chatbot-contiene-chats"); this.currentStep = "start"; this.data = {}; this.flow = this.buildFlow(); this.bindHeaderButtons(); $("#btn-chatbot, .btn-chatbot").click(() => this.$chatContainer.toggleClass("d-none")); $("#chatbot-btn-cerrar, #chatbot-bienvenida-footer button, #btn-chatbot").click(() => $("#chatbot-contiene-bienvenida").remove()); $("#chatbot-bienvenida-footer button").click((event, element) => { this.$chatContainer.removeClass("d-none"); const text = $(event.currentTarget).hasClass("btn-chatbot-comprar") ? "Comprar Coche" : "Vender Coche"; const $block = this.$messages.find(".item-mensaje-opcs").last(); this.userReply(text, $block); }); } buildFlow() { const tiposVehiculo = ["Berlina","Coup\u00e9","Monovol\u00famen","4x4 Suv","Cabrio","Familiar","Industrial","Cl\u00e1sico"]; const marcas = ["Abarth","AC","Acura","Adam","Aion","Aito","Aiways","Aixam","Alfa Romeo","Alpina","Alpine","Amberauto","Ambertruck","Apal","Arcfox","Ariel","Aro","Asia","Aston Martin","ATOM","Audi","Aurus","Avatr","Baic","Bajaj","Baltijas Dzips","Baojun","Batmobile","BAW","Belgee","Bentley","Bestune","Bilenkin","Bio auto","Blaval","BMW","Borgward","Brabus","Brilliance","Bristol","Bufori","Bugatti","Buick","BYD","Byvin","Cadillac","Callaway","Caterham","Chana","Changan","ChangFeng","Changhe","Chery","CheryExeed","Chevrolet","Chrysler","Ciimo","Citroen","Coda","Coggiola","Combat","Cowin","Cupra","Dacia","Dadi","Daewoo","Daihatsu","Daimler","Dallara","Datsun","Dayun","De Tomaso","Delage","Denza","Derways","DFSK","Dodge","DongFeng","Dongfeng Forthing","Doninvest","Donkervoort","DR","DS","DW Hower","E-Car","Enoreve","Enovate","Eonyx","Everus","Evolute","EXEED","Exlantix","FAW","Fengon","Ferrari","Fiat","Fisker","Flanker","Ford","Foton","FSO","Fuqi","GAC","GAZ","Geely","Genesis","Geo","GMA","GMC","Gonow","Gordon","Great Wall","Hafei","Haima","Hanteng","Haval","Hawtai","Hedmos","Hennessey","Hindustan","HiPhi","Holden","Honda","Hongqi","Hozon","HSV","Huaihai (Hoann)","HuangHai","Huazi","Hummer","Hycan","Hyperion","Hyundai","iCar","iCaur","IM Motors (Zhiji)","Ineos","Infiniti","Invicta","Iran Khodro","Isuzu","IVECO","IZH","JAC","Jaecoo","Jaguar","Jeep","Jensen","Jetour","Jetta","Jiangnan","Jidu","Jinbei","JMC","JMEV","Jonway","Kaiyi","Kanonir","Karma","Kawei","KG Mobility","KGM","Kia","Knewstar","Koenigsegg","KTM AG","KYC","Lamborghini","Lancia","Land Rover","Landwind","Leapmotor","Letin","LEVC","Lexus","Lifan","Ligier","Lincoln","lingxi","Livan","LiXiang","Logem","Lotus","LTI","Lucid","Luxeed","Luxgen","Lynk & Co","M-Hero","Maextro","Mahindra","Maple","Marcos","Marlin","Marussia","Maruti","Maserati","Maxeed","Maxus","Maybach","Mazda","McLaren","Mega","Mercedes-Benz","Mercury","Metrocab","MG","Micro","Microcar","Minelli","Mini","Mitsubishi","Mitsuoka","Mobilize","Morgan","Moskvich","Nio","Nissan","Noble","Nordcross","Oldsmobile","Omoda","Opel","ORA","Orange","Osca","Oshan","Oting","Pagani","Panoz","Perodua","Peugeot","PGO","Plymouth","Polestar","Pontiac","Porsche","Proton","Punk","Qiantu","Qingling","Qiyuan","Qoros","Qvale","Racing car","Radar","Radford","RAM","Ravon","Renaissance","Renault","Renault Samsung","Rezvani","Rimac","Rinspeed","Rising Auto","Rivian","Roewe","Rolls-Royce","Ronart","Rossa","Rover","Rox","Saab","SAIC","Saipa","Saleen","Samsung","Sandstorm","Saturn","Scion","Scout","SEAT","Seres","Seres Aito","Shanghai Maple","Shifeng","ShuangHuan","Skoda","Skywell","Skyworth","SMA","Smart","Solaris","Sollers","Soueast","Spectre","Spyker","SsangYong","Stelato","Subaru","Suzuki","SWM","TagAZ","Tank","Tata","Tatra","Tazzari","Tenet","Tesla","Thairung","Think","Tianma","Tofas","Toyota","Tramontana","Trumpchi","TVR","UAZ","Ultima","Vauxhall","VAZ (Lada)","Vector","Venucia","VGV","VinFast","Volga","Volkswagen","Volvo","Vortex","Voyah","VUHL","W Motors","Weltmeister","WEY","Wiesmann","Wuling","Xcite","XEV","Xiaomi","XiaoPaoChe (SSC)","Xin Kai","Xpeng","Yema","Yipai","Yo-mobil","Zastava","ZAZ","Zeekr","Zenos","Zenvo","Zhido","Zibar","Zotye","ZX"]; const kilometros = [ "0 - 20.000 km", "20.000 - 40.000 km", "40.000 - 60.000 km", "60.000 - 80.000 km", "80.000 - 100.000 km", "100.000 - 125.000 km", "125.000 - 150.000 km", "150.000 - 200.000 km", "200.000 - 300.000 km", "+300.000 km" ]; const currentYear = new Date().getFullYear(); const years = Array.from( { length: currentYear - 2000 + 1 }, (_, i) => 2000 + i ); return { start: { text: "¡Hola! Bienvenid@ a Leadercar