{"version":3,"file":"components/chunks/595.7a64a456cf11ecf78d76.js","mappings":"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","sources":["webpack://bernafon/./node_modules/soundmanager2/script/soundmanager2-nodebug.js","webpack://bernafon/./node_modules/react-sound/lib/index.js"],"sourcesContent":["/** @license\r\n *\r\n * SoundManager 2: JavaScript Sound for the Web\r\n * ----------------------------------------------\r\n * http://schillmania.com/projects/soundmanager2/\r\n *\r\n * Copyright (c) 2007, Scott Schiller. All rights reserved.\r\n * Code provided under the BSD License:\r\n * http://schillmania.com/projects/soundmanager2/license.txt\r\n *\r\n * V2.97a.20170601\r\n */\r\n\r\n(function SM2(window, _undefined) {\r\n'use strict';\r\nif (!window || !window.document) {\r\n throw new Error('SoundManager requires a browser with window and document objects.');\r\n}\r\nvar soundManager = null;\r\nfunction SoundManager(smURL, smID) {\r\n this.setupOptions = {\r\n url: (smURL || null),\r\n flashVersion: 8,\r\n debugMode: true,\r\n debugFlash: false,\r\n useConsole: true,\r\n consoleOnly: true,\r\n waitForWindowLoad: false,\r\n bgColor: '#ffffff',\r\n useHighPerformance: false,\r\n flashPollingInterval: null,\r\n html5PollingInterval: null,\r\n flashLoadTimeout: 1000,\r\n wmode: null,\r\n allowScriptAccess: 'always',\r\n useFlashBlock: false,\r\n useHTML5Audio: true,\r\n forceUseGlobalHTML5Audio: false,\r\n ignoreMobileRestrictions: false,\r\n html5Test: /^(probably|maybe)$/i,\r\n preferFlash: false,\r\n noSWFCache: false,\r\n idPrefix: 'sound'\r\n };\r\n this.defaultOptions = {\r\n autoLoad: false,\r\n autoPlay: false,\r\n from: null,\r\n loops: 1,\r\n onid3: null,\r\n onerror: null,\r\n onload: null,\r\n whileloading: null,\r\n onplay: null,\r\n onpause: null,\r\n onresume: null,\r\n whileplaying: null,\r\n onposition: null,\r\n onstop: null,\r\n onfinish: null,\r\n multiShot: true,\r\n multiShotEvents: false,\r\n position: null,\r\n pan: 0,\r\n playbackRate: 1,\r\n stream: true,\r\n to: null,\r\n type: null,\r\n usePolicyFile: false,\r\n volume: 100\r\n };\r\n this.flash9Options = {\r\n onfailure: null,\r\n isMovieStar: null,\r\n usePeakData: false,\r\n useWaveformData: false,\r\n useEQData: false,\r\n onbufferchange: null,\r\n ondataerror: null\r\n };\r\n this.movieStarOptions = {\r\n bufferTime: 3,\r\n serverURL: null,\r\n onconnect: null,\r\n duration: null\r\n };\r\n this.audioFormats = {\r\n mp3: {\r\n type: ['audio/mpeg; codecs=\"mp3\"', 'audio/mpeg', 'audio/mp3', 'audio/MPA', 'audio/mpa-robust'],\r\n required: true\r\n },\r\n mp4: {\r\n related: ['aac', 'm4a', 'm4b'],\r\n type: ['audio/mp4; codecs=\"mp4a.40.2\"', 'audio/aac', 'audio/x-m4a', 'audio/MP4A-LATM', 'audio/mpeg4-generic'],\r\n required: false\r\n },\r\n ogg: {\r\n type: ['audio/ogg; codecs=vorbis'],\r\n required: false\r\n },\r\n opus: {\r\n type: ['audio/ogg; codecs=opus', 'audio/opus'],\r\n required: false\r\n },\r\n wav: {\r\n type: ['audio/wav; codecs=\"1\"', 'audio/wav', 'audio/wave', 'audio/x-wav'],\r\n required: false\r\n },\r\n flac: {\r\n type: ['audio/flac'],\r\n required: false\r\n }\r\n };\r\n this.movieID = 'sm2-container';\r\n this.id = (smID || 'sm2movie');\r\n this.debugID = 'soundmanager-debug';\r\n this.debugURLParam = /([#?&])debug=1/i;\r\n this.versionNumber = 'V2.97a.20170601';\r\n this.version = null;\r\n this.movieURL = null;\r\n this.altURL = null;\r\n this.swfLoaded = false;\r\n this.enabled = false;\r\n this.oMC = null;\r\n this.sounds = {};\r\n this.soundIDs = [];\r\n this.muted = false;\r\n this.didFlashBlock = false;\r\n this.filePattern = null;\r\n this.filePatterns = {\r\n flash8: /\\.mp3(\\?.*)?$/i,\r\n flash9: /\\.mp3(\\?.*)?$/i\r\n };\r\n this.features = {\r\n buffering: false,\r\n peakData: false,\r\n waveformData: false,\r\n eqData: false,\r\n movieStar: false\r\n };\r\n this.sandbox = {\r\n };\r\n this.html5 = {\r\n usingFlash: null\r\n };\r\n this.flash = {};\r\n this.html5Only = false;\r\n this.ignoreFlash = false;\r\n var SMSound,\r\n sm2 = this, globalHTML5Audio = null, flash = null, sm = 'soundManager', smc = sm + ': ', h5 = 'HTML5::', id, ua = navigator.userAgent, wl = window.location.href.toString(), doc = document, doNothing, setProperties, init, fV, on_queue = [], debugOpen = true, debugTS, didAppend = false, appendSuccess = false, didInit = false, disabled = false, windowLoaded = false, _wDS, wdCount = 0, initComplete, mixin, assign, extraOptions, addOnEvent, processOnEvents, initUserOnload, delayWaitForEI, waitForEI, rebootIntoHTML5, setVersionInfo, handleFocus, strings, initMovie, domContentLoaded, winOnLoad, didDCLoaded, getDocument, createMovie, catchError, setPolling, initDebug, debugLevels = ['log', 'info', 'warn', 'error'], defaultFlashVersion = 8, disableObject, failSafely, normalizeMovieURL, oRemoved = null, oRemovedHTML = null, str, flashBlockHandler, getSWFCSS, swfCSS, toggleDebug, loopFix, policyFix, complain, idCheck, waitingForEI = false, initPending = false, startTimer, stopTimer, timerExecute, h5TimerCount = 0, h5IntervalTimer = null, parseURL, messages = [],\r\n canIgnoreFlash, needsFlash = null, featureCheck, html5OK, html5CanPlay, html5ErrorCodes, html5Ext, html5Unload, domContentLoadedIE, testHTML5, event, slice = Array.prototype.slice, useGlobalHTML5Audio = false, lastGlobalHTML5URL, hasFlash, detectFlash, badSafariFix, html5_events, showSupport, flushMessages, wrapCallback, idCounter = 0, didSetup, msecScale = 1000,\r\n is_iDevice = ua.match(/(ipad|iphone|ipod)/i), isAndroid = ua.match(/android/i), isIE = ua.match(/msie|trident/i),\r\n isWebkit = ua.match(/webkit/i),\r\n isSafari = (ua.match(/safari/i) && !ua.match(/chrome/i)),\r\n isOpera = (ua.match(/opera/i)),\r\n mobileHTML5 = (ua.match(/(mobile|pre\\/|xoom)/i) || is_iDevice || isAndroid),\r\n isBadSafari = (!wl.match(/usehtml5audio/i) && !wl.match(/sm2-ignorebadua/i) && isSafari && !ua.match(/silk/i) && ua.match(/OS\\sX\\s10_6_([3-7])/i)),\r\n hasConsole = (window.console !== _undefined && console.log !== _undefined),\r\n isFocused = (doc.hasFocus !== _undefined ? doc.hasFocus() : null),\r\n tryInitOnFocus = (isSafari && (doc.hasFocus === _undefined || !doc.hasFocus())),\r\n okToDisable = !tryInitOnFocus,\r\n flashMIME = /(mp3|mp4|mpa|m4a|m4b)/i,\r\n emptyURL = 'about:blank',\r\n emptyWAV = 'data:audio/wave;base64,/UklGRiYAAABXQVZFZm10IBAAAAABAAEARKwAAIhYAQACABAAZGF0YQIAAAD//w==',\r\n overHTTP = (doc.location ? doc.location.protocol.match(/http/i) : null),\r\n http = (!overHTTP ? '//' : ''),\r\n netStreamMimeTypes = /^\\s*audio\\/(?:x-)?(?:mpeg4|aac|flv|mov|mp4|m4v|m4a|m4b|mp4v|3gp|3g2)\\s*(?:$|;)/i,\r\n netStreamTypes = ['mpeg4', 'aac', 'flv', 'mov', 'mp4', 'm4v', 'f4v', 'm4a', 'm4b', 'mp4v', '3gp', '3g2'],\r\n netStreamPattern = new RegExp('\\\\.(' + netStreamTypes.join('|') + ')(\\\\?.*)?$', 'i');\r\n this.mimePattern = /^\\s*audio\\/(?:x-)?(?:mp(?:eg|3))\\s*(?:$|;)/i;\r\n this.useAltURL = !overHTTP;\r\n swfCSS = {\r\n swfBox: 'sm2-object-box',\r\n swfDefault: 'movieContainer',\r\n swfError: 'swf_error',\r\n swfTimedout: 'swf_timedout',\r\n swfLoaded: 'swf_loaded',\r\n swfUnblocked: 'swf_unblocked',\r\n sm2Debug: 'sm2_debug',\r\n highPerf: 'high_performance',\r\n flashDebug: 'flash_debug'\r\n };\r\n html5ErrorCodes = [\r\n null,\r\n 'MEDIA_ERR_ABORTED',\r\n 'MEDIA_ERR_NETWORK',\r\n 'MEDIA_ERR_DECODE',\r\n 'MEDIA_ERR_SRC_NOT_SUPPORTED'\r\n ];\r\n this.hasHTML5 = (function() {\r\n try {\r\n return (Audio !== _undefined && (isOpera && opera !== _undefined && opera.version() < 10 ? new Audio(null) : new Audio()).canPlayType !== _undefined);\r\n } catch(e) {\r\n return false;\r\n }\r\n }());\r\n this.setup = function(options) {\r\n var noURL = (!sm2.url);\r\n if (options !== _undefined && didInit && needsFlash && sm2.ok() && (options.flashVersion !== _undefined || options.url !== _undefined || options.html5Test !== _undefined)) {\r\n }\r\n assign(options);\r\n if (!useGlobalHTML5Audio) {\r\n if (mobileHTML5) {\r\n if (!sm2.setupOptions.ignoreMobileRestrictions || sm2.setupOptions.forceUseGlobalHTML5Audio) {\r\n messages.push(strings.globalHTML5);\r\n useGlobalHTML5Audio = true;\r\n }\r\n } else if (sm2.setupOptions.forceUseGlobalHTML5Audio) {\r\n messages.push(strings.globalHTML5);\r\n useGlobalHTML5Audio = true;\r\n }\r\n }\r\n if (!didSetup && mobileHTML5) {\r\n if (sm2.setupOptions.ignoreMobileRestrictions) {\r\n messages.push(strings.ignoreMobile);\r\n } else {\r\n sm2.setupOptions.useHTML5Audio = true;\r\n sm2.setupOptions.preferFlash = false;\r\n if (is_iDevice) {\r\n sm2.ignoreFlash = true;\r\n } else if ((isAndroid && !ua.match(/android\\s2\\.3/i)) || !isAndroid) {\r\n useGlobalHTML5Audio = true;\r\n }\r\n }\r\n }\r\n if (options) {\r\n if (noURL && didDCLoaded && options.url !== _undefined) {\r\n sm2.beginDelayedInit();\r\n }\r\n if (!didDCLoaded && options.url !== _undefined && doc.readyState === 'complete') {\r\n setTimeout(domContentLoaded, 1);\r\n }\r\n }\r\n didSetup = true;\r\n return sm2;\r\n };\r\n this.ok = function() {\r\n return (needsFlash ? (didInit && !disabled) : (sm2.useHTML5Audio && sm2.hasHTML5));\r\n };\r\n this.supported = this.ok;\r\n this.getMovie = function(movie_id) {\r\n return id(movie_id) || doc[movie_id] || window[movie_id];\r\n };\r\n this.createSound = function(oOptions, _url) {\r\n var cs, cs_string, options, oSound = null;\r\n if (!didInit || !sm2.ok()) {\r\n return false;\r\n }\r\n if (_url !== _undefined) {\r\n oOptions = {\r\n id: oOptions,\r\n url: _url\r\n };\r\n }\r\n options = mixin(oOptions);\r\n options.url = parseURL(options.url);\r\n if (options.id === _undefined) {\r\n options.id = sm2.setupOptions.idPrefix + (idCounter++);\r\n }\r\n if (idCheck(options.id, true)) {\r\n return sm2.sounds[options.id];\r\n }\r\n function make() {\r\n options = loopFix(options);\r\n sm2.sounds[options.id] = new SMSound(options);\r\n sm2.soundIDs.push(options.id);\r\n return sm2.sounds[options.id];\r\n }\r\n if (html5OK(options)) {\r\n oSound = make();\r\n oSound._setup_html5(options);\r\n } else {\r\n if (sm2.html5Only) {\r\n return make();\r\n }\r\n if (sm2.html5.usingFlash && options.url && options.url.match(/data:/i)) {\r\n return make();\r\n }\r\n if (fV > 8) {\r\n if (options.isMovieStar === null) {\r\n options.isMovieStar = !!(options.serverURL || (options.type ? options.type.match(netStreamMimeTypes) : false) || (options.url && options.url.match(netStreamPattern)));\r\n }\r\n }\r\n options = policyFix(options, cs);\r\n oSound = make();\r\n if (fV === 8) {\r\n flash._createSound(options.id, options.loops || 1, options.usePolicyFile);\r\n } else {\r\n flash._createSound(options.id, options.url, options.usePeakData, options.useWaveformData, options.useEQData, options.isMovieStar, (options.isMovieStar ? options.bufferTime : false), options.loops || 1, options.serverURL, options.duration || null, options.autoPlay, true, options.autoLoad, options.usePolicyFile);\r\n if (!options.serverURL) {\r\n oSound.connected = true;\r\n if (options.onconnect) {\r\n options.onconnect.apply(oSound);\r\n }\r\n }\r\n }\r\n if (!options.serverURL && (options.autoLoad || options.autoPlay)) {\r\n oSound.load(options);\r\n }\r\n }\r\n if (!options.serverURL && options.autoPlay) {\r\n oSound.play();\r\n }\r\n return oSound;\r\n };\r\n this.destroySound = function(sID, _bFromSound) {\r\n if (!idCheck(sID)) return false;\r\n var oS = sm2.sounds[sID], i;\r\n oS.stop();\r\n oS._iO = {};\r\n oS.unload();\r\n for (i = 0; i < sm2.soundIDs.length; i++) {\r\n if (sm2.soundIDs[i] === sID) {\r\n sm2.soundIDs.splice(i, 1);\r\n break;\r\n }\r\n }\r\n if (!_bFromSound) {\r\n oS.destruct(true);\r\n }\r\n oS = null;\r\n delete sm2.sounds[sID];\r\n return true;\r\n };\r\n this.load = function(sID, oOptions) {\r\n if (!idCheck(sID)) return false;\r\n return sm2.sounds[sID].load(oOptions);\r\n };\r\n this.unload = function(sID) {\r\n if (!idCheck(sID)) return false;\r\n return sm2.sounds[sID].unload();\r\n };\r\n this.onPosition = function(sID, nPosition, oMethod, oScope) {\r\n if (!idCheck(sID)) return false;\r\n return sm2.sounds[sID].onposition(nPosition, oMethod, oScope);\r\n };\r\n this.onposition = this.onPosition;\r\n this.clearOnPosition = function(sID, nPosition, oMethod) {\r\n if (!idCheck(sID)) return false;\r\n return sm2.sounds[sID].clearOnPosition(nPosition, oMethod);\r\n };\r\n this.play = function(sID, oOptions) {\r\n var result = null,\r\n overloaded = (oOptions && !(oOptions instanceof Object));\r\n if (!didInit || !sm2.ok()) {\r\n return false;\r\n }\r\n if (!idCheck(sID, overloaded)) {\r\n if (!overloaded) return false;\r\n if (overloaded) {\r\n oOptions = {\r\n url: oOptions\r\n };\r\n }\r\n if (oOptions && oOptions.url) {\r\n oOptions.id = sID;\r\n result = sm2.createSound(oOptions).play();\r\n }\r\n } else if (overloaded) {\r\n oOptions = {\r\n url: oOptions\r\n };\r\n }\r\n if (result === null) {\r\n result = sm2.sounds[sID].play(oOptions);\r\n }\r\n return result;\r\n };\r\n this.start = this.play;\r\n this.setPlaybackRate = function(sID, rate, allowOverride) {\r\n if (!idCheck(sID)) return false;\r\n return sm2.sounds[sID].setPlaybackRate(rate, allowOverride);\r\n };\r\n this.setPosition = function(sID, nMsecOffset) {\r\n if (!idCheck(sID)) return false;\r\n return sm2.sounds[sID].setPosition(nMsecOffset);\r\n };\r\n this.stop = function(sID) {\r\n if (!idCheck(sID)) return false;\r\n return sm2.sounds[sID].stop();\r\n };\r\n this.stopAll = function() {\r\n var oSound;\r\n for (oSound in sm2.sounds) {\r\n if (sm2.sounds.hasOwnProperty(oSound)) {\r\n sm2.sounds[oSound].stop();\r\n }\r\n }\r\n };\r\n this.pause = function(sID) {\r\n if (!idCheck(sID)) return false;\r\n return sm2.sounds[sID].pause();\r\n };\r\n this.pauseAll = function() {\r\n var i;\r\n for (i = sm2.soundIDs.length - 1; i >= 0; i--) {\r\n sm2.sounds[sm2.soundIDs[i]].pause();\r\n }\r\n };\r\n this.resume = function(sID) {\r\n if (!idCheck(sID)) return false;\r\n return sm2.sounds[sID].resume();\r\n };\r\n this.resumeAll = function() {\r\n var i;\r\n for (i = sm2.soundIDs.length - 1; i >= 0; i--) {\r\n sm2.sounds[sm2.soundIDs[i]].resume();\r\n }\r\n };\r\n this.togglePause = function(sID) {\r\n if (!idCheck(sID)) return false;\r\n return sm2.sounds[sID].togglePause();\r\n };\r\n this.setPan = function(sID, nPan) {\r\n if (!idCheck(sID)) return false;\r\n return sm2.sounds[sID].setPan(nPan);\r\n };\r\n this.setVolume = function(sID, nVol) {\r\n var i, j;\r\n if (sID !== _undefined && !isNaN(sID) && nVol === _undefined) {\r\n for (i = 0, j = sm2.soundIDs.length; i < j; i++) {\r\n sm2.sounds[sm2.soundIDs[i]].setVolume(sID);\r\n }\r\n return false;\r\n }\r\n if (!idCheck(sID)) return false;\r\n return sm2.sounds[sID].setVolume(nVol);\r\n };\r\n this.mute = function(sID) {\r\n var i = 0;\r\n if (sID instanceof String) {\r\n sID = null;\r\n }\r\n if (!sID) {\r\n for (i = sm2.soundIDs.length - 1; i >= 0; i--) {\r\n sm2.sounds[sm2.soundIDs[i]].mute();\r\n }\r\n sm2.muted = true;\r\n } else {\r\n if (!idCheck(sID)) return false;\r\n return sm2.sounds[sID].mute();\r\n }\r\n return true;\r\n };\r\n this.muteAll = function() {\r\n sm2.mute();\r\n };\r\n this.unmute = function(sID) {\r\n var i;\r\n if (sID instanceof String) {\r\n sID = null;\r\n }\r\n if (!sID) {\r\n for (i = sm2.soundIDs.length - 1; i >= 0; i--) {\r\n sm2.sounds[sm2.soundIDs[i]].unmute();\r\n }\r\n sm2.muted = false;\r\n } else {\r\n if (!idCheck(sID)) return false;\r\n return sm2.sounds[sID].unmute();\r\n }\r\n return true;\r\n };\r\n this.unmuteAll = function() {\r\n sm2.unmute();\r\n };\r\n this.toggleMute = function(sID) {\r\n if (!idCheck(sID)) return false;\r\n return sm2.sounds[sID].toggleMute();\r\n };\r\n this.getMemoryUse = function() {\r\n var ram = 0;\r\n if (flash && fV !== 8) {\r\n ram = parseInt(flash._getMemoryUse(), 10);\r\n }\r\n return ram;\r\n };\r\n this.disable = function(bNoDisable) {\r\n var i;\r\n if (bNoDisable === _undefined) {\r\n bNoDisable = false;\r\n }\r\n if (disabled) return false;\r\n disabled = true;\r\n for (i = sm2.soundIDs.length - 1; i >= 0; i--) {\r\n disableObject(sm2.sounds[sm2.soundIDs[i]]);\r\n }\r\n disableObject(sm2);\r\n initComplete(bNoDisable);\r\n event.remove(window, 'load', initUserOnload);\r\n return true;\r\n };\r\n this.canPlayMIME = function(sMIME) {\r\n var result;\r\n if (sm2.hasHTML5) {\r\n result = html5CanPlay({\r\n type: sMIME\r\n });\r\n }\r\n if (!result && needsFlash) {\r\n result = (sMIME && sm2.ok() ? !!((fV > 8 ? sMIME.match(netStreamMimeTypes) : null) || sMIME.match(sm2.mimePattern)) : null);\r\n }\r\n return result;\r\n };\r\n this.canPlayURL = function(sURL) {\r\n var result;\r\n if (sm2.hasHTML5) {\r\n result = html5CanPlay({\r\n url: sURL\r\n });\r\n }\r\n if (!result && needsFlash) {\r\n result = (sURL && sm2.ok() ? !!(sURL.match(sm2.filePattern)) : null);\r\n }\r\n return result;\r\n };\r\n this.canPlayLink = function(oLink) {\r\n if (oLink.type !== _undefined && oLink.type && sm2.canPlayMIME(oLink.type)) return true;\r\n return sm2.canPlayURL(oLink.href);\r\n };\r\n this.getSoundById = function(sID, _suppressDebug) {\r\n if (!sID) return null;\r\n var result = sm2.sounds[sID];\r\n return result;\r\n };\r\n this.onready = function(oMethod, oScope) {\r\n var sType = 'onready',\r\n result = false;\r\n if (typeof oMethod === 'function') {\r\n if (!oScope) {\r\n oScope = window;\r\n }\r\n addOnEvent(sType, oMethod, oScope);\r\n processOnEvents();\r\n result = true;\r\n } else {\r\n throw str('needFunction', sType);\r\n }\r\n return result;\r\n };\r\n this.ontimeout = function(oMethod, oScope) {\r\n var sType = 'ontimeout',\r\n result = false;\r\n if (typeof oMethod === 'function') {\r\n if (!oScope) {\r\n oScope = window;\r\n }\r\n addOnEvent(sType, oMethod, oScope);\r\n processOnEvents({ type: sType });\r\n result = true;\r\n } else {\r\n throw str('needFunction', sType);\r\n }\r\n return result;\r\n };\r\n this._writeDebug = function(sText, sTypeOrObject) {\r\n return true;\r\n };\r\n this._wD = this._writeDebug;\r\n this._debug = function() {\r\n };\r\n this.reboot = function(resetEvents, excludeInit) {\r\n var i, j, k;\r\n for (i = sm2.soundIDs.length - 1; i >= 0; i--) {\r\n sm2.sounds[sm2.soundIDs[i]].destruct();\r\n }\r\n if (flash) {\r\n try {\r\n if (isIE) {\r\n oRemovedHTML = flash.innerHTML;\r\n }\r\n oRemoved = flash.parentNode.removeChild(flash);\r\n } catch(e) {\r\n }\r\n }\r\n oRemovedHTML = oRemoved = needsFlash = flash = null;\r\n sm2.enabled = didDCLoaded = didInit = waitingForEI = initPending = didAppend = appendSuccess = disabled = useGlobalHTML5Audio = sm2.swfLoaded = false;\r\n sm2.soundIDs = [];\r\n sm2.sounds = {};\r\n idCounter = 0;\r\n didSetup = false;\r\n if (!resetEvents) {\r\n for (i in on_queue) {\r\n if (on_queue.hasOwnProperty(i)) {\r\n for (j = 0, k = on_queue[i].length; j < k; j++) {\r\n on_queue[i][j].fired = false;\r\n }\r\n }\r\n }\r\n } else {\r\n on_queue = [];\r\n }\r\n sm2.html5 = {\r\n usingFlash: null\r\n };\r\n sm2.flash = {};\r\n sm2.html5Only = false;\r\n sm2.ignoreFlash = false;\r\n window.setTimeout(function() {\r\n if (!excludeInit) {\r\n sm2.beginDelayedInit();\r\n }\r\n }, 20);\r\n return sm2;\r\n };\r\n this.reset = function() {\r\n return sm2.reboot(true, true);\r\n };\r\n this.getMoviePercent = function() {\r\n return (flash && 'PercentLoaded' in flash ? flash.PercentLoaded() : null);\r\n };\r\n this.beginDelayedInit = function() {\r\n windowLoaded = true;\r\n domContentLoaded();\r\n setTimeout(function() {\r\n if (initPending) return false;\r\n createMovie();\r\n initMovie();\r\n initPending = true;\r\n return true;\r\n }, 20);\r\n delayWaitForEI();\r\n };\r\n this.destruct = function() {\r\n sm2.disable(true);\r\n };\r\n SMSound = function(oOptions) {\r\n var s = this, resetProperties, add_html5_events, remove_html5_events, stop_html5_timer, start_html5_timer, attachOnPosition, onplay_called = false, onPositionItems = [], onPositionFired = 0, detachOnPosition, applyFromTo, lastURL = null, lastHTML5State, urlOmitted;\r\n lastHTML5State = {\r\n duration: null,\r\n time: null\r\n };\r\n this.id = oOptions.id;\r\n this.sID = this.id;\r\n this.url = oOptions.url;\r\n this.options = mixin(oOptions);\r\n this.instanceOptions = this.options;\r\n this._iO = this.instanceOptions;\r\n this.pan = this.options.pan;\r\n this.volume = this.options.volume;\r\n this.isHTML5 = false;\r\n this._a = null;\r\n urlOmitted = (!this.url);\r\n this.id3 = {};\r\n this._debug = function() {\r\n };\r\n this.load = function(options) {\r\n var oSound = null, instanceOptions;\r\n if (options !== _undefined) {\r\n s._iO = mixin(options, s.options);\r\n } else {\r\n options = s.options;\r\n s._iO = options;\r\n if (lastURL && lastURL !== s.url) {\r\n s._iO.url = s.url;\r\n s.url = null;\r\n }\r\n }\r\n if (!s._iO.url) {\r\n s._iO.url = s.url;\r\n }\r\n s._iO.url = parseURL(s._iO.url);\r\n s.instanceOptions = s._iO;\r\n instanceOptions = s._iO;\r\n if (!instanceOptions.url && !s.url) {\r\n return s;\r\n }\r\n if (instanceOptions.url === s.url && s.readyState !== 0 && s.readyState !== 2) {\r\n if (s.readyState === 3 && instanceOptions.onload) {\r\n wrapCallback(s, function() {\r\n instanceOptions.onload.apply(s, [(!!s.duration)]);\r\n });\r\n }\r\n return s;\r\n }\r\n s.loaded = false;\r\n s.readyState = 1;\r\n s.playState = 0;\r\n s.id3 = {};\r\n if (html5OK(instanceOptions)) {\r\n oSound = s._setup_html5(instanceOptions);\r\n if (!oSound._called_load) {\r\n s._html5_canplay = false;\r\n if (s.url !== instanceOptions.url) {\r\n s._a.src = instanceOptions.url;\r\n s.setPosition(0);\r\n }\r\n s._a.autobuffer = 'auto';\r\n s._a.preload = 'auto';\r\n s._a._called_load = true;\r\n } else {\r\n }\r\n } else {\r\n if (sm2.html5Only) {\r\n return s;\r\n }\r\n if (s._iO.url && s._iO.url.match(/data:/i)) {\r\n return s;\r\n }\r\n try {\r\n s.isHTML5 = false;\r\n s._iO = policyFix(loopFix(instanceOptions));\r\n if (s._iO.autoPlay && (s._iO.position || s._iO.from)) {\r\n s._iO.autoPlay = false;\r\n }\r\n instanceOptions = s._iO;\r\n if (fV === 8) {\r\n flash._load(s.id, instanceOptions.url, instanceOptions.stream, instanceOptions.autoPlay, instanceOptions.usePolicyFile);\r\n } else {\r\n flash._load(s.id, instanceOptions.url, !!(instanceOptions.stream), !!(instanceOptions.autoPlay), instanceOptions.loops || 1, !!(instanceOptions.autoLoad), instanceOptions.usePolicyFile);\r\n }\r\n } catch(e) {\r\n catchError({\r\n type: 'SMSOUND_LOAD_JS_EXCEPTION',\r\n fatal: true\r\n });\r\n }\r\n }\r\n s.url = instanceOptions.url;\r\n return s;\r\n };\r\n this.unload = function() {\r\n if (s.readyState !== 0) {\r\n if (!s.isHTML5) {\r\n if (fV === 8) {\r\n flash._unload(s.id, emptyURL);\r\n } else {\r\n flash._unload(s.id);\r\n }\r\n } else {\r\n stop_html5_timer();\r\n if (s._a) {\r\n s._a.pause();\r\n lastURL = html5Unload(s._a);\r\n }\r\n }\r\n resetProperties();\r\n }\r\n return s;\r\n };\r\n this.destruct = function(_bFromSM) {\r\n if (!s.isHTML5) {\r\n s._iO.onfailure = null;\r\n flash._destroySound(s.id);\r\n } else {\r\n stop_html5_timer();\r\n if (s._a) {\r\n s._a.pause();\r\n html5Unload(s._a);\r\n if (!useGlobalHTML5Audio) {\r\n remove_html5_events();\r\n }\r\n s._a._s = null;\r\n s._a = null;\r\n }\r\n }\r\n if (!_bFromSM) {\r\n sm2.destroySound(s.id, true);\r\n }\r\n };\r\n this.play = function(options, _updatePlayState) {\r\n var fN, allowMulti, a, onready,\r\n audioClone, onended, oncanplay,\r\n startOK = true;\r\n _updatePlayState = (_updatePlayState === _undefined ? true : _updatePlayState);\r\n if (!options) {\r\n options = {};\r\n }\r\n if (s.url) {\r\n s._iO.url = s.url;\r\n }\r\n s._iO = mixin(s._iO, s.options);\r\n s._iO = mixin(options, s._iO);\r\n s._iO.url = parseURL(s._iO.url);\r\n s.instanceOptions = s._iO;\r\n if (!s.isHTML5 && s._iO.serverURL && !s.connected) {\r\n if (!s.getAutoPlay()) {\r\n s.setAutoPlay(true);\r\n }\r\n return s;\r\n }\r\n if (html5OK(s._iO)) {\r\n s._setup_html5(s._iO);\r\n start_html5_timer();\r\n }\r\n if (s.playState === 1 && !s.paused) {\r\n allowMulti = s._iO.multiShot;\r\n if (!allowMulti) {\r\n if (s.isHTML5) {\r\n s.setPosition(s._iO.position);\r\n }\r\n return s;\r\n }\r\n }\r\n if (options.url && options.url !== s.url) {\r\n if (!s.readyState && !s.isHTML5 && fV === 8 && urlOmitted) {\r\n urlOmitted = false;\r\n } else {\r\n s.load(s._iO);\r\n }\r\n }\r\n if (!s.loaded) {\r\n if (s.readyState === 0) {\r\n if (!s.isHTML5 && !sm2.html5Only) {\r\n s._iO.autoPlay = true;\r\n s.load(s._iO);\r\n } else if (s.isHTML5) {\r\n s.load(s._iO);\r\n } else {\r\n return s;\r\n }\r\n s.instanceOptions = s._iO;\r\n } else if (s.readyState === 2) {\r\n return s;\r\n } else {\r\n }\r\n } else {\r\n }\r\n if (!s.isHTML5 && fV === 9 && s.position > 0 && s.position === s.duration) {\r\n options.position = 0;\r\n }\r\n if (s.paused && s.position >= 0 && (!s._iO.serverURL || s.position > 0)) {\r\n s.resume();\r\n } else {\r\n s._iO = mixin(options, s._iO);\r\n if (((!s.isHTML5 && s._iO.position !== null && s._iO.position > 0) || (s._iO.from !== null && s._iO.from > 0) || s._iO.to !== null) && s.instanceCount === 0 && s.playState === 0 && !s._iO.serverURL) {\r\n onready = function() {\r\n s._iO = mixin(options, s._iO);\r\n s.play(s._iO);\r\n };\r\n if (s.isHTML5 && !s._html5_canplay) {\r\n s.load({\r\n _oncanplay: onready\r\n });\r\n } else if (!s.isHTML5 && !s.loaded && (!s.readyState || s.readyState !== 2)) {\r\n s.load({\r\n onload: onready\r\n });\r\n }\r\n s._iO = applyFromTo();\r\n }\r\n if (!s.instanceCount || s._iO.multiShotEvents || (s.isHTML5 && s._iO.multiShot && !useGlobalHTML5Audio) || (!s.isHTML5 && fV > 8 && !s.getAutoPlay())) {\r\n s.instanceCount++;\r\n }\r\n if (s._iO.onposition && s.playState === 0) {\r\n attachOnPosition(s);\r\n }\r\n s.playState = 1;\r\n s.paused = false;\r\n s.position = (s._iO.position !== _undefined && !isNaN(s._iO.position) ? s._iO.position : 0);\r\n if (!s.isHTML5) {\r\n s._iO = policyFix(loopFix(s._iO));\r\n }\r\n if (s._iO.onplay && _updatePlayState) {\r\n s._iO.onplay.apply(s);\r\n onplay_called = true;\r\n }\r\n s.setVolume(s._iO.volume, true);\r\n s.setPan(s._iO.pan, true);\r\n if (s._iO.playbackRate !== 1) {\r\n s.setPlaybackRate(s._iO.playbackRate);\r\n }\r\n if (!s.isHTML5) {\r\n startOK = flash._start(s.id, s._iO.loops || 1, (fV === 9 ? s.position : s.position / msecScale), s._iO.multiShot || false);\r\n if (fV === 9 && !startOK) {\r\n if (s._iO.onplayerror) {\r\n s._iO.onplayerror.apply(s);\r\n }\r\n }\r\n } else if (s.instanceCount < 2) {\r\n start_html5_timer();\r\n a = s._setup_html5();\r\n s.setPosition(s._iO.position);\r\n a.play();\r\n } else {\r\n audioClone = new Audio(s._iO.url);\r\n onended = function() {\r\n event.remove(audioClone, 'ended', onended);\r\n s._onfinish(s);\r\n html5Unload(audioClone);\r\n audioClone = null;\r\n };\r\n oncanplay = function() {\r\n event.remove(audioClone, 'canplay', oncanplay);\r\n try {\r\n audioClone.currentTime = s._iO.position / msecScale;\r\n } catch(err) {\r\n }\r\n audioClone.play();\r\n };\r\n event.add(audioClone, 'ended', onended);\r\n if (s._iO.volume !== _undefined) {\r\n audioClone.volume = Math.max(0, Math.min(1, s._iO.volume / 100));\r\n }\r\n if (s.muted) {\r\n audioClone.muted = true;\r\n }\r\n if (s._iO.position) {\r\n event.add(audioClone, 'canplay', oncanplay);\r\n } else {\r\n audioClone.play();\r\n }\r\n }\r\n }\r\n return s;\r\n };\r\n this.start = this.play;\r\n this.stop = function(bAll) {\r\n var instanceOptions = s._iO,\r\n originalPosition;\r\n if (s.playState === 1) {\r\n s._onbufferchange(0);\r\n s._resetOnPosition(0);\r\n s.paused = false;\r\n if (!s.isHTML5) {\r\n s.playState = 0;\r\n }\r\n detachOnPosition();\r\n if (instanceOptions.to) {\r\n s.clearOnPosition(instanceOptions.to);\r\n }\r\n if (!s.isHTML5) {\r\n flash._stop(s.id, bAll);\r\n if (instanceOptions.serverURL) {\r\n s.unload();\r\n }\r\n } else if (s._a) {\r\n originalPosition = s.position;\r\n s.setPosition(0);\r\n s.position = originalPosition;\r\n s._a.pause();\r\n s.playState = 0;\r\n s._onTimer();\r\n stop_html5_timer();\r\n }\r\n s.instanceCount = 0;\r\n s._iO = {};\r\n if (instanceOptions.onstop) {\r\n instanceOptions.onstop.apply(s);\r\n }\r\n }\r\n return s;\r\n };\r\n this.setAutoPlay = function(autoPlay) {\r\n s._iO.autoPlay = autoPlay;\r\n if (!s.isHTML5) {\r\n flash._setAutoPlay(s.id, autoPlay);\r\n if (autoPlay) {\r\n if (!s.instanceCount && s.readyState === 1) {\r\n s.instanceCount++;\r\n }\r\n }\r\n }\r\n };\r\n this.getAutoPlay = function() {\r\n return s._iO.autoPlay;\r\n };\r\n this.setPlaybackRate = function(playbackRate) {\r\n var normalizedRate = Math.max(0.5, Math.min(4, playbackRate));\r\n if (s.isHTML5) {\r\n try {\r\n s._iO.playbackRate = normalizedRate;\r\n s._a.playbackRate = normalizedRate;\r\n } catch(e) {\r\n }\r\n }\r\n return s;\r\n };\r\n this.setPosition = function(nMsecOffset) {\r\n if (nMsecOffset === _undefined) {\r\n nMsecOffset = 0;\r\n }\r\n var position, position1K,\r\n offset = (s.isHTML5 ? Math.max(nMsecOffset, 0) : Math.min(s.duration || s._iO.duration, Math.max(nMsecOffset, 0)));\r\n s.position = offset;\r\n position1K = s.position / msecScale;\r\n s._resetOnPosition(s.position);\r\n s._iO.position = offset;\r\n if (!s.isHTML5) {\r\n position = (fV === 9 ? s.position : position1K);\r\n if (s.readyState && s.readyState !== 2) {\r\n flash._setPosition(s.id, position, (s.paused || !s.playState), s._iO.multiShot);\r\n }\r\n } else if (s._a) {\r\n if (s._html5_canplay) {\r\n if (s._a.currentTime.toFixed(3) !== position1K.toFixed(3)) {\r\n try {\r\n s._a.currentTime = position1K;\r\n if (s.playState === 0 || s.paused) {\r\n s._a.pause();\r\n }\r\n } catch(e) {\r\n }\r\n }\r\n } else if (position1K) {\r\n return s;\r\n }\r\n if (s.paused) {\r\n s._onTimer(true);\r\n }\r\n }\r\n return s;\r\n };\r\n this.pause = function(_bCallFlash) {\r\n if (s.paused || (s.playState === 0 && s.readyState !== 1)) return s;\r\n s.paused = true;\r\n if (!s.isHTML5) {\r\n if (_bCallFlash || _bCallFlash === _undefined) {\r\n flash._pause(s.id, s._iO.multiShot);\r\n }\r\n } else {\r\n s._setup_html5().pause();\r\n stop_html5_timer();\r\n }\r\n if (s._iO.onpause) {\r\n s._iO.onpause.apply(s);\r\n }\r\n return s;\r\n };\r\n this.resume = function() {\r\n var instanceOptions = s._iO;\r\n if (!s.paused) return s;\r\n s.paused = false;\r\n s.playState = 1;\r\n if (!s.isHTML5) {\r\n if (instanceOptions.isMovieStar && !instanceOptions.serverURL) {\r\n s.setPosition(s.position);\r\n }\r\n flash._pause(s.id, instanceOptions.multiShot);\r\n } else {\r\n s._setup_html5().play();\r\n start_html5_timer();\r\n }\r\n if (!onplay_called && instanceOptions.onplay) {\r\n instanceOptions.onplay.apply(s);\r\n onplay_called = true;\r\n } else if (instanceOptions.onresume) {\r\n instanceOptions.onresume.apply(s);\r\n }\r\n return s;\r\n };\r\n this.togglePause = function() {\r\n if (s.playState === 0) {\r\n s.play({\r\n position: (fV === 9 && !s.isHTML5 ? s.position : s.position / msecScale)\r\n });\r\n return s;\r\n }\r\n if (s.paused) {\r\n s.resume();\r\n } else {\r\n s.pause();\r\n }\r\n return s;\r\n };\r\n this.setPan = function(nPan, bInstanceOnly) {\r\n if (nPan === _undefined) {\r\n nPan = 0;\r\n }\r\n if (bInstanceOnly === _undefined) {\r\n bInstanceOnly = false;\r\n }\r\n if (!s.isHTML5) {\r\n flash._setPan(s.id, nPan);\r\n }\r\n s._iO.pan = nPan;\r\n if (!bInstanceOnly) {\r\n s.pan = nPan;\r\n s.options.pan = nPan;\r\n }\r\n return s;\r\n };\r\n this.setVolume = function(nVol, _bInstanceOnly) {\r\n if (nVol === _undefined) {\r\n nVol = 100;\r\n }\r\n if (_bInstanceOnly === _undefined) {\r\n _bInstanceOnly = false;\r\n }\r\n if (!s.isHTML5) {\r\n flash._setVolume(s.id, (sm2.muted && !s.muted) || s.muted ? 0 : nVol);\r\n } else if (s._a) {\r\n if (sm2.muted && !s.muted) {\r\n s.muted = true;\r\n s._a.muted = true;\r\n }\r\n s._a.volume = Math.max(0, Math.min(1, nVol / 100));\r\n }\r\n s._iO.volume = nVol;\r\n if (!_bInstanceOnly) {\r\n s.volume = nVol;\r\n s.options.volume = nVol;\r\n }\r\n return s;\r\n };\r\n this.mute = function() {\r\n s.muted = true;\r\n if (!s.isHTML5) {\r\n flash._setVolume(s.id, 0);\r\n } else if (s._a) {\r\n s._a.muted = true;\r\n }\r\n return s;\r\n };\r\n this.unmute = function() {\r\n s.muted = false;\r\n var hasIO = (s._iO.volume !== _undefined);\r\n if (!s.isHTML5) {\r\n flash._setVolume(s.id, hasIO ? s._iO.volume : s.options.volume);\r\n } else if (s._a) {\r\n s._a.muted = false;\r\n }\r\n return s;\r\n };\r\n this.toggleMute = function() {\r\n return (s.muted ? s.unmute() : s.mute());\r\n };\r\n this.onPosition = function(nPosition, oMethod, oScope) {\r\n onPositionItems.push({\r\n position: parseInt(nPosition, 10),\r\n method: oMethod,\r\n scope: (oScope !== _undefined ? oScope : s),\r\n fired: false\r\n });\r\n return s;\r\n };\r\n this.onposition = this.onPosition;\r\n this.clearOnPosition = function(nPosition, oMethod) {\r\n var i;\r\n nPosition = parseInt(nPosition, 10);\r\n if (isNaN(nPosition)) {\r\n return;\r\n }\r\n for (i = 0; i < onPositionItems.length; i++) {\r\n if (nPosition === onPositionItems[i].position) {\r\n if (!oMethod || (oMethod === onPositionItems[i].method)) {\r\n if (onPositionItems[i].fired) {\r\n onPositionFired--;\r\n }\r\n onPositionItems.splice(i, 1);\r\n }\r\n }\r\n }\r\n };\r\n this._processOnPosition = function() {\r\n var i, item, j = onPositionItems.length;\r\n if (!j || !s.playState || onPositionFired >= j) return false;\r\n for (i = j - 1; i >= 0; i--) {\r\n item = onPositionItems[i];\r\n if (!item.fired && s.position >= item.position) {\r\n item.fired = true;\r\n onPositionFired++;\r\n item.method.apply(item.scope, [item.position]);\r\n j = onPositionItems.length;\r\n }\r\n }\r\n return true;\r\n };\r\n this._resetOnPosition = function(nPosition) {\r\n var i, item, j = onPositionItems.length;\r\n if (!j) return false;\r\n for (i = j - 1; i >= 0; i--) {\r\n item = onPositionItems[i];\r\n if (item.fired && nPosition <= item.position) {\r\n item.fired = false;\r\n onPositionFired--;\r\n }\r\n }\r\n return true;\r\n };\r\n applyFromTo = function() {\r\n var instanceOptions = s._iO,\r\n f = instanceOptions.from,\r\n t = instanceOptions.to,\r\n start, end;\r\n end = function() {\r\n s.clearOnPosition(t, end);\r\n s.stop();\r\n };\r\n start = function() {\r\n if (t !== null && !isNaN(t)) {\r\n s.onPosition(t, end);\r\n }\r\n };\r\n if (f !== null && !isNaN(f)) {\r\n instanceOptions.position = f;\r\n instanceOptions.multiShot = false;\r\n start();\r\n }\r\n return instanceOptions;\r\n };\r\n attachOnPosition = function() {\r\n var item,\r\n op = s._iO.onposition;\r\n if (op) {\r\n for (item in op) {\r\n if (op.hasOwnProperty(item)) {\r\n s.onPosition(parseInt(item, 10), op[item]);\r\n }\r\n }\r\n }\r\n };\r\n detachOnPosition = function() {\r\n var item,\r\n op = s._iO.onposition;\r\n if (op) {\r\n for (item in op) {\r\n if (op.hasOwnProperty(item)) {\r\n s.clearOnPosition(parseInt(item, 10));\r\n }\r\n }\r\n }\r\n };\r\n start_html5_timer = function() {\r\n if (s.isHTML5) {\r\n startTimer(s);\r\n }\r\n };\r\n stop_html5_timer = function() {\r\n if (s.isHTML5) {\r\n stopTimer(s);\r\n }\r\n };\r\n resetProperties = function(retainPosition) {\r\n if (!retainPosition) {\r\n onPositionItems = [];\r\n onPositionFired = 0;\r\n }\r\n onplay_called = false;\r\n s._hasTimer = null;\r\n s._a = null;\r\n s._html5_canplay = false;\r\n s.bytesLoaded = null;\r\n s.bytesTotal = null;\r\n s.duration = (s._iO && s._iO.duration ? s._iO.duration : null);\r\n s.durationEstimate = null;\r\n s.buffered = [];\r\n s.eqData = [];\r\n s.eqData.left = [];\r\n s.eqData.right = [];\r\n s.failures = 0;\r\n s.isBuffering = false;\r\n s.instanceOptions = {};\r\n s.instanceCount = 0;\r\n s.loaded = false;\r\n s.metadata = {};\r\n s.readyState = 0;\r\n s.muted = false;\r\n s.paused = false;\r\n s.peakData = {\r\n left: 0,\r\n right: 0\r\n };\r\n s.waveformData = {\r\n left: [],\r\n right: []\r\n };\r\n s.playState = 0;\r\n s.position = null;\r\n s.id3 = {};\r\n };\r\n resetProperties();\r\n this._onTimer = function(bForce) {\r\n var duration, isNew = false, time, x = {};\r\n if (s._hasTimer || bForce) {\r\n if (s._a && (bForce || ((s.playState > 0 || s.readyState === 1) && !s.paused))) {\r\n duration = s._get_html5_duration();\r\n if (duration !== lastHTML5State.duration) {\r\n lastHTML5State.duration = duration;\r\n s.duration = duration;\r\n isNew = true;\r\n }\r\n s.durationEstimate = s.duration;\r\n time = (s._a.currentTime * msecScale || 0);\r\n if (time !== lastHTML5State.time) {\r\n lastHTML5State.time = time;\r\n isNew = true;\r\n }\r\n if (isNew || bForce) {\r\n s._whileplaying(time, x, x, x, x);\r\n }\r\n }\r\n }\r\n return isNew;\r\n };\r\n this._get_html5_duration = function() {\r\n var instanceOptions = s._iO,\r\n d = (s._a && s._a.duration ? s._a.duration * msecScale : (instanceOptions && instanceOptions.duration ? instanceOptions.duration : null)),\r\n result = (d && !isNaN(d) && d !== Infinity ? d : null);\r\n return result;\r\n };\r\n this._apply_loop = function(a, nLoops) {\r\n a.loop = (nLoops > 1 ? 'loop' : '');\r\n };\r\n this._setup_html5 = function(options) {\r\n var instanceOptions = mixin(s._iO, options),\r\n a = useGlobalHTML5Audio ? globalHTML5Audio : s._a,\r\n dURL = decodeURI(instanceOptions.url),\r\n sameURL;\r\n if (useGlobalHTML5Audio) {\r\n if (dURL === decodeURI(lastGlobalHTML5URL)) {\r\n sameURL = true;\r\n }\r\n } else if (dURL === decodeURI(lastURL)) {\r\n sameURL = true;\r\n }\r\n if (a) {\r\n if (a._s) {\r\n if (useGlobalHTML5Audio) {\r\n if (a._s && a._s.playState && !sameURL) {\r\n a._s.stop();\r\n }\r\n } else if (!useGlobalHTML5Audio && dURL === decodeURI(lastURL)) {\r\n s._apply_loop(a, instanceOptions.loops);\r\n return a;\r\n }\r\n }\r\n if (!sameURL) {\r\n if (lastURL) {\r\n resetProperties(false);\r\n }\r\n a.src = instanceOptions.url;\r\n s.url = instanceOptions.url;\r\n lastURL = instanceOptions.url;\r\n lastGlobalHTML5URL = instanceOptions.url;\r\n a._called_load = false;\r\n }\r\n } else {\r\n if (instanceOptions.autoLoad || instanceOptions.autoPlay) {\r\n s._a = new Audio(instanceOptions.url);\r\n s._a.load();\r\n } else {\r\n s._a = (isOpera && opera.version() < 10 ? new Audio(null) : new Audio());\r\n }\r\n a = s._a;\r\n a._called_load = false;\r\n if (useGlobalHTML5Audio) {\r\n globalHTML5Audio = a;\r\n }\r\n }\r\n s.isHTML5 = true;\r\n s._a = a;\r\n a._s = s;\r\n add_html5_events();\r\n s._apply_loop(a, instanceOptions.loops);\r\n if (instanceOptions.autoLoad || instanceOptions.autoPlay) {\r\n s.load();\r\n } else {\r\n a.autobuffer = false;\r\n a.preload = 'auto';\r\n }\r\n return a;\r\n };\r\n add_html5_events = function() {\r\n if (s._a._added_events) return false;\r\n var f;\r\n function add(oEvt, oFn, bCapture) {\r\n return s._a ? s._a.addEventListener(oEvt, oFn, bCapture || false) : null;\r\n }\r\n s._a._added_events = true;\r\n for (f in html5_events) {\r\n if (html5_events.hasOwnProperty(f)) {\r\n add(f, html5_events[f]);\r\n }\r\n }\r\n return true;\r\n };\r\n remove_html5_events = function() {\r\n var f;\r\n function remove(oEvt, oFn, bCapture) {\r\n return (s._a ? s._a.removeEventListener(oEvt, oFn, bCapture || false) : null);\r\n }\r\n s._a._added_events = false;\r\n for (f in html5_events) {\r\n if (html5_events.hasOwnProperty(f)) {\r\n remove(f, html5_events[f]);\r\n }\r\n }\r\n };\r\n this._onload = function(nSuccess) {\r\n var fN,\r\n loadOK = !!nSuccess || (!s.isHTML5 && fV === 8 && s.duration);\r\n s.loaded = loadOK;\r\n s.readyState = (loadOK ? 3 : 2);\r\n s._onbufferchange(0);\r\n if (!loadOK && !s.isHTML5) {\r\n s._onerror();\r\n }\r\n if (s._iO.onload) {\r\n wrapCallback(s, function() {\r\n s._iO.onload.apply(s, [loadOK]);\r\n });\r\n }\r\n return true;\r\n };\r\n this._onerror = function(errorCode, description) {\r\n if (s._iO.onerror) {\r\n wrapCallback(s, function() {\r\n s._iO.onerror.apply(s, [errorCode, description]);\r\n });\r\n }\r\n };\r\n this._onbufferchange = function(nIsBuffering) {\r\n if (s.playState === 0) return false;\r\n if ((nIsBuffering && s.isBuffering) || (!nIsBuffering && !s.isBuffering)) return false;\r\n s.isBuffering = (nIsBuffering === 1);\r\n if (s._iO.onbufferchange) {\r\n s._iO.onbufferchange.apply(s, [nIsBuffering]);\r\n }\r\n return true;\r\n };\r\n this._onsuspend = function() {\r\n if (s._iO.onsuspend) {\r\n s._iO.onsuspend.apply(s);\r\n }\r\n return true;\r\n };\r\n this._onfailure = function(msg, level, code) {\r\n s.failures++;\r\n if (s._iO.onfailure && s.failures === 1) {\r\n s._iO.onfailure(msg, level, code);\r\n } else {\r\n }\r\n };\r\n this._onwarning = function(msg, level, code) {\r\n if (s._iO.onwarning) {\r\n s._iO.onwarning(msg, level, code);\r\n }\r\n };\r\n this._onfinish = function() {\r\n var io_onfinish = s._iO.onfinish;\r\n s._onbufferchange(0);\r\n s._resetOnPosition(0);\r\n if (s.instanceCount) {\r\n s.instanceCount--;\r\n if (!s.instanceCount) {\r\n detachOnPosition();\r\n s.playState = 0;\r\n s.paused = false;\r\n s.instanceCount = 0;\r\n s.instanceOptions = {};\r\n s._iO = {};\r\n stop_html5_timer();\r\n if (s.isHTML5) {\r\n s.position = 0;\r\n }\r\n }\r\n if (!s.instanceCount || s._iO.multiShotEvents) {\r\n if (io_onfinish) {\r\n wrapCallback(s, function() {\r\n io_onfinish.apply(s);\r\n });\r\n }\r\n }\r\n }\r\n };\r\n this._whileloading = function(nBytesLoaded, nBytesTotal, nDuration, nBufferLength) {\r\n var instanceOptions = s._iO;\r\n s.bytesLoaded = nBytesLoaded;\r\n s.bytesTotal = nBytesTotal;\r\n s.duration = Math.floor(nDuration);\r\n s.bufferLength = nBufferLength;\r\n if (!s.isHTML5 && !instanceOptions.isMovieStar) {\r\n if (instanceOptions.duration) {\r\n s.durationEstimate = (s.duration > instanceOptions.duration) ? s.duration : instanceOptions.duration;\r\n } else {\r\n s.durationEstimate = parseInt((s.bytesTotal / s.bytesLoaded) * s.duration, 10);\r\n }\r\n } else {\r\n s.durationEstimate = s.duration;\r\n }\r\n if (!s.isHTML5) {\r\n s.buffered = [{\r\n start: 0,\r\n end: s.duration\r\n }];\r\n }\r\n if ((s.readyState !== 3 || s.isHTML5) && instanceOptions.whileloading) {\r\n instanceOptions.whileloading.apply(s);\r\n }\r\n };\r\n this._whileplaying = function(nPosition, oPeakData, oWaveformDataLeft, oWaveformDataRight, oEQData) {\r\n var instanceOptions = s._iO,\r\n eqLeft;\r\n if (isNaN(nPosition) || nPosition === null) return false;\r\n s.position = Math.max(0, nPosition);\r\n s._processOnPosition();\r\n if (!s.isHTML5 && fV > 8) {\r\n if (instanceOptions.usePeakData && oPeakData !== _undefined && oPeakData) {\r\n s.peakData = {\r\n left: oPeakData.leftPeak,\r\n right: oPeakData.rightPeak\r\n };\r\n }\r\n if (instanceOptions.useWaveformData && oWaveformDataLeft !== _undefined && oWaveformDataLeft) {\r\n s.waveformData = {\r\n left: oWaveformDataLeft.split(','),\r\n right: oWaveformDataRight.split(',')\r\n };\r\n }\r\n if (instanceOptions.useEQData) {\r\n if (oEQData !== _undefined && oEQData && oEQData.leftEQ) {\r\n eqLeft = oEQData.leftEQ.split(',');\r\n s.eqData = eqLeft;\r\n s.eqData.left = eqLeft;\r\n if (oEQData.rightEQ !== _undefined && oEQData.rightEQ) {\r\n s.eqData.right = oEQData.rightEQ.split(',');\r\n }\r\n }\r\n }\r\n }\r\n if (s.playState === 1) {\r\n if (!s.isHTML5 && fV === 8 && !s.position && s.isBuffering) {\r\n s._onbufferchange(0);\r\n }\r\n if (instanceOptions.whileplaying) {\r\n instanceOptions.whileplaying.apply(s);\r\n }\r\n }\r\n return true;\r\n };\r\n this._oncaptiondata = function(oData) {\r\n s.captiondata = oData;\r\n if (s._iO.oncaptiondata) {\r\n s._iO.oncaptiondata.apply(s, [oData]);\r\n }\r\n };\r\n this._onmetadata = function(oMDProps, oMDData) {\r\n var oData = {}, i, j;\r\n for (i = 0, j = oMDProps.length; i < j; i++) {\r\n oData[oMDProps[i]] = oMDData[i];\r\n }\r\n s.metadata = oData;\r\n if (s._iO.onmetadata) {\r\n s._iO.onmetadata.call(s, s.metadata);\r\n }\r\n };\r\n this._onid3 = function(oID3Props, oID3Data) {\r\n var oData = [], i, j;\r\n for (i = 0, j = oID3Props.length; i < j; i++) {\r\n oData[oID3Props[i]] = oID3Data[i];\r\n }\r\n s.id3 = mixin(s.id3, oData);\r\n if (s._iO.onid3) {\r\n s._iO.onid3.apply(s);\r\n }\r\n };\r\n this._onconnect = function(bSuccess) {\r\n bSuccess = (bSuccess === 1);\r\n s.connected = bSuccess;\r\n if (bSuccess) {\r\n s.failures = 0;\r\n if (idCheck(s.id)) {\r\n if (s.getAutoPlay()) {\r\n s.play(_undefined, s.getAutoPlay());\r\n } else if (s._iO.autoLoad) {\r\n s.load();\r\n }\r\n }\r\n if (s._iO.onconnect) {\r\n s._iO.onconnect.apply(s, [bSuccess]);\r\n }\r\n }\r\n };\r\n this._ondataerror = function(sError) {\r\n if (s.playState > 0) {\r\n if (s._iO.ondataerror) {\r\n s._iO.ondataerror.apply(s);\r\n }\r\n }\r\n };\r\n };\r\n getDocument = function() {\r\n return (doc.body || doc.getElementsByTagName('div')[0]);\r\n };\r\n id = function(sID) {\r\n return doc.getElementById(sID);\r\n };\r\n mixin = function(oMain, oAdd) {\r\n var o1 = (oMain || {}), o2, o;\r\n o2 = (oAdd === _undefined ? sm2.defaultOptions : oAdd);\r\n for (o in o2) {\r\n if (o2.hasOwnProperty(o) && o1[o] === _undefined) {\r\n if (typeof o2[o] !== 'object' || o2[o] === null) {\r\n o1[o] = o2[o];\r\n } else {\r\n o1[o] = mixin(o1[o], o2[o]);\r\n }\r\n }\r\n }\r\n return o1;\r\n };\r\n wrapCallback = function(oSound, callback) {\r\n if (!oSound.isHTML5 && fV === 8) {\r\n window.setTimeout(callback, 0);\r\n } else {\r\n callback();\r\n }\r\n };\r\n extraOptions = {\r\n onready: 1,\r\n ontimeout: 1,\r\n defaultOptions: 1,\r\n flash9Options: 1,\r\n movieStarOptions: 1\r\n };\r\n assign = function(o, oParent) {\r\n var i,\r\n result = true,\r\n hasParent = (oParent !== _undefined),\r\n setupOptions = sm2.setupOptions,\r\n bonusOptions = extraOptions;\r\n for (i in o) {\r\n if (o.hasOwnProperty(i)) {\r\n if (typeof o[i] !== 'object' || o[i] === null || o[i] instanceof Array || o[i] instanceof RegExp) {\r\n if (hasParent && bonusOptions[oParent] !== _undefined) {\r\n sm2[oParent][i] = o[i];\r\n } else if (setupOptions[i] !== _undefined) {\r\n sm2.setupOptions[i] = o[i];\r\n sm2[i] = o[i];\r\n } else if (bonusOptions[i] === _undefined) {\r\n result = false;\r\n } else if (sm2[i] instanceof Function) {\r\n sm2[i].apply(sm2, (o[i] instanceof Array ? o[i] : [o[i]]));\r\n } else {\r\n sm2[i] = o[i];\r\n }\r\n } else if (bonusOptions[i] === _undefined) {\r\n result = false;\r\n } else {\r\n return assign(o[i], i);\r\n }\r\n }\r\n }\r\n return result;\r\n };\r\n function preferFlashCheck(kind) {\r\n return (sm2.preferFlash && hasFlash && !sm2.ignoreFlash && (sm2.flash[kind] !== _undefined && sm2.flash[kind]));\r\n }\r\n event = (function() {\r\n var old = (window.attachEvent),\r\n evt = {\r\n add: (old ? 'attachEvent' : 'addEventListener'),\r\n remove: (old ? 'detachEvent' : 'removeEventListener')\r\n };\r\n function getArgs(oArgs) {\r\n var args = slice.call(oArgs),\r\n len = args.length;\r\n if (old) {\r\n args[1] = 'on' + args[1];\r\n if (len > 3) {\r\n args.pop();\r\n }\r\n } else if (len === 3) {\r\n args.push(false);\r\n }\r\n return args;\r\n }\r\n function apply(args, sType) {\r\n var element = args.shift(),\r\n method = [evt[sType]];\r\n if (old) {\r\n element[method](args[0], args[1]);\r\n } else {\r\n element[method].apply(element, args);\r\n }\r\n }\r\n function add() {\r\n apply(getArgs(arguments), 'add');\r\n }\r\n function remove() {\r\n apply(getArgs(arguments), 'remove');\r\n }\r\n return {\r\n add: add,\r\n remove: remove\r\n };\r\n }());\r\n function html5_event(oFn) {\r\n return function(e) {\r\n var s = this._s,\r\n result;\r\n if (!s || !s._a) {\r\n result = null;\r\n } else {\r\n result = oFn.call(this, e);\r\n }\r\n return result;\r\n };\r\n }\r\n html5_events = {\r\n abort: html5_event(function() {\r\n }),\r\n canplay: html5_event(function() {\r\n var s = this._s,\r\n position1K;\r\n if (s._html5_canplay) {\r\n return;\r\n }\r\n s._html5_canplay = true;\r\n s._onbufferchange(0);\r\n position1K = (s._iO.position !== _undefined && !isNaN(s._iO.position) ? s._iO.position / msecScale : null);\r\n if (this.currentTime !== position1K) {\r\n try {\r\n this.currentTime = position1K;\r\n } catch(ee) {\r\n }\r\n }\r\n if (s._iO._oncanplay) {\r\n s._iO._oncanplay();\r\n }\r\n }),\r\n canplaythrough: html5_event(function() {\r\n var s = this._s;\r\n if (!s.loaded) {\r\n s._onbufferchange(0);\r\n s._whileloading(s.bytesLoaded, s.bytesTotal, s._get_html5_duration());\r\n s._onload(true);\r\n }\r\n }),\r\n durationchange: html5_event(function() {\r\n var s = this._s,\r\n duration;\r\n duration = s._get_html5_duration();\r\n if (!isNaN(duration) && duration !== s.duration) {\r\n s.durationEstimate = s.duration = duration;\r\n }\r\n }),\r\n ended: html5_event(function() {\r\n var s = this._s;\r\n s._onfinish();\r\n }),\r\n error: html5_event(function() {\r\n var description = (html5ErrorCodes[this.error.code] || null);\r\n this._s._onload(false);\r\n this._s._onerror(this.error.code, description);\r\n }),\r\n loadeddata: html5_event(function() {\r\n var s = this._s;\r\n if (!s._loaded && !isSafari) {\r\n s.duration = s._get_html5_duration();\r\n }\r\n }),\r\n loadedmetadata: html5_event(function() {\r\n }),\r\n loadstart: html5_event(function() {\r\n this._s._onbufferchange(1);\r\n }),\r\n play: html5_event(function() {\r\n this._s._onbufferchange(0);\r\n }),\r\n playing: html5_event(function() {\r\n this._s._onbufferchange(0);\r\n }),\r\n progress: html5_event(function(e) {\r\n var s = this._s,\r\n i, j, progStr, buffered = 0,\r\n isProgress = (e.type === 'progress'),\r\n ranges = e.target.buffered,\r\n loaded = (e.loaded || 0),\r\n total = (e.total || 1);\r\n s.buffered = [];\r\n if (ranges && ranges.length) {\r\n for (i = 0, j = ranges.length; i < j; i++) {\r\n s.buffered.push({\r\n start: ranges.start(i) * msecScale,\r\n end: ranges.end(i) * msecScale\r\n });\r\n }\r\n buffered = (ranges.end(0) - ranges.start(0)) * msecScale;\r\n loaded = Math.min(1, buffered / (e.target.duration * msecScale));\r\n }\r\n if (!isNaN(loaded)) {\r\n s._whileloading(loaded, total, s._get_html5_duration());\r\n if (loaded && total && loaded === total) {\r\n html5_events.canplaythrough.call(this, e);\r\n }\r\n }\r\n }),\r\n ratechange: html5_event(function() {\r\n }),\r\n suspend: html5_event(function(e) {\r\n var s = this._s;\r\n html5_events.progress.call(this, e);\r\n s._onsuspend();\r\n }),\r\n stalled: html5_event(function() {\r\n }),\r\n timeupdate: html5_event(function() {\r\n this._s._onTimer();\r\n }),\r\n waiting: html5_event(function() {\r\n var s = this._s;\r\n s._onbufferchange(1);\r\n })\r\n };\r\n html5OK = function(iO) {\r\n var result;\r\n if (!iO || (!iO.type && !iO.url && !iO.serverURL)) {\r\n result = false;\r\n } else if (iO.serverURL || (iO.type && preferFlashCheck(iO.type))) {\r\n result = false;\r\n } else {\r\n result = ((iO.type ? html5CanPlay({ type: iO.type }) : html5CanPlay({ url: iO.url }) || sm2.html5Only || iO.url.match(/data:/i)));\r\n }\r\n return result;\r\n };\r\n html5Unload = function(oAudio) {\r\n var url;\r\n if (oAudio) {\r\n url = (isSafari ? emptyURL : (sm2.html5.canPlayType('audio/wav') ? emptyWAV : emptyURL));\r\n oAudio.src = url;\r\n if (oAudio._called_unload !== _undefined) {\r\n oAudio._called_load = false;\r\n }\r\n }\r\n if (useGlobalHTML5Audio) {\r\n lastGlobalHTML5URL = null;\r\n }\r\n return url;\r\n };\r\n html5CanPlay = function(o) {\r\n if (!sm2.useHTML5Audio || !sm2.hasHTML5) return false;\r\n var url = (o.url || null),\r\n mime = (o.type || null),\r\n aF = sm2.audioFormats,\r\n result,\r\n offset,\r\n fileExt,\r\n item;\r\n if (mime && sm2.html5[mime] !== _undefined) return (sm2.html5[mime] && !preferFlashCheck(mime));\r\n if (!html5Ext) {\r\n html5Ext = [];\r\n for (item in aF) {\r\n if (aF.hasOwnProperty(item)) {\r\n html5Ext.push(item);\r\n if (aF[item].related) {\r\n html5Ext = html5Ext.concat(aF[item].related);\r\n }\r\n }\r\n }\r\n html5Ext = new RegExp('\\\\.(' + html5Ext.join('|') + ')(\\\\?.*)?$', 'i');\r\n }\r\n fileExt = (url ? url.toLowerCase().match(html5Ext) : null);\r\n if (!fileExt || !fileExt.length) {\r\n if (!mime) {\r\n result = false;\r\n } else {\r\n offset = mime.indexOf(';');\r\n fileExt = (offset !== -1 ? mime.substr(0, offset) : mime).substr(6);\r\n }\r\n } else {\r\n fileExt = fileExt[1];\r\n }\r\n if (fileExt && sm2.html5[fileExt] !== _undefined) {\r\n result = (sm2.html5[fileExt] && !preferFlashCheck(fileExt));\r\n } else {\r\n mime = 'audio/' + fileExt;\r\n result = sm2.html5.canPlayType({ type: mime });\r\n sm2.html5[fileExt] = result;\r\n result = (result && sm2.html5[mime] && !preferFlashCheck(mime));\r\n }\r\n return result;\r\n };\r\n testHTML5 = function() {\r\n if (!sm2.useHTML5Audio || !sm2.hasHTML5) {\r\n sm2.html5.usingFlash = true;\r\n needsFlash = true;\r\n return false;\r\n }\r\n var a = (Audio !== _undefined ? (isOpera && opera.version() < 10 ? new Audio(null) : new Audio()) : null),\r\n item, lookup, support = {}, aF, i;\r\n function cp(m) {\r\n var canPlay, j,\r\n result = false,\r\n isOK = false;\r\n if (!a || typeof a.canPlayType !== 'function') return result;\r\n if (m instanceof Array) {\r\n for (i = 0, j = m.length; i < j; i++) {\r\n if (sm2.html5[m[i]] || a.canPlayType(m[i]).match(sm2.html5Test)) {\r\n isOK = true;\r\n sm2.html5[m[i]] = true;\r\n sm2.flash[m[i]] = !!(m[i].match(flashMIME));\r\n }\r\n }\r\n result = isOK;\r\n } else {\r\n canPlay = (a && typeof a.canPlayType === 'function' ? a.canPlayType(m) : false);\r\n result = !!(canPlay && (canPlay.match(sm2.html5Test)));\r\n }\r\n return result;\r\n }\r\n aF = sm2.audioFormats;\r\n for (item in aF) {\r\n if (aF.hasOwnProperty(item)) {\r\n lookup = 'audio/' + item;\r\n support[item] = cp(aF[item].type);\r\n support[lookup] = support[item];\r\n if (item.match(flashMIME)) {\r\n sm2.flash[item] = true;\r\n sm2.flash[lookup] = true;\r\n } else {\r\n sm2.flash[item] = false;\r\n sm2.flash[lookup] = false;\r\n }\r\n if (aF[item] && aF[item].related) {\r\n for (i = aF[item].related.length - 1; i >= 0; i--) {\r\n support['audio/' + aF[item].related[i]] = support[item];\r\n sm2.html5[aF[item].related[i]] = support[item];\r\n sm2.flash[aF[item].related[i]] = support[item];\r\n }\r\n }\r\n }\r\n }\r\n support.canPlayType = (a ? cp : null);\r\n sm2.html5 = mixin(sm2.html5, support);\r\n sm2.html5.usingFlash = featureCheck();\r\n needsFlash = sm2.html5.usingFlash;\r\n return true;\r\n };\r\n strings = {\r\n };\r\n str = function() {\r\n };\r\n loopFix = function(sOpt) {\r\n if (fV === 8 && sOpt.loops > 1 && sOpt.stream) {\r\n sOpt.stream = false;\r\n }\r\n return sOpt;\r\n };\r\n policyFix = function(sOpt, sPre) {\r\n if (sOpt && !sOpt.usePolicyFile && (sOpt.onid3 || sOpt.usePeakData || sOpt.useWaveformData || sOpt.useEQData)) {\r\n sOpt.usePolicyFile = true;\r\n }\r\n return sOpt;\r\n };\r\n complain = function(sMsg) {\r\n };\r\n doNothing = function() {\r\n return false;\r\n };\r\n disableObject = function(o) {\r\n var oProp;\r\n for (oProp in o) {\r\n if (o.hasOwnProperty(oProp) && typeof o[oProp] === 'function') {\r\n o[oProp] = doNothing;\r\n }\r\n }\r\n oProp = null;\r\n };\r\n failSafely = function(bNoDisable) {\r\n if (bNoDisable === _undefined) {\r\n bNoDisable = false;\r\n }\r\n if (disabled || bNoDisable) {\r\n sm2.disable(bNoDisable);\r\n }\r\n };\r\n normalizeMovieURL = function(movieURL) {\r\n var urlParams = null, url;\r\n if (movieURL) {\r\n if (movieURL.match(/\\.swf(\\?.*)?$/i)) {\r\n urlParams = movieURL.substr(movieURL.toLowerCase().lastIndexOf('.swf?') + 4);\r\n if (urlParams) return movieURL;\r\n } else if (movieURL.lastIndexOf('/') !== movieURL.length - 1) {\r\n movieURL += '/';\r\n }\r\n }\r\n url = (movieURL && movieURL.lastIndexOf('/') !== -1 ? movieURL.substr(0, movieURL.lastIndexOf('/') + 1) : './') + sm2.movieURL;\r\n if (sm2.noSWFCache) {\r\n url += ('?ts=' + new Date().getTime());\r\n }\r\n return url;\r\n };\r\n setVersionInfo = function() {\r\n fV = parseInt(sm2.flashVersion, 10);\r\n if (fV !== 8 && fV !== 9) {\r\n sm2.flashVersion = fV = defaultFlashVersion;\r\n }\r\n var isDebug = (sm2.debugMode || sm2.debugFlash ? '_debug.swf' : '.swf');\r\n if (sm2.useHTML5Audio && !sm2.html5Only && sm2.audioFormats.mp4.required && fV < 9) {\r\n sm2.flashVersion = fV = 9;\r\n }\r\n sm2.version = sm2.versionNumber + (sm2.html5Only ? ' (HTML5-only mode)' : (fV === 9 ? ' (AS3/Flash 9)' : ' (AS2/Flash 8)'));\r\n if (fV > 8) {\r\n sm2.defaultOptions = mixin(sm2.defaultOptions, sm2.flash9Options);\r\n sm2.features.buffering = true;\r\n sm2.defaultOptions = mixin(sm2.defaultOptions, sm2.movieStarOptions);\r\n sm2.filePatterns.flash9 = new RegExp('\\\\.(mp3|' + netStreamTypes.join('|') + ')(\\\\?.*)?$', 'i');\r\n sm2.features.movieStar = true;\r\n } else {\r\n sm2.features.movieStar = false;\r\n }\r\n sm2.filePattern = sm2.filePatterns[(fV !== 8 ? 'flash9' : 'flash8')];\r\n sm2.movieURL = (fV === 8 ? 'soundmanager2.swf' : 'soundmanager2_flash9.swf').replace('.swf', isDebug);\r\n sm2.features.peakData = sm2.features.waveformData = sm2.features.eqData = (fV > 8);\r\n };\r\n setPolling = function(bPolling, bHighPerformance) {\r\n if (!flash) {\r\n return;\r\n }\r\n flash._setPolling(bPolling, bHighPerformance);\r\n };\r\n initDebug = function() {\r\n };\r\n idCheck = this.getSoundById;\r\n getSWFCSS = function() {\r\n var css = [];\r\n if (sm2.debugMode) {\r\n css.push(swfCSS.sm2Debug);\r\n }\r\n if (sm2.debugFlash) {\r\n css.push(swfCSS.flashDebug);\r\n }\r\n if (sm2.useHighPerformance) {\r\n css.push(swfCSS.highPerf);\r\n }\r\n return css.join(' ');\r\n };\r\n flashBlockHandler = function() {\r\n var name = str('fbHandler'),\r\n p = sm2.getMoviePercent(),\r\n css = swfCSS,\r\n error = {\r\n type: 'FLASHBLOCK'\r\n };\r\n if (sm2.html5Only) {\r\n return;\r\n }\r\n if (!sm2.ok()) {\r\n if (needsFlash) {\r\n sm2.oMC.className = getSWFCSS() + ' ' + css.swfDefault + ' ' + (p === null ? css.swfTimedout : css.swfError);\r\n }\r\n sm2.didFlashBlock = true;\r\n processOnEvents({\r\n type: 'ontimeout',\r\n ignoreInit: true,\r\n error: error\r\n });\r\n catchError(error);\r\n } else {\r\n if (sm2.oMC) {\r\n sm2.oMC.className = [getSWFCSS(), css.swfDefault, css.swfLoaded + (sm2.didFlashBlock ? ' ' + css.swfUnblocked : '')].join(' ');\r\n }\r\n }\r\n };\r\n addOnEvent = function(sType, oMethod, oScope) {\r\n if (on_queue[sType] === _undefined) {\r\n on_queue[sType] = [];\r\n }\r\n on_queue[sType].push({\r\n method: oMethod,\r\n scope: (oScope || null),\r\n fired: false\r\n });\r\n };\r\n processOnEvents = function(oOptions) {\r\n if (!oOptions) {\r\n oOptions = {\r\n type: (sm2.ok() ? 'onready' : 'ontimeout')\r\n };\r\n }\r\n if (!didInit && oOptions && !oOptions.ignoreInit) return false;\r\n if (oOptions.type === 'ontimeout' && (sm2.ok() || (disabled && !oOptions.ignoreInit))) return false;\r\n var status = {\r\n success: (oOptions && oOptions.ignoreInit ? sm2.ok() : !disabled)\r\n },\r\n srcQueue = (oOptions && oOptions.type ? on_queue[oOptions.type] || [] : []),\r\n queue = [], i, j,\r\n args = [status],\r\n canRetry = (needsFlash && !sm2.ok());\r\n if (oOptions.error) {\r\n args[0].error = oOptions.error;\r\n }\r\n for (i = 0, j = srcQueue.length; i < j; i++) {\r\n if (srcQueue[i].fired !== true) {\r\n queue.push(srcQueue[i]);\r\n }\r\n }\r\n if (queue.length) {\r\n for (i = 0, j = queue.length; i < j; i++) {\r\n if (queue[i].scope) {\r\n queue[i].method.apply(queue[i].scope, args);\r\n } else {\r\n queue[i].method.apply(this, args);\r\n }\r\n if (!canRetry) {\r\n queue[i].fired = true;\r\n }\r\n }\r\n }\r\n return true;\r\n };\r\n initUserOnload = function() {\r\n window.setTimeout(function() {\r\n if (sm2.useFlashBlock) {\r\n flashBlockHandler();\r\n }\r\n processOnEvents();\r\n if (typeof sm2.onload === 'function') {\r\n sm2.onload.apply(window);\r\n }\r\n if (sm2.waitForWindowLoad) {\r\n event.add(window, 'load', initUserOnload);\r\n }\r\n }, 1);\r\n };\r\n detectFlash = function() {\r\n if (hasFlash !== _undefined) return hasFlash;\r\n var hasPlugin = false, n = navigator, obj, type, types, AX = window.ActiveXObject;\r\n var nP;\r\n try {\r\n nP = n.plugins;\r\n } catch(e) {\r\n nP = undefined;\r\n }\r\n if (nP && nP.length) {\r\n type = 'application/x-shockwave-flash';\r\n types = n.mimeTypes;\r\n if (types && types[type] && types[type].enabledPlugin && types[type].enabledPlugin.description) {\r\n hasPlugin = true;\r\n }\r\n } else if (AX !== _undefined && !ua.match(/MSAppHost/i)) {\r\n try {\r\n obj = new AX('ShockwaveFlash.ShockwaveFlash');\r\n } catch(e) {\r\n obj = null;\r\n }\r\n hasPlugin = (!!obj);\r\n obj = null;\r\n }\r\n hasFlash = hasPlugin;\r\n return hasPlugin;\r\n };\r\n featureCheck = function() {\r\n var flashNeeded,\r\n item,\r\n formats = sm2.audioFormats,\r\n isSpecial = (is_iDevice && !!(ua.match(/os (1|2|3_0|3_1)\\s/i)));\r\n if (isSpecial) {\r\n sm2.hasHTML5 = false;\r\n sm2.html5Only = true;\r\n if (sm2.oMC) {\r\n sm2.oMC.style.display = 'none';\r\n }\r\n } else if (sm2.useHTML5Audio) {\r\n if (!sm2.html5 || !sm2.html5.canPlayType) {\r\n sm2.hasHTML5 = false;\r\n }\r\n }\r\n if (sm2.useHTML5Audio && sm2.hasHTML5) {\r\n canIgnoreFlash = true;\r\n for (item in formats) {\r\n if (formats.hasOwnProperty(item)) {\r\n if (formats[item].required) {\r\n if (!sm2.html5.canPlayType(formats[item].type)) {\r\n canIgnoreFlash = false;\r\n flashNeeded = true;\r\n } else if (sm2.preferFlash && (sm2.flash[item] || sm2.flash[formats[item].type])) {\r\n flashNeeded = true;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n if (sm2.ignoreFlash) {\r\n flashNeeded = false;\r\n canIgnoreFlash = true;\r\n }\r\n sm2.html5Only = (sm2.hasHTML5 && sm2.useHTML5Audio && !flashNeeded);\r\n return (!sm2.html5Only);\r\n };\r\n parseURL = function(url) {\r\n var i, j, urlResult = 0, result;\r\n if (url instanceof Array) {\r\n for (i = 0, j = url.length; i < j; i++) {\r\n if (url[i] instanceof Object) {\r\n if (sm2.canPlayMIME(url[i].type)) {\r\n urlResult = i;\r\n break;\r\n }\r\n } else if (sm2.canPlayURL(url[i])) {\r\n urlResult = i;\r\n break;\r\n }\r\n }\r\n if (url[urlResult].url) {\r\n url[urlResult] = url[urlResult].url;\r\n }\r\n result = url[urlResult];\r\n } else {\r\n result = url;\r\n }\r\n return result;\r\n };\r\n startTimer = function(oSound) {\r\n if (!oSound._hasTimer) {\r\n oSound._hasTimer = true;\r\n if (!mobileHTML5 && sm2.html5PollingInterval) {\r\n if (h5IntervalTimer === null && h5TimerCount === 0) {\r\n h5IntervalTimer = setInterval(timerExecute, sm2.html5PollingInterval);\r\n }\r\n h5TimerCount++;\r\n }\r\n }\r\n };\r\n stopTimer = function(oSound) {\r\n if (oSound._hasTimer) {\r\n oSound._hasTimer = false;\r\n if (!mobileHTML5 && sm2.html5PollingInterval) {\r\n h5TimerCount--;\r\n }\r\n }\r\n };\r\n timerExecute = function() {\r\n var i;\r\n if (h5IntervalTimer !== null && !h5TimerCount) {\r\n clearInterval(h5IntervalTimer);\r\n h5IntervalTimer = null;\r\n return;\r\n }\r\n for (i = sm2.soundIDs.length - 1; i >= 0; i--) {\r\n if (sm2.sounds[sm2.soundIDs[i]].isHTML5 && sm2.sounds[sm2.soundIDs[i]]._hasTimer) {\r\n sm2.sounds[sm2.soundIDs[i]]._onTimer();\r\n }\r\n }\r\n };\r\n catchError = function(options) {\r\n options = (options !== _undefined ? options : {});\r\n if (typeof sm2.onerror === 'function') {\r\n sm2.onerror.apply(window, [{\r\n type: (options.type !== _undefined ? options.type : null)\r\n }]);\r\n }\r\n if (options.fatal !== _undefined && options.fatal) {\r\n sm2.disable();\r\n }\r\n };\r\n badSafariFix = function() {\r\n if (!isBadSafari || !detectFlash()) {\r\n return;\r\n }\r\n var aF = sm2.audioFormats, i, item;\r\n for (item in aF) {\r\n if (aF.hasOwnProperty(item)) {\r\n if (item === 'mp3' || item === 'mp4') {\r\n sm2.html5[item] = false;\r\n if (aF[item] && aF[item].related) {\r\n for (i = aF[item].related.length - 1; i >= 0; i--) {\r\n sm2.html5[aF[item].related[i]] = false;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n };\r\n this._setSandboxType = function(sandboxType) {\r\n };\r\n this._externalInterfaceOK = function(swfVersion) {\r\n if (sm2.swfLoaded) {\r\n return;\r\n }\r\n var e;\r\n sm2.swfLoaded = true;\r\n tryInitOnFocus = false;\r\n if (isBadSafari) {\r\n badSafariFix();\r\n }\r\n setTimeout(init, isIE ? 100 : 1);\r\n };\r\n createMovie = function(movieID, movieURL) {\r\n if (didAppend && appendSuccess) return false;\r\n function initMsg() {\r\n }\r\n if (sm2.html5Only) {\r\n setVersionInfo();\r\n initMsg();\r\n sm2.oMC = id(sm2.movieID);\r\n init();\r\n didAppend = true;\r\n appendSuccess = true;\r\n return false;\r\n }\r\n var remoteURL = (movieURL || sm2.url),\r\n localURL = (sm2.altURL || remoteURL),\r\n swfTitle = 'JS/Flash audio component (SoundManager 2)',\r\n oTarget = getDocument(),\r\n extraClass = getSWFCSS(),\r\n isRTL = null,\r\n html = doc.getElementsByTagName('html')[0],\r\n oEmbed, oMovie, tmp, movieHTML, oEl, s, x, sClass;\r\n isRTL = (html && html.dir && html.dir.match(/rtl/i));\r\n movieID = (movieID === _undefined ? sm2.id : movieID);\r\n function param(name, value) {\r\n return '';\r\n }\r\n setVersionInfo();\r\n sm2.url = normalizeMovieURL(overHTTP ? remoteURL : localURL);\r\n movieURL = sm2.url;\r\n sm2.wmode = (!sm2.wmode && sm2.useHighPerformance ? 'transparent' : sm2.wmode);\r\n if (sm2.wmode !== null && (ua.match(/msie 8/i) || (!isIE && !sm2.useHighPerformance)) && navigator.platform.match(/win32|win64/i)) {\r\n messages.push(strings.spcWmode);\r\n sm2.wmode = null;\r\n }\r\n oEmbed = {\r\n name: movieID,\r\n id: movieID,\r\n src: movieURL,\r\n quality: 'high',\r\n allowScriptAccess: sm2.allowScriptAccess,\r\n bgcolor: sm2.bgColor,\r\n pluginspage: http + 'www.macromedia.com/go/getflashplayer',\r\n title: swfTitle,\r\n type: 'application/x-shockwave-flash',\r\n wmode: sm2.wmode,\r\n hasPriority: 'true'\r\n };\r\n if (sm2.debugFlash) {\r\n oEmbed.FlashVars = 'debug=1';\r\n }\r\n if (!sm2.wmode) {\r\n delete oEmbed.wmode;\r\n }\r\n if (isIE) {\r\n oMovie = doc.createElement('div');\r\n movieHTML = [\r\n '',\r\n param('movie', movieURL),\r\n param('AllowScriptAccess', sm2.allowScriptAccess),\r\n param('quality', oEmbed.quality),\r\n (sm2.wmode ? param('wmode', sm2.wmode) : ''),\r\n param('bgcolor', sm2.bgColor),\r\n param('hasPriority', 'true'),\r\n (sm2.debugFlash ? param('FlashVars', oEmbed.FlashVars) : ''),\r\n ''\r\n ].join('');\r\n } else {\r\n oMovie = doc.createElement('embed');\r\n for (tmp in oEmbed) {\r\n if (oEmbed.hasOwnProperty(tmp)) {\r\n oMovie.setAttribute(tmp, oEmbed[tmp]);\r\n }\r\n }\r\n }\r\n initDebug();\r\n extraClass = getSWFCSS();\r\n oTarget = getDocument();\r\n if (oTarget) {\r\n sm2.oMC = (id(sm2.movieID) || doc.createElement('div'));\r\n if (!sm2.oMC.id) {\r\n sm2.oMC.id = sm2.movieID;\r\n sm2.oMC.className = swfCSS.swfDefault + ' ' + extraClass;\r\n s = null;\r\n oEl = null;\r\n if (!sm2.useFlashBlock) {\r\n if (sm2.useHighPerformance) {\r\n s = {\r\n position: 'fixed',\r\n width: '8px',\r\n height: '8px',\r\n bottom: '0px',\r\n left: '0px',\r\n overflow: 'hidden'\r\n };\r\n } else {\r\n s = {\r\n position: 'absolute',\r\n width: '6px',\r\n height: '6px',\r\n top: '-9999px',\r\n left: '-9999px'\r\n };\r\n if (isRTL) {\r\n s.left = Math.abs(parseInt(s.left, 10)) + 'px';\r\n }\r\n }\r\n }\r\n if (isWebkit) {\r\n sm2.oMC.style.zIndex = 10000;\r\n }\r\n if (!sm2.debugFlash) {\r\n for (x in s) {\r\n if (s.hasOwnProperty(x)) {\r\n sm2.oMC.style[x] = s[x];\r\n }\r\n }\r\n }\r\n try {\r\n if (!isIE) {\r\n sm2.oMC.appendChild(oMovie);\r\n }\r\n oTarget.appendChild(sm2.oMC);\r\n if (isIE) {\r\n oEl = sm2.oMC.appendChild(doc.createElement('div'));\r\n oEl.className = swfCSS.swfBox;\r\n oEl.innerHTML = movieHTML;\r\n }\r\n appendSuccess = true;\r\n } catch(e) {\r\n throw new Error(str('domError') + ' \\n' + e.toString());\r\n }\r\n } else {\r\n sClass = sm2.oMC.className;\r\n sm2.oMC.className = (sClass ? sClass + ' ' : swfCSS.swfDefault) + (extraClass ? ' ' + extraClass : '');\r\n sm2.oMC.appendChild(oMovie);\r\n if (isIE) {\r\n oEl = sm2.oMC.appendChild(doc.createElement('div'));\r\n oEl.className = swfCSS.swfBox;\r\n oEl.innerHTML = movieHTML;\r\n }\r\n appendSuccess = true;\r\n }\r\n }\r\n didAppend = true;\r\n initMsg();\r\n return true;\r\n };\r\n initMovie = function() {\r\n if (sm2.html5Only) {\r\n createMovie();\r\n return false;\r\n }\r\n if (flash) return false;\r\n if (!sm2.url) {\r\n return false;\r\n }\r\n flash = sm2.getMovie(sm2.id);\r\n if (!flash) {\r\n if (!oRemoved) {\r\n createMovie(sm2.id, sm2.url);\r\n } else {\r\n if (!isIE) {\r\n sm2.oMC.appendChild(oRemoved);\r\n } else {\r\n sm2.oMC.innerHTML = oRemovedHTML;\r\n }\r\n oRemoved = null;\r\n didAppend = true;\r\n }\r\n flash = sm2.getMovie(sm2.id);\r\n }\r\n if (typeof sm2.oninitmovie === 'function') {\r\n setTimeout(sm2.oninitmovie, 1);\r\n }\r\n return true;\r\n };\r\n delayWaitForEI = function() {\r\n setTimeout(waitForEI, 1000);\r\n };\r\n rebootIntoHTML5 = function() {\r\n window.setTimeout(function() {\r\n sm2.setup({\r\n preferFlash: false\r\n }).reboot();\r\n sm2.didFlashBlock = true;\r\n sm2.beginDelayedInit();\r\n }, 1);\r\n };\r\n waitForEI = function() {\r\n var p,\r\n loadIncomplete = false;\r\n if (!sm2.url) {\r\n return;\r\n }\r\n if (waitingForEI) {\r\n return;\r\n }\r\n waitingForEI = true;\r\n event.remove(window, 'load', delayWaitForEI);\r\n if (hasFlash && tryInitOnFocus && !isFocused) {\r\n return;\r\n }\r\n if (!didInit) {\r\n p = sm2.getMoviePercent();\r\n if (p > 0 && p < 100) {\r\n loadIncomplete = true;\r\n }\r\n }\r\n setTimeout(function() {\r\n p = sm2.getMoviePercent();\r\n if (loadIncomplete) {\r\n waitingForEI = false;\r\n window.setTimeout(delayWaitForEI, 1);\r\n return;\r\n }\r\n if (!didInit && okToDisable) {\r\n if (p === null) {\r\n if (sm2.useFlashBlock || sm2.flashLoadTimeout === 0) {\r\n if (sm2.useFlashBlock) {\r\n flashBlockHandler();\r\n }\r\n } else if (!sm2.useFlashBlock && canIgnoreFlash) {\r\n rebootIntoHTML5();\r\n } else {\r\n processOnEvents({\r\n type: 'ontimeout',\r\n ignoreInit: true,\r\n error: {\r\n type: 'INIT_FLASHBLOCK'\r\n }\r\n });\r\n }\r\n } else if (sm2.flashLoadTimeout === 0) {\r\n } else if (!sm2.useFlashBlock && canIgnoreFlash) {\r\n rebootIntoHTML5();\r\n } else {\r\n failSafely(true);\r\n }\r\n }\r\n }, sm2.flashLoadTimeout);\r\n };\r\n handleFocus = function() {\r\n function cleanup() {\r\n event.remove(window, 'focus', handleFocus);\r\n }\r\n if (isFocused || !tryInitOnFocus) {\r\n cleanup();\r\n return true;\r\n }\r\n okToDisable = true;\r\n isFocused = true;\r\n waitingForEI = false;\r\n delayWaitForEI();\r\n cleanup();\r\n return true;\r\n };\r\n flushMessages = function() {\r\n };\r\n showSupport = function() {\r\n };\r\n initComplete = function(bNoDisable) {\r\n if (didInit) return false;\r\n if (sm2.html5Only) {\r\n didInit = true;\r\n initUserOnload();\r\n return true;\r\n }\r\n var wasTimeout = (sm2.useFlashBlock && sm2.flashLoadTimeout && !sm2.getMoviePercent()),\r\n result = true,\r\n error;\r\n if (!wasTimeout) {\r\n didInit = true;\r\n }\r\n error = {\r\n type: (!hasFlash && needsFlash ? 'NO_FLASH' : 'INIT_TIMEOUT')\r\n };\r\n if (disabled || bNoDisable) {\r\n if (sm2.useFlashBlock && sm2.oMC) {\r\n sm2.oMC.className = getSWFCSS() + ' ' + (sm2.getMoviePercent() === null ? swfCSS.swfTimedout : swfCSS.swfError);\r\n }\r\n processOnEvents({\r\n type: 'ontimeout',\r\n error: error,\r\n ignoreInit: true\r\n });\r\n catchError(error);\r\n result = false;\r\n } else {\r\n }\r\n if (!disabled) {\r\n if (sm2.waitForWindowLoad && !windowLoaded) {\r\n event.add(window, 'load', initUserOnload);\r\n } else {\r\n initUserOnload();\r\n }\r\n }\r\n return result;\r\n };\r\n setProperties = function() {\r\n var i,\r\n o = sm2.setupOptions;\r\n for (i in o) {\r\n if (o.hasOwnProperty(i)) {\r\n if (sm2[i] === _undefined) {\r\n sm2[i] = o[i];\r\n } else if (sm2[i] !== o[i]) {\r\n sm2.setupOptions[i] = sm2[i];\r\n }\r\n }\r\n }\r\n };\r\n init = function() {\r\n if (didInit) {\r\n return false;\r\n }\r\n function cleanup() {\r\n event.remove(window, 'load', sm2.beginDelayedInit);\r\n }\r\n if (sm2.html5Only) {\r\n if (!didInit) {\r\n cleanup();\r\n sm2.enabled = true;\r\n initComplete();\r\n }\r\n return true;\r\n }\r\n initMovie();\r\n try {\r\n flash._externalInterfaceTest(false);\r\n setPolling(true, (sm2.flashPollingInterval || (sm2.useHighPerformance ? 10 : 50)));\r\n if (!sm2.debugMode) {\r\n flash._disableDebug();\r\n }\r\n sm2.enabled = true;\r\n if (!sm2.html5Only) {\r\n event.add(window, 'unload', doNothing);\r\n }\r\n } catch(e) {\r\n catchError({\r\n type: 'JS_TO_FLASH_EXCEPTION',\r\n fatal: true\r\n });\r\n failSafely(true);\r\n initComplete();\r\n return false;\r\n }\r\n initComplete();\r\n cleanup();\r\n return true;\r\n };\r\n domContentLoaded = function() {\r\n if (didDCLoaded) return false;\r\n didDCLoaded = true;\r\n setProperties();\r\n initDebug();\r\n if (!hasFlash && sm2.hasHTML5) {\r\n sm2.setup({\r\n useHTML5Audio: true,\r\n preferFlash: false\r\n });\r\n }\r\n testHTML5();\r\n if (!hasFlash && needsFlash) {\r\n messages.push(strings.needFlash);\r\n sm2.setup({\r\n flashLoadTimeout: 1\r\n });\r\n }\r\n if (doc.removeEventListener) {\r\n doc.removeEventListener('DOMContentLoaded', domContentLoaded, false);\r\n }\r\n initMovie();\r\n return true;\r\n };\r\n domContentLoadedIE = function() {\r\n if (doc.readyState === 'complete') {\r\n domContentLoaded();\r\n doc.detachEvent('onreadystatechange', domContentLoadedIE);\r\n }\r\n return true;\r\n };\r\n winOnLoad = function() {\r\n windowLoaded = true;\r\n domContentLoaded();\r\n event.remove(window, 'load', winOnLoad);\r\n };\r\n detectFlash();\r\n event.add(window, 'focus', handleFocus);\r\n event.add(window, 'load', delayWaitForEI);\r\n event.add(window, 'load', winOnLoad);\r\n if (doc.addEventListener) {\r\n doc.addEventListener('DOMContentLoaded', domContentLoaded, false);\r\n } else if (doc.attachEvent) {\r\n doc.attachEvent('onreadystatechange', domContentLoadedIE);\r\n } else {\r\n catchError({\r\n type: 'NO_DOM2_EVENTS',\r\n fatal: true\r\n });\r\n }\r\n}\r\n// SM2_DEFER details: http://www.schillmania.com/projects/soundmanager2/doc/getstarted/#lazy-loading\r\nif (window.SM2_DEFER === _undefined || !SM2_DEFER) {\r\n soundManager = new SoundManager();\r\n}\r\nif (typeof module === 'object' && module && typeof module.exports === 'object') {\r\n module.exports.SoundManager = SoundManager;\r\n module.exports.soundManager = soundManager;\r\n} else if (typeof define === 'function' && define.amd) {\r\n define(function() {\r\n function getInstance(smBuilder) {\r\n if (!window.soundManager && smBuilder instanceof Function) {\r\n var instance = smBuilder(SoundManager);\r\n if (instance instanceof SoundManager) {\r\n window.soundManager = instance;\r\n }\r\n }\r\n return window.soundManager;\r\n }\r\n return {\r\n constructor: SoundManager,\r\n getInstance: getInstance\r\n };\r\n });\r\n}\r\n// standard browser case\r\n// constructor\r\nwindow.SoundManager = SoundManager;\r\n// public API, flash callbacks etc.\r\nwindow.soundManager = soundManager;\r\n}(window));\r\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar pendingCalls = [];\nvar initialized = false;\n\nvar soundManager = void 0;\n// Allow server side rendering\nif (typeof window !== 'undefined') {\n if (process.env.NODE_ENV !== 'production') {\n var _require = require('soundmanager2');\n\n soundManager = _require.soundManager;\n } else {\n var _require2 = require('soundmanager2/script/soundmanager2-nodebug');\n\n soundManager = _require2.soundManager;\n }\n\n soundManager.onready(function () {\n pendingCalls.slice().forEach(function (cb) {\n return cb();\n });\n });\n}\n\nfunction _createSound(options, cb) {\n if (soundManager.ok()) {\n cb(soundManager.createSound(options));\n return function () {};\n } else {\n if (!initialized) {\n initialized = true;\n soundManager.beginDelayedInit();\n }\n\n var call = function call() {\n cb(soundManager.createSound(options));\n };\n\n pendingCalls.push(call);\n\n return function () {\n pendingCalls.splice(pendingCalls.indexOf(call), 1);\n };\n }\n}\n\nfunction noop() {}\n\nvar playStatuses = {\n PLAYING: 'PLAYING',\n STOPPED: 'STOPPED',\n PAUSED: 'PAUSED'\n};\n\nvar Sound = function (_React$Component) {\n _inherits(Sound, _React$Component);\n\n function Sound() {\n _classCallCheck(this, Sound);\n\n return _possibleConstructorReturn(this, (Sound.__proto__ || Object.getPrototypeOf(Sound)).apply(this, arguments));\n }\n\n _createClass(Sound, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n var _this2 = this;\n\n this.createSound(function (sound) {\n return _this2.updateSound(sound);\n });\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n this.removeSound();\n }\n }, {\n key: 'componentDidUpdate',\n value: function componentDidUpdate(prevProps) {\n var _this3 = this;\n\n if (this.props.url !== prevProps.url) {\n this.createSound(function (sound) {\n return _this3.updateSound(sound, prevProps);\n });\n } else {\n this.updateSound(this.sound);\n }\n }\n }, {\n key: 'updateSound',\n value: function updateSound(sound) {\n var prevProps = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (!sound) {\n return;\n }\n\n if (this.props.playStatus === playStatuses.PLAYING) {\n if (sound.playState === 0) {\n sound.play();\n }\n\n if (sound.paused) {\n sound.resume();\n }\n } else if (this.props.playStatus === playStatuses.STOPPED) {\n if (sound.playState !== 0) {\n sound.stop();\n }\n } else {\n // this.props.playStatus === playStatuses.PAUSED\n if (!sound.paused) {\n sound.pause();\n }\n }\n\n if (this.props.playFromPosition != null) {\n if (this.props.playFromPosition !== prevProps.playFromPosition) {\n sound.setPosition(this.props.playFromPosition);\n }\n }\n\n if (this.props.position != null) {\n if (sound.position !== this.props.position && Math.round(sound.position) !== Math.round(this.props.position)) {\n\n sound.setPosition(this.props.position);\n }\n }\n\n if (this.props.volume !== prevProps.volume) {\n sound.setVolume(this.props.volume);\n }\n\n if (this.props.playbackRate !== prevProps.playbackRate) {\n sound.setPlaybackRate(this.props.playbackRate);\n }\n }\n }, {\n key: 'createSound',\n value: function createSound(callback) {\n var _this4 = this;\n\n this.removeSound();\n\n var instance = this;\n\n if (!this.props.url) {\n return;\n }\n\n this.stopCreatingSound = _createSound({\n url: this.props.url,\n autoLoad: this.props.autoLoad,\n volume: this.props.volume,\n position: this.props.playFromPosition || this.props.position || 0,\n playbackRate: this.props.playbackRate,\n whileloading: function whileloading() {\n instance.props.onLoading(this);\n },\n whileplaying: function whileplaying() {\n instance.props.onPlaying(this);\n },\n onerror: function onerror(errorCode, description) {\n instance.props.onError(errorCode, description, this);\n },\n onload: function onload() {\n instance.props.onLoad(this);\n },\n onpause: function onpause() {\n instance.props.onPause(this);\n },\n onresume: function onresume() {\n instance.props.onResume(this);\n },\n onstop: function onstop() {\n instance.props.onStop(this);\n },\n onfinish: function onfinish() {\n if (instance.props.loop && instance.props.playStatus === playStatuses.PLAYING) {\n instance.sound.play();\n } else {\n instance.props.onFinishedPlaying();\n }\n },\n onbufferchange: function onbufferchange() {\n instance.props.onBufferChange(this.isBuffering);\n }\n }, function (sound) {\n _this4.sound = sound;\n callback(sound);\n });\n }\n }, {\n key: 'removeSound',\n value: function removeSound() {\n if (this.stopCreatingSound) {\n this.stopCreatingSound();\n delete this.stopCreatingSound;\n }\n\n if (this.sound) {\n try {\n this.sound.destruct();\n } catch (e) {} // eslint-disable-line\n\n delete this.sound;\n }\n }\n }, {\n key: 'render',\n value: function render() {\n return null;\n }\n }]);\n\n return Sound;\n}(_react2.default.Component);\n\nSound.status = playStatuses;\nSound.propTypes = {\n url: _propTypes2.default.string.isRequired,\n playStatus: _propTypes2.default.oneOf(Object.keys(playStatuses)).isRequired,\n position: _propTypes2.default.number,\n playFromPosition: _propTypes2.default.number,\n volume: _propTypes2.default.number,\n playbackRate: _propTypes2.default.number,\n onError: _propTypes2.default.func,\n onLoading: _propTypes2.default.func,\n onLoad: _propTypes2.default.func,\n onPlaying: _propTypes2.default.func,\n onPause: _propTypes2.default.func,\n onResume: _propTypes2.default.func,\n onStop: _propTypes2.default.func,\n onFinishedPlaying: _propTypes2.default.func,\n onBufferChange: _propTypes2.default.func,\n autoLoad: _propTypes2.default.bool,\n loop: _propTypes2.default.bool\n};\nSound.defaultProps = {\n volume: 100,\n playbackRate: 1,\n onError: noop,\n onLoading: noop,\n onPlaying: noop,\n onLoad: noop,\n onPause: noop,\n onResume: noop,\n onStop: noop,\n onFinishedPlaying: noop,\n onBufferChange: noop,\n autoLoad: false,\n loop: false\n};\nexports.default = Sound;"],"names":["window","_undefined","document","Error","soundManager","SoundManager","smURL","smID","this","setupOptions","url","flashVersion","debugMode","debugFlash","useConsole","consoleOnly","waitForWindowLoad","bgColor","useHighPerformance","flashPollingInterval","html5PollingInterval","flashLoadTimeout","wmode","allowScriptAccess","useFlashBlock","useHTML5Audio","forceUseGlobalHTML5Audio","ignoreMobileRestrictions","html5Test","preferFlash","noSWFCache","idPrefix","defaultOptions","autoLoad","autoPlay","from","loops","onid3","onerror","onload","whileloading","onplay","onpause","onresume","whileplaying","onposition","onstop","onfinish","multiShot","multiShotEvents","position","pan","playbackRate","stream","to","type","usePolicyFile","volume","flash9Options","onfailure","isMovieStar","usePeakData","useWaveformData","useEQData","onbufferchange","ondataerror","movieStarOptions","bufferTime","serverURL","onconnect","duration","audioFormats","mp3","required","mp4","related","ogg","opus","wav","flac","movieID","id","debugID","debugURLParam","versionNumber","version","movieURL","altURL","swfLoaded","enabled","oMC","sounds","soundIDs","muted","didFlashBlock","filePattern","filePatterns","flash8","flash9","features","buffering","peakData","waveformData","eqData","movieStar","sandbox","html5","usingFlash","flash","html5Only","ignoreFlash","SMSound","doNothing","setProperties","init","fV","initComplete","mixin","assign","extraOptions","addOnEvent","processOnEvents","initUserOnload","delayWaitForEI","waitForEI","rebootIntoHTML5","setVersionInfo","handleFocus","strings","initMovie","domContentLoaded","winOnLoad","didDCLoaded","getDocument","createMovie","catchError","setPolling","disableObject","failSafely","normalizeMovieURL","str","flashBlockHandler","getSWFCSS","swfCSS","loopFix","policyFix","idCheck","startTimer","stopTimer","timerExecute","parseURL","canIgnoreFlash","featureCheck","html5OK","html5CanPlay","html5ErrorCodes","html5Ext","html5Unload","domContentLoadedIE","testHTML5","event","lastGlobalHTML5URL","hasFlash","detectFlash","badSafariFix","html5_events","wrapCallback","didSetup","sm2","globalHTML5Audio","ua","navigator","userAgent","wl","location","href","toString","doc","on_queue","didAppend","appendSuccess","didInit","disabled","windowLoaded","oRemoved","oRemovedHTML","waitingForEI","initPending","h5TimerCount","h5IntervalTimer","messages","needsFlash","slice","Array","prototype","useGlobalHTML5Audio","idCounter","msecScale","is_iDevice","match","isAndroid","isIE","isWebkit","isSafari","isOpera","mobileHTML5","isBadSafari","isFocused","console","log","hasFocus","tryInitOnFocus","okToDisable","flashMIME","emptyURL","overHTTP","protocol","http","netStreamMimeTypes","netStreamTypes","netStreamPattern","RegExp","join","preferFlashCheck","kind","html5_event","oFn","e","s","_s","_a","call","mimePattern","useAltURL","swfBox","swfDefault","swfError","swfTimedout","swfUnblocked","sm2Debug","highPerf","flashDebug","hasHTML5","Audio","opera","canPlayType","setup","options","noURL","ok","push","globalHTML5","ignoreMobile","beginDelayedInit","readyState","setTimeout","supported","getMovie","movie_id","createSound","oOptions","_url","oSound","make","_setup_html5","cs","_createSound","connected","apply","load","play","destroySound","sID","_bFromSound","i","oS","stop","_iO","unload","length","splice","destruct","onPosition","nPosition","oMethod","oScope","clearOnPosition","result","overloaded","Object","start","setPlaybackRate","rate","allowOverride","setPosition","nMsecOffset","stopAll","hasOwnProperty","pause","pauseAll","resume","resumeAll","togglePause","setPan","nPan","setVolume","nVol","j","isNaN","mute","String","muteAll","unmute","unmuteAll","toggleMute","getMemoryUse","ram","parseInt","_getMemoryUse","disable","bNoDisable","remove","canPlayMIME","sMIME","canPlayURL","sURL","canPlayLink","oLink","getSoundById","_suppressDebug","onready","sType","ontimeout","_writeDebug","sText","sTypeOrObject","_wD","_debug","reboot","resetEvents","excludeInit","k","innerHTML","parentNode","removeChild","fired","reset","getMoviePercent","PercentLoaded","resetProperties","add_html5_events","remove_html5_events","stop_html5_timer","start_html5_timer","attachOnPosition","detachOnPosition","applyFromTo","lastHTML5State","urlOmitted","onplay_called","onPositionItems","onPositionFired","lastURL","time","instanceOptions","isHTML5","id3","loaded","playState","_called_load","_html5_canplay","src","autobuffer","preload","_load","fatal","_unload","_bFromSM","_destroySound","_updatePlayState","a","audioClone","onended","oncanplay","startOK","getAutoPlay","setAutoPlay","paused","instanceCount","_oncanplay","_onfinish","currentTime","err","add","Math","max","min","_start","onplayerror","bAll","originalPosition","_onbufferchange","_resetOnPosition","_onTimer","_stop","_setAutoPlay","normalizedRate","position1K","offset","toFixed","_setPosition","_bCallFlash","_pause","bInstanceOnly","_setPan","_bInstanceOnly","_setVolume","hasIO","method","scope","_processOnPosition","item","end","f","t","op","retainPosition","_hasTimer","bytesLoaded","bytesTotal","durationEstimate","buffered","left","right","failures","isBuffering","metadata","bForce","isNew","x","_get_html5_duration","_whileplaying","d","Infinity","_apply_loop","nLoops","loop","sameURL","dURL","decodeURI","_added_events","oEvt","bCapture","addEventListener","removeEventListener","_onload","nSuccess","loadOK","_onerror","errorCode","description","nIsBuffering","_onsuspend","onsuspend","_onfailure","msg","level","code","_onwarning","onwarning","io_onfinish","_whileloading","nBytesLoaded","nBytesTotal","nDuration","nBufferLength","floor","bufferLength","oPeakData","oWaveformDataLeft","oWaveformDataRight","oEQData","eqLeft","leftPeak","rightPeak","split","leftEQ","rightEQ","_oncaptiondata","oData","captiondata","oncaptiondata","_onmetadata","oMDProps","oMDData","onmetadata","_onid3","oID3Props","oID3Data","_onconnect","bSuccess","_ondataerror","sError","body","getElementsByTagName","getElementById","oMain","oAdd","o2","o","o1","callback","oParent","hasParent","bonusOptions","Function","old","evt","getArgs","oArgs","args","len","pop","element","shift","arguments","abort","canplay","ee","canplaythrough","durationchange","ended","error","loadeddata","_loaded","loadedmetadata","loadstart","playing","progress","ranges","target","total","ratechange","suspend","stalled","timeupdate","waiting","iO","oAudio","_called_unload","fileExt","mime","aF","concat","toLowerCase","indexOf","substr","lookup","support","cp","m","canPlay","isOK","sOpt","sPre","oProp","lastIndexOf","Date","getTime","isDebug","replace","bPolling","bHighPerformance","_setPolling","css","p","className","ignoreInit","status","success","srcQueue","queue","canRetry","obj","types","nP","hasPlugin","n","AX","ActiveXObject","plugins","undefined","mimeTypes","enabledPlugin","flashNeeded","formats","style","display","urlResult","setInterval","clearInterval","_setSandboxType","sandboxType","_externalInterfaceOK","swfVersion","isRTL","oEmbed","oMovie","tmp","movieHTML","oEl","sClass","remoteURL","localURL","oTarget","extraClass","html","param","name","value","dir","platform","spcWmode","quality","bgcolor","pluginspage","title","hasPriority","FlashVars","createElement","setAttribute","appendChild","width","height","bottom","overflow","top","abs","zIndex","oninitmovie","loadIncomplete","cleanup","_externalInterfaceTest","_disableDebug","needFlash","detachEvent","attachEvent","SM2_DEFER","module","exports","constructor","getInstance","smBuilder","instance","_createClass","defineProperties","props","descriptor","enumerable","configurable","writable","defineProperty","key","Constructor","protoProps","staticProps","_react2","_interopRequireDefault","_propTypes2","__esModule","default","pendingCalls","initialized","_require2","forEach","cb","noop","playStatuses","PLAYING","STOPPED","PAUSED","Sound","_React$Component","TypeError","_classCallCheck","self","ReferenceError","_possibleConstructorReturn","__proto__","getPrototypeOf","subClass","superClass","create","setPrototypeOf","_inherits","_this2","sound","updateSound","removeSound","prevProps","_this3","playStatus","playFromPosition","round","_this4","stopCreatingSound","onLoading","onPlaying","onError","onLoad","onPause","onResume","onStop","onFinishedPlaying","onBufferChange","Component","propTypes","string","isRequired","oneOf","keys","number","func","bool","defaultProps"],"sourceRoot":""}