const navText = [ '', '' ]; const mobile = false; class Web { static init() { $(document).ready(function (e) { $(".tooltipster-left, .tooltipStandardLeft").not(".tooltipstered").tooltipster({ animation: 'grow', interactive: true, position: 'left' }); $(".whatsapp .tooltipster-left").click(function(){$("#bloque-whatsapp").addClass("open")}); $("#bloque-whatsapp-cerrar").click(function(){$("#bloque-whatsapp").removeClass("open")}); $("input[name='departamento']").change(function() { const url = "https://wa.me/%telefono%/?text=Hola%2C+estaba+viendo+esto+https%3A%2F%2Fconcesionariokymcovalencia.es%2Ffunctions.js.php"; $("#bloque-whatsapp-footer .btnStandard").attr("href", url.replace("%telefono%", $(this).attr("data-telefono"))); }); $("input[name='departamento']:checked").trigger("change"); $.each($(".carousel-productos"), function (i, e) { Web.createCarouselProducts($(e)); }); $.each($(".carousel-servicios"), function (i, e) { const element = $(e); const items = element.find(".caja-servicio").length; element.owlCarousel({ loop: false, margin: 30, items: 1, dots: true, responsive: { 0: { items: 2, loop: items > 2, mouseDrag: items > 2, margin: 15 }, 768: { loop: items > 3, mouseDrag: items > 3, items: 3 } } }); }); $.each($(".carousel-noticias"), function (i, e) { const element = $(e); const items = element.find(".cajaNoticiasInicio").length; element.owlCarousel({ loop: false, margin: 30, items: 1, dots: true, responsive: { 0: { items: 2, loop: items > 2, mouseDrag: items > 2, margin: 15 }, 992: { loop: items > 3, mouseDrag: items > 3, items: 3 } } }); }); $("#btn-toggle-menu, #btn-cerrar-menu").click(function() { $("#header-top-menu").toggleClass("open"); }); initAutocomplete(); initMenu(); }); function initMenu() { $("#menu-web > li > a").on("click", function (e) { if (mobile) e.preventDefault(); }); $("#menu-web > li, .dropdown-menu-tipo").on("mouseover", function () { $(".nav-item-tipo").removeClass("open"); const id = $(this).attr("data-id"); const currentLI = $(".nav-item-tipo-"+id); const menuElement = $(".dropdown-menu-tipo[data-id='"+id+"']"); menuElement.addClass("open"); currentLI.addClass("open") let left = mobile ? 12 : (currentLI.offset().left - ((menuElement.innerWidth() - currentLI.innerWidth()) / 2)); let top = (currentLI.innerHeight() + currentLI.offset().top); if ($("#menuBloque").hasClass("fixed")) { top = $("#menuBloque").innerHeight() - 10; } menuElement.css({ top: top + "px", left: left + "px", }) }); $("#menu-web > li, .dropdown-menu-tipo").on("mouseleave", function () { const id = $(this).attr("data-id"); const currentLI = $(".nav-item-tipo-"+id); const menuElement = $(".dropdown-menu-tipo[data-id='"+id+"']"); menuElement.removeClass("open"); currentLI.removeClass("open"); }); } function initAutocomplete() { const w = $(window).outerWidth(); let topAutocomplete = "top+7"; let leftAutocomplete = "right+0"; const elementBuscador = $("#inp-buscador"); elementBuscador.autocomplete({ source: "https://www.concesionariokymcovalencia.es/ajax/Productos.buscar.php", minLength: 3, classes: { "ui-autocomplete": "autocompleteProductos custom-scroll-bar" }, appendTo: "#container-buscador", position: { my: leftAutocomplete + " " + topAutocomplete, }, response: function (event, ui) { elementBuscador.removeClass("ui-autocomplete-loading"); }, change: function (event, ui) { if (!ui.item) { //$(event.target).val($("#input-buscador").val()); //$("#input-buscador").val(""); } else { elementBuscador.removeClass("ui-autocomplete-loading"); elementBuscador.data("item", ui.item); } }, select: function (event, ui) { elementBuscador.val(""); return false; }, open: function (event, ui) { $(".itemProdAutoTitulo").dotdotdot(); } }).autocomplete("instance")._renderItem = function (ul, item) { var label = item.label; var claseLi = (item.idProducto != -999 ? (item.idProducto == -1 ? "mostrarTodos" : "itemProdAuto") : ""); return $("
  • ") .append($("
    ").html(label)) .appendTo(ul); }; } } 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 createCarouselProducts(element, { items1600 = 6, items1200 = 5, items992 = 4, items768 = 3, itemsMobile = 2 } = {}) { if (element.length === 0) return; const items = element.find(".caja-producto").length; element.owlCarousel({ loop: false, margin: 30, items: 1, dots: true, nav: false, navText: navText, responsive: { 0: { items: itemsMobile, loop: items > itemsMobile, mouseDrag: items > itemsMobile, margin: 15, }, 768: { loop: items > items768, mouseDrag: items > items768, items: items768, }, 992: { loop: items > items992, mouseDrag: items > items992, items: items992, }, 1200: { loop: items > items1200, mouseDrag: items > items1200, items: items1200, }, 1600: { loop: items > items1600, mouseDrag: items > items1600, items: items1600, }, }, }); } 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() { $(document).ready(function () { if ($('#carousel-banner').length) { $('#carousel-banner').owlCarousel({ animateOut: 'fadeOut', animateIn: 'fadeIn', loop: true, lazyLoad: true, margin: 0, nav: false, dots: true, mouseDrag: false, smartSpeed: 900, autoplay: true, autoplayTimeout: 7000, items: 1, }); } }); } static initProducto(precioProducto, datosFinanciacion) { $(document).ready(function () { $(".ver-mas").click(function() { let accion = $(this).attr("data-accion")*1; if (accion == 1) { $(this).attr("data-accion", 2).find("span").text("Leer menos"); $(this).find("i").removeClass("fa-angle-down").addClass("fa-angle-up"); } else { $(this).attr("data-accion", 1).find("span").text("Leer más"); $(this).find("i").removeClass("fa-angle-up").addClass("fa-angle-down"); } }); $("#btn-ver-fotos").click(function() { dimbox.open($("#ficha-producto-fotos > .item-foto.d-none").eq(0)[0]); }); $.each($(".carousel-productos"), function (i, e) { Web.createCarouselProducts($(e)); }); $("#redes-compartir").jsSocials({ showCount: false, showLabel: false, shareIn: "popup", shares: [ {share: "facebook", logo: "fab fa-facebook-f"}, {share: "twitter", logo: "fab fa-twitter",}, ] }); $("#rango-meses, #rango-entrada").on("input change", calcularFinanciacion); $("#btnEnviarInfo").click(function (event) { event.preventDefault(); var successCallback = function (data, textStatus, XMLHttpRequest) { if (data["error_number"] < 0) { ClassBlockUI.abrirBlockUIEstandarMensaje(data["error_message"], true, undefined); } else { $(".modal").modal("hide"); $("#frmMasInformacion")[0].reset(); ClassBlockUI.abrirBlockUIEstandarMensaje(data["error_message"], true, undefined); } }; Utils.sendStandardAjax("frmMasInformacion", "https://www.concesionariokymcovalencia.es/ajax/MasInformacion.enviar.php", { successCallback: successCallback, resetFormOnSuccess: true, }); }); }); $("body").on("click", "#btn-mas-info", function(event) { $("#frmMasInformacionTipo").val(1); const moto = $("#frmMasInformacionProducto").val(); ClassBlockUI.abrirBlockUIEstandar("bloqueMasInformacion", undefined, "Quiero más información de la "+moto, "modal947"); }); $("body").on("click", "#btn-solicitar-prueba", function(event) { $("#frmMasInformacionTipo").val(2); const moto = $("#frmMasInformacionProducto").val(); ClassBlockUI.abrirBlockUIEstandar("bloqueMasInformacion", undefined, "Quiero probar la "+moto, "modal947"); }); $("body").on("click", "#btn-quiero-articulo", function(event) { $("#frmMasInformacionTipo").val(3); ClassBlockUI.abrirBlockUIEstandar("bloqueMasInformacion", undefined, "Quiero este artículo", "modal947"); }); function calcularFinanciacion() { const entrada = $("#rango-entrada").val()*1; const mes = $("#rango-meses").val()*1; $("#entrada").text(entrada); $("#meses").text(mes); const importeFinanciar = Math.max(precioProducto - entrada, 0); $("#importe-financiar").html_formated(importeFinanciar, {thousandSeparator: ".", symbol: "€"}); if (datosFinanciacion[mes] != undefined) { const resumenMes = Utils.number_format(importeFinanciar * (datosFinanciacion[mes]*1), {decimalSeparator: ",", thousandSeparator: ".", symbol: "€"}); $("#resumen-financiar").html(resumenMes+"/mes a "+mes+" meses"); $(".financiacionPrecio").html(resumenMes+"/mes a "+mes+" meses"); $(".financiacionDesde").hide(); } } } 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.concesionariokymcovalencia.es/ajax/Contacto.enviar.php", { extraErroresForm: extraMsg, successCallback: "data-location", resetFormOnSuccess: true, }); } } static initListadoProductos(datosPaginador, min, max) { $(document).ready(function () { let LOADING_ELEMENTS = false; let numPages = datosPaginador["numPages"]; let page = datosPaginador["page"]; let scrollPosition = 0; const productosElement = $("#productos"); initSliderPrecio(); $(window).scroll(function () { scrollPosition = $(window).scrollTop() + $(window).height(); if (scrollPosition > productosElement.height() - 100 && !LOADING_ELEMENTS) { if (page < numPages) { page++; cargarItems(); } } }); function cargarItems() { if (LOADING_ELEMENTS) return; LOADING_ELEMENTS = true; var successCallback = function (data, textStatus, XMLHttpRequest) { $(".modal").modal("hide"); if (data["error_number"] >= 0) { //Lo vuelvo asignar por si esta bajando a saco if (page > 1) { scrollPosition = $(window).scrollTop() + $(window).height(); if (scrollPosition > productosElement.height() + 400) { $(window).scrollTop(productosElement.offset().top + productosElement.height() - 350); } } numPages = data["numPages"]; $("#btn-subir").removeClass("d-none"); $(".sinResultados").addClass("d-none"); if (page == 1) productosElement.html(""); productosElement.append(data["productos"]); if (productosElement.html() === "") $(".sinResultados").removeClass("d-none"); setTimeout(function () { LOADING_ELEMENTS = false; }, 1000); } }; Utils.sendStandardAjax(null, "https://www.concesionariokymcovalencia.es/ajax/Productos.cargar.php", { successCallback: successCallback, esperePorFavor: false, prepareFormData: function () { let formData = new FormData($("#form-filtros")[0]); formData.append("page", page); formData.append("orden", $("#ordenar").val()); formData.append("filtros", datosPaginador["filtros"]); return formData; }, }); } $('#ordenar').on('changed.bs.select', function (e, clickedIndex, isSelected, previousValue) { if (isSelected === null) return; page = 1; LOADING_ELEMENTS = false; cargarItems(); }); $('#filtro-categoria').on('changed.bs.select', function (e, clickedIndex, isSelected, previousValue) { if (isSelected === null) return; const tieneSubcategorias = $('#filtro-categoria option:selected').attr("data-subcategorias") * 1; const elementSubcategoria = $('#filtro-subcategoria'); if ([2, 3].includes($(this).val()*1)) { $("label[for='filtro-subcategoria']").text("Cilindrada"); } else { $("label[for='filtro-subcategoria']").text("Subcategoría"); } elementSubcategoria.find("option[value!=-1]").remove(""); if (tieneSubcategorias === 0) { elementSubcategoria.attr("disabled", true); elementSubcategoria.selectpicker("val", -1); elementSubcategoria.selectpicker("refresh"); } else { const successCallback = function (data, textStatus, XMLHttpRequest) { const elements = data["elements"]; if (Object.keys(elements).length > 0) elementSubcategoria.attr("disabled", false); else elementSubcategoria.attr("disabled", true); $.each(elements, function (i, e) { elementSubcategoria.append(""); }); elementSubcategoria.selectpicker("refresh"); }; Utils.sendStandardAjax(null, "https://www.concesionariokymcovalencia.es/ajax/Subcategorias.cargar.php?categoria=" + $(this).val(), { successCallback: successCallback, esperePorFavor: false, }); } }); $('#btn-abre-filtros').click(function (e) { $("#form-filtros").addClass("open"); }); $('#btn-aplicar-filtros, #btn-limpiar-filtros').click(function (e) { page = 1; LOADING_ELEMENTS = false; cargarItems(); }); $('#btn-aplicar-filtros, #btn-limpiar-filtros, #form-filtros .bloque-fixed-cerrar').click(function (e) { $("#form-filtros").removeClass("open"); }); function initSliderPrecio() { $( "#rango-precio" ).slider({ range: true, min: min, max: max, values: [ min, max ], slide: function( event, ui ) { $("#precio-min").val(ui.values[0]); $("#precio-max").val(ui.values[1]); $(".desde span").text(Utils.number_format(ui.values[0], { decimalSeparator: ",", thousandSeparator: ".", symbol: "€" })); $(".hasta span").text(Utils.number_format(ui.values[1], { decimalSeparator: ",", thousandSeparator: ".", symbol: "€" })); } }); } }); } static initContadores() { $(document).ready(function () { new WOW( { boxClass: 'estadisticas', //offset: 200, callback: function(box) { $(".item-estadistica").each(function(i, e) { let elementNum = $(e).find(".item-estadistica-num"); let maxNum = elementNum.attr("data-num"); let txtInicio = elementNum.attr("data-inicio"); let txtFin = elementNum.attr("data-fin"); let numSumar = 0; const minW = elementNum.text( txtInicio+ Utils.number_format(maxNum, { numberOfDecimals: 0, decimalSeparator: "", thousandSeparator: "." })+ txtFin ).innerWidth() + 10; elementNum.css("min-width", minW); elementNum.text(0); if (maxNum > 1000000) numSumar = 150000; else if (maxNum > 500000) numSumar = 100000; else if (maxNum > 100000) numSumar = 10000; else if (maxNum > 4000) numSumar = 4000; else if (maxNum >= 10000) numSumar = 750; else if (maxNum >= 3000) numSumar = 500; else if (maxNum >= 1000) numSumar = 250; else if (maxNum >= 100) numSumar = 15; else numSumar = 2; //4 segundos let duration = Math.min(Math.max((8000 / numSumar).toFixed(0)*1, 100), 100); let timer = setInterval(function(){ let num = elementNum.data("actual")*1 || 0; let nextNum = num + numSumar; elementNum.data("actual", nextNum); let numActual = Utils.number_format(Math.min(maxNum, nextNum), { numberOfDecimals: 0, decimalSeparator: "", thousandSeparator: "." }); elementNum.html(numActual); elementNum.html(txtInicio+elementNum.html()+txtFin); if (maxNum <= nextNum) clearInterval(timer); }, duration); }); }, } ).init(); }); } } function findPos(obj) { var curtop = 0; if (obj.offsetParent) { do { curtop += obj.offsetTop; } while (obj = obj.offsetParent); return [curtop]; } } /* ClassBlockUI.abrirBlockUIEstandar(contenedorIDAMostrar[, accionCerrar, headerText, extraClass, restaurarElemento]); ClassBlockUI.abrirBlockUIEstandarMensaje(mensaje[, isAlertOrButtons, onClose]); ClassBlockUI.abrirBlockUIConfirm(mensaje, textoBotonAceptar, accionBotonAceptar, textoBotonCancelar[, accionBotonCancelar]); //accionBotonCancelar="close" ClassBlockUI.abrirBlockUIEsperePorFavor:([mensaje]); */ var ClassBlockUI = { restaurarElemento: function() { var data = $("body").data('blockUIEstandar.history'); if (data) { data.el.style.display = data.display; data.el.style.position = data.position; if (data.parent) data.parent.appendChild(data.el); $("body").removeData('blockUIEstandar.history'); $("#"+data.generatedId).remove(); } }, abrirBlockUIEstandar: function(contenedorIDAMostrar, accionCerrar, headerText, extraClass, restaurarElemento) { if(restaurarElemento || restaurarElemento == undefined) { ClassBlockUI.restaurarElemento(); } $(".modalAutoHide").modal("hide"); if($(".modal").length>0){$("body").addClass("modal-open")} if(contenedorIDAMostrar == undefined || $("#"+contenedorIDAMostrar).length == 0){return;} //var blockUIId="blockUI_"+new Date().getTime(); var blockUIId="blockUI_"+contenedorIDAMostrar; extraClass = extraClass == undefined ? "" : extraClass; //modal-lg var object = $("#"+contenedorIDAMostrar); var node = object[0]; var data = {}; $("body").data('blockUIEstandar.history', data); data.el = node; data.parent = node.parentNode; data.display = node.style.display; data.position = node.style.position; data.generatedId = blockUIId; data.object = object; if (data.parent) data.parent.removeChild(node); var header = headerText != undefined ? headerText : ""; var message = ''+ ''; $("body").append(message); var modal = $("#"+blockUIId); modal.find(".modal-body").append(node); modal.find(".modal-dialog").addClass("zoomIn"); modal.on('hidden.bs.modal', function () { ClassBlockUI.restaurarElemento(); }) var myModal = new bootstrap.Modal($(modal)[0], { keyboard: false }) myModal.show(); if(accionCerrar==undefined) //boton cerrar tiene accion por defecto { $("#"+blockUIId+" .btnCerrarModalEquis").click(function(){ myModal.hide(); if($(".modal").length>0){$("body").addClass("modal-open")} }); } else if(accionCerrar==false) //oculta el boton cerrar { $("#"+blockUIId+" .btnCerrarModalEquis").hide(); } else //boton cerrar con accion especial { $("#"+blockUIId+" .btnCerrarModalEquis").click(accionCerrar); } return modal; }, abrirBlockUIEstandarMensaje: function(mensaje, isAlertOrButtons, onClose, extraClass, title) { $(".modalAutoHide").modal("hide"); if($(".modal").length>0){$("body").addClass("modal-open")} var blockUIId="blockUI_"+new Date().getTime(); extraClass = extraClass == null || extraClass == undefined ? "" : extraClass; //modal-lg title = title == null || title == undefined ? "Aviso" : title; if(isAlertOrButtons==undefined) isAlertOrButtons=false; if(onClose==undefined) onClose=false; var botonera = ""; var botoneraEspecial = false; if(isAlertOrButtons === false) { botonera = ""; } else if (isAlertOrButtons === true) { botonera = "
    Aceptar
    "; } else { botoneraEspecial = true; botonera = "
    "; for(var index in isAlertOrButtons) { botonera += " "+isAlertOrButtons[index]["text"]+" "; } botonera += "
    "; } var message = ''; message += ''; $("body").append(message); var modal = $("#"+blockUIId); modal.find(".modal-dialog").css("animation-duration", "500ms").addClass("zoomIn"); modal.on('hidden.bs.modal', function () { modal.remove(); }) var myModal = new bootstrap.Modal($(modal)[0], { keyboard: false }); myModal.show(); //Acciones de los botones especiales if(botoneraEspecial) { for(var index in isAlertOrButtons) { if(isAlertOrButtons[index]["action"] == "close") { isAlertOrButtons[index]["action"] = function(){ myModal.hide(); if($(".modal").length>0){$("body").addClass("modal-open")} }; } $("#"+blockUIId+" ."+index).unbind("click").click(isAlertOrButtons[index]["action"]); } } var fnOnClose; if(onClose==false) { fnOnClose = function(){ myModal.hide(); if($(".modal").length>0){$("body").addClass("modal-open")} }; } else if (typeof onClose === "function") { fnOnClose = function(){onClose()}; } else if (onClose == "location") { fnOnClose = function(){window.location.reload()}; } else if (onClose == "back") { fnOnClose = function(){history.go(-1);}; } else { fnOnClose = function(){window.location = onClose}; } $("#"+blockUIId+" .btnCerrarBlockUIAlert, #"+blockUIId+" .btnCerrarModalEquis").unbind("click").click(fnOnClose); return modal; }, abrirBlockUIConfirm: function(mensaje, textoAceptar, accionAceptar, textoCancelar, accionCancelar, extraClass, title) { accionCancelar = accionCancelar == undefined ? "close" : accionCancelar; extraClass = extraClass == null || extraClass == undefined ? "" : extraClass; var buttons = { "btnAceptarBUI_CONFIRM": { "text": textoAceptar, "action": accionAceptar }, "btnCancelarBUI_CONFIRM": { "text": textoCancelar, "action": accionCancelar } }; return ClassBlockUI.abrirBlockUIEstandarMensaje(mensaje, buttons, false, extraClass, title); }, abrirBlockUIEsperePorFavor: function(mensaje) { if(mensaje == undefined){ mensaje = "
    Espera por favor...
    "; }; return ClassBlockUI.abrirBlockUIEstandarMensaje(mensaje, undefined, false, "modalEspere"); } };