Right to Carry

NRA Blasts ATF Scheme to Redefine Gun Buyers, Sellers

Reading Time: 3:18 min

The National Rifle Association (NRA) is up in arms over a sweeping proposal from the Bureau of Alcohol, Tobacco, Firearms and Explosives (ATF). The institution said the misguided changes would…

View post

Maryland Homeowner Shoots Alleged Armed Home Invader

Reading Time: 1:40 min

There was a time when the home invasion was the stuff of movie plots, not real life. Burglaries when people are not home have been around since there’s been people,…

View post

November Gun Sales Top 1.5 Million, Near Record High

Reading Time: 1:34 min

Americans continued to exercise their Second Amendment rights with healthy purchases of firearms in November.  Figures from gun sales and National Instant Background Check System (NICS) system checks last month…

View post

Gun Control Activists Upset Buybacks Used on Weapons Parts Market

Reading Time: 3:2 min

Gun control activists celebrate when a municipality initiates a gun buyback program. Proponents tell anyone in shouting distance that it will get firearms off the streets and out of the…

View post

Federal Judge Temporarily Stays Own Decision Over Young Adult Gun Purchases

Reading Time: 3:9 min

The right to keep and bear arms was clearly intended to cover all law-abiding adults, but some lawmakers stubbornly insist that this is not the case. There is no other…

View post

ACLU Throws Support Behind NRA in New York Blacklist Case

Reading Time: 3:12 min

It is said that politics makes for strange bedfellows, and the same can be said for the law. The National Rifle Association (NRA) enjoys the support of a most unlikely…

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>