(function(C) { C.fn.media = function(L, K, M) { return this.each(function() { if (typeof L == "function") { M = K; K = L; L = {} } var T = G(this, L); if (typeof K == "function") { K(this, T) } var S = I(); var N = S.exec(T.src) || [""]; T.type ? N[0] = T.type : N.shift(); for (var R = 0; R < N.length; R++) { fn = N[R].toLowerCase(); if (E(fn[0])) { fn = "fn" + fn } if (!C.fn.media[fn]) { continue } var Q = C.fn.media[fn + "_player"]; if (!T.params) { T.params = {} } if (Q) { var P = Q.autoplayAttr == "autostart"; T.params[Q.autoplayAttr || "autoplay"] = P ? (T.autoplay ? 1 : 0) : T.autoplay ? true : false } var O = C.fn.media[fn](this, T); if (T.bgColor) { O.css("backgroundColor", T.bgColor).width(T.width) } if (typeof M == "function") { M(this, O[0], T, Q.name) } break } }) }; C.fn.media.mapFormat = function(L, K) { if (!L || !K || !C.fn.media.defaults.players[K]) { return } L = L.toLowerCase(); if (E(L[0])) { L = "fn" + L } C.fn.media[L] = C.fn.media[K]; C.fn.media[L + "_player"] = C.fn.media.defaults.players[K] }; C.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} }; C.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=" + C.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: C.browser.mozilla && J() ? "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 J() { var K = navigator.plugins; for (i = 0; i < K.length; i++) { var L = K[i]; if (L.filename == "np-mswmp.dll") { return true } } return false } var A = 1; for (var H in C.fn.media.defaults.players) { var D = C.fn.media.defaults.players[H].types; C.each(D.split(","), function(K, L) { if (E(L[0])) { L = "fn" + L } C.fn.media[L] = C.fn.media[H] = B(H); C.fn.media[L + "_player"] = C.fn.media.defaults.players[H] }) } function I() { var L = ""; for (var K in C.fn.media.defaults.players) { if (L.length) { L += "," } L += C.fn.media.defaults.players[K].types } return new RegExp("\\.(" + L.replace(/,/g, "|") + ")$\\b") } function B(K) { return function(M, L) { return F(M, L, K) } } function E(K) { return "0123456789".indexOf(K) > -1 } function G(M, V) { V = V || {}; var U = C(M); var T = M.className || ""; var S = C.metadata ? U.metadata() : C.meta ? U.data() : {}; S = S || {}; var R = S.width || parseInt(((T.match(/w:(\d+)/) || [])[1] || 0)); var N = S.height || parseInt(((T.match(/h:(\d+)/) || [])[1] || 0)); if (R) { S.width = R } if (N) { S.height = N } if (T) { S.cls = T } var Q = C.fn.media.defaults; var P = V; var O = S; var L = { params: { bgColor: V.bgColor || C.fn.media.defaults.bgColor} }; var K = C.extend({}, Q, P, O); C.each(["attrs", "params", "flashvars", "silverlight"], function(W, X) { K[X] = C.extend({}, L[X] || {}, Q[X] || {}, P[X] || {}, O[X] || {}) }); if (typeof K.caption == "undefined") { K.caption = U.text() } K.src = K.src || U.attr("href") || U.attr("src") || "unknown"; return K } C.fn.media.swf = function(O, K) { if (!window.SWFObject && !window.swfobject) { if (K.flashvars) { var R = []; for (var P in K.flashvars) { R.push(P + "=" + K.flashvars[P]) } if (!K.params) { K.params = {} } K.params.flashvars = R.join("&") } return F(O, K, "flash") } var M = O.id ? (' id="' + O.id + '"') : ""; var S = K.cls ? (' class="' + K.cls + '"') : ""; var Q = C("<div" + M + S + ">"); if (window.swfobject) { C(O).after(Q).appendTo(Q); if (!O.id) { O.id = "movie_player_" + A++ } swfobject.embedSWF(K.src, O.id, K.width, K.height, K.flashVersion, K.expressInstaller, K.flashvars, K.params, K.attrs) } else { C(O).after(Q).remove(); var N = new SWFObject(K.src, "movie_player_" + A++, K.width, K.height, K.flashVersion, K.bgColor); if (K.expressInstaller) { N.useExpressInstall(K.expressInstaller) } for (var L in K.params) { if (L != "bgColor") { N.addParam(L, K.params[L]) } } for (var P in K.flashvars) { N.addVariable(P, K.flashvars[P]) } N.write(Q[0]) } if (K.caption) { C("<div>").appendTo(Q).html(K.caption) } return Q }; C.fn.media.flv = C.fn.media.mp3 = function(N, O) { var P = O.src; var M = /\.mp3\b/i.test(P) ? C.fn.media.defaults.mp3Player : C.fn.media.defaults.flvPlayer; var L = O.flvKeyName; P = encodeURIComponent(P); O.src = M; O.src = O.src + "?" + L + "=" + (P); var K = {}; K[L] = P; O.flashvars = C.extend({}, K, O.flashvars); return C.fn.media.swf(N, O) }; C.fn.media.xaml = function(Q, R) { if (!window.Sys || !window.Sys.Silverlight) { if (C.fn.media.xaml.warning) { return } C.fn.media.xaml.warning = 1; alert("You must include the Silverlight.js script."); return } var P = { width: R.width, height: R.height, background: R.bgColor, inplaceInstallPrompt: R.silverlight.inplaceInstallPrompt, isWindowless: R.silverlight.isWindowless, framerate: R.silverlight.framerate, version: R.silverlight.version }; var N = { onError: R.silverlight.onError, onLoad: R.silverlight.onLoad }; var O = Q.id ? (' id="' + Q.id + '"') : ""; var M = R.id || "AG" + A++; var L = R.cls ? (' class="' + R.cls + '"') : ""; var K = C("<div" + O + L + ">"); C(Q).after(K).remove(); Sys.Silverlight.createObjectEx({ source: R.src, initParams: R.silverlight.initParams, userContext: R.silverlight.userContext, id: M, parentElement: K[0], properties: P, events: N }); if (R.caption) { C("<div>").appendTo(K).html(R.caption) } return K }; function F(O, K, S) { var W = C(O); var N = C.fn.media.defaults.players[S]; if (S == "iframe") { var N = C('<iframe width="' + K.width + '" height="' + K.height + '" >'); N.attr("src", K.src); N.css("backgroundColor", N.bgColor) } else { if (C.browser.msie) { var R = ['<object width="' + K.width + '" height="' + K.height + '" ']; for (var T in K.attrs) { R.push(T + '="' + K.attrs[T] + '" ') } for (var T in N.oAttrs || {}) { var U = N.oAttrs[T]; if (T == "codebase" && window.location.protocol == "https") { U = U.replace("http", "https") } R.push(T + '="' + U + '" ') } R.push("></object>"); var M = ['<param name="' + (N.oUrl || "src") + '" value="' + K.src + '">']; for (var T in K.params) { M.push('<param name="' + T + '" value="' + K.params[T] + '">') } var N = document.createElement(R.join("")); for (var P = 0; P < M.length; P++) { N.appendChild(document.createElement(M[P])) } } else { var R = ['<embed width="' + K.width + '" height="' + K.height + '" style="display:block"']; if (K.src) { R.push(' src="' + K.src + '" ') } for (var T in K.attrs) { R.push(T + '="' + K.attrs[T] + '" ') } for (var T in N.eAttrs || {}) { R.push(T + '="' + N.eAttrs[T] + '" ') } for (var T in K.params) { if (T != "wmode") { R.push(T + '="' + K.params[T] + '" ') } } R.push("></embed>") } } var L = O.id ? (' id="' + O.id + '"') : ""; var V = K.cls ? (' class="' + K.cls + '"') : ""; var Q = C("<div" + L + V + ">"); W.after(Q).remove(); (C.browser.msie || S == "iframe") ? Q.append(N) : Q.html(R.join("")); if (K.caption) { C("<div>").appendTo(Q).html(K.caption) } return Q } })(jQuery);