1let movingCarousel = false, 2 carouselInterval = null; 3 4function moveCarousel(forwards) { 5 if (movingCarousel || !document.hasFocus()) 6 return; 7 8 movingCarousel = true; 9 10 let visibleElements = $(".card-container .card:visible"), 11 hiddenElements = $(".card-container .card:not(:visible)"), 12 selectable = forwards ? "first" : "last", 13 hidingElement = visibleElements[selectable](), 14 appearingElement = hiddenElements[selectable](); 15 16 hidingElement.fadeOut("fast", forwards ? 17 () => appearingElement.fadeIn("fast", () => { 18 hidingElement.detach(); 19 appearingElement.parent().append(hidingElement); 20 }) : 21 () => { 22 appearingElement.detach(); 23 hidingElement.parent().prepend(appearingElement); 24 appearingElement.fadeIn("fast"); 25 } 26 ); 27 28 setTimeout(() => movingCarousel = false, 500); 29} 30 31$(".chevrons").click(function () { 32 moveCarousel($(this)[0].style[0] === 'right'); 33}); 34 35function startCarouselInterval() { 36 clearInterval(carouselInterval); 37 carouselInterval = setInterval(() => moveCarousel(1), 4000); 38} 39 40function draggableElement(elmnt) { 41 let difference = 0, 42 initialX = 0; 43 elmnt.onmousedown = function (e) { 44 e = e || window.event; 45 e.preventDefault(); 46 initialX = e.clientX; 47 document.onmouseup = function () { 48 document.onmouseup = null; 49 document.onmousemove = null; 50 if (Math.abs(difference) > 10) 51 moveCarousel(difference > 0); 52 difference = 0; 53 initialX = 0; 54 movingCarousel = false; 55 startCarouselInterval(); 56 }; 57 document.onmousemove = function (e) { 58 e = e || window.event; 59 e.preventDefault(); 60 difference = initialX - e.clientX; 61 }; 62 clearInterval(carouselInterval); 63 }; 64} 65 66$(".card-container .card").each(function () { draggableElement($(this)[0]); }); 67 68startCarouselInterval(); 69 70if (window.PersonalizedServices) { 71 if (document.getElementById('suggestedServicesSection')) { 72 PersonalizedServices.load({ 73 section: 1, 74 sectionId: 'suggestedServicesSection', 75 containerId: 'suggestedServicesGrid' 76 }); 77 } 78}
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.