$(document).ready(function () {
if($.fn.dataTable != undefined)
{
$.extend($.fn.dataTable.defaults,
{
"language":
{
"sProcessing": "",
"sLengthMenu": "",
"sZeroRecords": "",
"sEmptyTable": "",
"sInfo": "",
"sInfoEmpty": "",
"sInfoFiltered": "()",
"sSearchPlaceholder": "",
"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).change(function()
{
actualizaProvincias(idInputLocalidad,idInputProvincia, idInputPais, provincia);
});
if(provincia > 0)
{
actualizaCiudades(idInputLocalidad, idInputProvincia, idInputPais,poblacion, pais, provincia, poblacion, $("#"+idInputProvincia).val()*1);
}
$("#"+idInputProvincia).change(function()
{
actualizaCiudades(idInputLocalidad, idInputProvincia, idInputPais, undefined, $("#"+idInputPais).val()*1, $("#"+idInputProvincia).val()*1);
});
}
function actualizaProvincias(idCampoLocalidad, idCampoRegion, idCampoPais, idRegionPreEstablecida, 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 = "";
}
if(textoLoading == undefined)
{
textoLoading = "Cargando...";
}
var data =
{
idPais: forceIdPais
};
$("#"+idCampoRegion).empty();
$("#"+idCampoRegion).append( "");
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( "" );
}
if(idRegionPreEstablecida!=undefined && idRegionPreEstablecida !="")
{
$("#"+idCampoRegion).val(idRegionPreEstablecida);
}
else
{
$("#"+idCampoRegion).val(0);
}
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 = "";
}
if(textoLoading == undefined)
{
textoLoading = "Cargando...";
}
var data =
{
idPais: forceIdPais,
idRegion: forceIdRegion
};
$("#"+idCampoLocalidad).empty();
$("#"+idCampoLocalidad).append( "");
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( "" );
}
if(idLocalidadPreEstablecida!=undefined)
{
$("#"+idCampoLocalidad).val(idLocalidadPreEstablecida);
}
if(onFinish != undefined && typeof(onFinish) == "function")
{
onFinish();
}
}
});
}
class Web
{
static initContador()
{
$(document).ready(function()
{
var wowContador = new WOW(
{
boxClass: 'contadores', // animated element css class (default is wow)
animateClass: 'animated', // animation css class (default is animated)
offset: 0, // distance to the element when triggering the animation (default is 0)
callback: function(box) {
//To-do va a durar 1 segundo, si tiene 4 lo hara mas lento
const duracion = 1500;
$.each($(".item-contador"), function (i, e)
{
const max = $(e).attr("data-num")*1;
let interva = setInterval(function ()
{
const numMax = $(e).attr("data-num")*1;
const numActual = $(e).attr("data-actual")*1;
if (numActual+1 >= numMax)
clearInterval(interva);
$(e).find(".item-contador-num").text(numActual+1);
$(e).attr("data-actual", numActual+1);
}, Math.round(duracion/max));
});
},
});
wowContador.init();
});
}
static initContacto()
{
let validacion;
$(document).ready(function(e) {
$("#btnEnviarContacto").click(enviarFormulario);
var opciones_validacion = {showLabels: false};
validacion = $("#formContacto").validate(opciones_validacion);
});
function enviarFormulario(event) {
event.preventDefault();
var extraMsg = "";
if (!$("#politica").is(":checked")) {
extraMsg = $("#politica").attr("title");
}
var successCallback = function (data, textStatus, XMLHttpRequest) {
$(".modal").modal("hide");
if (data["error_number"] < 0) {
ClassBlockUI.abrirBlockUIEstandarMensaje(data["error_message"], true, undefined);
} else {
ClassBlockUI.abrirBlockUIEstandarMensaje(data["error_message"], true, undefined);
$("#formContacto")[0].reset();
validacion.resetForm();
}
};
Utils.sendStandardAjax("formContacto", "ajax/Contacto.enviar.php", {
extraErroresForm: extraMsg,
successCallback: successCallback
});
}
}
static initTienda()
{
$(document).ready(function () {
if ($("#carousel-fotos").length) {
$("#carousel-fotos").owlCarousel({
loop: true,
margin: 0,
items: 1,
dots: false,
nav: false,
autoplay: true,
autoplayTimeout: 4000,
onInitialized: function ()
{
Utils.applyAspectRatio();
},
onResized: function ()
{
Utils.applyAspectRatio();
},
});
}
Web.gallery = $(".enlace-foto").simpleLightbox();
$("body").on("click", ".item-foto", function ()
{
Web.gallery.open(Web.gallery.elements[$(this).attr("data-pos")]);
});
});
}
static initObra()
{
$(document).ready(function () {
if ($("#carousel-fotos").length) {
$("#carousel-fotos").owlCarousel({
loop: false,
margin: 7,
items: 1,
dots: false,
nav: true,
stagePadding: 1,
navText: [
'',
'',
],
responsive: {
0: {
items: 1,
mouseDrag: true,
loop: true
},
576: {
loop: ($("#carousel-fotos .item-foto").length > 3) ? true: false,
mouseDrag: ($("#carousel-fotos .item-foto").length > 3) ? true: false,
items: 3,
margin: 15,
},
768: {
loop: ($("#carousel-fotos .item-foto").length > 4) ? true: false,
mouseDrag: ($("#carousel-fotos .item-foto").length > 4) ? true: false,
items: 4,
margin: 45,
},
992: {
loop: ($("#carousel-fotos .item-foto").length > 3) ? true: false,
mouseDrag: ($("#carousel-fotos .item-foto").length > 3) ? true: false,
items: 3,
},
1200: {
loop: ($("#carousel-fotos .item-foto").length > 4) ? true: false,
mouseDrag: ($("#carousel-fotos .item-foto").length > 4) ? true: false,
items: 4,
},
},
onInitialized: function ()
{
Utils.applyAspectRatio();
},
onResized: function ()
{
Utils.applyAspectRatio();
},
});
}
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 ()
{
$(".item-foto img.seleccionada").removeClass("seleccionada");
$("#img-principal").attr("src", $(this).find("img").attr("src").replace("M.webp", "G.webp")).attr("data-pos", $(this).attr("data-pos"));
$(this).find("img").addClass("seleccionada");
const w = $(window).innerWidth();
if (w >= 567 && w <=767)
{
Web.gallery.open(Web.gallery.elements[$(this).attr("data-pos")]);
}
});
});
}
static initPresupuesto()
{
let validacion;
const precioM2 = 120;
const precioLimpiezaM2 = 123;
$(document).ready(function()
{
const opciones_validacion = {showLabels: false};
validacion = $("#frmPresupuesto").validate(opciones_validacion);
$("#paso-actual").val(1);
$(".inp-metro input").keyup(function()
{
$(this).val($(this).val().replace(",", "."));
});
$("#quiero-limpieza").click(function()
{
$(this).toggleClass("checked");
$("#servicio-limpieza").val(($(this).hasClass("checked") ? 1 : 0));
actualizaPrecios();
});
$("#frmPresupuestoAnchoSuelo, #frmPresupuestoAlturaTecho, #frmPresupuestoMetrosParedes").pressEnter(function()
{
$(".btnPasoSiguiente").eq(0).trigger("click");
});
$("#btnEnviarPresupuesto").click(function()
{
Utils.sendStandardAjax("frmPresupuesto", "ajax/Presupuesto.enviar.php", {
successCallback: "https://www.ideatureforma.com/inicio.html"
});
});
});
$("body").on("click", ".btnPasoSiguiente", function()
{
const paso = $("#paso-actual").val();
const siguientePaso = Math.max(1, paso*1+1);
const valid = validaPresupuesto();
if (!valid)
return;
cambiaPaso(siguientePaso);
$(".item-paso-presupuesto[data-paso='"+siguientePaso+"']").addClass("activo");
});
$("body").on("click", ".btnPasoAnterior", function()
{
const paso = $("#paso-actual").val();
const pasoAnterior = Math.max(1, paso*1-1);
cambiaPaso(pasoAnterior);
});
$("body").on("click", ".item-paso-presupuesto.activo", function()
{
const paso = $(this).attr("data-paso");
//const valid = validaPresupuesto();
//
//if (!valid)
// return;
cambiaPaso(paso);
});
function cambiaPaso(paso)
{
$(".paso-presupuesto").addClass("d-none");
$("#paso-presupuesto-"+paso).removeClass("d-none");
$("#paso-actual").val(paso);
$(".item-paso-presupuesto").removeClass("actual");
$(".item-paso-presupuesto[data-paso='"+paso+"']").addClass("actual");
if (paso == 4)
{
actualizaPrecios();
}
else
{
$("#paso-presupuesto-"+paso+" .inp-metro input").eq(0).focus();
}
}
function actualizaPrecios()
{
const largoSuelo = $("#frmPresupuestoLargoSuelo").val()*1;
const anchoSuelo = $("#frmPresupuestoAnchoSuelo").val()*1;
const alturaTecho = $("#frmPresupuestoAlturaTecho").val()*1;
const metrosParedes = $("#frmPresupuestoMetrosParedes").val()*1;
const limpieza = $("#servicio-limpieza").val();
if (isNaN(largoSuelo) || largoSuelo <= 0 || isNaN(anchoSuelo) || anchoSuelo <= 0)
{
cambiaPaso(1);
return;
}
if (isNaN(alturaTecho) || alturaTecho <= 0)
{
cambiaPaso(2);
return;
}
if (isNaN(metrosParedes) || metrosParedes <= 0)
{
cambiaPaso(3);
return;
}
const precio = limpieza == 1 ? precioLimpiezaM2 : precioM2;
const mTotales = (largoSuelo*anchoSuelo) + (alturaTecho*metrosParedes);
$("#presupuesto-resumen-total span").html(Utils.number_format(mTotales*precio, {decimalSeparator: ",", thousandSeparator: ".", symbol: "€"}).replace(",00", ""));
$("#presupuesto-resumen-total-txt").html(mTotales+" metros ("+precio+" €/m + IVA)");
}
function validaPresupuesto()
{
let extraMsg = "";
if (!$("#frmPresupuesto").valid() || extraMsg != "")
{
ClassBlockUI.abrirBlockUIEstandarMensaje("Por favor revise los campos marcados en distinto color porque se han detectado los siguientes errores
"+validacion.invalidMessages("
")+extraMsg, true, false);
return false;
}
return true;
}
}
}
/*
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 = ''+
'