key(s)


  
  // 'keys' code adapted from MozPoint (http://mozpoint.mozdev.org/)
  function keys(key) {
          if (!key) {
                  key = event;
                  key.which = key.keyCode;
          }
          if (key.which == 84) {
                  toggle();
                  return;
          }
          if (s5mode) {
                  switch (key.which) {
                          case 10: // return
                          case 13: // enter
                                  if (window.event && isParentOrSelf(window.event.srcElement, 'controls')) return;
                                  if (key.target && isParentOrSelf(key.target, 'controls')) return;
                                  if(number != undef) {
                                          goTo(number);
                                          break;
                                  }
                          case 32: // spacebar
                          case 34: // page down
                          case 39: // rightkey
                          case 40: // downkey
                                  if(number != undef) {
                                          go(number);
                                  } else if (!incrementals[snum] || incpos >= incrementals[snum].length) {
                                          go(1);
                                  } else {
                                          subgo(1);
                                  }
                                  break;
                          case 33: // page up
                          case 37: // leftkey
                          case 38: // upkey
                                  if(number != undef) {
                                          go(-1 * number);
                                  } else if (!incrementals[snum] || incpos <= 0) {
                                          go(-1);
                                  } else {
                                          subgo(-1);
                                  }
                                  break;
                          case 36: // home
                                  goTo(0);
                                  break;
                          case 35: // end
                                  goTo(smax-1);
                                  break;
                          case 67: // c
                                  showHide('k');
                                  break;
                  }
                  if (key.which < 48 || key.which > 57) {
                          number = undef;
                  } else {
                          if (window.event && isParentOrSelf(window.event.srcElement, 'controls')) return;
                          if (key.target && isParentOrSelf(key.target, 'controls')) return;
                          number = (((number != undef) ? number : 0) * 10) + (key.which - 48);
                  }
          }
          return false;
  }