// FavIcon Switcher V1.2.2
;(function(mod){
  function collectLinks() {
    return Array.prototype.slice.apply(
      document.head.querySelectorAll('link[rel*="icon"]')
    )
  }
  
  function applyLink(source, target) {
    target.setAttribute('type', source.getAttribute('type'))
    target.setAttribute('href', source.getAttribute('href'))
  }
  
  // eslint-disable-next-line no-unused-vars
  function initSwitcher(delay) {
    // Exit if media queries aren't supported
    if (typeof window.matchMedia !== 'function') {
      return function noop() {}
    }
  
    var links = collectLinks()
    var current = document.createElement('link')
    var prevMatch
  
    current.setAttribute('rel', 'shortcut icon')
    document.head.appendChild(current)
  
    function faviconApplyLoop() {
      var matched
  
      links.forEach(function(link) {
        if (window.matchMedia(link.media).matches) {
          matched = link
        }
      })
  
      if (! matched) {
        return
      }
  
      if (matched.media !== prevMatch) {
        prevMatch = matched.media
        applyLink(matched, current)
      }
    }
  
    var intervalId = setInterval(faviconApplyLoop, delay || 300)
  
    function unsubscribe() {
      clearInterval(intervalId)
      links.forEach(function(link) {
        document.head.appendChild(link)
      })
    }
  
    faviconApplyLoop()
    links.forEach(function(link) {
      document.head.removeChild(link)
    })
  
    return unsubscribe
  }
  
  initSwitcher()
  })()