text: /* global TelephonySettingHelper */
  /**
   * The module loads scripts used by the root panel. In the future these scripts
   * must be converted to AMD modules. Implementation details please refer to
   * {@link Root}.
   *
   * @module root/root
   */
  define(function(require) {
    'use strict';
  
    var LazyLoader = require('shared/lazy_loader');
  
    /**
     * @alias module:root/root
     * @class Root
     * @requires module:shared/lazy_loader
     * @returns {Root}
     */
    function Root() {}
  
    Root.prototype = {
      _loadScripts: function root_loadScripts() {
        /**
         * Enable or disable the menu items related to the ICC card
         * relying on the card and radio state.
         */
        LazyLoader.load([
          'js/firefox_accounts/menu_loader.js',
          'js/icc_menu.js',
          'js/dsds_settings.js',
          'js/telephony_settings.js',
          'js/telephony_items_handler.js'
        ], function() {
          TelephonySettingHelper
            .init()
            .then(function telephonySettingInitDone() {
              window.dispatchEvent(new CustomEvent('telephony-settings-loaded'));
            });
        });
      },
  
      init: function root_init() {
        // Load the necessary scripts after the UI update.
        setTimeout(this._loadScripts);
      }
    };
  
    return function ctor_root() {
      return new Root();
    };
  });
  