code: function (index, dir) {
              var children = this.get('children'), len = children.length, o = index;
              do {
                  var c = children[index];
                  if (!c.get('disabled') && c.get('visible') !== false) {
                      return children[index];
                  }
                  index = (index + dir + len) % len;
              } while (index !== o);
              return undefined;
          }
docs: dir : -1 ,+1 skip disabled items