Right to Carry

Anti-Gun Lawmakers Trying to Roll Clock Back on ATF Abuses

Reading Time: 3:31 min

Second Amendment opponents are nothing if not consistent, and their latest effort is just another predictable volley against the Bill of Rights that is doomed to fail. Of course, that…

View post

Brave Memphis Store Owner Defends Establishment with Firearm

Reading Time: 3:14 min

In the early hours of a Tuesday morning, a Brave Memphis Store Owner Defends Establishment with Firearm in a tense confrontation that serves as a strong reminder of the importance…

View post

Grassroots Efforts Expand to End New Jersey’s Controversial 2A Tax Scheme

Reading Time: 3:37 min

Grassroots Efforts Expand to End New Jersey’s Controversial 2A Tax Scheme as more local governments join a growing resistance against what many see as an unconstitutional financial barrier to self-defense.…

View post

Alleged Drunken Home Invader Gets More Than He Bargained For

Reading Time: 3:22 min

Alleged Drunken Home Invader Gets More Than He Bargained For in a late-night encounter that almost turned deadly for everyone involved. On Monday night, Kentucky State Police responded to a…

View post

Hero Indiana Mother Uses Firearm to Shoot Alleged Predator Attacking 12-Year-Old Daughter

Reading Time: 1:52 min

Details are a bit sketchy at this point, but a brave Indiana mother reportedly shot a convicted child molester several times to protect her preteen daughter.  The suspect, identified as…

View post

Good Son Uses Revolver to Protect Mother from Alleged Burglar

Reading Time: 3:15 min

Good Son Uses Revolver to Protect Mother from Alleged Burglar is the kind of headline that brings the importance of the Second Amendment into sharp focus. One Florida family experienced…

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>