
console.time('ads')

function is_mobile() {
  return (
    window.getComputedStyle(document.querySelector('.hidden-xs')).display ===
    'none'
  )
}

function create_ad(id, classList) {
  var div = document.createElement('div')
  div.setAttribute('id', id)

	let adxCustom = {
		//desktop
		'custom0': 1985980,
		'custom8': 1985984,

		//mobile
		'custom11': 1985986,
		'custom12': 1985987,
		'custom13': 1985988,
		'custom14': 1985989,
	}

	let customId = classList.split(' ').find(c => c.startsWith('custom'))
	//console.log('>>ad:', id, 'class:', customId)

	if (window.adsrc == 'holid2' && adxCustom[customId] !== undefined) {
		let mid = adxCustom[customId]

		let rn = parseInt(Math.random()*1e6)
		let u0 = `//adx.adform.net/adx/?mid=${mid}&rnd=${rn}`
		let u1 = '//s1.adform.net/banners/scripts/adx.js'

		let s0 = document.createElement("script")
		s0.type = "text/javascript"
		s0.setAttribute('data-adfscript', u0)

		let s1 = document.createElement("script")
		s1.type = "text/javascript"
		s1.async = true
		s1.defer = true
		s1.src = u1

		div.append(s0)
		div.append(s1)
	}

  if (classList) {
    div.className = classList
  }

  if (classList.match(/Taboola/i)) {
    div.style = 'padding:10px'
  }

  return div
}

function adcontainer(el, type) {
  if (!el) {
    return el
  }

  el.setAttribute('type', type)
  el.className += ' adcontainer'
  return el
}

function childOf(node, ancestor) {
  var child = node
  while (child !== null) {
    if (child === ancestor) return true
    child = child.parentNode
  }
  return false
}

function ads_error(str) {
  console.error(str)

  var el = document.createElement('img')
  el.src = '/ads/error?err=' + encodeURIComponent(str)
}

function ads_get_forumids() {
  var el = document.querySelector('#script-adsys')
  if (!el) {
    return [10000]
  }
  var ids = el.getAttribute('src').match(/forumids=([0-9,]+)/)
  if (!ids || !ids.length) {
    return [10000]
  }
  ids = ids[1].split(',').map(function (x) {
    return parseInt(x)
  })
  return ids
}

function ads_get_forumid() {
  var ids = ads_get_forumids()
  return ids[0]
}

function get_categories() {
  var el = document.querySelector('#script-adsys')
  if (!el) {
    return 'test'
  }
  var match = el.getAttribute('src').match(/categories=(.*)/)
  if (!match) {
    return 'test'
  }
  return match[1].split(',')
}

//wait until dom have ad-slots
function defer_dom_load(method) {
  if (document.getElementById('footer')) {
    method()
  } else {
    setTimeout(function () {
      defer_dom_load(method)
    }, 10)
  }
}

//wait until jquery is loaded
function defer_jquery(method) {
  if (window.jQuery) {
    method()
  } else {
    setTimeout(function () {
      defer_jquery(method)
    }, 50)
  }
}

function load_holid_kv() {
	//first check we view forum/thread and have a nav
	let forumids = ads_get_forumids()
	if (!forumids.length) {
		return
	}

	let nav = []
	for (let el of document.querySelectorAll('.list-forum-title > ol > li')) {
		nav.push(el.innerText)
	}

	if (!nav.length) {
		return
	}

	let nLetter = ['zero', 'one', 'two', 'three'];

	//ex. Politik > Politik: inrikes
	let holid_keyvalues = {}
	nav.slice(0, 2).map((title, i) => {
		let kk = nLetter[i+1]
		k = `tier_${kk}_kv`
		holid_keyvalues[k] = title
	})

	holid_keyvalues['flashback_userLoggedIn'] = +isLoggedIn()

	window.holid_keyvalues = holid_keyvalues
	return holid_keyvalues
}

function ads_checkad(adtype, ad) {
  if (typeof ad.id != 'number') return false

  for (var prop in ad) {
    if (!ad.hasOwnProperty(prop)) continue
    if (prop != 'id' && typeof ad[prop] != 'string') return false

    if (prop == 'img_url') {
      var a = document.createElement('a')
      a.href = ad[prop]
      if (a.protocol != 'http' && a.protocol != 'https') return false
      if (a.hostname != 'static.flashback.org') return false
    }
  }

  return true
}

function ads_generate_dom(ad_type, ad) {
  var forumid = ads_get_forumid()
  var mobile = is_mobile()
  var href =
    '/ads/click/' + ad.id + '?from=' + forumid + '&mobile=' + mobile.toString()

  if (ad_type.match(/takeover/)) {
    var adSRC = ad.imgurl

    var imgHeight = Math.min(675, window.innerHeight - 150) + 'px'
    if (ad_type == 'image-takeovermobile') {
      imgHeight = Math.min(600, window.innerHeight - 130) + 'px'
    } else {
      if (window.innerWidth < 1200) {
        imgHeight = (window.innerWidth / 1200) * 600 + 'px'
      }
    }

    return (
      '<div id="takeover-banner"><div id="takeover-banner-backdrop"><div id="takeover-banner-container"><div id="takeover-banner-content"><div id="takeover-banner-toolbar"><a id="takeover-banner-close" href="#"><i class="glyphicon glyphicon-remove"></i></a></div><a id="takeover-banner-image-wrapper" href="' +
      href +
      '" target="_blank"><img src="' +
      adSRC +
      '" style="height:' +
      imgHeight +
      '" /></a><a class="btn btn-default btn-md" href="#">Stäng</a><a class="btn btn-default btn-md" href="' +
      href +
      '" target="_blank">Till Annons</a></div></div></div></div>'
    )
  } else {
    if (
      typeof ad.imgurl !== 'string' ||
      !ad.imgurl.match(/^https:\/\/static.flashback.org\//)
    ) {
      throw 'Malformed img ad'
    }

    return (
      '<a href="' +
      href +
      '" target="_blank" rel="noopener" class="ad"><img src="' +
      ad.imgurl +
      '" /></a>'
    )
  }
}

function ads_load(ads) {
  var els_by_type = {},
    i
  var containers = document.querySelectorAll('.adcontainer')
  for (i = 0; i < containers.length; i++) {
    var el = containers[i]
    var type = el.getAttribute('type')
    if (!els_by_type[type]) {
      els_by_type[type] = []
    }

    els_by_type[type].push(el)
  }

  for (var ad_type in ads) {
    // weird error
    if (!els_by_type[ad_type] || !Array.isArray(ads[ad_type])) {
      continue
    }

    els_by_type[ad_type].reverse()
    ads[ad_type].map(function (ad) {
      var el = els_by_type[ad_type].pop()
      el.innerHTML = ads_generate_dom(ad_type, ad)
    })
  }
}

function ads_fetch(adTypes, callback) {
  var forumid = ads_get_forumid()

  var xhr = new XMLHttpRequest()
  var url = '/ads2/' + forumid
  xhr.open('POST', url, true)
  xhr.setRequestHeader('Content-Type', 'application/json')
  xhr.onreadystatechange = function () {
    if (xhr.readyState === 4 && xhr.status === 200) {
      var ads = JSON.parse(xhr.responseText)
      return callback(null, ads)
    }
  }

  var data = JSON.stringify(adTypes)
  xhr.send(data)

  return
}

// cycle through ads - change every 10s if mouse/touch move
// TODO only if show
function setup_adcycle() {
  var $container = $(this)
  var num_ads = 0,
    adcheck_interval,
    sec_refresh = 30

  var check_ads = function () {
    if ($container.find('.ad').length <= 0) {
      return
    }

    clearInterval(adcheck_interval)
    num_ads++
  }

  adcheck_interval = setInterval(check_ads, 100)

  var sec_ticker = 0,
    pos_prev = 0,
    pos_now = 1

  setInterval(function () {
    var pos_changed = pos_prev !== pos_now
    sec_ticker++

    if (!pos_changed || sec_ticker < sec_refresh) {
      return
    }

    var active_ad = 0
    try {
      active_ad = parseInt(
        $container
          .find('.ad')
          .attr('href')
          .match(/click\/(\d+)/)[1]
      )
    } catch (e) {}

    ads_fetch(
      { isMobile: is_mobile(), 'image-outsider': 1, skip: [active_ad] },
      function (err, ads) {
        if (!ads || !ads['image-outsider'] || !ads['image-outsider'].length) {
          return
        }

        try {
          var new_ad = ads['image-outsider'][0].id

          if (new_ad == active_ad) {
            return
          }

          active_ad = new_ad
        } catch (e) {
          return
        }

        ads_load(ads)
      }
    )

    pos_prev = pos_now
    sec_ticker = 0
  }, 1000)

  // make sure we've moved
  var movement = function (e) {
    var x = 0,
      y = 0

    // touch/mouse event
    if (e.changedTouches && e.changedTouches.length) {
      x = e.changedTouches[0].clientX
      y = e.changedTouches[0].clientY
    } else {
      x = e.clientX
      y = e.clientY
    }

    pos_now = x * y
  }

  $('body').on('mousemove', movement)
  $('body').on('touchmove', movement)
}

// cycle between osys && window.adsrc
function get_random_adsrc() {
  if (window.adsrc == 'osys') {
    return 'osys'
  }

  //index= only osys ads
  if (window.adsrc=='holid2' && location.pathname=='/') {
    return 'osys'
  }

  if (Math.random() > 0.85) {
    return 'osys'
  }

  return window.adsrc
}

function ads_init_slots() {
  var isMobile = is_mobile()
  var platform = isMobile ? 'mobile' : 'desktop'
  var slot_adsrc = 'osys'
  var i = 0

  if (!isMobile) {
    var ad_top, ad_right

    slot_adsrc = get_random_adsrc()
    if (slot_adsrc == 'holid' || slot_adsrc == 'holid2') {
      ad_top = create_ad('top-banner-container-holid', 'holidAds custom0')
    } else {
      ad_top = create_ad('top-banner-container', 'banner-container')
    }

    slot_adsrc = get_random_adsrc()
    if (slot_adsrc == 'holid') {
      ad_right = create_ad(
        'outsider-banner-container-holid',
        'holidAds custom8'
      ) // +9,10
    } else if (slot_adsrc == 'holid2') {
      ad_right = create_ad(
        'outsider-banner-container-holid',
        'holidAds custom8'
      )
    } else {
      ad_right = create_ad('outsider-banner-container', 'banner-container')
    }

    var sel_top = '#top-banner-wrapper'
    var sel_right = '#outsider-banner-wrapper'

    if (document.querySelector(sel_top)) {
      document.querySelector(sel_top).prepend(ad_top)
    }

    if (document.querySelector(sel_right)) {
      document.querySelector(sel_right).prepend(ad_right)
    }
  }

  var location_type = 'unknown'
  var sel_iter = '#posts .post'
  if (location.pathname.match(/^\/(search.php)/)) {
    location_type = 'unknown'
  } else if (document.querySelector('#posts .post')) {
    location_type = 'posts'
    sel_iter = '.list-forum-title, #posts .post'

    /* activate bottom banner container
    if (isMobile && document.querySelectorAll(sel_iter).length == 13) {
        document.querySelector('#bottom-banner-container').classList.add('banner-container')
    }*/
  } else if (document.querySelectorAll('.forumslist').length > 1) {
    location_type = 'index'
    sel_iter = '.forumslist'
  } else if (document.querySelector('.table-threads')) {
    location_type = 'threads'
    sel_iter = '.table-threads'
  } else if (document.querySelector('.forumslist')) {
    location_type = 'forums'
    sel_iter = '.forumslist'
  }

  if (location.pathname.match(/^\/(aktuella-amnen)/)) {
    location_type = 'threads-aktuella-amnen'
    sel_iter = '.table-threads:not(:nth-of-type(2))'
  } else if (location.pathname.match(/^\/(populara-amnen|nya-amnen|nya-inlagg)/)) {
    location_type = 'threads-special'
    let n = location.pathname.match(/^\/nya-/) ? 15 : 10
    el = document.querySelector('.table-threads tr:nth-child('+n+')')
    var tr = document.createElement('tr')
    var td = document.createElement('td')
    td.setAttribute('colspan', 2)
    td.className = 'ad-container-wrapper'
    tr.append(td)
    el.parentNode.insertBefore(tr, el.nextSibling)

    sel_iter = '.table-threads, .ad-container-wrapper'
  } else if (location.pathname.match(/^\/(favoriter|favorites)/)) {
    location_type = 'threads-favorites'
    sel_iter = '.table-threads'
    sel_iter = '#nav-tabs-favorites, .tab-content'
  } else if (location.pathname.match(/^\/subscription.php/)) {
    location_type = 'threads-subscription'
    sel_iter = '.table-threads, .forumslist'
  } else if (location_type.startsWith('threads')) {
    //other forumlists
    let n = 15, colspan = 2;
    let isSearch = location.pathname.startsWith('/sok/');
    if (isSearch) {
			n = 10;
			colspan = 4;
    }

    el = document.querySelector('.table-threads:last-of-type tr:nth-child('+n+')')
    //NOTE might not have this many rows for sok/subscription
    if (el) {
        var tr = document.createElement('tr')
        var td = document.createElement('td')
        td.setAttribute('colspan', colspan)
        td.className = 'ad-container-wrapper'
        tr.append(td)
        el.parentNode.insertBefore(tr, el.nextSibling)
    }

    sel_iter = '.table-threads, .ad-container-wrapper'
  }

  if (location_type !== 'unknown') {
    var ad

    var ids = {
      osys: {
        desktop: ['middle-banner-container-5', 'middle-banner-container-11'],
        mobile: [
          'middle-banner-container-0',
          'middle-banner-container-1',
          'middle-banner-container-11',
          'middle-banner-container-2',
        ]
      },
      holid: {
        desktop: ['holid-custom1', 'holid-custom2'], // +3,4
        mobile: ['holid-custom11', 'holid-custom12', 'holid-custom13', 'holid-custom14'] // +14,15
      },
      holid2: {
        // wrong as of now
        desktop: ['holid-custom1', 'holid-custom2'], // +3,4
        mobile: ['holid-custom11', 'holid-custom12', 'holid-custom13', 'holid-custom14'] // +14,15
      },
    }

    var elems = document.querySelectorAll(sel_iter)
    for (i = 0; i < elems.length; i++) {
      var el = elems[i]
      slot_adsrc = get_random_adsrc()

      var className, adids

      adids = ids[slot_adsrc][platform]
      if (slot_adsrc == 'holid' || slot_adsrc == 'holid2') {
        className = 'holidAds'
      } else {
        className = 'middle-banner-container banner-container'
      }

      // no more ads to show
      if (!adids.length) {
        break
      }

      var show_ads = false

      if (
        location_type == 'posts' &&
        ((isMobile && (i == 0 || i == 4 || i == 8 || i == 11)) ||
          (!isMobile && (i == 5 || i == 10)))
      ) {
        show_ads = true
      }
    
      if (location_type == 'index' && isMobile && !i) {
        show_ads = true
      }

      if (location.pathname.match(/^\/(aktuella-amnen|populara-amnen|nya-amnen|nya-inlagg)/) && isMobile) {
				show_ads = true
      } else if (location.pathname.match(/^\/sok\//) && isMobile) {
        //search results for posts, dont show as many ads
        if (location_type == 'posts') {
            if (
                    ((isMobile && (i == 0 || i == 11)) ||
                     (!isMobile && (i == 5 || i == 10)))
               ) {
                show_ads = true
            } else {
                show_ads = false
            }
        } else {
    	    show_ads = true
        }
      } else if (location_type.startsWith('threads') && isMobile && i <= 3) {
        show_ads = true
      }

      if (show_ads) {
        var id = adids.shift()
        if (id.match(/^holid/)) {
          className = 'holidAds ' + id.split('-')[1] // holid-custom1 etc.
        }

        ad = create_ad(id, className)

        if (location.pathname.match(/^\/aktuella-amnen/)) {
          el.parentNode.insertBefore(ad, el.previousSibling)
        } else if (location.pathname.match(/^\/(populara-amnen|nya-amnen|nya-inlagg)/)) {
					if (el.className == 'ad-container-wrapper') {
						el.prepend(ad)
					} else {
						el.parentNode.insertBefore(ad, el.previousSibling)
					}
        } else if (location_type.startsWith('threads')) {
          try {
            //NOTE only one ad for these pages
            let els = document.querySelectorAll('.table-threads')
						if (el.className == 'ad-container-wrapper') {
							el.appendChild(ad)
						} else if (els.length > 1) {
              // after viktigt meddelande
              el.parentNode.insertBefore(ad, el.nextSibling)
            } else {
              el.parentNode.insertBefore(ad, el.previousSibling)
            }
          } catch (e) {
            document.querySelector('#site-left').append(ad)
          }
        } else if (location_type == 'forums') {
          document.querySelector('#site-left').append(ad)
        } else {
          el.parentNode.insertBefore(ad, el.nextSibling)
        }
      } //endif loctype
    } //end loop
  } //endif

  var elems = document.querySelectorAll('.banner-container')
  for (i = 0; i < elems.length; i++) {
    var el = elems[i]
    var id = el.getAttribute('id')
    var type

    try {
      var m = id.match(/^(top|outsider|middle)-banner-container/)[1]
      type = 'image-' + m
    } catch (err) {
      type = 'image-middle'
    }

    if (isMobile && type == 'image-middle') {
      //type = id.match(/-(1|11)$/) ? 'image-mobile_l' : 'image-mobile_m'
      type = id.match(/-(0)$/) ? 'image-mobile_m' : 'image-mobile_l'
    }

    adcontainer(el, type)
  }

  // osys stuff
  var takeoverType = isMobile ? 'image-takeovermobile' : 'image-takeover'
  var ad_takeover = create_ad('takeover-banner-1', 'banner-takerover')
  adcontainer(ad_takeover, takeoverType)
  document.body.appendChild(ad_takeover)

  if (document.querySelector('#top-banner-wrapper')) {
    // run functions when ads have loaded
    document
      .querySelector('#top-banner-wrapper')
      .addEventListener('ads-loaded', function () {
        if (document.querySelector('#top-banner-wrapper')) {
          document
            .querySelector('#top-banner-wrapper')
            .setAttribute('data-loaded', 'yes')
        }
      })
  }

  // handle click on takeover banner
  document.body.addEventListener('click', function (e) {
    var banner = document.querySelector('#takeover-banner')
    var el = e.target

    if (!banner) {
      return
    }

    if (!childOf(el, banner)) {
      return
    }

    var id = el.getAttribute('id') || el.getAttribute('class') || ''

    if (
      id.match(/glyphicon|takeover-banner-container/) ||
      el.innerText.match(/Stäng/)
    ) {
      // close ad
      e.preventDefault()
    }

    // always close/remove ad
    banner.parentNode.removeChild(banner)
  })
}

function get_ad_types() {
  var adTypes = {}

  if (!document.querySelector('.adcontainer')) {
    return // no adconatiners, /sp123 etc.
  }

  var containers = document.querySelectorAll('.adcontainer'),
    i
  for (i = 0; i < containers.length; i++) {
    var ad = containers[i]
    var type = ad.getAttribute('type')

    if (typeof type !== 'string') {
      continue
    }

    if (adTypes[type] === undefined) {
      adTypes[type] = 1
    } else {
      adTypes[type]++
    }
  }

  return adTypes
}

function ads_load_osys_ads() {
  var adTypes = get_ad_types()
  var num_osys_ads = Object.values(adTypes).reduce(function (total, n) {
    return total + n
  }, 0)

  var ads_loaded = function () {
    if (!document.querySelector('#top-banner-wrapper')) {
      return
    }

    // if we tried to fetch top banner but did not get any result - hide the wrapper
    if (
      adTypes['image-top'] &&
      !document.querySelector('#top-banner-container a')
    ) {
      var wrapper = document.querySelector('#top-banner-wrapper')
      if (!wrapper.classList.contains('hidden')) {
        wrapper.classList.add('hidden')
      }
    }

    var event = new Event('ads-loaded')
    document.querySelector('#top-banner-wrapper').dispatchEvent(event)
  }

  if (!num_osys_ads) {
    return ads_loaded()
  }

  adTypes['isMobile'] = is_mobile()

  try {
    ads_fetch(adTypes, function (err, ads) {
      if (err) {
        return ads_error(err)
      }

      if (!ads) {
        // some pages for mobile, this is to keep adblock msg happy
        return ads_loaded()
      }

      try {
        if (location.search.match(/takeovertest/)) {
          if (is_mobile()) {
            ads['image-takeovermobile'] = [
              {
                id: 6512,
                imgurl:
                  'https://static.flashback.org/img/banners/ad_6512_1603561354.jpg'
              }
            ]
          } else {
            ads['image-takeover'] = [
              {
                id: 6511,
                imgurl:
                  'https://static.flashback.org/img/banners/ad_6511_1603561260.jpg'
              }
            ]
          }
        }

        ads_load(ads)
      } catch (err) {
        return ads_error(err)
      }

      if (
        document.querySelector('#outsider-banner-container') &&
        !is_mobile()
      ) {
        defer_jquery(function () {
          $.fn.adcycle = setup_adcycle
          $('#outsider-banner-container').adcycle()
        })
      }

      // when the last ad is loaded, trigger event
      var nodes = document.querySelectorAll('.ad img')
      if (nodes && nodes.length) {
        nodes[nodes.length - 1].addEventListener('load', function () {
          return ads_loaded()
        })
      } else {
        return ads_loaded()
      }
    }) // /ads_fetch
  } catch (e) {
    ads_error(e)
  }
}

// dont load top ads
if (ads_get_forumid() == 0 && !location.pathname.match(/^\/(subscription.php|favoriter|favorites)/)) {
  var wrapper = document.querySelector('#top-banner-wrapper')
  if (!wrapper.classList.contains('hidden')) {
    wrapper.classList.add('hidden')
  }
}

//<!-- Banner auction Google/prebid -->
var pbjs = pbjs || {}
pbjs.que = pbjs.que || []
var googletag = googletag || {}
googletag.cmd = googletag.cmd || []

function force_holid_refresh() {
  if (!['holid', 'holid2'].includes(window.adsrc)) {
    return
  }

	console.timeLog("ads", "holid_refresh")

  var num_checks = 0
  var holid_check = null

	var findInit = function () {
			var gotads = document.getElementsByClassName('holidAds').length > 0
			//console.log("++ init done. gotads=", gotads, "pbjs=",ispbjs, "ishp=", ishp)
			if (!gotads) {
				return
			}

			if (typeof holid_init == 'function') {
				console.timeLog("ads", "++ call holid_init")
				clearInterval(holid_check)
				holid_init()
			} else if (typeof find_holid_divs == 'function') {
					console.log("++ call find_holid_divs")
					clearInterval(holid_check)
					find_holid_divs()
					//holid_find_empty_divs()
			}

			// bail after 2 sec
			if (num_checks > 20) {
				clearInterval(holid_check)
			}

			num_checks++
	}

	holid_check = setInterval(findInit, 10)
}

function isLoggedIn() {
try {
    if (!document.querySelector('.navbar-nav > li:last-child > a').innerText.match(/logga in/ig)) {
	return true;
    }
} catch(err) {
}

    return false;
}

function ads_init_holid_oop() {
  window.googletag = window.googletag || { cmd: [] };
  let interstitialSlot;

  googletag.cmd.push(() => {
	interstitialSlot = googletag.defineOutOfPageSlot(
	  "/21756427176/flashback.org_takeover1",
	  googletag.enums.OutOfPageFormat.INTERSTITIAL,
	);

	if (interstitialSlot) {
	  //console.log('.. interstitialSlotAd:Setup')
	  interstitialSlot.addService(googletag.pubads()).setConfig({
	    interstitial: {
	      triggers: {
					unhideWindow: true,
	      },
	    },
	  });

	  googletag.pubads().addEventListener("slotOnload", (event) => {
	    /*if (interstitialSlot === event.slot) {
	      //console.log('.. interstitialSlotAd:Loaded')
	    }*/
	  });
	}

	googletag.pubads().enableSingleRequest();
	googletag.pubads().collapseEmptyDivs();
	googletag.enableServices();

	if (interstitialSlot) {
		googletag.display(interstitialSlot);
	}
  })
}

///////////////////////////////// START OF CODE HERE

defer_dom_load(function () {
	if (window.adsrc == undefined) {
		window.adsrc = 'osys'
	}

  ads_init_slots()

	console.timeLog("ads", "slot setup done")

  if (window.adsrc.match(/^holid|gam/) && !isLoggedIn()) {
    ads_init_holid_oop()
  }

  // 3.1 load osys - always
  setTimeout(ads_load_osys_ads, 0)

  // 3.2 load holid - kv
  setTimeout(load_holid_kv, 100)

  // 4. analytics
  defer_jquery(function () {
    // NOTE -- can be random for individual slots
    gtag('event', 'adsrc', { adsrc: window.adsrc })

    var event_name = null
    if (location.pathname.match(/^\/(t|p)(\d+)/)) {
      event_name = 'page_view_thread'
    } else if (location.pathname.match(/^\/f(\d+)/)) {
      event_name = 'page_view_forum'
    } else {
      return
    }

    var $navbar_forum = $('.navbar-forum')

    var forums = []
    $navbar_forum.find('a').each(function () {
      var href = $(this).attr('href'),
        forum_title = $(this).text()

      var m = href.match(/^\/f(\d+)$/)
      if (!m) {
        return
      }

      var forumid = parseInt(m[1])

      forums.push(forum_title)
    })

    if (!forums.length) {
      return
    }

    var forum_view = Object.values(forums).join('/')
    event_name = 'forum_view'

    var user_loggedin = isLoggedIn();

    gtag('event', event_name, { forum_view, user_loggedin })
  })
})

//2025!!
