Right to Carry

Good Samaritan Uses Firearm to Stop Violent Suspect in Downtown Seattle

Reading Time: 4:9 min

Good Samaritan Uses Firearm to Stop Violent Suspect in Downtown Seattle, an unexpected but powerful headline that’s making waves after a tense and violent encounter unfolded in the heart of…

View post

Montana to Establish State Shooting Center Task Force to Strengthen Second Amendment Culture

Reading Time: 3:43 min

In an era when anti-gun lawmakers across the country are working overtime to restrict and redefine the Second Amendment, Montana is taking bold steps in the opposite direction. With unwavering…

View post

School Systems Increasingly Turn to AI Gun Detection Programs

Reading Time: 2:26 min

School systems increasingly turn to AI gun detection programs. Like it or not, artificial intelligence is here to stay. Among the seemingly endless ways it is suddenly being utilized in…

View post

Senate to Consider Federal Ban on Firearm-Specific Merchant Category Codes

Reading Time: 3:59 min

Senate to Consider Federal Ban on Firearm-Specific Merchant Category Codes. As more states line up to protect their citizens from giant Wall Street firms tracking their gun and ammunition purchases,…

View post

Las Vegas Open Carrier Fatally Shot with Own Handgun in AutoZone

Reading Time: 2:58 min

Las Vegas Open Carrier Fatally Shot with Own Handgun in AutoZone While the Second Amendment protects the right to keep and bear arms, exercising that right in public comes with…

View post

California Homeowner Shoots Alleged Intruder While Talking to 911

Reading Time: 2:24 min

California Homeowner Shoots Alleged Intruder While Talking to 911. A frightening West Coast incident drove the point home of the saying, “When seconds matter, help is minutes away.”  A California…

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>