/*
 * Konami code support
 */

// Cursor denote the position in konami code
let cursor = 0
const KONAMI_CODE = [38, 38, 40, 40, 37, 39, 37, 39, 66, 65]

function afterKonami () {
  // Load Rythm.js
  var rythmScript = document.createElement('script')
  rythmScript.setAttribute('src', '//unpkg.com/rythm.js@2.2.5/rythm.min.js')
  document.head.appendChild(rythmScript)

  rythmScript.addEventListener('load', function () {
    // Ker-Lyon audio courtesy of @adalan, ker-lyon.fr
    const audioElement = new Audio('/static/song/konami.ogg')
    audioElement.loop = true
    audioElement.play()

    const rythm = new Rythm()
    rythm.connectExternalAudioElement(audioElement)
    rythm.addRythm('card', 'pulse', 50, 50, {
      min: 1,
      max: 1.1
    })
    rythm.addRythm('d-flex', 'color', 50, 50, {
      from: [64, 64, 64],
      to: [255, 0, 101]
    })
    rythm.addRythm('nav-link', 'jump', 150, 50, {
      min: 0,
      max: 10
    })
    rythm.start()
  })
}

// Register custom event
document.addEventListener('keydown', (e) => {
  cursor = (e.keyCode === KONAMI_CODE[cursor]) ? cursor + 1 : 0
  if (cursor === KONAMI_CODE.length) {
    afterKonami()
  }
})
