/*!
* Replayme Player v1.0.1
* Based on JQueryUI v1.8.4
*
*
* Copyright 2010, Maxime Rouast
* Released under the GPL 2 License.
*
*/
var relPosTimer_is_on=0;
var relpos;
var user_is_dragging=0;
var checkStatusTimer;
var checkVideoSizeTimer;
var previousHeight=0;
var previousWidth=0;
var vlc;
//Used for the look and feel of the player
function checkStatus()
{
if(vlc.subtitle.count < 1)
{
$( "#subtitles" ).button( "option", "disabled", true );
}
else if (vlc.subtitle.count > 0)
{
$( "#subtitles" ).button( "option", "disabled", false );
}
if (vlc.input.state == 0) {
// current media has stopped
//onStop();
}
else if (vlc.input.state == 1) {
// current media is connecting
onOpening();
}
else if (vlc.input.state == 2) {
// current media is buffering data
onBuffering();
}
else if (vlc.input.state == 3) {
// current media is now playing
onPlaying();
}
else if (vlc.input.state == 4) {
// current media is now paused
//onPaused();
}
else if (vlc.input.state == 5) {
// current media is stopping
//onStopping();
}
else if (vlc.input.state == 6) {
// current media has finished playback
onEnd();
}
checkStatusTimer=setTimeout(function(){checkStatus()},1000);
};
function onOpening()
{
$('#play').button('option', {
label: 'pause',
icons: {
primary: 'ui-icon-pause'
}
});
document.getElementById("status").innerHTML = " Connecting...";
}
function onBuffering()
{
$('#play').button('option', {
label: 'pause',
icons: {
primary: 'ui-icon-pause'
}
});
document.getElementById("status").innerHTML = " Buffering...";
}
function onPlaying()
{
$('#play').button('option', {
label: 'pause',
icons: {
primary: 'ui-icon-pause'
}
});
document.getElementById("status").innerHTML = "";
}
function onEnd()
{
stop();
$('#play').button('option', {
label: 'play',
icons: {
primary: 'ui-icon-play'
}
});
$( "#subtitles" ).button( "option", "disabled", true );
}
function prepare(mrl)
{
//Wait for the player to be initialized before doing anything
vlc = document.getElementById("vlc");
var safeMRL = encodeURI(mrl);
setTimeout(function(){vlc.playlist.add(safeMRL)},350);
setTimeout(function(){play()},500);
setTimeout(function(){checkStatus()},500);
};
function play()
{
vlc.playlist.play();
vlc.video.deinterlace.enable("blend");
//if (relPosTimer_is_on!=1)
//{
relPosTimer_is_on=1;
showRelPos();
//}
};
function showRelPos()
{
if (relPosTimer_is_on=1)
{
if (vlc.input.position>=0 && vlc.input.position<=1 && user_is_dragging==0)
{
$('#slider').slider( "option", "value", vlc.input.position );
}
relpos=setTimeout(function(){showRelPos()},250);
}
};
function stop()
{
clearTimeout(relpos);
clearTimeout(checkStatusTimer);
relPosTimer_is_on=0;
vlc.playlist.stop();
vlc.subtitle.track = 0;
$('#slider').slider( "option", "value", 0 );
$( "#subtitles" ).button( "option", "label", "Subtitles");
};
function togglePause()
{
vlc.playlist.togglePause();
};
function toggleMute()
{
vlc.audio.toggleMute();
};
function getBrowserWidth()
{
xWidth = null;
if(window.screen != null)
xWidth = window.screen.availWidth;
if(window.innerWidth != null)
xWidth = window.innerWidth;
if(document.body != null) {
if ((typeof document.compatMode != "undefined")
&& (document.compatMode == "CSS1Compat")) {
// in Strict mode
xWidth = document.documentElement.clientWidth;
}
else {
// Quirks mode
xWidth = document.body.clientWidth;
}
}
return xWidth;
};
function getBrowserHeight() {
xHeight = null;
if(window.screen != null)
xHeight = window.screen.availHeight;
if(window.innerHeight != null)
xHeight = window.innerHeight;
if(document.body != null){
if ((typeof document.compatMode != "undefined")
&& (document.compatMode == "CSS1Compat")) {
// in Strict mode
xHeight = document.documentElement.clientHeight;
}
else {
// Quirks mode
xHeight = document.body.clientHeight;
}
}
return xHeight;
};
function setFullscreenSize()
{
var height = getBrowserHeight() - 8;
var width = getBrowserWidth() - 8;
$( "#replaymePlayer" ).dialog( "option", "position", ['left','top'] );
$( "#replaymePlayer" ).dialog( "option", "height", height );
$( "#replaymePlayer" ).dialog( "option", "width", width );
setPlayerSize();
checkVideoSizeTimer=setTimeout(function(){setFullscreenSize()},1000);
}
function toggleFullscreen()
{
vlc.video.toggleFullscreen();
if (vlc.video.fullscreen == true)
{
previousHeight = $( "#replaymePlayer" ).dialog( "option", "height" );
previousWidth = $( "#replaymePlayer" ).dialog( "option", "width" );
setFullscreenSize();
}
else if (vlc.video.fullscreen == false)
{
clearTimeout(checkVideoSizeTimer);
$( "#replaymePlayer" ).dialog( "option", "height", previousHeight );
$( "#replaymePlayer" ).dialog( "option", "width", previousWidth );
setPlayerSize();
$( "#replaymePlayer" ).dialog( "option", "position", 'center' );
}
};
function changeSubtitles()
{
if (vlc.subtitle.track == vlc.subtitle.count - 1)
{
vlc.subtitle.track = 0;
}
else
{
vlc.subtitle.track = vlc.subtitle.track + 1;
}
$( "#subtitles" ).button( "option", "label", "Subtitles: " + vlc.subtitle.description(vlc.subtitle.track) );
};
function seek()
{
vlc.input.position = $('#slider').slider( "option", "value" );
user_is_dragging=0;
};
function setPlayerSize()
{
var width = 0, height = 0;
width = $( "#replaymePlayer" ).dialog( "option", "width" );
height = $( "#replaymePlayer" ).dialog( "option", "height" );
width = width - 25;
height = height - 130;
if (document.getElementById("vlc") != null)
{
document.getElementById("vlc").style.height = height + "px";
document.getElementById("vlc").style.width = width + "px";
}
};
//JQuery Stuff
$(function() {
// Open Video Player link
$('#open_player_link').click(function(){
$('#replaymePlayer').dialog('open');
return false;
});
//Video Player window
$("#replaymePlayer").dialog({
autoOpen: false,
height: 620,
width: 645,
modal: true,
beforeclose: function(event, ui) {
onEnd();
$('#mute').button({
label: 'mute',
icons: {
primary: 'ui-icon-volume-on'
}
});
$( "#subtitles" ).button( "option", "label", "Subtitles");
},
resizeStart: function(event, ui) {
document.getElementById("vlc").style.height = "70%";
document.getElementById("vlc").style.width = "100%";},
resizeStop: function(event, ui) { setPlayerSize(); }
});
//Hover states on the Video Player link
$('#open_player_link, ul#icons li').hover(
function() { $(this).addClass('ui-state-hover'); },
function() { $(this).removeClass('ui-state-hover'); }
);
//Player toolbar:
$('#play').button({
text: false,
icons: {
primary: 'ui-icon-play'
}
})
.click(function() {
var options;
if ($(this).text() == 'play') {
play();
options = {
label: 'pause',
icons: {
primary: 'ui-icon-pause'
}
};
} else {
togglePause();
options = {
label: 'play',
icons: {
primary: 'ui-icon-play'
}
};
}
$(this).button('option', options);
});
$('#stop').button({
text: false,
icons: {
primary: 'ui-icon-stop'
}
})
.click(function() {
stop();
$('#play').button('option', {
label: 'play',
icons: {
primary: 'ui-icon-play'
}
});
});
$('#mute').button({
text: false,
icons: {
primary: 'ui-icon-volume-on'
}
})
.click(function() {
var options;
if ($(this).text() == 'mute on') {
toggleMute();
options = {
label: 'mute off',
icons: {
primary: 'ui-icon-volume-on'
}
};
} else {
toggleMute();
options = {
label: 'mute on',
icons: {
primary: 'ui-icon-volume-off'
}
};
}
$(this).button('option', options);
});
$('#fullscreen').button({
text: false,
icons: {
primary: 'ui-icon-arrow-4-diag'
}
})
.click(function() {
toggleFullscreen();
});
$('#subtitles').button({
icons: {primary: 'ui-icon-grip-dotted-horizontal'},
disabled: true
})
.click(function() {
changeSubtitles();
});
//Seeking bar
$('#slider').slider({
start: function(event, ui) {user_is_dragging=1;},
stop: function(event, ui) {seek();},
animate: true,
min: 0,
max: 1,
step: 0.000125
});
});