(function(audiojs,audiojsInstance,container){var path=(function(){var re=new RegExp("audio(.min)?.js"),scripts=document.getElementsByTagName("script");for(var i=0,ii=scripts.length;i<ii;i++){var path=scripts[i].getAttribute("src");if(re.test(path)){return path.replace(re,"")}}})();container[audiojs]={instanceCount:0,instances:{},flashSource:'      <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" id="$1" width="1" height="1" name="$1" style="position: absolute; left: -1px;">         <param name="movie" value="$2?playerInstance='+audiojs+'.instances[\'$1\']&datetime=$3">         <param name="allowscriptaccess" value="always">         <embed name="$1" src="$2?playerInstance='+audiojs+'.instances[\'$1\']&datetime=$3" width="1" height="1" allowscriptaccess="always">       </object>',settings:{autoplay:false,loop:false,preload:true,imageLocation:path+"player-graphics.gif",swfLocation:path+"audiojs.swf",useFlash:(function(){var a=document.createElement("audio");return !(a.canPlayType&&a.canPlayType("audio/mpeg;").replace(/no/,""))})(),createPlayer:{markup:'          <div class="play-pause">             <p class="play"></p>             <p class="pause"></p>             <p class="loading"></p>             <p class="error"></p>           </div>           <div class="scrubber">             <div class="progress"></div>             <div class="loaded"></div>           </div>           <div class="time">             <em class="played">00:00</em>/<strong class="duration">00:00</strong>           </div>           <div class="error-message"></div>',playPauseClass:"play-pause",scrubberClass:"scrubber",progressClass:"progress",loaderClass:"loaded",timeClass:"time",durationClass:"duration",playedClass:"played",errorMessageClass:"error-message",playingClass:"playing",loadingClass:"loading",errorClass:"error"},css:'        .audiojs audio { position: absolute; left: -1px; }         .audiojs { width: 210px; height: 36px; background: #404040; overflow: hidden; font-family: monospace; font-size: 12px;           background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0, #444), color-stop(0.5, #555), color-stop(0.51, #444), color-stop(1, #444));           background-image: -moz-linear-gradient(center top, #444 0%, #555 50%, #444 51%, #444 100%);           -webkit-box-shadow: 1px 1px 8px rgba(0, 0, 0, 0.3); -moz-box-shadow: 1px 1px 8px rgba(0, 0, 0, 0.3);           -o-box-shadow: 1px 1px 8px rgba(0, 0, 0, 0.3); box-shadow: 1px 1px 8px rgba(0, 0, 0, 0.3); }         .audiojs .play-pause { width: 25px; height: 40px; padding: 4px 6px; margin: 0px; float: left; overflow: hidden; border-right: 1px solid #000; }         .audiojs p { display: none; width: 25px; height: 40px; margin: 0px; cursor: pointer; }         .audiojs .play { display: block; }         .audiojs .scrubber { position: relative; float: left; width: 30px; background: #5a5a5a; height: 14px; margin: 10px; border-top: 1px solid #3f3f3f; border-left: 0px; border-bottom: 0px; overflow: hidden; }         .audiojs .progress { position: absolute; top: 0px; left: 0px; height: 14px; width: 0px; background: #ccc; z-index: 1;           background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0, #ccc), color-stop(0.5, #ddd), color-stop(0.51, #ccc), color-stop(1, #ccc));           background-image: -moz-linear-gradient(center top, #ccc 0%, #ddd 50%, #ccc 51%, #ccc 100%); }         .audiojs .loaded { position: absolute; top: 0px; left: 0px; height: 14px; width: 0px; background: #000;           background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0, #222), color-stop(0.5, #333), color-stop(0.51, #222), color-stop(1, #222));           background-image: -moz-linear-gradient(center top, #222 0%, #333 50%, #222 51%, #222 100%); }         .audiojs .time { float: left; height: 36px; line-height: 36px; margin: 0px 0px 0px 6px; padding: 0px 6px 0px 12px; border-left: 1px solid #000; color: #ddd; text-shadow: 1px 1px 0px rgba(0, 0, 0, 0.5); }         .audiojs .time em { padding: 0px 2px 0px 0px; color: #f9f9f9; font-style: normal; }         .audiojs .time strong { padding: 0px 0px 0px 2px; font-weight: normal; }         .audiojs .error-message { float: left; display: none; margin: 0px 10px; height: 36px; line-height: 36px; color: #fff; }                 .audiojs .play { background: url("$1") -2px -1px no-repeat; }         .audiojs .loading { background: url("$1") -2px -31px no-repeat; }         .audiojs .error { background: url("$1") -2px -61px no-repeat; }         .audiojs .pause { background: url("$1") -2px -91px no-repeat; }                 .playing .play, .playing .loading, .playing .error { display: none; }         .playing .pause { display: block; }                 .loading .play, .loading .pause, .loading .error { display: none; }         .loading .loading { display: block; }                 .error .time, .error .play, .error .pause, .error .scrubber, .error .loading { display: none; }         .error .error { display: block; }         .error .play-pause p { cursor: auto; }         .error .error-message { display: block; }',trackEnded:function(e){},loadError:function(e){var player=this.settings.createPlayer,errorMessage=getByClass(player.errorMessageClass,this.wrapper);container[audiojs].helpers.removeClass(this.wrapper,player.loadingClass);container[audiojs].helpers.addClass(this.wrapper,player.errorClass);errorMessage.innerHTML='Error loading: "'+this.mp3+'"'},init:function(){var player=this.settings.createPlayer;container[audiojs].helpers.addClass(this.wrapper,player.loadingClass)},loadStarted:function(){var player=this.settings.createPlayer,duration=getByClass(player.durationClass,this.wrapper),m=Math.floor(this.duration/60),s=Math.floor(this.duration%60);container[audiojs].helpers.removeClass(this.wrapper,player.loadingClass);duration.innerHTML=((m<10?"0":"")+m+":"+(s<10?"0":"")+s)},loadProgress:function(percent){var player=this.settings.createPlayer,scrubber=getByClass(player.scrubberClass,this.wrapper),loaded=getByClass(player.loaderClass,this.wrapper);loaded.style.width=(scrubber.offsetWidth*percent)+"px"},playPause:function(){if(this.playing){this.settings.play()}else{this.settings.pause()}},play:function(){var player=this.settings.createPlayer;container[audiojs].helpers.addClass(this.wrapper,player.playingClass)},pause:function(){var player=this.settings.createPlayer;container[audiojs].helpers.removeClass(this.wrapper,player.playingClass)},updatePlayhead:function(percent){var player=this.settings.createPlayer,scrubber=getByClass(player.scrubberClass,this.wrapper),progress=getByClass(player.progressClass,this.wrapper);progress.style.width=(scrubber.offsetWidth*percent)+"px";var played=getByClass(player.playedClass,this.wrapper),p=this.duration*percent,m=Math.floor(p/60),s=Math.floor(p%60);played.innerHTML=((m<10?"0":"")+m+":"+(s<10?"0":"")+s)}},create:function(element,options){var options=options||{};if(element.length){return this.createAll(options,element)}else{return this.newInstance(element,options)}},createAll:function(options,elements){var audioElements=elements||document.getElementsByTagName("audio"),instances=[];options=options||{};for(var i=0,ii=audioElements.length;i<ii;i++){instances.push(this.newInstance(audioElements[i],options))}return instances},newInstance:function(element,options){var element=element,s=this.helpers.clone(this.settings),id="audiojs"+this.instanceCount,wrapperId="audiojs_wrapper"+this.instanceCount,instanceCount=this.instanceCount++;if(element.getAttribute("autoplay")!=null){s.autoplay=true}if(element.getAttribute("loop")!=null){s.loop=true}if(element.getAttribute("preload")=="none"){s.preload=false}if(options){this.helpers.merge(s,options)}if(s.createPlayer.markup){element=this.createPlayer(element,s.createPlayer,wrapperId)}else{element.parentNode.setAttribute("id",wrapperId)}var audio=new container[audiojsInstance](element,s);if(s.css){this.helpers.injectCss(audio,s.css)}if(s.useFlash){this.injectFlash(audio,id);this.attachFlashEvents(audio.wrapper,audio)}this.attachEvents(audio.wrapper,audio);this.instances[id]=audio;return audio},createPlayer:function(element,player,id){var wrapper=document.createElement("div"),newElement=element.cloneNode(true);wrapper.setAttribute("class","audiojs");wrapper.setAttribute("className","audiojs");wrapper.setAttribute("id",id);if(newElement.outerHTML&&~newElement.outerHTML.indexOf("<:audio")){newElement=this.helpers.cloneHtml5Node(element);wrapper.innerHTML=player.markup;wrapper.appendChild(newElement);element.outerHTML=wrapper.outerHTML;wrapper=document.getElementById(id)}else{wrapper.appendChild(newElement);wrapper.innerHTML=wrapper.innerHTML+player.markup;element.parentNode.replaceChild(wrapper,element)}return wrapper.getElementsByTagName("audio")[0]},attachEvents:function(wrapper,audio){var player=audio.settings.createPlayer,playPause=getByClass(player.playPauseClass,wrapper),scrubber=getByClass(player.scrubberClass,wrapper),leftPos=function(elem){var curleft=0;if(elem.offsetParent){do{curleft+=elem.offsetLeft}while(elem=elem.offsetParent)}return curleft};container[audiojs].events.addListener(playPause,"click",function(e){audio.playPause.apply(audio)});container[audiojs].events.addListener(scrubber,"click",function(e){var relativeLeft=e.clientX-leftPos(this);audio.skipTo(relativeLeft/scrubber.offsetWidth)});if(audio.settings.useFlash){return}container[audiojs].events.trackLoadProgress(audio);container[audiojs].events.addListener(audio.element,"timeupdate",function(e){audio.updatePlayhead.apply(audio)});container[audiojs].events.addListener(audio.element,"ended",function(e){audio.trackEnded.apply(audio)});container[audiojs].events.addListener(audio.source,"error",function(e){clearInterval(audio.readyTimer);clearInterval(audio.loadTimer);audio.settings.loadError.apply(audio)})},attachFlashEvents:function(element,audio){audio.swfReady=false;audio.load=function(mp3){audio.mp3=mp3;if(audio.swfReady){audio.element.load(mp3)}};audio.loadProgress=function(percent,duration){audio.loadedPercent=percent;audio.duration=duration;audio.settings.loadStarted.apply(audio);audio.settings.loadProgress.apply(audio,[percent])};audio.skipTo=function(percent){if(percent>audio.loadedPercent){return}audio.updatePlayhead.call(audio,[percent]);audio.element.skipTo(percent)};audio.updatePlayhead=function(percent){audio.settings.updatePlayhead.apply(audio,[percent])};audio.play=function(){if(!audio.settings.preload){audio.settings.preload=true;audio.element.init(audio.mp3)}audio.playing=true;audio.element.pplay();audio.settings.play.apply(audio)};audio.pause=function(){audio.playing=false;audio.element.ppause();audio.settings.pause.apply(audio)};audio.loadStarted=function(){audio.swfReady=true;if(audio.settings.preload){audio.element.init(audio.mp3)}if(audio.settings.autoplay){audio.play.apply(audio)}}},injectFlash:function(audio,id){var flashSource=this.flashSource.replace(/\$1/g,id);flashSource=flashSource.replace(/\$2/g,audio.settings.swfLocation);flashSource=flashSource.replace(/\$3/g,(+new Date+Math.random()));var html=audio.wrapper.innerHTML,div=document.createElement("div");div.innerHTML=flashSource+html;audio.wrapper.innerHTML=div.innerHTML;audio.element=this.helpers.getSwf(id)},helpers:{merge:function(obj1,obj2){for(attr in obj2){if(obj1.hasOwnProperty(attr)||obj2.hasOwnProperty(attr)){obj1[attr]=obj2[attr]}}},clone:function(obj){if(obj==null||typeof(obj)!=="object"){return obj}var temp=new obj.constructor();for(var key in obj){temp[key]=arguments.callee(obj[key])}return temp},addClass:function(element,className){var re=new RegExp("(\\s|^)"+className+"(\\s|$)");if(re.test(element.className)){return}element.className+=" "+className},removeClass:function(element,className){var re=new RegExp("(\\s|^)"+className+"(\\s|$)");element.className=element.className.replace(re," ")},injectCss:function(audio,string){var head=document.getElementsByTagName("head")[0],firstchild=head.firstChild,style=document.createElement("style"),css=string.replace(/\$1/g,audio.settings.imageLocation);if(!head){return}var prepend="",styles=document.getElementsByTagName("style");for(var i=0,ii=styles.length;i<ii;i++){var title=styles[i].getAttribute("title");if(title&&~title.indexOf("audiojs")){style=styles[i];prepend=style.innerHTML;break}}style.setAttribute("type","text/css");style.setAttribute("title","audiojs");if(style.styleSheet){style.styleSheet.cssText=prepend+css}else{style.appendChild(document.createTextNode(prepend+css))}if(firstchild){head.insertBefore(style,firstchild)}else{head.appendChild(styleElement)}},cloneHtml5Node:function(audioTag){var fragment=document.createDocumentFragment();fragment.createElement("audio");var div=fragment.createElement("div");fragment.appendChild(div);div.innerHTML=audioTag.outerHTML;return div.firstChild},getSwf:function(name){var swf=document[name]||window[name];return swf.length>1?swf[swf.length-1]:swf}},events:{memoryLeaking:false,listeners:[],addListener:function(element,eventName,func){if(element.addEventListener){element.addEventListener(eventName,func,false)}else{if(element.attachEvent){this.listeners.push(element);if(!this.memoryLeaking){window.attachEvent("onunload",function(){for(var i=0,ii=this.listeners.length;i<ii;i++){container[audiojs].events.purge(this.listeners[i])}});this.memoryLeaking=true}element.attachEvent("on"+eventName,function(){func.call(element,window.event)})}}},trackLoadProgress:function(audio){if(!audio.settings.preload){return}var readyTimer,loadTimer,audio=audio,ios=(/(ipod|iphone|ipad)/i).test(navigator.userAgent);readyTimer=setInterval(function(){if(audio.element.readyState>-1){if(!ios){audio.init.apply(audio)}}if(audio.element.readyState>1){if(audio.settings.autoplay){audio.play.apply(audio)}clearInterval(readyTimer);loadTimer=setInterval(function(){audio.loadProgress.apply(audio);if(audio.loadedPercent>=1){clearInterval(loadTimer)}})}},10);audio.readyTimer=readyTimer;audio.loadTimer=loadTimer},purge:function(d){var a=d.attributes,i;if(a){for(i=0;i<a.length;i+=1){if(typeof d[a[i].name]==="function"){d[a[i].name]=null}}}a=d.childNodes;if(a){for(i=0;i<a.length;i+=1){purge(d.childNodes[i])}}},ready:(function(ie){var d=document;return ie?function(c){var n=d.firstChild,f=function(){try{c(n.doScroll("left"))}catch(e){setTimeout(f,10)}};f()}:/webkit|safari|khtml/i.test(navigator.userAgent)?function(c){var f=function(){/loaded|complete/.test(d.readyState)?c():setTimeout(f,10)};f()}:function(c){d.addEventListener("DOMContentLoaded",c,false)}})(
/*@cc_on 1@*/
)}};container[audiojsInstance]=function(element,settings){this.element=element;this.wrapper=element.parentNode;this.source=element.getElementsByTagName("source")[0]||element;this.mp3=(function(element){var source=element.getElementsByTagName("source")[0];return element.getAttribute("src")||(source?source.getAttribute("src"):null)})(element);this.settings=settings;this.loadStartedCalled=false;this.loadedPercent=0;this.duration=1;this.playing=false};container[audiojsInstance].prototype={updatePlayhead:function(){var percent=this.element.currentTime/this.duration;this.settings.updatePlayhead.apply(this,[percent])},skipTo:function(percent){if(percent>this.loadedPercent){return}this.element.currentTime=this.duration*percent;this.updatePlayhead()},load:function(mp3){this.loadStartedCalled=false;this.source.setAttribute("src",mp3);this.element.load();this.mp3=mp3;container[audiojs].events.trackLoadProgress(this)},loadError:function(){this.settings.loadError.apply(this)},init:function(){this.settings.init.apply(this)},loadStarted:function(){if(!this.element.duration){return false}this.duration=this.element.duration;this.updatePlayhead();this.settings.loadStarted.apply(this)},loadProgress:function(){if(this.element.buffered!=null&&this.element.buffered.length){if(!this.loadStartedCalled){this.loadStartedCalled=this.loadStarted()}var durationLoaded=this.element.buffered.end(this.element.buffered.length-1);this.loadedPercent=durationLoaded/this.duration;this.settings.loadProgress.apply(this,[this.loadedPercent])}},playPause:function(){if(this.playing){this.pause()}else{this.play()}},play:function(){var ios=(/(ipod|iphone|ipad)/i).test(navigator.userAgent);if(ios&&this.element.readyState==0){this.init.apply(this)}if(!this.settings.preload){this.settings.preload=true;this.element.setAttribute("preload","auto");container[audiojs].events.trackLoadProgress(this)}this.playing=true;this.element.play();this.settings.play.apply(this)},pause:function(){this.playing=false;this.element.pause();this.settings.pause.apply(this)},trackEnded:function(e){this.skipTo.apply(this,[0]);if(!this.settings.loop){this.pause.apply(this)}this.settings.trackEnded.apply(this)}};var getByClass=function(searchClass,node,tag){var matches=[];if(document.getElementsByClassName){matches=node.getElementsByClassName(searchClass)}else{var node=node||document,tag=tag||"*",els=node.getElementsByTagName(tag),pattern=new RegExp("(^|\\s)"+searchClass+"(\\s|$)");for(i=0,j=0,l=els.length;i<l;i++){if(pattern.test(els[i].className)){matches[j]=els[i];j++}}}return matches.length>1?matches:matches[0]}})("audiojs","audiojsInstance",this);
