Right to Carry

2A Groups Petition SCOTUS to Hear Challenge to Cook County’s AR-15 Ban

Reading Time: 2:14 min

Illinois’s most populous county has long prohibited its residents from exercising a right that is not only enjoyed by tens of millions of Americans but also protected by the Second…

View post

USAF Clears Sig Sauer M18 Pistols for Use After Successful Inspections

Reading Time: 1:53 min

There is good news for embattled Sig Sauer as the Air Force Global Strike Command (AFGSC) reinstated the SIG M18 handgun for use last week. The military branch inspected all…

View post

NC Lawmakers Postpone Vote to Override Veto of Constitutional Carry Bill

Reading Time: 1:54 min

North Carolina’s quest to become the 30th constitutional carry state is on hold for the moment as lawmakers rescheduled a critical vote. This week’s scheduled veto override vote of Senate…

View post

NRA Sues Florida Over 3-Day Waiting Period for Firearm Purchases

Reading Time: 1:50 min

When examining states and their relationships with the Second Amendment, Florida has an unusual status.  On the one hand, Sunshine State leaders are generally strong gun rights supporters who say…

View post

2 Armed Robbers Posing As Police Killed By Home Owner With A Gun

Reading Time: 2:24 min

Two armed robbers posing as police officers were shot and killed by a homeowner during a late-night attempted home invasion in Houston, authorities confirmed. The suspects, wearing bulletproof vests and…

View post

New Mexico to Appeal Ruling Against 7-Day Waiting Period 

Reading Time: 1:53 min

New Mexico’s anti-gun regime will ask a federal appeals court to take another look at its pause on the state’s controversial waiting period to purchase a weapon lawfully. This is…

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>