class Web { static initMenuMovil() { let route = []; let currentId = sessionStorage.getItem("menu_current_id") ?? 0; if (isNaN(currentId)) currentId = 0; let routeSession = sessionStorage.getItem("menu_route"); if (routeSession && typeof routeSession == "string") route = routeSession.split(","); if (route.length == 0) route.unshift(0); $(document).ready(function () { $("body").on("click", "#btn-menu-web, #prc-menu-movil-overlay", function(e) { $("#prc-menu-movil").toggleClass("open"); if ($("#prc-menu-movil").hasClass("open")) { muestraSeccionMenuMv(currentId, false); } }); $("#prc-menu-movil-seccion").on("click", ".item-pcr-menu-movil", function(e) { const id = $(this).attr("data-id"); if (Web.categorias[id] != undefined) { e.preventDefault(); muestraSeccionMenuMv(id); } }); $("#prc-menu-movil-header").on("click", "i", function(e) { if (route.length > 0) { let last = route.pop(); muestraSeccionMenuMv(last, false); } else { muestraSeccionMenuMv(0); } }); }); function muestraSeccionMenuMv(id, guardar = true) { if (Web.categorias[id] == undefined) return; $("#prc-menu-movil-seccion .prc-menu-movil-titulo").remove(); if (id == 0) { $("#prc-menu-movil-otras-opcs").removeClass("d-none"); $("#prc-menu-movil-header i").addClass("d-none"); } else { $("#prc-menu-movil-seccion").prepend("
Por tipo de producto
"); $("#prc-menu-movil-otras-opcs").addClass("d-none"); $("#prc-menu-movil-header i").removeClass("d-none"); } if ($(".item-pcr-menu-movil[data-id='"+id+"'] span").length > 0) $("#prc-menu-movil-header span").text($(".item-pcr-menu-movil[data-id='"+id+"'] span").text()); else $("#prc-menu-movil-header span").text("Inicio"); let parent = $("#prc-menu-movil-seccion ul"); parent.html(""); $.each(Web.categorias[id]["items"], function (i, e) { parent.append(Web.categoriaHTML .replace("%url%", e.url) .replace("%id%", e.id) .replace("%icon%", e.icon) .replace("%title%", e.title) ); }); const estilos = buscaElementos(id, "estilos"); const marcas = buscaElementos(id, "marcas"); anadeElementos(estilos, $("#prc-menu-movil-rs")); anadeElementos(marcas, $("#prc-menu-movil-marcas")); if (guardar) route.push(currentId); currentId = id; sessionStorage.setItem("menu_route", route.toString()); sessionStorage.setItem("menu_current_id", currentId); } function anadeElementos(elements, parent) { if (elements.length > 0) { parent.removeClass("d-none"); const element = parent.find(".prc-menu-movil-seccion ul"); element.html(""); $.each(elements, function (i, e) { element.append(Web.categoriaHTML .replace("%url%", e.url) .replace("%id%", e.id) .replace("%icon%", e.icon) .replace("%title%", e.title) ); }); } else { parent.addClass("d-none"); } } function buscaElementos(id, name) { let elements = []; if (Web.categorias[0] != undefined) { const res = Object.values(Web.categorias[0]["items"]).find(element => element.id == id) ?? []; elements = res[name] ?? []; } return elements; } } static initInicio() { $(document).ready(function () { $(".owl-carousel-container").each(function (i, e) { let element = $(e).find(".owl-carousel-producto"); $(this).addClass("wow"+i); new WOW( { boxClass: "wow"+i, callback: function(box) { carouselProductos(element); }, } ).init(); }); function carouselProductos(element) { if (element.length) { let numElements = element.find(".itemProducto").length; element.owlCarousel({ loop: false, margin: 30, items: 4, dots: false, nav: true, lazyLoad: true, stagePadding: 0, navText: [ ' ', '', ], responsive: { 0: { items: 2, margin: 15, mouseDrag: true, loop: true }, 768: { loop: numElements > 3, mouseDrag: numElements > 3, items:3, }, 1200: { loop: numElements > 4, mouseDrag: numElements > 4, items: 4, }, }, onInitialized: function (e) { $(e.target).addClass("owl-shadow"); Utils.applyAspectRatio(); }, onResized: function () { Utils.applyAspectRatio(); }, }); } } $('#valoraciones').owlCarousel({ margin: 30, nav: true, navText: [ ' ', '', ], dots:false, lazyLoad: true, stagePadding: 2, responsive:{ 0:{ items: 1, loop: true, }, 992:{ items: 2, loop: true, }, 1200:{ items: 3, loop: true, } }, onTranslated: function(e) { $("#valoraciones .owl-item:not(.active) .itemValoracion.m-mas").each(function(i, e) { $(e).find(".valoracionTexto").removeClass("d-none"); $(e).find(".valoracionTextoCompleto").addClass("d-none"); }); }, }); $("body").on("click", ".btnMasValoracion", function () { var padre = $(this).parents(".itemValoracion"); $(padre).find(".valoracionTexto").addClass("d-none"); $(padre).find(".valoracionTextoCompleto").removeClass("d-none"); }); }); } static initListadoMotos(page, enlace, scroll) { $(document).ready(function() { $(".btn-abre-filtros, #cerrar-filtros").click(function() { $("#filtros-ocasion").toggleClass("open"); }); $(".nav-item-servicio-6, .nav-item--1000").addClass("menu-seleccionado"); $(".nav-item-servicios").removeClass("menu-seleccionado"); $("#frm-filtros-marca").on('changed.bs.select', function (e, clickedIndex, isSelected, previousValue) { if (isSelected == null) return; eliminarOpcionesSelect($("#frm-filtros-modelo")); $.ajax( { type: "POST", dataType:"json", url:"ajax/MotosOcasionModelos.cargar.php?CSRF="+CSRF, data: { marca: $("#frm-filtros-marca").val(), }, success: function(data, textStatus, XMLHttpRequest) { if (data["error_number"] < 0) { ClassBlockUI.abrirBlockUIEstandarMensaje(data["error_message"], true, undefined); } else { let modelos = $("#frm-filtros-modelo"); $.each(data["modelos"], function (id, opc) { modelos.append(""); }); modelos.selectpicker("refresh"); } } }); }); $("#btn-filtrar").click(function() { $("#filtros-ocasion").removeClass("open"); page = 0; buscar(); }); $("#btn-borrar-filtros").click(function() { $("#frm-filtros select").each(function(i, e) { $(e).val($(e).children("option").eq(0).val()); $(e).selectpicker("refresh"); }); eliminarOpcionesSelect($("#frm-filtros-modelo")); $("#frm-filtros input[type='checkbox']").prop("checked", false); page = 1; buscar(); }); if (scroll) scrollMotos(); }); $("#paginador-motos").on("click", ".enlacePaginador, #enlaceSiguiente, #enlaceAtras", function() { var p = $(this).attr("data-page")*1; if (p != page) { page = p; buscar(); } }); function eliminarOpcionesSelect(input) { input.children("option:not([value='']):not([value='0'])").remove(); input.val(input.children("option").val()); input.selectpicker("refresh"); } function buscar() { let bloqueEspere; /*let pDesde = $("#frm-filtros-precio-desde").val(); let pHasta = $("#frm-filtros-precio-hasta").val(); let anyoDesde = $("#frm-filtros-anyo-desde").val(); let anyoHasta = $("#frm-filtros-anyo-hasta").val(); let kmDesde = $("#frm-filtros-km-desde").val(); let kmHasta = $("#frm-filtros-km-hasta").val();*/ var formData = new FormData($("#frm-filtros")[0]); formData.append("page", page); formData.append("enlace", enlace); $.ajax( { type:"POST", dataType:"json", url:"ajax/MotosOcasion.cargar.php", data: formData, cache: false, contentType: false, processData: false, success: function(data, textStatus, XMLHttpRequest) { $(".modal").modal("hide"); if(data["error_number"]<0) { //ClassBlockUI.abrirBlockUIEstandarMensaje(data["error_message"], true, undefined, "modalStandard"); } else { $("#motos").html(""); $("#motos").append(data["motos"]); $("#paginador-motos").html(data["paginador"]); history.pushState({page: page}, null, data["enlace"]); cargarImagenes(); if (data["motos"] == "") { $(".sinResultados").removeClass("d-none"); } else { $(".sinResultados").addClass("d-none"); } scrollMotos(); $(".tooltipStandard").not(".tooltipstered").tooltipster({animation: 'grow',interactive:true, position:'bottom', contentAsHTML: true}); } } }); bloqueEspere = ClassBlockUI.abrirBlockUIEsperePorFavor(); } function scrollMotos() { $(window).scrollTop($("#bloque-motos-ocasion").offset().top - 223); } function cargarImagenes() { $('.lazy').Lazy({ // your configuration goes here scrollDirection: 'vertical', effect: 'fadeIn', visibleOnly: true }); } } static initListadoProductos(datosPaginador, idSubCat) { $(document).ready(function () { let LOADING_ELEMENTS = false; $(".nav-item-categoria-"+idSubCat).addClass("menu-seleccionado"); $(".nav-item-"+idSubCat).addClass("menu-seleccionado"); let numPages = datosPaginador["numPages"]; let page = datosPaginador["page"]; let scrollPosition = 0; $(window).scroll(function() { scrollPosition = $(window).scrollTop() + $(window).height(); if(scrollPosition > $("#productos").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 > $("#productos").height() + 400) { $(window).scrollTop($("#productos").offset().top + $("#productos").height() - 350); } } numPages = data["numPages"]; $("#btn-subir").removeClass("d-none"); $(".sinResultados").addClass("d-none"); if (page == 1) $("#productos").html(""); $("#productos").append(data["productos"]); if ($("#productos").html() === "") $(".sinResultados").removeClass("d-none"); Utils.applyAspectRatio(); setTimeout(function (){ LOADING_ELEMENTS = false; }, 1000); } }; Utils.sendStandardAjax(null, "ajax/Productos.cargar.php", { successCallback: successCallback, prepareFormData: function (){ let formData = new FormData($("#filtros-producto-container")[0]); formData.append("page", page); formData.append("filtros", datosPaginador["filtros"]); return formData; }, }); } $("#btn-filtros, #btn-cerrar-filtros").click(function(){ $("#filtros-producto-container").toggleClass("open"); }); $("#btn-buscar-filtros, #btn-reset-filtros").click(function(){ page = 1; numPages = 2; if ($(this).attr("id") == "btn-reset-filtros") { $("#filtros-producto-container")[0].reset(); let desde = parseInt($("#desde").val()); let hasta = parseInt($("#hasta").val()); $("#rango-precio").slider('values', 0, desde); $("#rango-precio").slider('values', 1, hasta); } else $("#filtros-producto-container").removeClass("open"); cargarItems(); }); if (window.performance && window.performance.navigation.type == window.performance.navigation.TYPE_BACK_FORWARD) { setTimeout(function () { $("#btn-buscar-filtros").trigger("click"); }, 300); } if ($("#carousel-items").length) { $("#carousel-items").owlCarousel({ loop: false, margin: 30, items: 6, dots: false, nav: true, lazyLoad: true, stagePadding: 0, navText: [ ' ', '', ], responsive: { 0: { items: 2, margin: 15, mouseDrag: true, loop: true }, 768: { loop: ($("#carousel-items .item-owl").length > 3) ? true: false, mouseDrag: ($("#carousel-items .item-owl").length > 3) ? true: false, items:3, }, 992: { loop: ($("#carousel-items .item-owl").length > 4) ? true: false, mouseDrag: ($("#carousel-items .item-owl").length > 4) ? true: false, items: 4, }, }, }); } }); } static initContacto(datosContacto) { Web.datosContacto = datosContacto; $(document).ready(function () { $("#btnEnviarContacto").click(function (event) { event.preventDefault(); Utils.sendStandardAjax("formContacto", "ajax/Contacto.enviar.php", { successCallback: null, resetFormOnSuccess: true, }); }); $('#frmDepartamentoContacto').on('changed.bs.select', function (e, clickedIndex, isSelected, previousValue) { if (isSelected === null) return; $(".form-group-categoria").removeClass("d-none"); $("#datos-contacto").addClass("d-none"); const departamento = $(this).val(); const inpCategoria = $("#frmCategoriaContacto"); inpCategoria.empty(); inpCategoria.append(""); inpCategoria.val(0); inpCategoria.selectpicker("refresh"); $.each(datosContacto, function(i, e) { $.each(e.datos, function(iDep, eDep) { if (iDep == departamento) { $.each(eDep, function(iOf, datos) { inpCategoria.append(""); }); } }); inpCategoria.selectpicker("refresh"); //console.log(i, e); }); }); $('#frmCategoriaContacto').on('changed.bs.select', function (e, clickedIndex, isSelected, previousValue) { if (isSelected === null) return; $("#datos-contacto").removeClass("d-none"); const ids = $(this).val().split("_"); const idOficina = ids[0]; const idSeleccionada = ids[1]; const idDepartamento = $('#frmDepartamentoContacto').val(); const itemEmpresa = datosContacto[idOficina]; const itemDatos = datosContacto[idOficina].datos[idDepartamento][idSeleccionada]; $("#nombre-centro").text(itemEmpresa.empresa); $(".item-centro-localizacion .item-centro-texto").html(itemDatos.direccion+"
"+itemDatos.codPostal+" "+itemDatos.localidad); $(".item-centro-telefono .item-centro-texto").text(itemDatos.telefono); $(".item-centro-horario .item-centro-texto").html(itemDatos.horario); }); }); } static initBuscarRecambios() { $(document).ready(function () { $("#btn-buscar-recambio").click(function (event) { event.preventDefault(); const referencia = $("#referencia").val(); if (!referencia) return; var successCallback = function (data, textStatus, XMLHttpRequest) { if (data["error_number"] < 0) { ClassBlockUI.abrirBlockUIEstandarMensaje(data["error_message"], true, undefined); } else { $(".modal").modal("hide"); window.location = data["enlace"]; } }; Utils.sendStandardAjax("XXXX", "ajax/Recambios.buscar.php?referencia="+referencia, { successCallback: successCallback, }); }); $("#btnEnviarContacto").click(function (event) { event.preventDefault(); let extraMsg = ""; var fileInput = $('#frmConsultaFoto'); var maxSize = fileInput.data('max-size'); if(fileInput.get(0).files.length) { var file = fileInput.get(0).files[0]; var extension = file.name.substr( (file.name.lastIndexOf('.') +1) ).toLowerCase(); if((file.size/1024)>maxSize) { extraMsg += "
Debe subir un documento con tamaño máximo de 5000kb"; } if ($.inArray(extension, ["jpg", "jpeg", "png"]) <= -1) { extraMsg += "
Debe subir una foto del bastidor de tipo JPG o PNG"; } } Utils.sendStandardAjax("formContacto", "ajax/BuscarRecambio.enviar.php", { extraErroresForm: extraMsg, successCallback: null, resetFormOnSuccess: true, }); }); }); } static initSolicitarPrueba() { $(document).ready(function () { $("#btnEnviarContacto").click(function (event) { event.preventDefault(); Utils.sendStandardAjax("frmMasInformacion", "ajax/MasInformacion.enviar.php", { successCallback: null, resetFormOnSuccess: true, }); }); $('#frmMasInformacionMarca').on('changed.bs.select', function (e, clickedIndex, isSelected, previousValue) { if (isSelected === null) return; const inpModelo = $("#frmMasInformacionModelo"); inpModelo.empty(); inpModelo.append(""); inpModelo.val(0); inpModelo.selectpicker("refresh"); inpModelo.parent().find(".filter-option-inner-inner").text("Cargando..."); var successCallback = function (data, textStatus, XMLHttpRequest) { inpModelo.empty(); inpModelo.append(""); inpModelo.val(0); inpModelo.selectpicker("refresh"); if (data["error_number"] < 0) { ClassBlockUI.abrirBlockUIEstandarMensaje(data["error_message"], true, undefined); } else { $.each(data, function(id, txt) { inpModelo.append(""); }); inpModelo.selectpicker("refresh"); } }; Utils.sendStandardAjax("XXXXXX", "ajax/Modelos.listado.php?marca="+$(this).val(), { successCallback: successCallback, esperePorFavor: false }); }); $("#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", "ajax/MasInformacion.enviar.php", { successCallback: successCallback, resetFormOnSuccess: true, }); }); }); } static initProducto(precioProducto, datosFinanciacion, atributosSimples, idProducto, idCategoriaPrincipal) { $(document).ready(function () { $(".nav-item-categoria-"+idCategoriaPrincipal).addClass("menu-seleccionado"); $(".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-caret-down").addClass("fa-caret-up"); } else { $(this).attr("data-accion", 1).find("span").text("Leer más"); $(this).find("i").removeClass("fa-caret-up").addClass("fa-caret-down"); } }); if ($("#carousel-fotos").length) { var owl = $("#carousel-fotos").owlCarousel({ loop: false, margin: 10, items: 1, dots: false, nav: true, stagePadding: 1, navText: [ '', '', ], responsive: { 0: { items: 1, mouseDrag: true, loop: true }, 768: { loop: ($("#carousel-fotos .item-foto").length > 6) ? true: false, mouseDrag: ($("#carousel-fotos .item-foto").length > 6) ? true: false, items:6, }, 991: { loop: ($("#carousel-fotos .item-foto").length > 5) ? true: false, mouseDrag: ($("#carousel-fotos .item-foto").length > 5) ? true: false, items: 5, }, 1366: { loop: ($("#carousel-fotos .item-foto").length > 6) ? true: false, mouseDrag: ($("#carousel-fotos .item-foto").length > 6) ? true: false, items: 6, }, }, onInitialized: function () { Utils.applyAspectRatio(); }, onResized: function () { Utils.applyAspectRatio(); }, }); owl.on('changed.owl.carousel', function(event) { $('.lazy').Lazy({ // your configuration goes here scrollDirection: 'vertical', effect: 'fadeIn', visibleOnly: true }); }); } if ($("#carousel-grupo").length || $("#carousel-accesorios").length || $("#carousel-motos").length) { const elements = [$("#carousel-grupo"), $("#carousel-accesorios"), $("#carousel-motos")]; elements.forEach(function(element) { if (element.length <= 0) return; const numItems = element.find(".itemProducto").length; let to = null; var owl = element.owlCarousel({ loop: false, margin: 30, items: 1, dots: false, nav: true, navText: [ ' ', '', ], responsive: { 0: { items: 2, mouseDrag: true, loop: numItems > 2, }, 576: { items: 3, mouseDrag: true, loop: numItems > 3, }, 768: { mouseDrag: numItems > 4, loop: numItems > 4, items:4, }, 991: { mouseDrag: numItems > 5, loop: numItems > 5, items: 5, }, 1366: { mouseDrag: numItems > 6, loop: numItems > 6, items: 6, }, }, onInitialized: function (e) { $(e.target).addClass("owl-shadow"); Utils.applyAspectRatio(); }, onResized: function () { Utils.applyAspectRatio(); }, onTranslate: function(e) { $(e.target).removeClass("owl-shadow"); }, onTranslated: function(e) { $(e.target).addClass("owl-shadow"); }, }); owl.on('changed.owl.carousel', function(event) { $('.lazy').Lazy({ // your configuration goes here scrollDirection: 'vertical', effect: 'fadeIn', visibleOnly: true }); }); }); } if ($("#carousel-ofertas").length) { var owl = $("#carousel-ofertas").owlCarousel({ loop: false, margin: 30, items: 4, dots: false, nav: true, lazyLoad: true, stagePadding: 0, navText: [ ' ', '', ], responsive: { 0: { items: 2, margin: 15, mouseDrag: true, }, 768: { mouseDrag: ($("#carousel-ofertas .itemProducto").length > 3) ? true: false, items:3, }, 1200: { mouseDrag: ($("#carousel-ofertas .itemProducto").length > 4) ? true: false, items: 4, }, }, onInitialized: function (e) { $(e.target).addClass("owl-shadow"); Utils.applyAspectRatio(); }, onResized: function () { Utils.applyAspectRatio(); }, }); owl.on('changed.owl.carousel', function(event) { $('.lazy').Lazy({ // your configuration goes here scrollDirection: 'vertical', effect: 'fadeIn', visibleOnly: true }); }); } Web.gallery = $(".enlace-foto").simpleLightbox(); $("body").on("click", "#img-principal", function () { const w = $(window).innerWidth(); if (w >= 567) Web.gallery.open(Web.gallery.elements[$(this).attr("data-pos")]); }); $("body").on("click", ".item-foto", function () { const ext = $(this).attr("data-ext"); $(".item-foto .seleccionada").removeClass("seleccionada"); if (ext == "mp4") { $(this).find("video").addClass("seleccionada"); $("#foto-principal").html(``); } else { const pos = $(this).attr("data-pos"); //$("#img-principal").attr("src", $(this).find("img").attr("src").replace("M", "G")).attr("data-pos", $(this).attr("data-pos")); $("#foto-principal").html(`Foto`); $(this).find("img").addClass("seleccionada"); const w = $(window).innerWidth(); if (w >= 567 && w <=767) { Web.gallery.open(Web.gallery.elements[pos]); } } }); $("#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", "ajax/MasInformacion.enviar.php", { successCallback: successCallback, resetFormOnSuccess: true, }); }); if (!atributosSimples) { $('#atributos_2').on('changed.bs.select', function (e, clickedIndex, isSelected, previousValue) { if (isSelected === null) return; const inpRelacionado = $("#atributos_1"); inpRelacionado.empty(); inpRelacionado.append(""); inpRelacionado.val(0); inpRelacionado.selectpicker("refresh"); inpRelacionado.parent().find(".filter-option-inner-inner").text("Cargando..."); var successCallback = function (data, textStatus, XMLHttpRequest) { if (data["error_number"] < 0) { ClassBlockUI.abrirBlockUIEstandarMensaje(data["error_message"], true, undefined); } else { inpRelacionado.empty(); inpRelacionado.append(""); inpRelacionado.val(0); $.each(data["atrs"], function (i, e) { inpRelacionado.append(""); }); inpRelacionado.selectpicker("refresh"); } }; Utils.sendStandardAjax("XXXX", "ajax/Atributos.cargar.php?id="+idProducto+"&atrs="+$(this).val(), { successCallback: successCallback, esperePorFavor: false }); }); } }); $("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", ".goTo", function(event) { event.preventDefault(); window.scroll(0,findPos(document.getElementById($(this).attr("data-id")))-200); }); $("#rango-meses, #rango-entrada").on("input change", calcularFinanciacion); 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 initViveAventura() { $("body").on("change", "#vive-aventura-moto, #vive-aventura-fecha", function() { let elementMoto = $("#vive-aventura-moto"); let elementFecha = $("#vive-aventura-fecha"); if (!usuarioIdentificado) { elementFecha.val(""); elementMoto.val(0).selectpicker("refresh"); ClassBlockUI.abrirBlockUIEstandarMensaje("Debe estar identificado para poder alquilar una moto

AccederRegistro
", true, undefined, "modalAlquilerAcceso"); return; } if (elementMoto.val() > 0 && elementFecha.val()) { let fecha = Math.floor(new Date(elementFecha.val()).getTime()/1000); let fechaMax = 1719484934; if ((Math.floor(Date.now()/1000) - 86399) > fecha) { ClassBlockUI.abrirBlockUIEstandarMensaje("Debe introducir una fecha válida", true); elementFecha.val(""); return; } if (fecha > fechaMax) { ClassBlockUI.abrirBlockUIEstandarMensaje("Por el momento solo aceptamos reservas con una antelación maxima de 2 meses.", true); elementFecha.val(""); return; } var successCallback = function (data, textStatus, XMLHttpRequest) { $(".modal").modal("hide"); if (data["error_number"] < 0) { $("#datos-vive-aventura").addClass("d-none"); elementFecha.val(""); ClassBlockUI.abrirBlockUIEstandarMensaje(data["error_message"], true, undefined); } else { $("#datos-vive-aventura").removeClass("d-none"); $("#fechaRecogida").html(data["datos"]["fechaRecogida"]); $("#fechaDevolucion").html(data["datos"]["fechaEntrega"]); $("#precioAlquiler").html(data["datos"]["PVP"]); } }; Utils.sendStandardAjax("vive-aventura", "ajax/AlquilarMoto.buscar.php", { successCallback: successCallback, }); } else { $("#datos-vive-aventura").addClass("d-none"); } }); $("body").on("click", "#confirmar-alquiler", function(e) { e.preventDefault(); let elementMoto = $("#vive-aventura-moto"); let elementFecha = $("#vive-aventura-fecha"); let extraMsg = ""; if (!usuarioIdentificado) { elementFecha.val(""); elementMoto.val(0).selectpicker("refresh"); ClassBlockUI.abrirBlockUIEstandarMensaje("Debe estar identificado para poder alquilar una moto

AccederRegistro
", true, undefined, "modalAlquilerAcceso"); return; } let fecha = Math.floor(new Date(elementFecha.val()).getTime()/1000); let fechaMax = 1719484934; if ((Math.floor(Date.now()/1000) - 86399) > fecha) { extraMsg += extraMsg != "" ? "
" : ""; extraMsg += "Debe introducir una fecha válida"; elementFecha.val(""); } if (fecha > fechaMax) { extraMsg += extraMsg != "" ? "
" : ""; extraMsg += "Por el momento solo aceptamos reservas con una antelación maxima de 2 meses."; } if(!$("#condicionesUso").is(":checked")) extraMsg += $("#condicionesUso").attr("title"); var successCallback = function (data, textStatus, XMLHttpRequest) { $(".modal").modal("hide"); if (data["error_number"] < 0) { ClassBlockUI.abrirBlockUIEstandarMensaje(data["error_message"], true, undefined); } else { //$("#procesaPagoExterno").html(data["formularioFormaPago"]); ClassBlockUI.abrirBlockUIEsperePorFavor(); window.location = data["formularioFormaPago"]; } }; Utils.sendStandardAjax("vive-aventura", "ajax/AlquilarMoto.procesar.php", { successCallback: successCallback, extraErroresForm: extraMsg, }); }); } static sendEvent(eventType, eventData) { //Cookies not accepted } static klaviyoRunPending = function(){ $.each(Web.klaviyoPending, function(index, value) { value(); }); Web.klaviyoPending = []; }; static klaviyoInit(klaviyoInfo) { if(Web.klaviyoPending === undefined) { Web.klaviyoPending = []; } Web.klaviyoUser = { '$id' : klaviyoInfo.id, '$email' : klaviyoInfo.email, '$first_name' : klaviyoInfo.name, '$last_name' : klaviyoInfo.surname }; $.getScript( "https://static.klaviyo.com/onsite/js/klaviyo.js?company_id=RQ7m9B", function( data, textStatus, jqxhr ) { if(jqxhr.status === 200) { //Aun tarda un poco en cargar asi que hacemos un interval Web.klaviyoInterval = setInterval(Web.klaviyoWaitReady, 500); } }); } static klaviyoWaitReady() { if(typeof(klaviyo) !== "undefined" && Web.klaviyoInterval) { Web.klaviyo = klaviyo; clearInterval(Web.klaviyoInterval); Web.klaviyoPending.push(function () { Web.klaviyo.track("Active on Site"); }); Web.klaviyo.identify(Web.klaviyoUser, function(){Web.klaviyoRunPending()}); } } static klaviyoIdentifyUser(email) { var pattern = /^\b[A-Z0-9._%-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\b$/i if(!pattern.test(email)) { return; } let klaviyoUpdateInfo = function(){ Web.klaviyoUser.$email = email; klaviyo.push(["identify", Web.klaviyoUser]); }; if(Web.klaviyo) { klaviyoUpdateInfo(); } else { if(Web.klaviyoPending === undefined) {Web.klaviyoPending = []} Web.klaviyoPending.push(klaviyoUpdateInfo); } } } function findPos(obj) { var curtop = 0; if (obj.offsetParent) { do { curtop += obj.offsetTop; } while (obj = obj.offsetParent); return [curtop]; } } $(document).ready(function() { if ($.fn.dataTable != undefined) { $.fn.dataTable.ext.errMode = function ( settings, helpPage, message ) { $.notify( { title: "Error: ", message: "Se ha producido un error inesperado", }, { type: 'danger', placement: { from: "top", align: "center" }, delay: 10000 }); }; $.extend($.fn.dataTable.defaults, { "language": { "sProcessing": "Procesando...", "sLengthMenu": "Mostrar _MENU_", "sZeroRecords": "No se han encontrado resultados", "sEmptyTable": "Sin datos todavía", "sInfo": "Mostrando de la entrada _START_ a la _END_ de un total de _TOTAL_ entradas", "sInfoEmpty": "Todavía no hay datos", "sInfoFiltered": "()", "sSearchPlaceholder": "Buscar", "sInfoPostFix": "", "sSearch": "", "sUrl": "", "oPaginate": { "sFirst": " ", "sPrevious": " ", "sNext": " ", "sLast": " " } } }); } }); function preparaLugar(pais, provincia, poblacion, idInputPais,idInputProvincia, idInputLocalidad) { if(pais > 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) { 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; actualizaCiudades(idInputLocalidad, idInputProvincia, idInputPais, undefined, $("#"+idInputPais).val()*1, $("#"+idInputProvincia).val()*1); }); /* $("body").on("change", "#"+idInputProvincia, function() { actualizaCiudades(idInputLocalidad, idInputProvincia, idInputPais, undefined, $("#"+idInputPais).val()*1, $("#"+idInputProvincia).val()*1); });*/ } 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 = "Cargando..."; } 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: "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 = "Cargando..."; } var data = { idPais: forceIdPais, idRegion: forceIdRegion }; $("#"+idCampoLocalidad).empty(); $("#"+idCampoLocalidad).append( ""); $("#"+idCampoLocalidad).selectpicker("refresh"); $("#"+idCampoLocalidad).selectpicker('val', 0); var returned = $.ajax( { url: "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(); } } }); } /* 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("jackInTheBox"); 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").addClass("zoomInDown"); 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 = "
Loading ... Espera por favor...
"; }; return ClassBlockUI.abrirBlockUIEstandarMensaje(mensaje, undefined, false, "modalEspere"); } }; var ClassDirecciones = { initModificarDirecciones: function(opciones_validacion) { ClassUsuarios.validacionModificarDatos = $("#formModificarDatos").validate(opciones_validacion); $("#guardarDatos").unbind("click").makeTagLink(ClassDirecciones.guardarDirecciones); $("#form_compra_copiar_direccion").change(function() { if($("#form_compra_copiar_direccion").val()*1 == 1) { $("#datosFacturacion").addClass("d-none"); $("#textoFacturacion").removeClass("d-none"); /*var bloqueID = "datosEntrega"; var nombre = $("#"+bloqueID+" .nombreDireccion").html(); var nif = $("#"+bloqueID+" .nifDireccion").html(); var telefono = $("#"+bloqueID+" .telefonoDireccion").html(); var direccion = $("#"+bloqueID+" .direccionDireccion").html(); var cp = $("#"+bloqueID+" .codigoPostalDireccion").html(); var poblacionID = $("#"+bloqueID+" .poblacionDireccion").attr("data-id"); var provinciaID = $("#"+bloqueID+" .provinciaDireccion").attr("data-id"); var poblacion = $("#"+bloqueID+" .poblacionDireccion").html(); var provincia = $("#"+bloqueID+" .provinciaDireccion").html(); bloqueID = "datosFacturacion"; $("#"+bloqueID+" .nombreDireccion").html(nombre); $("#"+bloqueID+" .nifDireccion").html(nif); $("#"+bloqueID+" .telefonoDireccion").html(telefono); $("#"+bloqueID+" .direccionDireccion").html(direccion); $("#"+bloqueID+" .codigoPostalDireccion").html(cp); $("#"+bloqueID+" .poblacionDireccion").attr("data-id",poblacionID); $("#"+bloqueID+" .provinciaDireccion").attr("data-id",provinciaID); $("#"+bloqueID+" .poblacionDireccion").html(poblacion); $("#"+bloqueID+" .provinciaDireccion").html(provincia);*/ } else { $("#textoFacturacion").addClass("d-none"); $("#datosFacturacion").removeClass("d-none"); } }); $(".modificarDatos").unbind("click").makeTagLink(function(){ var bloqueID = $(this).parents(".padreDatos").attr("id"); var tipo = $(this).attr("data-id"); var nombre = $("#"+bloqueID+" .nombreDireccion").html(); var nif = $("#"+bloqueID+" .nifDireccion").html(); var telefono = $("#"+bloqueID+" .telefonoDireccion").html(); var direccion = $("#"+bloqueID+" .direccionDireccion").html(); var cp = $("#"+bloqueID+" .codigoPostalDireccion").html(); var poblacion = $("#"+bloqueID+" .poblacionDireccion").attr("data-id"); var provincia = $("#"+bloqueID+" .provinciaDireccion").attr("data-id"); var pais = $("#"+bloqueID+" .paisDireccion").attr("data-id"); ClassDirecciones.setDatosForm(tipo,nombre,nif,telefono,direccion,cp,poblacion,provincia,pais); ClassBlockUI.abrirBlockUIEstandar("modificarDatos", undefined, tipo == 1 ? "Modificar datos de entrega" : "Modificar datos de facturación", "modal-md") }); }, guardarDirecciones: function() { if(!$("#formModificarDatos").valid()) { ClassBlockUI.abrirBlockUIEstandarMensaje("Por favor, revisa los campos porque se han detectado los siguientes errores

"+ClassUsuarios.validacionModificarDatos.invalidMessages("
"), true, false); return; } var opcionesDatos = { url: "ajax/Direcciones.modificarDatos.php?CSRF="+CSRF, type: "POST", dataType : "json", data : $("#formModificarDatos").serialize(), success: function(data) { if(data["error_number"]*1 >= 0) { window.location = window.location; } else { ClassBlockUI.abrirBlockUIEstandarMensaje(data["error_message"], true, false); } } } ClassBlockUI.abrirBlockUIEsperePorFavor(); $.ajax(opcionesDatos); }, setDatosForm: function(tipo,nombre,nif,telefono,direccion,cp,poblacion,provincia,pais) { $("#formModificarDatos #form_tipo").val(tipo); $("#formModificarDatos #form_nombre").val(nombre); $("#formModificarDatos #form_dni").val(nif); $("#formModificarDatos #form_telefono").val(telefono); $("#formModificarDatos #form_direccion").val(direccion); $("#formModificarDatos #form_codigo_postal").val(cp); preparaLugar(pais, provincia, poblacion, "form_pais", "form_provincia", "form_poblacion"); /*$("#formModificarDatos #form_poblacion").val(poblacion); $("#formModificarDatos #form_provincia").val(provincia);*/ } }; var ClassTiendaVirtualCarrito= { initReactivaClicks:function() { ClassTiendaVirtualCarrito.refrescarTabla(); $("body").on("click", ".alert-info", function() { $(".btnAbreCarrito").trigger("click"); }); $(".btns-menu").on("click", ".btnAbreCarrito", function() { $(".overlay, #previewCarrito").addClass("active"); $("html, body").addClass("no-scroll"); }); $("#previewCarrito").on("click", "#previewCarritoCerrar", function() { $(".overlay, #previewCarrito").removeClass("active"); $("html, body").removeClass("no-scroll"); }); $("body").on("click", ".itemCarritoMas", function () { var input = $(this).parent().find("input"); var form = $(this).parents("form").attr("id"); var cantidad = $(input).val(); var nuevaCantidad = 1; if (!isNaN(cantidad)) { nuevaCantidad = cantidad*1+1; } $(input).val(nuevaCantidad); if (cantidad != nuevaCantidad) ClassTiendaVirtualCarrito.actualizar("#"+form); }); $("body").on("click", ".itemCarritoMenos", function () { var input = $(this).parent().find("input"); var form = $(this).parents("form").attr("id"); var cantidad = $(input).val(); var nuevaCantidad = 1; if (!isNaN(cantidad) && cantidad > 1) { nuevaCantidad = cantidad*1-1; } $(input).val(nuevaCantidad); if (cantidad != nuevaCantidad) ClassTiendaVirtualCarrito.actualizar("#"+form); }); $("body").on("click", ".itemPreviewCarritoEliminar, .itemCarritoEliminar", function (event) {event.preventDefault(); ClassTiendaVirtualCarrito.eliminarLineaProducto($(this).attr("data-id"))}); $("body").on("click", "#btnValidarCupon", ClassTiendaVirtualCarrito.validarCupon); }, refrescarTabla: function () { $(".tooltipStandardHTML").not(".tooltipstered").tooltipster({animation: 'grow',interactive:true, position:'bottom', contentAsHTML: true}); $(".tooltipStandard").not(".tooltipstered").tooltipster({animation: 'grow',interactive:true, position:'bottom', contentAsHTML: true}); var numProductosCarrito = 0; if (typeof tablatablaCarrito != "undefined") { numProductosCarrito = tablatablaCarrito.page.info().recordsDisplay; var width = $(window).width(); if (width <= 575) { $(".dataTableCenter > .itemCarritoBloqueCantidad").remove(); $(".carritoMovil").removeClass("d-none"); tablatablaCarrito.column(2).visible(false); tablatablaCarrito.column(3).visible(false); tablatablaCarrito.column(4).visible(false); tablatablaCarrito.column(5).visible(false); } else if (width >= 972 && width <= 1199) { $(".carritoMovil").remove(); tablatablaCarrito.column(4).visible(false); tablatablaCarrito.column(5).visible(false); } else { $(".carritoMovil").remove(); } } if (numProductosCarrito > 10) { $("#tablaCarrito_wrapper .paginationFooter").removeClass("d-none"); } }, mostrarMensajeBorrarCarrito: function(e, tipo) { ClassBlockUI.abrirBlockUIConfirm("¿Estás seguro de que deseas borrar este producto de tu compra?", "Confirmar", function(){ if(tipo==1) { ClassTiendaVirtualCarrito.eliminarProductoCarrito(e); } else { ClassTiendaVirtualCarrito.eliminarProductoCarritoBloque(e); } }, "Cancelar"); }, eliminarProductoCarrito:function(e) { var idProducto = e.attr("data-idCarrito"); if(isNaN(idProducto)) return; $("#actualizar_cantidad_"+idProducto).val(0); ClassTiendaVirtualCarrito.actualizar(); }, eliminarProductoCarritoBloque:function(e) { var idProducto = e.attr("data-idCarrito"); if(isNaN(idProducto)) return; ClassTiendaVirtualCarrito.eliminarLineaProducto(idProducto); }, cantidadModificada:function(e) { var idProducto = e.attr("data-idCarrito"); if(isNaN(idProducto)) return; $("input[name='actualizar_cantidad_"+idProducto+"']").each(function(){$(this).val(e.val())}); //$("#actualizar_cantidad_"+idProducto).val(e.val()); ClassTiendaVirtualCarrito.cantidadModificadaActualizarInfo(idProducto); }, cantidadModificadaActualizarInfo:function(idProducto) { if(!$("#cantidades").valid()) return; $(".pvpMostrarTotal[data-id="+idProducto+"]").each(function(){$(this).html("-");}); $(".total_compra_numero").html(" - "); $(".btnActualizarCantidades[data-idCarrito="+idProducto+"]").each(function(){$(this).removeClass("ocultarActualizarCantidades")}); $(".btnActualizarCantidades").unbind("click").makeTagLink(function(){ClassTiendaVirtualCarrito.actualizar()}); $("#btn_comprar").addClass("hidden"); }, actualizar: function(idFormulario, desdePais) { idFormulario = idFormulario == undefined ? "#cantidades" : idFormulario; if(!$(idFormulario).valid()) { ClassBlockUI.abrirBlockUIEstandarMensaje("Revisa las cantidades", true); return; } ClassBlockUI.abrirBlockUIEsperePorFavor(); $.ajax( { url: "ajax/TiendaVirtualCarrito.actualizarCantidades.php", type: "POST", dataType : "json", data : $(idFormulario).serialize()+"&idPais="+$("#formEnvioPais").val(), success: function(data) { if(data["error_number"] < 0) { ClassBlockUI.abrirBlockUIEstandarMensaje(data["error_message"], true); } else { ClassTiendaVirtualCarrito.actualizarPreviewCarrito(data); $(".modal").modal("hide"); if (data["errorStock"]) { ClassBlockUI.abrirBlockUIEstandarMensaje(data["errorStock"], true); } if (desdePais && !data["envioValido"]) { ClassBlockUI.abrirBlockUIEstandarMensaje("", true, "https://www.vespaturia.es/contacto.html"); } if(data["gtagModifyInfo"]) { Web.sendEvent("add_to_cart", data["gtagModifyInfo"]); } //window.location = window.location; } } }); //cargar de nuevo el carrito si esta abierto }, eliminarLineaProducto:function(idProducto) { $.ajax( { url: "ajax/TiendaVirtualCarrito.eliminarProducto.php?idProducto="+idProducto, type: "POST", dataType : "json", success: function(data) { if(data["error_number"] < 0) { ClassBlockUI.abrirBlockUIEstandarMensaje(data["error_message"], true); } else { ClassTiendaVirtualCarrito.actualizarPreviewCarrito(data); $(".modal").modal("hide"); //window.location = window.location; if(data["gtagDeleteInfo"]) { Web.sendEvent("remove_from_cart", data["gtagDeleteInfo"]); } } } }); ClassBlockUI.abrirBlockUIEsperePorFavor(); //cargar de nuevo el carrito si esta abierto }, renderTablaCarrito: function(data, type, row, meta){ if(type === 'display'){ var api = new $.fn.dataTable.Api(meta.settings); var $el = $('input, select, textarea', api.cell({ row: meta.row, column: meta.col }).node()); //var $html = $(data).wrap('
').parent(); var $html = $("
").html(data); if($el.prop('tagName') === 'INPUT'){ $('input', $html).attr('value', $el.val()); if($el.prop('checked')){ $('input', $html).attr('checked', 'checked'); } } else if ($el.prop('tagName') === 'TEXTAREA'){ $('textarea', $html).html($el.val()); } else if ($el.prop('tagName') === 'SELECT'){ $('option:selected', $html).removeAttr('selected'); $('option', $html).filter(function(){ return ($(this).attr('value') === $el.val()); }).attr('selected', 'selected'); } data = $html.html(); //console.log("Antes habia: "+data); //console.log("Ahroa quiere poner: "+$html.html()); } return data; }, actualizarPreviewCarrito: function (data) { $("#previewCarritoProductos").html(data["productos"]); $(".btns-menu .btnAbreCarrito .contadorNumItems").html(data["numProductos"]); $("#previewCarritoAhorras span, #teAhorrasCarrito span").html_formated(data["teAhorras"]); $("#previewCarritoSubtotal span").html_formated(data["subtotal"], {thousandSeparator: "."}); $(".previewCarritoTotal span").html_formated(data["totalPedido"]); $(".previewCarritoEnvioTitulo").html(data["textoEnvio"]); $(".previewCarritoEnvioProgreso span").css("width", data["progreso"]+"%"); if(data["progreso"]*1>=100) { $("#precioEntrega_1").html("¡Gratis!"); $(".previewCarritoEnvio").addClass("gratis"); } else { $("#precioEntrega_1").html(""+data["gastosEnvio"][3].replace(".", ",")+"€ ("+data["gastosEnvio"][0]+"% IVA incluido)"); $(".previewCarritoEnvio").removeClass("gratis"); } if (typeof tablatablaCarrito !== 'undefined' && tablatablaCarrito != null && tablatablaCarrito != undefined) { tablatablaCarrito.ajax.reload(null, false); ClassTiendaVirtualCarrito.actualizaTotales(); } }, validarCupon: function () { $.ajax( { url: "ajax/TiendaVirtualCupon.enviar.php", type: "POST", dataType : "json", data : { "cuponDescuento": $("#cuponDescuento").val(), "CSRF": CSRF }, success: function(data) { if(data["error_number"]<0) { ClassBlockUI.abrirBlockUIEstandarMensaje(data["error_message"], true); } else { $(".modal").modal("hide"); $("#cuponDescuento").val(""); ClassTiendaVirtualCarrito.actualizaTotales(); } } }); ClassBlockUI.abrirBlockUIEsperePorFavor(); }, actualizaTotales: function () { var transporte = $("input[name=formTransporte]:checked").val(); var pais = $("#formEnvioPais").val(); var provincia = $("#formEnvioProvincia").val(); if (typeof tablatablaTotales != "undefined") { tablatablaTotales.ajax.url('ajax/TiendaVirtualCarrito.getTotales.php?CSRF=' + CSRF + '&pais=' + pais + '&provincia=' + provincia + "&idTransporte=" + transporte).load(); } }, is_numeric_char: function (c) { return /\d/.test(c); }, cierraModalAutoHide: function () { $(".modalAutoHide").modal("hide"); } }; var ClassTiendaVirtualPedidos = { initReactivaClicks: function(){ $(".iconoDetallePedido, .iconoImprimirFactura").tooltipster({animation: 'grow',interactive:true, position:'bottom'}); $(".tooltipStandardHTML").not(".tooltipstered").tooltipster({animation: 'grow',interactive:true, position:'bottom', contentAsHTML: true}); var numItems = 0; if (typeof tablatablaHistoricoPedidos != "undefined") { numItems = tablatablaHistoricoPedidos.page.info().recordsDisplay; } if (numItems > 10) { $("#tablaHistoricoPedidos_wrapper .paginationFooter").removeClass("d-none"); } }, initConfirmarPedido: function(opciones_validacion, paisEnvio, provinciaEnvio, poblacionEnvio, paisFacturacion, provinciaFacturacion, poblacionFacturacion) { ClassTiendaVirtualPedidos.TOTAL = 0; ClassTiendaVirtualPedidos.validacion_pedido=$("#frmCofirmarPedido").validate(opciones_validacion); $("body").on("click", "#btn_confirmar_compra, #btn_confirmar_compra2", ClassTiendaVirtualPedidos.confirmarPedido); if ($("#frmProfesionalCarritoPais").length > 0) { preparaLugar(28, undefined, undefined, "frmProfesionalCarritoPais", "frmProfesionalCarritoProvincia", "frmProfesionalCarritoLocalidad"); } preparaLugar(paisEnvio, provinciaEnvio, poblacionEnvio, "formEnvioPais", "formEnvioProvincia", "formEnvioLocalidad"); preparaLugar(paisFacturacion, provinciaFacturacion, poblacionFacturacion, "formFacturacionPais", "formFacturacionProvincia", "formFacturacionLocalidad"); $("#frmCofirmarPedido").on("change", "#copiarDireccionesCarrito", function() { if (!$(this).is(":checked")) { $("#formDireccionFacturacion").css("display", "flex"); $(".formFacturacionTitulo").css("display", "block"); } else { $.each($("input[name^='formEnvio'], select[name^='formEnvio']"), function (i, element) { var value = $(element).val(); var inputFact = $("#"+$(element).attr("id").replace("Envio", "Facturacion")); $(inputFact).val(value); }); $("#formDireccionFacturacion").css("display", "none"); $(".formFacturacionTitulo").css("display", "none"); } }); $("#frmCofirmarPedido").on("change", "#generarFacturaCarrito", function() { if ($(this).is(":checked")) { $("#formDireccionFacturacion").css("display", "flex"); $(".formFacturacionTitulo").css("display", "block"); } else { $("#formDireccionFacturacion").css("display", "none"); $(".formFacturacionTitulo").css("display", "none"); } }); $("#copiarDireccionesCarrito").trigger("change"); $("#generarFacturaCarrito").trigger("change"); ClassTiendaVirtualPedidos.totalesLoaded = false; $("#tablaTotales").on('xhr.dt', function(e, settings, json, xhr) { let total = json["total"]; ClassTiendaVirtualPedidos.TOTAL = total; $(".pago-sequra").attr("data-amount", (total*100).toFixed(0)); if (total >= 50) { if (ClassTiendaVirtualPedidos.totalesLoaded) Sequra.refreshComponents(); $(".radio-sequra").removeClass("d-none"); } else { $(".radio-sequra").addClass("d-none"); } ClassTiendaVirtualPedidos.totalesLoaded = true; }); }, envioValido: function(esValido) { if(esValido) { $(".finalizarPedido").show(); } else { $(".finalizarPedido").hide(); ClassBlockUI.abrirBlockUIEstandarMensaje("Gastos de envío incorrectos, no hemos podido calcular los gastos de envío, disculpe las molestias.", true, false); } }, initDetallePedido:function () { $("body").on("click", ".itemPedidoProdValorar", function() { const datos = JSON.parse($(this).attr("data-datos")); const fotos = datos.fotos; $("#frmValorarMostrarNombre").prop("checked", datos.mostrarNombre > 0); $("#frmValorarValoracion").val(datos.comentario); $("#frmValorarTitulo").val(datos.titulo); marcarEstrellas(datos.puntuacion); $("#frmValorarPuntos").val(datos.puntuacion); $("#frmValorarID").val($(this).attr("data-id")); $(".img-producto-valorar").attr("src", datos.img); $(".titulo-producto-valorar").text(datos.nombre) let titulo = "Valorar Producto"; if (datos.puntuacion > 0) { titulo = "Ver Valoración"; $("#btnValorar").text("Guardar"); $("#frmValorarTitulo, #frmValorarValoracion").prop("readonly", true); $("#realizarValoracion .estrella").removeClass("activa"); $(".form-group-subir-fotos").addClass("d-none"); $("#fotos-valoracion").html(""); if (fotos.length > 0) { $(".form-group-ver-fotos").removeClass("d-none"); $.each(fotos, function (i, e) { $("#fotos-valoracion").append(`Foto`); }); } else { $(".form-group-ver-fotos").addClass("d-none"); } } else { //$("#btnValorar").removeClass("d-none"); $("#btnValorar").text("Valorar"); $("#frmValorarTitulo, #frmValorarValoracion").prop("readonly", false); $("#realizarValoracion .estrella").addClass("activa"); $(".form-group-subir-fotos").removeClass("d-none"); $(".form-group-ver-fotos").addClass("d-none"); } ClassBlockUI.abrirBlockUIEstandar("bloqueValorar", undefined, titulo, "modal681"); }); }, confirmarPedido: function() { $(".modal").modal("hide"); var extraMsg = ""; if(!$("#politicaCarrito").is(":checked") && !usuarioIdentificado) { extraMsg += $("#politicaCarrito").attr("title")+"
"; } if(!$("#condicionesUso").is(":checked")) { extraMsg += $("#condicionesUso").attr("title"); } if (!$("#frmCofirmarPedido").valid() || extraMsg != "") { ClassBlockUI.abrirBlockUIEstandarMensaje("Por favor, revisa los campos porque se han detectado los siguientes errores

"+ClassTiendaVirtualPedidos.validacion_pedido.invalidMessages("
")+extraMsg, true, false); return; } var opcionesDatos = { url: "ajax/TiendaVirtualPedidos.procesarPedido.php?CSRF="+CSRF+"&observaciones="+$("#observaciones").val(), type: "POST", dataType : "json", data : $("#frmCofirmarPedido").serialize(), success: function(data) { if(data["error_number"] == -155) { if (typeof tablatablaTotales != "undefined") { tablatablaTotales.ajax.reload(); } if (typeof tablatablaCarrito != "undefined") { tablatablaCarrito.ajax.reload(); } ClassBlockUI.abrirBlockUIEstandarMensaje(data["error_message"], true, false); ClassTiendaVirtualCarrito.actualizarPreviewCarrito(data); return; } else if(data["error_number"] < 0 ) { ClassBlockUI.abrirBlockUIEstandarMensaje(data["error_message"], true, false); } else { var dataProcesar = data; ClassTiendaVirtualPedidos.callbackProcesarPedido(dataProcesar); } } }; ClassBlockUI.abrirBlockUIEsperePorFavor(); $.ajax(opcionesDatos); }, callbackProcesarPedido: function(data){ switch(data["forma_pago"]*1) { case 5: case 1: { $("#procesaPagoExterno").html(data["formularioFormaPago"]); ClassBlockUI.abrirBlockUIEsperePorFavor(); window.location = data["formularioFormaPago"]; //ClassTiendaVirtualPedidos.pagoBanco(); break; } case 8: $("body").html(data["formularioFormaPago"]); document.getElementById( 'sq-identification-pp3' ).style.display = 'block'; break; case 9: window.location = data["urlRedirect"]; break; default: { window.location = ("/tienda/pedido-realizado.html?idPedido=%idPedido%").replace("%idPedido%", data["idPedido"]); break; } } }, pagoPaypal:function() { ClassBlockUI.abrirBlockUIEsperePorFavor(""); $("#pagoPaypal").submit(); }, pagoBanco:function() { ClassBlockUI.abrirBlockUIEsperePorFavor(); $("#pagoBanco").submit(); } }; var opciones = {}; var modalAtributos=false; var modalMensaje = false; /*var opcionesPeso = false; var opcionesPaquetes = false;*/ var ClassTiendaVirtualProductos = { initAgregarProductoCarrito:function() { /*$(".cantidad").unbind("keyup").keyup(function() { ClassTiendaVirtualProductos.actualizarTotal($("#atributos_1").attr("id"), $("#atributos_1").find("option:selected").attr("data-suplemento")*1); }); $(".cantidad").pressEnter(function(){ return; });*/ $(".ficha_producto_atributos select").change(function() { ClassTiendaVirtualProductos.actualizarTotal($(this).attr("id"), $(this).find("option:selected").attr("data-suplemento")*1, $(this).find("option:selected").attr("data-suplementoTotal")*1); }); $(".btnAgregarCarrito").unbind("click").makeTagLink(function() { ClassTiendaVirtualProductos.agregarAlCarrito(true, $(this)); }); $("body").on("click", ".btnAnadeCarrito", function (){ ClassTiendaVirtualProductos.agregarAlCarrito(false, $(this)); }); /* $(".btnAnadeCarrito").unbind("click").makeTagLink(function() { ClassTiendaVirtualProductos.agregarAlCarrito(false, $(this)); });*/ $(".btnAgregarCarritoListado").unbind("click").makeTagLink(function() { ClassTiendaVirtualProductos.agregarAlCarritoCompruebaAtributos(false, $(this)); }); $("body").on("click", ".inputCantidadMas", function () { var input = $(this).parent().find("input"); var cantidad = $(input).val(); var nuevaCantidad = 1; if (!isNaN(cantidad)) { nuevaCantidad = cantidad*1+1; } $(input).val(nuevaCantidad) //ClassTiendaVirtualProductos.actualizarTotal($("#atributos_1").attr("id"), $("#atributos_1").find("option:selected").attr("data-suplemento")*1); }); $("body").on("click", ".inputCantidadMenos", function () { var input = $(this).parent().find("input"); var cantidad = $(input).val(); var nuevaCantidad = 1; var min = input.attr("min")*1; if(min == undefined || isNaN(min)) { min = 1; } else { nuevaCantidad = min; } if (!isNaN(cantidad) && cantidad > min) { nuevaCantidad = cantidad*1-1; } else { $.notify( { title: "Error: ", message: "El número mínimo de unidades de este producto es: "+min, allow_dismiss: false }, { placement: { from: "top", align: "center" }, delay: 10000 }); } $(input).val(nuevaCantidad) //ClassTiendaVirtualProductos.actualizarTotal($("#atributos_1").attr("id"), $("#atributos_1").find("option:selected").attr("data-suplemento")*1); }); $("body").on("click", "#itemPreviewFotos span", function () { $("#itemPreviewFotos span").removeClass("seleccionada"); $(this).addClass("seleccionada"); var src = $(this).find("img").attr("src"); $("#itemPreviewFotoPrincipal").attr("src", src); }); $(".ficha_producto_atributos select").trigger("change"); }, actualizarTotal:function(idAtributo, valorAtributo, valorAtributoTotal) { if(idAtributo!=undefined) { opciones[idAtributo] = {"descuento": valorAtributo, "total": valorAtributoTotal}; } //le anadido dividir entre 100 para que lo haga bien, sino suma decimales var subtotal = ($("#ficha_producto_precio").val()*1); var subtotal_sin_iva = ($("#ficha_producto_precio_sin_iva").val()*1); var subtotal_original = ($("#ficha_producto_precio_original").val()*1); var subtotal_original_sin_iva = ($("#ficha_producto_precio_original_sin_iva").val()*1); for(var index in opciones) { if(index.match(/atributo_*/i) == null || isNaN(opciones[index]["descuento"])) continue; /*subtotal += opciones[index]["descuento"]; subtotal_original += opciones[index]["total"]; subtotal_sin_iva += opciones[index]["total"]; subtotal_original_sin_iva += opciones[index]["total"];*/ } let stock = 0; let todoSeleccionado = true; let hayAtributos = false; $.each($(".itemPreviewAtributos option:selected"), function(i, e) { hayAtributos = true; let suplemento = $(e).attr("data-suplemento"); let suplementototal = $(e).attr("data-suplementototal"); let stockP = $(e).attr("data-stock"); subtotal += suplemento ? suplemento*1 : 0; subtotal_original += suplementototal ? suplementototal*1 : 0; subtotal_sin_iva += suplementototal ? suplementototal*1 : 0; subtotal_original_sin_iva += suplementototal ? suplementototal*1 : 0; stock += stockP ? stockP*1 : 0; if (isNaN($(e).val()) || $(e).val() == 0 || $(e).val() == "") { todoSeleccionado = false; } }); $(".ficha-stock").removeClass("sin-stock"); if (todoSeleccionado && hayAtributos) { $txtStock = ""; if(stock >= 3) { $txtStock = "En STOCK, recíbelo en 48h."; } else if(stock > 0) { $txtStock = "En STOCK, recíbelo en 48h."; } else { $txtStock = "Disponible de 4 a 7 días"; $(".ficha-stock").addClass("sin-stock"); } $(".ficha-stock").html($txtStock); if ($("#datos-mv-producto").length > 0) { $("#datos-mv-producto .ficha-stock").removeClass("d-none"); const h = $("#datos-mv-producto").innerHeight(); $(".whatsapp").css("bottom", (h+10)+"px"); } } //var cantidad = $(".cantidad").val()*1; var cantidad = 1; if(!isNaN(cantidad)) { $("#productos_detalles_subtotal").html_formated((cantidad*subtotal), {numberOfDecimals: 2, decimalSeparator: ',', thousandSeparator: '.', symbol: ' €'}); $("#productos_detalles_subtotal_original").html_formated((cantidad*subtotal_original), {numberOfDecimals: 2,decimalSeparator: ',',thousandSeparator: '.',symbol: ' €'}); } else { $("#productos_detalles_subtotal").html_formated(subtotal, {symbol: ' €'}); $("#productos_detalles_subtotal_original").html_formated(subtotal_original, {symbol: ' €'}); } }, agregarAlCarritoCompruebaAtributos: function(mostrandoAtributos, este){ if(!usuarioIdentificado && !1) { ClassBlockUI.abrirBlockUIEstandarMensaje("Tienes que identificarse para poder añadir el producto al carrito", true, false); return; } /*var tieneAtributos = este.attr("data-atributos"); if(mostrandoAtributos || !tieneAtributos) { ClassTiendaVirtualProductos.agregarAlCarrito(mostrandoAtributos, este); } else*/ { ClassTiendaVirtualProductos.mostrarAtributosParaAgregarAlCarrito(este); } }, mostrarAtributosParaAgregarAlCarrito: function(este){ idProducto = este.attr("data-id"); var opcionesDatos = { type:"POST", dataType:"json", url:"ajax/TiendaVirtualCarrito.seleccionaAtributos.php?CSRF="+CSRF, data: { id: idProducto }, success: function(data, textStatus, XMLHttpRequest) { if(data["error_number"]<0) { ClassBlockUI.abrirBlockUIEstandarMensaje(data["error_message"], true); } else { /*if(Object.keys(data["atributos"]).length == 0) { ClassTiendaVirtualProductos.agregarAlCarrito(false, este); } else */ $("#itemPreviewDatos .itemPreviewContieneAtributos").html(""); if(Object.keys(data["atributos"]).length > 0) { var seleccionaAtributos = "
"; for(var idAtributo in data["atributos"]) { seleccionaAtributos += ''; seleccionaAtributos += ''; } seleccionaAtributos += ''; seleccionaAtributos += '
'; $("#itemPreviewDatos .itemPreviewContieneAtributos").html(seleccionaAtributos); } $("#itemPreviewDatos .itemPreviewMarca").html(data["producto"]["marca"]); $("#itemPreviewDatos .itemPreviewProducto").html(data["producto"]["producto"]); if (!data["producto"]["esOferta"]) { $("#itemPreviewDatos .itemPreviewPrecio").addClass("d-none"); } else { $("#itemPreviewDatos .itemPreviewPrecio").removeClass("d-none"); } $("#itemPreviewDatos .itemPreviewPrecio").html(data["producto"]["precio"]); $("#itemPreviewDatos .itemPreviewPrecioOferta").html(data["producto"]["precioOferta"]); $("#itemPreviewFotoPrincipal").attr("src", data["producto"]["fotoPrincipal"]); $("#itemPreviewFotos").html(""); $.each(data["producto"]["fotos"], function (i, e) { var claseSeleccionada = e == data["producto"]["fotoPrincipal"] ? "seleccionada" : ""; $("#itemPreviewFotos").append('Producto'); }); if (data["producto"]["porcentajeDescuento"] > 0) { $("#itemPreviewDatos .itemPreviewPorcDescuento").css({opacity: 1, visibility: "visible"}); } else { $("#itemPreviewDatos .itemPreviewPorcDescuento").css({opacity: 0, visibility: "hidden"}); } $("#itemPreviewDatos .itemPreviewPorcDescuento").html(data["producto"]["porcentajeDescuento"]+"%"); $("#itemPreviewDatos .itemPreviewCantidad").val(1); $("#selectAtributos #itemPreviewProductoFotos .btnAnadirEliminarLista").tooltipster("destroy"); $("#selectAtributos #itemPreviewProductoFotos .btnAnadirEliminarLista").attr("data-id", idProducto); $("#selectAtributos #itemPreviewProductoFotos .btnAnadirEliminarLista").removeClass("deseo").addClass(data["producto"]["claseDeseo"]); $("#selectAtributos #itemPreviewProductoFotos .btnAnadirEliminarLista").attr("title", data["producto"]["tooltipDeseo"]); $(".tooltipStandard").not(".tooltipstered").tooltipster({animation: 'grow',interactive:true, position:'bottom', contentAsHTML: true}); $("#itemPreviewDatos #btnCatalogoComprarAgregarAhoraAtributos").attr("data-id", idProducto); $("#itemPreviewDatos .itemPreviewAvisame").attr("data-id", idProducto); $("#itemPreviewDatos #btnCatalogoComprarAgregarAhoraAtributos").attr("data-atributos", 1); $(".inputCantidad .cantidad").val(1); modalAtributos = ClassBlockUI.abrirBlockUIEstandar("selectAtributos", undefined, "", "modal-lg"); } } }; $.ajax(opcionesDatos); ClassBlockUI.abrirBlockUIEsperePorFavor(); }, agregarAlCarrito: function(mostrandoAtributos, este) { if(!usuarioIdentificado && !1) { ClassBlockUI.abrirBlockUIEstandarMensaje("Tienes que identificarse para poder añadir el producto al carrito", true, false); } else { var idProducto = este.attr("data-id"); var tieneAtributos = este.attr("data-atributos"); var atributos = {}; var atributosOk = true; if(tieneAtributos == 1) { $(".ficha_producto_atributos select").each(function() { atributos[$(this).attr("id")] = $(this).val(); if($(this).val() == "") { atributosOk=false; } }); } if(!atributosOk) { if ($("#bloque-atributos").length > 0 && $("#blockUI_bloque-atributos").length == 0) { $("#blockUI_bloque-atributos").modal("hide"); ClassBlockUI.abrirBlockUIEstandar("bloque-atributos", undefined, "Elige las opciones del producto", "modal356"); return; } else { ClassBlockUI.abrirBlockUIEstandarMensaje("Elige las opciones del producto", true, false); return; } } var data = atributos;//atributos; data["idProducto"] = idProducto; if(!mostrandoAtributos) { data["cantidad"] = $("#cantidad_"+idProducto).val(); //porque estamos agregando desde el listado del producto } else { data["cantidad"] = $(".cantidad").val(); } var opcionesDatos = { type:"POST", dataType:"json", url:"ajax/TiendaVirtualCarrito.agregar.php?CSRF="+CSRF, data: data, success: function(data, textStatus, XMLHttpRequest) { if(data["error_number"]<0) { ClassBlockUI.abrirBlockUIEstandarMensaje(data["error_message"], true, false); } else { ClassTiendaVirtualProductos.animateImageCart($("#foto-principal img")); ClassTiendaVirtualCarrito.actualizarPreviewCarrito(data); $(".modalAutoHide").modal("hide"); $("#blockUI_bloque-atributos").modal("hide"); $("#bloque-atributos.ficha_producto_atributos select").val(""); //Para que vuelva a preguntar cuando le de a añadir $("#bloque-atributos.ficha_producto_atributos select").selectpicker("refresh"); $.notify( { title: "Aviso: ", message: data["error_message"], allow_dismiss: false }, { placement: { from: "top", align: "center" }, delay: 2000, //timer: 100000 }); if(data["gtagModifyInfo"]) { Web.sendEvent("add_to_cart", data["gtagModifyInfo"]); } if(data["klaviyoAddToCart"] && Object.keys(data["klaviyoAddToCart"]).length > 0) { let klaviyoAddToCart = function(){ klaviyo.push(["track", "Added to Cart", data["klaviyoAddToCart"]]); }; if(Web.klaviyo) { klaviyoAddToCart(); } else { if(Web.klaviyoPending === undefined) {Web.klaviyoPending = []} Web.klaviyoPending.push(klaviyoAddToCart); } } } } }; $.ajax(opcionesDatos); modalMensaje = ClassBlockUI.abrirBlockUIEsperePorFavor(); } }, animateImageCart: function (element) { if (element.length == 0) return; var productImage = element.clone(); var cart = $(".btnAbreCarrito:visible"); var animation = $(".cart-animation"); let elementStart = $("#frmDatosProducto .btnAgregarCarrito"); if ($("#datos-mv-producto").length > 0) elementStart = $("#datos-mv-producto .btnAgregarCarrito"); const elementPosition = elementStart.offset(); var maxLeft = $(window).width() - animation.width(); animation.html(productImage); animation.css({ top: elementPosition.top, left: elementPosition.left + elementStart.width() - animation.width() }); animation.show(); var cartPosition = cart.offset(); animation.animate({ top: cartPosition.top + cart.height() / 2, left: Math.min(cartPosition.left + cart.width() / 2, maxLeft), opacity: 1 }, 1200, function() { animation.hide(); productImage.remove(); }); } }; var ClassUsuarios = { initModificarDatosPerfil: function(opciones_validacion, opciones_validacion_modificar_password, paisEnvio, provinciaEnvio, poblacionEnvio, paisFacturacion, provinciaFacturacion, poblacionFacturacion) { ClassUsuarios.opcValidacionModificarPassword = opciones_validacion_modificar_password; ClassUsuarios.opcValidacionModificarDatosPerfil = opciones_validacion; $(document).ready(function() { ClassUsuarios.validacionModificarDatosPerfil=$("#frmModificarDatosPerfil").validate(opciones_validacion); $(".btnGuardarContrasena").unbind("click").makeTagLink(ClassUsuarios.modificarDatosPassword); $(".btnGuardarCambios").unbind("click").makeTagLink(ClassUsuarios.modificarDatosPerfil); $("#btnBaja").unbind("click").makeTagLink(ClassUsuarios.confirmacionBaja); preparaLugar(paisEnvio, provinciaEnvio, poblacionEnvio, "formEnvioPais", "formEnvioProvincia", "formEnvioLocalidad"); preparaLugar(paisFacturacion, provinciaFacturacion, poblacionFacturacion, "formFacturacionPais", "formFacturacionProvincia", "formFacturacionLocalidad"); ClassUsuarios.actualizarDatos(true); $("#copiarDirecciones").click(function() { ClassUsuarios.actualizarDatos(true); }); $("#generarFactura").click(function() { ClassUsuarios.actualizarDatos(true); }); }); }, actualizarDatos:function(actualizarSelects) { if($("#generarFactura").val() == 0 || $("#copiarDirecciones").is(":checked") == 1) { $("#formDireccionFacturacion, #formFacturacionGuardarCambios, .formFacturacionTitulo").addClass("d-none"); $("#formEnvioGuardarCambios").removeClass("d-none"); if (actualizarSelects) { $("#formDireccionFacturacion").removeClass("d-flex"); $("#formFacturacionPais").html($("#formEnvioPais").html()); $("#formFacturacionProvincia").html($("#formEnvioProvincia").html()); $("#formFacturacionLocalidad").html($("#formEnvioLocalidad").html()); $("#formFacturacionPais .bs-title-option").remove(); $("#formFacturacionProvincia .bs-title-option").remove(); $("#formFacturacionLocalidad .bs-title-option").remove(); $("#formFacturacionPais").selectpicker('refresh'); $("#formFacturacionProvincia").selectpicker('refresh'); $("#formFacturacionLocalidad").selectpicker('refresh'); $("#formFacturacionPais").selectpicker('val', $("#formEnvioPais").val()); $("#formFacturacionProvincia").selectpicker('val', $("#formEnvioProvincia").val()); $("#formFacturacionLocalidad").selectpicker('val', $("#formEnvioLocalidad").val()); } $.each($("input[name^='formEnvio']"), function (i, element) { var value = $(element).val(); var inputFact = $("#"+$(element).attr("id").replace("Envio", "Facturacion")); $(inputFact).val(value); }); } else { $("#formDireccionFacturacion").addClass("d-flex"); $("#formFacturacionGuardarCambios, .formFacturacionTitulo, #formDireccionFacturacion").removeClass("d-none"); $("#formEnvioGuardarCambios").addClass("d-none"); } }, modificarDatosPerfil:function() { ClassUsuarios.validacionModificarDatosPerfil.resetForm(); $(".bootstrap-select").removeClass("error"); Utils.sendStandardAjax("frmModificarDatosPerfil", "ajax/Usuarios.modificarDatos.php?CSRF="+CSRF, {opcionesValidacion: ClassUsuarios.opcValidacionModificarDatosPerfil, successCallback: null}); }, modificarDatosPassword: function() { Utils.sendStandardAjax("frmModificarContrasena", "ajax/Usuarios.modificarPassword.php?CSRF="+CSRF, {opcionesValidacion: ClassUsuarios.opcValidacionModificarPassword, successCallback: null, resetFormOnSuccess: true}); }, guardaClaveOlvidoPass: function () { var opciones_validacion= { showLabels: false, rules: { passwordOlvido: { required: true, minlength: 6 }, password2: { equalTo: "#passwordOlvido" } } }; Utils.sendStandardAjax("form_olvido", "ajax/Usuarios.guardaClave.php?CSRF="+CSRF, {opcionesValidacion: opciones_validacion, successCallback: "https://www.vespaturia.es/tienda-motos-valencia.html"}); }, enviarOlvido: function() { Utils.sendStandardAjax("frmEnviarOlvido", "ajax/Usuarios.olvidarContrasena.php", {successCallback: null, resetFormOnSuccess: true}); }, confirmacionBaja: function() { ClassBlockUI.abrirBlockUIConfirm("Si te das de baja perderás tu acceso, el historial de los pedidos realizados con las facturas correspondientes, ¿estas seguro de que quieres darte de baja?", "SÍ, DARME DE BAJA", ClassUsuarios.enviarBaja, "NO, CONTINUAR", undefined, "modal681 modalDarBaja", "VAS A DARTE BAJA"); }, enviarBaja: function() { $(".modal").modal("hide"); var opcionesDatos = { type:"POST", dataType:"json", url:"ajax/Usuarios.baja.php?CSRF="+CSRF, success: function(data, textStatus, XMLHttpRequest) { if(data["error_number"] >= 0) { ClassBlockUI.abrirBlockUIEstandarMensaje("Te vamos a echar mucho de menos. Puedes volver a registrarte cuando quieras, nos vemos pronto", true, "logout.php", "modal681 modalDarBaja", "TE HAS DADO DE BAJA"); } else { ClassBlockUI.abrirBlockUIEstandarMensaje(data["error_message"], true, false); } } }; $.ajax(opcionesDatos); ClassBlockUI.abrirBlockUIEsperePorFavor(); }, actualizaDni: function () { //$("#formEnvioDNI").removeClass("required").removeClass("valid").removeClass("error"); //$("#formFacturacionDNI").removeClass("required").removeClass("valid").removeClass("error"); } };