; (function ($, window) { var defaults = { ratio: 16 / 9, videoId: 'ZCAnLxRvNNc', mute: true, repeat: true, width: $(window).width(), wrapperZIndex: 99, playButtonClass: 'kkBgVideo-play', pauseButtonClass: 'kkBgVideo-pause', muteButtonClass: 'kkBgVideo-mute', volumeUpClass: 'kkBgVideo-volume-up', volumeDownClass: 'kkBgVideo-volume-down', increaseVolumeBy: 5, start: 0 }; var kkBgVideo = function (node, options) { var options = $.extend({}, defaults, options), $body = $('body') $node = $(node); var kkBgVideoContainer = '
'; $body.prepend(kkBgVideoContainer); $node.css({ position: 'relative', 'z-index': options.wrapperZIndex }); window.player; window.onYouTubeIframeAPIReady = function () { player = new YT.Player('kk-bgvideo-player', { width: options.width, height: Math.ceil(options.width / options.ratio), videoId: options.videoId, playerVars: { controls: 0, showinfo: 0, modestbranding: 1, iv_load_policy: 3, wmode: 'transparent', rel: 0 }, events: { 'onReady': onPlayerReady, 'onStateChange': onPlayerStateChange, 'onPlaybackQualityChange': onPlayerPlaybackQualityChange } }); } window.onPlayerReady = function (e) { resize(); if (options.mute) e.target.mute(); e.target.seekTo(options.start); e.target.setPlaybackQuality('default'); e.target.setVolume(70); e.target.playVideo(); } window.onPlayerPlaybackQualityChange = function (e) {} window.onPlayerStateChange = function (state) { if (state.data === 0 && options.repeat) { player.seekTo(options.start); } } var resize = function () { var width = $('#kk-bgvideo-container').width(), pWidth, height = $(window).height(), pHeight, $kkBgVideoPlayer = $('#kk-bgvideo-player'); if (width / options.ratio < height) { pWidth = Math.ceil(height * options.ratio); $kkBgVideoPlayer.width(pWidth).height(height).css({ left: (width - pWidth) / 2, top: 0 }); } else { pHeight = Math.ceil(width / options.ratio); $kkBgVideoPlayer.width(width).height(pHeight).css({ left: 0, top: (height - pHeight) / 2 }); } } $(window).on('resize.kkBgVideo', function () { resize(); }) $('body').on('click', '.' + options.playButtonClass, function (e) { e.preventDefault(); player.playVideo(); }).on('click', '.' + options.pauseButtonClass, function (e) { e.preventDefault(); player.pauseVideo(); }).on('click', '.' + options.muteButtonClass, function (e) { e.preventDefault(); (player.isMuted()) ? player.unMute() : player.mute(); }).on('click', '.' + options.volumeDownClass, function (e) { e.preventDefault(); var currentVolume = player.getVolume(); if (currentVolume < options.increaseVolumeBy) currentVolume = options.increaseVolumeBy; player.setVolume(currentVolume - options.increaseVolumeBy); }).on('click', '.' + options.volumeUpClass, function (e) { e.preventDefault(); if (player.isMuted()) player.unMute(); var currentVolume = player.getVolume(); if (currentVolume > 100 - options.increaseVolumeBy) currentVolume = 100 - options.increaseVolumeBy; player.setVolume(currentVolume + options.increaseVolumeBy); }) } var tag = document.createElement('script'); tag.src = "https://www.youtube.com/iframe_api"; var firstScriptTag = document.getElementsByTagName('script')[0]; firstScriptTag.parentNode.insertBefore(tag, firstScriptTag); $.fn.kkBgVideo = function (options) { return this.each(function () { if (!$.data(this, 'kkBgVideo_instantiated')) { $.data(this, 'kkBgVideo_instantiated', kkBgVideo(this, options)); } }); } })(jQuery, window);