text: 'use strict';
  
  /**
   * This view updates the customer navigation before rendering the template.
   * @module views/CustomerServiceView
   */
  
  var View = require('./View');
  
  /* API Includes */
  var ContentMgr = require('dw/content/ContentMgr');
  var LinkedHashMap = require('dw/util/LinkedHashMap');
  /**
   * Updates the customer navigation information.
   *
   * @class views/CustomerServiceView~CustomerServiceView
   * @extends module:views/View
   * @lends module:views/CustomerServiceView~CustomerServiceView.prototype
   * @returns {module:views/CustomerServiceView~CustomerServiceView} A view with updated information.
   */
  var CustomerServiceView = View.extend({
  
      /**
       * Determines the customer navigation from the folder structure in the content library. Returns the list of
       * customer service folders. The root folder for customer service content is the folder having the ID
       * 'customer-service'.
       *
       * @returns {LinkedHashMap} List of customer service folders.
       */
      getCustomerServiceLinks: function () {
          // get the customer service folder
          var content = ContentMgr.getFolder('customer-service');
  
          if (content) {
              var customerServiceLinks = new LinkedHashMap();
  
              var customerServiceFolders = content.getOnlineSubFolders();
  
              for (var i = 0; i < customerServiceFolders.size(); i++) {
                  var folder = customerServiceFolders[i];
  
                  // Gets the content assets for the folder.
                  var onlineContent = folder.getOnlineContent();
  
                  customerServiceLinks.put(folder.getDisplayName(), onlineContent);
              }
  
              // Outputs the target address.
              return customerServiceLinks;
          }
      },
  
      /**
       * Adds customer, session, request, and customer service link information to the view.
       * @constructs CustomerServiceView~CustomerServiceView
       * @extends module:views/View~View
       * @param {Object} params The parameters to pass to the template for rendering.
       * @returns {module:views/CartView~CartView} A CustomerService view.
       */
      init: function (params) {
          this._super(params);
          this.CustomerServiceLinks = this.getCustomerServiceLinks();
          this.ContinueURL = dw.web.URLUtils.https('CustomerService-Submit');
  
          return this;
      }
  
  });
  
  module.exports = CustomerServiceView;
  