Gun Control

Prosecutors No Longer Charge for Possession of Rifles and Shotguns in DC

Reading Time: 1:54 min

A significant announcement concerning the Second Amendment and the District of Columbia came down this week, and it is a positive development for gun rights.  U.S. Attorney for D.C. Jeanine…

View post

Constitutional Carry for NC Residents Now Before State House

Reading Time: 1:55 min

North Carolina’s uneven lurch toward becoming the 30th state in the Union enshrining constitutional carry rights is now in the hands of the state House. The Senate last month to…

View post

Report: Feds End Controversial Probe into Firearm Financing Firm

Reading Time: 1:50 min

The previous administration took so many nasty swipes at Second Amendment rights that dismantling the damage is not an overnight undertaking. Thankfully, that process is well on its way. Breitbart…

View post

Victory: Tenth Circuit Strikes Down New Mexico’s 7-Day Waiting Period

Reading Time: 3:26 min

Second Amendment advocates celebrated this week after Tuesday’s encouraging news from the Tenth Circuit Court of Appeals. The court ruled in Ortega v. Grisham that New Mexico’s seven-day waiting period…

View post

Anti-2A Minnesota Lawmakers Vow to Prohibit So-Called ‘Ghost Guns’

Reading Time: 1:57 min

The Minnesota Supreme Court spoke in a clear voice earlier this month and proclaimed that the state’s law-abiding residents may possess unserialized firearms. It was the right call and long…

View post

2A Advocates Praise Oklahoma’s Protection of Firearm Industry

Reading Time: 1:53 min

Firearm industry heavyweights heaped praise on Oklahoma Gov. Kevin Stitt (R) for signing a critical protection for Second Amendment rights into law last week. Senate Bill 500 explicitly bans Oklahoma…

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>