/* * Funciones de manipulacion de texto */ /** * Muestra un alert (sweet alert) basico * @param {type} linea1 * @param {type} linea2 * @param {type} tipo * @returns {undefined} */ function alert(linea1, linea2, tipo) { swal(linea1, linea2, tipo); } function filtrarURL(url) { return url.replace(/[^\w\s]/gi, ''); } function strpos(haystack, needle, offset) { // Finds position of first occurrence of a string within another // // version: 1109.2015 // discuss at: http://phpjs.org/functions/strpos // + original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net) // + improved by: Onno Marsman // + bugfixed by: Daniel Esteban // + improved by: Brett Zamir (http://brett-zamir.me) // * example 1: strpos('Kevin van Zonneveld', 'e', 5); // * returns 1: 14 var i = (haystack + '').indexOf(needle, (offset || 0)); return i === -1 ? false : i; } function stripos(f_haystack, f_needle, f_offset) { // Finds position of first occurrence of a string within another, case insensitive // // version: 1109.2015 // discuss at: http://phpjs.org/functions/stripos // + original by: Martijn Wieringa // + revised by: Onno Marsman // * example 1: stripos('ABC', 'a'); // * returns 1: 0 var haystack = (f_haystack + '').toLowerCase(); var needle = (f_needle + '').toLowerCase(); var index = 0; if ((index = haystack.indexOf(needle, f_offset)) !== -1) { return index; } return false; } /** * Si al ser llamada la resolucion es de movil (menos de 993 px) llevara al enlace * @param {type} url * @returns {undefined} */ function redirectIfMobile(url) { if ($(window).width() < 993) window.location.href = url; } // Funcion que pasada una capa (en sistema jquery) y un HTML cambia su contenido function cambiarHTML(capa, contHTML) { $(capa).html(contHTML); } /** * Precarga una imagen en memoria * @param {type} url * @returns {undefined} */ function preloadIMG(url) { new Image().src = url; } /** * Actualiza el captcha de la web y vacia el input respectivo */ function updateCaptcha() { if (confirm(TXT_REFRESCAR_CAPTCHA)) { // Cargamos el elemento y src original elem = $(".input_captcha > img"); src = elem.attr('src'); src = src.substr(0, src.indexOf('?')); // Solicitamos una nueva imagen var d = new Date(); elem.attr('src', src + '?' + d.getTime()); // Vaciamos el texto del captcha $(".input_captcha input[type='text']").val(""); } } var viewMorePaginatorCachePag = Array(); var viewMorePaginatorCache = Array(); var loading_pagination = false; $(document).bind('ready', function(){ // Fix para onpopstate en safari u otros navegadores var page_loaded = false; // Si el usuario utiliza los botones de navegacion la web se recargara completamente window.onpopstate = function(event){ //if(!page_loaded){ page_loaded = true; return false; } window.location.href = window.location.href; } $( ".ver_mas_paginator" ).unbind('click'); $(".ver_mas_paginator").click(function () { if (loading_pagination) return false; loading_pagination = true; var url = $(this).attr("href"); var target = $(this).attr("target-html"); var form = $(this).attr("send-form"); var selfItem = $(this); // Por algun motivo perdemos el $(this) en el ajax, asi lo guardamos if (form) { form = $(form).serialize(); } else { form = {} } preloader('.preloader', true); $.ajax({ type: 'GET', url: url, cache: false, data: form }) .done(function (msg) { preloader('.preloader', false); var newURL = msg.substr(0, msg.indexOf("|")).trim(); if (newURL != '') { selfItem.attr("href", newURL); } else selfItem.css('display', 'none'); //selfItem.remove(); data = msg.substr(msg.indexOf("|") + 1); if (data) { if (target === ".masonry") { data = $(data); $target = $(target); $target.append(data).imagesLoaded( function() { $target.masonry( 'appended', data ); if (is_safari()) { $target.masonry('reloadItems'); $target.masonry('layout'); } }); } else $(target).append(data); } loading_pagination = false; }); return false; }); }); /** * Prepara un ionRangeSlider a un elemento indicado. * Actualmente se requiere cargar "js/other/range" en la plantilla (panelOptions) * @param {string} elementName "name" del elemento * @param {string} postfix Sufijo a concatenar en el numero * @returns {undefined} */ function rangeSlider(elementName, postfix) { if (!postfix) postfix = ""; else postfix = " " + postfix; // Range: var element = $("input[name='"+elementName+"']"); var minHiddenElement = $("input[name='"+elementName+"_min']"); var maxHiddenElement = $("input[name='"+elementName+"_max']"); var max = element.attr("max"); var from = minHiddenElement.val() || 0; var to = maxHiddenElement.val() || max; element.ionRangeSlider({ type: "double", min: 0, from: from, max: max, to: to, keyboard: true, postfix: postfix, hide_min_max: true, onFinish: function(data) { var newMin = data.from > data.min ? data.from : ''; var newMax = data.to < data.max ? data.to : ''; minHiddenElement.val(newMin); maxHiddenElement.val(newMax); } }); } /** * Activa o desactiva el preloader en un target * @param {type} target Elemento que manipularemos * @param {type} enable Si es true lo mostrara, sino ocultara * @returns {undefined} */ function preloader(target, enable) { if (enable) $(target).html('