Source: components/adverts/_advert-grid.js

'use strict';

/**
 * Grid amends when adverts are present.
 * @namespace advertGrid
 * @memberof UCASDesignFramework
 * @param {object} global - UCASDesignFramework object.
 * @param {object} _u - UCASUtilities object.
 */
(function (global, _u) {
  // Create namespace for public methods.
  global.advertGrid = {}
  var advertFromLargeSkyscraperRight
  var advertToLargeFooter

  /**
   * Initialises the module.
   * @function init
   * @memberof! UCASDesignFramework.advertGrid
   * @example
   * UCASDesignFramework.advertGrid.init()
   */
  function init () {
    checkForAdverts()
    updateBodyAttributes()
  }

  /**
   * Work out what type of ads we're expecting.
   */
  function checkForAdverts () {
    advertFromLargeSkyscraperRight = document.getElementsByClassName('advert--fromlarge-skyscraper-right').length > 0
    advertToLargeFooter = document.getElementsByClassName('advert--tolarge-footer').length > 0
  }

  /**
   * Update body attributes.
   * These are used in CSS to amend the grid.
   */
  function updateBodyAttributes () {
    advertFromLargeSkyscraperRight ? document.body.setAttribute('data-advertfromlargeskyscraperright', '') : document.body.removeAttribute('data-advertfromlargeskyscraperright')
    advertToLargeFooter ? document.body.setAttribute('data-adverttolargefooter', '') : document.body.removeAttribute('data-adverttolargefooter')
  }

  /**
   * Assign public methods.
   */
  global.advertGrid = {
    init: init
  }
})(UCASDesignFramework, UCASUtilities)