Right to Carry

California DA Declines Gun Charges Against NFL Star After FPC Appeal

Reading Time: 2:1 min

With the NFL season looming large, every team wants to be at full strength and ready for opening day. What they don’t need is for one of their star players…

View post

Anti-Gun Journalist Stages ‘Interview’ With AI Avatar of Murdered Student

Reading Time: 3:20 min

Anti-Gun Journalist Stages ‘Interview’ With AI Avatar of Murdered Student is the title that now marks a disturbing new chapter in the world of modern media, as former CNN White…

View post

UK Bans Lead Ammo in Cautionary Tale for US Gun Owners

Reading Time: 1:56 min

The American sporting public knows only too well that anti-gunners will use any tactic to obliterate Second Amendment rights. When banning guns fails, they are not above going after ammunition…

View post

Gun Rights Group Fighting Three-Front War Against Federal Government

Reading Time: 1:60 min

It is undeniable that 2025 has been a refreshing year for turning the tide toward respecting Second Amendment rights. Several significant reforms have been made, the ATF has ceased some…

View post

Virginia Sheriff Rejects Collecting $35 Concealed Carry Permit Application Fees

Reading Time: 1:54 min

Residents of one Virginia county are getting a financial break when they apply for a concealed carry permit in the future. That’s the word this week from Wythe County Sheriff…

View post

Michigan Lawmaker Proposes Permitting Concealed Carry in State Capitol Building

Reading Time: 1:54 min

After a loud ruckus in June over the issue of concealed carry in the Michigan State Capitol Building, a lawmaker made an interesting proposal to her colleagues.  State Rep. Gina…

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>