homepage, categories pages; javascript and stylesheets renamed to js and css resp.
[living-lab-site.git] / js / NextShare_VLC_plugin.js
diff --git a/js/NextShare_VLC_plugin.js b/js/NextShare_VLC_plugin.js
new file mode 100644 (file)
index 0000000..dffb2cd
--- /dev/null
@@ -0,0 +1,223 @@
+// NextSharePC plugin controls\r
+// Author: Calin-Andrei Burloiu, calin.burloiu@gmail.com\r
+// 2011\r
+\r
+updateInterval = 500;\r
+\r
+function getURLParam( name )\r
+{\r
+       name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");\r
+       var regexS = "[\\?&]"+name+"=([^&#]*)";\r
+       var regex = new RegExp( regexS );\r
+       var results = regex.exec( window.location.href );\r
+       if( results == null )\r
+               return "";\r
+       else\r
+               return results[1];\r
+}\r
+\r
+function pad(number, length) \r
+{\r
+       var str = '' + number;\r
+       while (str.length < length) \r
+       {\r
+               str = '0' + str;\r
+       }\r
+\r
+       return str;\r
+}\r
+\r
+function getPluginWidth()\r
+{\r
+       return 800;\r
+}\r
+\r
+function getPluginHeight()\r
+{\r
+       return 600;\r
+}\r
+\r
+function getSliderWidth()\r
+{\r
+       return $("#nsSlider").width();\r
+}\r
+\r
+function updateTime(afterSlider)\r
+{\r
+       var len = document.vlc.input.length;\r
+       var pos;\r
+       if(afterSlider)\r
+       {\r
+               var val = 1.0 * $("#nsSlider").slider("option", "value");\r
+               pos = val / (getSliderWidth() - 1);\r
+       }\r
+       else\r
+               pos = document.vlc.input.position;\r
+       var time = Math.round(pos * len);\r
+       var crt_s = Math.floor(time / 1000 % 60);\r
+       var crt_min = Math.floor((time / 1000) / 60);\r
+       var tot_s = Math.floor(len / 1000 % 60);\r
+       var tot_min = Math.floor((len / 1000) / 60);\r
+\r
+       if(isNaN(crt_s)) crt_s = 0;\r
+       if(isNaN(crt_min)) crt_min = 0;\r
+       if(isNaN(tot_s)) tot_s = 0;\r
+       if(isNaN(tot_min)) tot_min = 0;\r
+\r
+       $("#nsTime").html("" + pad(crt_min, 2) + ":" + pad(crt_s, 2)\r
+               + " / " + pad(tot_min, 2) + ":" + pad(tot_s, 2));\r
+}\r
+\r
+function update()\r
+{\r
+       var val = Math.round(document.vlc.input.position * (getSliderWidth() - 1));\r
+\r
+       $("#nsSlider").slider({ value: val });\r
+       \r
+       updateTime(false);\r
+       \r
+       timerHandle = setTimeout("update()", updateInterval);\r
+}\r
+\r
+function displayNextSharePC(torrent)\r
+{\r
+       //document.write('popârțac');\r
+       //return;\r
+       \r
+       if (navigator.appName == "Netscape")\r
+       {\r
+               document.write('<embed type="application/x-ns-stream"');\r
+               document.write('name="vlc"');\r
+               document.write('id="vlc"');\r
+               document.write('autoplay="no" loop="no" width="');\r
+               document.write('' + getPluginWidth());\r
+               document.write('" height="');\r
+               document.write('' + getPluginHeight());\r
+               document.write('"');\r
+               document.write('target="');\r
+               document.write(torrent);\r
+               document.write('" />');\r
+       }\r
+       else\r
+       {\r
+               document.write('<object classid="clsid:1800B8AF-4E33-43C0-AFC7-894433C13538" ');\r
+               document.write('codebase="http://trial.p2p-next.org/download/SwarmPlugin_IE_1.0.4.cab"');\r
+               document.write('width="');\r
+               document.write(getPluginWidth());\r
+               document.write('" height="');\r
+               document.write(getPluginHeight());\r
+               document.write('" id="vlc" name="vlc" events="True" target="">');\r
+               document.write('<param name="Src" value="');\r
+               document.write(torrent);\r
+               document.write('" />');\r
+               document.write('<param name="ShowDisplay" value="True" />');\r
+               document.write('<param name="Loop" value="False" />');\r
+               document.write('<param name="AutoPlay" value="True" />');\r
+               document.write('<param name="Toolbar" value="True" />');\r
+               document.write('</object>');\r
+       }\r
+       \r
+       document.write('<table id="nsTable"><tr>'\r
+               + '<td id="nsPlaybackCell"><input type=button value="Play" onClick="play();" />'\r
+               + '<input type=button value="Pause" onClick="pause();" />'\r
+               + '<input type=button value="Stop" onclick="stop();" /></td>'\r
+               + '<td id="nsTimeCell"><span id="nsTime">-</span></td>'\r
+               + '<td><div id="nsVol"></div></td>'\r
+               + '<td><input type=button value="Fullscreen" onclick="fullscreen();" /></td></tr>'\r
+               + '<tr><td colspan="4"><div id="nsSlider"></div></td></tr>'\r
+               + '</table>');\r
+\r
+       return true;\r
+}\r
+\r
+function onSliderStop(event, ui)\r
+{\r
+       var val = $("#nsSlider").slider("option", "value");\r
+       var s = 1.0 * val / (getSliderWidth() - 1);\r
+       \r
+       //document.vlc.playlist.seek(s, false);\r
+       //document.vlc.video.toggleFullscreen();\r
+       \r
+       try {\r
+               if(s == 0)\r
+                       document.vlc.input.position = 0.0000001;\r
+               else if(s == 1)\r
+                       document.vlc.input.position = 0.9999999;\r
+               else\r
+                       document.vlc.input.position = s;\r
+       }\r
+       catch(err) {\r
+               alert(err.message + ": " + err.description);\r
+       }\r
+       \r
+       timerHandle = setTimeout("update()", updateInterval);\r
+}\r
+\r
+function onSliderSlide(event, ui)\r
+{\r
+       updateTime(true);\r
+       \r
+       clearTimeout(timerHandle);\r
+}\r
+\r
+function onVolChange(event, ui)\r
+{\r
+       var val = $("#nsVol").slider("option", "value");\r
+       \r
+       document.vlc.audio.volume = val;\r
+}\r
+\r
+function loadControls()\r
+{\r
+       if(document.vlc == null)\r
+               return;\r
+       \r
+       $("nsTable").css("width", getPluginWidth());\r
+       \r
+       // Progress Slider\r
+       $("#nsSlider").slider({ animate: true });\r
+       $("#nsSlider").slider({ min: 0 });\r
+       $("#nsSlider").slider({ max: (getPluginWidth() - 1) });\r
+       $("#nsSlider").slider({\r
+               stop: onSliderStop,\r
+               slide: onSliderSlide\r
+       });\r
+       $("#nsSlider").css("width", getPluginWidth());// TODO\r
+       $("#nsSlider").slider();\r
+       \r
+       // Volume Slider\r
+       $("#nsVol").slider({ animate: true });\r
+       $("#nsVol").slider({ min: 0 });\r
+       $("#nsVol").slider({ max: 200 });\r
+       $("#nsVol").slider({ value: document.vlc.audio.volume });\r
+       $("#nsVol").slider({\r
+               change: onVolChange,\r
+       });\r
+       $("#nsVol").css("width", 72);\r
+       $("#nsVol").slider();\r
+       \r
+       timerHandle = setTimeout("update()", updateInterval);\r
+}\r
+\r
+function play()\r
+{\r
+       document.vlc.playlist.play();\r
+       timerHandle = setTimeout("update()", updateInterval);\r
+}\r
+\r
+function pause()\r
+{\r
+       document.vlc.playlist.togglePause();\r
+       clearTimeout(timerHandle);\r
+}\r
+\r
+function stop()\r
+{\r
+       document.vlc.playlist.stop();\r
+       clearTimeout(timerHandle);\r
+}\r
+\r
+function fullscreen()\r
+{\r
+       document.vlc.video.toggleFullscreen();\r
+}\r