From f062b9fc3b25215b94cc5e2a3c6217a8f8fa2534 Mon Sep 17 00:00:00 2001 From: olivier <> Date: Fri, 12 Dec 2008 18:45:01 +0000 Subject: [PATCH] revert to soundmanager v2.90a.20081028, soundManager.url is broken in v2.91 --- telemeta/htdocs/js/soundmanager2.js | 652 ++++++------------- telemeta/htdocs/swf/soundmanager2.swf | Bin 2433 -> 2435 bytes telemeta/htdocs/swf/soundmanager2_flash9.swf | Bin 8079 -> 8079 bytes 3 files changed, 214 insertions(+), 438 deletions(-) diff --git a/telemeta/htdocs/js/soundmanager2.js b/telemeta/htdocs/js/soundmanager2.js index 631814fd..216115ce 100644 --- a/telemeta/htdocs/js/soundmanager2.js +++ b/telemeta/htdocs/js/soundmanager2.js @@ -7,11 +7,9 @@ Code licensed under the BSD License: http://schillmania.com/projects/soundmanager2/license.txt - V2.91a.20081205 + V2.90a.20081028 */ -var soundManager = null; - function SoundManager(smURL,smID) { this.flashVersion = 8; // version of flash to require, either 8 or 9. Some API features require Flash 9. @@ -23,7 +21,7 @@ function SoundManager(smURL,smID) { this.allowPolling = true; // allow flash to poll for status update (required for "while playing", peak, sound spectrum functions to work.) this.useMovieStar = false; // enable support for Flash 9.0r115+ (codename "MovieStar") MPEG4 audio + video formats (AAC, M4V, FLV, MOV etc.) this.useHighPerformance = true; // flash positioning trick, improves JS/flash callback speed, minimizes delay - this.bgColor = '#ffffff'; // movie (.swf) background color, useful if showing on-screen for video etc. + this.bgColor = '#ffffff'; // movie (.swf) background color, useful if showing on-screen for video etc. this.defaultOptions = { 'autoLoad': false, // enable automatic loading (otherwise .load() will be called on demand with .play(), the latter being nicer on bandwidth - if you want to .load yourself, you also can) @@ -50,25 +48,25 @@ function SoundManager(smURL,smID) { }; this.flash9Options = { // flash 9-only options, merged into defaultOptions if flash 9 is being used - 'isMovieStar': null, // "MovieStar" MPEG4 audio/video mode. Null (default) = auto detect MP4, AAC etc. based on URL. true = force on, ignore URL + 'isMovieStar': null, // "MovieStar" MPEG4 audio/video mode. Null (default) = auto detect MP4, AAC etc. based on URL. true = force on, ignore URL 'usePeakData': false, // enable left/right channel peak (level) data 'useWaveformData': false, // enable sound spectrum (raw waveform data) - WARNING: CPU-INTENSIVE: may set CPUs on fire. 'useEQData': false // enable sound EQ (frequency spectrum data) - WARNING: Also CPU-intensive. }; this.movieStarOptions = { // flash 9.0r115+ MPEG4 audio/video options, merged into defaultOptions if flash 9 + movieStar mode is enabled - 'onmetadata': null, // callback for when video width/height etc. are received - 'useVideo': false // if loading movieStar content, whether to show video - }; - - // jslint global declarations - /*global alert, console, document, navigator, setTimeout, window */ + 'onmetadata': null, // callback for when video width/height etc. are received + 'useVideo': false // if loading movieStar content, whether to show video + } - var SMSound = null; // defined later + this.flashBlockHelper = { + 'enabled': false, // experimental, removed with >v2.80 + 'message': [] // "nag bar" to show when messaging the user, if SM2 fails on firefox etc. + }; - var _s = this; + var _s = this; this.version = null; - this.versionNumber = 'V2.91a.20081205'; + this.versionNumber = 'V2.90a.20081028'; this.movieURL = null; this.url = null; this.altURL = null; @@ -77,7 +75,7 @@ function SoundManager(smURL,smID) { this.o = null; this.id = (smID||'sm2movie'); this.oMC = null; - this.sounds = {}; + this.sounds = []; this.soundIDs = []; this.muted = false; this.isIE = (navigator.userAgent.match(/MSIE/i)); @@ -93,12 +91,10 @@ function SoundManager(smURL,smID) { this._hasConsole = (typeof console != 'undefined' && typeof console.log != 'undefined'); this._debugLevels = ['log','info','warn','error']; this._defaultFlashVersion = 8; - this.filePatterns = { - flash8: /.mp3/i, - flash9: /.mp3/i + flash8: /\.(mp3)/i, + flash9: /\.(mp3)/i }; - this.netStreamTypes = ['aac','flv','mov','mp4','m4v','f4v','m4a','mp4v','3gp','3g2']; // Flash v9.0r115+ "moviestar" formats this.netStreamPattern = new RegExp('.('+this.netStreamTypes.join('|')+')','i'); this.filePattern = null; @@ -140,7 +136,7 @@ function SoundManager(smURL,smID) { _s.filePattern = _s.filePatterns[(_s.flashVersion!=8?'flash9':'flash8')]; _s.movieURL = (_s.flashVersion==8?'soundmanager2.swf':'soundmanager2_flash9.swf'); _s.features.peakData = _s.features.waveformData = _s.features.eqData = (_s.flashVersion==9); - }; + } this._overHTTP = (document.location?document.location.protocol.match(/http/i):null); this._waitingforEI = false; @@ -169,26 +165,24 @@ function SoundManager(smURL,smID) { } catch(e) { _s._failSafely(); return true; - } + }; }; this.createSound = function(oOptions) { - if (!_s._didInit) { - throw new Error('soundManager.createSound(): Not loaded yet - wait for soundManager.onload() before calling sound-related methods'); - } - if (arguments.length == 2) { + if (!_s._didInit) throw new Error('soundManager.createSound(): Not loaded yet - wait for soundManager.onload() before calling sound-related methods'); + if (arguments.length==2) { // function overloading in JS! :) ..assume simple createSound(id,url) use case - oOptions = {'id':arguments[0],'url':arguments[1]}; - } + var oOptions = {'id':arguments[0],'url':arguments[1]}; + }; var thisOptions = _s._mergeObjects(oOptions); // inherit SM2 defaults var _tO = thisOptions; // alias _s._wD('soundManager.createSound(): '+_tO.id+' ('+_tO.url+')',1); if (_s._idCheck(_tO.id,true)) { _s._wD('soundManager.createSound(): '+_tO.id+' exists',1); return _s.sounds[_tO.id]; - } + }; if (_s.flashVersion > 8 && _s.useMovieStar) { - if (_tO.isMovieStar === null) { + if (_tO.isMovieStar == null) { _tO.isMovieStar = (_tO.url.match(_s.netStreamPattern)?true:false); } if (_tO.isMovieStar) { @@ -200,7 +194,7 @@ function SoundManager(smURL,smID) { _tO.useWaveformData = false; _tO.useEQData = false; } - } + }; _s.sounds[_tO.id] = new SMSound(_tO); _s.soundIDs[_s.soundIDs.length] = _tO.id; // AS2: @@ -208,7 +202,7 @@ function SoundManager(smURL,smID) { _s.o._createSound(_tO.id,_tO.onjustbeforefinishtime); } else { _s.o._createSound(_tO.id,_tO.url,_tO.onjustbeforefinishtime,_tO.usePeakData,_tO.useWaveformData,_tO.useEQData,_tO.isMovieStar,(_tO.isMovieStar?_tO.useVideo:false)); - } + }; if (_tO.autoLoad || _tO.autoPlay) { window.setTimeout(function() { if (_s.sounds[_tO.id]) { @@ -228,8 +222,8 @@ function SoundManager(smURL,smID) { this.createVideo = function(oOptions) { if (arguments.length==2) { - oOptions = {'id':arguments[0],'url':arguments[1]}; - } + var oOptions = {'id':arguments[0],'url':arguments[1]}; + }; if (_s.flashVersion >= 9) { oOptions.isMovieStar = true; oOptions.useVideo = true; @@ -241,19 +235,17 @@ function SoundManager(smURL,smID) { _s._wD('soundManager.createVideo(): MovieStar mode not enabled. Exiting.',2); } return _s.createSound(oOptions); - }; + } this.destroySound = function(sID,bFromSound) { // explicitly destroy a sound before normal page unload, etc. - if (!_s._idCheck(sID)) { - return false; - } + if (!_s._idCheck(sID)) return false; for (var i=0; i<_s.soundIDs.length; i++) { if (_s.soundIDs[i] == sID) { _s.soundIDs.splice(i,1); continue; - } - } + }; + }; // conservative option: avoid crash with ze flash 8 // calling destroySound() within a sound onload() might crash firefox, certain flavours of winXP + flash 8?? // if (_s.flashVersion != 8) { @@ -262,31 +254,25 @@ function SoundManager(smURL,smID) { if (!bFromSound) { // ignore if being called from SMSound instance _s.sounds[sID].destruct(); - } + }; delete _s.sounds[sID]; }; this.destroyVideo = this.destroySound; this.load = function(sID,oOptions) { - if (!_s._idCheck(sID)) { - return false; - } + if (!_s._idCheck(sID)) return false; _s.sounds[sID].load(oOptions); }; this.unload = function(sID) { - if (!_s._idCheck(sID)) { - return false; - } + if (!_s._idCheck(sID)) return false; _s.sounds[sID].unload(); }; this.play = function(sID,oOptions) { if (!_s._idCheck(sID)) { - if (typeof oOptions != 'Object') { - oOptions = {url:oOptions}; // overloading use case: play('mySound','/path/to/some.mp3'); - } + if (typeof oOptions != 'Object') oOptions = {url:oOptions}; // overloading use case: play('mySound','/path/to/some.mp3'); if (oOptions && oOptions.url) { // overloading use case, creation + playing of sound: .play('someID',{url:'/path/to.mp3'}); _s._wD('soundController.play(): attempting to create "'+sID+'"',1); @@ -294,24 +280,21 @@ function SoundManager(smURL,smID) { _s.createSound(oOptions); } else { return false; - } - } + }; + }; _s.sounds[sID].play(oOptions); }; this.start = this.play; // just for convenience this.setPosition = function(sID,nMsecOffset) { - if (!_s._idCheck(sID)) { - return false; - } + if (!_s._idCheck(sID)) return false; + nMsecOffset = Math.min((nMsecOffset||0),_s.duration); // don't allow seek past loaded duration _s.sounds[sID].setPosition(nMsecOffset); }; this.stop = function(sID) { - if (!_s._idCheck(sID)) { - return false; - } + if (!_s._idCheck(sID)) return false; _s._wD('soundManager.stop('+sID+')',1); _s.sounds[sID].stop(); }; @@ -319,16 +302,12 @@ function SoundManager(smURL,smID) { this.stopAll = function() { _s._wD('soundManager.stopAll()',1); for (var oSound in _s.sounds) { - if (_s.sounds[oSound] instanceof SMSound) { - _s.sounds[oSound].stop(); // apply only to sound objects - } - } + if (_s.sounds[oSound] instanceof SMSound) _s.sounds[oSound].stop(); // apply only to sound objects + }; }; this.pause = function(sID) { - if (!_s._idCheck(sID)) { - return false; - } + if (!_s._idCheck(sID)) return false; _s.sounds[sID].pause(); }; @@ -339,9 +318,7 @@ function SoundManager(smURL,smID) { }; this.resume = function(sID) { - if (!_s._idCheck(sID)) { - return false; - } + if (!_s._idCheck(sID)) return false; _s.sounds[sID].resume(); }; @@ -352,40 +329,31 @@ function SoundManager(smURL,smID) { }; this.togglePause = function(sID) { - if (!_s._idCheck(sID)) { - return false; - } + if (!_s._idCheck(sID)) return false; _s.sounds[sID].togglePause(); }; this.setPan = function(sID,nPan) { - if (!_s._idCheck(sID)) { - return false; - } + if (!_s._idCheck(sID)) return false; _s.sounds[sID].setPan(nPan); }; this.setVolume = function(sID,nVol) { - if (!_s._idCheck(sID)) { - return false; - } + if (!_s._idCheck(sID)) return false; _s.sounds[sID].setVolume(nVol); }; this.mute = function(sID) { - if (typeof sID != 'string') { - sID = null; - } + if (typeof sID != 'string') sID = null; if (!sID) { + var o = null; _s._wD('soundManager.mute(): Muting all sounds'); for (var i=_s.soundIDs.length; i--;) { _s.sounds[_s.soundIDs[i]].mute(); } _s.muted = true; } else { - if (!_s._idCheck(sID)) { - return false; - } + if (!_s._idCheck(sID)) return false; _s._wD('soundManager.mute(): Muting "'+sID+'"'); _s.sounds[sID].mute(); } @@ -396,19 +364,16 @@ function SoundManager(smURL,smID) { }; this.unmute = function(sID) { - if (typeof sID != 'string') { - sID = null; - } + if (typeof sID != 'string') sID = null; if (!sID) { + var o = null; _s._wD('soundManager.unmute(): Unmuting all sounds'); for (var i=_s.soundIDs.length; i--;) { _s.sounds[_s.soundIDs[i]].unmute(); } _s.muted = false; } else { - if (!_s._idCheck(sID)) { - return false; - } + if (!_s._idCheck(sID)) return false; _s._wD('soundManager.unmute(): Unmuting "'+sID+'"'); _s.sounds[sID].unmute(); } @@ -419,40 +384,39 @@ function SoundManager(smURL,smID) { }; this.setPolling = function(bPolling) { - if (!_s.o || !_s.allowPolling) { - return false; - } + if (!_s.o || !_s.allowPolling) return false; // _s._wD('soundManager.setPolling('+bPolling+')'); _s.o._setPolling(bPolling); }; this.disable = function(bUnload) { // destroy all functions - if (_s._disabled) { - return false; - } + if (_s._disabled) return false; _s._disabled = true; _s._wD('soundManager.disable(): Disabling all functions - future calls will return false.',1); for (var i=_s.soundIDs.length; i--;) { _s._disableObject(_s.sounds[_s.soundIDs[i]]); - } + }; _s.initComplete(); // fire "complete", despite fail _s._disableObject(_s); }; + this.handleFlashBlock = function(bForce) { + // experimental, removed with >v2.80. + return false; + }; + this.canPlayURL = function(sURL) { return (sURL?(sURL.match(_s.filePattern)?true:false):null); }; this.getSoundById = function(sID,suppressDebug) { - if (!sID) { - throw new Error('SoundManager.getSoundById(): sID is null/undefined'); - } + if (!sID) throw new Error('SoundManager.getSoundById(): sID is null/undefined'); var result = _s.sounds[sID]; if (!result && !suppressDebug) { _s._wD('"'+sID+'" is an invalid sound ID.',2); // soundManager._wD('trace: '+arguments.callee.caller); - } + }; return result; }; @@ -470,31 +434,27 @@ function SoundManager(smURL,smID) { this._idCheck = this.getSoundById; - var _doNothing = function() { - return false; - }; - _doNothing._protected = true; - this._disableObject = function(o) { for (var oProp in o) { - if (typeof o[oProp] == 'function' && typeof o[oProp]._protected == 'undefined') { - o[oProp] = _doNothing; - } - } + if (typeof o[oProp] == 'function' && typeof o[oProp]._protected == 'undefined') o[oProp] = function(){return false;}; + }; oProp = null; }; this._failSafely = function() { // exception handler for "object doesn't support this property or method" or general failure + var fpgssTitle = 'You may need to whitelist this location/domain eg. file:///C:/ or C:/ or mysite.com, or set ALWAYS ALLOW under the Flash Player Global Security Settings page. The latter is probably less-secure.'; + var flashCPL = 'view/edit'; + var FPGSS = 'FPGSS'; if (!_s._disabled) { _s._wD('soundManager: Failed to initialise.',2); _s.disable(); - } + }; }; this._normalizeMovieURL = function(smURL) { if (smURL) { - if (smURL.match(/.swf/)) { + if (smURL.match(/\.swf/)) { smURL = smURL.substr(0,smURL.lastIndexOf('.swf')); } if (smURL.lastIndexOf('/') != smURL.length-1) { @@ -511,12 +471,8 @@ function SoundManager(smURL,smID) { this._getDocument._protected = true; this._createMovie = function(smID,smURL) { - if (_s._didAppend && _s._appendSuccess) { - return false; // ignore if already succeeded - } - if (window.location.href.indexOf('debug=1')+1) { - _s.debugMode = true; // allow force of debug mode via URL - } + if (_s._didAppend && _s._appendSuccess) return false; // ignore if already succeeded + if (window.location.href.indexOf('debug=1')+1) _s.debugMode = true; // allow force of debug mode via URL _s._didAppend = true; // safety check for legacy (change to Flash 9 URL) @@ -526,111 +482,18 @@ function SoundManager(smURL,smID) { _s.url = _s._normalizeMovieURL(_s._overHTTP?remoteURL:localURL); smURL = _s.url; - var specialCase = null; - if (_s.useHighPerformance && navigator.userAgent.match(/firefox\/2/i)) { - // no highPerformance for firefox 2. Causes failure on some pages, exact cause unknown at this point. - specialCase = 'Warning: disabling highPerformance, incompatible with Firefox 2.x'; - _s.useHighPerformance = false; - } - - if (_s.useHighPerformance && _s.useMovieStar) { - specialCase = 'Warning: disabling highPerformance, not applicable with movieStar mode on'; - _s.useHighPerformance = false; - } - - var oEmbed = { - name: smID, - id: smID, - src: smURL, - width: '100%', - height: '100%', - quality: 'high', - allowScriptAccess: 'always', - bgcolor: _s.bgColor, - pluginspage: 'http://www.macromedia.com/go/getflashplayer', - type: 'application/x-shockwave-flash' - }; - - var oObject = { - id: smID, - data: smURL, - type: 'application/x-shockwave-flash', - width: '100%', - height: '100%' - }; - - var oObjectParams = { - movie: smURL, - AllowScriptAccess: 'always', - quality: 'high', - bgcolor: _s.bgColor - }; - - if (_s.useHighPerformance && !_s.useMovieStar) { - oEmbed.wmode = 'transparent'; - oObjectParams.wmode = 'transparent'; - } - - var oMovie = null; - var tmp = null; - - if (_s.isIE) { - - // IE is "special". - oMovie = document.createElement('div'); - var movieHTML = ''+(_s.useHighPerformance && !_s.useMovieStar?' ':'')+''; - - } else { - - oMovie = document.createElement('embed'); - for (tmp in oEmbed) { - if (oEmbed.hasOwnProperty(tmp)) { - oMovie.setAttribute(tmp,oEmbed[tmp]); - } - } - } - - var oD = document.createElement('div'); - oD.id = _s.debugID+'-toggle'; - var oToggle = { - position: 'fixed', - bottom: '0px', - right: '0px', - width: '1.2em', - height: '1.2em', - lineHeight: '1.2em', - margin: '2px', - textAlign: 'center', - border: '1px solid #999', - cursor: 'pointer', - background: '#fff', - color: '#333', - zIndex: 10001 - }; - - oD.appendChild(document.createTextNode('-')); - oD.onclick = _s._toggleDebug; - oD.title = 'Toggle SM2 debug console'; - - if (navigator.userAgent.match(/msie 6/i)) { - oD.style.position = 'absolute'; - oD.style.cursor = 'hand'; - } - - for (tmp in oToggle) { - if (oToggle.hasOwnProperty(tmp)) { - oD.style[tmp] = oToggle[tmp]; - } - } + var htmlEmbed = ''; + var htmlObject = ''+(_s.useHighPerformance && !_s.useMovieStar?' ':'')+''; + var html = (!_s.isIE?htmlEmbed:htmlObject); + var toggleElement = '
-
'; + var debugHTML = '
'; var appXHTML = 'soundManager._createMovie(): appendChild/innerHTML set failed. May be app/xhtml+xml DOM-related.'; var oTarget = _s._getDocument(); - if (oTarget) { _s.oMC = document.getElementById('sm2-container')?document.getElementById('sm2-container'):document.createElement('div'); - if (!_s.oMC.id) { _s.oMC.id = 'sm2-container'; _s.oMC.className = 'movieContainer'; @@ -638,122 +501,95 @@ function SoundManager(smURL,smID) { var s = null; if (_s.useHighPerformance) { s = { - position: 'fixed', - width: '8px', + position: 'fixed', + width: '8px', height: '8px', // must be at least 6px for flash to run fast. odd? yes. bottom: '0px', left: '0px', - zIndex:-1 // sit behind everything else - }; + zIndex:-1 // sit behind everything else + } } else { s = { position: 'absolute', - width: '1px', + width: '1px', height: '1px', bottom: '0px', left: '0px' - }; + } } var x = null; for (x in s) { - if (s.hasOwnProperty(x)) { - _s.oMC.style[x] = s[x]; - } + _s.oMC.style[x] = s[x]; } try { - if (!_s.isIE) { - _s.oMC.appendChild(oMovie); - } oTarget.appendChild(_s.oMC); - if (_s.isIE) { - _s.oMC.innerHTML = movieHTML; - } + _s.oMC.innerHTML = html; _s._appendSuccess = true; } catch(e) { throw new Error(appXHTML); } } else { // it's already in the document. - _s.oMC.appendChild(oMovie); - if (_s.isIE) { - // possibly destructive write - _s.oMC.innerHTML = movieHTML; - } + _s.oMC.innerHTML = html; _s._appendSuccess = true; } - if (!document.getElementById(_s.debugID) && ((!_s._hasConsole||!_s.useConsole)||(_s.useConsole && _s._hasConsole && !_s.consoleOnly))) { var oDebug = document.createElement('div'); oDebug.id = _s.debugID; oDebug.style.display = (_s.debugMode?'block':'none'); if (_s.debugMode) { try { - // var oD = document.createElement('div'); + var oD = document.createElement('div'); oTarget.appendChild(oD); - // oD.innerHTML = toggleElement; - } catch(e2) { + oD.innerHTML = toggleElement; + } catch(e) { throw new Error(appXHTML); - } - } + }; + }; oTarget.appendChild(oDebug); - } + }; oTarget = null; - } - - if (specialCase) { - _s._wD(specialCase); - } - - _s._wD('-- SoundManager 2 '+_s.version+(_s.useMovieStar?', MovieStar mode':'')+(_s.useHighPerformance?', high performance mode':'')+' --',1); + }; + _s._wD('-- SoundManager 2 '+_s.version+(_s.useMovieStar?', MovieStar mode':'')+(_s._wD?', high performance mode':'')+' --',1); _s._wD('soundManager._createMovie(): Trying to load '+smURL+(!_s._overHTTP && _s.altURL?'(alternate URL)':''),1); }; // aliased to this._wD() this._writeDebug = function(sText,sType,bTimestamp) { - if (!_s.debugMode) { - return false; - } + if (!_s.debugMode) return false; if (typeof bTimestamp != 'undefined' && bTimestamp) { sText = sText + ' | '+new Date().getTime(); - } + }; if (_s._hasConsole && _s.useConsole) { var sMethod = _s._debugLevels[sType]; if (typeof console[sMethod] != 'undefined') { console[sMethod](sText); } else { console.log(sText); - } - if (_s.useConsoleOnly) { - return true; - } - } + }; + if (_s.useConsoleOnly) return true; + }; var sDID = 'soundmanager-debug'; try { var o = document.getElementById(sDID); - if (!o) { - return false; - } + if (!o) return false; var oItem = document.createElement('div'); - // sText = sText.replace(/\n/g,'
'); + sText = sText.replace(/\n/g,'
'); if (typeof sType == 'undefined') { - sType = 0; + var sType = 0; } else { - sType = parseInt(sType,10); - } - oItem.appendChild(document.createTextNode(sText)); + sType = parseInt(sType); + }; + oItem.innerHTML = sText; if (sType) { - if (sType >= 2) { - oItem.style.fontWeight = 'bold'; - } - if (sType == 3) { - oItem.style.color = '#ff3333'; - } - } + if (sType >= 2) oItem.style.fontWeight = 'bold'; + if (sType == 3) oItem.style.color = '#ff3333'; + }; // o.appendChild(oItem); // top-to-bottom o.insertBefore(oItem,o.firstChild); // bottom-to-top } catch(e) { // oh well - } + }; o = null; }; this._writeDebug._protected = true; @@ -763,14 +599,12 @@ function SoundManager(smURL,smID) { if (window.location.href.indexOf('debug=alert')+1 && _s.debugMode) { _s._wD = _s._wDAlert; - } + }; this._toggleDebug = function() { var o = document.getElementById(_s.debugID); var oT = document.getElementById(_s.debugID+'-toggle'); - if (!o) { - return false; - } + if (!o) return false; if (_s._debugOpen) { // minimize oT.innerHTML = '+'; @@ -778,7 +612,7 @@ function SoundManager(smURL,smID) { } else { oT.innerHTML = '-'; o.style.display = 'block'; - } + }; _s._debugOpen = !_s._debugOpen; }; @@ -788,30 +622,24 @@ function SoundManager(smURL,smID) { _s._wD('--- soundManager._debug(): Current sound objects ---',1); for (var i=0,j=_s.soundIDs.length; i Flash either. soundManager.onerror(); soundManager.disable(); - } - - if (document.addEventListener) { - document.addEventListener('DOMContentLoaded',_s.domContentLoaded,false); - } + }; -} // SoundManager() + if (document.addEventListener) document.addEventListener('DOMContentLoaded',_s.domContentLoaded,false); -soundManager = new SoundManager(); +}; // SoundManager() +var soundManager = new SoundManager(); diff --git a/telemeta/htdocs/swf/soundmanager2.swf b/telemeta/htdocs/swf/soundmanager2.swf index e78fafae9609cf1df28311373ae4c0918a653e58..98ed98d5eb1088834f49de897b49a6d851160927 100644 GIT binary patch literal 2435 zcmV-}34HcLS5pY%761Tv+KgCBQybY8K5AV_jj@>+JXSIm9tJ;v*d~r0Cw_o=2pcfa zk`aDP99wBgjcB{+R&}>#%nz8#Y@+N`<;7G|smf+nld7z;&MrS8e;`%aW}71CoO`>~ zVvIE`TKDnYbH00C_g>xtOas850M4hNs2$?pP!ZapB)jB%9V+A3w)QM}Co8i5QN0o`v2F!jR ziKFjdK8<{E)nzBVCq+nch_4(3p|uZzRc|BL0|-pFQS;vJ9JDOd5LjU)F;H#T0c}|B zw68Zk1NA+t{-*4EP2UOva4feO?m^QEmk&ZK*!0W>8Y=4Ucp;jg(e};I_FS}WU~>a$ zg-=bVZ3R#x92yaV^%am%c(-Cf)wi||~UtnuWoT;#dLTFsIK99dtv33lTqw0y4xtu~_MG>!RI z(?)ChCAaA9w;U_9Z~@0@+?QY_pUhj1c8D$oLWz%+&>jVyICaG%hp zgtkgkQt8Ml3e9OKQvZkteq_-1G=E38^DKC*^Dzk)DA*1jvU919{gI>!jTFp7cL?+| zIV$t|$@zRw!N;s1b*zGS8a(F3XZsfC8T(^K{lxek?kbPuMOsPyWB_g2Zt6ahKPSzu z&A?gKQ|Reo+rc=)#wBcM2ENj|8DPVsS}mXGq>~+y>}2v?#9||x9L@1ovP|$iZ9=E* z4zt;EWeLDd<%GUQMm(tzFjt5diJW0bnL|>h$m*YNOIE#+iS5`tS^YC(6D1A75vDvh zX-KBzv`tbt0o+M*XAC=8oI&6PHseKOor9+YaygEo!7d7|)YU-7Eps67@6h*E=&PC>Z=xgM&k9UIsOMMGf=l z)oApp5!taB6BV@i%y0x~GSLl)$5GjP>0KK{FU#~YsS*aszy8NjIolbHQo2@Y*Xwlb z{u4+Jani>*h(!wB9tT7U10vD+bo(fw)DQMkBswwy?(-Bxy?0d7s6**=td5`kkot06 z<{s9Uf5hUK`;u=t4)K)!bK?p2fD&#U8Qmw#>o)|js2c^^J5j<~adSIfBIk^FQlm-S z!ru;M(5K%|{})U@{h?5%gjGuns?*oC5;M8gIYq9+y2IC-D)f^3a)HD$KGhXBp;S zDIP-Xon%#Ee-ER5*{z7VD^prf9*jU7dl~(n^6y+{3j2_YSOrhEH$l`Y^1#p3mfE3L z#;YB?gTC5;@=nN;D=J(`)>)M?*Y)d#l5EcEvr+R3=27<)*D1*}tIzjx4CMBx49K)j z)YE$$7(hcplNP@`&~qWNpo>nTr7Q`*a+krI4P4r=u1g`vUOQRY?tG)D{<>8o)-NF zOsRXGCNAg~rP@jPbB9%M>J&=}Q_9ourizTBOp<7Kf9*3RDat@}vZm!()qkH!9&+)~ zD$4PpC*sqWPuP3VJ6nap@;J)Q0~tozL>4Q#Y=uMN+e7^PBoSXDZ@Kg!`h@d6ErT@aiAQSH z#?e*yd^&#Bl3KNyIKZPv)}Q&rIw7=iLg)oP$@qGa;|rO7qClOSd|ln@yRPc`5Xa7V zAwE{+Bx%FcNs3qSn4HaR^fJx_!^w+AzR=@=VatQ?+x7TJ$OE2bN;4h zP7H&T>^+_*0eleZFJl0Ud(}A|C&%-B=Lx=n>l_SK^(gyo@02H@QM#Io(%>BWHA)q3 z&FU`-lm&X7mM0euNA(s_4GhKjrtw1igASQ%NKf6`<_ZK(>2t^3a;$B+9ge?Uyk^P6 zkxoOk^!^8ya&=U=2Lo`c3b#4{x2AAw18}z$?)CuOy27mwz-=hp#sJ)=!fg(~jVavN z0Ngo+J2wFLs?a?Fn*M44Y(a@z7=SA(T=7G=A-v4Uup67t%PYI~K5WyVtQiG-I?95s zrPVcy?($s9LEob+PvvFD?xo&-9nPr#s!&qBmPrANrBe4J8T1+^AG3TjpNEC?1~$LG zgi^M4mMX>S*3!BG;hr5F`Ij>P1Bc}jiM;w(O_WEnRv=A0qXGU8009600|1v-L(;Vs Bx;6j+ literal 2433 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 diff --git a/telemeta/htdocs/swf/soundmanager2_flash9.swf b/telemeta/htdocs/swf/soundmanager2_flash9.swf index d10a9e5e5286eeb45bc74331c5d8b6a37eec7a97..14e45788e2deaa32b7daa420dd8b34d48d8025bb 100644 GIT binary patch literal 8079 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 -- 2.39.5