popsu-d7/sites/all/modules/lightbox2/js/lightbox_video.js

213 lines
7.7 KiB
JavaScript

/* $Id: lightbox_video.js,v 1.1.4.20 2010/09/21 17:57:22 snpower Exp $ */
/**
* Lightbox video
* @author
* Stella Power, <http://drupal.org/user/66894>
*/
var Lightvideo;
// start jQuery block
(function ($) {
Lightvideo = {
// startVideo()
startVideo: function (href) {
if (Lightvideo.checkKnownVideos(href)) {
return;
}
else if (href.match(/\.mov$/i)) {
if (navigator.plugins && navigator.plugins.length) {
Lightbox.modalHTML ='<object id="qtboxMovie" type="video/quicktime" codebase="http://www.apple.com/qtactivex/qtplugin.cab" data="'+href+'" width="'+Lightbox.modalWidth+'" height="'+Lightbox.modalHeight+'"><param name="allowFullScreen" value="true"></param><param name="src" value="'+href+'" /><param name="scale" value="aspect" /><param name="controller" value="true" /><param name="autoplay" value="true" /><param name="bgcolor" value="#000000" /><param name="enablejavascript" value="true" /></object>';
} else {
Lightbox.modalHTML = '<object classid="clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B" codebase="http://www.apple.com/qtactivex/qtplugin.cab" width="'+Lightbox.modalWidth+'" height="'+Lightbox.modalHeight+'" id="qtboxMovie"><param name="allowFullScreen" value="true"></param><param name="src" value="'+href+'" /><param name="scale" value="aspect" /><param name="controller" value="true" /><param name="autoplay" value="true" /><param name="bgcolor" value="#000000" /><param name="enablejavascript" value="true" /></object>';
}
}
else if (href.match(/\.wmv$/i) || href.match(/\.asx$/i)) {
Lightbox.modalHTML = '<object NAME="Player" WIDTH="'+Lightbox.modalWidth+'" HEIGHT="'+Lightbox.modalHeight+'" align="left" hspace="0" type="application/x-oleobject" CLASSID="CLSID:6BF52A52-394A-11d3-B153-00C04F79FAA6"><param name="allowFullScreen" value="true"></param><param NAME="URL" VALUE="'+href+'"></param><param NAME="AUTOSTART" VALUE="true"></param><param name="showControls" value="true"></param><embed WIDTH="'+Lightbox.modalWidth+'" HEIGHT="'+Lightbox.modalHeight+'" align="left" hspace="0" SRC="'+href+'" TYPE="application/x-oleobject" AUTOSTART="false"></embed></object>';
}
else {
Lightbox.videoId = href;
variables = '';
if (!href.match(/\.swf$/i)) {
href = Lightbox.flvPlayer + '?file=' + href;
if (Lightbox.flvFlashvars.length) {
variables = Lightbox.flvFlashvars;
}
}
Lightvideo.createEmbed(href, "flvplayer", "#ffffff", variables);
}
},
// createEmbed()
createEmbed: function(href, id, color, variables) {
var bgcolor = 'bgcolor="' + color + '"';
var flashvars = '';
if (variables) {
flashvars = 'flashvars="' + variables + '"';
}
Lightbox.modalHTML = '<embed type="application/x-shockwave-flash" ' +
'src="' + href + '" ' +
'id="' + id + '" name="' + id + '" ' + bgcolor + ' ' +
'quality="high" wmode="transparent" ' + flashvars + ' ' +
'height="' + Lightbox.modalHeight + '" ' +
'width="' + Lightbox.modalWidth + '" ' +
'allowfullscreen="true" ' +
'></embed>';
},
// checkKnownVideos()
checkKnownVideos: function(href) {
if (Lightvideo.checkYouTubeVideo(href) || Lightvideo.checkGoogleVideo(href) ||
Lightvideo.checkMySpaceVideo(href) || Lightvideo.checkLiveVideo(href) ||
Lightvideo.checkMetacafeVideo(href) ||
Lightvideo.checkIFilmSpikeVideo(href)
) {
return true;
}
return false;
},
// checkYouTubeVideo()
checkYouTubeVideo: function(href) {
var patterns = [
'youtube.com/v/([^"&]+)',
'youtube.com/watch\\?v=([^"&]+)',
'youtube.com/\\?v=([^"&]+)'
];
for (var i = 0; i < patterns.length; i++) {
var pattern = new RegExp(patterns[i], "i");
var results = pattern.exec(href);
if (results !== null) {
Lightbox.videoId = results[1];
var href = "http://www.youtube.com/v/"+Lightbox.videoId;
var variables = 'fs=1';
if (Lightbox.flvFlashvars.length) {
variables = variables + '&' + Lightbox.flvFlashvars;
href = href + '&' + variables;
}
Lightvideo.createEmbed(href, "flvvideo", "#ffffff", variables);
return true;
}
}
return false;
},
// checkGoogleVideo()
checkGoogleVideo: function(href) {
var patterns = [
'http://video.google.[a-z]{2,4}/googleplayer.swf\\?docId=(-?\\d*)',
'http://video.google.[a-z]{2,4}/videoplay\\?docid=([^&]*)&',
'http://video.google.[a-z]{2,4}/videoplay\\?docid=(.*)'
];
for (var i = 0; i < patterns.length; i++) {
var pattern = new RegExp(patterns[i], "i");
var results = pattern.exec(href);
if (results !== null) {
Lightbox.videoId = results[1];
var href = "http://video.google.com/googleplayer.swf?docId="+Lightbox.videoId+"&hl=en";
var variables = 'fs=true';
if (Lightbox.flvFlashvars.length) {
variables = variables + '&' + Lightbox.flvFlashvars;
href = href + '&' + variables;
}
Lightvideo.createEmbed(href, "flvvideo", "#ffffff", variables);
return true;
}
}
return false;
},
// checkMetacafeVideo()
checkMetacafeVideo: function(href) {
var patterns = [
'metacafe.com/watch/(\.[^/]*)/(\.[^/]*)/',
'metacafe.com/watch/(\.[^/]*)/(\.*)',
'metacafe.com/fplayer/(\.[^/]*)/(\.[^.]*).'
];
for (var i = 0; i < patterns.length; i++) {
var pattern = new RegExp(patterns[i], "i");
var results = pattern.exec(href);
if (results !== null) {
Lightbox.videoId = results[1];
Lightvideo.createEmbed("http://www.metacafe.com/fplayer/"+Lightbox.videoId+"/.swf", "flvvideo", "#ffffff");
return true;
}
}
return false;
},
// checkIFilmSpikeVideo()
checkIFilmSpikeVideo: function(href) {
var patterns = [
'spike.com/video/[^/&"]*?/(\\d+)',
'ifilm.com/video/[^/&"]*?/(\\d+)',
'spike.com/video/([^/&"]*)',
'ifilm.com/video/([^/&"]*)'
];
for (var i = 0; i < patterns.length; i++) {
var pattern = new RegExp(patterns[i], "i");
var results = pattern.exec(href);
if (results !== null) {
Lightbox.videoId = results[1];
Lightvideo.createEmbed("http://www.spike.com/efp", "flvvideo", "#000", "flvbaseclip="+Lightbox.videoId+"&amp;");
return true;
}
}
return false;
},
// checkMySpaceVideo()
checkMySpaceVideo: function(href) {
var patterns = [
'src="myspace.com/index.cfm\\?fuseaction=vids.individual&videoid=([^&"]+)',
'myspace.com/index.cfm\\?fuseaction=vids.individual&videoid=([^&"]+)',
'src="myspacetv.com/index.cfm\\?fuseaction=vids.individual&videoid=([^&"]+)"',
'myspacetv.com/index.cfm\\?fuseaction=vids.individual&videoid=([^&"]+)'
];
for (var i = 0; i < patterns.length; i++) {
var pattern = new RegExp(patterns[i], "i");
var results = pattern.exec(href);
if (results !== null) {
Lightbox.videoId = results[1];
Lightvideo.createEmbed("http://lads.myspace.com/videos/vplayer.swf", "flvvideo", "#ffffff", "m="+Lightbox.videoId);
return true;
}
}
return false;
},
// checkLiveVideo()
checkLiveVideo: function(href) {
var patterns = [
'livevideo.com/flvplayer/embed/([^"]*)"',
'livevideo.com/video/[^/]*?/([^/]*)/',
'livevideo.com/video/([^/]*)/'
];
for (var i = 0; i < patterns.length; i++) {
var pattern = new RegExp(patterns[i], "i");
var results = pattern.exec(href);
if (results !== null) {
Lightbox.videoId = results[1];
Lightvideo.createEmbed("http://www.livevideo.com/flvplayer/embed/"+Lightbox.videoId, "flvvideo", "#ffffff");
return true;
}
}
return false;
}
};
//End jQuery block
}(jQuery));