/** * NAME * * ECMAScript * * @author Takashi Mizohata */ /* var Colleague = function () { this.setMediator = function (mediator) {}; this.setColleagueEnabled = function (enabled) {}; } var Mediator = function () { this.createColleagues = function () {}; this.colleagueChanged = function () {}; } */ var LoginFrame = function () { //Object.extend(this, Mediator); this.radioGuest; this.radioUser; this.textUser; this.textPass; this.buttonCancel; this.buttonOk; this.init = function () { var radios = $('fsCategory').getElementsByTagName('input'); this.radioGuest = new ColleagueRadioButton(radios[0]); this.radioUser = new ColleagueRadioButton(radios[1]); this.textUser = new ColleagueTextField($('inpUser')); this.textPass = new ColleagueTextField($('inpPass')); this.buttonCancel = new ColleagueButton($('btnCancel')); this.buttonOk = new ColleagueButton($('btnOk')); this.radioGuest.setMediator(this); this.radioUser.setMediator(this); this.textUser.setMediator(this); this.textPass.setMediator(this); this.buttonCancel.setMediator(this); this.buttonOk.setMediator(this); this.radioGuest.element.checked = true; this.textUser.element.disabled = true; this.textPass.element.disabled = true; } this.colleagueChanged = function (ev) { switch(true) { case this.radioGuest.getState(): this.textUser.setColleagueEnabled(false); this.textPass.setColleagueEnabled(false); this.buttonOk.setColleagueEnabled(true); break; case this.radioUser.getState(): this.textUser.setColleagueEnabled(true); this.userpassChanged(); break; default: alert('implement this first.'); break; } } this.userpassChanged = function () { if (this.textUser.getText().length > 0) { this.textPass.setColleagueEnabled(true); if (this.textPass.getText().length > 0) { this.buttonOk.setColleagueEnabled(true); } else { this.buttonOk.setColleagueEnabled(false); } } else { this.textPass.setColleagueEnabled(false); this.buttonOk.setColleagueEnabled(false); } } this.actionPerformed = function (ev) { switch (ev.target.innerHTML) { case 'cancel': alert('Cancel'); this.textUser.element.value = ''; this.textPass.element.value = ''; break; case 'ok': alert('Ok'); break; default: alert('Not yet implemented'); break; } } } var controller = new LoginFrame(); Event.observe(window, 'load', controller.init.bind(controller));