diff options
Diffstat (limited to 'docroot/lib/scriptaculous/sound.js')
-rwxr-xr-x | docroot/lib/scriptaculous/sound.js | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/docroot/lib/scriptaculous/sound.js b/docroot/lib/scriptaculous/sound.js new file mode 100755 index 0000000..164c79a --- /dev/null +++ b/docroot/lib/scriptaculous/sound.js | |||
@@ -0,0 +1,60 @@ | |||
1 | // script.aculo.us sound.js v1.7.1_beta3, Fri May 25 17:19:41 +0200 2007 | ||
2 | |||
3 | // Copyright (c) 2005-2007 Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us) | ||
4 | // | ||
5 | // Based on code created by Jules Gravinese (http://www.webveteran.com/) | ||
6 | // | ||
7 | // script.aculo.us is freely distributable under the terms of an MIT-style license. | ||
8 | // For details, see the script.aculo.us web site: http://script.aculo.us/ | ||
9 | |||
10 | Sound = { | ||
11 | tracks: {}, | ||
12 | _enabled: true, | ||
13 | template: | ||
14 | new Template('<embed style="height:0" id="sound_#{track}_#{id}" src="#{url}" loop="false" autostart="true" hidden="true"/>'), | ||
15 | enable: function(){ | ||
16 | Sound._enabled = true; | ||
17 | }, | ||
18 | disable: function(){ | ||
19 | Sound._enabled = false; | ||
20 | }, | ||
21 | play: function(url){ | ||
22 | if(!Sound._enabled) return; | ||
23 | var options = Object.extend({ | ||
24 | track: 'global', url: url, replace: false | ||
25 | }, arguments[1] || {}); | ||
26 | |||
27 | if(options.replace && this.tracks[options.track]) { | ||
28 | $R(0, this.tracks[options.track].id).each(function(id){ | ||
29 | var sound = $('sound_'+options.track+'_'+id); | ||
30 | sound.Stop && sound.Stop(); | ||
31 | sound.remove(); | ||
32 | }) | ||
33 | this.tracks[options.track] = null; | ||
34 | } | ||
35 | |||
36 | if(!this.tracks[options.track]) | ||
37 | this.tracks[options.track] = { id: 0 } | ||
38 | else | ||
39 | this.tracks[options.track].id++; | ||
40 | |||
41 | options.id = this.tracks[options.track].id; | ||
42 | if (Prototype.Browser.IE) { | ||
43 | var sound = document.createElement('bgsound'); | ||
44 | sound.setAttribute('id','sound_'+options.track+'_'+options.id); | ||
45 | sound.setAttribute('src',options.url); | ||
46 | sound.setAttribute('loop','1'); | ||
47 | sound.setAttribute('autostart','true'); | ||
48 | $$('body')[0].appendChild(sound); | ||
49 | } | ||
50 | else | ||
51 | new Insertion.Bottom($$('body')[0], Sound.template.evaluate(options)); | ||
52 | } | ||
53 | }; | ||
54 | |||
55 | if(Prototype.Browser.Gecko && navigator.userAgent.indexOf("Win") > 0){ | ||
56 | if(navigator.plugins && $A(navigator.plugins).detect(function(p){ return p.name.indexOf('QuickTime') != -1 })) | ||
57 | Sound.template = new Template('<object id="sound_#{track}_#{id}" width="0" height="0" type="audio/mpeg" data="#{url}"/>') | ||
58 | else | ||
59 | Sound.play = function(){} | ||
60 | } | ||