Right to Carry

New Jersey Firearms Dealers Targeted for ‘Illegal’ Ammunition Sales

Reading Time: 2:21 min

Never mind violent criminals plaguing major cities, New Jersey officials are content with targeting firearms dealers for “illegal” ammunition transactions, a practice that clearly falls under Second Amendment protections. Unfortunately…

View post

Appeals Court Rebuffs Pennsylvania’s Bid to Remand Concealed Carry Case

Reading Time: 2:31 min

Pennsylvania’s defense against a legal challenge to the state’s contentious law prohibiting concealed carry for ages 18-20 suffered a setback on Monday. A three-judge U.S. Court of Appeals panel for…

View post

Pennsylvania DA Sues Feds Over Medical Marijuana and Second Amendment

Reading Time: 3:50 min

A marijuana revolution is rolling through the U.S.; this is undeniable. In 2024, 38 states permit medical marijuana use and another 24 have legalized weed for recreational purposes. However, gun…

View post

NRA Files Brief Supporting Challenge to Washington’s Magazine Ban

Reading Time: 2:21 min

Standard capacity ammunition magazines are under siege from anti-gun forces across the nation, and the battle over the right to keep and bear arms continues to boil over in Washington…

View post

Baltimore Security Guard Acquitted on Charges Stemming from Self-Defense Shooting

Reading Time: 2:26 min

Far too many cases of obvious self-defense still become entangled in the criminal justice system.  Even when the facts clearly indicate that a law-abiding citizen did what was necessary to…

View post

NSSF Urges Dismantling of Controversial White House Office of Gun Violence Prevention

Reading Time: 3:52 min

Elections, as many have said, have consequences. Part of the aftermath of the recent presidential race is determining exactly how the selection of former President Donald Trump (R) to return…

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>