// Extension to monitor attempts to print pages. ;(function (global) {

'use strict'

var GOVUK = global.GOVUK || {}

GOVUK.analyticsPlugins = GOVUK.analyticsPlugins || {}

GOVUK.analyticsPlugins.printIntent = function () {
  var printAttempt = function () {
    GOVUK.analytics.trackEvent('Print Intent', document.location.pathname)
    GOVUK.analytics.trackPageview('/print' + document.location.pathname)
  }

  // Most browsers
  if (global.matchMedia) {
    var mediaQueryList = global.matchMedia('print')
    var mqlListenerCount = 0
    mediaQueryList.addListener(function (mql) {
      if (!mql.matches && mqlListenerCount === 0) {
        printAttempt()
        mqlListenerCount++
        // If we try and print again within 3 seconds, don't log it
        setTimeout(function () {
          mqlListenerCount = 0
          // printing will be tracked again now
        }, 3000)
      }
    })
  }

  // IE < 10
  if (global.onafterprint) {
    global.onafterprint = printAttempt
  }
}

global.GOVUK = GOVUK

})(window)