Right to Carry

Massachusetts Gun Sales Spike Ahead of Radical New Law

Reading Time: 2:3 min

Massachusetts citizens are flocking to gun stores ahead of the implementation of a controversial new law that will significantly impede their free exercise of Second Amendment rights. Bearing Arms reported…

View post

Gun Owners of America Launches Legal Challenge to Florida’s Open Carry Ban

Reading Time: 1:56 min

Even in a seemingly gun-friendly state such as Florida, there is work for Second Amendment advocates to accomplish to protect the rights of law-abiding citizens. Now that the legislature brushed…

View post

Federal Judge Sides with Second Amendment in Case Involving Maryland Carry Bans

Reading Time: 1:55 min

Maryland’s sweeping attempts to eradicate public firearms carry suffered a significant setback last week in federal court. U.S. District Judge George L. Russell III found several facets of the state’s…

View post

Government: ‘Illegal Aliens’ Are Not Protected by Second Amendment

Reading Time: 2:2 min

The federal government weighed in last week on the issue of individuals in the country illegally and Second Amendment rights. The Department of Justice submitted a letter to the court…

View post

Bill Proposed to Halt States From Enacting ‘Sin Taxes’ on Gun and Ammunition Purchases

Reading Time: 3:40 min

A commendable effort is underway in both the Senate and House to erect a roadblock to misguided attempts by states to punish the weapons industry and thus gun owners through…

View post

California Resident Shoots Alleged Home Invader Who Struck Him With a Rock

Reading Time: 2:9 min

Even in California, a home invasion carried out with only a rock and a stick has a considerable likelihood of not ending up well for the perpetrator. That is apparently…

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>