Right to Carry

New Mexico Gun Owners Face Rash of Second Amendment Attacks

Reading Time: 1:37 min

We are only two months removed from the humiliating defeat suffered by New Mexico’s anti-gun Gov. Michelle Lujan Grisham (D), and already state leaders are planning another round of attacks…

View post

Gun Charges Dropped Against NYC Council Member

Reading Time: 1:37 min

A highly publicized gun case ended with a whimper when charges against New York City council member Inna Vernikov were quietly dropped. She was accused of illegally carrying a concealed…

View post

NYC Mayor Eric Adams Demands Congress Ban ‘Assault Weapons’

Reading Time: 3:0 min

U.S. mayors have an interesting tactic for suppressing crime in their cities. Instead of targeting and locking away those who prey on the innocent, these political leaders more frequently go…

View post

Federal Judge Upholds Colorado’s Waiting Period for Gun Purchases

Reading Time: 1:38 min

A federal judge on Monday made the startling ruling that the Second Amendment right to keep and bear arms does not cover sales of weapons. In his decision, U.S. District…

View post

Supreme Court to Hear Challenge to Controversial Bump Stock Ban

Reading Time: 3:1 min

The U.S. Supreme Court will hear the contentious case of Cargill v. Garland, the legal challenge to the ban on bump stocks. The high court granted cert on Friday, meaning…

View post

Court Rules Drunk Driving Conviction Should Not Be a Lifetime Gun Ban

Reading Time: 2:57 min

A man convicted of driving under the influence in 2005 received good news Tuesday, and it has implications for similar situations nationwide. Edward A. Williams was convicted of DUI in…

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>