Right to Carry

Man Pays Ultimate Price for Allegedly Targeting Off-Duty Officer’s Property

Reading Time: 3:21 min

Man Pays Ultimate Price for Allegedly Targeting Off-Duty Officer’s Property is the latest reminder that not all potential victims are defenseless. This time, the fatal mistake occurred in North Texas…

View post

Texas Woman Cleared of Murder Charges in Self-Defense Shooting of Estranged Partner

Reading Time: 3:37 min

Texas Woman Cleared of Murder Charges in Self-Defense Shooting of Estranged Partner has drawn national attention for highlighting the tragic intersection of domestic violence and the right to self-defense. This…

View post

Good Guy with a Gun Stops Attempted Carjacking in Georgia

Reading Time: 3:42 min

Good Guy with a Gun Stops Attempted Carjacking in Georgia in a courageous act that may have saved multiple lives. What began as a terrifying assault at a Marietta gas…

View post

Sixteen Attorneys General Sue Over Forced Reset Trigger Settlement

Reading Time: 3:35 min

In a move stirring national controversy, sixteen attorneys general sue over Forced Reset Trigger settlement, seeking to block a legal agreement between the Department of Justice (DOJ) and a firearms…

View post

Bill Introduced to Permanently Eradicate ATF’s ‘Zero Tolerance’ Policy

Reading Time: 2:52 min

The days of the Bureau of Alcohol, Tobacco, Firearms, and Explosives (ATF) operating unchecked under its controversial “zero tolerance” policy could soon be over. In a significant legislative move, Sen.…

View post

Florida Protects Gun Rights During States of Emergency

Reading Time: 3:37 min

Florida Protects Gun Rights During States of Emergency and now that protection is even stronger, thanks to the recent repeal of a controversial statute that previously allowed local governments to impose…

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>