Right to Carry

Lawsuit Brought Against Los Angeles County and California AG Over Gun Rights

Reading Time: 2:58 min

California is hardly golden when it comes to Second Amendment rights, and even when forced to abide by the Constitution, officials notoriously drag their feet like petulant children. So much…

View post

California Homeowner Protecting Children Shoots and Kills Alleged Intruder

Reading Time: 1:36 min

There is little more fundamental than the instinct to protect the young and defenseless. This behavior may be readily witnessed in the animal kingdom, and it remains a vital part…

View post

Federal Judge Rules Ban on Handgun Sales for Ages 18-20 Unconstitutional

Reading Time: 1:45 min

A key gun control ruling was handed down by a federal judge on Friday. It rejected the federal ban on licensed gun dealers selling handguns to law-abiding adults under 21,…

View post

Citizen Outcry Forces Nebraska Town to Rescind ‘Gun-Free Zones’

Reading Time: 3:8 min

Residents of Kearney, Nebraska, know a governmental overreach when they see one. Political leaders do not operate independently of the people, but rather with their expressed consent. So, when they…

View post

Bill Introduced in Congress Aims At Future Gun Designs

Reading Time: 3:8 min

Anti-gun lawmakers are nothing if not consistent in their opposition to hard-won Second Amendment rights. Due to the Constitutional guarantee of the freedom to keep and bear arms, they are…

View post

Illinois Gun Owners Practice Massive Civil Disobedience Against Gun Registration

Reading Time: 3:22 min

Law-abiding Illinois gun owners know the Constitution protects their right to keep and bear arms. They are also well aware of a raw deal when they see one, such as…

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>