'use strict'

var secretRevealed = false
var doSecretReveal
var resetSecretReveal

doSecretReveal = function () {
  // Remove the negative offset from the banner, while also scrolling down the page
  // this reveals the secret without affecting the users position on the page
  document.body.className = document.body.className.replace('is-offset', '')
  window.scroll(0, window.scrollY + 195)
  secretRevealed = true
}

resetSecretReveal = function () {
  if (secretRevealed) {
    // The native browser behaviour of automatically scrolling to a users last position on refresh
    // is upset by our revealing of the secret banner. This meant that, on refresh, the position
    // the browser returns the user to is incorrect. To compensate for this, we hide the secret banner
    // section again and adjust the page scroll value accordingly
    document.body.className += ' is-offset'
    window.scroll(0, Math.max(window.scrollY - 195, 0))
  }
}

document.addEventListener('DOMContentLoaded', function () {
  // 3000 ms is arbitrary, though there must be at least some
  // delay here, otherwise it doesn't seem to play ball
  setTimeout(doSecretReveal, 3000)
})

window.addEventListener('beforeunload', function () {
  resetSecretReveal()
})