[{"command":"settings","settings":{"pluralDelimiter":"\u0003","suppressDeprecationErrors":true,"user":{"uid":0,"permissionsHash":"85d70ff5c59258123846295729decb835a5bed491a3a7e109f48f8ed54760113"}},"merge":true},{"command":"add_css","data":[{"rel":"stylesheet","media":"all","href":"\/sites\/default\/files\/css\/css_s_1GmMDVKilGqTybuDKAE7Jawuom3ouFgrtQF1sZ0q0.css?delta=0\u0026language=en\u0026theme=luv_theme\u0026include=eJzLz4hPzkgsSkwuSS0q1i_LTEnN181JrKrUzclPTMnMSwcA0MIMlQ\u0026exclude=eJxtj2GSwyAIhS-UjUdyiBLDxogD2rR7-k20TWc6_QP4PRCeY0HjpWaIoyeIHEb4hfvgTp5YNoj0hwNW65hXwiNtORIkh-YbtBMIDrxYCGgDFDSvosFMpicLCeKjkNPGa1nMBNqa3AICrqCoycIzRfzJnGv-0HSnjPKExZxf2J18wHIxwUBaBApxsvNh5lK0TuqEclPeU3jP8TQ-w42F-s0v9t4neJxw8f5aEHxXj31u9airaRWlMOhDC27d4I1wV9PiuLGvEf8BiiSXwA"}]},{"command":"add_js","selector":"body","data":[{"src":"\/core\/assets\/vendor\/jquery\/jquery.min.js?v=3.7.1"},{"src":"\/core\/assets\/vendor\/once\/once.min.js?v=1.0.1"},{"src":"\/core\/misc\/drupalSettingsLoader.js?v=10.6.2"},{"src":"\/core\/misc\/drupal.js?v=10.6.2"},{"src":"\/core\/misc\/drupal.init.js?v=10.6.2"},{"src":"\/modules\/custom\/oh_characters\/assets\/video-lazy-loading.c4ea404e.js?v=20260203.135522"}]},{"command":"insert","method":"append","selector":"#images_list","data":"  \u003Cdiv\n    class=\u0022image-item image \u0022\u003E\n          \u003Cimg\n        class=\u0022thumbnail-image\u0022\n        src=\u0022https:\/\/d3mpf1svyo6ceu.cloudfront.net\/styles\/profile_normal_small\/s3\/char-post-images\/4546463276489158751.png?VersionId=BT5dcnknhh6.SI5T.tqHAbGxsft9zhqu\u0026amp;itok=JESzwdE0\u0022\n        data-src=\u0022https:\/\/d3mpf1svyo6ceu.cloudfront.net\/styles\/profile_normal\/s3\/char-post-images\/4546463276489158751.png?VersionId=QemhANUOVSjD.J2ZZOjr9GSKTjc6rz6R\u0026amp;itok=VvRXkOdP\u0022\n        data-description=\u0022\u0022\n        data-post-description=\u0022Chasing horizons, one stride at a time. \ud83d\udcaa\ud83c\udf05 #MorningRunMagic\u0022\n        data-secured=\u00220\u0022\n        data-character=\u0022142\u0022\n        data-type=\u0022image\u0022\n                  data-video-url=\u0022\u0022                   data-video-id=\u00228653\u0022         data-post=\u00220\u0022\n        data-post-id=\u002216061\u0022\n        data-is-multiple=\u0022\u0022\n        alt=\u0022Chasing horizons, on\u0022\n        loading=\u0022lazy\u0022\n        onerror=\u0022this.style.display=\u0027none\u0027; this.nextElementSibling.nextElementSibling.style.display=\u0027flex\u0027;\u0022\n      \/\u003E\n      \u003Cdiv class=\u0022image-icon\u0022\u003E\u003C\/div\u003E\n          \u003C\/div\u003E\n  \u003Cdiv\n    class=\u0022image-item image \u0022\u003E\n          \u003Cimg\n        class=\u0022thumbnail-image\u0022\n        src=\u0022https:\/\/d3mpf1svyo6ceu.cloudfront.net\/styles\/profile_normal_small\/s3\/char-post-images\/-5487597223647416811.png?VersionId=M_LhGk0undOd84NoMU_Ch3_qWCOpOeFj\u0026amp;itok=fS28UhOW\u0022\n        data-src=\u0022https:\/\/d3mpf1svyo6ceu.cloudfront.net\/styles\/profile_normal\/s3\/char-post-images\/-5487597223647416811.png?VersionId=SUlbdMYues59FaWITY8kG0gKaFT.67TW\u0026amp;itok=2Lq9ivsN\u0022\n        data-description=\u0022\u0022\n        data-post-description=\u0022New heights, new perspectives. Never stop reaching. \ud83d\udcaa #AdventureAwaits\u0022\n        data-secured=\u00220\u0022\n        data-character=\u0022142\u0022\n        data-type=\u0022image\u0022\n                  data-video-url=\u0022\u0022                   data-video-id=\u00228099\u0022         data-post=\u00221\u0022\n        data-post-id=\u002215670\u0022\n        data-is-multiple=\u0022\u0022\n        alt=\u0022New heights, new per\u0022\n        loading=\u0022lazy\u0022\n        onerror=\u0022this.style.display=\u0027none\u0027; this.nextElementSibling.nextElementSibling.style.display=\u0027flex\u0027;\u0022\n      \/\u003E\n      \u003Cdiv class=\u0022image-icon\u0022\u003E\u003C\/div\u003E\n          \u003C\/div\u003E\n  \u003Cdiv\n    class=\u0022image-item image \u0022\u003E\n          \u003Cimg\n        class=\u0022thumbnail-image\u0022\n        src=\u0022https:\/\/d3mpf1svyo6ceu.cloudfront.net\/styles\/profile_normal_small\/s3\/char-post-images\/-5600971176548511686.png?VersionId=uQFV.UzEw0GBt68I4MubEGsykiKdpTFs\u0026amp;itok=e_tZzX4T\u0022\n        data-src=\u0022https:\/\/d3mpf1svyo6ceu.cloudfront.net\/styles\/profile_normal\/s3\/char-post-images\/-5600971176548511686.png?VersionId=UvLvjUY1SrjrDQUHGYRQ9mTws3maQLXC\u0026amp;itok=FjWjSw5C\u0022\n        data-description=\u0022\u0022\n        data-post-description=\u0022Sunset sweat session: racing the waves \ud83c\udfc4\u200d\u2642\ufe0f\ud83c\udf0a\u0022\n        data-secured=\u00220\u0022\n        data-character=\u0022142\u0022\n        data-type=\u0022image\u0022\n                  data-video-url=\u0022\u0022                   data-video-id=\u00227253\u0022         data-post=\u00222\u0022\n        data-post-id=\u002214787\u0022\n        data-is-multiple=\u0022\u0022\n        alt=\u0022Sunset sweat session\u0022\n        loading=\u0022lazy\u0022\n        onerror=\u0022this.style.display=\u0027none\u0027; this.nextElementSibling.nextElementSibling.style.display=\u0027flex\u0027;\u0022\n      \/\u003E\n      \u003Cdiv class=\u0022image-icon\u0022\u003E\u003C\/div\u003E\n          \u003C\/div\u003E\n  \u003Cdiv\n    class=\u0022image-item image \u0022\u003E\n          \u003Cimg\n        class=\u0022thumbnail-image\u0022\n        src=\u0022https:\/\/d3mpf1svyo6ceu.cloudfront.net\/styles\/profile_normal_small\/s3\/char-post-images\/-1633279566269252952.png?VersionId=79hrxA4ZZD__IiXEK0zhcgjePfF7CTnj\u0026amp;itok=pxEGqKlx\u0022\n        data-src=\u0022https:\/\/d3mpf1svyo6ceu.cloudfront.net\/styles\/profile_normal\/s3\/char-post-images\/-1633279566269252952.png?VersionId=rgK7kbh4l86hdSP3wAxt8Yh9WASKsxXS\u0026amp;itok=-YawDF0-\u0022\n        data-description=\u0022\u0022\n        data-post-description=\u0022Pushing limits, feeling the burn \ud83d\udd25\ud83d\udcaa #StrengthGoals\u0022\n        data-secured=\u00220\u0022\n        data-character=\u0022142\u0022\n        data-type=\u0022image\u0022\n                  data-video-url=\u0022\u0022                   data-video-id=\u00226178\u0022         data-post=\u00223\u0022\n        data-post-id=\u002213576\u0022\n        data-is-multiple=\u0022\u0022\n        alt=\u0022Pushing limits, feel\u0022\n        loading=\u0022lazy\u0022\n        onerror=\u0022this.style.display=\u0027none\u0027; this.nextElementSibling.nextElementSibling.style.display=\u0027flex\u0027;\u0022\n      \/\u003E\n      \u003Cdiv class=\u0022image-icon\u0022\u003E\u003C\/div\u003E\n          \u003C\/div\u003E\n  \u003Cdiv\n    class=\u0022image-item image \u0022\u003E\n          \u003Cimg\n        class=\u0022thumbnail-image\u0022\n        src=\u0022https:\/\/d3mpf1svyo6ceu.cloudfront.net\/styles\/profile_normal_small\/s3\/char-post-images\/-2120572027812764064.png?VersionId=VIwPS_A0QO.l6HY05TfhfKMnFhfecm30\u0026amp;itok=Ze6xZM6j\u0022\n        data-src=\u0022https:\/\/d3mpf1svyo6ceu.cloudfront.net\/styles\/profile_normal\/s3\/char-post-images\/-2120572027812764064.png?VersionId=XAdqFLL0MgKZHXvCf6.vgRBVOZpyY7mz\u0026amp;itok=u63F6ap-\u0022\n        data-description=\u0022\u0022\n        data-post-description=\u0022Sweaty power hour: crushing it one rep at a time \ud83c\udf1f\ud83d\udcaa #workhardplayhard\u0022\n        data-secured=\u00220\u0022\n        data-character=\u0022142\u0022\n        data-type=\u0022image\u0022\n                  data-video-url=\u0022\u0022                   data-video-id=\u00226064\u0022         data-post=\u00224\u0022\n        data-post-id=\u002213458\u0022\n        data-is-multiple=\u0022\u0022\n        alt=\u0022Sweaty power hour: c\u0022\n        loading=\u0022lazy\u0022\n        onerror=\u0022this.style.display=\u0027none\u0027; this.nextElementSibling.nextElementSibling.style.display=\u0027flex\u0027;\u0022\n      \/\u003E\n      \u003Cdiv class=\u0022image-icon\u0022\u003E\u003C\/div\u003E\n          \u003C\/div\u003E\n  \u003Cdiv\n    class=\u0022image-item image \u0022\u003E\n          \u003Cimg\n        class=\u0022thumbnail-image\u0022\n        src=\u0022https:\/\/d3mpf1svyo6ceu.cloudfront.net\/styles\/profile_normal_small\/s3\/char-post-images\/-1219286249582686297.png?VersionId=IVTg7cnAz2x4Plx6LQ9ztgDQGsznhl6U\u0026amp;itok=Y6jxzLPC\u0022\n        data-src=\u0022https:\/\/d3mpf1svyo6ceu.cloudfront.net\/styles\/profile_normal\/s3\/char-post-images\/-1219286249582686297.png?VersionId=O8tSlwRQfmNiWVCPChtRKXvo1d_0bJ8H\u0026amp;itok=ZSCBWx9i\u0022\n        data-description=\u0022\u0022\n        data-post-description=\u0022Chasing sunsets and dreams, one step at a time. \ud83c\udf05\ud83d\udc5f #AdventuresWithPurpose #LiveBold\u0022\n        data-secured=\u00220\u0022\n        data-character=\u0022142\u0022\n        data-type=\u0022image\u0022\n                  data-video-url=\u0022\u0022                   data-video-id=\u00225965\u0022         data-post=\u00225\u0022\n        data-post-id=\u002213353\u0022\n        data-is-multiple=\u0022\u0022\n        alt=\u0022Chasing sunsets and \u0022\n        loading=\u0022lazy\u0022\n        onerror=\u0022this.style.display=\u0027none\u0027; this.nextElementSibling.nextElementSibling.style.display=\u0027flex\u0027;\u0022\n      \/\u003E\n      \u003Cdiv class=\u0022image-icon\u0022\u003E\u003C\/div\u003E\n          \u003C\/div\u003E\n  \u003Cdiv\n    class=\u0022image-item image \u0022\u003E\n          \u003Cimg\n        class=\u0022thumbnail-image\u0022\n        src=\u0022https:\/\/d3mpf1svyo6ceu.cloudfront.net\/styles\/profile_normal_small\/s3\/char-post-images\/4260985105976739831.png?VersionId=ryLtAveSRS9VQcBmZoDNF1X4ZV7I3Bq0\u0026amp;itok=r2wZGSgR\u0022\n        data-src=\u0022https:\/\/d3mpf1svyo6ceu.cloudfront.net\/styles\/profile_normal\/s3\/char-post-images\/4260985105976739831.png?VersionId=T8xn6w0Fq7UJVXStAjjtHX60DF41YHIM\u0026amp;itok=yNZHIQvx\u0022\n        data-description=\u0022\u0022\n        data-post-description=\u0022Sun-kissed strolls \u0026amp; bold dreams \ud83c\udf1e\ud83d\udeb6\u200d\u2642\ufe0f #LivingTheXLife\u0022\n        data-secured=\u00220\u0022\n        data-character=\u0022142\u0022\n        data-type=\u0022image\u0022\n                  data-video-url=\u0022\u0022                   data-video-id=\u00225889\u0022         data-post=\u00226\u0022\n        data-post-id=\u002213274\u0022\n        data-is-multiple=\u0022\u0022\n        alt=\u0022Sun-kissed strolls \u0026amp;\u0022\n        loading=\u0022lazy\u0022\n        onerror=\u0022this.style.display=\u0027none\u0027; this.nextElementSibling.nextElementSibling.style.display=\u0027flex\u0027;\u0022\n      \/\u003E\n      \u003Cdiv class=\u0022image-icon\u0022\u003E\u003C\/div\u003E\n          \u003C\/div\u003E\n  \u003Cdiv\n    class=\u0022image-item image \u0022\u003E\n          \u003Cimg\n        class=\u0022thumbnail-image\u0022\n        src=\u0022https:\/\/d3mpf1svyo6ceu.cloudfront.net\/styles\/profile_normal_small\/s3\/char-post-images\/1489563006464155027.png?VersionId=me7zAKs_QJz8NRXuGD19fAPedg_fMSfW\u0026amp;itok=Qs9sjAu-\u0022\n        data-src=\u0022https:\/\/d3mpf1svyo6ceu.cloudfront.net\/styles\/profile_normal\/s3\/char-post-images\/1489563006464155027.png?VersionId=_H5CxwgLCRH4JhxZi0oAHDuWjLeTCOrI\u0026amp;itok=UZDyRJn3\u0022\n        data-description=\u0022\u0022\n        data-post-description=\u0022Sweat, sunshine, and the perfect view \ud83c\udf1e\ud83d\udcaa #MorningRoutine\u0022\n        data-secured=\u00220\u0022\n        data-character=\u0022142\u0022\n        data-type=\u0022image\u0022\n                  data-video-url=\u0022\u0022                   data-video-id=\u00225769\u0022         data-post=\u00227\u0022\n        data-post-id=\u002213148\u0022\n        data-is-multiple=\u0022\u0022\n        alt=\u0022Sweat, sunshine, and\u0022\n        loading=\u0022lazy\u0022\n        onerror=\u0022this.style.display=\u0027none\u0027; this.nextElementSibling.nextElementSibling.style.display=\u0027flex\u0027;\u0022\n      \/\u003E\n      \u003Cdiv class=\u0022image-icon\u0022\u003E\u003C\/div\u003E\n          \u003C\/div\u003E\n  \u003Cdiv\n    class=\u0022image-item image \u0022\u003E\n          \u003Cimg\n        class=\u0022thumbnail-image\u0022\n        src=\u0022https:\/\/d3mpf1svyo6ceu.cloudfront.net\/styles\/profile_normal_small\/s3\/char-post-images\/1938107971139749570.png?VersionId=DOBjzcN0L6Ft2luC..USip_X3cmEpR4G\u0026amp;itok=fxuQSgMq\u0022\n        data-src=\u0022https:\/\/d3mpf1svyo6ceu.cloudfront.net\/styles\/profile_normal\/s3\/char-post-images\/1938107971139749570.png?VersionId=A3SlI4HYOXM0N9MN32UpN0lmSN9wP1sE\u0026amp;itok=r2m_K8oV\u0022\n        data-description=\u0022\u0022\n        data-post-description=\u0022Chasing sunsets and making gains.\u2728\ud83c\udfcb\ufe0f\u200d\u2642\ufe0f\ud83c\udf05 #fitnessjourney\u0022\n        data-secured=\u00220\u0022\n        data-character=\u0022142\u0022\n        data-type=\u0022image\u0022\n                  data-video-url=\u0022\u0022                   data-video-id=\u00225432\u0022         data-post=\u00228\u0022\n        data-post-id=\u002212796\u0022\n        data-is-multiple=\u0022\u0022\n        alt=\u0022Chasing sunsets and \u0022\n        loading=\u0022lazy\u0022\n        onerror=\u0022this.style.display=\u0027none\u0027; this.nextElementSibling.nextElementSibling.style.display=\u0027flex\u0027;\u0022\n      \/\u003E\n      \u003Cdiv class=\u0022image-icon\u0022\u003E\u003C\/div\u003E\n          \u003C\/div\u003E\n\n\u003Cscript\u003E\n  (function () {\n    \/\/ Auto-play sequence for mobile devices\n    let currentVideoIndex = 0;\n    let videoElements = [];\n    let autoPlayTimer = null;\n    let isAutoPlaying = false;\n\n    \/\/ Check if device is mobile\n    function isMobileDevice() {\n      return \/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini\/i.test(navigator.userAgent);\n    }\n    \n    \/\/ Check if device is iOS\n    function isIOSDevice() {\n      return \/iPad|iPhone|iPod\/.test(navigator.userAgent);\n    }\n\n    \/\/ Initialize video elements\n    function initVideoElements() {\n      videoElements = Array.from(document.querySelectorAll(\u0027.video-wrapper\u0027));\n\n      videoElements.forEach((wrapper, index) =\u003E {\n        const video = wrapper.querySelector(\u0027.video-player\u0027);\n        const thumbnail = wrapper.querySelector(\u0027.video-thumbnail\u0027);\n        const videoIcon = wrapper.querySelector(\u0027.video-icon\u0027);\n\n\n        if (!video) {\n          return;\n        }\n\n        \/\/ iOS-specific: Ensure video is visible and has proper dimensions\n        if (isIOSDevice()) {\n          video.style.display = \u0027block\u0027;\n          video.style.width = \u0027100%\u0027;\n          video.style.height = \u0027auto\u0027;\n          video.style.objectFit = \u0027cover\u0027;\n          \n          \/\/ Force video to show poster or first frame\n          video.addEventListener(\u0027loadstart\u0027, function() {\n            video.style.opacity = \u00271\u0027;\n          });\n          \n          video.addEventListener(\u0027error\u0027, function(e) {\n            \/\/ Show video icon if video fails\n            if (videoIcon) {\n              videoIcon.style.display = \u0027block\u0027;\n            }\n          });\n        }\n\n        \/\/ Add click handler for video icon to start video\n        if (videoIcon) {\n          videoIcon.addEventListener(\u0027click\u0027, function () {\n            currentVideoIndex = index;\n            if (isMobileDevice()) {\n              startAutoPlay();\n            } else {\n              playVideo(index);\n            }\n          });\n        }\n\n        \/\/ For mobile - show play buttons and allow manual start\n        if (isMobileDevice()) {\n          \/\/ Keep play buttons visible for mobile\n          wrapper.style.cursor = \u0027pointer\u0027;\n\n          video.addEventListener(\u0027ended\u0027, function () {\n            showNextVideo();\n          });\n\n          \/\/ Click to start auto-play sequence from any video\n          wrapper.addEventListener(\u0027click\u0027, function () {\n            currentVideoIndex = index;\n            startAutoPlay();\n          });\n        } else {\n          \/\/ Desktop - direct hover to play\/stop without complex state tracking\n          let isVideoPlaying = false;\n\n          wrapper.addEventListener(\u0027mouseenter\u0027, function () {\n            if (!isAutoPlaying \u0026\u0026 !isVideoPlaying) {\n              isVideoPlaying = true;\n              playVideo(index);\n            }\n          });\n\n          wrapper.addEventListener(\u0027mouseleave\u0027, function () {\n            if (!isAutoPlaying \u0026\u0026 isVideoPlaying) {\n              isVideoPlaying = false;\n              stopVideo(index);\n            }\n          });\n\n          \/\/ Click to start auto-play sequence\n          wrapper.addEventListener(\u0027click\u0027, function () {\n            currentVideoIndex = index;\n            startAutoPlay();\n          });\n        }\n      });\n    }\n\n    function playVideo(index) {\n      if (index \u003E= videoElements.length) {\n        return;\n      }\n\n      const wrapper = videoElements[index];\n      const video = wrapper.querySelector(\u0027.video-player\u0027);\n      const thumbnail = wrapper.querySelector(\u0027.video-thumbnail:not(.video-player)\u0027);\n      const videoIcon = wrapper.querySelector(\u0027.video-icon\u0027);\n      const loader = wrapper.querySelector(\u0027.video-loading-indicator\u0027);\n\n\n      if (!video) {\n        return;\n      }\n\n      \/\/ Show loader and fade play button\n      if (loader) {\n        loader.style.display = \u0027block\u0027;\n      }\n      if (videoIcon) {\n        videoIcon.style.opacity = \u00270\u0027;\n        setTimeout(() =\u003E {\n          videoIcon.style.display = \u0027none\u0027;\n        }, 200);\n      }\n\n      \/\/ Load and play video (iOS requires loading on user interaction)\n      const videoUrl = video.dataset.videoUrl;\n      \n      if (!video.src \u0026\u0026 videoUrl) {\n        video.querySelector(\u0027source\u0027).src = videoUrl;\n        video.load();\n      }\n\n      \/\/ Hide thumbnail, show video with smooth transition\n      if (thumbnail) {\n        thumbnail.style.opacity = \u00270\u0027;\n        setTimeout(() =\u003E {\n          thumbnail.style.display = \u0027none\u0027;\n        }, 100);\n      }\n      video.style.display = \u0027block\u0027;\n      video.style.opacity = \u00271\u0027;\n      video.currentTime = 0; \/\/ Reset to start\n\n      \/\/ Add event listeners for iOS video loading\n      video.addEventListener(\u0027loadeddata\u0027, function() {\n        if (loader) {\n          loader.style.display = \u0027none\u0027;\n        }\n        video.play().catch(e =\u003E {\n          showThumbnail(index);\n        });\n      }, { once: true });\n      \n      video.addEventListener(\u0027canplay\u0027, function() {\n        if (loader) {\n          loader.style.display = \u0027none\u0027;\n        }\n      }, { once: true });\n      \n      \/\/ Try to play immediately if already loaded\n      if (video.readyState \u003E= 3) { \/\/ HAVE_FUTURE_DATA\n        if (loader) {\n          loader.style.display = \u0027none\u0027;\n        }\n        video.play().catch(e =\u003E {\n          showThumbnail(index);\n        });\n      }\n    }\n\n    function showThumbnail(index) {\n      if (index \u003E= videoElements.length) {\n        return;\n      }\n\n      const wrapper = videoElements[index];\n      const video = wrapper.querySelector(\u0027.video-player\u0027);\n      const thumbnail = wrapper.querySelector(\u0027.video-thumbnail:not(.video-player)\u0027);\n      const videoIcon = wrapper.querySelector(\u0027.video-icon\u0027);\n      const loader = wrapper.querySelector(\u0027.video-loading-indicator\u0027);\n\n      \/\/ Pause video with smooth transition\n      if (video) {\n        \/\/ video.pause();\n        \/\/ video.style.opacity = \u00270\u0027;\n        setTimeout(() =\u003E {\n          \/\/ video.style.display = \u0027none\u0027;\n        }, 100);\n      }\n\n      \/\/ Show thumbnail and play button with smooth transition\n      if (thumbnail) {\n        thumbnail.style.display = \u0027block\u0027;\n        thumbnail.style.opacity = \u00271\u0027;\n      }\n      if (videoIcon) {\n        videoIcon.style.display = \u0027block\u0027;\n        videoIcon.style.opacity = \u00271\u0027;\n      }\n      if (loader) {\n        loader.style.display = \u0027none\u0027;\n      }\n    }\n\n    function stopVideo(index) {\n      \/\/ stopVideo is just an alias for showThumbnail for clearer intent\n      showThumbnail(index);\n    }\n\n    function startAutoPlay() {\n      isAutoPlaying = true;\n      playVideo(currentVideoIndex);\n    }\n\n    function showNextVideo() {\n      \/\/ Show current video\u0027s thumbnail\n      showThumbnail(currentVideoIndex);\n\n      \/\/ Move to next video\n      currentVideoIndex = (currentVideoIndex + 1) % videoElements.length;\n\n      \/\/ Auto-play next video after delay\n      setTimeout(() =\u003E {\n        if (isAutoPlaying) {\n          playVideo(currentVideoIndex);\n        }\n      }, 500);\n    }\n\n    function stopAutoPlay() {\n      isAutoPlaying = false;\n      showThumbnail(currentVideoIndex);\n      if (autoPlayTimer) {\n        clearTimeout(autoPlayTimer);\n      }\n    }\n\n\n    \/\/ Initialize when DOM is ready\n    if (document.readyState === \u0027loading\u0027) {\n      document.addEventListener(\u0027DOMContentLoaded\u0027, function () {\n        initVideoElements();\n      });\n    } else {\n      initVideoElements();\n    }\n\n    \/\/ Stop auto-play when user scrolls away\n    let lastScrollTime = Date.now();\n    window.addEventListener(\u0027scroll\u0027, function () {\n      lastScrollTime = Date.now();\n      if (isAutoPlaying) {\n        setTimeout(function () {\n          if (Date.now() - lastScrollTime \u003E 2000) { \/\/ 2 seconds of no scrolling\n            \/\/ User stopped scrolling, continue auto-play\n          }\n        }, 2000);\n      }\n    });\n\n  })();\n\u003C\/script\u003E\n\n","settings":null},{"command":"insert","method":"replaceWith","selector":"#load-more-all","data":"\u003Ca href=\u0022\/profile\/142\/2\/all\u0022 rel=\u0022nofollow\u0022 id=\u0022load-more-all\u0022 data-cid=\u0022142\u0022 class=\u0022use-ajax btn btn-secondary btn-secondary-load load-more\u0022\u003E\n  Load more\n\u003C\/a\u003E\n","settings":null}]