Right to Carry

Nashville Woman Used Firearm to Protect Against Ex-Boyfriend When Protection Order Failed

Reading Time: 2:20 min

Restraining orders are often only as strong as the paper they are printed on. In many unfortunate situations, it is up to the victim to be their own protector and…

View post

Kansas Supreme Court Rules Against Suit Targeting Bass Pro Outdoor World and Baretta USA

Reading Time: 3:53 min

A traditional gunmaker and major firearm retailer emerged unscathed from a hazardous legal quagmire Friday. The Kansas Supreme Court ruled that Bass Pro Outdoor World and Baretta U.S.A. could not…

View post

House Leader Urges Significant Change to ATF Form 4473

Reading Time: 2:21 min

The Bureau of Alcohol, Tobacco, Firearms and Explosives (ATF) will be forced to change its Form 4473 if a prominent U.S. House leader gets his wish. Rep. Clay Higgins (R-LA)…

View post

Anti-Gunners Push for Background Checks for Gun Barrel Purchases in California

Reading Time: 2:26 min

California Lawmakers Push Yet Another Attack on Gun Rights No matter how embarrassingly obvious their tricks are to eradicate the Second Amendment, anti-gunners appear incapable of experiencing shame. That goes…

View post

Indiana Homeowner Defends Young Family from Alleged Violent Intruder

Reading Time: 2:28 min

Armed Father Protects Family from Late-Night Intruder Many believe there is currently a mental health crisis in the U.S., and indeed, there appears to be a surge in cases of…

View post

ATF Revoked 195 Gun Dealer Licenses in 2024 Before ‘Zero-Tolerance’ Revocation

Reading Time: 3:56 min

More evidence is now in the daylight of the true extent of the weaponization of the Bureau of Alcohol, Tobacco, Firearms and Explosives (ATF) under the previous White House administration.…

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>