/artissime/html/js/jquery.mb.mediaEmbedder.js
JavaScript | 202 lines | 162 code | 24 blank | 16 comment | 29 complexity | 614f3c8c68e8e34e90d88315ab18476e MD5 | raw file
Possible License(s): GPL-2.0
- /*******************************************************************************
- jquery.mb.components
- Copyright (c) 2001-2010. Matteo Bicocchi (Pupunzi); Open lab srl, Firenze - Italy
- email: info@pupunzi.com
- site: http://pupunzi.com
- Licences: MIT, GPL
- http://www.opensource.org/licenses/mit-license.php
- http://www.gnu.org/licenses/gpl.html
- ******************************************************************************/
- /*
- * jQuery.mb.components: mb.mediaEmbedder
- * version: 1.0- 23-gen-2010 - 55
- * Â 2001 - 2010 Matteo Bicocchi (pupunzi), Open Lab
- *
- */
- (function($){
- $.mb_videoEmbedder={
- name:"jquery.mb.videoEmbedder",
- version:1.0,
- author:"Matteo Bicocchi",
- defaults:{
- width:450,
- youtube:{
- showTitle:false
- }
- },
- regEx:/\[(.*?)\]/g,
- mb_setMovie:function(context,address,string){
- function findMovieAndEmbed(node, address,string) {
- var skip = 0;
- if(address.indexOf("&")!=-1) address=address.replace(/&/g,"&");
- if (node.nodeType == 3) {
- var pos = node.data.toUpperCase().indexOf(address);
- if (pos >= 0) {
- var embed = $('<span/>').addClass("mb_video");
- var middlebit = node.splitText(pos);
- middlebit.splitText(address.length);
- embed.append(string);
- middlebit.parentNode.replaceChild(embed.get(0), middlebit);
- skip = 1;
- }
- }
- else if (node.nodeType == 1 && node.childNodes && !/(script|style)/i.test(node.tagName)) {
- for (var i = 0; i < node.childNodes.length; ++i) {
- i += findMovieAndEmbed(node.childNodes[i], address.toUpperCase(),string);
- }
- }
- return skip;
- }
- return context.each(function() {
- findMovieAndEmbed(this, address.toUpperCase(), string);
- });
- },
- mb_embedMovies:function(opt){
- var context=$(this);
- this.options = {};
- $.extend (this.options, $.mb_videoEmbedder.defaults, opt);
- var movies= $(this).html().match($.mb_videoEmbedder.regEx);
- if(!movies) return;
- $(movies).each(function(i){
- var address=movies[i];
- var isYoutube= address.indexOf("youtube=http://")!=-1;
- var isVimeo= address.indexOf("vimeo=http://")!=-1;
- var isUstream= address.indexOf("ustream=http://")!=-1;
- var isLivestream= address.indexOf("livestream=http://")!=-1;
- var isFlickr= address.indexOf("flickr=http://")!=-1;
- var isVideo = isYoutube || isVimeo || isUstream || isLivestream || isFlickr;
- if(!isVideo) return;
- var stringToParse=address.replace(/\[/g,"").replace(/\]/g,"");
- var showTitle= !$.mb_videoEmbedder.defaults.youtube.showTitle? 0:1;
- var vidId=isYoutube?(stringToParse.match( /[\\?&]v=([^&#]*)/))[1]:
- isVimeo? (stringToParse.match(/\d+/))[0]:
- isUstream?(stringToParse.match(/\d+/))[0]:
- isFlickr?(stringToParse.match(/\d+/))[0]:
- isLivestream?(stringToParse.replace("livestream=http://www.livestream.com/","").toLowerCase()):
- null;
- var ratio=isYoutube?(showTitle==1?80.5:68):
- isVimeo?57.5:
- 65;
- var width=$.mb_videoEmbedder.defaults.width;
- var height= Math.ceil((width*ratio)/100);
- var path= isYoutube?"http://www.youtube.com/v/":
- isVimeo?"http://vimeo.com/moogaloop.swf?clip_id=":
- isUstream?"http://www.ustream.tv/flash/video/":
- isLivestream?"http://cdn.livestream.com/grid/LSPlayer.swf?channel=":
- isFlickr?"http://www.flickr.com/apps/video/stewart.swf?photo_id=":
- null;
- var param=isYoutube?"&fs=1&rel=0&hd=1&showsearch=0&showinfo="+showTitle :
- isVimeo?"&server=vimeo.com&show_title="+showTitle+"&show_byline=1&show_portrait=0&color=&fullscreen=1":
- isUstream?"?disabledComment=true&autoplay=false":
- isLivestream?"&color=0xe8e8e8&autoPlay=false&mute=false":
- "";
- var embedstring= '<object width="'+width+'" height="'+height+'">' +
- '<param name="movie" value="'+path+vidId+param+'">' +
- '<param name="allowFullScreen" value="true">' +
- '<param name="wmode" value="transparent">' +
- '<param name="allowscriptaccess" value="always">' +
- '<param name="flashvars" value="autoplay=false">' +
- '<embed src="'+path+vidId+param+'"' +
- ' type="application/x-shockwave-flash" ' +
- 'wmode="transparent" allowscriptaccess="always" ' +
- 'flashvars="autoplay=false"' +
- 'allowfullscreen="true" width="'+width+'" height="'+height+'">' +
- '</embed>' +
- '</object>';
- if(isVideo)
- $.mb_videoEmbedder.mb_setMovie(context,address,embedstring);
- });
- }
- };
- $.mb_audioEmbedder={
- name:"jquery.mb.videoEmbedder",
- version:1.0,
- author:"Matteo Bicocchi",
- playerPath:"media/player.swf",
- defaults:{
- width:300
- },
- regEx:/\[audio=(.*?)\]/g,
- mb_setAudio:function(context,pat,string){
- function findAudioAndEmbed(node, pat,string) {
- var skip = 0;
- if(pat.indexOf("&")!=-1) pat=pat.replace(/&/g,"&");
- if (node.nodeType == 3) {
- var pos = node.data.toUpperCase().indexOf(pat);
- if (pos >= 0) {
- var embed = $('<span/>').addClass("mb_audio");
- var middlebit = node.splitText(pos);
- middlebit.splitText(pat.length);
- embed.append(string);
- middlebit.parentNode.replaceChild(embed.get(0), middlebit);
- skip = 1;
- }
- }
- else if (node.nodeType == 1 && node.childNodes && !/(script|style)/i.test(node.tagName)) {
- for (var i = 0; i < node.childNodes.length; ++i) {
- i += findAudioAndEmbed(node.childNodes[i], pat.toUpperCase(),string);
- }
- }
- return skip;
- }
- return context.each(function() {
- findAudioAndEmbed(this, pat.toUpperCase(), string);
- });
- },
- mb_embedAudio:function(opt){
- var context=$(this);
- this.options = {};
- $.extend (this.options, $.mb_audioEmbedder.defaults, opt);
- var audiofiles= $(this).html().match($.mb_audioEmbedder.regEx);
- if(!audiofiles) return;
- $(audiofiles).each(function(i){
- var pat=audiofiles[i];
- var isAudio= pat.indexOf("audio=http://")!=-1;
- var params=pat.replace(/\[audio=/g,"").replace(/\]/g,"");
- var width=$.mb_audioEmbedder.defaults.width;
- var embedstring= '<object width="'+width+'" height="24" type="application/x-shockwave-flash"' +
- 'style="outline: medium none; visibility: visible;" ' +
- 'data="'+$.mb_audioEmbedder.playerPath+'" >' +
- '<param name="menu" value="false">'+
- '<param name="flashvars" value="soundFile='+params+'">'+
- '<param name="wmode" value="transparent">' +
- '<param name="allowscriptaccess" value="always">' +
- '<embed src="'+$.mb_audioEmbedder.playerPath+'" type="application/x-shockwave-flash" ' +
- 'wmode="transparent" allowscriptaccess="always" ' +
- 'width="'+width+'" height="24"' +
- 'flashvars="soundFile='+params+'">' +
- '</embed>' +
- '</object>';
- if(isAudio)
- $.mb_audioEmbedder.mb_setAudio(context,pat,embedstring);
- });
- }
- };
- $.fn.mb_embedMovies=$.mb_videoEmbedder.mb_embedMovies;
- $.fn.mb_embedAudio=$.mb_audioEmbedder.mb_embedAudio;
- })(jQuery);