$(document).ready(function() {
$('.jqmarquee').each(function(){
  var element = $(this);
  var scroll = element.attr("data-scroll");
  var direction = element.attr("data-direction");var speed = element.attr("data-scroll-speed") || 1;
  var sensitive = element.attr("data-scroll-sensitive");
  var changedirection = element.attr("data-changedirection");
	var sensitiveamount = element.attr("data-scroll-sensitive-amount") || 2;
	var item=element.attr("data-marquee") || ".marquee__part";

  var marqueePart = element.find(item);

	element.wrapInner('<div class="marquee__inner" aria-hidden="true" data-ref="inner">');

	element.find(".marquee__inner").css({
			"width": "fit-content",
			"display": "flex",
			"flex": "auto",
			"flex-direction": "row",
	})

	element.css({
		"position": "relative",
	  "overflow": "hidden",
	});

	marqueePart.css({
		"flex-shrink": "0",
	  "padding": "0 4",
	  "font-smooth": "always"
	});


  let currentScroll = 0;
  let isScrollingDown = true;

  var gsapOptions = {
    xPercent: -100,
    repeat: -1,
    duration: 2,
    ease: "linear"
  };

  let tween = gsap.to(marqueePart, gsapOptions).totalProgress(0.1);

	if (direction == "lr") {
		gsap.to(tween, {
			timeScale: -speed
		});
	}else{
		gsap.to(tween, {
			timeScale: speed
		});
	}

  if (scroll) {
    window.addEventListener("scroll", function () {
      if (window.pageYOffset > currentScroll) {
        isScrollingDown = true;
      } else {
        if (changedirection=="true"){
          isScrollingDown = false;
        }else{
          isScrollingDown = true;
        }

      }

			if (sensitive){
	      var timeScale = (direction === "lr") ? (isScrollingDown ? -(speed*sensitiveamount) : (speed*sensitiveamount)) : (isScrollingDown ? (speed*sensitiveamount): -(speed*sensitiveamount));

	      gsap.to(tween, {
	        timeScale: timeScale
	      });
			}

			var timeScale = (direction === "lr") ? (isScrollingDown ? -speed : speed) : (isScrollingDown ? speed: -speed);

			if (sensitive){
				setTimeout(function(){
					gsap.to(tween, {
		        timeScale: timeScale
		      });
				}, 300);
			}else{
				gsap.to(tween, {
					timeScale: timeScale
				});
			}

      currentScroll = window.pageYOffset;
    });
  }
});
});
