Right to Carry

Armed Self-Defense a Risky Proposition in Minnesota After Bill’s Failure

Reading Time: 2:27 min

The fundamental right for law-abiding citizens to exercise armed self-defense in Minnesota suffered a significant blow Thursday. The House of Representatives rejected a bill to enshrine this freedom into law.…

View post

February Gun Sales Plummet Nine Percent to Second-Worst Level in 13 Years

Reading Time: 2:27 min

Firearm sales in February plunged to levels virtually unseen in well over a decade. Experts note, however, that the dip is not due to a loss of enthusiasm among the…

View post

Colorado Hunting Enthusiasts Welcome Good News from Legislature

Reading Time: 2:26 min

Make no mistake. One of the myriad of ways that anti-gunners are going after the people’s Second Amendment rights is through attacks on sporting traditions such as hunting. Multiple states…

View post

Buyer’s Remorse: DeSantis Urges Repeal of Florida Gun Control Laws Passed After Parkland Shooting

Reading Time: 3:56 min

It has been said that legislation passed under duress or in emergencies results in bad law. For Florida Gov. Ron DeSantis (R), that is what took place after 2018’s Parkland…

View post

Supreme Court Appears Wary of Mexican Lawsuit Against US Gun Manufacturers

Reading Time: 4:1 min

The U.S. Supreme Court does not appear to favor allowing Mexico’s contentious $10 billion lawsuit against American weapons manufacturers to proceed. On Tuesday, the high court heard a 90-minute oral…

View post

Alleged Trespasser Shot by Texas Homeowner

Reading Time: 2:27 min

An armed Corpus Christi homeowner had a harrowing encounter with an alleged intruder Thursday morning, but thanks to the ready firearm the incident has a happy ending. The initial call…

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>