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 initBanner()
{
$(document).ready(function ()
{
if ($('#carousel-banner').length)
{
$('#carousel-banner').owlCarousel({
animateOut: 'fadeOut',
animateIn: 'fadeIn',
loop: true,
lazyLoad: true,
margin: 0,
nav: true,
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));
});
$(".btn-fav").unbind("click").makeTagLink(function()
{
if(!$(this).hasClass("btnAbreLogin")) {
ClassTiendaVirtualProductos.agregarAFavoritos(true, $(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();
});
},
/* MOD RAUL */
agregarAFavoritos: function(mostrandoAtributos, este)
{
if(!usuarioIdentificado && !1)
{
ClassBlockUI.abrirBlockUIEstandarMensaje("Tienes que identificarse para poder añadir el producto al carrito", true, false);
}
else
{
var data = {};
var idProducto = $("#idProducto").val();
var tipoProducto = 0;
if($("#tipoProducto").length){
tipoProducto = 1;
}
data["idProducto"] = idProducto;
data["tipoProducto"] = tipoProducto;
var opcionesDatos =
{
type:"POST",
dataType:"json",
url:"ajax/TiendaVirtualFavorito.agregar.php?CSRF="+CSRF+"&id="+idProducto,
data: data,
success: function(data, textStatus, XMLHttpRequest)
{
console.log(data);
if(data["error_number"]<0)
{
ClassBlockUI.abrirBlockUIEstandarMensaje(data["error_message"], true, false);
}
else
{
$(".modalAutoHide").modal("hide");
if($(".btn-fav .fa-heart").hasClass("fas")){
$(".btn-fav .fa-heart").removeClass("fas");
$(".btn-fav .fa-heart").addClass("far");
}else{
$(".btn-fav .fa-heart").removeClass("far");
$(".btn-fav .fa-heart").addClass("fas");
}
$(".btnAbreFavoritos .contadorNumItems").text(data["deseados"]);
$.notify(
{
title: "
Aviso: ",
message: data["notificacion"],
allow_dismiss: false
},
{
placement: {
from: "top",
align: "center"
},
delay: 2000,
//timer: 100000
});
}
}
};
$.ajax(opcionesDatos);
modalMensaje = ClassBlockUI.abrirBlockUIEsperePorFavor();
}
}
/* END MOD RAUL */
};
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");
}
};