/*
 * Examples and documentation at: http://malsup.com/jquery/media/
 * Copyright (c) 2007 M. Alsup
 * Dual licensed under the MIT and GPL licenses:
 * http://www.opensource.org/licenses/mit-license.php
 * http://www.gnu.org/licenses/gpl.html
 * @author: M. Alsup
 */

(function($){$.fn.media=function(options){return this.each(function(){var o=getSettings(this,options);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={};var num=player.autoplayAttr=='autostart';o.params[player.autoplayAttr||'autoplay']=num?(o.autoplay?1:0):o.autoplay?true:false;return $.fn.media[fn](this,o);}});};$.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.defaults={preferMeta:1,autoplay:0,bgColor:'',params:{},attrs:{},flashvars:{},flashVersion:'7',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:{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:{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:{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:{types:'asf,avi,wma,wmv',autoplayAttr:'autostart',oUrl:'url',oAttrs:{classid:'clsid:6BF52A52-394A-11d3-B153-00C04F79FAA6',type:'application/x-oleobject'},eAttrs:{type:'application/x-mplayer2',pluginspage:'http://www.microsoft.com/Windows/MediaPlayer/'}},iframe:{types:'html,pdf'},silverlight:{types:'xaml'}};var counter=0;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){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=$.meta?$el.data():{};var w=meta.width||((cls.match(/w:(\d+)/)||[])[1]);var h=meta.height||((cls.match(/h:(\d+)/)||[])[1]);if(w)meta.width=w;if(h)meta.height=h;if(cls)meta.cls=cls;if(typeof meta.caption=='undefined')meta.caption=$el.text();var a=$.fn.media.defaults;var b=$.meta&&$.fn.media.defaults.preferMeta?options:meta;var c=b==options?meta:options;var p={params:{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]||{});});opts.src=opts.src||$el.attr('href')||$el.attr('src')||'unknown';return opts;};$.fn.media.swf=function(el,opts){if(typeof SWFObject=='undefined'){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 $el=$(el);var id=el.id?(' id="'+el.id+'"'):'';var $div=$('<div'+id+' class="'+opts.cls+'">');$el.after($div).remove();var so=new SWFObject(opts.src,'movie_player_'+counter++,opts.width,opts.height,opts.flashVersion,opts.bgColor);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);};$.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;opts.src=player;opts.src=opts.src+'?file='+src;opts.flashvars=$.extend({},{file:src},opts.flashvars);$.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);};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);}
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||{})
a.push(key+'="'+o.oAttrs[key]+'" ');a.push('></ob'+'ject'+'>');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+'"'];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)
a.push(key+'="'+opts.params[key]+'" ');a.push('></em'+'bed'+'>');}
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);};})(jQuery);