(function(){var e={};var t=null,n=true,r=false;if(typeof AudioContext!=="undefined"){t=new AudioContext}else if(typeof webkitAudioContext!=="undefined"){t=new webkitAudioContext}else if(typeof Audio!=="undefined"){n=false;try{new Audio}catch(i){r=true}}else{n=false;r=true}if(n){var s=typeof t.createGain==="undefined"?t.createGainNode():t.createGain();s.gain.value=1;s.connect(t.destination)}var o=function(){this._volume=1;this._muted=false;this.usingWebAudio=n;this._howls=[]};o.prototype={volume:function(e){var t=this;e=parseFloat(e);if(e&&e>=0&&e<=1){t._volume=e;if(n){s.gain.value=e}for(var r in t._howls){if(t._howls.hasOwnProperty(r)&&t._howls[r]._webAudio===false){for(var i=0;i=2?o[1]:t._urls[s].toLowerCase().match(/data\:audio\/([^?]+);/)[1]}if(i[o]){n=t._urls[s];break}}if(!n){t.on("loaderror");return}t._src=n;if(t._webAudio){c(t,n)}else{var a=new Audio;t._audioNode.push(a);a.src=n;a._pos=0;a.preload="auto";a.volume=u._muted?0:t._volume*u.volume();e[n]=t;var l=function(){t._duration=a.duration;if(Object.getOwnPropertyNames(t._sprite).length===0){t._sprite={_default:[0,t._duration*1e3]}}if(!t._loaded){t._loaded=true;t.on("load")}if(t._autoplay){t.play()}a.removeEventListener("canplaythrough",l,false)};a.addEventListener("canplaythrough",l,false);a.load()}return t},urls:function(e){var t=this;if(e){t.stop();t._urls=typeof e==="string"?[e]:e;t._loaded=false;t.load();return t}else{return t._urls}},play:function(e,n){var r=this;if(typeof e==="function"){n=e}if(!e||typeof e==="function"){e="_default"}if(!r._loaded){r.on("load",function(){r.play(e,n)});return r}if(!r._sprite[e]){if(typeof n==="function")n();return r}r._inactiveNode(function(i){i._sprite=e;var s=i._pos>0?i._pos:r._sprite[e][0]/1e3,o=r._sprite[e][1]/1e3-i._pos;var a=!!(r._loop||r._sprite[e][2]);var f=typeof n==="string"?n:Math.round(Date.now()*Math.random())+"",l;(function(){var t={id:f,sprite:e,loop:a};l=setTimeout(function(){if(!r._webAudio&&a){r.stop(t.id,t.timer).play(e,t.id)}if(r._webAudio&&!a){r._nodeById(t.id).paused=true}if(!r._webAudio&&!a){r.stop(t.id,t.timer)}r.on("end",f)},o*1e3);r._onendTimer.push(l);t.timer=r._onendTimer[r._onendTimer.length-1]})();if(r._webAudio){var c=r._sprite[e][0]/1e3,h=r._sprite[e][1]/1e3;i.id=f;i.paused=false;p(r,[a,c,h],f);r._playStart=t.currentTime;i.gain.value=r._volume;if(typeof i.bufferSource.start==="undefined"){i.bufferSource.noteGrainOn(0,s,o)}else{i.bufferSource.start(0,s,o)}}else{if(i.readyState===4){i.id=f;i.currentTime=s;i.muted=u._muted;i.volume=r._volume*u.volume();setTimeout(function(){i.play()},0)}else{r._clearEndTimer(l);(function(){var t=r,s=e,o=n,u=i;var a=function(){t.play(s,o);u.removeEventListener("canplaythrough",a,false)};u.addEventListener("canplaythrough",a,false)})();return r}}r.on("play");if(typeof n==="function")n(f);return r});return r},pause:function(e,t){var n=this;if(!n._loaded){n.on("play",function(){n.pause(e)});return n}n._clearEndTimer(t||0);var r=e?n._nodeById(e):n._activeNode();if(r){r._pos=n.pos(null,e);if(n._webAudio){if(!r.bufferSource){return n}r.paused=true;if(typeof r.bufferSource.stop==="undefined"){r.bufferSource.noteOff(0)}else{r.bufferSource.stop(0)}}else{r.pause()}}n.on("pause");return n},stop:function(e,t){var n=this;if(!n._loaded){n.on("play",function(){n.stop(e)});return n}n._clearEndTimer(t||0);var r=e?n._nodeById(e):n._activeNode();if(r){r._pos=0;if(n._webAudio){if(!r.bufferSource){return n}r.paused=true;if(typeof r.bufferSource.stop==="undefined"){r.bufferSource.noteOff(0)}else{r.bufferSource.stop(0)}}else{r.pause();r.currentTime=0}}return n},mute:function(e){var t=this;if(!t._loaded){t.on("play",function(){t.mute(e)});return t}var n=e?t._nodeById(e):t._activeNode();if(n){if(t._webAudio){n.gain.value=0}else{n.volume=0}}return t},unmute:function(e){var t=this;if(!t._loaded){t.on("play",function(){t.unmute(e)});return t}var n=e?t._nodeById(e):t._activeNode();if(n){if(t._webAudio){n.gain.value=t._volume}else{n.volume=t._volume}}return t},volume:function(e,t){var n=this;e=parseFloat(e);if(e>=0&&e<=1){n._volume=e;if(!n._loaded){n.on("play",function(){n.volume(e,t)});return n}var r=t?n._nodeById(t):n._activeNode();if(r){if(n._webAudio){r.gain.value=e}else{r.volume=e*u.volume()}}return n}else{return n._volume}},loop:function(e){var t=this;if(typeof e==="boolean"){t._loop=e;return t}else{return t._loop}},sprite:function(e){var t=this;if(typeof e==="object"){t._sprite=e;return t}else{return t._sprite}},pos:function(e,n){var r=this;if(!r._loaded){r.on("load",function(){r.pos(e)});return typeof e==="number"?r:r._pos||0}e=parseFloat(e);var i=n?r._nodeById(n):r._activeNode();if(i){if(r._webAudio){if(e>=0){i._pos=e;r.pause(n).play(i._sprite,n);return r}else{return i._pos+(t.currentTime-r._playStart)}}else{if(e>=0){i.currentTime=e;return r}else{return i.currentTime}}}else if(e>=0){return r}else{for(var s=0;s=0||e<0){if(i._webAudio){var s=r?i._nodeById(r):i._activeNode();if(s){i._pos3d=[e,t,n];s.panner.setPosition(e,t,n)}}}else{return i._pos3d}return i},fade:function(e,t,n,r,i){var s=this,o=Math.abs(e-t),u=e>t?"down":"up",a=o/.01,f=n/a;if(!s._loaded){s.on("load",function(){s.fade(e,t,n,r,i)});return s}s.volume(e,i);for(var l=1;l<=a;l++){(function(){var e=s._volume+(u==="up"?.01:-.01)*l,n=Math.round(1e3*e)/1e3,o=t;setTimeout(function(){s.volume(n,i);if(n===o){if(r)r()}},f*l)})()}},fadeIn:function(e,t,n){return this.volume(0).play().fade(0,e,t,n)},fadeOut:function(e,t,n,r){var i=this;return i.fade(i._volume,e,t,function(){if(n)n();i.pause(r);i.on("end")},r)},_nodeById:function(e){var t=this,n=t._audioNode[0];for(var r=0;r=0;n--){if(t<=5){break}if(e._audioNode[n].paused){if(e._webAudio){e._audioNode[n].disconnect(0)}t--;e._audioNode.splice(n,1)}}},_clearEndTimer:function(e){var t=this,n=t._onendTimer.indexOf(e);n=n>=0?n:0;if(t._onendTimer[n]){clearTimeout(t._onendTimer[n]);t._onendTimer.splice(n,1)}},_setupAudioNode:function(){var e=this,n=e._audioNode,r=e._audioNode.length;n[r]=typeof t.createGain==="undefined"?t.createGainNode():t.createGain();n[r].gain.value=e._volume;n[r].paused=true;n[r]._pos=0;n[r].readyState=4;n[r].connect(s);n[r].panner=t.createPanner();n[r].panner.setPosition(e._pos3d[0],e._pos3d[1],e._pos3d[2]);n[r].panner.connect(n[r]);return n[r]},on:function(e,t){var n=this,r=n["_on"+e];if(typeof t==="function"){r.push(t)}else{for(var i=0;i