Right to Carry

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

Gun Rights Group Files Brief in California Firearm Dealer Surveillance Case

Reading Time: 3:35 min

Gun Rights Group Files Brief in California Firearm Dealer Surveillance Case as opposition intensifies against California’s latest anti-gun mandate. The state now requires firearm dealers to maintain 24/7 video and…

View post

Supreme Court Blocks Mexican Government’s Lawsuit Against US Gunmakers

Reading Time: 3:40 min

Supreme Court Blocks Mexican Government’s Lawsuit Against US Gunmakers in a powerful 9-0 decision that reaffirms long-standing protections for the American firearms industry. The unanimous ruling, delivered Thursday, dealt a…

View post

Texas Close to Full Reciprocity with Recognition of Handgun Licenses From Other States

Reading Time: 3:29 min

Texas is close to full reciprocity with recognition of handgun licenses from other states, proving once again that the Lone Star State remains a stronghold for individual liberty. While 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>