6 BlergMedia.media_init = function() {
7 var e = document.createElement('audio');
9 BlergMedia.has_audio = true;
10 if (e.canPlayType('audio/mpeg; codecs="mp3"')) {
11 BlergMedia.has_mp3 = true;
12 BlergMedia.audioExtensions.push('mp3');
14 if (e.canPlayType('audio/ogg; codecs="vorbis"')) {
15 BlergMedia.has_vorbis = true;
16 BlergMedia.audioExtensions.push('ogg', 'oga');
18 if (e.canPlayType('audio/wav')) {
19 BlergMedia.has_wav = true;
20 BlergMedia.audioExtensions.push('wav');
22 BlergMedia.audioTypeRegex = new RegExp("audio:(" + BlergMedia.audioExtensions.join('|') + ")$");
23 BlergMedia.audioExtensionRegex = new RegExp("\\.(" + BlergMedia.audioExtensions.join('|') + ")$");
26 var e = document.createElement('video');
27 if (!!e.canPlayType) {
28 BlergMedia.has_video = true;
29 if (e.canPlayType('video/mp4; codecs="avc"')) {
30 BlergMedia.has_h264 = true;
31 BlergMedia.videoExtensions.push('mp4');
33 if (e.canPlayType('video/ogg; codecs="theora, vorbis"')) {
34 BlergMedia.has_theora = true;
35 BlergMedia.videoExtensions.push('ogv');
37 if (e.canPlayType('video/webm; codecs="vp8, vorbis"')) {
38 BlergMedia.has_webm = true;
39 BlergMedia.videoExtensions.push('webm');
41 BlergMedia.videoTypeRegex = new RegExp("video:(" + BlergMedia.videoExtensions.join('|') + ")$");
42 BlergMedia.videoExtensionRegex = new RegExp("\\.(" + BlergMedia.videoExtensions.join('|') + ")$");
46 BlergMedia.play_audio = function() {
47 var e = event.target.parentElement;
48 var url = event.target.parentElement.href;
49 var audio_element = document.createElement('audio');
50 audio_element.src = url;
51 audio_element.controls = 1;
52 audio_element.autoplay = 1;
53 e.parentElement.replaceChild(audio_element, e);
56 BlergMedia.play_video = function() {
57 var e = event.target.parentElement;
58 var url = event.target.parentElement.href;
59 var p = document.createElement('p');
60 var video_element = document.createElement('video');
61 video_element.src = url;
62 video_element.controls = 1;
63 video_element.autoplay = 1;
64 p.appendChild(video_element);
65 e.parentElement.replaceChild(video_element, e);
68 BlergMedia.process = function(data) {
69 if (BlergMedia.audioExtensionRegex.test(data.url) ||
70 (data.extra && BlergMedia.audioTypeRegex.test(data.extra))) {
71 data.widget = '<a href="' + data.url + '" onclick="BlergMedia.play_audio(); return false"><img src="/images/play.png"></a>';
72 } else if (BlergMedia.videoExtensionRegex.test(data.url) ||
73 (data.extra && BlergMedia.videoTypeRegex.test(data.extra))) {
74 data.widget = '<a href="' + data.url + '" onclick="BlergMedia.play_video(); return false"><img src="/images/play.png"></a>';
80 window.addEventListener('load', BlergMedia.media_init, false);