--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/client/player/js/jquery.jscontrolbar.js Wed Jun 09 16:48:35 2010 +0200
@@ -0,0 +1,263 @@
+try {
+ var controlbarReady = playerReady;
+} catch (err){
+}
+
+playerReady = function(obj) {
+ try {
+ var player = $("#"+obj['id']);
+ player.each(function (){
+ this.addModelListener("TIME","timeTracker");
+ this.addModelListener("STATE","playTracker");
+ this.addControllerListener("MUTE","muteTracker");
+ this.addControllerListener("VOLUME","volumeTracker");
+ });
+ player.addControlbar();
+ } catch (err){
+ }
+ try {
+ controlbarReady(obj);
+ } catch (err){
+ }
+}
+
+jQuery.fn.addControlbar = function (options){
+ var settings = jQuery.extend({
+ 'width': this.width(),
+ 'prefix': 'jw_controlbar',
+ 'elements': {
+ 'play': {
+ 'width': '16px',
+ 'height': '16px',
+ 'background-image': 'url("http://www.longtailvideo.com/jw/images/controlbar/control_play_blue.png")',
+ 'float': 'left',
+ 'display': 'block'
+ },
+ 'pause': {
+ 'width': '16px',
+ 'height': '16px',
+ 'background-image': 'url("http://www.longtailvideo.com/jw/images/controlbar/control_pause_blue.png")',
+ 'float': 'left',
+ 'display': 'none'
+ },
+ 'stop': {
+ 'width': '16px',
+ 'height': '16px',
+ 'background-image': 'url("http://www.longtailvideo.com/jw/images/controlbar/control_stop_blue.png")',
+ 'float': 'left',
+ 'display': 'block'
+ },
+ 'currenttime': {
+ 'width': '12%',
+ 'float': 'left',
+ 'display': 'block',
+ 'text-align': 'right',
+ 'font-family': 'monospace',
+ 'font-weight': '900',
+ 'font-size': '11px'
+ },
+ 'scrubber': {
+ 'width': '45%',
+ 'float': 'left',
+ 'display': 'block',
+ 'margin': '5px'
+ },
+ 'totaltime': {
+ 'width': '12%',
+ 'float': 'left',
+ 'display': 'block',
+ 'text-align': 'left',
+ 'font-family': 'monospace',
+ 'font-weight': '900',
+ 'font-size': '11px'
+ },
+ 'fullscreen': {
+ 'width': '5%',
+ 'background-color': 'black',
+ 'float': 'left',
+ 'display': 'none'
+ },
+ 'mute': {
+ 'width': '16px',
+ 'height': '16px',
+ 'float': 'left',
+ 'display': 'block',
+ 'background-image': 'url("http://www.longtailvideo.com/jw/images/controlbar/sound_none.png")'
+ },
+ 'unmute': {
+ 'width': '16px',
+ 'height': '16px',
+ 'float': 'left',
+ 'display': 'none',
+ 'background-image': 'url("http://www.longtailvideo.com/jw/images/controlbar/sound_mute.png")'
+
+ },
+ 'volume': {
+ 'width': '5%',
+ 'float': 'left',
+ 'display': 'block',
+ 'margin': '5px'
+
+ }
+ }
+ }, options);
+
+ this.after(buildControlbar(settings));
+ var player = this[0];
+ var playerSiblings = this.siblings();
+ var play = $("."+settings.prefix+".play", playerSiblings);
+ var pause = $("."+settings.prefix+".pause", playerSiblings);
+ var stop = $("."+settings.prefix+".stop", playerSiblings);
+ var scrubber = $("."+settings.prefix+".scrubber", playerSiblings);
+ var currenttime = $("."+settings.prefix+".currenttime", playerSiblings);
+ var totaltime = $("."+settings.prefix+".totaltime", playerSiblings);
+ var fullscreen = $("."+settings.prefix+".fullscreen", playerSiblings);
+ var mute = $("."+settings.prefix+".mute", playerSiblings);
+ var unmute = $("."+settings.prefix+".unmute", playerSiblings);
+ var volume = $("."+settings.prefix+".volume", playerSiblings);
+
+ play.click(function() {
+ player.sendEvent("PLAY", true);
+ });
+
+
+ pause.click(function() {
+ player.sendEvent("PLAY", false);
+ });
+
+ stop.click(function() {
+ player.sendEvent("STOP");
+ });
+
+ currenttime.html("00:00");
+
+ scrubber.slider({
+ range: "min",
+ min: 0,
+ max: 100000,
+ slide: function(event, ui) {
+ var duration = player.getPlaylist()[player.getConfig()['item']].duration;
+ var seekTime = Math.round(duration * ui.value / 100000);
+ player.sendEvent("SEEK", seekTime);
+ }
+ });
+
+ totaltime.html("00:00");
+
+ fullscreen.click(function() {
+ player.sendEvent("FULLSCREEN", true);
+ });
+
+ mute.click(function() {
+ player.sendEvent("MUTE", true);
+ });
+
+ unmute.click(function() {
+ player.sendEvent("MUTE", false);
+ });
+
+ volume.slider({
+ range: "min",
+ min: 0,
+ max: 100,
+ value: player.getConfig()['volume'],
+ slide: function(event, ui) {
+ player.sendEvent("VOLUME", ui.value);
+ }
+ });
+}
+
+function buildControlbar(settings){
+ var result = "";
+ result += "<div class='"+settings.prefix+"' style='width:"+settings.width+"px'>";
+ for (element in settings.elements){
+ var style = "";
+ for (styleElement in settings.elements[element]){
+ style += styleElement+":"+settings.elements[element][styleElement]+";";
+ }
+ result += "<div class='"+settings.prefix+" "+element+"' style='"+style+"'> </div>";
+ }
+ result += "</div>";
+ return result;
+}
+
+function pad(s,l) {
+ return( l.substr(0, (l.length-s.length) )+s );
+}
+
+function formatTime(seconds){
+ var result = "";
+ var remaining = Math.floor(seconds);
+
+ if (seconds > 3600){
+ result += pad((Math.floor(remaining/3600)).toString(),"00")+":";
+ remaining = remaining % 3600;
+ }
+
+ result += pad((Math.floor(remaining/60)).toString(),"00")+":";
+ remaining = remaining % 60;
+
+ result += pad(remaining.toString(),"00")+"";
+
+ return result;
+}
+
+function play(player){
+ player.sendEvent("PLAY");
+ return false;
+}
+
+function stop(player){
+ player.sendEvent("STOP");
+ return false;
+}
+
+function seek(player){
+ player.sendEvent("STOP");
+ return false;
+}
+
+function timeTracker(obj){
+ var percentComplete = Math.round(100000 * obj.position / obj.duration);
+ var player = $("#"+obj['id']);
+ var playerSiblings = player.siblings();
+ $(".jw_controlbar.scrubber", playerSiblings).slider('option', 'value', percentComplete);
+ $(".jw_controlbar.currenttime", playerSiblings).html(formatTime(obj.position));
+ $(".jw_controlbar.totaltime", playerSiblings).html(formatTime(obj.duration));
+}
+
+function playTracker(obj){
+ var player = $("#"+obj['id']);
+ var playerSiblings = player.siblings();
+ if (obj.newstate == "PLAYING"){
+ $(".jw_controlbar.pause", playerSiblings).css("display","block");
+ $(".jw_controlbar.play", playerSiblings).css("display","none");
+ } else {
+ $(".jw_controlbar.pause", playerSiblings).css("display","none");
+ $(".jw_controlbar.play", playerSiblings).css("display","block");
+ }
+}
+
+function muteTracker(obj){
+ var player = $("#"+obj['id']);
+ var playerSiblings = player.siblings();
+ if (!obj.state){
+ $(".jw_controlbar.mute", playerSiblings).css("display","block");
+ $(".jw_controlbar.unmute", playerSiblings).css("display","none");
+ setVolume($(".jw_controlbar.volume", playerSiblings), player[0].getConfig()['volume']);
+ } else {
+ $(".jw_controlbar.mute", playerSiblings).css("display","none");
+ $(".jw_controlbar.unmute", playerSiblings).css("display","block");
+ setVolume($(".jw_controlbar.volume", playerSiblings), 0);
+ }
+}
+
+function volumeTracker(obj){
+ var player = $("#"+obj['id']);
+ var playerSiblings = player.siblings();
+ setVolume($(".jw_controlbar.volume", playerSiblings),obj.percentage);
+}
+
+function setVolume(slider, value){
+ slider.slider('option', 'value', value);
+}
\ No newline at end of file