var gsorder = 0; var lastlen = 0; var order = {}; order.key = 0; order.dir = 0; var strPassword; var charPassword; var minPasswordLength = 8; var baseScore = 0, score = 0; var num = {}; num.Excess = 0; num.Upper = 0; num.Numbers = 0; num.Symbols = 0; var bonus = {}; bonus.Excess = 3; bonus.Upper = 4; bonus.Numbers = 5; bonus.Symbols = 5; bonus.Combo = 0; bonus.FlatLower = 0; bonus.FlatNumber = 0; var powertipOptions = {placement: 'ne', smartPlacement: 'true', fadeOutTime: 500}; jQuery.extend(jQuery.fancybox.defaults, { type: 'ajax', autoWidth: 'true', autoHeight: 'true', minHeight: 50, padding: 0, helpers: {overlay : { css : { 'background' : 'rgba(0, 0, 0, 0.1)'}}} }); $(document).ready(function(){ $("[title]").powerTip(powertipOptions); $('input, textarea').placeholder(); setContentSize(); }).ajaxComplete(function() { $("[title]").powerTip(powertipOptions); $('input, textarea').placeholder(); }); function doAction(action, lastAction, id){ var data = {'action' : action,'lastAction': lastAction,'id': id, is_ajax: 1}; $.fancybox.showLoading(); $.ajax({ type: 'POST', dataType: 'html', url: APP_ROOT + '/ajax/ajax_getcontent.php', data: data, success: function(response){ $('#content').html(response); setContentSize(); }, error:function(){$('#content').html(resMsg("nofancyerror"));}, complete: function(){$.fancybox.hideLoading();} }); } function setContentSize(){ // Calculate total height for full body resize var totalHeight = $("#content").height() + 100; var totalWidth = $("#wrap").width(); // alert(totalWidth + 'x' + totalHeight); $("#container").css("height",totalHeight); // $("#wrap").css("width",totalWidth); } function scrollUp(){ $('html, body').animate({ scrollTop: 0 }, 'slow'); } // Función para limpiar un formulario function Clear(id, search){ $("#" + id).resetForm(); if ( search == 1 ){ document.frmSearch.search.value = ""; document.frmSearch.customer.selectedIndex = 0; document.frmSearch.category.selectedIndex = 0; $('#frmSearch input[name="start"]').val(0); $('#frmSearch input[name="skey"]').val(0); $('#frmSearch input[name="sorder"]').val('ASC'); } } // Función para realizar una búsqueda function accSearch(continous){ var lenTxtSearch = $('#txtSearch').val().length; if ( lenTxtSearch < 3 && continous === 1 && lenTxtSearch > window.lastlen ) return; window.lastlen = lenTxtSearch; var datos = $("#frmSearch").serialize(); $.fancybox.showLoading(); $.ajax({ type: 'POST', dataType: 'html', url: APP_ROOT + '/ajax/ajax_search.php', data: datos, success: function(response){ $('#resBuscar').html(response); }, error:function(){$('#resBuscar').html(resMsg("nofancyerror"));}, complete: function(){$.fancybox.hideLoading();} }); return false; } // Función para buscar con la ordenación por campos function searchSort(skey,start,nav){ if ( typeof(skey) == "undefined" || typeof(start) == "undefined" ) return false if ( order.dir === 0 ){ if ( nav === 1 ){ var sorder = 0; } else { if ( order.key > 0 && order.key != skey ){ order.key = skey; var sorder = 0; } else{ order.key = skey; order.dir = 1; var sorder = 1; } } } else { if ( nav === 1 ){ var sorder = 1; } else { if ( order.key > 0 && order.key != skey ){ order.key = skey; var sorder = 1; } else{ order.key = skey; order.dir = 0; var sorder = 0; } } } $('#frmSearch input[name="skey"]').val(skey); $('#frmSearch input[name="sorder"]').val(sorder); $('#frmSearch input[name="start"]').val(start); var frmData = $("#frmSearch").serialize(); $.fancybox.showLoading(); $.ajax({ type: 'POST', dataType: 'html', url: APP_ROOT + '/ajax/ajax_search.php', data: frmData, success: function(response){ $('#resBuscar').html(response); }, error:function(){$('#resBuscar').html(resMsg("nofancyerror"));}, complete: function(){ scrollUp(); $.fancybox.hideLoading(); } }); } // Función para buscar con la ordenación por campos function navLog(start, current){ if ( typeof(start) === "undefined" ) return false $.fancybox.showLoading(); $.ajax({ type: 'POST', dataType: 'html', url: APP_ROOT + '/ajax/ajax_eventlog.php', data: {'start' : start, 'current' : current}, success: function(response){ $('#content').html(response); }, error:function(){$('#content').html(resMsg("nofancyerror"));}, complete: function(){ $.fancybox.hideLoading(); scrollUp(); setContentSize(); } }); } // Función para ver la clave de una cuenta function viewPass(id,full,history){ $.post( APP_ROOT + '/ajax/ajax_viewpass.php', {'accountid': id, 'full': full, 'isHistory' : history}, function( data ) { if ( data.length === 0 ){ doLogout(); } else { resMsg("none",data); } } ); } // Función para las variables de la URL y parsearlas a un array. function getUrlVars(){ var vars = [], hash; var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&'); for(var i = 0; i < hashes.length; i++){ hash = hashes[i].split('='); vars.push(hash[0]); vars[hash[0]] = hash[1]; } return vars; } // Función para autentificar usuarios function doLogin(){ $.fancybox.showLoading(); var form_data = {user: $("#user").val(), pass: $("#pass").val(), mpass: $("#mpass").val(), login: 'login', is_ajax: 1}; $("#btnLogin").prop('disabled',true); $.ajax({ type: "POST", dataType: "xml", url: APP_ROOT + '/ajax/ajax_doLogin.php', data: form_data, success: function(xml){ var status = parseInt($(xml).find("status").text()); var description = $(xml).find("description").text(); if( status === 0 || status === 2 ){ location.href = 'index.php'; } else if ( status === 3 || status === 4 ){ resMsg("error", description); $("#mpass").prop('disabled',false); $('#smpass').show(); } else if ( status === 5 ){ resMsg("warn", description,'',"location.href = 'index.php';"); } else { resMsg("error", description); } }, complete: function(){$('#btnLogin').prop('disabled',false); $.fancybox.hideLoading();}, statusCode: { 404: function() { var txt = LANG[1] + '
' + LANG[22] + '
'; resMsg("error", txt); }}, }); return false; } function doLogout() { location.href = 'index.php?logout=1'; } function checkLogout(){ var session = getUrlVars()["session"]; if ( session == 0 ){ resMsg("warn", LANG[2],'',"location.search = ''"); } } // Función para añadir/editar una cuenta function saveAccount(frm) { var data = $("#"+frm).serialize(); var id = $('input[name="accountid"]').val(); var savetyp = $('input[name="savetyp"]').val(); var action = $('input[name="next"]').val(); switch(savetyp){ case "1": break; case "2": break; } $('#btnGuardar').attr('disabled', true); $.fancybox.showLoading(); $.ajax({ type: 'POST', dataType: 'xml', url: APP_ROOT + '/ajax/ajax_accountsave.php', data: data, success: function(xml){ var status = parseInt($(xml).find("status").text()); var description = $(xml).find("description").text(); if ( status === 0 ){ resMsg("ok", description); if ( savetyp == 1 ){ $('#btnSave').hide(); } else{ $('#btnSave').attr('disabled', true); } if ( action && id ){ doAction(action,'accsearch',id); } } else if ( status === 10){ doLogout(); } else { resMsg("error", description); $('#btnSave').removeAttr("disabled"); } }, error:function(jqXHR, textStatus, errorThrown){ var txt = LANG[1] + '' + errorThrown + textStatus + '
'; resMsg("error", txt); }, complete: function(){$.fancybox.hideLoading();} }); } // Función para eliminar una cuenta function delAccount(id,action,sk){ var data = {accountid: id, savetyp: action, sk: sk}; var atext = '' + LANG[8] + '
' + errorThrown + textStatus + '
'; resMsg("error", txt); }, complete: function(){$.fancybox.hideLoading();} }); return false; } // Función para descargar/ver archivos de una cuenta function downFile(fancy){ if ( $("#files").val() == null ){ resMsg("error", LANG[3]); return false; } if ( fancy == 1){ $.fancybox.showLoading(); $("#action").val('view') var data = $('#files_form').serialize(); $.ajax({ type : "POST", cache : false, url : APP_ROOT + "/ajax/ajax_files.php", data : data, success: function(response) { $.fancybox(response,{padding: [10,10,10,10]}); // Actualizar fancybox para adaptarlo al tamaño de la imagen setTimeout(function() {$.fancybox.update();}, 1000); }, complete: function(){$.fancybox.hideLoading();} }); } else { $('#files_form').submit(); } } // Función para obtener la lista de archivos de una cuenta function getFiles(id, isDel, sk){ var data = {'id' : id, 'del' : isDel, 'sk' : sk}; $.ajax({ type : "GET", cache : false, url : APP_ROOT + "/ajax/ajax_getFiles.php", data : data, success: function(response) { $('#downFiles').html(response); }, complete: function(){$.fancybox.hideLoading();} }); } // Función para eliminar archivos de una cuenta function delFile(id){ if ( $("#files").val() == null ){ resMsg("error", LANG[3]); return false; } $.fancybox.showLoading(); var data = {fileId: $("#files").val(), action: 'delete'}; $.post( APP_ROOT + '/ajax/ajax_files.php', data, function( data ) { $.fancybox.hideLoading(); resMsg("ok", data); $("#downFiles").load( APP_ROOT + "/ajax/ajax_getFiles.php?id=" + id +"&del=1&is_ajax=1"); } ); } // Función para subir archivos de una cuenta function upldFile(id){ var optionsUpld = { beforeSubmit: function(){ if ( $("#upload_form input[name=inFile]").val() == '' ){ resMsg("error", LANG[4]); return false; } $.fancybox.showLoading(); }, success: function(responseText, statusText, xhr, $form){ resMsg("ok", responseText); $("#downFiles").load( APP_ROOT + "/ajax/ajax_getFiles.php?id=" + id +"&del=1&is_ajax=1"); $.fancybox.hideLoading(); }, error:function(jqXHR, textStatus, errorThrown){ $.fancybox.hideLoading(); var txt = LANG[1] + '' + errorThrown + textStatus + '
'; resMsg("error", txt); } }; $('#upload_form').ajaxSubmit(optionsUpld); } // Función para mostrar los registros de usuarios y grupos function usrgrpDetail(id, type, sk, active){ var data = {'id' : id, 'type' : type, 'sk' : sk, 'active' : active}; var url = APP_ROOT + '/ajax/ajax_usersMgmt.php'; $.fancybox.showLoading(); $.ajax({ type: 'POST', dataType: 'html', url: url, data: data, success: function(response){ $.fancybox(response,{ padding: [0,10,10,10], afterClose: function(){doAction('usersmenu','',active);} }); }, error:function(jqXHR, textStatus, errorThrown){ var txt = LANG[1] + '' + errorThrown + textStatus + '
'; resMsg("error", txt); }, complete: function(){$.fancybox.hideLoading();} }); } // Función para editar los registros de usuarios y grupos function usersMgmt(frmId, isDel, id, type, sk){ var data; var url = '/ajax/ajax_usersSave.php'; if ( isDel === 1 ){ var data = {'id' : id, 'type' : type, 'action' : 4, 'sk' : sk }; var atext = '' + LANG[21] + '
' + errorThrown + textStatus + '
'; resMsg("error", txt); }, complete: function(){$.fancybox.hideLoading();} }); } // Función para mostrar el formulario para cambio de clave de usuario function usrUpdPass(id,usrlogin){ var data = {'usrid': id, 'usrlogin': usrlogin}; $.fancybox.showLoading(); $.ajax({ type : "GET", cache : false, url : APP_ROOT + '/ajax/ajax_usrpass.php', data : data, success: function(data) { if ( data.length === 0 ){ doLogout(); } else { $.fancybox(data,{padding: 0}); } } }); } // Función para verificar si existen actualizaciones function checkUpds(){ $.ajax({ type: 'GET', dataType: 'html', url: APP_ROOT + '/ajax/ajax_checkupds.php', timeout: 5000, success: function(response){ $('#updates').html(response); }, error:function(jqXHR, textStatus, errorThrown){ $('#updates').html('!'); } }); } // Función para añadir opciones a un select desde input function addSelOption(dst_id,src_id){ var dup = 0; var value_txt = $("#" + src_id).val().toUpperCase(); if ( typeof(value_txt) == "undefined" || value_txt == "" ){ resMsg("error", LANG[10]); } else { $("#" + dst_id + " option").each(function(){ if ( $(this).val().toUpperCase() == value_txt ){ resMsg("error", LANG[11]); dup = 1; } }); if ( dup == 0 ){ $("#" + dst_id).append(new Option(value_txt, value_txt, true, true)); resMsg("ok", LANG[13]); } $("#" + src_id).val(''); $("#" + dst_id + "option").prop('selected',true); } } // Función para eliminar opciones de un select function delSelOption(id){ var value = $("#" + id +" option:selected").val(); if ( typeof(value) == "undefined" ){ resMsg("error", LANG[12]); } else { $("#" + id +" option:selected").remove(); resMsg("ok", LANG[14]); } } function showOptional(me){ $(me).hide(); $(me).parent().css('width','15em'); var actions = $(me).closest('.cell-actions').children('.actions-optional'); actions.show(250); } // Función para generar claves aleatorias. // By Uzbekjon from http://jquery-howto.blogspot.com.es function password(length, special, fancy, dstId) { var iteration = 0; var password = ""; var randomNumber; if(special == undefined){ var special = false; } while(iteration < length){ randomNumber = (Math.floor((Math.random() * 100)) % 94) + 33; if( ! special ){ if ((randomNumber >=33) && (randomNumber <=47)) { continue; } if ((randomNumber >=58) && (randomNumber <=64)) { continue; } if ((randomNumber >=91) && (randomNumber <=96)) { continue; } if ((randomNumber >=123) && (randomNumber <=126)) { continue; } } iteration++; password += String.fromCharCode(randomNumber); } if ( fancy == true ){ $("#viewPass").attr("title",password); //alertify.alert('' + LANG[15] + '
' + password + '
'); } else { alertify.alert('' + LANG[15] + '
' + password + '
'); } if ( dstId ){ checkPassLevel(password); $('#' + dstId +' input:password').val(password); $('#' + dstId + ' #passLevel').show(500); } else{ checkPassLevel(password); $('input:password').val(password); $('#passLevel').show(500); } //return password; } // Funciónes para analizar al fortaleza de una clave // From http://net.tutsplus.com/tutorials/javascript-ajax/build-a-simple-password-strength-checker/ function checkPassLevel(password, dstId){ strPassword= password; charPassword = strPassword.split(""); num.Excess = 0; num.Upper = 0; num.Numbers = 0; num.Symbols = 0; bonus.Combo = 0; bonus.FlatLower = 0; bonus.FlatNumber = 0; baseScore = 0; score = 0; if (charPassword.length >= minPasswordLength){ baseScore = 50; analyzeString(); calcComplexity(); } else { baseScore = 0; } if ( dstId ){ outputResult(dstId); } else{ outputResult(dstId); } } function analyzeString (){ for (i=0; iOops...
' + LANG[1] + '
' + txt + '