Right to Carry

Separate Weekend Attacks in Chicago Foiled by Concealed Carry Permit Holders

Reading Time: 3:21 min

Weekends in Chicagoland are hardly all fun and games. This seems to be the preferred time for the criminal element to come out and play, and new victims are added…

View post

Third US Citizen Pleads Guilty to Ammo Possession in Caribbean, Awaits Sentencing

Reading Time: 3:34 min

When in Rome, it is said that the best course of action is to do what the Romans do. There are times, however, when even the innocent and well-intended are…

View post

Alleged Intruder With ‘Hail Satan’ Engraved Knife Shot by Texas Homeowner

Reading Time: 1:54 min

Unfortunately, armed intrusions of U.S. households are a daily occurrence. This leads to the necessity to take proper precautions to protect loved ones and property, and for many Americans that…

View post

Vermont Bans ‘Ghost Guns’ and Tightens Carry Restrictions

Reading Time: 2:9 min

Vermont Gov. Phil Scott (R) expressed his skepticism over new gun control measures lawmakers pushed for his state, but in the end he caved. The bill to ban so-called “ghost…

View post

US Supreme Court Hands Momentous Victory to NRA in First Amendment Case

Reading Time: 3:25 min

In a clear victory for gun rights and a defeat for opponents of the Second Amendment, the U.S. Supreme Court on Thursday unanimously ruled in favor of the National Rifle…

View post

Armed Good Samaritan Rushes to Aid Police Officer in Shootout

Reading Time: 2:6 min

There’s just no substitute for a good guy with a gun in a violent encounter. Many times, that person is a police officer who comes to the rescue of a…

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>