Law

Minnesota Supreme Court Rules in Favor of Firearms Minus Serial Numbers

Reading Time: 1:52 min

The Minnesota Supreme Court considered the legality of unserialized firearms for state residents and returned an interesting ruling. On Wednesday, the high court determined in State v. Vagle that the…

View post

Engineers Build The World’s First Real 3D-Printed Gun

Reading Time: 0:48 min

The Liberator, for all the hoopla, was not really a gun. This 3D-printed firearm, on the other hand, is a gun. It is a copy of a 1911 made using…

View post

Guns in the Parking Lot: Bringing them to the Workplace

Reading Time: 0:30 min

Some 22 states have passed laws that limit property owners’ ability to ban firearms in vehicles in parking areas. Under the Bring Your Gun to Work Laws employers can only…

View post

Jay Carney (Obama Spokesman): Commenting on The shooting at the Washington Navy Yard

Reading Time: 0:15 min

 the president is implementing executive actions and reiterated his commitment to strengthening gun laws, including expanding background checks to sales online and at gun shows. The president supports, as do an…

View post

Handgun Safety Recalls

Reading Time: 0:30 min

Another day another handgun safety recall. They say celebrity deaths always happen in threes. I am starting to think the same can be said about handgun recalls. First the Smith…

View post

Texas: Pro-Second Amendment Law Changes to Take Effect Today

Reading Time: 1:25 min

This is great and all and I applaud Texas for instituting laws in favor of gun ownership, especially, during a time where creating anti-gun laws means  you get to be…

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>