Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function stateListener(obj)
- {
- //IDLE, BUFFERING, PLAYING, PAUSED, COMPLETED
- $('#' + obj.id).attr('state', obj.newstate);
- }
- $(function(){
- var set_listener = function(player)
- {
- if (player.addModelListener)
- {
- player.addModelListener('STATE', 'stateListener');
- }
- else
- {
- setTimeout(function(){set_listener(player)}, 100);
- }
- }
- $('object,embed').each(function(i, elem){
- var e = $(elem);
- if (e.attr('id') && e.attr('name'))
- {
- return ;
- }
- var parent = e.parent();
- e.attr('id', 'player_' + i);
- e.attr('name', 'player_' + i);
- e.attr('data', e.attr('data'));
- var e_copy = e.clone();
- e.remove();
- parent.append(e_copy);
- });
- var time_regexp = /^([\d:]{5,})$/;
- var time2seconds = function(str){
- var time = str.split(':');
- var seconds = 0;
- $.each(time, function(i, t){
- seconds += parseInt(t) * Math.pow(60, time.length - i - 1);
- });
- return seconds;
- };
- var add_mark = function(line, i){
- if ($.trim(line)=='')
- {
- return line;
- }
- var parts = line.split(' – ');
- if (parts.length==1)
- {
- return line;
- }
- if (!time_regexp.test($.trim(parts[0])))
- {
- return line;
- }
- parts[0] = '<span class="player_goto">' + parts[0] + '</span>';
- return parts.join(' – ');
- };
- var add_marks = function(text){
- var lines = text.split('<br>');
- lines = $.map(lines, add_mark);
- return lines.join('<br>');
- };
- $('div.video').map(function(){
- var video_block = $(this);
- var text_block = video_block.prev();
- var player = video_block.find('object')[0];
- set_listener(player);
- text_block.html(add_marks(text_block.html()));
- text_block.find('span.player_goto').css({
- 'text-decoration': 'underline',
- 'cursor': 'pointer'
- }).bind('click', function(){
- var seconds = time2seconds($(this).text());
- var state = $(player).attr('state');
- if (state!='PLAYING')
- {
- player.sendEvent('PLAY');
- if (state==undefined)
- {
- setTimeout(function(){player.sendEvent('SEEK', seconds);}, 5000);
- }
- }
- player.sendEvent('SEEK', seconds);
- });
- });
- });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement