Right to Carry

Pennsylvania Supreme Court Cites PLCAA in Dismissing Lawsuit Against Gun Manufacturer

Reading Time: 3:53 min

Common sense and the rule of law carried the day with the Pennsylvania Supreme Court last week. Justices tossed out a lawsuit seeking to blame a gun maker for an…

View post

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
<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>