Right to Carry

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

Citigroup Drops Discriminatory Policy Against Firearm and Ammunition Industry

Reading Time: 1:53 min

A major hurdle before the firearm and ammunition industry is now cleared with a powerful Wall Street financial firm announcing an end to discriminatory policies. Citigroup declared that it will…

View post

Washington Residents Rush for Concealed Carry Licenses Ahead of New Law

Reading Time: 3:23 min

Is it any wonder that when a fundamental human right is threatened, people rush to defend it more vigorously and make their voices heard? That’s exactly what’s happening as Washington…

View post

New York Seeks to Prohibit Sharing Blueprints of 3D Guns Online

Reading Time: 3:34 min

New York Seeks to Prohibit Sharing Blueprints of 3D Guns Online in a sweeping move that civil liberties groups argue poses a serious threat to both the Second Amendment and…

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>