Right to Carry

2A Advocates: Colorado Shooting Deaths Surge Amid Draconian Gun Control

Reading Time: 1:55 min

If anti-Second Amendment rhetoric were based in reality, more oppressive state gun control laws would correlate with peace on Earth and all humanity living in harmony. Only, something funny happened…

View post

US Gun Sales Drop Below 1M For the First Time in Six Years

Reading Time: 1:48 min

Gun sales have been in decline for several months, and in July they dipped below a threshold not seen for six years. According to National Instant Background Check System (NICS)…

View post

California DA Declines Gun Charges Against NFL Star After FPC Appeal

Reading Time: 2:1 min

With the NFL season looming large, every team wants to be at full strength and ready for opening day. What they don’t need is for one of their star players…

View post

Anti-Gun Journalist Stages ‘Interview’ With AI Avatar of Murdered Student

Reading Time: 3:20 min

Anti-Gun Journalist Stages ‘Interview’ With AI Avatar of Murdered Student is the title that now marks a disturbing new chapter in the world of modern media, as former CNN White…

View post

UK Bans Lead Ammo in Cautionary Tale for US Gun Owners

Reading Time: 1:56 min

The American sporting public knows only too well that anti-gunners will use any tactic to obliterate Second Amendment rights. When banning guns fails, they are not above going after ammunition…

View post

Gun Rights Group Fighting Three-Front War Against Federal Government

Reading Time: 1:60 min

It is undeniable that 2025 has been a refreshing year for turning the tide toward respecting Second Amendment rights. Several significant reforms have been made, the ATF has ceased some…

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>