Right to Carry

Camper Uses Firearm to Defend Against Allegedly Drunk Attacker

Reading Time: 2:57 min

A peaceful camping trip near Casper, Wyoming turned dangerous when a camper used a firearm to defend against an allegedly drunk attacker, resulting in a late-night shooting that left two…

View post

Appeals Court Upholds Injunction Against California Gun Advertising Prohibition

Reading Time: 3:35 min

The Appeals Court upholds injunction against California gun advertising prohibition, delivering a strong message that the First and Second Amendments are not to be trampled in the name of vague…

View post

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
<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>