JavaScript widgets system base. Buttons are now loaded from JavaScript
directly, and new widgets can be added with widgets.addWidget()