HEX
Server: Apache
System: Linux scp1.abinfocom.com 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64
User: confeduphaar (1010)
PHP: 8.1.33
Disabled: exec,passthru,shell_exec,system
Upload Files
File: /home/confeduphaar/backip-old-files/plugins/system/jdbuilder/elements/video/tmpl/default.js
(function () {

    var JDBuilderElementVideo = function (element) {
        var videoType = element.params.get('videoType', 'html5');
        switch (videoType) {
            case 'html5':
                var video = JDBRenderer.Helper.mediaValue(element.params.get('video', ''));
                break;
            case 'youtube':
                var video = element.params.get('videoYoutubeLink', '');
                break;
            case 'vimeo':
                var video = element.params.get('videoVimeoLink', '');
                break;
            case 'dailymotion':
                var video = element.params.get('videoDailymotionLink', '');
                break;
        }
        if (video == '') {
            return '';
        }
        var _options = [];
        var uKey = [];
        uKey.push(JDBRenderer.Helper.hashCode(video));

        _options.push('type:' + videoType);
        _options.push('thumbnail:' + (element.params.get('thumbnail', true) ? 'true' : 'false'));
        _options.push('controls:' + (element.params.get('controls', true) ? 'true' : 'false'));
        _options.push('autoplay:' + (element.params.get('autoplay', false) ? 'true' : 'false'));
        _options.push('muted:' + (element.params.get('muted', false) ? 'true' : 'false'));
        _options.push('loop:' + (element.params.get('loop', false) ? 'true' : 'false'));
        _options.push('sticky:' + (element.params.get('sticky', false) ? 'true' : 'false'));
        _options.push('stickyPosition:' + (element.params.get('stickyPosition', 'bottom-right')));
        _options.push('overlay:' + (element.params.get('overlayColor', '')));
        _options.push('size:' + (element.params.get('videoSize', '16by9')));
        _options.push('thumbnailSize:' + element.params.get('ytThumbnailSize', 'maxresdefault'));

        var videoStartTime = element.params.get('videoStartTime', {
            hours: 0,
            minutes: 0
        });
        videoStartTime = (videoStartTime.hours * 60) + videoStartTime.minutes;

        var videoEndTime = element.params.get('videoEndTime', {
            hours: 0,
            minutes: 0
        });
        videoEndTime = (videoEndTime.hours * 60) + videoEndTime.minutes;
        _options.push('ytmb:' + (element.params.get('ytModestBranding', false) ? 'true' : 'false'));
        _options.push('ytsv:' + (element.params.get('ytSuggestedVideos', false) ? 'true' : 'false'));

        _options.push('start:' + videoStartTime);
        _options.push('end:' + videoEndTime);
        _options.push('hideOn:' + element.params.get('stickyHideOn', []).join('-'));
        var poster = '';
        if (element.params.get('poster', '') != '') {
            poster = JDBRenderer.Helper.mediaValue(element.params.get('poster', ''));
        }
        uKey.push(JDBRenderer.Helper.hashCode(poster));
        uKey.push(element.params.get('playButtonType', ''));
        uKey.push(element.params.get('playButtonIcon', ''));
        uKey.push(element.params.get('playButtonImage', ''));

        var _subscriberBar = '';
        if (videoType == 'youtube' && element.params.get('ytSubscribeBar', false)) {
            var _subscriberBarOptions = [];
            _subscriberBarOptions.push(element.params.get('ytSubscribeChennelType', 'channel') + ':' + element.params.get('ytSubscribeChennel', ''));
            _subscriberBarOptions.push('layout:' + (element.params.get('ytSubscribeLayout', 'default')));
            _subscriberBarOptions.push('count:' + (element.params.get('ytSubscribeCount', true) ? 'default' : 'hidden'));
            _subscriberBar = '<div class="jdb-video-subscription-bar jdb-row jdb-no-gutters jdb-justify-content-center"><div class="jdb-col-md-auto jdb-d-flex jdb-align-items-center jdb-justify-content-center jdb-video-subscription-text"><div>' + element.params.get('ytSubscribeText', '') + '</div></div><div class="jdb-col-md-auto jdb-d-flex jdb-align-items-center jdb-justify-content-center jdb-video-subscription-button"><div class="jdb-d-inline-block"><div jdb-ytsubscribe="' + _subscriberBarOptions.join(';') + '"></div></div></div></div>';
        }

        var _vimeoOptions = {};
        if (videoType === 'vimeo') {
            _vimeoOptions.byline = element.params.get('vimeoByline', true);
            _vimeoOptions.title = element.params.get('vimeoTitle', true);
            _vimeoOptions.portrait = element.params.get('vimeoPortrait', true);
            if (element.params.get('vimeoControlColor', '') !== '') {
                _vimeoOptions.color = element.params.get('vimeoControlColor', '').replace('#', '');
            }
            if ((_vimeoOptions.byline || _vimeoOptions.title || _vimeoOptions.portrait) && poster == '') {
                _options.push('thumbnail:false');
            }
            uKey.push(JDBRenderer.Helper.hashCode(JSON.stringify(_vimeoOptions)));
        }

        var _dailymotionOptions = {};
        if (videoType === 'dailymotion') {
            _dailymotionOptions['ui-start-screen-info'] = element.params.get('dailymotionVideoInfo', true);
            _dailymotionOptions['queue-autoplay-next'] = false;
            _dailymotionOptions['ui-logo'] = element.params.get('dailymotionLogo', true);
            if ((_dailymotionOptions['ui-start-screen-info'] || _dailymotionOptions['ui-logo']) && poster == '') {
                _options.push('thumbnail:false');
            }
            uKey.push(JDBRenderer.Helper.hashCode(JSON.stringify(_dailymotionOptions)));
        }

        element.addCss('overflow', 'hidden');
        if (_subscriberBar != '') {
            barStyling(element);
        }
        playButtonStyling(element);
        if (element.params.get('sticky', false)) {
            stickyStyling(element);
        }

        _options.push('animation:' + element.params.get('playButtonAnimation', ''));

        if (element.params.get('thumbnail', true) && element.params.get('lightbox', false) && poster != '') {
            _options.push('lightbox:jdb-video-lightbox-' + element.id);

            var lightboxContent = JDBRenderer.ElementStyle('<#' + 'jdb-video-lightbox-' + element.id + '-content');
            element.addChildrenStyle([lightboxContent]);
            var lightboxContentWidth = element.params.get('lightboxContentWidth', null);
            if (JDBRenderer.Helper.checkSliderValue(lightboxContentWidth)) {
                lightboxContent.addCss('width', lightboxContentWidth.value + 'vw');
            }
        }else{
            _options.push('lightbox:');
        }

        _options.push('ukey:' + JDBRenderer.Helper.hashCode(uKey.join('')));
        return '<div class="jdb-video-container"><div jdb-video="' + _options.join(';') + '" data-src="' + video + '" data-play="' + element.params.get('playButtonType', '') + '" data-play-icon="' + element.params.get('playButtonIcon', '') + '" data-play-image="' + JDBRenderer.Helper.mediaValue(element.params.get('playButtonImage', '')) + '" data-thumbnail="' + poster + '" data-vimeo=\'' + JSON.stringify(_vimeoOptions) + '\' data-dailymotion=\'' + JSON.stringify(_dailymotionOptions) + '\'></div>' + _subscriberBar + '</div>';
    };

    function barStyling(element) {
        var barStyle = JDBRenderer.ElementStyle('.jdb-video-subscription-bar');
        var buttonStyle = JDBRenderer.ElementStyle('.jdb-ytsubscribe');

        element.addChildrenStyle([barStyle, buttonStyle]);

        barStyle.addCss("color", element.params.get('ytSubscribeColor', ''));
        barStyle.addCss("background-color", element.params.get('ytSubscribeBackground', ''));

        var typography = element.params.get('ytSubscribeTypography', null);
        if (typography !== null) {
            JDBRenderer.DEVICES.forEach(function (_deviceObj) {
                if (_deviceObj.key in typography) {
                    barStyle.addStyle(JDBRenderer.Helper.typographyValue(typography[_deviceObj.key]), _deviceObj.type);
                }
            });
        }

        var padding = element.params.get('ytSubscribePadding', null);
        if (padding !== null) {
            JDBRenderer.DEVICES.forEach(function (_deviceObj) {
                if (_deviceObj.key in padding) {
                    barStyle.addStyle(JDBRenderer.Helper.spacingValue(padding[_deviceObj.key], "padding"), _deviceObj.type);
                }
            });
        }

        let spacing = element.params.get('ytSubscribeSpacing', null);
        if (spacing != null) {
            JDBRenderer.DEVICES.forEach(function (_deviceObj) {
                if ((_deviceObj.key in spacing) && JDBRenderer.Helper.checkSliderValue(spacing[_deviceObj.key])) {
                    buttonStyle.addCss("margin-left", spacing[_deviceObj.key].value + 'px', _deviceObj.type);
                }
            });
        }
    }

    function playButtonStyling(element) {
        if (element.params.get('playButtonType', '') === 'none') {
            return;
        }
        if (!element.params.get('thumbnail', true) || (element.params.get('thumbnail', true) && element.params.get('poster', '') == '')) {
            return;
        }
        var playStyle = JDBRenderer.ElementStyle('.jdb-video-playicon');
        var playHoverStyle = JDBRenderer.ElementStyle('.jdb-video-play:hover .jdb-video-playicon');
        element.addChildrenStyle([playStyle, playHoverStyle]);

        if (element.params.get('playButtonType', '') != 'image') {
            playStyle.addCss("color", element.params.get('playButtonColor', ''));
            playHoverStyle.addCss("color", element.params.get('playButtonHoverColor', ''));
            playStyle.addCss("background-color", element.params.get('playButtonBackground', ''));
            playHoverStyle.addCss("background-color", element.params.get('playButtonHoverBackground', ''));
        }


        let spacing = element.params.get('playButtonSize', null);
        if (spacing != null) {
            JDBRenderer.DEVICES.forEach(function (_deviceObj) {
                if ((_deviceObj.key in spacing) && JDBRenderer.Helper.checkSliderValue(spacing[_deviceObj.key])) {
                    playStyle.addCss("width", spacing[_deviceObj.key].value + 'px', _deviceObj.type);
                    playStyle.addCss("height", spacing[_deviceObj.key].value + 'px', _deviceObj.type);
                    playStyle.addCss("font-size", parseInt(spacing[_deviceObj.key].value * .6, 10) + 'px', _deviceObj.type);
                    if (element.params.get('playButtonType', '') == 'image') {
                        playStyle.addCss("padding", '0px', _deviceObj.type);
                    } else {
                        playStyle.addCss("padding", parseInt(spacing[_deviceObj.key].value / 5, 10) + 'px', _deviceObj.type);
                    }
                }
            });
        }


        JDBRenderer.Helper.applyBorderValue(playStyle, element.params, "playButtonBorder");
        JDBRenderer.Helper.applyBorderValue(playHoverStyle, element.params, "playButtonHoverBorder");
    }

    function stickyStyling(element) {
        var stickyStyle = JDBRenderer.ElementStyle('.jdb-video.jdb-video-sticky .jdb-video-wrapper');
        var wrapperStyle = JDBRenderer.ElementStyle('.jdb-video.jdb-video-sticky .jdb-video-play');
        var thumbnailStyle = JDBRenderer.ElementStyle('.jdb-video.jdb-video-sticky .jdb-video-play .jdb-video-thumbnail');
        var playerStyle = JDBRenderer.ElementStyle('.jdb-video.jdb-video-sticky .jdb-video-player');
        var closeStyle = JDBRenderer.ElementStyle('.jdb-video.jdb-video-sticky .jdb-video-sticky-close');
        element.addChildrenStyle([stickyStyle, thumbnailStyle, playerStyle, closeStyle, wrapperStyle]);

        var width = element.params.get('stickyWidth', null);
        if (width != null) {
            JDBRenderer.DEVICES.forEach(function (_deviceObj) {
                if ((_deviceObj.key in width) && JDBRenderer.Helper.checkSliderValue(width[_deviceObj.key])) {
                    if (width[_deviceObj.key].value != '' && width[_deviceObj.key].value != null) {
                        stickyStyle.addCss('width', width[_deviceObj.key].value + width[_deviceObj.key].unit, _deviceObj.type);
                    }
                }
            });
        }

        var margin = element.params.get('stickySpacing', null);
        if (margin != null) {
            JDBRenderer.DEVICES.forEach(function (_deviceObj) {
                if (_deviceObj.key in margin) {
                    stickyStyle.addStyle(JDBRenderer.Helper.spacingValue(margin[_deviceObj.key], "margin"), _deviceObj.type);
                }
            });
        }


        var padding = element.params.get('stickyPadding', null);
        if (padding !== null) {
            JDBRenderer.DEVICES.forEach(function (_deviceObj) {
                if (_deviceObj.key in padding) {
                    wrapperStyle.addStyle(JDBRenderer.Helper.spacingValue(padding[_deviceObj.key], "padding"), _deviceObj.type);
                    thumbnailStyle.addStyle(JDBRenderer.Helper.spacingValue(padding[_deviceObj.key], "padding"), _deviceObj.type);
                    playerStyle.addStyle(JDBRenderer.Helper.spacingValue(padding[_deviceObj.key], "padding"), _deviceObj.type);
                }
            });
        }


        closeStyle.addCss('color', element.params.get('stickyCloseColor', ''));
        thumbnailStyle.addCss('background-color', element.params.get('stickyBackground', ''));
        playerStyle.addCss('background-color', element.params.get('stickyBackground', ''));
    }

    window.JDBuilderElementVideo = JDBuilderElementVideo;

})();