Changeset 936


Ignore:
Timestamp:
04/19/10 12:18:03 (3 years ago)
Author:
zach
Message:

Sample Controlbar working

Location:
trunk/html5
Files:
1 added
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/html5/build/jquery.jwplayer-0.1alpha.js

    r935 r936  
    418418         
    419419})(jQuery);/** 
    420  * Controlbar component of the JW Player. 
    421  * 
    422  * @author jeroen 
    423  * @version 1.0alpha 
    424  * @lastmodifiedauthor zach 
    425  * @lastmodifieddate 2010-04-11 
    426  */ 
    427 (function($) { 
    428  
    429  
    430         /** Hooking the controlbar up to jQuery. **/ 
    431         $.fn.controlbar = function(ops) { 
    432                 return this.each(function() { 
    433                         var id = $(this)[0].id; 
    434                         var div = $('#' + id).parents()[0].id; 
    435                         var player = document.getElementById(id); 
    436                         var options = $.extend({}, $.fn.controlbar.defaults, ops); 
    437                         $.extend(options, player.getConfig()); 
    438                         // Add positioning options and change the player css, so we can full-browser-screen it. 
    439                         $.extend(options, { 
    440                                 id: id, 
    441                                 div: div, 
    442                                 left: $('#' + div).position().left, 
    443                                 top: $('#' + div).position().top 
    444                         }); 
    445                         $('#' + div).css('position', 'static'); 
    446                         $('#' + div).css('z-index', '98'); 
    447                         $('#' + div).css('height', options.height); 
    448                         $('#' + div).css('width', options.width); 
    449                         $('#' + id).css('width', '100%'); 
    450                         $('#' + id).css('height', '100%'); 
    451                         // Save the variables globally and start loading the skin. 
    452                         $.fn.controlbar.bars[id] = { 
    453                                 player: player, 
    454                                 options: options, 
    455                                 images: {} 
    456                         }; 
    457                         loadSkin($.fn.controlbar.bars[id]); 
    458                 }); 
    459         }; 
    460          
    461          
    462         /** Map with all controlbars. **/ 
    463         $.fn.controlbar.bars = {}; 
    464          
    465          
    466         /** Map with config for the controlbar plugin. **/ 
    467         $.fn.controlbar.defaults = { 
    468                 buffer: 0, 
    469                 div: 'container', 
    470                 duration: 0, 
    471                 elapsed: 0, 
    472                 fontsize: 10, 
    473                 fontcolor: '000000', 
    474                 fullscreen: false, 
    475                 id: 'player', 
    476                 images: 0, 
    477                 position: 'bottom', 
    478                 skin: '././skins/five/five.xml', 
    479                 width: 400, 
    480                 height: 300, 
    481                 left: 0, 
    482                 leftmargin: 0, 
    483                 top: 0, 
    484                 rightmargin: 0, 
    485                 scrubber: 'none', 
    486                 state: 'idle', 
    487                 volume: 100 
    488         }; 
    489          
    490          
    491         /** Callbacks called by Flash players to update stats. **/ 
    492         $.fn.controlbar.bufferHandler = function(obj) { 
    493                 bufferHandler({ 
    494                         id: obj.id, 
    495                         buffer: obj.percentage 
    496                 }); 
    497         }; 
    498         $.fn.controlbar.muteHandler = function(obj) { 
    499                 muteHandler({ 
    500                         id: obj.id, 
    501                         mute: obj.state 
    502                 }); 
    503         }; 
    504         $.fn.controlbar.stateHandler = function(obj) { 
    505                 stateHandler({ 
    506                         id: obj.id, 
    507                         state: obj.newstate.toLowerCase() 
    508                 }); 
    509         }; 
    510         $.fn.controlbar.timeHandler = function(obj) { 
    511                 timeHandler({ 
    512                         id: obj.id, 
    513                         elapsed: obj.position, 
    514                         duration: obj.duration 
    515                 }); 
    516         }; 
    517         $.fn.controlbar.volumeHandler = function(obj) { 
    518                 volumeHandler({ 
    519                         id: obj.id, 
    520                         volume: obj.percentage 
    521                 }); 
    522         }; 
    523          
    524          
    525         /** Draw the controlbar elements. **/ 
    526         function buildElements(config) { 
    527                 // Draw the background. 
    528                 $('#' + config.options.div).after('<div id="' + config.options.id + '_controlBar"></div>'); 
    529                 $('#' + config.options.id + '_controlBar').css('position', 'absolute'); 
    530                 $('#' + config.options.id + '_controlBar').css('height', config.images.background.height); 
    531                 $('#' + config.options.id + '_controlBar').css('background', 'url(' + config.images.background.src + ') repeat-x center left'); 
    532                 // Draw all elements on top of the bar. 
    533                 buildElement('capLeft', 'left', true, config); 
    534                 buildElement('playButton', 'left', false, config); 
    535                 buildElement('pauseButton', 'left', true, config); 
    536                 buildElement('divider1', 'left', true, config); 
    537                 buildElement('elapsedText', 'left', true, config); 
    538                 buildElement('timeSliderRail', 'left', false, config); 
    539                 buildElement('timeSliderBuffer', 'left', false, config); 
    540                 buildElement('timeSliderProgress', 'left', false, config); 
    541                 buildElement('timeSliderThumb', 'left', false, config); 
    542                 buildElement('capRight', 'right', true, config); 
    543                 buildElement('fullscreenButton', 'right', false, config); 
    544                 buildElement('normalscreenButton', 'right', true, config); 
    545                 buildElement('divider2', 'right', true, config); 
    546                 buildElement('volumeSliderRail', 'right', false, config); 
    547                 buildElement('volumeSliderProgress', 'right', true, config); 
    548                 buildElement('muteButton', 'right', false, config); 
    549                 buildElement('unmuteButton', 'right', true, config); 
    550                 buildElement('divider3', 'right', true, config); 
    551                 buildElement('durationText', 'right', true, config); 
    552         } 
    553          
    554          
    555         /** Draw a single element into the controlbar. **/ 
    556         function buildElement(element, align, offset, config) { 
    557                 var nam = config.options.id + '_' + element; 
    558                 $('#' + config.options.id + '_controlBar').append('<div id="' + nam + '"></div>'); 
    559                 $('#' + nam).css('position', 'absolute'); 
    560                 $('#' + nam).css('top', 0); 
    561                 if (element.indexOf('Text') > 0) { 
    562                         $('#' + nam).html('00:00'); 
    563                         $('#' + nam).css('font', config.options.fontsize + 'px/' + (config.images.background.height + 1) + 'px Arial,sans-serif'); 
    564                         $('#' + nam).css('text-align', 'center'); 
    565                         $('#' + nam).css('font-weight', 'bold'); 
    566                         $('#' + nam).css('cursor', 'default'); 
    567                         var wid = 14 + 3 * config.options.fontsize; 
    568                         $('#' + nam).css('color', '#' + config.options.fontcolor.substr(-6)); 
    569                 } else if (element.indexOf('divider') === 0) { 
    570                         $('#' + nam).css('background', 'url(' + config.images.divider.src + ') repeat-x center left'); 
    571                         var wid = config.images.divider.width; 
    572                 } else { 
    573                         $('#' + nam).css('background', 'url(' + config.images[element].src + ') repeat-x center left'); 
    574                         var wid = config.images[element].width; 
    575                 } 
    576                 if (align == 'left') { 
    577                         $('#' + nam).css(align, config.options.leftmargin); 
    578                         if (offset) { 
    579                                 config.options.leftmargin += wid; 
    580                         } 
    581                 } else if (align == 'right') { 
    582                         $('#' + nam).css(align, config.options.rightmargin); 
    583                         if (offset) { 
    584                                 config.options.rightmargin += wid; 
    585                         } 
    586                 } 
    587                 $('#' + nam).css('width', wid); 
    588                 $('#' + nam).css('height', config.images.background.height); 
    589         } 
    590          
    591          
    592         /** Add interactivity to the controlbar elements. **/ 
    593         function buildHandlers(config) { 
    594                 // Register events with the buttons. 
    595                 buildHandler('playButton', 'play', config.player, config.options); 
    596                 buildHandler('pauseButton', 'play', config.player, config.options); 
    597                 buildHandler('muteButton', 'mute', config.player, config.options); 
    598                 buildHandler('unmuteButton', 'mute', config.player, config.options); 
    599                 buildHandler('fullscreenButton', 'fullscreen', config.player, config.options); 
    600                 buildHandler('normalscreenButton', 'fullscreen', config.player, config.options); 
    601                 /* 
    602                  addSliders(options); 
    603                  */ 
    604                 // Register events with the player. 
    605                 config.player.addModelListener('buffer', 'jQuery.fn.controlbar.bufferHandler'); 
    606                 config.player.addModelListener('state', 'jQuery.fn.controlbar.stateHandler'); 
    607                 config.player.addModelListener('time', 'jQuery.fn.controlbar.timeHandler'); 
    608                 config.player.addControllerListener('mute', 'jQuery.fn.controlbar.muteHandler'); 
    609                 config.player.addControllerListener('volume', 'jQuery.fn.controlbar.volumeHandler'); 
    610                 // Trigger a few events so the bar looks good on startup. 
    611                 fullscreenHandler(config.options); 
    612                 muteHandler(config.options); 
    613                 stateHandler(config.options); 
    614                 volumeHandler(config.options); 
    615         } 
    616          
    617          
    618         /** Set a single button handler. **/ 
    619         function buildHandler(element, handler, player, options) { 
    620                 var nam = options.id + '_' + element; 
    621                 $('#' + nam).css('cursor', 'pointer'); 
    622                 if (handler == 'fullscreen') { 
    623                         $('#' + nam).mouseup(function(evt) { 
    624                                 evt.stopPropagation(); 
    625                                 options.fullscreen = !options.fullscreen; 
    626                                 fullscreenHandler(options); 
    627                         }); 
    628                 } else { 
    629                         $('#' + nam).mouseup(function(evt) { 
    630                                 evt.stopPropagation(); 
    631                                 player.sendEvent(handler); 
    632                         }); 
    633                 } 
    634         } 
    635          
    636          
    637         /** Set the volume drag handler. **/ 
    638         function addSliders() { 
    639                 var bar = '#' + config.id + '_controlBar'; 
    640                 var trl = '#' + config.id + '_timeSliderRail'; 
    641                 var vrl = '#' + config.id + '_volumeSliderRail'; 
    642                 $(bar).css('cursor', 'hand'); 
    643                 $(bar).mousedown(function(evt) { 
    644                         var xps = evt.pageX - $(bar).position().left; 
    645                         if (xps > $(trl).position().left && xps < $(trl).position().left + $(trl).width()) { 
    646                                 config.scrubber = 'time'; 
    647                         } else if (xps > $(vrl).position().left && xps < $(vrl).position().left + $(vrl).width()) { 
    648                                 config.scrubber = 'volume'; 
    649                         } 
    650                 }); 
    651                 $(bar).mouseup(function(evt) { 
    652                         evt.stopPropagation(); 
    653                         sliderUp(evt.pageX); 
    654                 }); 
    655                 $(bar).mouseleave(function(evt) { 
    656                         sliderUp(evt.pageX); 
    657                         evt.stopPropagation(); 
    658                 }); 
    659                 $(bar).mousemove(function(evt) { 
    660                         if (config.scrubber == 'time') { 
    661                                 var xps = evt.pageX - $(bar).position().left; 
    662                                 $('#' + config.id + '_timeSliderThumb').css('left', xps); 
    663                         } 
    664                 }); 
    665         } 
    666          
    667          
    668         /** The slider has been moved up. **/ 
    669         function sliderUp(msx) { 
    670                 if (config.scrubber == 'time') { 
    671                         var xps = msx - $('#' + config.id + '_timeSliderRail').position().left; 
    672                         var wid = $('#' + config.id + '_timeSliderRail').width(); 
    673                         var pos = xps / wid * config.duration; 
    674                         if (pos < 0) { 
    675                                 pos = 0; 
    676                         } else if (pos > config.duration) { 
    677                                 pos = config.duration - 3; 
    678                         } 
    679                         player.sendEvent('seek', pos); 
    680                 } else if (config.scrubber == 'volume') { 
    681                         var bar = $('#' + config.id + '_controlBar').width(); 
    682                         var brx = $('#' + config.id + '_controlBar').position().left; 
    683                         var rig = $('#' + config.id + '_volumeSliderRail').css('right').substr(0, 2); 
    684                         var wid = config.images.volumeSliderRail.width; 
    685                         var pct = Math.round((msx - bar - brx + 1 * rig + wid) / wid * 100); 
    686                         if (pct < 0) { 
    687                                 pct = 0; 
    688                         } else if (pct > 100) { 
    689                                 pct = 100; 
    690                         } 
    691                         player.sendEvent('volume', pct); 
    692                 } 
    693                 config.scrubber = 'none'; 
    694         } 
    695          
    696          
    697          
    698          
    699         /** Update the buffer percentage. **/ 
    700         function bufferHandler(options) { 
    701                 if (options.buffer === 0) { 
    702                         $('#' + options.id + '_timeSliderBuffer').css('display', 'none'); 
    703                 } else { 
    704                         $('#' + options.id + '_timeSliderBuffer').css('display', 'block'); 
    705                         var wid = $('#' + options.id + '_timeSliderRail').width(); 
    706                         $('#' + options.id + '_timeSliderBuffer').css('width', Math.round(wid * options.buffer / 100)); 
    707                 } 
    708         } 
    709          
    710          
    711         /** Update the mute state. **/ 
    712         function muteHandler(options) { 
    713                 if (options.mute) { 
    714                         $('#' + options.id + '_muteButton').css('display', 'none'); 
    715                         $('#' + options.id + '_unmuteButton').css('display', 'block'); 
    716                         $('#' + options.id + '_volumeSliderProgress').css('display', 'none'); 
    717                 } else { 
    718                         $('#' + options.id + '_muteButton').css('display', 'block'); 
    719                         $('#' + options.id + '_unmuteButton').css('display', 'none'); 
    720                         $('#' + options.id + '_volumeSliderProgress').css('display', 'block'); 
    721                 } 
    722         } 
    723          
    724          
    725         /** Update the playback state. **/ 
    726         function stateHandler(options) { 
    727                 if (options.state == 'buffering' || options.state == 'playing') { 
    728                         $('#' + options.id + '_pauseButton').css('display', 'block'); 
    729                         $('#' + options.id + '_playButton').css('display', 'none'); 
    730                 } else { 
    731                         $('#' + options.id + '_pauseButton').css('display', 'none'); 
    732                         $('#' + options.id + '_playButton').css('display', 'block'); 
    733                 } 
    734                 if (options.state == 'completed') { 
    735                         options.elapsed = 0; 
    736                         timeHandler(options); 
    737                 } 
    738         } 
    739          
    740          
    741         /** Update the playback time. **/ 
    742         function timeHandler(options) { 
    743                 var wid = $('#' + options.id + '_timeSliderRail').width(); 
    744                 var thb = $('#' + options.id + '_timeSliderThumb').width(); 
    745                 var lft = $('#' + options.id + '_timeSliderRail').position().left; 
    746                 if (options.elapsed === 0) { 
    747                         $('#' + options.id + '_timeSliderProgress').css('display', 'none'); 
    748                         $('#' + options.id + '_timeSliderThumb').css('display', 'none'); 
    749                 } else { 
    750                         $('#' + options.id + '_timeSliderProgress').css('display', 'block'); 
    751                         $('#' + options.id + '_timeSliderProgress').css('width', Math.round(wid * options.elapsed / options.duration)); 
    752                         $('#' + options.id + '_timeSliderThumb').css('display', 'block'); 
    753                         $('#' + options.id + '_timeSliderThumb').css('left', lft + 
    754                         Math.round((wid - thb) * options.elapsed / options.duration)); 
    755                         $('#' + options.id + '_durationText').html(timeFormat(options.duration)); 
    756                 } 
    757                 $('#' + options.id + '_elapsedText').html(timeFormat(options.elapsed)); 
    758         } 
    759          
    760          
    761         /** Format the elapsed / remaining text. **/ 
    762         function timeFormat(sec) { 
    763                 str = '00:00'; 
    764                 if (sec > 0) { 
    765                         str = Math.floor(sec / 60) < 10 ? '0' + Math.floor(sec / 60) + ':' : Math.floor(sec / 60) + ':'; 
    766                         str += Math.floor(sec % 60) < 10 ? '0' + Math.floor(sec % 60) : Math.floor(sec % 60); 
    767                 } 
    768                 return str; 
    769         } 
    770          
    771          
    772         /** Flip the player size to/from full-browser-screen. **/ 
    773         function fullscreenHandler(options) { 
    774                 if (options.fullscreen) { 
    775                         $('#' + options.div).css('position', 'absolute'); 
    776                         $('#' + options.div).css('left', 0); 
    777                         $('#' + options.div).css('top', 0); 
    778                         $('#' + options.div).css('height', '100%'); 
    779                         $('#' + options.div).css('width', '100%'); 
    780                         $('#' + options.id + '_normalscreenButton').css('display', 'block'); 
    781                         $('#' + options.id + '_fullscreenButton').css('display', 'none'); 
    782                         $(window).resize(function() { 
    783                                 resizeBar(options); 
    784                         }); 
    785                 } else { 
    786                         $('#' + options.div).css('position', 'static'); 
    787                         $('#' + options.div).css('left', options.left); 
    788                         $('#' + options.div).css('top', options.top); 
    789                         $('#' + options.div).css('height', options.height); 
    790                         $('#' + options.div).css('width', options.width); 
    791                         $('#' + options.id + '_normalscreenButton').css('display', 'none'); 
    792                         $('#' + options.id + '_fullscreenButton').css('display', 'block'); 
    793                         $(window).resize(null); 
    794                 } 
    795                 resizeBar(options); 
    796                 timeHandler(options); 
    797                 bufferHandler(options); 
    798         } 
    799          
    800          
    801         /** Resize the controlbar. **/ 
    802         function resizeBar(options) { 
    803                 var lft = options.left; 
    804                 var top = options.top + options.height; 
    805                 var wid = options.width; 
    806                 var hei = $('#' + options.id + '_controlBar').height(); 
    807                 if (options.position == 'over') { 
    808                         lft += 1 * options.margin; 
    809                         top -= 1 * options.margin + hei; 
    810                         wid -= 2 * options.margin; 
    811                 } 
    812                 if (options.fullscreen) { 
    813                         lft = options.margin; 
    814                         top = $(window).height() - options.margin - hei; 
    815                         wid = $(window).width() - 2 * options.margin; 
    816                         $('#' + options.id + '_controlBar').css('z-index', 99); 
    817                 } else { 
    818                         $('#' + options.id + '_controlBar').css('z-index', 97); 
    819                 } 
    820                 $('#' + options.id + '_controlBar').css('left', lft); 
    821                 $('#' + options.id + '_controlBar').css('top', top); 
    822                 $('#' + options.id + '_controlBar').css('width', wid); 
    823                 $('#' + options.id + '_timeSliderRail').css('width', wid - options.leftmargin - options.rightmargin); 
    824         } 
    825          
    826          
    827         /** Update the volume level. **/ 
    828         function volumeHandler(options) { 
    829                 var rwd = $('#' + options.id + '_volumeSliderRail').width(); 
    830                 var wid = Math.round(options.volume / 100 * rwd); 
    831                 var rig = $('#' + options.id + '_volumeSliderRail').css('right').substr(0, 2); 
    832                 $('#' + options.id + '_volumeSliderProgress').css('width', wid); 
    833                 $('#' + options.id + '_volumeSliderProgress').css('right', 1 * rig + rwd - wid); 
    834         } 
    835          
    836          
    837 })(jQuery); 
    838 /** 
    839420 * JW Player controller component 
    840421 * 
     
    918499        $.fn.jwplayerController.mute = function(player, state) { 
    919500                try { 
    920                         if (position === undefined) { 
     501                        if (state === undefined) { 
    921502                                return $(player).data("model").mute; 
    922503                        } else { 
     
    1122703                                case "number": 
    1123704                                        $.fn.jwplayerController.volume(player, arg); 
     705                                        break; 
     706                                case "string": 
     707                                        $.fn.jwplayerController.volume(player, parseInt(arg,10)); 
    1124708                                        break; 
    1125709                                default: 
     
    14651049                'play': positionHandler, 
    14661050                'playing': stateHandler, 
    1467                 'progress': generalHandler, 
     1051                'progress': progressHandler, 
    14681052                'ratechange': generalHandler, 
    14691053                'seeked': stateHandler, 
     
    14891073                                pause: pause(video), 
    14901074                                seek: seek(video), 
     1075                                stop: stop(video), 
    14911076                                volume: volume(video), 
    14921077                                mute: mute(video), 
     
    15451130                        position: event.target.currentTime 
    15461131                }); 
    1547                 if (event.target.buffered !== undefined) { 
    1548                         if (event.target.buffered.end(event.target.buffered.length - 1) != event.target.duration) { 
    1549                                 sendEvent($(event.target), $.jwplayer().events.JWPLAYER_MEDIA_BUFFER, { 
    1550                                         buffer: event.target.currentTime 
    1551                                 }); 
    1552                         } 
    1553                 } 
     1132        } 
     1133         
     1134        function progressHandler(event) { 
     1135                var buffer; 
     1136                if (!isNaN(event.loaded / event.total)) { 
     1137                        buffer = event.loaded / event.total * 100; 
     1138                } else if (event.target.buffered !== undefined) { 
     1139                        buffer = event.target.buffered.end(0) / event.target.duration * 100; 
     1140                } 
     1141                sendEvent($(event.target), $.jwplayer().events.JWPLAYER_MEDIA_BUFFER, { 
     1142                        'buffer': buffer 
     1143                }); 
    15541144        } 
    15551145         
     
    15841174                return function() { 
    15851175                        player[0].pause(); 
    1586                         player[0].currentTime = player.startTime; 
     1176                        player[0].currentTime = 0; 
     1177                        clearInterval($(player).data("media").interval); 
     1178                        $(player).data("media").interval = null; 
     1179                        setState(player, 'idle'); 
    15871180                }; 
    15881181        } 
     
    15921185        function volume(player) { 
    15931186                return function(position) { 
    1594                         player.volume = position / 100; 
     1187                        $.fn.jwplayerUtils.log(position / 100); 
     1188                        player[0].volume = position / 100; 
    15951189                        sendEvent(player, $.jwplayer().events.JWPLAYER_MEDIA_VOLUME, { 
    1596                                 volume: position 
     1190                                volume: player[0].volume 
    15971191                        }); 
    15981192                }; 
     
    16021196        function mute(player) { 
    16031197                return function(state) { 
    1604                         player.mute = state; 
     1198                        player[0].muted = state; 
    16051199                        sendEvent(player, $.jwplayer().events.JWPLAYER_MEDIA_MUTE, { 
    1606                                 mute: player.mute 
     1200                                mute: player[0].muted 
    16071201                        }); 
    16081202                }; 
     
    16521246         
    16531247})(jQuery); 
     1248 
    16541249/** 
    16551250 * JW Player model component 
  • trunk/html5/build/jquery.jwplayer-0.1alpha.min.js

    r935 r936  
    1 (function(g){g.fn.jwplayerControlbar=function(p){return this.each(function(){var t=g(this)[0].id;var s=g("#"+t).parents()[0].id;var r=document.getElementById(t);var q=g.extend({},g.fn.jwplayerControlbar.defaults,p);g.extend(q,{id:t,div:s,left:g("#"+s).position().left,top:g("#"+s).position().top});g("#"+s).css("position","static");g("#"+s).css("z-index","98");g("#"+s).css("height",q.height);g("#"+s).css("width",q.width);g("#"+t).css("width","100%");g("#"+t).css("height","100%");g.fn.jwplayerControlbar.bars[t]={player:r,options:q,images:{}};loadSkin(g.fn.jwplayerControlbar.bars[t])})};g.fn.jwplayerControlbar.bars={};g.fn.jwplayerControlbar.defaults={buffer:0,div:"container",duration:0,elapsed:0,fontsize:10,fontcolor:"000000",fullscreen:false,id:"player",images:0,position:"bottom",skin:"././skins/five/five.xml",width:400,height:300,left:0,leftmargin:0,top:0,rightmargin:0,scrubber:"none",state:"idle",volume:100};g.fn.jwplayerControlbar.bufferHandler=function(p){m({id:p.id,buffer:p.percentage})};g.fn.jwplayerControlbar.muteHandler=function(p){a({id:p.id,mute:p.state})};g.fn.jwplayerControlbar.stateHandler=function(p){k({id:p.id,state:p.newstate.toLowerCase()})};g.fn.jwplayerControlbar.timeHandler=function(p){b({id:p.id,elapsed:p.position,duration:p.duration})};g.fn.jwplayerControlbar.volumeHandler=function(p){j({id:p.id,volume:p.percentage})};function n(p){g("#"+p.options.div).after('<div id="'+p.options.id+'_jwplayerControlbar"></div>');g("#"+p.options.id+"_jwplayerControlbar").css("position","absolute");g("#"+p.options.id+"_jwplayerControlbar").css("height",p.images.background.height);g("#"+p.options.id+"_jwplayerControlbar").css("background","url("+p.images.background.src+") repeat-x center left");o("capLeft","left",true,p);o("playButton","left",false,p);o("pauseButton","left",true,p);o("divider1","left",true,p);o("elapsedText","left",true,p);o("timeSliderRail","left",false,p);o("timeSliderBuffer","left",false,p);o("timeSliderProgress","left",false,p);o("timeSliderThumb","left",false,p);o("capRight","right",true,p);o("fullscreenButton","right",false,p);o("normalscreenButton","right",true,p);o("divider2","right",true,p);o("volumeSliderRail","right",false,p);o("volumeSliderProgress","right",true,p);o("muteButton","right",false,p);o("unmuteButton","right",true,p);o("divider3","right",true,p);o("durationText","right",true,p)}function o(q,u,t,p){var s=p.options.id+"_"+q;g("#"+p.options.id+"_jwplayerControlbar").append('<div id="'+s+'"></div>');g("#"+s).css("position","absolute");g("#"+s).css("top",0);if(q.indexOf("Text")>0){g("#"+s).html("00:00");g("#"+s).css("font",p.options.fontsize+"px/"+(p.images.background.height+1)+"px Arial,sans-serif");g("#"+s).css("text-align","center");g("#"+s).css("font-weight","bold");g("#"+s).css("cursor","default");var r=14+3*p.options.fontsize;g("#"+s).css("color","#"+p.options.fontcolor.substr(-6))}else{if(q.indexOf("divider")===0){g("#"+s).css("background","url("+p.images.divider.src+") repeat-x center left");var r=p.images.divider.width}else{g("#"+s).css("background","url("+p.images[q].src+") repeat-x center left");var r=p.images[q].width}}if(u=="left"){g("#"+s).css(u,p.options.leftmargin);if(t){p.options.leftmargin+=r}}else{if(u=="right"){g("#"+s).css(u,p.options.rightmargin);if(t){p.options.rightmargin+=r}}}g("#"+s).css("width",r);g("#"+s).css("height",p.images.background.height)}function l(p){i("playButton","play",p.player,p.options);i("pauseButton","play",p.player,p.options);i("muteButton","mute",p.player,p.options);i("unmuteButton","mute",p.player,p.options);i("fullscreenButton","fullscreen",p.player,p.options);i("normalscreenButton","fullscreen",p.player,p.options);p.player.addModelListener("buffer","jQuery.fn.jwplayerControlbar.bufferHandler");p.player.addModelListener("state","jQuery.fn.jwplayerControlbar.stateHandler");p.player.addModelListener("time","jQuery.fn.jwplayerControlbar.timeHandler");p.player.addControllerListener("mute","jQuery.fn.jwplayerControlbar.muteHandler");p.player.addControllerListener("volume","jQuery.fn.jwplayerControlbar.volumeHandler");f(p.options);a(p.options);k(p.options);j(p.options)}function i(r,s,q,p){var t=p.id+"_"+r;g("#"+t).css("cursor","pointer");if(s=="fullscreen"){g("#"+t).mouseup(function(u){u.stopPropagation();p.fullscreen=!p.fullscreen;f(p)})}else{g("#"+t).mouseup(function(u){u.stopPropagation();q.sendEvent(s)})}}function c(){var p="#"+config.id+"_jwplayerControlbar";var q="#"+config.id+"_timeSliderRail";var r="#"+config.id+"_volumeSliderRail";g(p).css("cursor","hand");g(p).mousedown(function(s){var t=s.pageX-g(p).position().left;if(t>g(q).position().left&&t<g(q).position().left+g(q).width()){config.scrubber="time"}else{if(t>g(r).position().left&&t<g(r).position().left+g(r).width()){config.scrubber="volume"}}});g(p).mouseup(function(s){s.stopPropagation();h(s.pageX)});g(p).mouseleave(function(s){h(s.pageX);s.stopPropagation()});g(p).mousemove(function(s){if(config.scrubber=="time"){var t=s.pageX-g(p).position().left;g("#"+config.id+"_timeSliderThumb").css("left",t)}})}function h(s){if(config.scrubber=="time"){var r=s-g("#"+config.id+"_timeSliderRail").position().left;var v=g("#"+config.id+"_timeSliderRail").width();var w=r/v*config.duration;if(w<0){w=0}else{if(w>config.duration){w=config.duration-3}}player.sendEvent("seek",w)}else{if(config.scrubber=="volume"){var t=g("#"+config.id+"_jwplayerControlbar").width();var p=g("#"+config.id+"_jwplayerControlbar").position().left;var q=g("#"+config.id+"_volumeSliderRail").css("right").substr(0,2);var v=config.images.volumeSliderRail.width;var u=Math.round((s-t-p+1*q+v)/v*100);if(u<0){u=0}else{if(u>100){u=100}}player.sendEvent("volume",u)}}config.scrubber="none"}function m(p){if(p.buffer===0){g("#"+p.id+"_timeSliderBuffer").css("display","none")}else{g("#"+p.id+"_timeSliderBuffer").css("display","block");var q=g("#"+p.id+"_timeSliderRail").width();g("#"+p.id+"_timeSliderBuffer").css("width",Math.round(q*p.buffer/100))}}function a(p){if(p.mute){g("#"+p.id+"_muteButton").css("display","none");g("#"+p.id+"_unmuteButton").css("display","block");g("#"+p.id+"_volumeSliderProgress").css("display","none")}else{g("#"+p.id+"_muteButton").css("display","block");g("#"+p.id+"_unmuteButton").css("display","none");g("#"+p.id+"_volumeSliderProgress").css("display","block")}}function k(p){if(p.state=="buffering"||p.state=="playing"){g("#"+p.id+"_pauseButton").css("display","block");g("#"+p.id+"_playButton").css("display","none")}else{g("#"+p.id+"_pauseButton").css("display","none");g("#"+p.id+"_playButton").css("display","block")}if(p.state=="completed"){p.elapsed=0;b(p)}}function b(p){var r=g("#"+p.id+"_timeSliderRail").width();var s=g("#"+p.id+"_timeSliderThumb").width();var q=g("#"+p.id+"_timeSliderRail").position().left;if(p.elapsed===0){g("#"+p.id+"_timeSliderProgress").css("display","none");g("#"+p.id+"_timeSliderThumb").css("display","none")}else{g("#"+p.id+"_timeSliderProgress").css("display","block");g("#"+p.id+"_timeSliderProgress").css("width",Math.round(r*p.elapsed/p.duration));g("#"+p.id+"_timeSliderThumb").css("display","block");g("#"+p.id+"_timeSliderThumb").css("left",q+Math.round((r-s)*p.elapsed/p.duration));g("#"+p.id+"_durationText").html(e(p.duration))}g("#"+p.id+"_elapsedText").html(e(p.elapsed))}function e(p){str="00:00";if(p>0){str=Math.floor(p/60)<10?"0"+Math.floor(p/60)+":":Math.floor(p/60)+":";str+=Math.floor(p%60)<10?"0"+Math.floor(p%60):Math.floor(p%60)}return str}function f(p){if(p.fullscreen){g("#"+p.div).css("position","absolute");g("#"+p.div).css("left",0);g("#"+p.div).css("top",0);g("#"+p.div).css("height","100%");g("#"+p.div).css("width","100%");g("#"+p.id+"_normalscreenButton").css("display","block");g("#"+p.id+"_fullscreenButton").css("display","none");g(window).resize(function(){d(p)})}else{g("#"+p.div).css("position","static");g("#"+p.div).css("left",p.left);g("#"+p.div).css("top",p.top);g("#"+p.div).css("height",p.height);g("#"+p.div).css("width",p.width);g("#"+p.id+"_normalscreenButton").css("display","none");g("#"+p.id+"_fullscreenButton").css("display","block");g(window).resize(null)}d(p);b(p);m(p)}function d(p){var r=p.left;var s=p.top+p.height;var q=p.width;var t=g("#"+p.id+"_jwplayerControlbar").height();if(p.position=="over"){r+=1*p.margin;s-=1*p.margin+t;q-=2*p.margin}if(p.fullscreen){r=p.margin;s=g(window).height()-p.margin-t;q=g(window).width()-2*p.margin;g("#"+p.id+"_jwplayerControlbar").css("z-index",99)}else{g("#"+p.id+"_jwplayerControlbar").css("z-index",97)}g("#"+p.id+"_jwplayerControlbar").css("left",r);g("#"+p.id+"_jwplayerControlbar").css("top",s);g("#"+p.id+"_jwplayerControlbar").css("width",q);g("#"+p.id+"_timeSliderRail").css("width",q-p.leftmargin-p.rightmargin)}function j(r){var p=g("#"+r.id+"_volumeSliderRail").width();var s=Math.round(r.volume/100*p);var q=g("#"+r.id+"_volumeSliderRail").css("right").substr(0,2);g("#"+r.id+"_volumeSliderProgress").css("width",s);g("#"+r.id+"_volumeSliderProgress").css("right",1*q+p-s)}})(jQuery);(function(g){g.fn.controlbar=function(p){return this.each(function(){var t=g(this)[0].id;var s=g("#"+t).parents()[0].id;var r=document.getElementById(t);var q=g.extend({},g.fn.controlbar.defaults,p);g.extend(q,r.getConfig());g.extend(q,{id:t,div:s,left:g("#"+s).position().left,top:g("#"+s).position().top});g("#"+s).css("position","static");g("#"+s).css("z-index","98");g("#"+s).css("height",q.height);g("#"+s).css("width",q.width);g("#"+t).css("width","100%");g("#"+t).css("height","100%");g.fn.controlbar.bars[t]={player:r,options:q,images:{}};loadSkin(g.fn.controlbar.bars[t])})};g.fn.controlbar.bars={};g.fn.controlbar.defaults={buffer:0,div:"container",duration:0,elapsed:0,fontsize:10,fontcolor:"000000",fullscreen:false,id:"player",images:0,position:"bottom",skin:"././skins/five/five.xml",width:400,height:300,left:0,leftmargin:0,top:0,rightmargin:0,scrubber:"none",state:"idle",volume:100};g.fn.controlbar.bufferHandler=function(p){m({id:p.id,buffer:p.percentage})};g.fn.controlbar.muteHandler=function(p){a({id:p.id,mute:p.state})};g.fn.controlbar.stateHandler=function(p){k({id:p.id,state:p.newstate.toLowerCase()})};g.fn.controlbar.timeHandler=function(p){b({id:p.id,elapsed:p.position,duration:p.duration})};g.fn.controlbar.volumeHandler=function(p){j({id:p.id,volume:p.percentage})};function n(p){g("#"+p.options.div).after('<div id="'+p.options.id+'_controlBar"></div>');g("#"+p.options.id+"_controlBar").css("position","absolute");g("#"+p.options.id+"_controlBar").css("height",p.images.background.height);g("#"+p.options.id+"_controlBar").css("background","url("+p.images.background.src+") repeat-x center left");o("capLeft","left",true,p);o("playButton","left",false,p);o("pauseButton","left",true,p);o("divider1","left",true,p);o("elapsedText","left",true,p);o("timeSliderRail","left",false,p);o("timeSliderBuffer","left",false,p);o("timeSliderProgress","left",false,p);o("timeSliderThumb","left",false,p);o("capRight","right",true,p);o("fullscreenButton","right",false,p);o("normalscreenButton","right",true,p);o("divider2","right",true,p);o("volumeSliderRail","right",false,p);o("volumeSliderProgress","right",true,p);o("muteButton","right",false,p);o("unmuteButton","right",true,p);o("divider3","right",true,p);o("durationText","right",true,p)}function o(q,u,t,p){var s=p.options.id+"_"+q;g("#"+p.options.id+"_controlBar").append('<div id="'+s+'"></div>');g("#"+s).css("position","absolute");g("#"+s).css("top",0);if(q.indexOf("Text")>0){g("#"+s).html("00:00");g("#"+s).css("font",p.options.fontsize+"px/"+(p.images.background.height+1)+"px Arial,sans-serif");g("#"+s).css("text-align","center");g("#"+s).css("font-weight","bold");g("#"+s).css("cursor","default");var r=14+3*p.options.fontsize;g("#"+s).css("color","#"+p.options.fontcolor.substr(-6))}else{if(q.indexOf("divider")===0){g("#"+s).css("background","url("+p.images.divider.src+") repeat-x center left");var r=p.images.divider.width}else{g("#"+s).css("background","url("+p.images[q].src+") repeat-x center left");var r=p.images[q].width}}if(u=="left"){g("#"+s).css(u,p.options.leftmargin);if(t){p.options.leftmargin+=r}}else{if(u=="right"){g("#"+s).css(u,p.options.rightmargin);if(t){p.options.rightmargin+=r}}}g("#"+s).css("width",r);g("#"+s).css("height",p.images.background.height)}function l(p){i("playButton","play",p.player,p.options);i("pauseButton","play",p.player,p.options);i("muteButton","mute",p.player,p.options);i("unmuteButton","mute",p.player,p.options);i("fullscreenButton","fullscreen",p.player,p.options);i("normalscreenButton","fullscreen",p.player,p.options);p.player.addModelListener("buffer","jQuery.fn.controlbar.bufferHandler");p.player.addModelListener("state","jQuery.fn.controlbar.stateHandler");p.player.addModelListener("time","jQuery.fn.controlbar.timeHandler");p.player.addControllerListener("mute","jQuery.fn.controlbar.muteHandler");p.player.addControllerListener("volume","jQuery.fn.controlbar.volumeHandler");f(p.options);a(p.options);k(p.options);j(p.options)}function i(r,s,q,p){var t=p.id+"_"+r;g("#"+t).css("cursor","pointer");if(s=="fullscreen"){g("#"+t).mouseup(function(u){u.stopPropagation();p.fullscreen=!p.fullscreen;f(p)})}else{g("#"+t).mouseup(function(u){u.stopPropagation();q.sendEvent(s)})}}function c(){var p="#"+config.id+"_controlBar";var q="#"+config.id+"_timeSliderRail";var r="#"+config.id+"_volumeSliderRail";g(p).css("cursor","hand");g(p).mousedown(function(s){var t=s.pageX-g(p).position().left;if(t>g(q).position().left&&t<g(q).position().left+g(q).width()){config.scrubber="time"}else{if(t>g(r).position().left&&t<g(r).position().left+g(r).width()){config.scrubber="volume"}}});g(p).mouseup(function(s){s.stopPropagation();h(s.pageX)});g(p).mouseleave(function(s){h(s.pageX);s.stopPropagation()});g(p).mousemove(function(s){if(config.scrubber=="time"){var t=s.pageX-g(p).position().left;g("#"+config.id+"_timeSliderThumb").css("left",t)}})}function h(s){if(config.scrubber=="time"){var r=s-g("#"+config.id+"_timeSliderRail").position().left;var v=g("#"+config.id+"_timeSliderRail").width();var w=r/v*config.duration;if(w<0){w=0}else{if(w>config.duration){w=config.duration-3}}player.sendEvent("seek",w)}else{if(config.scrubber=="volume"){var t=g("#"+config.id+"_controlBar").width();var p=g("#"+config.id+"_controlBar").position().left;var q=g("#"+config.id+"_volumeSliderRail").css("right").substr(0,2);var v=config.images.volumeSliderRail.width;var u=Math.round((s-t-p+1*q+v)/v*100);if(u<0){u=0}else{if(u>100){u=100}}player.sendEvent("volume",u)}}config.scrubber="none"}function m(p){if(p.buffer===0){g("#"+p.id+"_timeSliderBuffer").css("display","none")}else{g("#"+p.id+"_timeSliderBuffer").css("display","block");var q=g("#"+p.id+"_timeSliderRail").width();g("#"+p.id+"_timeSliderBuffer").css("width",Math.round(q*p.buffer/100))}}function a(p){if(p.mute){g("#"+p.id+"_muteButton").css("display","none");g("#"+p.id+"_unmuteButton").css("display","block");g("#"+p.id+"_volumeSliderProgress").css("display","none")}else{g("#"+p.id+"_muteButton").css("display","block");g("#"+p.id+"_unmuteButton").css("display","none");g("#"+p.id+"_volumeSliderProgress").css("display","block")}}function k(p){if(p.state=="buffering"||p.state=="playing"){g("#"+p.id+"_pauseButton").css("display","block");g("#"+p.id+"_playButton").css("display","none")}else{g("#"+p.id+"_pauseButton").css("display","none");g("#"+p.id+"_playButton").css("display","block")}if(p.state=="completed"){p.elapsed=0;b(p)}}function b(p){var r=g("#"+p.id+"_timeSliderRail").width();var s=g("#"+p.id+"_timeSliderThumb").width();var q=g("#"+p.id+"_timeSliderRail").position().left;if(p.elapsed===0){g("#"+p.id+"_timeSliderProgress").css("display","none");g("#"+p.id+"_timeSliderThumb").css("display","none")}else{g("#"+p.id+"_timeSliderProgress").css("display","block");g("#"+p.id+"_timeSliderProgress").css("width",Math.round(r*p.elapsed/p.duration));g("#"+p.id+"_timeSliderThumb").css("display","block");g("#"+p.id+"_timeSliderThumb").css("left",q+Math.round((r-s)*p.elapsed/p.duration));g("#"+p.id+"_durationText").html(e(p.duration))}g("#"+p.id+"_elapsedText").html(e(p.elapsed))}function e(p){str="00:00";if(p>0){str=Math.floor(p/60)<10?"0"+Math.floor(p/60)+":":Math.floor(p/60)+":";str+=Math.floor(p%60)<10?"0"+Math.floor(p%60):Math.floor(p%60)}return str}function f(p){if(p.fullscreen){g("#"+p.div).css("position","absolute");g("#"+p.div).css("left",0);g("#"+p.div).css("top",0);g("#"+p.div).css("height","100%");g("#"+p.div).css("width","100%");g("#"+p.id+"_normalscreenButton").css("display","block");g("#"+p.id+"_fullscreenButton").css("display","none");g(window).resize(function(){d(p)})}else{g("#"+p.div).css("position","static");g("#"+p.div).css("left",p.left);g("#"+p.div).css("top",p.top);g("#"+p.div).css("height",p.height);g("#"+p.div).css("width",p.width);g("#"+p.id+"_normalscreenButton").css("display","none");g("#"+p.id+"_fullscreenButton").css("display","block");g(window).resize(null)}d(p);b(p);m(p)}function d(p){var r=p.left;var s=p.top+p.height;var q=p.width;var t=g("#"+p.id+"_controlBar").height();if(p.position=="over"){r+=1*p.margin;s-=1*p.margin+t;q-=2*p.margin}if(p.fullscreen){r=p.margin;s=g(window).height()-p.margin-t;q=g(window).width()-2*p.margin;g("#"+p.id+"_controlBar").css("z-index",99)}else{g("#"+p.id+"_controlBar").css("z-index",97)}g("#"+p.id+"_controlBar").css("left",r);g("#"+p.id+"_controlBar").css("top",s);g("#"+p.id+"_controlBar").css("width",q);g("#"+p.id+"_timeSliderRail").css("width",q-p.leftmargin-p.rightmargin)}function j(r){var p=g("#"+r.id+"_volumeSliderRail").width();var s=Math.round(r.volume/100*p);var q=g("#"+r.id+"_volumeSliderRail").css("right").substr(0,2);g("#"+r.id+"_volumeSliderProgress").css("width",s);g("#"+r.id+"_volumeSliderProgress").css("right",1*q+p-s)}})(jQuery);(function(a){a.fn.jwplayerController=function(){return this.each(function(){})};a.fn.jwplayerController.play=function(b){try{b.data("media").play();return true}catch(c){a.fn.jwplayerUtils.log("error",c)}return false};a.fn.jwplayerController.pause=function(b){try{b.data("media").pause();return true}catch(c){a.fn.jwplayerUtils.log("error",c)}return false};a.fn.jwplayerController.seek=function(c,b){try{c.data("media").seek(b);return true}catch(d){a.fn.jwplayerUtils.log("error",d)}return false};a.fn.jwplayerController.stop=function(b){try{b.data("media").stop();return true}catch(c){a.fn.jwplayerUtils.log("error",c)}return false};a.fn.jwplayerController.volume=function(c,b){try{if(b===undefined){return a(c).data("model").volume}else{c.data("media").volume(b);a(c).data("model").volume=b;return true}}catch(d){a.fn.jwplayerUtils.log("error",d)}return false};a.fn.jwplayerController.mute=function(b,d){try{if(position===undefined){return a(b).data("model").mute}else{b.data("media").mute(d);return true}return true}catch(c){a.fn.jwplayerUtils.log("error",c)}return false};a.fn.jwplayerController.fullscreen=function(b,d){try{if(position===undefined){return a(b).data("model").fullscreen}else{b.data("media").fullscreen(d);return true}}catch(c){a.fn.jwplayerUtils.log("error",c)}return false};a.fn.jwplayerController.resize=function(c,d,b){try{c.data("media").resize(d,b);return true}catch(e){a.fn.jwplayerUtils.log("error",e)}return false};a.fn.jwplayerController.mediaInfo=function(b){try{b.data("media").mediaInfo();return true}catch(c){a.fn.jwplayerUtils.log("error",c)}return false};a.fn.jwplayerController.load=function(b,d){try{b.data("media").load(d);return true}catch(c){a.fn.jwplayerUtils.log("error",c)}return false}})(jQuery);(function(e){function k(w){if(w===undefined){w=".jwplayer:first"}if(e.fn.jwplayerUtils.typeOf(w)=="string"){w=e(w)}return{play:u(w),pause:g(w),seek:d(w),stop:r(w),volume:t(w),mute:h(w),fullscreen:b(w),state:f(w),buffer:s(w),duration:a(w),width:q(w),height:s(w),load:j(w),resize:v(w),meta:l(w),time:i(w),complete:m(w),events:c}}var c={JWPLAYER_READY:"jwplayerReady",JWPLAYER_RESIZE:"jwplayerResize",JWPLAYER_ERROR:"jwplayerError",JWPLAYER_MEDIA_BUFFER:"jwplayerMediaBuffer",JWPLAYER_MEDIA_ERROR:"jwplayerMediaError",JWPLAYER_MEDIA_LOADED:"jwplayerMediaLoaded",JWPLAYER_MEDIA_COMPLETE:"jwplayerMediaComplete",JWPLAYER_MEDIA_TIME:"jwplayerMediaTime",JWPLAYER_MEDIA_VOLUME:"jwplayerMediaVolume",JWPLAYER_MEDIA_META:"jwplayerMediaMeta",JWPLAYER_MEDIA_MUTE:"jwplayerMediaMute",JWPLAYER_PLAYER_STATE:"jwplayerPlayerState"};e.extend({jwplayer:k});e.fn.jwplayer=function(w){return this.each(function(){var x=e(this)[0].id;e(this).css("display","none");e(this).jwplayerModel(w);e(this).jwplayerView();e.fn.jwplayerModel.setActiveMediaProvider(e(this));e(this).trigger("JWPLAYER_READY",{id:x})})};e.fn.jwplayer.players={};e.fn.jwplayer.defaults={autostart:false,duration:0,file:undefined,height:300,image:undefined,skin:"assets/five/five.xml",volume:100,width:400,source:0,flashplayer:"assets/player.swf"};function u(w){return function(){e.fn.jwplayerController.play(w);return k(w)}}function g(w){return function(){e.fn.jwplayerController.pause(w);return k(w)}}function d(w){return function(x){e.fn.jwplayerController.seek(w,x);return k(w)}}function r(w){return function(){e.fn.jwplayerController.stop(w);return k(w)}}function t(w){return function(x){switch(e.fn.jwplayerUtils.typeOf(x)){case"function":n(w,e.jwplayer().events.JWPLAYER_MEDIA_VOLUME,x);break;case"number":e.fn.jwplayerController.volume(w,x);break;default:return e.fn.jwplayerController.volume(w)}return k(w)}}function h(w,x){return function(y){switch(e.fn.jwplayerUtils.typeOf(y)){case"function":n(w,e.jwplayer().events.JWPLAYER_MEDIA_MUTE,y);break;case"boolean":e.fn.jwplayerController.mute(w,y);break;default:e.fn.jwplayerController.mute(w);break}return k(w)}}function v(w,x){return function(z,y){switch(e.fn.jwplayerUtils.typeOf(arg)){case"function":n(w,e.jwplayer().events.JWPLAYER_RESIZE,arg);break;case"number":e.fn.jwplayerController.resize(w,z,y);break;default:break}return k(w)}}function b(w,x){return function(y){switch(e.fn.jwplayerUtils.typeOf(y)){case"function":n(w,e.jwplayer().events.JWPLAYER_FULLSCREEN,y);break;case"boolean":e.fn.jwplayerController.fullscreen(w,y);break;default:return e.fn.jwplayerController.fullscreen(w)}return k(w)}}function f(w){return function(x){switch(e.fn.jwplayerUtils.typeOf(x)){case"function":n(w,e.jwplayer().events.JWPLAYER_PLAYER_STATE,x);break;default:return e.fn.jwplayerController.mediaInfo(w).state}return k(w)}}function s(w){return function(x){switch(e.fn.jwplayerUtils.typeOf(x)){case"function":n(w,e.jwplayer().events.JWPLAYER_MEDIA_BUFFER,x);break;default:return e.fn.jwplayerController.mediaInfo(w).buffer}return k(w)}}function i(w){return function(x){switch(e.fn.jwplayerUtils.typeOf(x)){case"function":n(w,e.jwplayer().events.JWPLAYER_MEDIA_TIME,x);break;default:return e.fn.jwplayerController.mediaInfo(w).time}return k(w)}}function j(w){return function(x){switch(e.fn.jwplayerUtils.typeOf(x)){case"function":n(w,e.jwplayer().events.JWPLAYER_MEDIA_LOADED,x);break;default:e.fn.jwplayerController.load(w,x)}return k(w)}}function m(w){return function(x){n(w,e.jwplayer().events.JWPLAYER_MEDIA_COMPLETE,x);return k(w)}}function a(w){return function(){return e.fn.jwplayerController.mediaInfo(w).duration}}function q(w){return function(){return e.fn.jwplayerController.mediaInfo(w).width}}function o(w){return function(){return e.fn.jwplayerController.mediaInfo(w).height}}function l(w){return function(){switch(e.fn.jwplayerUtils.typeOf(arg)){case"function":n(w,e.jwplayer().events.JWPLAYER_MEDIA_META,arg);break;default:return e.fn.jwplayerController.mediaInfo(w)}return k(w)}}function n(w,x,y){e(w).bind(x,y)}function p(w,x,y){e(w).unbind(x,y)}e(document).ready(function(){e("video.jwplayer").jwplayer()})})(jQuery);(function(f){f.fn.jwplayerMediaFlash=function(n){return this.each(function(){var o=f(this).data("model");o.controlbar="none";o.icons=false;var r=f(this)[0].id;f.fn.jwplayerView.embedFlash(f(this),o);var p=f("#"+r);var q={play:d(p),pause:m(p),seek:a(p),volume:g(p),mute:b(p),fullscreen:k(p)};f("#"+r).data("media",q)})};function e(n){var o=n.data("media");if(o.state===undefined){o.state="idle";n.css("display","inherit");c(n)}}function l(n){if(states[n.type]){i(n.target,states[n.type])}}function i(o,p){if(f(o).data("media").state!=p){var n=f(o).data("media").state;f(o).data("media").state=p;f(o).trigger("jwplayer.state",{oldstate:n,newstate:p})}}function c(o){var n=f.jwplayer().events;for(var p in n){o[0].addEventListener(n[p],h,true)}}function h(n){f(n.id).trigger(n.type,n)}function d(n){return function(){e(n);try{n[0].play();return true}catch(o){f.fn.jwplayerUtils.log("error",o)}return false}}function m(n){return function(){e(n);n.pause()}}function a(n){return function(o){e(n);n.seek(o)}}function j(n){return function(){e(n);n.stop()}}function g(n){return function(o){e(n);n.volume(o)}}function b(n){return function(o){e(n);n.mute(o)}}function k(n){return function(o){e(n)}}})(jQuery);(function(e){var f={buffering:"buffering",ended:"idle",playing:"playing",pause:"paused"};var b={abort:p,canplay:s,canplaythrough:s,durationchange:d,emptied:p,ended:s,error:i,loadeddata:d,loadedmetadata:d,loadstart:s,pause:s,play:o,playing:s,progress:p,ratechange:p,seeked:s,seeking:s,stalled:s,suspend:s,timeupdate:p,volumechange:p,waiting:s,canshowcurrentframe:p,dataunavailable:p,empty:p,load:p,loadedfirstframe:p};e.fn.jwplayerMediaVideo=function(t){return this.each(function(){var u=e(this);var v={play:q(u),pause:g(u),seek:c(u),volume:n(u),mute:h(u),fullscreen:a(u),load:k(u),state:"idle",interval:null};u.data("media",v);e.each(b,function(x,w){u[0].addEventListener(x,w,true)})})};function p(t){}function s(t){if(f[t.type]){l(t.target,f[t.type])}}function l(u,v){if(e(u).data("media").state!=v){var t=e(u).data("media").state;e(u).data("media").state=v;j(e(u),e.jwplayer().events.JWPLAYER_PLAYER_STATE,{oldstate:t,newstate:v})}if(v=="idle"){clearInterval(e(u).data("media").interval);e(u).data("media").interval=null}}function d(t){j(e(t.target),e.jwplayer().events.JWPLAYER_MEDIA_META,{videoHeight:t.target.videoHeight,videoWidth:t.target.videoWidth,duration:t.target.duration})}function o(t){if(e(t.target).data("media").interval===null){e(t.target).data("media").interval=window.setInterval(function(){o(t)},100)}j(e(t.target),e.jwplayer().events.JWPLAYER_MEDIA_TIME,{position:t.target.currentTime});if(t.target.buffered!==undefined){if(t.target.buffered.end(t.target.buffered.length-1)!=t.target.duration){j(e(t.target),e.jwplayer().events.JWPLAYER_MEDIA_BUFFER,{buffer:t.target.currentTime})}}}function i(t){j(e(t.target),e.jwplayer().events.JWPLAYER_ERROR,{})}function q(t){return function(){t[0].play()}}function g(t){return function(){t[0].pause()}}function c(t){return function(u){t[0].currentTime=u}}function m(t){return function(){t[0].pause();t[0].currentTime=t.startTime}}function n(t){return function(u){t.volume=u/100;j(t,e.jwplayer().events.JWPLAYER_MEDIA_VOLUME,{volume:u})}}function h(t){return function(u){t.mute=u;j(t,e.jwplayer().events.JWPLAYER_MEDIA_MUTE,{mute:t.mute})}}function r(t){return function(v,u){t.css("width",v);t.css("height",u);j(t,e.jwplayer().events.JWPLAYER_MEDIA_RESIZE,{width:v,hieght:u})}}function a(t){return function(u){if(u===true){t.css("width",window.width);t.css("height",window.height);j(t,e.jwplayer().events.JWPLAYER_MEDIA_RESIZE,{width:width,hieght:height})}else{}}}function k(t){return function(u){}}function j(t,u,v){t.trigger(u,e.extend({id:t[0].id,version:e.jwplayer(t).version},v))}})(jQuery);(function(a){a.fn.jwplayerModel=function(b){return this.each(function(){a(this).jwplayerParse(b)})};a.fn.jwplayerModel.setActiveMediaProvider=function(d){var e,b;var c=d.data("model");for(b in c.sources){e=c.sources[b];if(e.type===undefined){e.type="video/"+a.fn.jwplayerUtils.extension(e.file)+";"}if(a.fn.jwplayerUtils.supportsType(e.type)){c.source=b;d.jwplayerMediaVideo();return true}}if(a.fn.jwplayerUtils.supportsFlash&&c.state!="playing"){for(b in c.sources){e=c.sources[b];if(a.fn.jwplayerUtils.flashCanPlay(e.file)){c.source=b;d.jwplayerMediaFlash();return true}}}return false}})(jQuery);(function(f){var g={element:{width:"width",height:"height",id:"id","class":"className",name:"name"},media:{src:"file",preload:"preload",autoplay:"autostart",loop:"repeat",controls:"controls"},source:{src:"file",type:"type",media:"media"},video:{poster:"image"}};var e={};f.fn.jwplayerParse=function(i){return this.each(function(){f(this).data("model",f.extend(true,{},f.fn.jwplayer.defaults,i,d(this)))})};function c(j,i){if(i===undefined){i=g[j]}else{f.extend(i,g[j])}return i}function d(l,i){if(e[l.tagName.toLowerCase()]&&(i===undefined)){return e[l.tagName.toLowerCase()](l)}else{i=c("element",i);var m={};for(var j in i){if(j!="length"){var k=f(l).attr(j);if(!(k===""||k===undefined)){m[i[j]]=f(l).attr(j)}}}m.screencolor=f(l).css("background-color");return m}}function h(k,i){i=c("media",i);var j=[];f("source",k).each(function(){j[j.length]=a(this)});var l=d(k,i);if(l.file!==undefined){j[0]={file:l.file}}l.sources=j;return l}function a(j,i){i=c("source",i);return d(j,i)}function b(j,i){i=c("video",i);return h(j,i)}e.media=h;e.audio=h;e.source=a;e.video=b})(jQuery);(function(b){b.fn.jwplayerSkinner=function(){return this.each(function(){a(b(this).data("model"))})};function a(d){b.get(d.skin,{},function(f){var e=b("component",f);for(var g=0;g<e.length;g++){if(b(e[g]).attr("name")=="display"){var h=b(e[g]).find("setting");e=b(e[g]).find("element");break}}for(var g=0;g<h.length;g++){d.skinlements[b(h[g]).attr("name")]=b(h[g]).attr("value")}config.options.images=e.length;for(var g=0;g<e.length;g++){c(e[g],config)}})}function c(g,f){var d=new Image();var h=b(g).attr("name");var e=f.options.skin.substr(0,f.options.skin.lastIndexOf("/"))+"/controlbar/";b(d).error(function(){f.options.images--});b(d).load(function(){f.images[h]={height:this.height,width:this.width,src:this.src};f.options.images--;if(f.options.images===0){buildElements(f);buildHandlers(f)}});d.src=e+b(g).attr("src")}})(jQuery);(function(b){b.fn.jwplayerUtils=function(){return this.each(function(){})};b.fn.jwplayerUtils.supportsFlash=function(){var c="0,0,0,0";try{try{var f=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");try{f.AllowScriptAccess="always"}catch(h){c="6,0,0"}}catch(h){}c=new ActiveXObject("ShockwaveFlash.ShockwaveFlash").GetVariable("$version").replace(/\D+/g,",").match(/^,?(.+),?$/)[1]}catch(h){try{if(navigator.mimeTypes["application/x-shockwave-flash"].enabledPlugin){c=(navigator.plugins["Shockwave Flash 2.0"]||navigator.plugins["Shockwave Flash"]).description.replace(/\D+/g,",").match(/^,?(.+),?$/)[1]}}catch(h){}}var d=parseInt(c.split(",")[0]);var g=parseInt(c.split(",")[2]);if(d>9||(d==9&&g>97)){return true}else{return false}};var a={"3g2":true,"3gp":true,aac:true,f4b:true,f4p:true,f4v:true,flv:true,gif:true,jpg:true,jpeg:true,m4a:true,m4v:true,mov:true,mp3:true,mp4:true,png:true,rbs:true,sdp:true,swf:true,vp6:true};b.fn.jwplayerUtils.flashCanPlay=function(c){if(a[b.fn.jwplayerUtils.extension(c)]){return true}return false};b.fn.jwplayerUtils.supportsType=function(c){try{return !!document.createElement("video").canPlayType(c)}catch(d){return false}};b.fn.jwplayerUtils.supportsH264=function(){return b.fn.jwplayerUtils.supportsType('video/mp4; codecs="avc1.42E01E, mp4a.40.2"')};b.fn.jwplayerUtils.supportsOgg=function(){return b.fn.jwplayerUtils.supportsType('video/ogg; codecs="theora, vorbis"')};b.fn.jwplayerUtils.extension=function(c){return c.substr(c.lastIndexOf(".")+1,c.length)};b.fn.jwplayerUtils.dump=function(e,h){if(e===null){return"null"}else{if(b.fn.jwplayerUtils.typeOf(e)!="object"){if(b.fn.jwplayerUtils.typeOf(e)=="string"){return'"'+e+'"'}return e}}var g=b.fn.jwplayerUtils.typeOf(e);h=(h===undefined)?1:h+1;var d="";for(var f=0;f<h;f++){d+="\t"}var c=(g=="array")?"[":"{";c+="\n"+d;for(var f in e){if(g=="object"){c+='"'+f+'": '}c+=b.fn.jwplayerUtils.dump(e[f],h)+",\n"+d}c=c.substring(0,c.length-2-h)+"\n";c+=d.substring(0,d.length-1);c+=(g=="array")?"]":"}";return c};b.fn.jwplayerUtils.typeOf=function(d){var c=typeof d;if(c==="object"){if(d){if(d instanceof Array){c="array"}}else{c="null"}}return c};b.fn.jwplayerUtils.log=function(e,d){try{if(d){console.log("%s: %o",e,d)}else{console.log(b.fn.jwplayerUtils.dump(e))}}catch(c){}return this}})(jQuery);(function(b){var e="<embed %elementvars% src='%flashplayer%' allowfullscreen='true' allowscriptaccess='always' flashvars='%flashvars%' />";var a="<object classid='clsid:D27CDB6E-AE6D-11cf-96B8-444553540000' %elementvars%'> <param name='movie' value='%flashplayer%'> <param name='allowfullscreen' value='true'> <param name='allowscriptaccess' value='always'> <param name='wmode' value='transparent'> <param name='flashvars' value='%flashvars%'> </object>";var c={width:true,height:true,id:true,name:true,className:true};b.fn.jwplayerView=function(){return this.each(function(){var f=b(this);b(this).wrap("<div />");b(this).before("<a href='"+b(this).data("model").sources[b(this).data("model").source].file+"' style='display:block; background:#ffffff url("+b(this).data("model").image+") no-repeat center center;width:"+b(this).data("model").width+"px;height:"+b(this).data("model").height+"px;position:relative;'><img src='http://content.bitsontherun.com/staticfiles/play.png' alt='Click to play video' style='position:absolute; top:"+(b(this).data("model").height-60)/2+"px; left:"+(b(this).data("model").width-60)/2+"px; border:0;' /></a>");b(this).prev("a").click(function(g){if(typeof g.preventDefault!="undefined"){g.preventDefault()}else{g.returnValue=false}b.jwplayer(f).play()});b.jwplayer(f).state(d)})};function d(g,f){b.fn.jwplayerUtils(g.target);switch(f.newstate){case"idle":b(g.target).css("display","none");b(g.target).prev("a").css("display","inherit");break;case"playing":b(g.target).prev("a").css("display","none");b(g.target).css("display","inherit");break}}b.fn.jwplayerView.embedFlash=function(l,j){if(j.flashplayer!==false){var k,g="",i="";if(navigator.plugins&&navigator.mimeTypes&&navigator.mimeTypes.length){k=e}else{k=a}for(var f in c){if(!((j[f]===undefined)||(j[f]==="")||(j[f]===null))){g+=f+"='"+j[f]+"'"}}for(var h in j){if(!((j[h]===undefined)||(j[h]==="")||(j[h]===null))){if(h=="sources"){i+="file="+j.sources[j.source].file+"&"}else{i+=h+"="+j[h]+"&"}}}k=k.replace("%elementvars%",g);k=k.replace("%flashvars%",i);k=k.replace("%flashplayer%",j.flashplayer);var m=l[0].id;b(l).replaceWith(k);b("#"+m).prev("a").css("display","none")}}})(jQuery); 
     1(function(g){g.fn.jwplayerControlbar=function(p){return this.each(function(){var t=g(this)[0].id;var s=g("#"+t).parents()[0].id;var r=document.getElementById(t);var q=g.extend({},g.fn.jwplayerControlbar.defaults,p);g.extend(q,{id:t,div:s,left:g("#"+s).position().left,top:g("#"+s).position().top});g("#"+s).css("position","static");g("#"+s).css("z-index","98");g("#"+s).css("height",q.height);g("#"+s).css("width",q.width);g("#"+t).css("width","100%");g("#"+t).css("height","100%");g.fn.jwplayerControlbar.bars[t]={player:r,options:q,images:{}};loadSkin(g.fn.jwplayerControlbar.bars[t])})};g.fn.jwplayerControlbar.bars={};g.fn.jwplayerControlbar.defaults={buffer:0,div:"container",duration:0,elapsed:0,fontsize:10,fontcolor:"000000",fullscreen:false,id:"player",images:0,position:"bottom",skin:"././skins/five/five.xml",width:400,height:300,left:0,leftmargin:0,top:0,rightmargin:0,scrubber:"none",state:"idle",volume:100};g.fn.jwplayerControlbar.bufferHandler=function(p){m({id:p.id,buffer:p.percentage})};g.fn.jwplayerControlbar.muteHandler=function(p){a({id:p.id,mute:p.state})};g.fn.jwplayerControlbar.stateHandler=function(p){k({id:p.id,state:p.newstate.toLowerCase()})};g.fn.jwplayerControlbar.timeHandler=function(p){b({id:p.id,elapsed:p.position,duration:p.duration})};g.fn.jwplayerControlbar.volumeHandler=function(p){j({id:p.id,volume:p.percentage})};function n(p){g("#"+p.options.div).after('<div id="'+p.options.id+'_jwplayerControlbar"></div>');g("#"+p.options.id+"_jwplayerControlbar").css("position","absolute");g("#"+p.options.id+"_jwplayerControlbar").css("height",p.images.background.height);g("#"+p.options.id+"_jwplayerControlbar").css("background","url("+p.images.background.src+") repeat-x center left");o("capLeft","left",true,p);o("playButton","left",false,p);o("pauseButton","left",true,p);o("divider1","left",true,p);o("elapsedText","left",true,p);o("timeSliderRail","left",false,p);o("timeSliderBuffer","left",false,p);o("timeSliderProgress","left",false,p);o("timeSliderThumb","left",false,p);o("capRight","right",true,p);o("fullscreenButton","right",false,p);o("normalscreenButton","right",true,p);o("divider2","right",true,p);o("volumeSliderRail","right",false,p);o("volumeSliderProgress","right",true,p);o("muteButton","right",false,p);o("unmuteButton","right",true,p);o("divider3","right",true,p);o("durationText","right",true,p)}function o(q,u,t,p){var s=p.options.id+"_"+q;g("#"+p.options.id+"_jwplayerControlbar").append('<div id="'+s+'"></div>');g("#"+s).css("position","absolute");g("#"+s).css("top",0);if(q.indexOf("Text")>0){g("#"+s).html("00:00");g("#"+s).css("font",p.options.fontsize+"px/"+(p.images.background.height+1)+"px Arial,sans-serif");g("#"+s).css("text-align","center");g("#"+s).css("font-weight","bold");g("#"+s).css("cursor","default");var r=14+3*p.options.fontsize;g("#"+s).css("color","#"+p.options.fontcolor.substr(-6))}else{if(q.indexOf("divider")===0){g("#"+s).css("background","url("+p.images.divider.src+") repeat-x center left");var r=p.images.divider.width}else{g("#"+s).css("background","url("+p.images[q].src+") repeat-x center left");var r=p.images[q].width}}if(u=="left"){g("#"+s).css(u,p.options.leftmargin);if(t){p.options.leftmargin+=r}}else{if(u=="right"){g("#"+s).css(u,p.options.rightmargin);if(t){p.options.rightmargin+=r}}}g("#"+s).css("width",r);g("#"+s).css("height",p.images.background.height)}function l(p){i("playButton","play",p.player,p.options);i("pauseButton","play",p.player,p.options);i("muteButton","mute",p.player,p.options);i("unmuteButton","mute",p.player,p.options);i("fullscreenButton","fullscreen",p.player,p.options);i("normalscreenButton","fullscreen",p.player,p.options);p.player.addModelListener("buffer","jQuery.fn.jwplayerControlbar.bufferHandler");p.player.addModelListener("state","jQuery.fn.jwplayerControlbar.stateHandler");p.player.addModelListener("time","jQuery.fn.jwplayerControlbar.timeHandler");p.player.addControllerListener("mute","jQuery.fn.jwplayerControlbar.muteHandler");p.player.addControllerListener("volume","jQuery.fn.jwplayerControlbar.volumeHandler");f(p.options);a(p.options);k(p.options);j(p.options)}function i(r,s,q,p){var t=p.id+"_"+r;g("#"+t).css("cursor","pointer");if(s=="fullscreen"){g("#"+t).mouseup(function(u){u.stopPropagation();p.fullscreen=!p.fullscreen;f(p)})}else{g("#"+t).mouseup(function(u){u.stopPropagation();q.sendEvent(s)})}}function c(){var p="#"+config.id+"_jwplayerControlbar";var q="#"+config.id+"_timeSliderRail";var r="#"+config.id+"_volumeSliderRail";g(p).css("cursor","hand");g(p).mousedown(function(s){var t=s.pageX-g(p).position().left;if(t>g(q).position().left&&t<g(q).position().left+g(q).width()){config.scrubber="time"}else{if(t>g(r).position().left&&t<g(r).position().left+g(r).width()){config.scrubber="volume"}}});g(p).mouseup(function(s){s.stopPropagation();h(s.pageX)});g(p).mouseleave(function(s){h(s.pageX);s.stopPropagation()});g(p).mousemove(function(s){if(config.scrubber=="time"){var t=s.pageX-g(p).position().left;g("#"+config.id+"_timeSliderThumb").css("left",t)}})}function h(s){if(config.scrubber=="time"){var r=s-g("#"+config.id+"_timeSliderRail").position().left;var v=g("#"+config.id+"_timeSliderRail").width();var w=r/v*config.duration;if(w<0){w=0}else{if(w>config.duration){w=config.duration-3}}player.sendEvent("seek",w)}else{if(config.scrubber=="volume"){var t=g("#"+config.id+"_jwplayerControlbar").width();var p=g("#"+config.id+"_jwplayerControlbar").position().left;var q=g("#"+config.id+"_volumeSliderRail").css("right").substr(0,2);var v=config.images.volumeSliderRail.width;var u=Math.round((s-t-p+1*q+v)/v*100);if(u<0){u=0}else{if(u>100){u=100}}player.sendEvent("volume",u)}}config.scrubber="none"}function m(p){if(p.buffer===0){g("#"+p.id+"_timeSliderBuffer").css("display","none")}else{g("#"+p.id+"_timeSliderBuffer").css("display","block");var q=g("#"+p.id+"_timeSliderRail").width();g("#"+p.id+"_timeSliderBuffer").css("width",Math.round(q*p.buffer/100))}}function a(p){if(p.mute){g("#"+p.id+"_muteButton").css("display","none");g("#"+p.id+"_unmuteButton").css("display","block");g("#"+p.id+"_volumeSliderProgress").css("display","none")}else{g("#"+p.id+"_muteButton").css("display","block");g("#"+p.id+"_unmuteButton").css("display","none");g("#"+p.id+"_volumeSliderProgress").css("display","block")}}function k(p){if(p.state=="buffering"||p.state=="playing"){g("#"+p.id+"_pauseButton").css("display","block");g("#"+p.id+"_playButton").css("display","none")}else{g("#"+p.id+"_pauseButton").css("display","none");g("#"+p.id+"_playButton").css("display","block")}if(p.state=="completed"){p.elapsed=0;b(p)}}function b(p){var r=g("#"+p.id+"_timeSliderRail").width();var s=g("#"+p.id+"_timeSliderThumb").width();var q=g("#"+p.id+"_timeSliderRail").position().left;if(p.elapsed===0){g("#"+p.id+"_timeSliderProgress").css("display","none");g("#"+p.id+"_timeSliderThumb").css("display","none")}else{g("#"+p.id+"_timeSliderProgress").css("display","block");g("#"+p.id+"_timeSliderProgress").css("width",Math.round(r*p.elapsed/p.duration));g("#"+p.id+"_timeSliderThumb").css("display","block");g("#"+p.id+"_timeSliderThumb").css("left",q+Math.round((r-s)*p.elapsed/p.duration));g("#"+p.id+"_durationText").html(e(p.duration))}g("#"+p.id+"_elapsedText").html(e(p.elapsed))}function e(p){str="00:00";if(p>0){str=Math.floor(p/60)<10?"0"+Math.floor(p/60)+":":Math.floor(p/60)+":";str+=Math.floor(p%60)<10?"0"+Math.floor(p%60):Math.floor(p%60)}return str}function f(p){if(p.fullscreen){g("#"+p.div).css("position","absolute");g("#"+p.div).css("left",0);g("#"+p.div).css("top",0);g("#"+p.div).css("height","100%");g("#"+p.div).css("width","100%");g("#"+p.id+"_normalscreenButton").css("display","block");g("#"+p.id+"_fullscreenButton").css("display","none");g(window).resize(function(){d(p)})}else{g("#"+p.div).css("position","static");g("#"+p.div).css("left",p.left);g("#"+p.div).css("top",p.top);g("#"+p.div).css("height",p.height);g("#"+p.div).css("width",p.width);g("#"+p.id+"_normalscreenButton").css("display","none");g("#"+p.id+"_fullscreenButton").css("display","block");g(window).resize(null)}d(p);b(p);m(p)}function d(p){var r=p.left;var s=p.top+p.height;var q=p.width;var t=g("#"+p.id+"_jwplayerControlbar").height();if(p.position=="over"){r+=1*p.margin;s-=1*p.margin+t;q-=2*p.margin}if(p.fullscreen){r=p.margin;s=g(window).height()-p.margin-t;q=g(window).width()-2*p.margin;g("#"+p.id+"_jwplayerControlbar").css("z-index",99)}else{g("#"+p.id+"_jwplayerControlbar").css("z-index",97)}g("#"+p.id+"_jwplayerControlbar").css("left",r);g("#"+p.id+"_jwplayerControlbar").css("top",s);g("#"+p.id+"_jwplayerControlbar").css("width",q);g("#"+p.id+"_timeSliderRail").css("width",q-p.leftmargin-p.rightmargin)}function j(r){var p=g("#"+r.id+"_volumeSliderRail").width();var s=Math.round(r.volume/100*p);var q=g("#"+r.id+"_volumeSliderRail").css("right").substr(0,2);g("#"+r.id+"_volumeSliderProgress").css("width",s);g("#"+r.id+"_volumeSliderProgress").css("right",1*q+p-s)}})(jQuery);(function(a){a.fn.jwplayerController=function(){return this.each(function(){})};a.fn.jwplayerController.play=function(b){try{b.data("media").play();return true}catch(c){a.fn.jwplayerUtils.log("error",c)}return false};a.fn.jwplayerController.pause=function(b){try{b.data("media").pause();return true}catch(c){a.fn.jwplayerUtils.log("error",c)}return false};a.fn.jwplayerController.seek=function(c,b){try{c.data("media").seek(b);return true}catch(d){a.fn.jwplayerUtils.log("error",d)}return false};a.fn.jwplayerController.stop=function(b){try{b.data("media").stop();return true}catch(c){a.fn.jwplayerUtils.log("error",c)}return false};a.fn.jwplayerController.volume=function(c,b){try{if(b===undefined){return a(c).data("model").volume}else{c.data("media").volume(b);a(c).data("model").volume=b;return true}}catch(d){a.fn.jwplayerUtils.log("error",d)}return false};a.fn.jwplayerController.mute=function(b,d){try{if(d===undefined){return a(b).data("model").mute}else{b.data("media").mute(d);return true}return true}catch(c){a.fn.jwplayerUtils.log("error",c)}return false};a.fn.jwplayerController.fullscreen=function(b,d){try{if(position===undefined){return a(b).data("model").fullscreen}else{b.data("media").fullscreen(d);return true}}catch(c){a.fn.jwplayerUtils.log("error",c)}return false};a.fn.jwplayerController.resize=function(c,d,b){try{c.data("media").resize(d,b);return true}catch(e){a.fn.jwplayerUtils.log("error",e)}return false};a.fn.jwplayerController.mediaInfo=function(b){try{b.data("media").mediaInfo();return true}catch(c){a.fn.jwplayerUtils.log("error",c)}return false};a.fn.jwplayerController.load=function(b,d){try{b.data("media").load(d);return true}catch(c){a.fn.jwplayerUtils.log("error",c)}return false}})(jQuery);(function(e){function k(w){if(w===undefined){w=".jwplayer:first"}if(e.fn.jwplayerUtils.typeOf(w)=="string"){w=e(w)}return{play:u(w),pause:g(w),seek:d(w),stop:r(w),volume:t(w),mute:h(w),fullscreen:b(w),state:f(w),buffer:s(w),duration:a(w),width:q(w),height:s(w),load:j(w),resize:v(w),meta:l(w),time:i(w),complete:m(w),events:c}}var c={JWPLAYER_READY:"jwplayerReady",JWPLAYER_RESIZE:"jwplayerResize",JWPLAYER_ERROR:"jwplayerError",JWPLAYER_MEDIA_BUFFER:"jwplayerMediaBuffer",JWPLAYER_MEDIA_ERROR:"jwplayerMediaError",JWPLAYER_MEDIA_LOADED:"jwplayerMediaLoaded",JWPLAYER_MEDIA_COMPLETE:"jwplayerMediaComplete",JWPLAYER_MEDIA_TIME:"jwplayerMediaTime",JWPLAYER_MEDIA_VOLUME:"jwplayerMediaVolume",JWPLAYER_MEDIA_META:"jwplayerMediaMeta",JWPLAYER_MEDIA_MUTE:"jwplayerMediaMute",JWPLAYER_PLAYER_STATE:"jwplayerPlayerState"};e.extend({jwplayer:k});e.fn.jwplayer=function(w){return this.each(function(){var x=e(this)[0].id;e(this).css("display","none");e(this).jwplayerModel(w);e(this).jwplayerView();e.fn.jwplayerModel.setActiveMediaProvider(e(this));e(this).trigger("JWPLAYER_READY",{id:x})})};e.fn.jwplayer.players={};e.fn.jwplayer.defaults={autostart:false,duration:0,file:undefined,height:300,image:undefined,skin:"assets/five/five.xml",volume:100,width:400,source:0,flashplayer:"assets/player.swf"};function u(w){return function(){e.fn.jwplayerController.play(w);return k(w)}}function g(w){return function(){e.fn.jwplayerController.pause(w);return k(w)}}function d(w){return function(x){e.fn.jwplayerController.seek(w,x);return k(w)}}function r(w){return function(){e.fn.jwplayerController.stop(w);return k(w)}}function t(w){return function(x){switch(e.fn.jwplayerUtils.typeOf(x)){case"function":n(w,e.jwplayer().events.JWPLAYER_MEDIA_VOLUME,x);break;case"number":e.fn.jwplayerController.volume(w,x);break;case"string":e.fn.jwplayerController.volume(w,parseInt(x,10));break;default:return e.fn.jwplayerController.volume(w)}return k(w)}}function h(w,x){return function(y){switch(e.fn.jwplayerUtils.typeOf(y)){case"function":n(w,e.jwplayer().events.JWPLAYER_MEDIA_MUTE,y);break;case"boolean":e.fn.jwplayerController.mute(w,y);break;default:e.fn.jwplayerController.mute(w);break}return k(w)}}function v(w,x){return function(z,y){switch(e.fn.jwplayerUtils.typeOf(arg)){case"function":n(w,e.jwplayer().events.JWPLAYER_RESIZE,arg);break;case"number":e.fn.jwplayerController.resize(w,z,y);break;default:break}return k(w)}}function b(w,x){return function(y){switch(e.fn.jwplayerUtils.typeOf(y)){case"function":n(w,e.jwplayer().events.JWPLAYER_FULLSCREEN,y);break;case"boolean":e.fn.jwplayerController.fullscreen(w,y);break;default:return e.fn.jwplayerController.fullscreen(w)}return k(w)}}function f(w){return function(x){switch(e.fn.jwplayerUtils.typeOf(x)){case"function":n(w,e.jwplayer().events.JWPLAYER_PLAYER_STATE,x);break;default:return e.fn.jwplayerController.mediaInfo(w).state}return k(w)}}function s(w){return function(x){switch(e.fn.jwplayerUtils.typeOf(x)){case"function":n(w,e.jwplayer().events.JWPLAYER_MEDIA_BUFFER,x);break;default:return e.fn.jwplayerController.mediaInfo(w).buffer}return k(w)}}function i(w){return function(x){switch(e.fn.jwplayerUtils.typeOf(x)){case"function":n(w,e.jwplayer().events.JWPLAYER_MEDIA_TIME,x);break;default:return e.fn.jwplayerController.mediaInfo(w).time}return k(w)}}function j(w){return function(x){switch(e.fn.jwplayerUtils.typeOf(x)){case"function":n(w,e.jwplayer().events.JWPLAYER_MEDIA_LOADED,x);break;default:e.fn.jwplayerController.load(w,x)}return k(w)}}function m(w){return function(x){n(w,e.jwplayer().events.JWPLAYER_MEDIA_COMPLETE,x);return k(w)}}function a(w){return function(){return e.fn.jwplayerController.mediaInfo(w).duration}}function q(w){return function(){return e.fn.jwplayerController.mediaInfo(w).width}}function o(w){return function(){return e.fn.jwplayerController.mediaInfo(w).height}}function l(w){return function(){switch(e.fn.jwplayerUtils.typeOf(arg)){case"function":n(w,e.jwplayer().events.JWPLAYER_MEDIA_META,arg);break;default:return e.fn.jwplayerController.mediaInfo(w)}return k(w)}}function n(w,x,y){e(w).bind(x,y)}function p(w,x,y){e(w).unbind(x,y)}e(document).ready(function(){e("video.jwplayer").jwplayer()})})(jQuery);(function(f){f.fn.jwplayerMediaFlash=function(n){return this.each(function(){var o=f(this).data("model");o.controlbar="none";o.icons=false;var r=f(this)[0].id;f.fn.jwplayerView.embedFlash(f(this),o);var p=f("#"+r);var q={play:d(p),pause:m(p),seek:a(p),volume:g(p),mute:b(p),fullscreen:k(p)};f("#"+r).data("media",q)})};function e(n){var o=n.data("media");if(o.state===undefined){o.state="idle";n.css("display","inherit");c(n)}}function l(n){if(states[n.type]){i(n.target,states[n.type])}}function i(o,p){if(f(o).data("media").state!=p){var n=f(o).data("media").state;f(o).data("media").state=p;f(o).trigger("jwplayer.state",{oldstate:n,newstate:p})}}function c(o){var n=f.jwplayer().events;for(var p in n){o[0].addEventListener(n[p],h,true)}}function h(n){f(n.id).trigger(n.type,n)}function d(n){return function(){e(n);try{n[0].play();return true}catch(o){f.fn.jwplayerUtils.log("error",o)}return false}}function m(n){return function(){e(n);n.pause()}}function a(n){return function(o){e(n);n.seek(o)}}function j(n){return function(){e(n);n.stop()}}function g(n){return function(o){e(n);n.volume(o)}}function b(n){return function(o){e(n);n.mute(o)}}function k(n){return function(o){e(n)}}})(jQuery);(function(f){var g={buffering:"buffering",ended:"idle",playing:"playing",pause:"paused"};var b={abort:q,canplay:t,canplaythrough:t,durationchange:d,emptied:q,ended:t,error:j,loadeddata:d,loadedmetadata:d,loadstart:t,pause:t,play:p,playing:t,progress:e,ratechange:q,seeked:t,seeking:t,stalled:t,suspend:t,timeupdate:q,volumechange:q,waiting:t,canshowcurrentframe:q,dataunavailable:q,empty:q,load:q,loadedfirstframe:q};f.fn.jwplayerMediaVideo=function(u){return this.each(function(){var v=f(this);var w={play:r(v),pause:h(v),seek:c(v),stop:n(v),volume:o(v),mute:i(v),fullscreen:a(v),load:l(v),state:"idle",interval:null};v.data("media",w);f.each(b,function(y,x){v[0].addEventListener(y,x,true)})})};function q(u){}function t(u){if(g[u.type]){m(u.target,g[u.type])}}function m(v,w){if(f(v).data("media").state!=w){var u=f(v).data("media").state;f(v).data("media").state=w;k(f(v),f.jwplayer().events.JWPLAYER_PLAYER_STATE,{oldstate:u,newstate:w})}if(w=="idle"){clearInterval(f(v).data("media").interval);f(v).data("media").interval=null}}function d(u){k(f(u.target),f.jwplayer().events.JWPLAYER_MEDIA_META,{videoHeight:u.target.videoHeight,videoWidth:u.target.videoWidth,duration:u.target.duration})}function p(u){if(f(u.target).data("media").interval===null){f(u.target).data("media").interval=window.setInterval(function(){p(u)},100)}k(f(u.target),f.jwplayer().events.JWPLAYER_MEDIA_TIME,{position:u.target.currentTime})}function e(v){var u;if(!isNaN(v.loaded/v.total)){u=v.loaded/v.total*100}else{if(v.target.buffered!==undefined){u=v.target.buffered.end(0)/v.target.duration*100}}k(f(v.target),f.jwplayer().events.JWPLAYER_MEDIA_BUFFER,{buffer:u})}function j(u){k(f(u.target),f.jwplayer().events.JWPLAYER_ERROR,{})}function r(u){return function(){u[0].play()}}function h(u){return function(){u[0].pause()}}function c(u){return function(v){u[0].currentTime=v}}function n(u){return function(){u[0].pause();u[0].currentTime=0;clearInterval(f(u).data("media").interval);f(u).data("media").interval=null;m(u,"idle")}}function o(u){return function(v){f.fn.jwplayerUtils.log(v/100);u[0].volume=v/100;k(u,f.jwplayer().events.JWPLAYER_MEDIA_VOLUME,{volume:u[0].volume})}}function i(u){return function(v){u[0].muted=v;k(u,f.jwplayer().events.JWPLAYER_MEDIA_MUTE,{mute:u[0].muted})}}function s(u){return function(w,v){u.css("width",w);u.css("height",v);k(u,f.jwplayer().events.JWPLAYER_MEDIA_RESIZE,{width:w,hieght:v})}}function a(u){return function(v){if(v===true){u.css("width",window.width);u.css("height",window.height);k(u,f.jwplayer().events.JWPLAYER_MEDIA_RESIZE,{width:width,hieght:height})}else{}}}function l(u){return function(v){}}function k(u,v,w){u.trigger(v,f.extend({id:u[0].id,version:f.jwplayer(u).version},w))}})(jQuery);(function(a){a.fn.jwplayerModel=function(b){return this.each(function(){a(this).jwplayerParse(b)})};a.fn.jwplayerModel.setActiveMediaProvider=function(d){var e,b;var c=d.data("model");for(b in c.sources){e=c.sources[b];if(e.type===undefined){e.type="video/"+a.fn.jwplayerUtils.extension(e.file)+";"}if(a.fn.jwplayerUtils.supportsType(e.type)){c.source=b;d.jwplayerMediaVideo();return true}}if(a.fn.jwplayerUtils.supportsFlash&&c.state!="playing"){for(b in c.sources){e=c.sources[b];if(a.fn.jwplayerUtils.flashCanPlay(e.file)){c.source=b;d.jwplayerMediaFlash();return true}}}return false}})(jQuery);(function(f){var g={element:{width:"width",height:"height",id:"id","class":"className",name:"name"},media:{src:"file",preload:"preload",autoplay:"autostart",loop:"repeat",controls:"controls"},source:{src:"file",type:"type",media:"media"},video:{poster:"image"}};var e={};f.fn.jwplayerParse=function(i){return this.each(function(){f(this).data("model",f.extend(true,{},f.fn.jwplayer.defaults,i,d(this)))})};function c(j,i){if(i===undefined){i=g[j]}else{f.extend(i,g[j])}return i}function d(l,i){if(e[l.tagName.toLowerCase()]&&(i===undefined)){return e[l.tagName.toLowerCase()](l)}else{i=c("element",i);var m={};for(var j in i){if(j!="length"){var k=f(l).attr(j);if(!(k===""||k===undefined)){m[i[j]]=f(l).attr(j)}}}m.screencolor=f(l).css("background-color");return m}}function h(k,i){i=c("media",i);var j=[];f("source",k).each(function(){j[j.length]=a(this)});var l=d(k,i);if(l.file!==undefined){j[0]={file:l.file}}l.sources=j;return l}function a(j,i){i=c("source",i);return d(j,i)}function b(j,i){i=c("video",i);return h(j,i)}e.media=h;e.audio=h;e.source=a;e.video=b})(jQuery);(function(b){b.fn.jwplayerSkinner=function(){return this.each(function(){a(b(this).data("model"))})};function a(d){b.get(d.skin,{},function(f){var e=b("component",f);for(var g=0;g<e.length;g++){if(b(e[g]).attr("name")=="display"){var h=b(e[g]).find("setting");e=b(e[g]).find("element");break}}for(var g=0;g<h.length;g++){d.skinlements[b(h[g]).attr("name")]=b(h[g]).attr("value")}config.options.images=e.length;for(var g=0;g<e.length;g++){c(e[g],config)}})}function c(g,f){var d=new Image();var h=b(g).attr("name");var e=f.options.skin.substr(0,f.options.skin.lastIndexOf("/"))+"/controlbar/";b(d).error(function(){f.options.images--});b(d).load(function(){f.images[h]={height:this.height,width:this.width,src:this.src};f.options.images--;if(f.options.images===0){buildElements(f);buildHandlers(f)}});d.src=e+b(g).attr("src")}})(jQuery);(function(b){b.fn.jwplayerUtils=function(){return this.each(function(){})};b.fn.jwplayerUtils.supportsFlash=function(){var c="0,0,0,0";try{try{var f=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");try{f.AllowScriptAccess="always"}catch(h){c="6,0,0"}}catch(h){}c=new ActiveXObject("ShockwaveFlash.ShockwaveFlash").GetVariable("$version").replace(/\D+/g,",").match(/^,?(.+),?$/)[1]}catch(h){try{if(navigator.mimeTypes["application/x-shockwave-flash"].enabledPlugin){c=(navigator.plugins["Shockwave Flash 2.0"]||navigator.plugins["Shockwave Flash"]).description.replace(/\D+/g,",").match(/^,?(.+),?$/)[1]}}catch(h){}}var d=parseInt(c.split(",")[0]);var g=parseInt(c.split(",")[2]);if(d>9||(d==9&&g>97)){return true}else{return false}};var a={"3g2":true,"3gp":true,aac:true,f4b:true,f4p:true,f4v:true,flv:true,gif:true,jpg:true,jpeg:true,m4a:true,m4v:true,mov:true,mp3:true,mp4:true,png:true,rbs:true,sdp:true,swf:true,vp6:true};b.fn.jwplayerUtils.flashCanPlay=function(c){if(a[b.fn.jwplayerUtils.extension(c)]){return true}return false};b.fn.jwplayerUtils.supportsType=function(c){try{return !!document.createElement("video").canPlayType(c)}catch(d){return false}};b.fn.jwplayerUtils.supportsH264=function(){return b.fn.jwplayerUtils.supportsType('video/mp4; codecs="avc1.42E01E, mp4a.40.2"')};b.fn.jwplayerUtils.supportsOgg=function(){return b.fn.jwplayerUtils.supportsType('video/ogg; codecs="theora, vorbis"')};b.fn.jwplayerUtils.extension=function(c){return c.substr(c.lastIndexOf(".")+1,c.length)};b.fn.jwplayerUtils.dump=function(e,h){if(e===null){return"null"}else{if(b.fn.jwplayerUtils.typeOf(e)!="object"){if(b.fn.jwplayerUtils.typeOf(e)=="string"){return'"'+e+'"'}return e}}var g=b.fn.jwplayerUtils.typeOf(e);h=(h===undefined)?1:h+1;var d="";for(var f=0;f<h;f++){d+="\t"}var c=(g=="array")?"[":"{";c+="\n"+d;for(var f in e){if(g=="object"){c+='"'+f+'": '}c+=b.fn.jwplayerUtils.dump(e[f],h)+",\n"+d}c=c.substring(0,c.length-2-h)+"\n";c+=d.substring(0,d.length-1);c+=(g=="array")?"]":"}";return c};b.fn.jwplayerUtils.typeOf=function(d){var c=typeof d;if(c==="object"){if(d){if(d instanceof Array){c="array"}}else{c="null"}}return c};b.fn.jwplayerUtils.log=function(e,d){try{if(d){console.log("%s: %o",e,d)}else{console.log(b.fn.jwplayerUtils.dump(e))}}catch(c){}return this}})(jQuery);(function(b){var e="<embed %elementvars% src='%flashplayer%' allowfullscreen='true' allowscriptaccess='always' flashvars='%flashvars%' />";var a="<object classid='clsid:D27CDB6E-AE6D-11cf-96B8-444553540000' %elementvars%'> <param name='movie' value='%flashplayer%'> <param name='allowfullscreen' value='true'> <param name='allowscriptaccess' value='always'> <param name='wmode' value='transparent'> <param name='flashvars' value='%flashvars%'> </object>";var c={width:true,height:true,id:true,name:true,className:true};b.fn.jwplayerView=function(){return this.each(function(){var f=b(this);b(this).wrap("<div />");b(this).before("<a href='"+b(this).data("model").sources[b(this).data("model").source].file+"' style='display:block; background:#ffffff url("+b(this).data("model").image+") no-repeat center center;width:"+b(this).data("model").width+"px;height:"+b(this).data("model").height+"px;position:relative;'><img src='http://content.bitsontherun.com/staticfiles/play.png' alt='Click to play video' style='position:absolute; top:"+(b(this).data("model").height-60)/2+"px; left:"+(b(this).data("model").width-60)/2+"px; border:0;' /></a>");b(this).prev("a").click(function(g){if(typeof g.preventDefault!="undefined"){g.preventDefault()}else{g.returnValue=false}b.jwplayer(f).play()});b.jwplayer(f).state(d)})};function d(g,f){b.fn.jwplayerUtils(g.target);switch(f.newstate){case"idle":b(g.target).css("display","none");b(g.target).prev("a").css("display","inherit");break;case"playing":b(g.target).prev("a").css("display","none");b(g.target).css("display","inherit");break}}b.fn.jwplayerView.embedFlash=function(l,j){if(j.flashplayer!==false){var k,g="",i="";if(navigator.plugins&&navigator.mimeTypes&&navigator.mimeTypes.length){k=e}else{k=a}for(var f in c){if(!((j[f]===undefined)||(j[f]==="")||(j[f]===null))){g+=f+"='"+j[f]+"'"}}for(var h in j){if(!((j[h]===undefined)||(j[h]==="")||(j[h]===null))){if(h=="sources"){i+="file="+j.sources[j.source].file+"&"}else{i+=h+"="+j[h]+"&"}}}k=k.replace("%elementvars%",g);k=k.replace("%flashvars%",i);k=k.replace("%flashplayer%",j.flashplayer);var m=l[0].id;b(l).replaceWith(k);b("#"+m).prev("a").css("display","none")}}})(jQuery); 
  • trunk/html5/index.html

    r935 r936  
    2727        class="jwplayer" 
    2828        poster="http://localhost/files/bunny.jpg" 
    29         src="http://localhost/files/bunny.mp4" 
     29        src="http://developer.longtailvideo.com/player/testing/files/bunny.mp4" 
    3030        width="480" 
    3131> 
     
    8080        poster="http://localhost/files/bunny.jpg" 
    8181> 
    82 <source src='http://localhost/files/bunny.ogv' type='video/ogg; codecs="theora, vorbis"'> 
    83 <source src='http://localhost/files/bunny.mp4' type='video/mp4; codecs="avc1.42E01E, mp4a.40.2"'> 
     82<source src='http://localhost/html5/bunny.ogv' type='video/ogg; codecs="theora, vorbis"'> 
     83<source src='http://developer.longtailvideo.com/player/testing/files/bunny.mp4' type='video/mp4; codecs="avc1.42E01E, mp4a.40.2"'> 
    8484</video> 
     85 
     86<a id="play">play</a> 
     87<a id="pause">pause</a> 
     88<a id="stop">stop</a> 
     89<a id="mute">mute</a> 
     90<a id="unmute">unmute</a> 
     91<input type="text" id="seekposition" /> 
     92<a id="seek">seek</a> 
     93<input type="text" id="volumeposition" /> 
     94<a id="volume">volume</a> 
     95<input type="text" id="currenttime" /> 
     96<input type="text" id="currentbuffer" /> 
    8597 
    8698<script type="text/javascript"> 
    8799        $('#player5').jwplayer(); 
    88         /*$.jwplayer('#player3').time(function(parameters, extra){ 
    89                 $.fn.jwplayerUtils.log('time', extra); 
    90         });*/ 
    91         $.jwplayer('#player1').buffer(function(parameters, extra){ 
    92                 $.fn.jwplayerUtils.log('buffer', extra); 
     100         
     101        $.jwplayer('#player5').buffer(function(parameters, extra){ 
     102                $("#currentbuffer")[0].value = Math.round(extra.buffer*10)/10; 
    93103        }); 
     104         
     105        $.jwplayer('#player5').time(function(parameters, extra){ 
     106                $("#currenttime")[0].value = Math.round(extra.position*10)/10; 
     107        }); 
     108 
     109        $("#play").click(function(){ 
     110                $.jwplayer('#player5').play(); 
     111        }); 
     112 
     113        $("#pause").click(function(){ 
     114                $.jwplayer('#player5').pause(); 
     115        }); 
     116 
     117        $("#stop").click(function(){ 
     118                $.jwplayer('#player5').stop(); 
     119        }); 
     120         
     121        $("#seek").click(function(){ 
     122                $.jwplayer('#player5').seek($("#seekposition")[0].value); 
     123        }); 
     124         
     125        $("#volume").click(function(){ 
     126                $.jwplayer('#player5').volume($("#volumeposition")[0].value); 
     127        }); 
     128         
     129        $("#mute").click(function(){ 
     130                $.jwplayer('#player5').mute(true); 
     131        }); 
     132 
     133        $("#unmute").click(function(){ 
     134                $.jwplayer('#player5').mute(false); 
     135        }); 
     136 
     137 
    94138</script> 
    95139 
  • trunk/html5/src/jquery.jwplayerController.js

    r935 r936  
    8181        $.fn.jwplayerController.mute = function(player, state) { 
    8282                try { 
    83                         if (position === undefined) { 
     83                        if (state === undefined) { 
    8484                                return $(player).data("model").mute; 
    8585                        } else { 
  • trunk/html5/src/jquery.jwplayerCore.js

    r935 r936  
    141141                                        $.fn.jwplayerController.volume(player, arg); 
    142142                                        break; 
     143                                case "string": 
     144                                        $.fn.jwplayerController.volume(player, parseInt(arg,10)); 
     145                                        break; 
    143146                                default: 
    144147                                        return $.fn.jwplayerController.volume(player); 
  • trunk/html5/src/jquery.jwplayerMediaVideo.js

    r935 r936  
    2828                'play': positionHandler, 
    2929                'playing': stateHandler, 
    30                 'progress': generalHandler, 
     30                'progress': progressHandler, 
    3131                'ratechange': generalHandler, 
    3232                'seeked': stateHandler, 
     
    5252                                pause: pause(video), 
    5353                                seek: seek(video), 
     54                                stop: stop(video), 
    5455                                volume: volume(video), 
    5556                                mute: mute(video), 
     
    108109                        position: event.target.currentTime 
    109110                }); 
    110                 if (event.target.buffered !== undefined) { 
    111                         if (event.target.buffered.end(event.target.buffered.length - 1) != event.target.duration) { 
    112                                 sendEvent($(event.target), $.jwplayer().events.JWPLAYER_MEDIA_BUFFER, { 
    113                                         buffer: event.target.currentTime 
    114                                 }); 
    115                         } 
    116                 } 
     111        } 
     112         
     113        function progressHandler(event) { 
     114                var buffer; 
     115                if (!isNaN(event.loaded / event.total)) { 
     116                        buffer = event.loaded / event.total * 100; 
     117                } else if (event.target.buffered !== undefined) { 
     118                        buffer = event.target.buffered.end(0) / event.target.duration * 100; 
     119                } 
     120                sendEvent($(event.target), $.jwplayer().events.JWPLAYER_MEDIA_BUFFER, { 
     121                        'buffer': buffer 
     122                }); 
    117123        } 
    118124         
     
    147153                return function() { 
    148154                        player[0].pause(); 
    149                         player[0].currentTime = player.startTime; 
     155                        player[0].currentTime = 0; 
     156                        clearInterval($(player).data("media").interval); 
     157                        $(player).data("media").interval = null; 
     158                        setState(player, 'idle'); 
    150159                }; 
    151160        } 
     
    155164        function volume(player) { 
    156165                return function(position) { 
    157                         player.volume = position / 100; 
     166                        $.fn.jwplayerUtils.log(position / 100); 
     167                        player[0].volume = position / 100; 
    158168                        sendEvent(player, $.jwplayer().events.JWPLAYER_MEDIA_VOLUME, { 
    159                                 volume: position 
     169                                volume: player[0].volume 
    160170                        }); 
    161171                }; 
     
    165175        function mute(player) { 
    166176                return function(state) { 
    167                         player.mute = state; 
     177                        player[0].muted = state; 
    168178                        sendEvent(player, $.jwplayer().events.JWPLAYER_MEDIA_MUTE, { 
    169                                 mute: player.mute 
     179                                mute: player[0].muted 
    170180                        }); 
    171181                }; 
     
    215225         
    216226})(jQuery); 
     227 
Note: See TracChangeset for help on using the changeset viewer.