Right to Carry

Armed Florida Woman Defends Family Against Alleged Intruder

Reading Time: 2:2 min

A Florida woman whose family was cornered in a bedroom by an alleged home intruder responded in the manner in which an American protected by the Second Amendment should. She…

View post

5 Reasons Not To Carry A Gun In A Purse

Reading Time: 3:21 min

Let’s have a real talk about something I’ve seen over and over again. Every woman I’ve ever dated who carries, carries in her purse. Let’s face it, women aren’t going…

View post

Partial TRO Issued Against Controversial ATF Firearms ‘Dealer’ Rule

Reading Time: 3:23 min

The contentious new gun dealer rule that was implemented by the Bureau of Alcohol, Tobacco, Firearms and Explosives (ATF) stumbled at the starting gate with a federal judge’s ruling on…

View post

DHS Partnering with Online Retailers to Monitor 3D Printer Sales

Reading Time: 2:16 min

In a startling revelation by the Department of Homeland Security (DHS), officials confirmed that the government agency is monitoring Americans’ purchases of 3D printers. DHS is hardly alone in its…

View post

US Delegation Travels to Turks and Caicos to Lobby for Americans Arrested for Carrying Ammunition

Reading Time: 3:30 min

A rare case of bipartisanship in Washington emerged this week when a delegation of Democrats and Republicans traveled to the Turks and Caicos Islands on Monday. And they were not…

View post

Supreme Court Declines to Intercede in Maryland ‘Assault Weapons’ Case

Reading Time: 2:9 min

The U.S. Supreme Court turned aside a case fighting Maryland’s controversial ban on so-called “assault weapons” on Monday. That is hardly the end of the challenge since the Fourth Circuit…

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>