Right to Carry

Lawmaker to Introduce Measure to Abolish ATF

Reading Time: 2:24 min

If one member of Congress gets his way, the Bureau of Alcohol, Tobacco, Firearms, and Explosives (ATF) will be relegated to the dustbin of history. Rep. Eric Burlison (R-MO) declared…

View post

Gun Bans for Young Adults Challenged in Hawaii and Pennsylvania

Reading Time: 3:53 min

Implausible and arbitrary restrictions on good Americans are being fought on the legal battlegrounds of both Hawaii and Pennsylvania. Last week, the Second Amendment Foundation (SAF) filed suit against Hawaii’s…

View post

Nanci Pelosi Blames God, Guns, & Gays On Trump Victory

Reading Time: 3:5 min

Nancy Pelosi recently attributed Donald Trump’s 2016 election win to cultural issues, including gun rights. From a Second Amendment (2A) advocate’s perspective, her comments reveal a fundamental disconnect between political…

View post

Ohio Lawmakers Propose 10-Day Waiting Period for Firearm Purchases

Reading Time: 2:20 min

Under a proposal before the state legislature, the good people of Ohio would be forced to wait ten long days to complete the retail purchase of a firearm. This misguided…

View post

Ohio Lawmakers Propose 10-Day Waiting Period for Firearm Purchases

Reading Time: 2:20 min

Under a proposal before the state legislature, the good people of Ohio would be forced to wait ten long days to complete the retail purchase of a firearm. This misguided…

View post

Oklahoma Burglary Victim Shoots Suspect During Wild Confrontation

Reading Time: 2:27 min

There are times when there is no choice but to confront a violent criminal, such as a home invasion or a carjacking attempt. Then there’s a situation such as that…

View post
<script>
  /*Source: https://github.com/Krzysztof-Antosik/Two-direction-Sticky-Sidebar*/
  
  // Verificar el ancho de pantalla al cargar y redimensionar
  function checkScreenWidth() {
    if (window.innerWidth <= 767) {
      // Si la pantalla es menor o igual a 676px, no ejecutar el código
      return;
    }

    const stickyElement = document.querySelector('.fb-sidebar__aside');
    const startPosition = stickyElement.getBoundingClientRect().top;

    let endScroll = window.innerHeight - stickyElement.offsetHeight - 500;
    let currPos = window.scrollY;
    let screenHeight = window.innerHeight;
    let stickyElementHeight = stickyElement.offsetHeight;
    let topGap = 40;
    let bottomGap = 40;

    setTimeout(() => {
      if (stickyElement.hasAttribute('data-top-gap')) {
        const dataTopGap = stickyElement.getAttribute('data-top-gap');
        topGap = dataTopGap === 'auto' ? startPosition : parseInt(dataTopGap);
      }

      if (stickyElement.hasAttribute('data-bottom-gap')) {
        bottomGap = parseInt(stickyElement.getAttribute('data-bottom-gap'));
      }
    }, 100);

    stickyElement.style.position = 'sticky';
    stickyElement.style.top = `${topGap}px`;
    stickyElement.style.height = 'fit-content';

    function positionStickySidebar() {
      endScroll = window.innerHeight - stickyElement.offsetHeight - bottomGap;
      const stickyElementTop = parseInt(stickyElement.style.top.replace('px', ''));

      if (stickyElementHeight + topGap + bottomGap > screenHeight) {
        if (window.scrollY < currPos) {
          if (stickyElementTop < topGap) {
            stickyElement.style.top = `${stickyElementTop + currPos - window.scrollY}px`;
          } else if (stickyElementTop >= topGap && stickyElementTop !== topGap) {
            stickyElement.style.top = `${topGap}px`;
          }
        } else {
          if (stickyElementTop > endScroll) {
            stickyElement.style.top = `${stickyElementTop + currPos - window.scrollY}px`;
          } else if (stickyElementTop < endScroll && stickyElementTop !== endScroll) {
            stickyElement.style.top = `${endScroll}px`;
          }
        }
      } else {
        stickyElement.style.top = `${topGap}px`;
      }
      currPos = window.scrollY;
    }

    function stickyElementToMe() {
      stickyElement.style.top = `${topGap}px`;
    }

    function updateSticky() {
      screenHeight = window.innerHeight;
      stickyElementHeight = stickyElement.offsetHeight;
      positionStickySidebar();
    }

    setTimeout(() => {
      window.addEventListener('resize', () => {
        currPos = window.scrollY;
        updateSticky();
      });

      document.addEventListener('scroll', updateSticky, {
        capture: true,
        passive: true
      });
    }, 1000);
  }

  // Verificar el ancho de pantalla al cargar y redimensionar
  window.addEventListener('load', checkScreenWidth);
  window.addEventListener('resize', checkScreenWidth);
</script>