").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",},
{share: "whatsapp", logo: "fab fa-whatsapp",
shareUrl: function() {
const url = window.location.href;
return `https://api.whatsapp.com/send?text=${encodeURIComponent(url)}`;
}},
]
});
$("#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 += '
';
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");
}
};