Add post functionality
[blerg.git] / www / js / blergmedia.js
1 var BlergMedia = {
2     audioExtensions: [],
3     videoExtensions: []
4 };
5
6 function media_init() {
7     var e = document.createElement('audio');
8     if (!!e.canPlayType) {
9         BlergMedia.has_audio = true;
10         if (e.canPlayType('audio/mpeg; codecs="mp3"')) {
11             BlergMedia.has_mp3 = true;
12             BlergMedia.audioExtensions.push('mp3');
13         }
14         if (e.canPlayType('audio/ogg; codecs="vorbis"')) {
15             BlergMedia.has_vorbis = true;
16             BlergMedia.audioExtensions.push('ogg', 'oga');
17         }
18         if (e.canPlayType('audio/wav')) {
19             BlergMedia.has_wav = true;
20             BlergMedia.audioExtensions.push('wav');
21         }
22     }
23
24     var e = document.createElement('video');
25     if (!!e.canPlayType) {
26         BlergMedia.has_video = true;
27         if (e.canPlayType('video/mp4; codecs="avc"')) {
28             BlergMedia.has_h264 = true;
29             BlergMedia.videoExtensions.push('mp4');
30         }
31         if (e.canPlayType('video/ogg; codecs="theora, vorbis"')) {
32             BlergMedia.has_theora = true;
33             BlergMedia.videoExtensions.push('ogv');
34         }
35         if (e.canPlayType('video/webm; codecs="vp8, vorbis"')) {
36             BlergMedia.has_webm = true;
37             BlergMedia.videoExtensions.push('webm');
38         }
39     }
40 }
41
42 function play_audio() {
43     var e = event.target.parentElement;
44     var url = event.target.parentElement.href;
45     var audio_element = new Element('audio', {src: url, controls: 1, autoplay: 1});
46     e.replace(audio_element);
47 }
48
49 function play_video() {
50     var e = event.target.parentElement;
51     var url = event.target.parentElement.href;
52     var p = new Element('p');
53     var video_element = new Element('video', {src: url, controls: 1, autoplay: 1});
54     p.insert(video_element);
55     e.replace(p);
56 }
57
58 window.addEventListener('load', media_init, false);