var sonic_loader=function(){function isHTML5_APIs_Available(){var o=!1;return(navigator.getUserMedia||navigator.webkitGetUserMedia||navigator.mozGetUserMedia||navigator.msGetUserMedia||navigator.mediaDevices.getUserMedia)&&(o=!0),o&&void 0==window.Worker&&(o=!1),o&&("AudioContext"in window||"webkitAudioContext"in window)==!1&&(o=!1),o}function onSonicProgress(r,e){$(o).trigger("progress",[e])}function onSonicError(){$(o).trigger("error",["Error loading sonic."])}function onSonicReady(){$(o).trigger("ready")}function loadSonic(){$(sonic).bind("progress",onSonicProgress),$(sonic).bind("error",onSonicError),$(sonic).bind("ready",onSonicReady),sonic.load({assetUrl:_assetUrl})}function getSonicJS(){console.log("Getting SonicJS"),_assetUrl=i,jQuery.getScript(_assetUrl+"sonic.js").done(function(){loadSonic()}).fail(function(){n?$(o).trigger("error",["Error loading HTML5 sonic.js."]):getSwfObject()})}function checkFlashVersion(){if(!swfobject.hasFlashPlayerVersion(r)){if(swfobject.hasFlashPlayerVersion("1")){var e=swfobject.getFlashPlayerVersion();msg="You have FP "+e.major+"."+e.minor}else msg="You don't have FP installed";return msg+=", but FP "+r+"+ is required.",$(o).trigger("error",["Error: "+msg]),!1}return!0}function getSwfObject(){console.log("Getting SwfObject"),jQuery.getScript("https://ajax.googleapis.com/ajax/libs/swfobject/2.2/swfobject.js").done(function(){checkFlashVersion()&&getSonicFlasCC()}).fail(function(){$(o).trigger("error",["Error loading swfobject.js."])})}function getSonicFlasCC(){console.log("Getting SonicFlasCC"),_assetUrl=e,jQuery.getScript(_assetUrl+"sonic.js").done(function(){loadSonic()}).fail(function(){$(o).trigger("error",["Error loading Flash sonic.js."])})}var o={},r="11.5",e="",i="",n=!1;return o.load=function(r){if(void 0==r)return void $(o).trigger("error",["Error. No parameters passed to sonic_loader."]);if(e=r.flashUrlPath,i=r.html5UrlPath,void 0!=r.forceFlash&&void 0!=r.forceHTML5){if(n=!0,r.forceFlash===!0)return void getSwfObject();if(r.forceHTML5===!0)return void(isHTML5_APIs_Available()?getSonicJS():$(o).trigger("error",["Error. HTML5 APIs are not available on the browser."]));n=!1}isHTML5_APIs_Available()?(console.log("Loading HTML5 Sonic"),getSonicJS()):(console.log("Loading Flash Sonic"),getSwfObject())},o}();