import TextField from 'nilavu/components/text-field';

/**
  Same as text-field, but with special features for a password input.
  Be sure to test on a variety of browsers and operating systems when changing this logic.
**/
export default TextField.extend({
  canToggle: false,

  keyPress(e) {
    if ((e.which >= 65 && e.which <= 90 && !e.shiftKey) || (e.which >= 97 && e.which <= 122 && e.shiftKey)) {
      this.set('canToggle', true);
      this.set('capsLockOn', true);
    } else if ((e.which >= 65 && e.which <= 90 && e.shiftKey) || (e.which >= 97 && e.which <= 122 && !e.shiftKey)) {
      this.set('canToggle', true);
      this.set('capsLockOn', false);
    }
  },

  keyUp(e) {
    if (e.which === 20 && this.get('canToggle')) {
      this.toggleProperty('capsLockOn');
    }
  },

  focusOut() {
    this.set('capsLockOn', false);
  },

  focusIn() {
    this.set('canToggle', false); // can't know the state of caps lock yet. keyPress will figure it out.
  }
});
