Right to Carry

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

North Carolina Close to Becoming 30th Constitutional Carry State: A Major Victory for Gun Rights

Reading Time: 3:34 min

North Carolina Close to Becoming 30th Constitutional Carry State after a significant legislative push last week positioned the state on the verge of eliminating its permit requirement for concealed carry.…

View post

Gun Sales Continued 2025 Downturn in May

Reading Time: 3:26 min

Gun Sales Continued 2025 Downturn in May: Market Correction or Long-Term Shift? Gun Sales Continued 2025 Downturn in May as new data from the National Shooting Sports Foundation (NSSF) confirmed…

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>