Right to Carry

Memphis Officials File Lawsuit Against State Over Gun Control

Reading Time: 2:2 min

The controversy over City of Memphis leaders wanting to suppress Second Amendment rights in opposition to state law is headed to court. For months, the city declared its intent to…

View post

Appeals Court: Marijuana Users Not Automatically Prohibited from Gun Ownership

Reading Time: 3:24 min

Second Amendment supporters who are also cannabis enthusiasts scored another victory Wednesday in the battle to secure the same freedoms enjoyed by those who indulge in alcohol.  In U.S. v.…

View post

Liquor Store Employee Uses Handgun to Thwart Attack

Reading Time: 2:5 min

Violent criminals by their nature are aggressive bullies, and it must be a shock to them when a good citizen flips the script and gives them a taste of their…

View post

Court: Second Amendment Protects Right to Carry a Switchblade

Reading Time: 3:26 min

In a case that also has implications for gun laws, the Massachusetts Supreme Court on Tuesday ruled that the prohibition against carrying spring-loaded knives, commonly known as “switchblades,” violates the…

View post

Armed Hero Saves Woman and Small Child from Alleged Carjacking Attempt

Reading Time: 1:56 min

If there’s anything more frightening than a violent carjacking attempt, it is facing this threat with your small child in the vehicle with you. That’s what a woman in Falls…

View post

Appeals Court Rules Illegal Aliens Do Not Enjoy Second Amendment Rights

Reading Time: 1:55 min

The 5th Circuit U.S. Court of Appeals on Tuesday weighed in on the contentious issue of illegal migrants and Second Amendment rights. The three-judge panel ruled that those in the…

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>