Right to Carry

Elderly Philadelphia Homeowner Fatally Shoots Alleged Burglar

Reading Time: 2:20 min

It takes a different sort of evil to prey on the young and the elderly, but sadly, that is all too familiar in 2025. That is yet another reason why…

View post

NRA Sues to End Colorado’s Controversial Excise Tax on Guns and Ammunition

Reading Time: 2:21 min

A broad coalition of gun rights groups filed a lawsuit Monday against Colorado’s punitive excise tax levied on firearm and ammunition purchases. The National Rifle Association (NRA), along with the…

View post

Federal Push to End NFA Restrictions on Short-Barreled Rifles Underway

Reading Time: 2:19 min

The last four years saw an unprecedented effort by politicians and bureaucrats to criminalize perfectly legal weapons. The previous administration and the ATF recategorized pistols equipped with braces as short-barreled…

View post

Semi-Automatic Weapons Ban Sent to Colorado Governor’s Desk

Reading Time: 2:23 min

Senate Bill 3, which bans the manufacture of and dramatically infringes on the ownership rights of popular semi-automatic sporting rifles, passed through the Colorado legislature and now heads to Gov.…

View post

Oregon Considers Reckless Gun Control Legislation

Reading Time: 2:21 min

Second Amendment advocates cried foul over Oregon lawmakers’ last-minute amending of a bill to fill it with anti-gun restrictions. SB 243 originally sought to permit the Department of State Police…

View post

Lawmaker Demands ATF Explain Secret Use of Facial Recognition Technology

Reading Time: 2:22 min

Last week, a Washington lawmaker demanded that the embattled Bureau of Alcohol, Tobacco, Firearms, and Explosives explain why it utilized facial recognition technology without proper oversight or even simple training.…

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>