// Muestra efecto 'cargando'.
//Variable global para controlar las veces que se muestra la pantalla de carga.
var ncargando = 0;
var timeoutvar;
function cargando(urlbase) {
ncargando++;
if (!$("#cargando").length) {
var ancho = $(window).width();
var alto = $(window).height();
if (urlbase) {
var codigo = "
";
} else {
var codigo = "";
}
$('body').prepend(codigo);
$("#cargando").fadeIn();
timeoutvar = setTimeout(function () {
$("#msj_cargando_funcion").html("Cargando . . .");
$("#msj_cargando_funcion").css('color', '#000000');
timeoutvar = setTimeout(function () {
$("#msj_cargando_funcion").html("Estamos gestionando su petición . . .");
timeoutvar = setTimeout(function () {
$("#msj_cargando_funcion").html("Está tardando más de lo esperado . . . Tenga un poco de paciencia.");
timeoutvar = setTimeout(function () {
$("#msj_cargando_funcion").html("Ha acurrido algún error, inténtelo más tarde.");
$("#msj_cargando_funcion").css('color', '#db4128');
timeoutvar = setTimeout(function () {
cargado();
}, 90000);
}, 85000);
}, 30000);
}, 5000);
}, 0);
}
}
// Quita efecto 'cargando'.
function cargado() {
clearTimeout(timeoutvar);
$("#cargando").fadeOut(function () {
$("#cargando").remove();
});
ncargando = 0;
}
// Quita efecto 'cargando' FORZADO: Eliminará la pantalla cargando independientemente de las llamadas que tenga pendiente.
function cargado_forzado() {
clearTimeout(timeoutvar);
$("#cargando").fadeOut(function () {
$("#cargando").remove();
});
}
// Configura el alto del navegador como alto mínimo a un elemento.
function altoMinAutomaticoWindow(idcontenedor) {
var altoMinimo = $(window).height();
$("#" + idcontenedor).css('min-height', altoMinimo);
}
function altoMinAutomaticoDocument(idcontenedor) {
var altoMinimo = $(document).height();
$("#" + idcontenedor).css('min-height', altoMinimo);
}
// Aplica el alto al alto más alto entre document o window.
function altoMinAutomaticoDocumentWindow(idcontenedor) {
var altoDocumento = $(document).height();
var altoVentana = $(window).height();
if (altoDocumento > altoVentana) {
$("#" + idcontenedor).css('min-height', altoDocumento);
} else {
$("#" + idcontenedor).css('min-height', altoVentana);
}
}
// Aplica el alto al alto más alto entre document o window.
function altoMinAutomaticoHeader() {
var altoCentroBox = $(".centroBox").height();
var altoVentana = $(window).height();
var altoHeader = $("header").height();
if (altoCentroBox > 462 || altoVentana > 462) {
if (altoCentroBox > altoVentana) {
$("header").css('min-height', altoCentroBox);
} else {
$("header").css('min-height', altoVentana);
}
} else {
$("header").css('min-height', 462);
}
}
var ncargandologin = 0;
function cargando_login() {
ncargandologin++;
if ($("#cargandologin").length == 0) {
var ancho = $(window).width();
var alto = $(window).height();
var codigo = "";
$('body').prepend(codigo);
$("#msj_cargando_funcion").html("Cargando . . .");
$("#msj_cargando_funcion").css('color', '#000000');
}
}
// Quita efecto 'cargando login'.
function cargado_login() {
if (ncargandologin != 0) {
ncargandologin--;
}
if (ncargandologin == 0) {
clearTimeout(timeoutvar);
$("#cargandologin").fadeOut(function () {
$("#cargandologin").remove();
});
}
}
// Diálogo de confirmación.
function popup_confirm_full_open(tipo, callback) {
switch (tipo) {
case 'eliminar':
var frase = "¿Seguro que desea eliminarlo?"
break;
default:
var frase = "¿Desea continuar?"
break;
}
var ancho = $(window).width();
var alto = $(window).height();
var codigo = "";
$('body').prepend(codigo);
$("#popup_full").fadeIn();
}
// Cerrar diálogo de confirmación.
function popup_confirm_full_close() {
$("#popup_full_indoor").slideUp('', function () {
$("#popup_full").fadeOut();
});
}
// Añadir a cookie
function setCookie(c_name, value, expiredays) {
var exdate = new Date();
exdate.setDate(exdate.getDate() + expiredays);
document.cookie = c_name + "=" + escape(value) +
((expiredays == null) ? "" : ";expires=" + exdate.toGMTString());
}
// Mostrar el valor de cierto registro de la cookie
function getCookie(c_name) {
if (document.cookie.length > 0) {
c_start = document.cookie.indexOf(c_name + "=");
if (c_start != -1) {
c_start = c_start + c_name.length + 1;
c_end = document.cookie.indexOf(";", c_start);
if (c_end == -1)
c_end = document.cookie.length;
return unescape(document.cookie.substring(c_start, c_end));
}
}
return "";
}
// Comprueba si se habían aceptado las cookies, para mostrar o no el mensaje.
function comprobarCookieMensaje() {
if (!getCookie("acceptCookie")) {
// Mostramos aviso de cookie.
setTimeout(function () {
$("body").append("");
$("#mensaje_cookies").slideDown(1000);
$("#aceptarCookies").click(function () {
setCookie("acceptCookie", 1, 365);
$("#mensaje_cookies").slideUp(1000);
});
}, 1000);
}
}
function comprobarCambioHora(fecha) {
var result = "nada";
var comprobacion = false;
var separated = fecha.split("-");
var dias_mes = DiasMes(separated[1], separated[0]);
var f = "";
var fe = "";
for (var i = dias_mes; i > 0; i--) {
f = separated[0] + "-" + separated[1] + "-" + i;
var ms = Date.parse(f);
var aux = new Date(ms);
if (aux.getDay() == 0 && comprobacion == false) {
comprobacion = true;
fe = f;
}
}
if (comprobacion == true && fecha == fe) {
if (separated[1] == "03") {
result = "adelanta";
}
if (separated[1] == "10") {
result = "atrasa";
}
}
return result;
}
function DiasMes(mes, anio) {
if (mes[0] == 0) {
mes = mes[1];
}
var dias = [0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
var ultimo = 0;
if (mes == 2) {
var fecha = new Date(anio, 1, 29);
var vermes = fecha.getMonth();
if ((vermes + 1) != mes) {
ultimo = 28;
}
}
if (ultimo == 0) {
ultimo = dias[mes];
}
return ultimo;
}
// Desplegar y ocultar menú recordando posición
// por cookies
function accionMenu(check) {
if (getCookie("menu") == "" || !getCookie("menu")) {
setCookie("menu", 1, null);
var check = true;
}
if (!check) {
if (getCookie("menu") == 1) {
setCookie("menu", 0, null);
} else if (getCookie("menu") == 0) {
setCookie("menu", 1, null);
}
}
if (getCookie("menu") == 1) {
// Mostrar barra busqueda
if ($("#box_buscador_master_resultado").length) {
$("#box_buscador_master_resultado").show("slow");
}
// Mostrar menú
$("#centroBox").addClass("transicion_centroBox");
$("#centroBox").removeClass("centroBoxMax");
setTimeout(function () {
$("#centroBox").removeClass("transicion_centroBox");
}, 600); //Cuando termina transición, eliminamos la clase.
$("#centroBox").addClass("marginCentro");
$("#menuResponsive").removeClass("menuOculto");
$("#menuResponsive").addClass("menuFlotante");
$("#logoMax").removeClass("oculto");
$("#dispositivos").removeClass("oculto");
$("#iconos_menu").removeClass("oculto");
$("#logoMin").addClass("oculto");
$(".iconResp").addClass("oculto");
$("#header_usuario").removeClass("header_usuario_movil");
// $("#header_usuario").removeClass('oculto');
} else {
// Ocultar menú
if ($("#box_buscador_master_resultado").length) {
$("#box_buscador_master_resultado").hide();
}
$("#centroBox").removeClass("marginCentro");
$("#centroBox").addClass("centroBoxMax");
$("#menuResponsive").addClass("menuOculto");
$("#logoMin").removeClass("oculto");
$(".iconResp").removeClass("oculto");
$("#logoMax").addClass("oculto");
$("#dispositivos").addClass("oculto");
$("#iconos_menu").addClass("oculto");
$("#header_usuario").addClass("header_usuario_movil");
setTimeout(function () {
$("#menuResponsive").removeClass("menuFlotante");
}, 500);
}
}
//0: Ocultar menú. 1: Mostrar menú.
function menu_mostrar_ocultar(accion) {
if (accion == 1) {
//Mostramos menú.
setCookie("menu", 1, null);
$("#centroBox").addClass("transicion_centroBox");
$("#centroBox").removeClass("centroBoxMax");
setTimeout(function () {
$("#centroBox").removeClass("transicion_centroBox");
}, 600); //Cuando termina transición, eliminamos la clase.
$("#centroBox").addClass("marginCentro");
$("#menuResponsive").removeClass("menuOculto");
$("#menuResponsive").addClass("menuFlotante");
$("#logoMax").removeClass("oculto");
$("#dispositivos").removeClass("oculto");
$("#logoMin").addClass("oculto");
$(".iconResp").addClass("oculto");
$("#dispositivos").removeClass("oculto");
$("#iconos_menu").removeClass("oculto");
$("#header_usuario").removeClass("header_usuario_movil");
// $("#header_usuario").removeClass('oculto');
} else if (accion == 0) {
//Ocultamos menú.
setCookie("menu", 0, null);
$("#centroBox").removeClass("marginCentro");
$("#centroBox").addClass("centroBoxMax");
$("#menuResponsive").addClass("menuOculto");
$("#logoMin").removeClass("oculto");
$(".iconResp").removeClass("oculto");
$("#logoMax").addClass("oculto");
$("#dispositivos").addClass("oculto");
$("#iconos_menu").addClass("oculto");
$("#header_usuario").addClass("header_usuario_movil");
setTimeout(function () {
$("#menuResponsive").removeClass("menuFlotante");
}, 500);
// $("#header_usuario").addClass('oculto');
}
}
//Muestra menú al deslizar touch de izquierda a derecha.
function muestra_menu_touch() {
var myElement = document.getElementsByTagName('body');
$(myElement).swipe({
swipeLeft: function (event, direction, distance, duration, fingerCount, fingerData) {
//Ocultar menú.
menu_mostrar_ocultar(0);
},
swipeRight: function (event, direction, distance, duration, fingerCount, fingerData) {
//Mostrar menú.
menu_mostrar_ocultar(1);
},
threshold: 100,
maxTimeThreshold: 400,
fingers: 1
});
}
//Devuelve la Urlbase.
function urlbase() {
$.post("../php_script/obtener_urlbase.php")
.done(function (data) {
return data;
});
}
//Devuelve el ancho de la ventana del navegador en px.
function calcula_ancho_ventana() {
return $(window).width();
}
//Devuelve el alto de la ventana del navegador en px.
function calcula_alto_ventana() {
return $(window).height();
}
//Pasamos id box y modifica el alto al 100% ventana.
function ventana_full_windows(id_elemento) {
var alto_minimo = calcula_alto_ventana();
var alto_elemento = $("#" + id_elemento).height();
if (alto_elemento < alto_minimo) {
alto_minimo = alto_minimo - 75;
$("#" + id_elemento).css('min-height', alto_minimo + 'px');
}
}
// Función para dejar en blanco un campo input.
function reset_input(idelemento) {
document.getElementById(idelemento).value = "";
}
// Añadir nuevo campo input EMAIL/SMS.
function clone_input(class_elementos, id_elementos) {
//Numero de elementos con la CLASS pasada.
var num = $('.' + class_elementos).length;
var newNum = (num + 1);
if (num < 5) { //Límite 5 elementos
//Duplicamos el último elemento con la ID pasada.
var newElem = $('#' + id_elementos + num).clone().attr('id', id_elementos + newNum).attr('value', '').fadeIn(250);
newElem.children(':last').attr('id', 'name' + newNum).attr('name', 'name' + newNum);
$('#' + id_elementos + num).after(newElem);
} else {
alert("No se pueden añadir más registros");
}
}
// Muestra las distintas alarmas de usuario al clicar sobre
// caja de usuario.
function muestra_alarmas_usuario(id_elemento) {
if ($("#" + id_elemento).hasClass('usuario_alarmas_box_mostrar')) {
//Esconder.
$("#" + id_elemento).removeClass("usuario_alarmas_box_mostrar");
// $("#usuario_1").css('height', '30px');
} else {
//Mostrar.
$("#" + id_elemento).addClass("usuario_alarmas_box_mostrar");
// $("#usuario_1").css('height','100px');
}
}
// Ejemplo:
// modificarFecha(-10) => restara 10 dias a la fecha actual
// modificarFecha(30) => añadira 30 dias a la fecha actual
function modificarFecha(days) {
milisegundos = parseInt(35 * 24 * 60 * 60 * 1000);
fecha = new Date();
day = fecha.getDate();
// el mes es devuelto entre 0 y 11
month = fecha.getMonth() + 1;
year = fecha.getFullYear();
// document.write("Fecha actual: "+);
//Obtenemos los milisegundos desde media noche del 1/1/1970
tiempo = fecha.getTime();
//Calculamos los milisegundos sobre la fecha que hay que sumar o restar...
milisegundos = parseInt(days * 24 * 60 * 60 * 1000);
//Modificamos la fecha actual
total = fecha.setTime(tiempo + milisegundos);
day = fecha.getDate();
month = fecha.getMonth() + 1;
year = fecha.getFullYear();
// document.write("Fecha modificada: "+day+"/"+month+"/"+year);
return year + "-" + month + "-" + day;
}
/**
* [ Resta o suma días a una fecha pasada]
* @param {[Sumar:10 Restar:-10]} days [Días a sumar o restar]
* @param {[2016-05-05]} fecha [Fecha de partida]
* @return {[2016-05-05]} [Devuelve la fecha con los días restados]
*/
function modificarFechaPasada(days, fecha) {
var fecha_temp = fecha.split("-");
// var min_temp = fecha_temp[2].split( " " );
var milisegundos = parseInt(35 * 24 * 60 * 60 * 1000);
var fecha = new Date(fecha_temp[0], (fecha_temp[1] - 1), fecha_temp[2], 00, 00, 00, 00);
// var fecha = new Date(fecha);
var day = fecha.getDate();
// el mes es devuelto entre 0 y 11
month = fecha.getMonth() + 1;
year = fecha.getFullYear();
// document.write("Fecha actual: "+);
//Obtenemos los milisegundos desde media noche del 1/1/1970
tiempo = fecha.getTime();
//Calculamos los milisegundos sobre la fecha que hay que sumar o restar...
milisegundos = parseInt(days * 24 * 60 * 60 * 1000);
//Modificamos la fecha actual
total = fecha.setTime(tiempo + milisegundos);
day = fecha.getDate();
month = fecha.getMonth() + 1;
year = fecha.getFullYear();
// document.write("Fecha modificada: "+day+"/"+month+"/"+year);
return year + "-" + ( month < 10 ? '0' : '' ) + month + "-" + ( day < 10 ? '0' : '' ) + day;
}
/**
* [Convierte una fecha de formato front (dd/mm/yyyy) a formato server (yyyy-mm-dd)]
* @param {dd/mm/yyyy} fecha [Fecha para convertir]
* @return {yyyy-mm-dd} [Devuelve la fecha convertida]
*/
function fechaToServer(fecha) {
var fecha_server = fecha.split("/");
fecha_server = fecha_server[2] + "-" + fecha_server[1] + "-" + fecha_server[0];
return fecha_server
}
/**
* [Convierte una fecha de formato server (yyyy/mm/dd) a formato usuario (front) (dd-mm-yyyy)]
* @param {yyyy-mm-dd} fecha [Fecha para convertir]
* @return {dd/mm/yyyy} [Devuelve la fecha convertida]
*/
function fechaToUser(fecha) {
var fecha_user = fecha.split("-");
fecha_user = fecha_user[2] + "/" + fecha_user[1] + "/" + fecha_user[0];
return fecha_user
}
/**
* [Convierte una fecha de formato server (yyyy/mm/dd) a formato usuario (front) (dd-mm-yyyy)]
* @param {yyyy-mm-dd 00:00:00} fecha [Fecha para convertir]
* @return {dd/mm/yyyy 00:00:00} [Devuelve la fecha convertida]
*/
function fechaHorasToUser(fecha) {
var fecha_user = fecha.split(" ");
var hora = fecha_user[1];
fecha_user = fecha_user[0].split("-");
fecha_user = fecha_user[2] + "/" + fecha_user[1] + "/" + fecha_user[0] + " " + hora;
return fecha_user
}
/**
* [Convierte una fecha en formato 'yyyy-mm-dd 00:00:00' 'dd/mm/yyyy 00h.']
* @param {yyyy-mm-dd 00:00:00} fecha [Fecha para convertir]
* @return {dd/mm/yyyy 00h.} [Devuelve la fecha convertida]
*/
function fechaConHoras(fecha) {
var fechaTemp = fechaHorasToUser(fecha);
fechaTemp = fechaTemp.split(":");
fechaReturn = fechaTemp[0] + fechaTemp[1] + fechaTemp[2] + "h.";
return fechaTemp;
}
function bloqueaEnergiaInicio() {
$.post("php_script/comprueba_energia.php")
.done(function (data) {
var datos = JSON.parse(data);
if (datos[0] == 0) {
//Electricidad
$("#electricidad_box").append("No contratado");
$("#mini3").addClass("box_energia_disabled");
$("#mini3>a").removeAttr("href");
} else {
$("#mini3").addClass("minibox_energia_color");
}
if (datos[1] == 0) {
//Gas
$("#gas_box").append("No contratado");
$("#mini2").addClass("box_energia_disabled");
$("#mini2>a").removeAttr("href");
} else {
$("#mini2").addClass("minibox_energia_color");
}
if (datos[2] == 0) {
//Agua
$("#agua_box").append("No contratado");
$("#mini1").addClass("box_energia_disabled");
$("#mini1>a").removeAttr("href");
} else {
$("#mini1").addClass("minibox_energia_color");
}
if (datos[3] == 0) {
//Vapor
$("#vapor_box").append("No contratado");
$("#mini4").addClass("box_energia_disabled");
$("#mini4>a").removeAttr("href");
} else {
$("#mini4").addClass("minibox_energia_color");
}
if (datos[4] == 0) {
//Temperatura
$("#temperatura_box").append("No contratado");
$("#mini5").addClass("box_energia_disabled");
$("#mini5>a").removeAttr("href");
} else {
$("#mini5").addClass("minibox_energia_color");
}
});
}
//Marca todos los checkbox de la clase pasada.
function marcar_todo(class_elementos) {
$("." + class_elementos).prop("checked", true);
}
//Desmarca todos los checkbox de la clase pasada.
function marcar_nada(class_elementos) {
$("." + class_elementos).prop("checked", false);
}
// Funciones para interacción con pantallas táctiles
// *Es necesario la librería Hammer.js
function dobletap(idelemento) {
var myElement = document.getElementById(idelemento);
var mc = new Hammer(myElement);
mc.on("doubletap", function (ev) {
alert(idlemento);
});
}
// /Funciones para interacción con pantallas táctiles
// Primera letra de cadena en mayúscula.
function primera_letra_mayuscula(string) {
return string.charAt(0).toUpperCase() + string.slice(1);
}
/*#############################################################*/
/*# POPUP ALL #*/
/*# --------------------------------------------------------- #*/
/*# -Descripción- #*/
/*# Clase para generar un popup que inutiliza el resto de la #*/
/*# pantalla. #*/
/*# #*/
/*#############################################################*/
var popoverfull = function () {
//Velocidad de animación
this.speed = 300;
// Ancho máximo del contenedor.
this.setMaxwidth = function (value) {
this.maxwidth = value;
}
//Z-index
this.z_index = 1000;
// Ancho máximo del contenedor.
this.setZindex = function (value) {
this.z_index = value;
}
this.setTitle = function (value) {
this.title = value;
}
// Código html del contenedor.
this.setContent = function (value) {
this.content = value;
}
this.showHeight = function () {
var alto_documento = $(window).height();
alert("El ato es: " + alto_documento + "px");
}
// Muestra el popover.
this.open = function () {
var alto = $(window).height();
if (!this.maxwidth) {
this.maxwidth = 500;
}
if (!this.content) {
this.content = "";
}
// Creación de html para popover.
var ventana = "";
ventana += "
";
ventana += "
";
ventana += "
";
ventana += "
";
ventana += "
" + this.title + "
";
ventana += "
";
ventana += this.content;
ventana += "";
ventana += "
";
// Añadir popover al principio del body.
$("body").prepend(ventana);
// Animación de persiana al mostrar popover.
$("#popoverfull").animate(
{'top': '0px'},
this.speed,
function () {
$("#popoverfull_close").fadeIn(500);
});
$("#popoverfull_close:hover").css({
width: '25px'
});
// Recalcular cambio alto al redimensionar navegador.
$(window).resize(function () {
var alto = $(window).height();
$("#popoverfull").height(alto);
});
// Ocultar scroll body.
$("body").css("overflow-y", "hidden");
// Botón para cerrar popover.
$("#popoverfull_close").click(function () {
close();
});
// Pulsar ESC para cerrar popover.
$(document).bind('keydown', function (e) {
if (e.which == 27) {
close();
};
});
}
var close = function () {
var alto = $(window).height();
$("#popoverfull_close").fadeOut();
$("#popoverfull").animate({'top': "-" + alto + 'px'}, this.speed, function () {
$("#popoverfull").remove();
$("body").css("overflow-y", "scroll");
});
}
// Cierra el popover.
this.close = function () {
cierre();
}
}
/*#############################################################*/
/*# Formatear número #*/
/*# --------------------------------------------------------- #*/
/*# -Descripción- #*/
/*# Pasamos un número y lo devuelve formateado: 1.000,11 #*/
/*# #*/
/*# #*/
/*#############################################################*/
function formatear_numero(numero) {
numero += '';
numero = numero.replace(".", ",");
x = numero.split('.');
x1 = x[0];
x2 = x.length > 1 ? ',' + x[1] : '';
var rgx = /(\d+)(\d{3})/;
while (rgx.test(x1)) {
x1 = x1.replace(rgx, '$1' + '.' + '$2');
}
return x1 + x2;
}
/**********************************
/*
/* Mantenemos la altura de la cabecera al 100% del body.
/*
/**********************************/
function altura_header() {
$('body').mutate('height', function () {
var body_height = $('body').height();
console.log('Body cambiado alto');
if (body_height > 580) {
// $('header').css('height', body_height);
console.log('Modificado tamaño');
}
});
}
/**********************************
/*
/* END
/*
/**********************************/
/**********************************
/*
/* Piloto indicador de estado: Pasamos id elemento y numero de estado.
/* 0:Good, 1:Regular, 2:Bad.
/**********************************/
function pilotoIndicadorEstador(idElemento, estado) {
switch (estado) {
case 0:
// Piloto verde.
$("#" + idElemento).addClass("pilotoIndicador_good");
$("#" + idElemento).removeClass("pilotoIndicador_regular");
$("#" + idElemento).removeClass("pilotoIndicador_bad");
$("#" + idElemento).removeClass("pilotoIndicador_alert");
break;
case 1:
// Piloto naranja.
$("#" + idElemento).addClass("pilotoIndicador_regular");
$("#" + idElemento).removeClass("pilotoIndicador_good");
$("#" + idElemento).removeClass("pilotoIndicador_bad");
$("#" + idElemento).removeClass("pilotoIndicador_alert");
break;
case 2:
// Piloto rojo.
$("#" + idElemento).addClass("pilotoIndicador_bad");
$("#" + idElemento).removeClass("pilotoIndicador_good");
$("#" + idElemento).removeClass("pilotoIndicador_regular");
$("#" + idElemento).removeClass("pilotoIndicador_alert");
break;
case 3:
// Piloto rojo parpadeando.
$("#" + idElemento).addClass("pilotoIndicador_alert");
$("#" + idElemento).removeClass("pilotoIndicador_good");
$("#" + idElemento).removeClass("pilotoIndicador_regular");
$("#" + idElemento).removeClass("pilotoIndicador_bad");
break;
default:
$("#" + idElemento).removeClass("pilotoIndicador_alert");
$("#" + idElemento).removeClass("pilotoIndicador_good");
$("#" + idElemento).removeClass("pilotoIndicador_regular");
$("#" + idElemento).removeClass("pilotoIndicador_bad");
}
}
/**********************************
/*
/* END
/*
/**********************************/
/**
* Pide confirmación para mostrar el informe de estado
*/
function confirmShowInformeEstadoGestion(){
var response = confirm("¿ Desea generar informe de estado de la aplicacion ?");
if (response){
window.location.href = "https://app.enerlike.com/gestion/informe_estado";
}
}