Right to Carry

AG Bondi Creates Second Amendment Enforcement Task Force

Reading Time: 2:20 min

The federal government’s attitude toward gun rights continued to change last week with a landmark announcement from Attorney General Pam Bondi. On Wednesday, she proclaimed the establishment of the Second…

View post

Patel Replaced as Acting ATF Head by Army Secretary Daniel Driscoll

Reading Time: 2:22 min

The Bureau of Alcohol, Tobacco, Firearms, and Explosives (ATF) has been given new leadership. Multiple reports indicate that Daniel Driscoll, the Secretary of the Army, will lead the embattled agency…

View post

Texas Woman Uses Knife to Fight Off Alleged Carjacker

Reading Time: 2:46 min

Second Amendment enthusiasts know that firearms are not the only tools that are integral to being prepared for the worst. A Texas woman discovered on Monday that having a handy…

View post

Colorado Governor Signs Controversial Bill Making Modern Sporting Rifles More Difficult to Purchase

Reading Time: 4:14 min

The contentious issue of Colorado lawmakers attempting to put ownership of popular semi-automatic rifles out of reach for many citizens culminated with Gov. Jared Polis (D) signing the bill into…

View post

Anti-Second Amendment Virginia Lawmakers Fail to Override Youngkin’s Veto

Reading Time: 2:31 min

Fortunately for gun rights enthusiasts, Virginia law requires a two-thirds majority to override the governor’s veto pen. That statutory limitation saved the day and previewed future legislative battles in the…

View post

SAF Blasts Controversial Ruling by Illinois Judge on Smith & Wesson Lawsuit

Reading Time: 3:56 min

An Illinois judge ruled that a contentious lawsuit against Smith & Wesson may proceed, despite federal law prohibiting such frivolous legal actions against the weapons industry. This brought an immediate…

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>