Right to Carry

Georgia Supreme Court Upholds Ban on Young Adults Carrying Firearms in Public

Reading Time: 4:26 min

Georgia Supreme Court upholds ban on young adults carrying firearms in public. Even some of the most Second Amendment-friendly states in the country can pass laws that raise serious constitutional…

View post

ATF Decision Allows Carry Permit Holders to Bypass Redundant Background Checks

Reading Time: 3:38 min

In a major win for gun owners and Second Amendment advocates, ATF Decision Allows Carry Permit Holders to Bypass Redundant Background Checks was officially announced this week, signaling a long-overdue…

View post

Armed Good Guys Halt Alleged Sports Bar Attacker

Reading Time: 3:15 min

In a tense and dangerous situation, Armed Good Guys Halt Alleged Sports Bar Attacker after an intoxicated patron returned with a weapon and opened fire on the establishment. Late Tuesday…

View post

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
<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>