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("
");
$("#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: [
'";
for(var index in isAlertOrButtons)
{
botonera += " "+isAlertOrButtons[index]["text"]+" ";
}
botonera += "
";
}
var message = '';
message += '").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(`
`);
});
} 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 += ''+data["atributos"][idAtributo]["nombre"]+' ';
seleccionaAtributos += '';
seleccionaAtributos += ' ';
for(i in data["atributos"][idAtributo]["opciones"])
{
var atributoActual = data["atributos"][idAtributo]["opciones"][i];
var suplemento = atributoActual["suplemento"];
var textoAMostrar = atributoActual["titulo_es"];
if(suplemento != 0)
{
textoAMostrar += " ("+(suplemento>0 ? "+" : "-" )+suplemento+" €) ";
}
stock = atributoActual["stock"];
claseStock = stock > 0 ? "conStock" : "sinStock";
}
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('
');
});
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");
}
};