code: function(firstElement, lastElement) {
  
              var backTab = this.preventBackTab, tab = this.preventTabOut,
                  showEvent = this.showEvent, hideEvent = this.hideEvent;
  
              if (backTab) {
                  backTab.disable();
                  showEvent.unsubscribe(backTab.enable, backTab);
                  hideEvent.unsubscribe(backTab.disable, backTab);
                  backTab = this.preventBackTab = null;
              }
  
              if (tab) {
                  tab.disable();
                  showEvent.unsubscribe(tab.enable, tab);
                  hideEvent.unsubscribe(tab.disable,tab);
                  tab = this.preventTabOut = null;
              }
  
              if (firstElement) {
                  this.preventBackTab = new KeyListener(firstElement, 
                      {shift:true, keys:9},
                      {fn:this.focusLast, scope:this, correctScope:true}
                  );
                  backTab = this.preventBackTab;
  
                  showEvent.subscribe(backTab.enable, backTab, true);
                  hideEvent.subscribe(backTab.disable,backTab, true);
              }
  
              if (lastElement) {
                  this.preventTabOut = new KeyListener(lastElement, 
                      {shift:false, keys:9}, 
                      {fn:this.focusFirst, scope:this, correctScope:true}
                  );
                  tab = this.preventTabOut;
  
                  showEvent.subscribe(tab.enable, tab, true);
                  hideEvent.subscribe(tab.disable,tab, true);
              }
          }
docs: Sets up a tab, shift-tab loop between the first and last elements
  provided. NOTE: Sets up the preventBackTab and preventTabOut KeyListener
  instance properties, which are reset everytime this method is invoked.
  
  @method setTabLoop
  @param {HTMLElement} firstElement
  @param {HTMLElement} lastElement