Right to Carry

Omaha Approves Controversial Anti-Second Amendment Measures

Reading Time: 1:33 min

There is a clear showdown over gun rights looming between Nebraska government officials and the state’s largest city. The latest volley came from the Omaha City Council on Halloween. Despite…

View post

Illinois Gun Owners Steadfastly Resist Registering Their Firearms

Reading Time: 3:3 min

Registrations of newly banned so-called “assault rifles” in Illinois are conspicuous by their absence.  Gun owners are voting with their feet, and they are staying away in droves from registering…

View post

Would-Be Tennessee Victim Shoots Alleged Home Invader

Reading Time: 1:32 min

Whether it’s a burglary, home invasion or some other criminal enterprise that involves forcing their way into a person’s home, these acts are increasingly risky business. Many Americans feel as…

View post

National Guard Warned Police That Card Could ‘Snap and Commit a Mass Shooting’

Reading Time: 3:21 min

No one can say the warning signs were not there.  As anti-gun zealots march in lockstep proclaiming that the gun is the problem, authorities received clear signals that the Maine…

View post

Armed Man Shot While Allegedly Attacking Construction Workers

Reading Time: 1:60 min

A startling case in which an armed man was shot in Virginia is being defended by a construction company as self-defense. The flooring company supports its worker who ended up…

View post

Federal Judge Overturns California Law Banning Gun Shows at Fairgrounds

Reading Time: 3:13 min

A fresh victory for gun rights came down the pike Monday when a federal judge blocked California’s new law prohibiting gun shows at county fairs. U.S. District Judge Mark Holcomb…

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>