cws_YT_bg.js 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162
  1. /* YouTube video Background */
  2. var i,
  3. currTime,
  4. duration,
  5. video_source,
  6. video_id,
  7. el_height,
  8. element,
  9. el_width,
  10. el_quality;
  11. element = document.getElementsByClassName("cws_Yt_video_bg");
  12. function onYouTubePlayerAPIReady() {
  13. if(typeof element === 'undefined')
  14. return;
  15. for (var i = element.length - 1; i >= 0; i--) {
  16. video_source = element[i].getAttribute("data-video-source");
  17. video_id = element[i].getAttribute("data-video-id");
  18. el_width = element[i].offsetWidth;
  19. if (element[i].offsetHeight<((el_width/16)*9)) {
  20. el_height = (element[i].offsetWidth/16)*9;
  21. }else{
  22. el_height = element[i].offsetHeight;
  23. el_width = (el_height/9)*16;
  24. }
  25. if (el_width > 1920){
  26. el_quality = 'highres';
  27. }
  28. if (el_width < 1920){
  29. el_quality = 'hd1080';
  30. }
  31. if (el_width < 1280) {
  32. el_quality = 'hd720';
  33. }
  34. if (el_width < 853) {
  35. el_quality = 'large';
  36. }
  37. if (el_width < 640) {
  38. el_quality = 'medium';
  39. };
  40. window.setTimeout(function() {
  41. if (!YT.loaded) {
  42. console.log('not loaded yet');
  43. window.setTimeout(arguments.callee, 50)
  44. } else {
  45. var curplayer = video_control(video_id,video_source);
  46. }
  47. }, 50);
  48. };
  49. }
  50. function video_control (uniqid,video_source) {
  51. var interval;
  52. var player;
  53. var chek = 0;
  54. player = new YT.Player(uniqid, {
  55. height: el_height,
  56. width: el_width,
  57. videoId: video_source,
  58. playerVars: {
  59. 'autoplay' : 1,
  60. 'rel' : 0,
  61. 'showinfo' : 0,
  62. 'showsearch' : 0,
  63. 'controls' : 0,
  64. 'loop' : 1,
  65. 'enablejsapi' : 1,
  66. 'theme' : 'dark',
  67. 'modestbranding' : 0,
  68. 'wmode' : 'transparent',
  69. 'enablejsapi' : 1,
  70. },
  71. events: {
  72. 'onReady': onPlayerReady,
  73. 'onStateChange': onPlayerStateChange
  74. }
  75. }
  76. );
  77. window.addEventListener('focus', function() {
  78. checkPlayer();
  79. return true;
  80. });
  81. function onPlayerReady(event){
  82. event.target.mute();
  83. player.setPlaybackQuality(el_quality);
  84. player.playVideo();
  85. }
  86. function onPlayerStateChange(event) {
  87. event.data == YT.PlayerState.PLAYING ? interval = setInterval(checkPlayer, 200) : clearInterval(interval);
  88. setInterval(chek_on_page, 1000);
  89. }
  90. function seekTo(event) {
  91. player.seekTo(0);
  92. }
  93. function checkPlayer() {
  94. if (undefined !== player && undefined !== player.getCurrentTime) {
  95. currTime = player.getCurrentTime(); //get video position
  96. duration = player.getDuration(); //get video duration
  97. (currTime > (duration - 0.8)) ? seekTo(event) : '';
  98. };
  99. }
  100. function chek_on_page (){
  101. if (document.getElementsByTagName('html')[0].hasAttribute('data-focus-chek')) {
  102. if (chek < 1 && undefined !== player.playVideo) {
  103. chek++
  104. player.playVideo();
  105. }else{
  106. chek = 1
  107. }
  108. }else if (undefined !== player.pauseVideo) {
  109. player.pauseVideo();
  110. chek = 0;
  111. }
  112. }
  113. }
  114. function Video_resizer (){
  115. if (element.length) {
  116. for (var i = element.length - 1; i >= 0; i--) {
  117. video_source = element[i].getAttribute("data-video-source");
  118. video_id = element[i].getAttribute("data-video-id");
  119. el_width = document.getElementsByClassName("cws_Yt_video_bg")[0].offsetWidth;
  120. if (element[i].offsetHeight<((el_width/16)*9)) {
  121. el_height = (document.getElementsByClassName("cws_Yt_video_bg")[0].offsetWidth/16)*9;
  122. }else{
  123. el_height = document.getElementsByClassName("cws_Yt_video_bg")[0].offsetHeight;
  124. el_width = (el_height/9)*16;
  125. }
  126. var el_iframe = document.getElementById(element[i].getAttribute("data-video-id"));
  127. el_iframe.style.width = el_width+'px';
  128. el_iframe.style.height = el_height+'px';
  129. };
  130. };
  131. }
  132. jQuery(document).ready(function (){
  133. });
  134. jQuery(window).resize( function (){
  135. /*Video_resizer (); */
  136. } );
  137. jQuery(window).load(function (){
  138. onYouTubePlayerAPIReady()
  139. /*Video_resizer ();*/
  140. });
  141. /* vimeo */