Right to Carry

Federal Appeals Court Rejects Provisions of New York’s Anti-Bruen Law

Reading Time: 1:46 min

Every gun rights advocate knows the U.S. Supreme Court handed down a major legal victory for the Second Amendment in 2022. In New York State Rifle and Pistol Association v.…

View post

Lawsuit Pushes ATF To Backtrack on FFL Revocation

Reading Time: 1:42 min

It is no secret that the Bureau of Alcohol, Tobacco, Firearms and Explosives (ATF) now has a “zero-tolerance” policy on the slightest slip-ups by federal firearm license (FFL) owners. This…

View post

NRA Rips Latest Extreme Measure to Ban ‘Assault Weapons’

Reading Time: 3:26 min

Predicting that a politician will grandstand is like a forecast that the sun will come up in the morning — you can count on it. Unfortunately for gun rights advocates,…

View post

Activist Shareholders Sue Smith & Wesson Over ‘Assault Weapons’

Reading Time: 1:34 min

The trend toward anti-gun activists taking legal action against the weapons industry continued this week with a lawsuit filed in Nevada. This time it is a group of shareholders seeking…

View post

Gun Permit Applications Soaring in Crime-Ridden Philadelphia

Reading Time: 1:48 min

Logical people respond to spikes in violent crime by preparing to defend themselves. This certainly holds true for upstanding citizens in Philadelphia, where firearms sales and applications for carry permits…

View post

Justice Barrett Dockets Pivotal Illinois Gun Control Lawsuit

Reading Time: 3:7 min

In what may become a resounding victory for gun rights advocates, the U.S. Supreme Court docketed an Illinois case challenging the state’s sweeping ban on semi-automatic weapons.  National Association for…

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>