(function($){$.fn.media=function(options,f1,f2){return this.each(function(){if(typeof options=="function"){f2=f1;f1=options;options={}}var o=getSettings(this,options);if(typeof f1=="function"){f1(this,o)}var r=getTypesRegExp();var m=r.exec(o.src)||[""];o.type?m[0]=o.type:m.shift();for(var i=0;i<m.length;i++){fn=m[i].toLowerCase();if(isDigit(fn[0])){fn="fn"+fn}if(!$.fn.media[fn]){continue}var player=$.fn.media[fn+"_player"];if(!o.params){o.params={}}if(player){var num=player.autoplayAttr=="autostart";o.params[player.autoplayAttr||"autoplay"]=num?(o.autoplay?1:0):o.autoplay?true:false}var $div=$.fn.media[fn](this,o);$div.css("backgroundColor",o.bgColor).width(o.width);if(typeof f2=="function"){f2(this,$div[0],o,player.name)}break}})};$.fn.media.mapFormat=function(format,player){if(!format||!player||!$.fn.media.defaults.players[player]){return}format=format.toLowerCase();if(isDigit(format[0])){format="fn"+format}$.fn.media[format]=$.fn.media[player];$.fn.media[format+"_player"]=$.fn.media.defaults.players[player]};$.fn.media.defaults={width:400,height:400,autoplay:0,bgColor:"#ffffff",params:{wmode:"transparent"},attrs:{},flvKeyName:"file",flashvars:{},flashVersion:"7",expressInstaller:null,flvPlayer:"mediaplayer.swf",mp3Player:"mediaplayer.swf",silverlight:{inplaceInstallPrompt:"true",isWindowless:"true",framerate:"24",version:"0.9",onError:null,onLoad:null,initParams:null,userContext:null}};$.fn.media.defaults.players={flash:{name:"flash",types:"flv,mp3,swf",oAttrs:{classid:"clsid:d27cdb6e-ae6d-11cf-96b8-444553540000",type:"application/x-oleobject",codebase:"http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version="+$.fn.media.defaults.flashVersion},eAttrs:{type:"application/x-shockwave-flash",pluginspage:"http://www.adobe.com/go/getflashplayer"}},quicktime:{name:"quicktime",types:"aif,aiff,aac,au,bmp,gsm,mov,mid,midi,mpg,mpeg,mp4,m4a,psd,qt,qtif,qif,qti,snd,tif,tiff,wav,3g2,3gp",oAttrs:{classid:"clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B",codebase:"http://www.apple.com/qtactivex/qtplugin.cab"},eAttrs:{pluginspage:"http://www.apple.com/quicktime/download/"}},realplayer:{name:"real",types:"ra,ram,rm,rpm,rv,smi,smil",autoplayAttr:"autostart",oAttrs:{classid:"clsid:CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA"},eAttrs:{type:"audio/x-pn-realaudio-plugin",pluginspage:"http://www.real.com/player/"}},winmedia:{name:"winmedia",types:"asf,avi,wma,wmv",autoplayAttr:"autostart",oUrl:"url",oAttrs:{classid:"clsid:6BF52A52-394A-11d3-B153-00C04F79FAA6",type:"application/x-oleobject"},eAttrs:{type:$.browser.mozilla&&isFirefoxWMPPluginInstalled()?"application/x-ms-wmp":"application/x-mplayer2",pluginspage:"http://www.microsoft.com/Windows/MediaPlayer/"}},iframe:{name:"iframe",types:"html,pdf"},silverlight:{name:"silverlight",types:"xaml"}};function isFirefoxWMPPluginInstalled(){var plugs=navigator.plugins;for(i=0;i<plugs.length;i++){var plugin=plugs[i];if(plugin.filename=="np-mswmp.dll"){return true}}return false}var counter=1;for(var player in $.fn.media.defaults.players){var types=$.fn.media.defaults.players[player].types;$.each(types.split(","),function(i,o){if(isDigit(o[0])){o="fn"+o}$.fn.media[o]=$.fn.media[player]=getGenerator(player);$.fn.media[o+"_player"]=$.fn.media.defaults.players[player]})}function getTypesRegExp(){var types="";for(var player in $.fn.media.defaults.players){if(types.length){types+=","}types+=$.fn.media.defaults.players[player].types}return new RegExp("\\.("+types.replace(/,/g,"|")+")$\\b")}function getGenerator(player){return function(el,options){return generate(el,options,player)}}function isDigit(c){return"0123456789".indexOf(c)>-1}function getSettings(el,options){options=options||{};var $el=$(el);var cls=el.className||"";var meta=$.metadata?$el.metadata():$.meta?$el.data():{};meta=meta||{};var w=meta.width||parseInt(((cls.match(/w:(\d+)/)||[])[1]||0));var h=meta.height||parseInt(((cls.match(/h:(\d+)/)||[])[1]||0));if(w){meta.width=w}if(h){meta.height=h}if(cls){meta.cls=cls}var a=$.fn.media.defaults;var b=options;var c=meta;var p={params:{bgColor:options.bgColor||$.fn.media.defaults.bgColor}};var opts=$.extend({},a,b,c);$.each(["attrs","params","flashvars","silverlight"],function(i,o){opts[o]=$.extend({},p[o]||{},a[o]||{},b[o]||{},c[o]||{})});if(typeof opts.caption=="undefined"){opts.caption=$el.text()}opts.src=opts.src||$el.attr("href")||$el.attr("src")||"unknown";return opts}$.fn.media.swf=function(el,opts){if(!window.SWFObject&&!window.swfobject){if(opts.flashvars){var a=[];for(var f in opts.flashvars){a.push(f+"="+opts.flashvars[f])}if(!opts.params){opts.params={}}opts.params.flashvars=a.join("&")}return generate(el,opts,"flash")}var id=el.id?(' id="'+el.id+'"'):"";var cls=opts.cls?(' class="'+opts.cls+'"'):"";var $div=$("<div"+id+cls+">");if(window.swfobject){$(el).after($div).appendTo($div);if(!el.id){el.id="movie_player_"+counter++}swfobject.embedSWF(opts.src,el.id,opts.width,opts.height,opts.flashVersion,opts.expressInstaller,opts.flashvars,opts.params,opts.attrs)}else{$(el).after($div).remove();var so=new SWFObject(opts.src,"movie_player_"+counter++,opts.width,opts.height,opts.flashVersion,opts.bgColor);if(opts.expressInstaller){so.useExpressInstall(opts.expressInstaller)}for(var p in opts.params){if(p!="bgColor"){so.addParam(p,opts.params[p])}}for(var f in opts.flashvars){so.addVariable(f,opts.flashvars[f])}so.write($div[0])}if(opts.caption){$("<div>").appendTo($div).html(opts.caption)}return $div};$.fn.media.flv=$.fn.media.mp3=function(el,opts){var src=opts.src;var player=/\.mp3\b/i.test(src)?$.fn.media.defaults.mp3Player:$.fn.media.defaults.flvPlayer;var key=opts.flvKeyName;src=encodeURIComponent(src);opts.src=player;opts.src=opts.src+"?"+key+"="+(src);var srcObj={};srcObj[key]=src;opts.flashvars=$.extend({},srcObj,opts.flashvars);return $.fn.media.swf(el,opts)};$.fn.media.xaml=function(el,opts){if(!window.Sys||!window.Sys.Silverlight){if($.fn.media.xaml.warning){return}$.fn.media.xaml.warning=1;alert("You must include the Silverlight.js script.");return}var props={width:opts.width,height:opts.height,background:opts.bgColor,inplaceInstallPrompt:opts.silverlight.inplaceInstallPrompt,isWindowless:opts.silverlight.isWindowless,framerate:opts.silverlight.framerate,version:opts.silverlight.version};var events={onError:opts.silverlight.onError,onLoad:opts.silverlight.onLoad};var id1=el.id?(' id="'+el.id+'"'):"";var id2=opts.id||"AG"+counter++;var cls=opts.cls?(' class="'+opts.cls+'"'):"";var $div=$("<div"+id1+cls+">");$(el).after($div).remove();Sys.Silverlight.createObjectEx({source:opts.src,initParams:opts.silverlight.initParams,userContext:opts.silverlight.userContext,id:id2,parentElement:$div[0],properties:props,events:events});if(opts.caption){$("<div>").appendTo($div).html(opts.caption)}return $div};function generate(el,opts,player){var $el=$(el);var o=$.fn.media.defaults.players[player];if(player=="iframe"){var o=$('<iframe width="'+opts.width+'" height="'+opts.height+'" >');o.attr("src",opts.src);o.css("backgroundColor",o.bgColor)}else{if($.browser.msie){var a=['<object width="'+opts.width+'" height="'+opts.height+'" '];for(var key in opts.attrs){a.push(key+'="'+opts.attrs[key]+'" ')}for(var key in o.oAttrs||{}){var v=o.oAttrs[key];if(key=="codebase"&&window.location.protocol=="https"){v=v.replace("http","https")}a.push(key+'="'+v+'" ')}a.push("></object>");var p=['<param name="'+(o.oUrl||"src")+'" value="'+opts.src+'">'];for(var key in opts.params){p.push('<param name="'+key+'" value="'+opts.params[key]+'">')}var o=document.createElement(a.join(""));for(var i=0;i<p.length;i++){o.appendChild(document.createElement(p[i]))}}else{var a=['<embed width="'+opts.width+'" height="'+opts.height+'" style="display:block"'];if(opts.src){a.push(' src="'+opts.src+'" ')}for(var key in opts.attrs){a.push(key+'="'+opts.attrs[key]+'" ')}for(var key in o.eAttrs||{}){a.push(key+'="'+o.eAttrs[key]+'" ')}for(var key in opts.params){if(key!="wmode"){a.push(key+'="'+opts.params[key]+'" ')}}a.push("></embed>")}}var id=el.id?(' id="'+el.id+'"'):"";var cls=opts.cls?(' class="'+opts.cls+'"'):"";var $div=$("<div"+id+cls+">");$el.after($div).remove();($.browser.msie||player=="iframe")?$div.append(o):$div.html(a.join(""));if(opts.caption){$("<div>").appendTo($div).html(opts.caption)}return $div}})(jQuery);
