Right to Carry

Georgia AG Notifies Savannah Officials That Gun Control Law is Illegal

Reading Time: 2:11 min

Despite clear court guidance on the issue, anti-gun city officials persist in attempting to enforce gun control laws that are preempted by their individual states. This is the case with…

View post

Colonel Defends Family from Alleged Intruder Near Fort Liberty

Reading Time: 1:55 min

A mysterious incident in Carthage, North Carolina, involving the use of a firearm to protect the shooter’s family unfolded three weeks ago but is just now being revealed.  A U.S.…

View post

Florida Man Facing Violent Home Invasion Fires 17 Rounds at Four Suspects

Reading Time: 2:4 min

This is a cautionary tale for those who are swayed by arguments that no one needs to have an ammunition magazine that holds more than 10 rounds.  A man in…

View post

Armed Driver Stops Alleged Carjacker Who Demanded His Eyeball

Reading Time: 2:10 min

Nothing is apparently too bizarre to be true in 2024, and the latest example of a good citizen defending themselves with a firearm definitely featured a twist. Authorities in Louisville,…

View post

No Prison for Pennsylvania Man Who Inadvertently Brought Ammo to Caribbean Island

Reading Time: 1:60 min

In a good sign for four other U.S. citizens facing similar charges, a Pennsylvania man accused of bringing ammunition to a Caribbean Island was fined but spared a long prison…

View post

Lawmakers Urge Supreme Court to Decide Mexico’s Lawsuit Against US Gun Manufacturers

Reading Time: 2:6 min

A coalition of state attorneys general last week urged the U.S. Supreme Court to take up the case brought by the Mexican government against American gun manufacturers. The 27 prosecutors…

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>