I'm trying to figure out what the assignment to id means in the following snippet, and in particular the '-$1'.  I do see that it's taking the DOM element text and swapping in something else, and then lowercasing the result.  I just don't understand what is being swapped in.
   for (var k in ui) {
      var id = k.replace(/([A-Z])/, '-$1').toLowerCase();
      var element = document.getElementById(id);
      if (!element) {
        throw "Missing UI element: " + k;
      }
      ui[k] = element;
    }