include("lib.prototype"); include("lib.jquery"); include("lib.jquerynoconflicts"); include("lib.nprogress"); include("lib.onload"); include("fitbank.util"); include("fitbank.proc.mensajes"); include("fitbank.proc.parametros"); /** * Namespace Clave - Contiene las funciones para la página de cambio de clave. */ var Clave = { /** * Inicializa el formulario de cambio de clave. * * @private */ init: function() { document.disableContextMenu(); Clave.formulario = $("clave"); Clave.useKeypad = $("useKeypad"); Clave.preguntas = document.getElementsByName("respuestas"); if (!Clave.formulario) { return; } $("instrucciones").update(Util.getMensaje(Mensajes, "fitbank.clave.INSTRUCCIONES")); Clave.formulario.action = "proc/clave"; Clave.formulario.method = "POST"; Clave.formulario.onsubmit = Clave.cambiar; Clave.formulario.focusFirstElement(); Clave.progreso = new Element("img", { className: "ingreso-progreso", src: "img/progreso.gif" }); Clave.formulario.insert( { after: Clave.progreso }); Clave.formulario.insert(new Element("input", { type: "hidden", name: "_contexto", value: "sig" })); Clave.progreso.hide(); new Ajax.Request(Clave.preguntas.length > 0 ? "proc/names_preguntas" : "proc/names", { parameters: { _contexto: "sig", hash: Math.random() * 10, cambio: true }, onComplete: Clave.initNames }); }, /** * Función que inicializa las teclas. */ initNames: function(transport) { var json = transport.responseJSON; Clave.clave = Clave.formulario.select("input[type=password]")[0]; Clave.clave2 = Clave.formulario.select("input[type=password]")[1]; var labels = Clave.formulario.select("label"); Clave.clave.name = json.nameClave; labels[0].setAttribute("for", json.nameClave); Clave.clave2.name = json.nameClave2; labels[1].setAttribute("for", json.nameClave2); if (Clave.preguntas) { var labels = Clave.formulario.select("label.labelPregunta"); for (var i = 0; i < labels.length; i++) { labels[i].update(json.preguntas[i] + ":"); } } if (Clave.preguntas) { var labels = Clave.formulario.select("label.labelPregunta"); for (var i = 0; i < labels.length; i++) { labels[i].update(json.preguntas[i] + ":"); } } if (Parametros['fitbank.ingreso.KEYPAD'] && Parametros['fitbank.ingreso.KEYPAD'] == "true") { Clave.useKeypad.checked = true; Clave.keypad(Clave.clave); Clave.keypad(Clave.clave2); } }, /** * Ejecuta el proceso de Clave. * * @private */ cambiar: function() { (function() { Clave.formulario.hide(); $("instrucciones").hide(); if(!Mobile) { Clave.progreso.show(); } else { NProgress.start(); } Clave.clave.value = ""; Clave.clave2.value = ""; Clave.useKeypad.checked = false; }).defer(); return true; }, /** * Genera un teclado con letras y numeros. * * @private */ keypad: function(elementoClave) { var botones = new Element('div', { className: 'keypad' }); new ObjectRange(0, 9).each(function(i) { var boton = new Element('button', { onclick: "return false;" }).setStyle({ backgroundImage: 'url("img/proc/img_tecla/' + i + '.png?_contexto=sig&rand=' + Math.random() + '")' }); boton.on('click', function() { elementoClave.value = elementoClave.value + "" + i; }); botones.insert(boton); }); new ObjectRange('a', 'z').each(function(i) { var boton = new Element('button', { onclick: "return false;" }).update(i.toUpperCase()); boton.on('click', function() { elementoClave.value = elementoClave.value + "" + i; }); botones.insert(boton); }); var boton = new Element('button', { onclick: "return false;" }).update('<'); boton.on('click', function() { elementoClave.value = elementoClave.value.substring(0, elementoClave.value.length - 1); }); botones.insert(boton); elementoClave.insert({after: botones}); elementoClave.handler = elementoClave.on('keypress', function(e) { new Evento(e).cancelar(); return false; }); elementoClave.value = ""; elementoClave.readOnly = true; } }; addOnLoad(Clave.init);