Advertisement
ilih

Untitled

Nov 15th, 2013
79
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. $(function(){
  2.     var time_regexp = /^([\d]{1,3}\:[\d]{1,2})$/;
  3.  
  4.     var time2seconds = function(str){
  5.         var time = str.split(':');
  6.        
  7.         var seconds = 0;
  8.         $.each(time, function(i, t){
  9.             seconds += parseInt(t) * Math.pow(60, time.length - i - 1);
  10.         });
  11.         return seconds;
  12.     };
  13.     var add_mark = function(line, i){
  14.         if ($.trim(line)=='')
  15.         {
  16.             return line;
  17.         }
  18.        
  19.         var parts = line.split(/ [–—] /);
  20.         if (parts.length==1)
  21.         {
  22.             return line;
  23.         }
  24.        
  25.         if (!time_regexp.test($.trim(parts[0])))
  26.         {
  27.             return line;
  28.         }
  29.        
  30.         parts[0] = '<span class="player_goto">' + parts[0] + '</span>';
  31.         return parts.join(' – ');
  32.     };
  33.     var add_marks = function(text){
  34.         var lines = text.split('<br>');
  35.        
  36.         lines = $.map(lines, add_mark);
  37.        
  38.         return lines.join('<br>');
  39.     };
  40.    
  41.     $('div.video').map(function(){
  42.         var video_block = $(this);
  43.         var text_block = video_block.prev();
  44.         var player_id = video_block.find('div.player:first').attr('id');
  45.        
  46.         text_block.html(add_marks(text_block.html()));
  47.        
  48.         text_block.find('span.player_goto').css({
  49.             'text-decoration': 'underline',
  50.             'cursor': 'pointer'
  51.         }).bind('click', function(){
  52.             var seconds = time2seconds($(this).text());
  53.             var timer;
  54.             if ($('#' + player_id).hasClass('jwplayer'))
  55.             {
  56.                 clearInterval(timer);
  57.                 jwplayer(player_id).seek(seconds);
  58.             }
  59.             else
  60.             {
  61.                 $('#' + player_id).attr('onclick', $('#' + player_id).attr('onclick').replace('autostart: "true"', 'autostart: false'));
  62.                 $('#' + player_id).click();
  63.                 timer = setInterval(function(){
  64.                     if ($(document.getElementById(player_id)).hasClass('jwplayer'))
  65.                     {
  66.                         clearInterval(timer);
  67.                         jwplayer(player_id).seek(seconds);
  68.                     }
  69.                 }, 200);
  70.             }
  71.         });
  72.     });
  73. });
Advertisement
RAW Paste Data Copied
Advertisement