Right to Carry

Michael Myers Gunman Prank: How To Get Shot by A Concealed Carrier

Reading Time: 0:32 min

The stupidity is strong in this one. This takes mouth breathing to a whole new level, and I don’t mean the, I have the flu (I currently have the flu)…

View post

The Hypothetical Land of Anti-Gunners

Reading Time: 0:11 min

I understand that there is a place for hypotheticals. Hell, we pro gunners use hypotheticals all the time, but there is a big difference between realistic hypotheticals and absurd hypotheticals…

View post

Man Accidentally Shoots His Wife After Scuffle With Her Ex Boyfriend

Reading Time: 0:21 min

A guy gets punched in the face, so he draws his gun from his garage  sale holster, Leonidas front kicks the other guys  wife while she’s recording, same guy drops…

View post

Brazillian Cop Shoots Bike Jacker

Reading Time: 0:19 min

The cop in this video was playing no games. Bike Jacking someone in broad daylight is some real bold sh*t, but sometimes bold sh*t comes with bold consequences and this…

View post

Costa Ludus Handgun Employment Two: After The First Day Ramblings

Reading Time: 2:28 min

It’s 9:10pm after the first day of the Costa Ludus Handgun Employment Two course and I am tired.  It’s a healthy tired, like you spent all day doing something really…

View post

Women’s Concealment Shorts by UnderTech UnderCover

Reading Time: 0:33 min

It’s safe to say, when it comes to conceal carry, women get the short end of the stick. Finding a way to conceal a Glock 26 on a woman’s body…

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>