Gestionando contenido Javascript (js::_addJS)
Se ha añadido un nuevo contenido javascript (en una ruta local) entre las etiquetas: "
<head>" y "
</head>" de la página: "
Nosotros (2)" a través del método: "
js::_addJS".
[ Nivel: 7 | Función: js::_addJS('
function msgErrorpopUp(tit, txt, myid, btcallback, oncreate_callback){
if(typeof tit === \'undefined\' || tit === \'\'){ var tit = txtErrorTitle;}
if(typeof txt === \'undefined\' || txt === \'\'){ var txt = txtErrorText; }
if(typeof btcallback === \'undefined\' || btcallback === \'\'){ var btcallback = \'\'; }
if(typeof oncreate_callback === \'undefined\' || oncreate_callback === \'\'){ var oncreate_callback = \'\'; }
if(typeof myid === \'undefined\' || myid === \'\'){ var myid = \'errorpopup\'; }
return msgpopUp(\'\', \'\\x3Ch1>\\x3Ci class="fas fa-times-circle fa-lg">\\x3C/i> \' + tit + \'\\x3C/h1>\\x3Cbr />\' + txt, myid, \'error\', false, \'\', btcallback, oncreate_callback);
}
function msgOkpopUp(tit, txt, myid, btcallback, oncreate_callback){
if(typeof tit === \'undefined\' || tit === \'\'){ var tit = txtOkTitle;}
if(typeof txt === \'undefined\' || txt === \'\'){ var txt = txtOkText; }
if(typeof btcallback === \'undefined\' || btcallback === \'\'){ var btcallback = \'\'; }
if(typeof oncreate_callback === \'undefined\' || oncreate_callback === \'\'){ var oncreate_callback = \'\'; }
if(typeof myid === \'undefined\' || myid === \'\'){ var myid = \'okpopup\'; }
return msgpopUp(\'\', \'\\x3Ch1>\\x3Ci class="fas fa-check-circle fa-lg">\\x3C/i> \' + tit + \'\\x3C/h1>\\x3Cbr />\' + txt, myid, \'ok\', false, \'\', btcallback, oncreate_callback);
}
function msgInfopopUp(tit, txt, myid, btcallback, oncreate_callback){
if(typeof tit === \'undefined\' || tit === \'\'){ var tit = txtInfoTitle;}
if(typeof txt === \'undefined\' || txt === \'\'){ var txt = txtInfoText; }
if(typeof btcallback === \'undefined\' || btcallback === \'\'){ var btcallback = \'\'; }
if(typeof oncreate_callback === \'undefined\' || oncreate_callback === \'\'){ var oncreate_callback = \'\'; }
if(typeof myid === \'undefined\' || myid === \'\'){ var myid = \'infopopup\'; }
return msgpopUp(\'\', \'\\x3Ch1>\\x3Ci class="fas fa-info-circle fa-lg">\\x3C/i> \' + tit + \'\\x3C/h1>\\x3Cbr />\' + txt, myid, \'info\', false, \'\', btcallback, oncreate_callback);
}
function msgWarningpopUp(tit, txt, myid, btcallback, oncreate_callback){
if(typeof tit === \'undefined\' || tit === \'\'){ var tit = txtWarningTitle; }
if(typeof txt === \'undefined\' || txt === \'\'){ var txt = txtWarningText; }
if(typeof btcallback === \'undefined\' || btcallback === \'\'){ var btcallback = \'\'; }
if(typeof oncreate_callback === \'undefined\' || oncreate_callback === \'\'){ var oncreate_callback = \'\'; }
if(typeof myid === \'undefined\' || myid === \'\'){ var myid = \'warningpopup\'; }
return msgpopUp(\'\', \'\\x3Ch1>\\x3Ci class="fas fa-exclamation-triangle fa-lg">\\x3C/i> \' + tit + \'\\x3C/h1>\\x3Cbr />\' + txt, myid, \'warning\', false, \'\', btcallback, oncreate_callback);
}
function msgQuestionpopUp(tit, txt, myid, btcallback, oncreate_callback){
if(typeof tit === \'undefined\' || tit === \'\'){ var tit = txtQuestionTitle; }
if(typeof txt === \'undefined\' || txt === \'\'){ var txt = txtQuestionText; }
if(typeof btcallback === \'undefined\' || btcallback === \'\'){
var btcallback = [
// Botón ACEPTAR.
{
html: \'<i class="fas fa-check"><!----></i> \' + txtQuestionYes,
class: \'ok\',
click: function(e){ return true; }
},
// Botón CANCELAR.
{
html: \'<i class="fas fa-ban"><!----></i> \' + txtQuestionNo,
class: "cancel",
click: function(e){ return false; }
}
];
}
if(typeof oncreate_callback === \'undefined\' || oncreate_callback === \'\'){ var oncreate_callback = \'\'; }
if(typeof myid === \'undefined\' || myid === \'\'){ var myid = \'questionpopup\'; }
return msgpopUp(\'\', \'\\x3Ch1>\\x3Ci class="far fa-question-circle fa-lg">\\x3C/i> \' + tit + \'\\x3C/h1>\\x3Cbr />\' + txt, myid, \'question\', false, \'\', btcallback, oncreate_callback);
}
// prependClass
function prependClass(a,s){var r=jQuery(a),t=r.attr("class");t=s+" "+t,r.attr("class",t)}
// str_replace()
function str_replace($f, $r, $s){return $s.replace(new RegExp("(" + (typeof($f) == "string" ? $f.replace(/[.?*+^$[\\]\\\\(){}|-]/g, "\\\\$&") : $f.map(function(i){return i.replace(/[.?*+^$[\\]\\\\(){}|-]/g, "\\\\$&")}).join("|")) + ")", "g"), typeof($r) == "string" ? $r : typeof($f) == "string" ? $r[0] : function(i){ return $r[$f.indexOf(i)]});}
// Redirije hacia una URL.
function gotoURL(u,n){if(n===1){window.open(u)}else{$(\'body\').css("cursor", "wait"); window.location=u}}
// Función para copiar al portapapeles.
function setClipboardText(e,t){var n=document.getElementById(t);if(!n){var o=document.createElement("textarea");o.id=t,o.style.position="fixed",o.style.top=0,o.style.left=0,o.style.width="1px",o.style.height="1px",o.style.padding=0,o.style.border="none",o.style.outline="none",o.style.boxShadow="none",o.style.background="transparent",document.querySelector("body").appendChild(o),n=document.getElementById(t)}n.value=e,n.select(),n.setSelectionRange(0,99999),document.execCommand("copy")}
// strip_tags()
function strip_tags(e,n){return e.replace(new RegExp("<(?!/?("+n.join("|")+"))\\\\w*[^<>]*>","gi"),"").replace(new RegExp("(<"+n.join("|")+")[^<>]*","gi"),"$1")}
// in_array()
function in_array(r,n){n.length;for(var i in n)if(n[i]==r)return!0;return!1}
// Valida una URL.
function validURL(str){
var pattern = new RegExp(\'^(https?:\\\\/\\\\/)?\'+ // protocol
\'((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|\'+ // domain name
\'((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))\'+ // OR ip (v4) address
\'(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*\'+ // port and path
\'(\\\\?[;&a-z\\\\d%_.~+=-]*)?\'+ // query string
\'(\\\\#[-a-z\\\\d_]*)?$\',\'i\'); // fragment locator
return !!pattern.test(str);
}
// Valida una URL relativa.
function validRelative(str){
var pattern = new RegExp(\'(\\/[a-zA-Z0-9_\\-]+)*\\/?$\',\'i\');
return !!pattern.test(str);
}
// Agrega el estilo \'forms.css\'
function loadFormsCSS(){
// Agrega el estilo \'forms.css\'
if($(\'link[href*="forms.css"]\').length === 0){
$(\'head:not(:has(iframe))\').append(\'\\x3Clink id="formscss" rel="stylesheet" href="\' + web_css_dir
+ \'forms/forms.css" />\');
return true;
}
return false;
}
// Mensaje en popUp
function msgpopUp(mytitle, mytext, myid, type, clickout, btnid, btns_callback, oncreate_callback){
// Agrega el estilo \'forms.css\'
// Comentado por entrar en conflicto con campo de formulario tinymce.
loadFormsCSS();
// Genera un ID automático.
if(typeof myid === \'undefined\'){ var myid = \'popupmsg_\' + Math.random() * (1000 - 10) + 10; }
// En caso de que no exista el diálogo y deba ser creado.
if(myid.length === 0 || $(\'#\' + myid).length === 0){
// Añade el div.
$(\'body\').append(
\'\\x3Cdiv id="\' + myid + \'" style="display:none;">\\x3Cdiv class="msg_\'
+ type + \'_title">\'
+ mytitle + \'\\x3C/div>\\x3Cdiv class="msg_\' + type + \'_text">\'
+ mytext + \'\\x3C/div>\\x3C/div>\');
}
// Al redimensionar la ventana.
$(window).resize(function(){
if($(\'#\' + myid).is(":hidden")){ return; }
$(\'#\' + myid).dialog(
\'option\', \'position\',
{my: \'center\', at: \'center\', of: window}
);
});
// Se comprueba si se ha especificado título.
if(mytitle === \'\'){
var showbar = false;
}else{
var showbar = true;
}
// En caso de ser una pregunta.
if(type === \'question\'){
var clickout = false;
} else if(type === \'error\'){
if("vibrate" in navigator){ navigator.vibrate([200, 100, 200]); }
}
// Recoge el texto del botón antes de cambiar, para que en caso de
// cancelar, vuelva a su estado natural.
if(btnid.length !== 0){
var mybtnprevhtml = $(\'#\' + btnid).html();
}
// Se comprueba si se han recibido botones.
if(btns_callback != \'\'){
// Reinicializa los botones.
myButtons = {};
//myButtons = btns_callback;
// Bucle para examinar los botones.
// 0 - b0
$.each(btns_callback, function(key, cback){
// Se comprueba si se ha especificado algún nombre de función.
if(cback.length <= 0){ return true; }
// Comprueba si la función existe.
if(typeof cback === "function"){
// Obtiene el texto del botón a través de la propia función.
var btntext = cback(\'text\');
// No se obtuvo el texto. Texto por defecto.
if(btntext === undefined || btntext.length <= 0){
btntext = \'button\' + key;
}
myButtons[btntext] = {
html: btntext,
click: function(e){
// Destruye el diálogo y vuelve a modificar el texto
// del botón al original.
var diag = $(this);
var cl = \'.\' + e.currentTarget.classList[0];
$(cl).addClass("pressed");
$(diag).parent().addClass("animate__animated animate__fadeOut");
$(".ui-widget-overlay").fadeOut(500);
$(this).parent().fadeOut(500, function(e){
$(diag).dialog(\'destroy\');
});
if(typeof mybtnprevhtml !== \'undefined\'){
$(\'#\' + btnid).html(mybtnprevhtml);
}
// Ejecuta la función callback para este botón.
//cback();
}
};
// Se comprueba si es un objeto.
}else if(typeof cback === "object"){
// Mantiene el resto de los atributos del objeto.
myButtons[key] = cback;
// Se comprueba si existe una función.
if(typeof cback.click === "function"){
// Copia la función existente.
var fnct = cback.click;
}else{
// Función vacía.
var fnct = function(){};
}
// Crea el botón.
myButtons[key].click = function(e){
// Ejecuta la función callback para este botón.
fnct();
// Destruye el diálogo y vuelve a modificar el texto del
// botón al original.
var diag = $(this);
var cl = \'.\' + e.currentTarget.classList[0];
$(cl).addClass("pressed");
// Indica si se debe cerrar.
if(typeof myButtons[key].noclose === \'undefined\' || myButtons[key].noclose === false){
$(diag).parent().addClass("animate__animated animate__fadeOut");
$(".ui-widget-overlay").fadeOut(500);
$(this).parent().fadeOut(500, function(e){
$(diag).dialog(\'destroy\');
});
if(typeof mybtnprevhtml !== \'undefined\'){
$(\'#\' + btnid).html(mybtnprevhtml);
}
}
};
// Ni función ni objeto.
}else{
myButtons[cback] = cback;
}
});
}else{
// Botón por defecto.
var myButtons = {
cerrar:{
html: txtClose,
click: function(e){
var diag = $(this);
$(diag).parent().addClass("animate__animated animate__fadeOut");
// Destruye el diálogo y vuelve a modificar el texto
// del botón al original.
$(".ui-widget-overlay").fadeOut(500);
$(diag).parent().fadeOut(500, function(e){
$(diag).dialog(\'destroy\');
});
if(btnid !== \'\'){
$(\'#\' + btnid).html(mybtnprevhtml);
}
}
}
};
}
// Espera unos segundos en caso necesario antes de mostrar el mensaje.
setTimeout(() => {
$(\'#\' + myid).dialog({
title: mytitle,
dialogClass: \'animate__animated animate__fadeIn msg_\' + type,
width:\'auto\',
maxwidth:\'95%\',
minwidth:\'320\',
height:\'auto\',
minheight:\'auto\',
modal:true,
clickOut:clickout,
responsive:true,
autoOpen:true,
autoResize:false,
cache:false,
closeOnEscape: true,
showTitleBar:showbar,
showCloseButton:false,
position:{my: "center", at: "center", of: $("body"), within: $("body")},
resizable:false,
beforeClose: function(){
$(\'#\' + myid).parent().addClass("animate__fadeOut");
},
close: function(){
$(this).dialog(\'destroy\');
},
open: function(){
window.dispatchEvent(new Event(\'resize\'));
$(this).animate({scrollTop: 0 }, 0);
},
buttons: myButtons,
// This runs when the dialog is initialized.
create: function(){
if(oncreate_callback instanceof Function){
oncreate_callback();
}else{
runJS(oncreate_callback);
}
// Renderiza todo el HTML que exista dentro del contenido
// de los botones.
var btntxt = $(this).parent().find(\'.ui-button\');
//$.each(btntxt, function(e){ $(this).html($(this).text()); });
//if(typeof btns_callback === "undefined"){
// $(btntxt).eq(0).prepend("\\x3Ci class=\\"fas fa-check\\">\\x3C/i> ");
//}
// Activa el modo pulsado en botones.
$("button, input[type=button], input[type=submit], .btn-danger, a.button").on("mousedown touchstart", function(e){
$(this).addClass("pressed");
// Desactiva el modo pulsado en botones.
}).on("mouseup mouseout touchend", function(e){
// Elimina la clase \'pressed\' únicamente si el botón no se encuentra desactivado.
if(typeof $(this).attr("disabled") === \'undefined\' && !$(this).hasClass("disabled")){
$(this).removeClass("pressed");
}
});
// Deshabilita el menú contexto.
$("a.button, button, input[type=button], input[type=submit], input[type=reset], .btn-danger").on("contextmenu", function(e){
e.preventDefault();
return false;
});
}
});
}, 0);
}
function ajaxRun(selector, values, callbackfunction, datatype, cache){
// Agrega el estilo \'forms.css\'
loadFormsCSS();
if(typeof cache == "undefined" || cache == \'\'){ cache = false;}
if(typeof datatype == "undefined" || datatype == \'\' || datatype != \'json\'){ datatype = \'html\';}
if(!(\'id\' in values) || values.id === \'\'){
values.id = web_id_page;
}
if(!(\'lang\' in values) || values.lang === \'\'){
values.lang = web_language;
}
if(!(\'mods\' in values) || values.mods === \'\'){
values.mods = \'\';
}
if(!(\'url\' in values) || values.url === \'\'){
var url = \'\';
if(!(\'ajax\' in values)){ values.ajax = \'mods\'; }
}else{
var url = \'\';
if(!(\'ajax\' in values)){ values.ajax = \'popups\'; }
values.fileajax = values.url;
}
values._ajaxjsfl = js_files_loaded;
values._ajaxcssfl = css_files_loaded;
var request = $.ajax({
url: url,
type: \'post\',
data: values,
cache: cache,
dataType: datatype,
beforeSend: function(data){
// Cambia el modo del cursor.
ajaxCursorBefore = $(\'body\').css("cursor");
$(\'body\').css("cursor", "progress");
// Elimina la capa de loading ajax.
$(\'.loading_ajax, .loading_ajax_iframe\').remove();
// Se comprueba si existe selector.
if($(selector).length != 0){
// Crea la capa de loading ajax.
if(!(\'loading\' in values) || values.loading == \'full\'){
$(selector).prepend(divLoading);
// Hace aparecer la capa de loading ajax.
setTimeout(() => {
$(\'.loading_ajax\').fadeIn();
}, 300);
}else if(\'loading\' in values){
// Antes del marco.
if(values.loading == \'iframe_prepend\'){
// Muestra el loading en el marco seleccionado.
$(selector).prepend(divLoadingIframe);
// Después del marco.
}else if(values.loading == \'iframe_append\'){
// Muestra el loading en el marco seleccionado.
$(selector).append(divLoadingIframe);
}else{
// Muestra el loading en el marco seleccionado.
$(selector).html(divLoadingIframe);
}
// Hace aparecer la capa de loading ajax.
setTimeout(() => {
$(\'.loading_ajax_iframe\').fadeIn();
}, 300);
}
}
}
});
// Siempre que se procesa.
request.always(function(data, textStatus, infoStatus){
// Recupera el estado del cursor.
setTimeout(() => {
$(\'body\').css("cursor", "auto");
}, 500);
// Elimina la capa de loading ajax.
$(\'.loading_ajax, .loading_ajax_iframe\').remove();
if(data === \'undefined\'){
return;
}else if(datatype == \'html\'){
var obj = JSON.parse(data);
}else{
var obj = data;
}
// Mensaje del resultado del proceso en la consola javascript.
if(typeof web_debug !== \'undefined\' && web_debug != 0){
console.log(txtOkTitle + \': \' + textStatus, infoStatus);
}
// Pide redirigir a una URL.
if(typeof obj.url !== "undefined" && obj.url !== \'\'){
$(\'body\').css("cursor", "wait");
setTimeout(() => { window.location = obj.url; }, 0);
}else if(obj.ok === 1){
// El proceso fue correcto.
// Reemplazar el contenido.
if(typeof obj.replace !== \'undefined\'){
// Reemplaza el contenido actual.
$(selector).hide();
$(selector).html($.parseHTML(decodeURI(obj.html)));
$(selector).fadeIn(500, function(e){ });
// Agregar antes del contenido actual.
}else if(typeof obj.prepend !== \'undefined\'){
// Agrega antes del contenido actual.
$(selector).prepend(obj.html);
}else{
// Agrega después del contenido actual.
$(selector).append(obj.html);
}
// Se comprueba si existe algún script.
if(obj.js !== \'\' && (typeof obj.js !== \'undefined\')){
runJS(obj.js);
}
if(callbackfunction instanceof Function){
callbackfunction(values);
}else{
runJS(callbackfunction);
}
}else{
if(obj.js !== \'\' && (typeof obj.js !== \'undefined\')){
runJS(obj.js);
}else{
if(typeof obj.html !== \'undefined\' && obj.html.length != 0){
// Reemplazar el contenido.
if(typeof obj.replace !== \'undefined\'){
// Reemplaza el contenido actual.
$(selector).fadeOut(2500, function(e){
$(selector).html($.parseHTML(decodeURI(obj.html)));
$(selector).fadeIn(2500, function(e){
});
});
// Agregar antes del contenido actual.
}else if(typeof obj.prepend !== \'undefined\'){
// Agrega antes del contenido actual.
$(selector).prepend(obj.html);
}else{
// Agrega después del contenido actual.
$(selector).append(obj.html);
}
}
// Mensaje del resultado del proceso en la consola javascript.
if(typeof web_debug !== \'undefined\' && web_debug != 0
&& obj.error !== \'\' && (typeof obj.error !== \'undefined\')){
// Mensaje para consola.
console.log(txtErrorTitle + \': \' + obj.error);
// Con mensaje para modo desarrollo.
msgErrorpopUp(txtErrorTitle, txtErrorText +
\'\\x3Cbr />\\x3Ch2>\' + txtOnlyDev + \'\\x3C/h2>\' + obj.error);
}else{
// Título del error personalizado.
if(typeof obj.title === \'undefined\'){
obj.title = txtErrorTitle;
}
// Texto del error personalizado.
if(typeof obj.text === \'undefined\'){
obj.text = txtErrorText;
}
// Mensaje de error general al usuario.
msgErrorpopUp(obj.title, obj.text);
}
}
}
});
// El proceso ha fallado.
request.fail(function(jqXHR, textStatus, infoStatus){
// Recupera el estado del cursor.
setTimeout(() => {
$(\'body\').css("cursor", "auto");
}, 500);
// Mensaje del resultado del proceso en la consola javascript.
if(typeof web_debug !== \'undefined\' && web_debug != 0){
// Mensaje para consola.
console.log(txtErrorTitle + \': \' + textStatus, infoStatus);
// Con mensaje para modo desarrollo.
msgErrorpopUp(txtErrorTitle, txtErrorText +
\'\\x3Cbr />\\x3Ch2>\' + txtOnlyDev + \'\\x3C/h2>\' + textStatus);
}else{
// Muestra mensaje de error.
msgErrorpopUp();
}
});
}
// Ejecuta código JS.
function runJS(code){
// Se comprueba si se envió código.
if(typeof code === "undefined" || code === null || code === \'\'){ return false; }
// Elimina el nodo en caso de que exista.
if(document.getElementById("ajaxJS") !== null){
var elem = document.getElementById("ajaxJS");
elem.parentNode.removeChild(elem);
}
// Creamos el elemento.
var s = document.createElement("script");
s.id = "ajaxJS";
s.type = "text/javascript";
s.textContent = code;
document.body.appendChild(s);
}
// Scroll hacia selector.
function scrollTo(s, margin){
if(typeof margin == "undefined"){
margin = 0;
}else{
margin = parseInt(margin);
}
var nav = $(s);
if(nav.length){
$("html, body").animate({
scrollTop: nav.position().top - margin
}, 800, \'swing\',
function(){ nav.addClass(\'animate__animated animate__pulse\'); });
}
}
// Carga contenido javascript desde el código en lugar de desde
function loadJSFile(file){
var s = document.createElement("script");
s.type = "text/javascript";
s.src = file;
document.body.appendChild(s);
}
// hasScrollBar
(function($){$.fn.hasScrollBar=function(){var e=this.get(0);return{vertical:e.scrollHeight>e.clientHeight,horizontal:e.scrollWidth>e.clientWidth};};})(jQuery);
// Base64
"use strict";jQuery.base64=(function($){var _PADCHAR="=",_ALPHA="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",_VERSION="1.0";function _getbyte64(s,i){var idx=_ALPHA.indexOf(s.charAt(i));if(idx===-1){throw"Cannot decode base64"}return idx}function _decode(s){var pads=0,i,b10,imax=s.length,x=[];s=String(s);if(imax===0){return s}if(imax%4!==0){throw"Cannot decode base64"}if(s.charAt(imax-1)===_PADCHAR){pads=1;if(s.charAt(imax-2)===_PADCHAR){pads=2}imax-=4}for(i=0;i<imax;i+=4){b10=(_getbyte64(s,i)<<18)|(_getbyte64(s,i+1)<<12)|(_getbyte64(s,i+2)<<6)|_getbyte64(s,i+3);x.push(String.fromCharCode(b10>>16,(b10>>8)&255,b10&255))}switch(pads){case 1:b10=(_getbyte64(s,i)<<18)|(_getbyte64(s,i+1)<<12)|(_getbyte64(s,i+2)<<6);x.push(String.fromCharCode(b10>>16,(b10>>8)&255));break;case 2:b10=(_getbyte64(s,i)<<18)|(_getbyte64(s,i+1)<<12);x.push(String.fromCharCode(b10>>16));break}return x.join("")}function _getbyte(s,i){var x=s.charCodeAt(i);if(x>255){throw"INVALID_CHARACTER_ERR: DOM Exception 5"}return x}function _encode(s){if(arguments.length!==1){throw"SyntaxError: exactly one argument required"}s=String(s);var i,b10,x=[],imax=s.length-s.length%3;if(s.length===0){return s}for(i=0;i<imax;i+=3){b10=(_getbyte(s,i)<<16)|(_getbyte(s,i+1)<<8)|_getbyte(s,i+2);x.push(_ALPHA.charAt(b10>>18));x.push(_ALPHA.charAt((b10>>12)&63));x.push(_ALPHA.charAt((b10>>6)&63));x.push(_ALPHA.charAt(b10&63))}switch(s.length-imax){case 1:b10=_getbyte(s,i)<<16;x.push(_ALPHA.charAt(b10>>18)+_ALPHA.charAt((b10>>12)&63)+_PADCHAR+_PADCHAR);break;case 2:b10=(_getbyte(s,i)<<16)|(_getbyte(s,i+1)<<8);x.push(_ALPHA.charAt(b10>>18)+_ALPHA.charAt((b10>>12)&63)+_ALPHA.charAt((b10>>6)&63)+_PADCHAR);break}return x.join("")}return{decode:_decode,encode:_encode,VERSION:_VERSION}}(jQuery));
// MD5
var MD5 = function(d){result = M(V(Y(X(d),8*d.length)));return result.toLowerCase()};function M(d){for(var _,m="0123456789ABCDEF",f="",r=0;r<d.length;r++)_=d.charCodeAt(r),f+=m.charAt(_>>>4&15)+m.charAt(15&_);return f}function X(d){for(var _=Array(d.length>>2),m=0;m<_.length;m++)_[m]=0;for(m=0;m<8*d.length;m+=8)_[m>>5]|=(255&d.charCodeAt(m/8))<<m%32;return _}function V(d){for(var _="",m=0;m<32*d.length;m+=8)_+=String.fromCharCode(d[m>>5]>>>m%32&255);return _}function Y(d,_){d[_>>5]|=128<<_%32,d[14+(_+64>>>9<<4)]=_;for(var m=1732584193,f=-271733879,r=-1732584194,i=271733878,n=0;n<d.length;n+=16){var h=m,t=f,g=r,e=i;f=md5_ii(f=md5_ii(f=md5_ii(f=md5_ii(f=md5_hh(f=md5_hh(f=md5_hh(f=md5_hh(f=md5_gg(f=md5_gg(f=md5_gg(f=md5_gg(f=md5_ff(f=md5_ff(f=md5_ff(f=md5_ff(f,r=md5_ff(r,i=md5_ff(i,m=md5_ff(m,f,r,i,d[n+0],7,-680876936),f,r,d[n+1],12,-389564586),m,f,d[n+2],17,606105819),i,m,d[n+3],22,-1044525330),r=md5_ff(r,i=md5_ff(i,m=md5_ff(m,f,r,i,d[n+4],7,-176418897),f,r,d[n+5],12,1200080426),m,f,d[n+6],17,-1473231341),i,m,d[n+7],22,-45705983),r=md5_ff(r,i=md5_ff(i,m=md5_ff(m,f,r,i,d[n+8],7,1770035416),f,r,d[n+9],12,-1958414417),m,f,d[n+10],17,-42063),i,m,d[n+11],22,-1990404162),r=md5_ff(r,i=md5_ff(i,m=md5_ff(m,f,r,i,d[n+12],7,1804603682),f,r,d[n+13],12,-40341101),m,f,d[n+14],17,-1502002290),i,m,d[n+15],22,1236535329),r=md5_gg(r,i=md5_gg(i,m=md5_gg(m,f,r,i,d[n+1],5,-165796510),f,r,d[n+6],9,-1069501632),m,f,d[n+11],14,643717713),i,m,d[n+0],20,-373897302),r=md5_gg(r,i=md5_gg(i,m=md5_gg(m,f,r,i,d[n+5],5,-701558691),f,r,d[n+10],9,38016083),m,f,d[n+15],14,-660478335),i,m,d[n+4],20,-405537848),r=md5_gg(r,i=md5_gg(i,m=md5_gg(m,f,r,i,d[n+9],5,568446438),f,r,d[n+14],9,-1019803690),m,f,d[n+3],14,-187363961),i,m,d[n+8],20,1163531501),r=md5_gg(r,i=md5_gg(i,m=md5_gg(m,f,r,i,d[n+13],5,-1444681467),f,r,d[n+2],9,-51403784),m,f,d[n+7],14,1735328473),i,m,d[n+12],20,-1926607734),r=md5_hh(r,i=md5_hh(i,m=md5_hh(m,f,r,i,d[n+5],4,-378558),f,r,d[n+8],11,-2022574463),m,f,d[n+11],16,1839030562),i,m,d[n+14],23,-35309556),r=md5_hh(r,i=md5_hh(i,m=md5_hh(m,f,r,i,d[n+1],4,-1530992060),f,r,d[n+4],11,1272893353),m,f,d[n+7],16,-155497632),i,m,d[n+10],23,-1094730640),r=md5_hh(r,i=md5_hh(i,m=md5_hh(m,f,r,i,d[n+13],4,681279174),f,r,d[n+0],11,-358537222),m,f,d[n+3],16,-722521979),i,m,d[n+6],23,76029189),r=md5_hh(r,i=md5_hh(i,m=md5_hh(m,f,r,i,d[n+9],4,-640364487),f,r,d[n+12],11,-421815835),m,f,d[n+15],16,530742520),i,m,d[n+2],23,-995338651),r=md5_ii(r,i=md5_ii(i,m=md5_ii(m,f,r,i,d[n+0],6,-198630844),f,r,d[n+7],10,1126891415),m,f,d[n+14],15,-1416354905),i,m,d[n+5],21,-57434055),r=md5_ii(r,i=md5_ii(i,m=md5_ii(m,f,r,i,d[n+12],6,1700485571),f,r,d[n+3],10,-1894986606),m,f,d[n+10],15,-1051523),i,m,d[n+1],21,-2054922799),r=md5_ii(r,i=md5_ii(i,m=md5_ii(m,f,r,i,d[n+8],6,1873313359),f,r,d[n+15],10,-30611744),m,f,d[n+6],15,-1560198380),i,m,d[n+13],21,1309151649),r=md5_ii(r,i=md5_ii(i,m=md5_ii(m,f,r,i,d[n+4],6,-145523070),f,r,d[n+11],10,-1120210379),m,f,d[n+2],15,718787259),i,m,d[n+9],21,-343485551),m=safe_add(m,h),f=safe_add(f,t),r=safe_add(r,g),i=safe_add(i,e)}return Array(m,f,r,i)}function md5_cmn(d,_,m,f,r,i){return safe_add(bit_rol(safe_add(safe_add(_,d),safe_add(f,i)),r),m)}function md5_ff(d,_,m,f,r,i,n){return md5_cmn(_&m|~_&f,d,_,r,i,n)}function md5_gg(d,_,m,f,r,i,n){return md5_cmn(_&f|m&~f,d,_,r,i,n)}function md5_hh(d,_,m,f,r,i,n){return md5_cmn(_^m^f,d,_,r,i,n)}function md5_ii(d,_,m,f,r,i,n){return md5_cmn(m^(_|~f),d,_,r,i,n)}function safe_add(d,_){var m=(65535&d)+(65535&_);return(d>>16)+(_>>16)+(m>>16)<<16|65535&m}function bit_rol(d,_){return d<<_|d>>>32-_}
// ScrollTo
$.fn.scrollTo=function(elem, speed){$(this).animate({scrollTop: $(this).scrollTop() - $(this).offset().top + $(elem).offset().top}, speed==undefined ? 1000 : speed); return this;};
// Ui Dialog (extension)
$.ui.dialog.prototype.options.clickOut=!0,$.ui.dialog.prototype.options.responsive=!0,$.ui.dialog.prototype.options.scaleH=.8,$.ui.dialog.prototype.options.scaleW=.8,$.ui.dialog.prototype.options.showTitleBar=!0,$.ui.dialog.prototype.options.showCloseButton=!0;var _init=$.ui.dialog.prototype._init;$.ui.dialog.prototype._init=function(){_init.apply(this,arguments),$.ui&&$.ui.dialog&&$.ui.dialog.overlay&&($.ui.dialog.overlay.events=$.map("focus,keydown,keypress".split(","),function(o){return o+".dialog-overlay"}).join(" "))};var _open=$.ui.dialog.prototype.open;$.ui.dialog.prototype.open=function(){var o=this;_open.apply(this,arguments);var i=o.element.parent().outerHeight(),t=o.element.parent().outerWidth(),e=$("html").hasClass("touch"),s=function(){if(o.options.responsive===!0||"touch"===o.options.responsive&&e){var s=o.element,a=$(window).height(),n=$(window).width(),l=(s.parent().outerHeight(),s.parent().outerWidth(),Math.min(a*o.options.scaleH,i)),r=Math.min(n*o.options.scaleW,t);(i+100>a||s.hasClass("resizedH"))&&(s.dialog("option","height",l).parent().css("max-height",l),s.addClass("resizedH")),(t+100>n||s.hasClass("resizedW"))&&(s.dialog("option","width",r).parent().css("max-width",r),s.addClass("resizedW")),(s.hasClass("resizedH")||s.hasClass("resizedW"))&&(s.dialog("option","position","center"),s.css("overflow","auto"))}e&&s.css("-webkit-overflow-scrolling","touch")};s(),/*$(window).on("resize",s),*/o.element.on("dialogclose",function(){$(window).off("resize",s)}),window.addEventListener&&window.addEventListener("orientationchange",function(){s()}),o.options.showTitleBar||(o.uiDialogTitlebar.css({height:0,padding:0,background:"none",border:0}),o.uiDialogTitlebar.find(".ui-dialog-title").css("display","none")),o.options.showCloseButton||o.uiDialogTitlebar.find(".ui-dialog-titlebar-close").css("display","none"),o.options.clickOut&&!o.options.modal?($(\'\\x3Cdiv id="dialog-overlay">\\x3C/div>\').insertBefore(o.element.parent()),$("#dialog-overlay").css({position:"fixed",top:0,right:0,bottom:0,left:0,"background-color":"transparent"}),$("#dialog-overlay").click(function(i){i.preventDefault(),i.stopPropagation(),o.close()})):o.options.clickOut&&o.options.modal&&$(".ui-widget-overlay").click(function(i){o.close()})};var _close=$.ui.dialog.prototype.close;$.ui.dialog.prototype.close=function(){var o=this;_close.apply(this,arguments),o.options.dialogClass&&$(".ui-widget-overlay").removeClass(o.options.dialogClass),$("#dialog-overlay").length&&$("#dialog-overlay").remove()};
// jQuery.initialize
(function($){"use strict";var combinators=[" ",">","+","~"];var fraternisers=["+","~"];var complexTypes=["ATTR","PSEUDO","ID","CLASS"];function grok(msobserver){if(!$.find.tokenize){msobserver.isCombinatorial=true;msobserver.isFraternal=true;msobserver.isComplex=true;return}msobserver.isCombinatorial=false;msobserver.isFraternal=false;msobserver.isComplex=false;var token=$.find.tokenize(msobserver.selector);for(var i=0;i<token.length;i++){for(var j=0;j<token[i].length;j++){if(combinators.indexOf(token[i][j].type)!=-1)msobserver.isCombinatorial=true;if(fraternisers.indexOf(token[i][j].type)!=-1)msobserver.isFraternal=true;if(complexTypes.indexOf(token[i][j].type)!=-1)msobserver.isComplex=true}}}var MutationSelectorObserver=function(selector,callback,options){this.selector=selector.trim();this.callback=callback;this.options=options;grok(this)};var msobservers=[];msobservers.initialize=function(selector,callback,options){var seen=[];var callbackOnce=function(){if(seen.indexOf(this)==-1){seen.push(this);$(this).each(callback)}};$(options.target).find(selector).each(callbackOnce);var msobserver=new MutationSelectorObserver(selector,callbackOnce,options);this.push(msobserver);var observer=new MutationObserver(function(mutations){var matches=[];for(var m=0;m<mutations.length;m++){if(mutations[m].type=="attributes"){if(mutations[m].target.matches(msobserver.selector))matches.push(mutations[m].target);if(msobserver.isFraternal)matches.push.apply(matches,mutations[m].target.parentElement.querySelectorAll(msobserver.selector));else matches.push.apply(matches,mutations[m].target.querySelectorAll(msobserver.selector))}if(mutations[m].type=="childList"){for(var n=0;n<mutations[m].addedNodes.length;n++){if(!(mutations[m].addedNodes[n]instanceof Element))continue;if(mutations[m].addedNodes[n].matches(msobserver.selector))matches.push(mutations[m].addedNodes[n]);if(msobserver.isFraternal)matches.push.apply(matches,mutations[m].addedNodes[n].parentElement.querySelectorAll(msobserver.selector));else matches.push.apply(matches,mutations[m].addedNodes[n].querySelectorAll(msobserver.selector))}}}for(var i=0;i<matches.length;i++)$(matches[i]).each(msobserver.callback)});var defaultObeserverOpts={childList:true,subtree:true,attributes:msobserver.isComplex};observer.observe(options.target,options.observer||defaultObeserverOpts);return observer};$.fn.initialize=function(callback,options){return msobservers.initialize(this.selector,callback,$.extend({},$.initialize.defaults,options))};$.initialize=function(selector,callback,options){return msobservers.initialize(selector,callback,$.extend({},$.initialize.defaults,options))};$.initialize.defaults={target:document.documentElement,observer:null}})(jQuery);
/* Interface */
$(document).ready(function(){
update_icon = \'\\x3Ci class="fas fa-refresh fa-spin">\\x3C/i> \';
wait_icon = \'\\x3Ci class="fas fa-spinner fa-pulse">\\x3C/i> \';
// Click sobre un botón con una URL.
$(\'body\').on(\'click\', "button.link, input[type=button].link, button[value]:not([value=\'\'])", function(e){
e.preventDefault();
if($(this).attr(\'value\') && (validURL($(this).attr(\'value\')) || validRelative($(this).attr(\'value\')))){
var url = $(this).attr(\'value\');
}else{
return;
}
// Agrega la clase de botón pulsado.
$(this).addClass(\'pressed disabled\');
// Se comprueba si existe texto personalizado...
var txt = $(this).attr(\'rel\');
// Activa el texto por defecto...
if(txt === undefined){ var txt = txtSending; }
// Recoge el contenido de la etiqueta button.
var thisbtnprevHTML = $(this).html();
// Hace aparecer el texto \'Sending...\' acompañado de una animación
// dentro de la etiqueta button.
if(txt != \'\'){
$(this).html(wait_icon + txt);
}else{
//var ttt = thisbtnprevHTML.replace(/\\s+<i>?.*<\\/i>|\\s+/i, "");
var ttt = thisbtnprevHTML.replace(/\\s+<i>?.*<\\/\\i>|\\s+/i, "");
$(this).html(wait_icon + ttt);
}
// Se comprueba si se debe abrir en una pestaña nueva o en la misma.
if($(this).hasClass(\'_blank\')){
// Recupera el texto anterior sobre el botón.
$(this).html(thisbtnprevHTML);
// Redirige a la página indicada en una pestaña nueva...
gotoURL(url, 1);
}else{
// Inhabilita el botón.
$(this).addClass(\'disabled\').prop(\'disabled\', true);
// Redirige a la página indicada en la misma pestaña...
gotoURL(url, 0);
}
return;
});
// Activa el modo pulsado en botones.
$("button, input[type=button], input[type=submit], .btn-danger, a.button").on("mousedown touchstart", function(e){
// Agrega la clase \'pressed\'.
$(this).addClass("pressed");
}).on("mouseup mouseout touchend", function(e){
// Elimina la clase \'pressed\' únicamente si el botón no se encuentra
// desactivado.
if(typeof $(this).attr("disabled") === \'undefined\' && !$(this).hasClass("disabled")){
$(this).removeClass("pressed");
}
});
// Deshabilita el menú contexto.
$("a.button, button, input[type=button], input[type=submit], input[type=reset], .btn-danger").on("contextmenu", function(e){
e.preventDefault();
return false;
});
// Enlaces
// Comprueba si la ventana está arriba para sino mostrar el botón.
$(window).scroll(function(){
if($(this).scrollTop() > 100){
$(\'.scrollToTop\').addClass(\'animate__animated animate__bounceInUp\').removeClass(\'animate__rubberBand animate__bounceOutDown\').fadeIn();
}else{
$(\'.scrollToTop\').addClass(\'animate__animated animate__bounceOutDown\').removeClass(\'animate__bounceInUp\').fadeOut(500);
}
});
// Click para scroll hacia arriba.
$(\'.scrollToTop\').on(\'click\', function(){
$(\'html, body\').animate({scrollTop: 0}, 800);
return false;
});
// Suaviza el scroll cuando se dirige a una etiqueta.
$(\'a[href^="#"], .target\').on(\'click\', function(e){
var target = this.hash;
if(target === \'\'){ return true; }
e.preventDefault();
var $target = $(target);
$(target).removeClass(\'animate__animated animate__pulse\');
$(\'html, body\').stop().animate({
\'scrollTop\': $target.offset().top
}, 900, \'swing\', function(){
$(target).addClass(\'animate__animated animate__pulse\');
window.location.hash = target;
});
});
// Protege los emails.
$(\'a.protectEmail\').on(\'click, focus, mouseover\', function(){
$(this).prop(\'href\', $(this).prop(\'href\').replace(\'@@\',\'.\'));
});
// Abre el enlace seleccionado en un popUp.
$(document).on(\'click\', \'[class*="open_in_"]\', function(e){
e.preventDefault();
var title = $(this).prop(\'title\');
var btnid = $(this).prop(\'id\');
if(title === undefined){ var title = \'\'; }
var classList = $(this).prop(\'class\').split(/\\s+/);
$.each(classList, function(index, item){
if((item + \'\').indexOf(\'open_in_\', 0) !== -1){
var mysplit = item.replace(\'open_in_\', \'\').split(\'-\');
if(mysplit[0].length > 0){
var type = mysplit[0];
}else{
var type = \'popup\';
}
var btns_callback = [];
if(mysplit[2] !== undefined && mysplit[2].length > 0){
$.each(mysplit, function(index2, i){
if(index2 < 2){ return true; }
btns_callback.push(i);
});
}
// Crea el diálogo.
return msgpopUp(title, \'\', mysplit[1], type, true, btnid, btns_callback);
}
});
});
// Evita que los procesos de formulario mediante AJAX sean procesados de
// forma NORMAL en caso de errores graves en la sintaxis de jQuery.
$(document).on(\'click\', \'.processByAjax > form button[type=submit]\', function(e){
return false;
});
// Mensaje de confirmación.
$(\'body\').on(\'click\', \'a[class="confirm"]\', function(e){
e.preventDefault();
// Se recogen los valores de los atributos del enlace.
var id = $(this).attr(\'data-id\');
var link = $(this).attr(\'href\');
// Agrega el estilo \'forms.css\'
loadFormsCSS();
// Se asignan los valores por defecto.
var title = titlebak = "\\x3Ci class=\\"fas fa-question-circle fa-lg\\">\\x3C/i> " + txtQuestionTitle;
var text = textbak = txtQuestionText;
var buttonyes = buttonyesbak = txtQuestionYes;
var buttonyesicon = buttonyesiconbak = "";
var buttonyesclass = buttonyesclassbak = "alert";
var buttonyespulsed = buttonyespulsedbak = txtSending;
var buttonyescallback = buttonnocallback = "";
var buttonnopulsed = buttonnopulsedbak = txtSending;
var buttonno = buttonnobak = txtQuestionNo;
var buttonnoicon = buttonnoiconbak = "";
var buttonnoclass = buttonnoclassbak = "ok";
// Se comprueba si debemos crear un diálogo o utilizar uno.
if(typeof id === \'undefined\' || id.length === 0 || $("#" + id).length === 0){
// Creamos un diálogo automáticamente.
var id = "dialog_" + MD5(link);
var i = 1;
var titlebak = title;
var textbak = text;
var buttonyesbak = buttonyes;
var buttonnobak = buttonno;
// Se comprueba si el diálogo ya fue abierto.
if($("#" + id).length === 0){
// Cuadro de confirmación.
var confirm = \'\\x3Cdiv id="\' + id + \'" \' +
\'class="msg_question animate__animated animate__shake" \' +
\'style="display:none;z-index:999999999 !important;">\' +
\'\\x3Ch1 class="msg_question_title">\' + title + \'\\x3C/h1>\' +
\'\\x3Cp class="msg_question_text">\' + text + \'\\x3C/p>\' +
\'\\x3C/div>\';
// Agrega el div.
$(\'body\').append(confirm);
}
}else{
// Existe un diálogo a utilizar.
var i = 0;
// Recoge los valores iniciales.
$("#" + id).css({"z-index": "999999999 !important", "display": "none"});
// Título.
if(typeof $("#" + id + " > .msg_question_title") !== \'undefined\'){
var titlebak = $("#" + id + " > .msg_question_title").html();
}
// Mensaje.
if(typeof $("#" + id + " > .msg_question_text") !== \'undefined\'){
var textbak = $("#" + id + " > .msg_question_text").html();
}
// Botón Sí personalizado y predefinido.
if(typeof $("#" + id + " > .button-yes") !== \'undefined\'){
// Icono.
if(typeof $("#" + id + " > .button-yes > i").attr("class") !== \'undefined\'){
var buttonyesiconbak = $("#" + id + " > .button-yes > i").attr("class");
var btyi = buttonyesiconbak.split(" ");
if(typeof btyi[0] !== \'undefined\' && btyi[0] !== ""){
$("#" + id + " > .button-yes > ." + btyi[0]).remove();
}
}
// Valor.
var buttonyesbak = $("#" + id + " > .button-yes").html();
// Clase.
var bcy = $("#" + id + " > .button-yes").attr("class")
.replace("button-yes", "").trim();
if(bcy.length !== 0){ var buttonyesclassbak = bcy; }
// Modo pulsado.
if(typeof $("#" + id + " > .button-yes").attr("data-pulsed") !== \'undefined\'){
var buttonyespulsedbak = $("#" + id + " > .button-yes").attr("data-pulsed");
}
// Callback cuando se pulsa sobre el botón SI.
if(typeof $("#" + id + " > .button-yes").attr("data-callback") !== \'undefined\'){
var buttonyescallback = $("#" + id + " > .button-yes").attr("data-callback");
}
// Oculta el botón.
$("#" + id + " > .button-yes").hide();
}
// Botón NO personalizado y predefinido.
if(typeof $("#" + id + " > .button-no") !== \'undefined\'){
// Icono.
if(typeof $("#" + id + " > .button-no > i").attr("class") !== \'undefined\'){
var buttonnoiconbak = $("#" + id + " > .button-no > i").attr("class");
var btni = buttonnoiconbak.split(" ");
if(typeof btni[0] !== \'undefined\' && btni[0] !== ""){
$("#" + id + " > .button-no > ." + btni[0]).remove();
}
}
// Valor.
var buttonnobak = $("#" + id + " > .button-no").html();
// Clase.
var bcn = $("#" + id + " > .button-no").attr("class")
.replace("button-no", "").trim();
if(bcn.length !== 0){ var buttonnoclassbak = bcn; }
// Modo pulsado.
if(typeof $("#" + id + " > .button-no").attr("data-pulsed") !== \'undefined\'){
var buttonnopulsedbak = $("#" + id + " > .button-no").attr("data-pulsed");
}
// Callback cuando se pulsa sobre el botón NO.
if(typeof $("#" + id + " > .button-no").attr("data-callback") !== \'undefined\'){
var buttonnocallback = $("#" + id + " > .button-no").attr("data-callback");
}
// Oculta el botón.
$("#" + id + " > .button-no").hide();
}
}
// Se comprueba si se ha fijado un título en el atributo del enlace.
if(typeof $(this).attr("data-title") !== \'undefined\'){
// Valor especificado en atributo.
$("#" + id + " > .msg_question_title").html($(this).attr("data-title"));
// Se trata de un cuadro de diálogo pero no hay valor.
}else if(i === 0 && titlebak === 0){
// Valor por defecto en cuadro de diálogo personalizado.
$("#" + id + " > .msg_question_title").html(title);
}
// Se comprueba si se ha fijado un título en el atributo del enlace.
if(typeof $(this).attr("data-text") !== \'undefined\'){
// Valor especificado en atributo.
$("#" + id + " > .msg_question_text").html($(this).attr("data-text"));
// Se trata de un cuadro de diálogo pero no hay valor.
}else if(i === 0 && textbak === 0){
// Valor por defecto en cuadro de diálogo personalizado.
$("#" + id + " > .msg_question_text").html(text);
}
// Botón: Sí.
if(typeof $(this).attr("data-button-yes") !== \'undefined\'){
var buttonyes = $(this).attr("data-button-yes");
}else if(i === 0 && buttonyesbak.length !== 0){
var buttonyes = buttonyesbak;
}
// Botón Sí: class.
if(typeof $(this).attr("data-button-yes-class") !== \'undefined\'){
var buttonyesclass = $(this).attr("data-button-yes-class");
}else if(i === 0 && buttonyesclassbak.length !== 0){
var buttonyesclass = buttonyesclassbak;
}
// Botón Sí: icon.
if(typeof $(this).attr("data-button-yes-icon") !== \'undefined\'){
var buttonyesicon = $(this).attr("data-button-yes-icon");
}else if(i === 0 && buttonyesiconbak.length !== 0){
var buttonyesicon = buttonyesiconbak;
}
// Botón Sí: pulsed
if(typeof $(this).attr("data-button-yes-pulsed") !== \'undefined\'){
var buttonyespulsed = $(this).attr("data-button-yes-pulsed");
}else if(i === 0 && buttonyespulsedbak.length !== 0){
var buttonyespulsed = buttonyespulsedbak;
}
// Callback en botón Sí mediante atributo.
if(typeof $(this).attr("data-button-yes-callback") !== \'undefined\'){
var cbyesnow = $(this).attr("data-button-yes-callback");
// Callback general en cuadro de diálogo personalizado.
}else if(i === 0 && buttonyescallback.length !== 0){
var cbyesnow = buttonyescallback;
}
// Botón: No.
if(typeof $(this).attr("data-button-no") !== \'undefined\'){
var buttonno = $(this).attr("data-button-no");
}else if(i === 0 && buttonnobak.length !== 0){
var buttonno = buttonnobak;
}
// Botón No: class.
if(typeof $(this).attr("data-button-no-class") !== \'undefined\'){
var buttonnoclass = $(this).attr("data-button-no-class");
}else if(i === 0 && buttonnoclassbak.length !== 0){
var buttonnoclass = buttonnoclassbak;
}
// Botón No: icon.
if(typeof $(this).attr("data-button-no-icon") !== \'undefined\'){
var buttonnoicon = $(this).attr("data-button-no-icon");
}else if(i === 0 && buttonnoiconbak.length !== 0){
var buttonnoicon = buttonnoiconbak;
}
// Botón No: pulsed
if(typeof $(this).attr("data-button-no-pulsed") !== \'undefined\'){
var buttonnopulsed = $(this).attr("data-button-no-pulsed");
}else if(i === 0 && buttonnopulsedbak.length !== 0){
var buttonnopulsed = buttonnopulsedbak;
}
// Callback en botón No mediante atributo.
if(typeof $(this).attr("data-button-no-callback") !== \'undefined\'){
var cbnonow = $(this).attr("data-button-no-callback");
// Callback general en cuadro de diálogo personalizado.
}else if(i === 0 && buttonnocallback.length !== 0){
var cbnonow = buttonnocallback;
}
// ¿Se trata de un proceso AJAX?.
if(typeof $(this).attr("data-ajax") !== \'undefined\' || (i === 0 &&
$("#" + id + "").attr("data-ajax") == \'1\')){
var dataajax = 1;
}else{
var dataajax = 0;
}
// Espera unos milisegundos antes de mostrar en caso necesario.
setTimeout(() => {
// Abre el cuadro de diálogo.
$("#" + id).dialog({
dialogClass:"animate__animated animate__fadeIn msg_question",
title:title,
width:"auto",
maxWidth:600,
height:"auto",
minheight:"auto",
modal:true,
clickOut:false,
responsive:true,
autoOpen:true,
autoResize:true,
cache:false,
showTitleBar:false,
showCloseButton:false,
position:{my: "center", at: "center", of: window},
resizable:false,
// Antes de cerrar.
beforeClose:function(){
//$(\'#\' + id).parent().addClass("animate__fadeOut");
// Devuelve todo a su estado original.
$("#" + id + " > .msg_question_title").html(titlebak);
$("#" + id + " > .msg_question_text").html(textbak);
// Icono del botón: Sí.
if(i === 0 && buttonyesclassbak.length !== 0){
$("#" + id + " > .button-yes").prepend(\'\\x3Ci class="\'
+ buttonyesiconbak + \'">\\x3C/i> \');
}
// Icono del botón: No.
if(i === 0 && buttonnoclassbak.length !== 0){
$("#" + id + " > .button-no").prepend(\'\\x3Ci class="\'
+ buttonnoiconbak + \'">\\x3C/i> \');
}
},
// Al abrir.
open: function(){
if(buttonyesicon !== \'\'){ buttonyesicon = \'\\x3Ci class="\' + buttonyesicon + \'">\\x3C/i> \'; }
$("." + id + "_btn_1").button("option", "label", buttonyesicon + buttonyes);
if(buttonnoicon !== \'\'){ buttonnoicon = \'\\x3Ci class="\' + buttonnoicon + \'">\\x3C/i> \'; }
$("." + id + "_btn_2").button("option", "label", buttonnoicon + buttonno);
// Activa el modo pulsado en botones.
$("button, input[type=button], input[type=submit], .btn-danger, a.button").on("mousedown touchstart", function(e){
$(this).addClass("pressed");
// Desactiva el modo pulsado en botones.
}).on("mouseup mouseout touchend", function(e){
// Elimina la clase \'pressed\' únicamente si el botón no se encuentra desactivado.
if(typeof $(this).attr("disabled") === \'undefined\' && !$(this).hasClass("disabled")){
$(this).removeClass("pressed");
}
});
// Deshabilita el menú contexto.
$("a.button, button, input[type=button], input[type=submit], input[type=reset], .btn-danger").on("contextmenu", function(e){
e.preventDefault();
return false;
});
},
buttons: [
{
// Botón Sí.
html: buttonyes,
class: id + "_btn_1 " + buttonyesclass,
click: function(e){
e.preventDefault();
// Muestra : Cargando o similar.
$("." + id + "_btn_1").prop("disabled", true).html("\\x3Ci class=\\"fas fa-fw fa-spinner fa-pulse\\">\\x3C/i>" + buttonyespulsed);
// ¿Existe un proceso callback para el botón: Sí.
if(typeof cbyesnow !== \'undefined\'){
// Proceso callback.
runJS(cbyesnow);
// Se comprueba si existe una URL.
}else if(link.length !== 0){
// Proceso normal.
if(dataajax === 0){
// Redirige hacia la URL.
setTimeout(() => {
$(\'body\').css("cursor", "wait");
window.location = link;
}, 0);
}else{
// Proceso AJAX.
$.ajax({
url: link,
//type: form.prop(\'method\'), // POST o GET
//data: data,
cache: false,
dataType: \'html\',
beforeSend: function(){}
// Se ejecuta siempre.
}).always(function(obj){
// Proceso callback.
if(typeof cbyesnow !== \'undefined\'){
runJS(cbyesnow);
}
// Cierra el diálogo.
$("#" + id).dialog("close");
// El proceso ha concluido.
}).done(function(obj, textStatus, infoStatus){
// Mensaje del resultado del proceso
// en la consola javascript.
if(typeof web_debug !== \'undefined\'
&& web_debug != 0){
console.log(txtOkTitle + \': \'
+ textStatus, infoStatus);
}
// El proceso ha fallado.
}).fail(function(jqXHR, textStatus, infoStatus){
// Mensaje del resultado del proceso
// en la consola javascript.
if(typeof web_debug !== \'undefined\'
&& web_debug != 0){
console.log(txtErrorTitle + \': \'
+ textStatus, infoStatus);
// Con mensaje para modo desarrollo.
msgErrorpopUp(txtErrorTitle, txtErrorText +
\'\\x3Cbr />\\x3Ch2>\' + txtOnlyDev + \'\\x3C/h2>\' + textStatus);
}else{
// Muestra un mensaje de error
// general.
msgErrorpopUp();
}
});
}
}
}
},
{
// Botón: No.
html: buttonno,
class: id + "_btn_2 " + buttonnoclass,
click: function(e){
e.preventDefault();
// Muestra : Cargando o similar.
$("." + id + "_btn_2").prop("disabled", true).html("\\x3Ci class=\\"fas fa-fw fa-spinner fa-pulse\\">\\x3C/i>" + buttonnopulsed);
// ¿Existe un proceso callback para el botón: No.
if(typeof cbnonow !== \'undefined\'){
// Proceso callback.
runJS(cbnonow);
}
// Cierra el diálogo.
$("#" + id).dialog("close");
}
}
]
});},
0);
});
// Mensaje de confirmación con múltiples opciones.
$(document).on(\'click\', \'a[class="confirm_options"]\', function(e){
e.preventDefault();
// Se recogen los valores de los atributos del enlace.
var idlink = $(this);
var id = $(this).attr(\'data-id\');
var link = $(this).attr(\'href\');
// Agrega el estilo \'forms.css\'
loadFormsCSS();
// Se asignan los valores por defecto.
var title = titlebak = "\\x3Ci class=\\"fas fa-question-circle fa-lg\\">\\x3C/i> " + txtQuestionTitle;
var text = textbak = txtQuestionText;
// Se comprueba si debemos crear un diálogo o utilizar uno.
if(typeof id === \'undefined\' || id.length === 0 || $("#" + id).length === 0){
// Creamos un diálogo automáticamente.
var id = "dialog_" + MD5(link);
var i = 1;
// Se comprueba si el diálogo ya fue abierto.
if($("#" + id).length === 0){
// Cuadro de confirmación.
var confirm = \'\\x3Cdiv id="\' + id + \'" \' +
\'class="msg_question animate__animated animate__shake" \' +
\'style="display:none;z-index:999999999 !important;">\' +
\'\\x3Ch1 class="msg_question_title">\' + title + \'\\x3C/h1>\' +
\'\\x3Cp class="msg_question_text">\' + text + \'\\x3C/p>\' +
\'\\x3C/div>\';
// Agrega el div.
$(\'body\').append(confirm);
}
}else{
// Existe un diálogo a utilizar.
var i = 0;
// Recoge los valores iniciales.
$("#" + id).css({"z-index": "999999999 !important", "display": "none"});
var cont = 0;
var mybuttons = [];
// Examina todos los botones agregados.
$("#" + id + " > button").each(function(e){
// Nombre del botón.
var name = $(this).attr("id");
// Oculta el botón.
$(this).hide();
// Este botón no tiene identificador.
if(name === ""){ return; }
// Texto.
if(typeof idlink.attr("data-" + name + "-text") !== "undefined"
&& idlink.attr("data-" + name + "-text") !== ""){
var texto = idlink.attr("data-" + name + "-text");
}else if(typeof $(this).attr("data-text") !== "undefined"
&& $(this).attr("data-text")){
var texto = $(this).attr("data-text");
}else{
var texto = $(this).html();
}
// Icono
if(typeof idlink.attr("data-" + name + "-icon") !== "undefined"
&& idlink.attr("data-" + name + "-icon") !== ""){
var icono = \'\\x3Ci class="\' + idlink.attr("data-" + name + "-icon") + \'">\\x3C/i> \';
}else if(typeof $(this).attr("data-icon") !== "undefined"
&& $(this).attr("data-icon") !== ""){
var icono = \'\\x3Ci class="\' + $(this).attr("data-icon") + \'">\\x3C/i> \';
}else{
var icono = "";
}
// En caso de que no exista texto.
if(texto === "" && icono === ""){ return; }
// Sirve para mostrar icono y texto juntos.
$(this).attr("data-icontext", icono + texto);
// Contador.
cont++;
// Clase
var mainclase = id + "_btn_" + cont;
if(typeof idlink.attr("data-" + name + "-class") !== "undefined"
&& idlink.attr("data-" + name + "-class") !== ""){
var clase = mainclase + " " + idlink.attr("data-" + name + "-class");
}else if(typeof $(this).attr("data-class") !== "undefined"
&& $(this).attr("data-class") !== ""){
var clase = mainclase + " " + $(this).attr("data-class");
}else if(typeof $(this).attr("class") !== "undefined" &&
$(this).attr("class") !== ""){
var clase = mainclase + " " + $(this).attr("class");
}else{
var clase = mainclase;
}
$(this).attr("data-id", id + "_btn_" + cont);
// Pulsado.
if(typeof idlink.attr("data-" + name + "-pulsed") !== "undefined"
&& idlink.attr("data-" + name + "-pulsed") !== ""){
var pulsado = idlink.attr("data-" + name + "-pulsed");
}else if(typeof $(this).attr("data-pulsed") !== "undefined"
&& $(this).attr("data-pulsed") !== ""){
var pulsado = $(this).attr("data-pulsed");
}else{
var pulsado = "";
}
// Callback.
if(typeof idlink.attr("data-" + name + "-callback") !== "undefined"
&& idlink.attr("data-" + name + "-callback") !== ""){
var callback = idlink.attr("data-" + name + "-callback");
}else if(typeof $(this).attr("data-callback") !== "undefined"
&& $(this).attr("data-callback") !== ""){
var callback = $(this).attr("data-callback");
}else{
var callback = "";
}
mybuttons.push({
html: texto,
class: clase,
click: function(e){
e.preventDefault();
// Muestra : Cargando o similar.
$("." + mainclase).prop("disabled", true).html("\\x3Ci class=\\"fas fa-fw fa-spinner fa-pulse\\">\\x3C/i>" + pulsado);
// ¿Existe un proceso callback para el botón: Sí.
if(typeof callback !== \'undefined\'){
// Proceso callback.
runJS(callback);
// Se comprueba si existe una URL.
}else if(link.length !== 0){
// Proceso normal.
if(dataajax === 0){
// Redirige hacia la URL.
setTimeout(() => {
$(\'body\').css("cursor", "wait");
window.location = link;
}, 0);
}else{
// Proceso AJAX.
$.ajax({
url: link,
//type: form.prop(\'method\'), // POST o GET
//data: data,
cache: false,
dataType: \'html\',
beforeSend: function(){}
// Se ejecuta siempre.
}).always(function(obj){
// Proceso callback.
if(typeof callback !== \'undefined\'){
runJS(callback);
}
// Cierra el diálogo.
$("#" + id).dialog("close");
// El proceso ha concluido.
}).done(function(obj, textStatus, infoStatus){
// Mensaje del resultado del proceso
// en la consola javascript.
if(typeof web_debug !== \'undefined\'
&& web_debug != 0){
console.log(txtOkTitle + \': \'
+ textStatus, infoStatus);
}
// El proceso ha fallado.
}).fail(function(jqXHR, textStatus, infoStatus){
// Mensaje del resultado del proceso
// en la consola javascript.
if(typeof web_debug !== \'undefined\'
&& web_debug != 0){
console.log(txtErrorTitle + \': \'
+ textStatus, infoStatus);
// Con mensaje para modo desarrollo.
msgErrorpopUp(txtErrorTitle, txtErrorText +
\'\\x3Cbr />\\x3Ch2>\' + txtOnlyDev + \'\\x3C/h2>\' + textStatus);
}else{
// Muestra un mensaje de error
// general.
msgErrorpopUp();
}
});
}
}
}
});
});
}
// Se comprueba si se ha fijado un título en el atributo del enlace.
if(typeof $(this).attr("data-title") !== \'undefined\'){
// Valor especificado en atributo.
$("#" + id + " > .msg_question_title").html($(this).attr("data-title"));
}
// Se comprueba si se ha fijado un título en el atributo del enlace.
if(typeof $(this).attr("data-text") !== \'undefined\'){
// Valor especificado en atributo.
$("#" + id + " > .msg_question_text").html($(this).attr("data-text"));
}
// ¿Se trata de un proceso AJAX?.
if(typeof $(this).attr("data-ajax") !== \'undefined\' || (i === 0 &&
$("#" + id + "").attr("data-ajax") == \'1\')){
var dataajax = 1;
}else{
var dataajax = 0;
}
// Espera unos milisegundos antes de mostrar en caso necesario.
setTimeout(() => {
// Abre el cuadro de diálogo.
$("#" + id).dialog({
dialogClass:"animate__animated animate__fadeIn msg_question",
title:title,
width:"auto",
maxWidth:600,
height:"auto",
minheight:"auto",
modal:true,
clickOut:false,
responsive:true,
autoOpen:true,
autoResize:true,
cache:false,
showTitleBar:false,
showCloseButton:false,
position:{my: "center", at: "center", of: window},
resizable:false,
// Antes de cerrar.
beforeClose:function(){
$(\'#\' + id).parent().addClass("animate__fadeOut");
},
// Al abrir.
open: function(){
// Recorre todos los botones para añadirle los iconos.
for(i = 0; i <= cont; i++){
$("." + id + "_btn_" + i).button("option", "label", $("#" + id + " > button[data-id|=\'" + id + "_btn_" + i + "\']").attr("data-icontext"));
}
// Activa el modo pulsado en botones.
$("button, input[type=button], input[type=submit], .btn-danger, a.button").on("mousedown touchstart", function(e){
$(this).addClass("pressed");
// Desactiva el modo pulsado en botones.
}).on("mouseup mouseout touchend", function(e){
// Elimina la clase \'pressed\' únicamente si el botón no se encuentra
// desactivado.
if(typeof $(this).attr("disabled") === \'undefined\' && !$(this).hasClass("disabled")){
$(this).removeClass("pressed");
}
});
// Deshabilita el menú contexto.
$("a.button, button, input[type=button], input[type=submit], input[type=reset], .btn-danger").on("contextmenu", function(e){
e.preventDefault();
return false;
});
},
// Botones.
buttons: mybuttons
});},
200);
});
// Abre el enlace seleccionado en un popUp mediante AJAX.
// Se utiliza fundamentalmente para abrir páginas en popups.
//$(\'a[class^="popup_"]\').on(\'click\', function(e){
popup_page = [];
$(\'body\').on(\'click\', \'a[class^="popup_"]\', function(e){
e.preventDefault();
var idclass = $(this).prop(\'class\');
var id = idclass.replace(\'popup_\', \'\');
// Se comprueba si el popUp rkpopup ya fue abierto.
if($(".rk" + idclass).length != 0){
// Nombre de la función.
var rkid = $(".rk" + idclass).parent().attr("id");
var of = "openPopUp_" + rkid;
// Reabre el popUp.
window[of]();
// Se devuelve verdadero.
return true;
// Se comprueba si el cuadro de diálogo tipo 1 ya fue abierto.
}else if(popup_page[id]){
// Se comprueba si pide ser recargado.
if(popup_page[id][0].destroyOnClose !== true){
// Vuelve a mostrar el popUp que ya fue abierto.
$(\'#\' + popup_page[id][0].id).dialog(\'open\').animate({scrollTop: 0 }, 0);
// Se devuelve verdadero.
return true;
}else{
// Se destruye el anterior.
$(\'#\' + popup_page[id][0].id).dialog(\'destroy\').remove();
}
}
// Agrega el estilo \'forms.css\'
loadFormsCSS();
var values = {};
values.ajax = \'popups\';
values._ajax = id;
values._ajaxjsfl = js_files_loaded;
values._ajaxcssfl = css_files_loaded;
setTimeout(() => {
var request = $.ajax({
url: \'\',
type: \'post\',
data: values,
cache: false,
dataType: \'html\',
// Antes de cargar.
beforeSend: function(data){
// Elimina la capa de loading ajax.
$(\'.loading_ajax\').remove();
// Crea la capa de loading ajax.
$(\'body\').prepend(divLoading);
// Hace aparecer la capa de loading ajax.
setTimeout(() => {
$(\'.loading_ajax\').fadeIn();
}, 300);
}
// Siempre que se procesa.
}).always(function(result, textStatus, infoStatus){
// Elimina la capa de loading ajax.
$(\'.loading_ajax\').remove();
if(result != \'\'){
// Se comprueba si se ha devuelto contenido JSON.
if(result.substr(0, 1) === \'{\'){
// Se ha devuelto contenido JSON.
var obj = JSON.parse(result);
}else{
// No se ha devuelto contenido JSON.
var obj = \'\';
}
}else{
// Se ha devuelto vacío.
var obj = \'\';
}
// Mensaje del resultado del proceso en la consola javascript.
if(typeof web_debug !== \'undefined\' && web_debug != 0){
console.log(txtOkTitle + \': \' + textStatus, infoStatus);
}
// Pide redirigir a una URL.
if(typeof obj.url !== "undefined" && obj.url !== \'\'){
$(\'body\').css("cursor", "wait");
setTimeout(() => { window.location = obj.url; }, 0);
}else
if(obj.ok === 1){
// Reemplazar el contenido.
if(typeof obj.replace !== \'undefined\'){
// Reemplaza el contenido actual.
$(\'body\').html($.parseHTML(decodeURI(obj.html)));
// Agregar antes del contenido actual.
}else if(typeof obj.prepend !== \'undefined\'){
// Agrega antes del contenido actual.
if(typeof obj.id !== \'undefined\' || $(".rk_popup_area").length == 0){
// Rkpopup y UIdialog
$(\'body\').prepend(obj.html);
}else{
// Solo. RKPopup
$(".rk_popup_area:last").after(obj.html);
}
}else{
if(typeof obj.id !== \'undefined\'){
// Solo UIDialog.
$(\'body\').append(obj.html);
}else{
// RKPopup. Agrega después del contenido actual.
$(obj.html).appendTo(".rk_popup_area");
}
}
// Se comprueba si existe algún script.
if(obj.js !== \'\' && (typeof obj.js !== \'undefined\')){
runJS(obj.js);
}
// Recoge el ID del popUp generado para evitar volver a
// generarlo.
popup_page[id] = [{
id: obj.id,
// Para saber si se debe destruir antes de crear.
destroyOnClose: obj.destroyOnClose
}];
$(\'#\' + obj.id).animate({scrollTop: 0 }, 0);
}else{
// El popUp no ha sido creado.
if(obj.js !== \'\' && (typeof obj.js !== \'undefined\')){
runJS(obj.js);
}else{
// Mensaje del resultado del proceso en la consola javascript.
if(typeof web_debug !== \'undefined\' && web_debug != 0 && obj.error !== \'\' && (typeof obj.error !== \'undefined\')){
// Mensaje para consola.
console.log(txtErrorTitle + \': \' + obj.error);
// Con mensaje para modo desarrollo.
msgErrorpopUp(txtErrorTitle, txtErrorText +
\'\\x3Cbr />\\x3Ch2>\' + txtOnlyDev + \'\\x3C/h2>\' + obj.error);
}else{
// Mensaje de error general al usuario.
msgErrorpopUp();
}
}
}
// El proceso ha fallado.
}).fail(function(jqXHR, textStatus, infoStatus){
// Mensaje del resultado del proceso en la consola javascript.
if(typeof web_debug !== \'undefined\' && web_debug != 0){
// Mensaje para la consola.
console.log(txtErrorTitle + \': \' + textStatus, infoStatus);
// Con mensaje para modo desarrollo.
msgErrorpopUp(txtErrorTitle, txtErrorText + \'\\x3Cbr />\\x3Ch2>\'
+ txtOnlyDev + \'\\x3C/h2>\' + textStatus);
}else{
// Muestra un mensaje de error al usuario.
msgErrorpopUp();
}
// El proceso ha concluído con éxito.
}).done(function(jqXHR, textStatus, infoStatus){
// Activa el modo pulsado en botones.
$("button, input[type=button], input[type=submit], .btn-danger, a.button").on("mousedown touchstart", function(e){
$(this).addClass("pressed");
// Desactiva el modo pulsado en botones.
}).on("mouseup mouseout touchend", function(e){
// Elimina la clase \'pressed\' únicamente si el botón no se encuentra desactivado.
if(typeof $(this).attr("disabled") === \'undefined\' && !$(this).hasClass("disabled")){
$(this).removeClass("pressed");
}
});
// Deshabilita el menú contexto.
$("a.button, button, input[type=button], input[type=submit], input[type=reset], .btn-danger").on("contextmenu", function(e){
e.preventDefault();
return false;
});
});
}, 0);
});
// Abre el enlace seleccionado en una ventana nueva.
$(\'a[class="blank"]\').on(\'click\', function(e){
e.preventDefault();
window.open($(this).attr(\'href\'));
});
// Enlaces
// Selecciona todos los botones con el atributo data-goto y añade un
// evento de clic.
document.querySelectorAll(\'[data-goto]\').forEach(button => {
button.addEventListener(\'click\', function(e){
gotoURL(this.getAttribute(\'data-goto\'), 0);
});
});
// Tooltips para elementos.
$(document).tooltip({
items: "[data-msginfo], [data-msgquestion], [data-msgwarning], [data-msgerror], [data-msgok]",
track: true,
close: function (e, o) { },
content: function(e, o){
var element = $(this);
if(element.is("[data-msginfo]")){
var mycont = element.attr("data-msginfo");
var icon = \'fa-info-circle\';
var myclass = \'ui-tooltip_info\';
}else
if(element.is("[data-msgquestion]")){
var mycont = element.attr("data-msgquestion");
var icon = \'fa-question-circle\';
var myclass = \'ui-tooltip_question\';
}else
if(element.is("[data-msgwarning]")){
var mycont = element.attr("data-msgwarning");
var icon = \'fa-exclamation-triangle\';
var myclass = \'ui-tooltip_warning\';
}else
if(element.is("[data-msgerror]")){
var mycont = element.attr("data-msgerror");
var icon = \'fa-times-circle\';
var myclass = \'ui-tooltip_error\';
}else
if(element.is("[data-msgok]")){
var mycont = element.attr("data-msgok");
var icon = \'fa-check-circle\';
var myclass = \'ui-tooltip_ok\';
}
if(mycont === \'\'){ return false; }
return \'\\x3Cdiv class="\' + myclass + \'">\\x3Ci class="fas \' + icon +
\'">\\x3C/i> \' + mycont + \'\\x3C/div>\';
}
});
// Parpadeo de elementos.
$(\'.blink\').fadeIn(500).delay(250).fadeOut(500).fadeIn(500);
function blink_text() {
$(\'.blink\').fadeOut(500);
$(\'.blink\').fadeIn(500);
}
setInterval(blink_text, 1000);
});
', array (
0 => './extensions/js/interface.js',
), 'as_content', 'head', 0, 0, 0, 0, 1, 0, '|page_2', 'page'); | Línea: 4089 | Archivo: /var/www/clients/client57/web318/web/system/interface/js.php | Tiempo tomado: 0.4 segundos (0.414) ]
Gestionando contenido CSS (css::_addCSS)
Se ha añadido un nuevo contenido CSS entre las etiquetas: "
<head>" y "
</head>" de la página: "
Nosotros (2)" a través del método: "
css::_addCSS".
[ Nivel: 7 | Función: css::_addCSS('html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p,
blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em,
img, ins, kbd, q, s, samp, small, strike, strong, tt, var, b, u, i, center,
dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption,
tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, embed,
figure, figcaption, footer, header, hgroup, menu, nav, output, ruby,
section, summary, time, mark, audio, video {
margin: 0;
padding: 0;
font-size: 100%;
font: inherit;
vertical-align: baseline;
}
html{scroll-behavior: smooth;}
/* Diseño general */
/* custom */
main {
width: 100%;
}
section, .top, .legal {
width: 100%;
display: flex;
justify-content: center; /* Centrar el contenido */
}
.botongoto{
display:inline-block;
width:100%;
text-align:center;
margin:30px 0;
}
.botongoto button{
margin:20px;
}
section:last-of-type{background:#001924;}
.bh2{
display:block;
text-transform:uppercase;
font-size:0.8em;
color:#6d6d6d;
text-align:left;
font-family: Poppins;
}
#slider, #nosotros, #servicios, #trabajos, #contacto, #footer{
background-attachment: fixed;
background-position: center;
background-size: cover;
}
#slider{
background-image: url(resources/background3.jpg);
}
#nosotros{
background-image: url(resources/background.jpg);
}
#servicios{
background-image: url(resources/background2.jpg);
}
#trabajos{
background-image: url(resources/background3.jpg);
}
#contacto{
background-image: url(resources/background4.jpg);
}
#footer{
background-image: url(resources/background4.jpg);
}
section .content, section .content2 {
width: 100%;
max-width: 1090px;
text-align: left;
background:rgba(255,255,255,0.9);
}
section .content2{
padding: 40px;
}
/* custom */
/* Título de la cabecera */
.pageFullPath{
border-bottom:2px solid;
padding-bottom:5px;
margin-bottom:30px;
}
.pageFullPath .parentPage{
font-size:1.4em;
display:inline;
}
.pageFullPath a:hover{ text-decoration:none;}
.pageFullPath .parentPage:after{ content: " » "; }
.pageFullPath #parent0:after{ content: ""; }
.noParents{ padding-top:15px;}
.pageFullPath .thisPage{
display:block;
font-size:2.5em;
font-weight:bold;
}
/* Título de la cabecera */
/* Banderas */
div.flags{
display:inline-block !important;
text-align:center;
margin-top:10px;
padding:0;
margin-right:0 !important;
border-right:0 !important;
}
a.flags{
background:url(./resources/images/static/flags.png) top center no-repeat;
padding:1px 16px;
margin-left:10px;
height:20px;
}
a.flags:hover{opacity:.7;cursor:pointer}
a.flags_es{background-position-y:-403px!important}
a.flags_en{background-position-y:-106px!important}
a.flags_de{background-position-y:-349px!important}
a.flags_fr{background-position-y:-79px!important}
a.flags_it{background-position-y:-160px!important}
/* Fancybox */
.fancybox-image { image-orientation: from-image !important; }
article, aside, details, figcaption, figure, footer, header, hgroup, menu,
nav{ display: block; }
html, body {
line-height: 1;
margin: 0;
height: 100%;
}
/* Versión normal y mini */
.avatar, .avatar_mini{
position:relative;
display:inline-block !important;
background-color:#e3e9e9;
background-size:cover;
background-position:center center;
background-repeat:no-repeat;
box-shadow: 0px 0px 1px inset #555;
min-height:45px;
width:45px;
vertical-align:middle;
margin-right:10px;
border-radius:30px;
}
/* Ajustes para versión mini */
.avatar_mini{
min-height:22px;
width:22px;
vertical-align:top;
margin:0 !important;
margin-right:5px !important;
}
.disabled, .form_wait{
pointer-events: none;
cursor: not-allowed !important;
-webkit-filter: grayscale(100%);
-moz-filter: grayscale(100%);
-ms-filter: grayscale(100%);
-o-filter: grayscale(100%);
filter: grayscale(100%);
filter: gray; /* IE 6-9 */
text-shadow: 2px 2px 3px rgba(255,255,255,0.5);
box-shadow: none;
user-select: none;
transition: all .25s ease;
}
ol, ul { list-style: none; margin:10px 0; }
blockquote, q { quotes: none; letter-spacing: 0.1em; }
b, strong{ font-weight:bold; }
ul li, p{ margin-bottom:10px; }
blockquote:before, blockquote:after,
q:before, q:after {
content: \'\';
content: none;
}
:focus {
outline: 0;
}
body{
margin: 0;
padding: 0;
box-sizing:border-box;
font-size: 1.125rem;
font-style: normal;
font-family: Poppins;
font-weight: 400;
line-height: 1.5;
letter-spacing: 0px;
text-transform: none;
}
/* Estilo general para la lista no ordenada */
ul.list {
list-style-type: none; /* Elimina los puntos de la lista */
padding: 0; /* Elimina el padding predeterminado */
margin: 0; /* Elimina el margen predeterminado */
padding-left:20px;
}
/* Estilo para cada elemento de la lista */
ul.list li {
display:block;
margin: 5px 0; /* Espacio entre los elementos */
padding-bottom:10px;
transition: background-color 0.3s ease; /* Transición suave */
}
/* Estilo para el contenido del elemento de la lista */
ul.list li::before {
content: "\\1F3C0"; /* Punto de lista personalizado */
color: #606060; /* Color del punto */
font-weight: bold; /* Negrita para el punto */
display: inline-block; /* Mantener en línea con el texto */
width: 1.6em; /* Espacio antes del texto */
margin-left: -1em; /* Ajustar posición del punto */
}
.body, footer, div.header_content{
width:100%;
box-sizing:border-box;
min-width:230px;
overflow:hidden;
}
div, input, select, button, textarea, noscript{
line-height:1.3em;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
button{
user-select: none !important; /* Non-prefixed version, currently */
transition: transform 0.3s ease, box-shadow 0.3s ease;
box-shadow:0 0 5px #666;
}
button:hover {
transform: scale(1.05);
}
table{
border-collapse: collapse;
border-spacing: 0;
margin:10px;
}
td, th{
height:30px;
vertical-align:middle;
}
th, .ths{
text-align:center;
}
/* Modificable */
/* Scrollbar */
::-webkit-scrollbar {
width: 0.7em;
}
::-webkit-scrollbar-thumb {
border-radius:10px;
}
a, .link{
cursor:pointer;
-webkit-touch-callout: none !important;
transition: color 0.3s ease; /* Transición suave */
}
button.link, a:link,a:visited,a:active, .link:active,
a:hover, .link:hover{
text-decoration: none !important;
}
ul.error li{
display:block;
margin-bottom:5px;
}
ul.error li:before{
content: "- ";
}
.password_page{
float:left;
font-size:7em;
margin-right:10px;
}
h1, h2, h3, h4{
font-weight:normal;
line-height:1.3em;
margin:0;
padding:0;
}
h1{
font-size:1.5em;
font-weight:bold;
}
h2{
font-size:1.4em;
font-weight:bold;
line-height:1.3em;
padding-bottom:20px;
padding-top:10px;
}
h3{
font-size:1.1em;
font-weight:bold;
padding-bottom:10px;
}
h4{
font-style: italic;
font-size:1em;
padding:20px;
background:#fff;
margin:20px 0;
border-radius:15px;
}
.subbody{
padding:20px;
max-width:1440px;
margin:0 auto;
}
.subbody h1, .subbody h3{
text-align:left;
transition: all .25s ease;
}
*::-moz-selection{ }
*::selection { }
.details, div.offline_ec, .confirmInfo{
font-size:0.8em;
line-height:1.2em;
}
/* Modificable */
ul{
margin:10px 0;
}
li{
list-style:none;
display:inline;
}
ul li, p{ margin-bottom:20px; line-height:1.6em; }
blockquote{ letter-spacing: 0.1em; }
/* Mientras carga el ajax */
.loading_ajax, .loading_ajax_iframe{
display:flex;
cursor:wait;
position:fixed;
align-items: center;
justify-content: center;
background:rgba(255,255,255,0.8);
text-align:center;
width:100%;
height:100%;
top:0;
left:0;
right:0;
bottom:0;
z-index:999999999;
font-size:1.3em;
}
.loading_ajax_iframe{
position:absolute;
font-size:1.1em;
}
.loading_now{
position: absolute;
bottom:50%;
top:50%;
left:50%;
width:40px;
margin-left:-30px;
animation: bounce 1s infinite;
-webkit-animation: bounce 1s infinite;
-moz-animation: bounce 1s infinite;
-o-animation: bounce 1s infinite;
font-size:0.9em;
}
@-webkit-keyframes ease {
0%, 20%, 50%, 80%, 100% {-webkit-transform: translateY(0);}
40% {-webkit-transform: translateY(-30px);}
60% {-webkit-transform: translateY(-15px);}
}
@-moz-keyframes ease {
0%, 20%, 50%, 80%, 100% {-moz-transform: translateY(0);}
40% {-moz-transform: translateY(-30px);}
60% {-moz-transform: translateY(-15px);}
}
@-o-keyframes ease {
0%, 20%, 50%, 80%, 100% {-o-transform: translateY(0);}
40% {-o-transform: translateY(-30px);}
60% {-o-transform: translateY(-15px);}
}
@keyframes ease {
0%, 20%, 50%, 80%, 100% {transform: translateY(0);}
40% {transform: translateY(-30px);}
60% {transform: translateY(-15px);}
}
.loading_item{
border-radius: 5px;
opacity: .7;
-webkit-animation-duration: 1s;
animation-duration: 1s;
-webkit-animation-fill-mode: forwards;
animation-fill-mode: forwards;
-webkit-animation-iteration-count: infinite;
animation-iteration-count: infinite;
-webkit-animation-name: style-module--loading--1CMFr;
animation-name: style-module--loading--1CMFr;
-webkit-animation-timing-function: linear;
animation-timing-function: linear;
}
/* Barra de carga */
#loading-bar {
height: 5px;
width: 0;
position: fixed;
z-index: 666000666;
transition:width 500ms ease-out, height 500ms ease-out;
}
#loading-bar.no-transition {
-webkit-transition:none;
-moz-transition:none;
-o-transition:none;
transition:none;
}
#loading-bar.top, #loading-bar.bottom, #loading-bar.left { left: 0;}
#loading-bar.top, #loading-bar.left, #loading-bar.right { top: 0;}
#loading-bar.left, #loading-bar.right { width: 5px; height: 0; }
#loading-bar.bottom { bottom: 0; }
#loading-bar.right { right:0; }
/* Barra de carga */
/* Mientras carga una imagen */
.image_frame .image_image img {
background:
linear-gradient(0.25turn, transparent, #fff, transparent),
linear-gradient(#eee, #eee);
background-repeat: no-repeat;
/*background-size: 315px 250px, 315px 180px, 100px 100px, 225px 30px; */
background-position: -315px 0, 0 0, 0px 190px, 50px 195px;
animation: ajax_loading 1.5s infinite;
}
/* Mientras carga una imagen */
/* Carga en proceso ajax */
.ajax_loading:empty{
cursor: progress;
background:
linear-gradient(0.25turn, transparent, #fff, transparent),
linear-gradient(#eee, #eee);
background-repeat: no-repeat;
background-position: -315px 0, 0 0, 0px 190px, 50px 195px;
animation: ajax_loading 1.5s infinite;
}
@keyframes ajax_loading {
to {
background-position: 315px 0, 0 0, 0 190px, 50px 195px;
}
}
/* Carga en proceso ajax */
/* Sistema de carga */
/* Enlaces */
.scrollToTop{
font-size:3em;
text-align:center;
position:fixed;
bottom:55px;
right:10px;
display:none;
z-index:99990;
}
a.url{
overflow-wrap: break-word;
word-wrap: break-word;
-ms-word-break: break-all;
word-break: break-all;
word-break: break-word;
-ms-hyphens: auto;
-moz-hyphens: auto;
-webkit-hyphens: auto;
hyphens: auto;
}
/* Enlaces */
/* Paginación */
nav.paging_bar a{
border-width:1px;
border-style:solid;
}
/* Paginación */
/* Cabecera */
/* Cuerpo */
.body{
margin:0 auto;
padding-top:0 !important;
box-sizing:border-box;
min-height:400px;
}
div.crt{ clear:both; }
/* Diseño general */
summary{
cursor:pointer;
font-weight:bold;
font-size:1.0em !important;
}
div.hline{
height:1px;
margin-top:10px;
margin:5px 0;
margin-bottom:10px;
clear:both;
}
/***************************************************************************
/** BOX DIALOGS ************************************************************
/**************************************************************************/
div.box, div.form{
margin:0 auto;
display:block;
padding:20px;
/*max-width:640px;*/
/*border-style: solid;*/
/*border-radius:2px;*/
}
div.boxalert{
width:auto;
position:fixed;
-webkit-transform: translateZ(0);
bottom:0;
display:none;
border:1px solid;
border-radius:0;
-webkit-border-radius:0;
-moz-border-radius:0;
z-index:999999999;
padding:5px !important;
font-size:1.0em;
font-weight:normal !important;
}
div.box h1{
font-size:1.5em;
padding-bottom:10px;
}
div.box h2{
font-size:1.3em;
margin-bottom:10px;
}
div.box h3{
font-size:1.1em;
margin-bottom:10px;
}
/***************************************************************************
/** BOX DIALOGS ************************************************************
/**************************************************************************/
/* Imágenes */
/* Fancybox */
.fancybox-image { image-orientation: from-image !important; }
.fancybox__container{ z-index:999999999 !important;}
/* Marco de imágenes */
.image_frame img{ }
.image_frame{
margin:0 auto;
}
.image_frame .image_image{
}
.image_frame .image_text{
text-align:left;
margin-top:10px;
padding-bottom:10px;
border-bottom:2px solid #eee;
}
.image_frame .image_text .image_title{
font-weight:bold;
color:#444;
font-size:0.9em;
}
.image_frame .image_text .image_description{
color:#999;
font-size:0.8em;
}
/* Marco de imágenes */
div.img_right, div.svg_right{
float:right;
margin:0 0 15px 15px;
max-width:320px;
}
div.img_left, div.svg_left{
float:left;
margin:0 20px 10px 0;
max-width:320px;
}
div.img_left img, div.img_left svg, div.img_right img, div.img_right svg{
height:auto;
max-width:100%;
box-sizing: border-box;
border-radius:20px;
}
div.svg_left svg, div.svg_right svg{
height:auto;
max-width:100%;
}
img, svg{
border:none;
height:auto;
}
/* Imagenes */
/* Javascript no detectado */
noscript{
display:inline-block;
position:fixed;
width:100%;
padding:20px;
margin:0 auto;
z-index:999999999 !important;
text-align:left;
opacity:0.9;
overflow: hidden;
}
noscript:hover{
opacity:1.0;
}
noscript a{ }
noscript a:hover{
text-decoration:underline;
}
.noscript div.title{
font-size:1em;
padding-bottom:10px;
}
.noscript div.text{
font-size:0.9em;
}
/* Javascript no detectado */
.noshadow{ box-shadow:none !important;}
.noselect {
-webkit-touch-callout: none !important; /* iOS Safari */
-webkit-user-select: none !important; /* Safari */
-khtml-user-select: none !important; /* Konqueror HTML */
-moz-user-select: none !important; /* Firefox */
-ms-user-select: none !important; /* Internet Explorer/Edge */
user-select: none !important; /* Non-prefixed version, currently
supported by Chrome and Opera */
}
hr{
height:1px;
background:#eee;
border:0;
margin-bottom:20px;
}
/* Tablets en horizonal y escritorios normales */
/* Tablets en horizonal y escritorios normales */
@media (max-width: 1199px){
body{
font-size:1.0em;
}
}
@media (max-width: 767px) {
div.headmenu_content div{
margin-right:5px;
font-size:.9em;
}
.subbody{
padding:15px;
}
div.img_right, div.img_left,
div.svg_right, div.svg_left{
float:none;
padding:20px;
margin:0;
margin-bottom:15px;
text-align:center;
box-sizing:border-box;
}
section .content2{
padding: 20px;
}
}
@media screen and (max-width : 640px) {
div.headmenu_content div{
font-size:.8em;
}
div.box, div.form{
margin:0;
padding:8px;
}
h1{ font-size:1.4em;}
h2{ font-size:1.3em;}
h3{ font-size:1.1em;}
h4{ font-size:1em;}
}
@media (max-width: 550px) {
div.img_right, div.img_left{
padding:0;
background:transparent;
}
.image_frame .image_text{
margin-bottom:20px;
}
div.img_right img, div.img_left img{
border:0;
}
}
@media screen and (max-width : 480px) {
div.headmenu_content div{
padding:2px;
}
div.box, div.form{
margin:0;
border:0;
box-shadow:none;
padding-top:0;
width:100%;
}
div.subbody{
padding-top:20px;
font-size:1.1em;
}
#headmenu .link_txt{
transition: all .45s ease;
}
#headmenu a.selected{
background:transparent;
text-decoration:none;
}
#headmenu a{
font-size:1.3em;
margin-right:8px;
text-decoration:none;
transition: all .5s ease;
}
div.header_content{text-align:center;}
#headmenu, .headmenu{
width:85px;
padding:0;
}
footer{
bottom:0;
padding:0 !important;
padding-top:10px !important;
}
.subbody h1, .subbody h3{
}
h1{ font-size:1.4em;}
h2{ font-size:1.3em;}
h3{ font-size:1em;}
h4{ font-size:0.9em;}
img.logo, div.offline_logo img{
padding-left:0;
width:160px;
margin-right:0;
}
.botongoto{
display:inline-block;
width:100%;
text-align:center;
margin:30px 0;
}
.botongoto button{
margin:10px 0;
width:100%;
}
}
', array (
0 => './config/layouts/default/css/main.css',
), 'as_content', 'head', 0, 0, 0, 1); | Línea: 1811 | Archivo: /var/www/clients/client57/web318/web/system/interface/css.php | Tiempo tomado: 0.4 segundos (0.416) ]