Source: scripts/helper/_environments.js

'use strict';

/**
 * Amends to markup in certain environments.
 * @namespace environments
 * @memberof UCASDesignFramework
 * @param {object} global - UCASDesignFramework object.
 * @param {object} _u - UCASUtilities object.
 */
(function (global, _u) {
  var environment
  var environments = {
    'HEP': 'https://hep-digital.ucasenvironments.com'
  }

  /**
   * Initialise environments plugin.
   * @function init
   * @memberof! UCASDesignFramework.environments
   * @public
   */
  function init () {
    environment = document.documentElement.getAttribute('data-environment')
    if (environment && environments[environment]) {
      var header = document.getElementById('section--upper-header')
      if (header) {
        var logo = header.getElementsByClassName('logo')[0]
        if (logo) {
          logo.setAttribute('href', environments[environment])
        }
        addBanner(environment)
      } else {
        _u.log.log('Element #section--upper-header not found.')
      }
    }
  }

  /**
   * Add environment banner.
   * @function addBanner
   * @memberof! UCASDesignFramework.environments
   * @param {string} environment - String representing the environment.
   */
  function addBanner (environment) {
    var pageWrapper = document.querySelector('.page-wrapper,#wrapper')
    if (!pageWrapper.querySelector('.wrapper-background--test-environment')) {
      var parser = new DOMParser()
      var domString = '<div class="section wrapper-background wrapper-background--test-environment"><div class="wrapper wrapper--padding">TEST ENVIRONMENT</div></div>'
      var html = parser.parseFromString(domString, 'text/html')
      pageWrapper.appendChild(html.body.firstChild)
    }
  }

  /**
   * Fake environment attribute.
   * @function fakeEnvironment
   * @memberof! UCASDesignFramework.environments
   * @param {string} environment - String representing the environment.
   * @public
   */
  function fakeEnvironment (environment) {
    document.documentElement.setAttribute('data-environment', environment)
    init()
  }

  // Expose public methods.
  global.environments = {
    init: init,
    initOnLoad: true,
    fakeEnvironment: fakeEnvironment
  }
})(UCASDesignFramework, UCASUtilities)