(function() {
      // 
  var evVarDebuggingOutput = false
  // 
  function logToConsole () {
    if(typeof(evVarDebuggingOutput) !== 'undefined' && evVarDebuggingOutput === true) {
      console.log(...arguments)
    }
  }
  function warnToConsole () {
    if(typeof(evVarDebuggingOutput) !== 'undefined' && evVarDebuggingOutput === true) {
      console.warn(...arguments)
    }
  }
      window.Reely = window.Reely || {}
      Reely.PlayerEmbeds = Reely.PlayerEmbeds || []

      Reely.PlayerEmbeds.push('player-' + (Reely.PlayerEmbeds.length + 1))

      var currentPlayerId = Reely.PlayerEmbeds[Reely.PlayerEmbeds.length - 1]

      // requesttype javascript -- evX.req js
      var iframeElement = document.createElement('iframe')
      iframeElement.src = 'https://www.hub.fdncms.com/gyrobase/Responsive/Components/Content/TopStoriesVideo?cb=9cb68d5d&key=523a993aecfabcb2aca3ecadd07fdf13&req=iframe&vrd=2&vri=2'
      iframeElement.style.setProperty("width", "100%")
      iframeElement.style.setProperty("height", "100%")
      iframeElement.style.setProperty("border", "0")

      iframeElement.onload = function () {
        reportInViewAndFocusData()
        reportReferringDomain()
      }

      var scriptElement = document.querySelector('#fdncms-carousel-top-stories-video')
      scriptElement.id = scriptElement.id + '-' + currentPlayerId
      scriptElement.parentNode.insertBefore(iframeElement, scriptElement)

      var inViewFocusTypes = ['scroll','blur','focus','resize']
      var interactionTypes = ['click','tap','scroll','resize']

      function reportInViewAndFocusData () {
        var documentHasFocus = document.hasFocus()
        var boundingRect = iframeElement.getBoundingClientRect()
        iframeElement.contentWindow.postMessage({
          FDNIframeInParentBoundingRectHeight: boundingRect.height,
          FDNIframeInParentBoundingRectTop: boundingRect.top,
          FDNParentInnerHeight: window.innerHeight,
          FDNParentHasFocus: documentHasFocus,
        },'*')
      }
      function reportReferringDomain () {
        iframeElement.contentWindow.postMessage({
          FDNReferringDomain: window.location.origin,
        },'*')
      }
      function reportInteractionData () {
        iframeElement.contentWindow.postMessage('interactions were had','*')
      }
      function inViewAndFocusHandler (e) {
        if(inViewFocusTypes.includes(e.type)) {
          // logToConsole(e.type + ' inViewAndFocusHandler fired')
          reportInViewAndFocusData()
        }
      }
      function interactionHandler(e) {
        if(interactionTypes.includes(e.type)) {
          // logToConsole(e.type + ' interactionHandler fired')
          reportInteractionData ()
        }
      }
      for(const type of inViewFocusTypes) {
        // logToConsole('adding listener for: ' + type)
        window.addEventListener(type, inViewAndFocusHandler)
      }
      for(const type of interactionTypes) {
        // logToConsole('adding listener for: ' + type)
        window.addEventListener(type, interactionHandler)
      }

      var inViewFocusTypes = ['scroll','blur','focus','resize']
      var interactionTypes = ['click','tap','scroll','resize']

      window.addEventListener('message', function(e) {
        if(e.origin.match(/^https\:\/\/.*fdncms.com$/)) {
          // Validate datas 
          // logToConsole(e.origin)
          if(typeof(e.data.FDNCarouselHeight) === 'number') {
            iframeElement.style.setProperty("height", e.data.FDNCarouselHeight + "px")
          }
        }
      })

    })()
