/*
 * HTML5 MP3 Player
 * @version 1.0.3
 * @author Patrick Woldberg
 * Copyright (c) 2010-2011 DMXzone
 */
(function(A,j){var w=z();j.debugMode=false;j.useConsole=true;j.flashVersion=9;j.flashLoadTimeout=3000;j.useHTML5Audio=!w;j.html5Test=/^(probably|maybe)$/i;j.flash9Options.usePeakData=true;var y="dmxHTML5MP3Player",q="1.0.3",u=y+"Info",r=y+"Playlist",E=y+"Current",l=y+"Playing",F=y+"PlayPause",s=y+"Active",v=y+"BtnPlay",J=y+"BtnPause",m=y+"BtnStop",x=y+"BtnPrev",b=y+"BtnNext",f=y+"BtnMute",I=y+"BtnShuffle",o=y+"BtnRepeat",d=y+"BtnPlayPause",h=y+"BtnPlaylist",c=y+"PositionSlider",k=y+"PositionHandle",p=y+"PositionBar",n=y+"LoadBar",B=y+"PanSlider",K=y+"PanHandle",G=y+"VolumeSlider",C=y+"VolumeSliderV",a=y+"VolumeHandle",g=y+"VolumeBar",e=y+"Volume",D=y+"VolumeMute",t=y+"VolumeLow",H=y+"VolumeMed",i=y+"VolumeHigh";CLS_PEAK_LEFT=y+"PeakLeft";CLS_PEAK_LEFT_V=y+"PeakLeftV";CLS_PEAK_LEFT_BAR=y+"PeakLeftBar";CLS_PEAK_RIGHT=y+"PeakRight";CLS_PEAK_RIGHT_V=y+"PeakRightV";CLS_PEAK_RIGHT_BAR=y+"PeakRightBar";A.fn[y]=function(N){var L=(typeof N=="string"),M=Array.prototype.slice.call(arguments,1);if(L&&N.substring(0,1)=="_"){return this}return this.each(function(){var O=A.data(this,y);if(!O&&!L){A.data(this,y,new A[y](this,N))._init()}(O&&L&&A.isFunction(O[N])&&O[N].apply(O,M))})};A[y]=function(M,L){this.element=A(M);this.options=A.extend({},L);this.sound=null;this.sounds={}};A[y].defaults={swfPath:"",autoNext:true,autoPlay:false,loop:true,volume:100,pan:0,playlist:[],shuffle:false,onPlay:null,onPause:null,onStop:null,onPrevious:null,onNext:null,onUpdate:null,onChange:null};A[y]._config={version:q};A[y]._diag={isReady:false,isPlaying:false,isMuted:false,index:-1};A[y].count=0;A[y].timeFormat={showHour:false,showMin:true,showSec:true,padHour:false,padMin:true,padSec:true,sepHour:":",sepMin:":",sepSec:""};A[y].convertTime=function(L){var Q=A[y].timeFormat,R=new Date(L),O=R.getUTCHours(),N=R.getUTCMinutes(),T=R.getUTCSeconds(),P=(Q.padHour&&O<10)?"0"+O:O,M=(Q.padMin&&N<10)?"0"+N:N,S=(Q.padSec&&T<10)?"0"+T:T;return((Q.showHour)?P+Q.sepHour:"")+((Q.showMin)?M+Q.sepMin:"")+((Q.showSec)?S+Q.sepSec:"")};A[y].prototype={_init:function(){var S,N=this,P=this.element,M=function(T){return function(U){U.preventDefault();N[T].apply(N)}};S=this.config=A.extend({},A[y].defaults,this.options,A[y]._config);S.diag=A.extend({},A[y]._diag);this.element.data(y+".config",S);A[y].count++;S.id=y+A[y].count;S.sound={volume:S.volume,pan:S.pan,onfinish:function(){P.find("."+p).width("0%");if(S.autoNext){N.next.apply(N)}},onid3:function(){N._updateInfo.apply(N)},onstop:function(){P.find("."+p).width("0%");P.find("."+k).css("left",0);N._updateInfo.apply(N)},onload:function(T){if(T){P.find("."+n).width("100%")}else{(console&&console.log&&console.log("Error loading sound: "+this.url))}N._updateInfo.apply(N)},whileloading:function(){var T=this.bytesTotal,U=(T>0)?100*this.bytesLoaded/T:0;P.find("."+n).width(U+"%");N._updateInfo.apply(N)},whileplaying:function(){var U=this.loaded?this.duration:this.durationEstimate,T=(U>0)?100*this.position/U:0;P.find("."+p).width(T+"%");P.find("."+k).css("left",T+"%");P.find("."+CLS_PEAK_LEFT+" ."+CLS_PEAK_LEFT_BAR).width((this.peakData.left*100)+"%");P.find("."+CLS_PEAK_RIGHT+" ."+CLS_PEAK_RIGHT_BAR).width((this.peakData.right*100)+"%");P.find("."+CLS_PEAK_LEFT_V+" ."+CLS_PEAK_LEFT_BAR).height((this.peakData.left*100)+"%");P.find("."+CLS_PEAK_RIGHT_V+" ."+CLS_PEAK_RIGHT_BAR).height((this.peakData.right*100)+"%");P.trigger(y+".playing",[this]);N._updateInfo.apply(N)}};P.find("."+u).each(function(){A(this).data(y+".tpl",A(this).html())});P.find("."+c).mousedown(function(T){var U=this;N.setPosition2(Math.max(0,Math.min(1,(T.pageX-A(U).offset().left)/A(U).width())));A(document).bind("mousemove."+y,function(V){N.setPosition2(Math.max(0,Math.min(1,(V.pageX-A(U).offset().left)/A(U).width())))}).bind("mouseup."+y,function(V){A(document).unbind("."+y);N.setPosition2(Math.max(0,Math.min(1,(V.pageX-A(U).offset().left)/A(U).width())))})});P.find("."+G).click(function(T){var U=Math.round(((T.pageX-A(this).offset().left)/A(this).width())*100);N.setVolume.apply(N,[U])});P.find("."+C).click(function(T){var U=100-Math.round(((T.pageY-A(this).offset().top)/A(this).height())*100);N.setVolume.apply(N,[U])});P.find("."+g).width(S.volume+"%");if(N.config.loop){P.find("."+o).addClass(s)}if(N.config.loop){P.find("."+o).addClass(s)}P.find("."+v).click(M("play"));P.find("."+m).click(M("stop"));P.find("."+J).click(M("pause"));P.find("."+x).click(M("previous"));P.find("."+b).click(M("next"));P.find("."+f).click(M("toggleMute"));P.find("."+I).click(function(T){T.preventDefault();N.config.shuffle=!N.config.shuffle;if(N.config.shuffle){P.find("."+I).addClass(s)}else{P.find("."+I).removeClass(s)}});P.find("."+o).click(function(T){T.preventDefault();N.config.loop=!N.config.loop;if(N.config.loop){P.find("."+o).addClass(s)}else{P.find("."+o).removeClass(s)}});P.find("."+d).click(M("togglePause"));P.find("."+h).click(function(T){T.preventDefault();P.find("."+r).slideToggle()});this.element.bind(y+".play",function(){N.element.find("."+l).removeClass(l);N.element.find("."+d).addClass(l);N.element.find("."+E).addClass(l)}).bind(y+".pause",function(){N.element.find("."+l).removeClass(l)}).bind(y+".stop",function(){N.element.find("."+l).removeClass(l)});var L=P.find("."+F);if(L.length>0){L.find("."+J).hide();this.element.bind(y+".play",function(){L.find("."+v).hide();L.find("."+J).show()}).bind(y+".pause",function(){L.find("."+v).show();L.find("."+J).hide()}).bind(y+".stop",function(){L.find("."+v).show();L.find("."+J).hide()})}if(this.config.onPlay){P.bind(y+".play",function(){if(typeof N.config.onPlay=="string"){var T=N;if(N.query){T=N.element.find(N.query).get(N.config.diag.index)}(new Function(N._parse.call(N,N.config.onPlay))).call(T)}else{N.config.onPlay.call(N)}})}if(this.config.onPause){P.bind(y+".pause",function(){if(typeof N.config.onPause=="string"){var T=N;if(N.query){T=N.element.find(N.query).get(N.config.diag.index)}(new Function(N._parse.call(N,N.config.onPause))).call(T)}else{N.config.onPause.call(N)}})}if(this.config.onStop){P.bind(y+".stop",function(){if(typeof N.config.onStop=="string"){var T=N;if(N.query){T=N.element.find(N.query).get(N.config.diag.index)}(new Function(N._parse.call(N,N.config.onStop))).call(T)}else{N.config.onStop.call(N)}})}this.element.bind(y+".mute",function(T,U){if(U){A(this).find("."+f).addClass(s)}else{A(this).find("."+f).removeClass(s)}});this.element.bind(y+".volume",function(T,U){P.find("."+G+" ."+g).width(U+"%");P.find("."+G+" ."+a).css("left",U+"%");P.find("."+C+" ."+g).height(U+"%");P.find("."+C+" ."+a).css("bottom",U+"%");P.find("."+e).removeClass(D+" "+t+" "+H+" "+i);if(U>80){P.find("."+e).addClass(i)}else{if(U>40){P.find("."+e).addClass(H)}else{if(U>0){P.find("."+e).addClass(t)}else{P.find("."+e).addClass(D)}}}});this._updateInfo();var O=false,R=false,Q=this.config.diag;if(this.hasSpryRegion()){Spry.Data.Region.addObserver(this._spryRegion,{onPostUpdate:function(T,U){O=true;if(R&&!Q.ready){N._ready.apply(N)}}})}else{O=true}j.onready(function(){if(O&&!Q.ready){N._ready.apply(N)}});j.ontimeout(function(){if(!w&&!j.hasHTML5){alert("Your browser does not support HTML5/Flash to play the audio!")}else{alert('SoundManager 2 failed to initialize! Likely causes: Loading "soundmanager2_flash9.swf" may have failed (and/or Flash is not present?), Flash blocked or JS-Flash security error.')}})},_ready:function(){var M,L=this,Q=this.config,P=Q.diag,O=Q.playlist;if(typeof O=="string"){this.query=O;Q.playlist=[];this.element.find(O).each(function(R){Q.playlist.push(this.href);A(this).click(function(S){S.preventDefault();if(R!=L.config.diag.index){L._setSound(R,true)}else{L.togglePause()}})})}O=Q.playlist;if(O.length>0){for(var N=0;N<O.length;N++){M=O[N];if(!(M in this.sounds)){this.sounds[M]=j.createSound({id:Q.id+"_"+N,url:M,volume:Q.volume})}}this._setSound(0,Q.autoPlay)}P.isReady=true;this.element.trigger(y+".ready")},hasSpryRegion:function(){if(typeof(Spry)!="undefined"&&Spry.Data&&Spry.Data.regionsArray){if(this.isEmptyObject(Spry.Data.regionsArray)){Spry.Data.initRegions()}for(var M in Spry.Data.regionsArray){var L=this.element.find("#"+M);if(L.length>0){this._spryRegion=M;return true}}}return false},isEmptyObject:function(M){for(var L in M){return false}return true},mute:function(){this._mute(true)},next:function(){var R,M=this.sound,Q=this.config,P=Q.diag,O=Q.playlist,L=O.length;if(L>1){R=Q.shuffle?Math.floor(Math.random()*L):P.index+1;if(R>=L&&Q.loop){R=0}if(R<L){(M&&M.stop());this._setSound(R,P.isPlaying);if(Q.onNext){if(typeof Q.onNext=="string"){var N=this;if(this.query){N=this.element.find(this.query).get(P.index)}(new Function(this._parse(Q.onNext))).call(N)}else{Q.onNext()}}}}},pause:function(){var L=this.sound;(L&&L.pause());this.element.find("."+v).removeClass(s);this.config.diag.isPlaying=false;this.element.trigger(y+".pause")},play:function(L){if(L!=null&&L>=0&&L<this.config.playlist.length){this._setSound(L,true)}else{if(!this.config.diag.isPlaying){this._play()}}},previous:function(){var R,M=this.sound,Q=this.config,P=Q.diag,O=Q.playlist,L=O.length;if(L>1){R=Q.shuffle?Math.floor(Math.random()*L):P.index-1;if(R<0&&Q.loop){R=L-1}if(R>=0){(M&&M.stop());this._setSound(R,P.isPlaying);if(Q.onPrevious){if(typeof Q.onPrevious=="string"){var N=this;if(this.query){N=this.element.find(this.query).get(P.index)}(new Function(this._parse(Q.onPrevious))).call(N)}else{Q.onPrevious()}}}}},setPan:function(M){var L=this.sound,N=this.config.sound.pan;N=Math.max(-100,Math.min(100,M));(L&&L.setPan(N));this.element.trigger(y+".pan",[N])},setPosition:function(M){var L=this.sound;(L&&L.setPosition(M))},setPosition2:function(M){var L=this.sound,N=L.loaded?L.duration:L.durationEstimate;if(L.playState==0){return}(L&&N>0&&L.setPosition(M*N))},setVolume:function(N){var M=this.sound,L=this.config.sound.volume;L=this.config.sound.volume=Math.max(0,Math.min(100,N));(M&&M.setVolume(L));this._updateInfo();this.element.trigger(y+".volume",[L])},stop:function(){var L=this.sound;(L&&L.stop());this.element.find("."+v).removeClass(s);this.config.diag.isPlaying=false;this.element.trigger(y+".stop")},toggleMute:function(){this._mute(!this.config.diag.isMuted)},togglePause:function(){if(this.sound){if(this.config.diag.isPlaying){this.pause()}else{this.play()}}},unmute:function(){this._mute(false)},_mute:function(L){var M=this.sound;if(L){(M&&M.mute())}else{(M&&M.unmute())}this.config.diag.isMuted=L;this._updateInfo();this.element.trigger(y+".mute",[L]);this.element.trigger(y+".volume",[L?0:this.config.sound.volume])},_play:function(){var L=this.sound,M=this.config;if(L){if(L.paused){L.resume()}else{L.play(M.sound)}M.diag.isPlaying=true;this.element.trigger(y+".play");this.element.find("."+v).addClass(s)}},_setSound:function(M,L){var T=this.sound,R=this.config,Q=R.diag,P=this.element;(T&&T.stop());(T&&!T.loaded&&T.unload());Q.index=M;this.sound=this.sounds[R.playlist[M]];T=this.sound;T.setVolume(Q.volume);this._mute(Q.isMuted);var S=T.bytesTotal||0,N=(S>0)?100*T.bytesLoaded/S:0;P.find("."+n).width(N+"%");P.find("."+p).width("0%");this._updateInfo();if(this.query){P.find(this.query).removeClass(E).eq(M).addClass(E)}if(L){this._play()}P.trigger(y+".change");if(R.onChange){if(typeof R.onChange=="string"){var O=this;if(this.query){O=this.element.find(this.query).get(Q.index)}(new Function(this._parse(R.onChange))).call(O)}else{R.onChange()}}},_updateInfo:function(){var L=this;this.element.find("."+u).each(function(){A(this).html(L._parse.call(L,A(this).data(y+".tpl")))});if(this.config.onUpdate){if(typeof this.config.onUpdate=="string"){var M=this;if(this.query){M=this.element.find(this.query).get(this.config.diag.index)}(new Function(this._parse(this.config.onUpdate))).call(M)}else{this.config.onUpdate()}}},_parse:function(Q){var R=this.config,P=R.diag,O=R.sound,L=this.sound,N=A[y].convertTime;var M=this._getTitle();if(!M){M=""}return(Q.replace(/##index##/g,P.index).replace(/##nr##/g,P.index+1).replace(/##title##/g,M.replace(/'/g,"\\'").replace(/"/g,'\\"'.replace(/([\n\r\t])/g,"\\$1"))).replace(/##time##/g,N(L?L.position:0)).replace(/##remaining##/g,N(L?L.duration-L.position:0)).replace(/##duration##/g,N(L?L.duration:0)).replace(/##position##/g,L?this._perc(L.position,L.duration):0).replace(/##volume##/g,P.isMuted?0:O.volume).replace(/##pan##/g,O.pan).replace(/##peakLeft##/g,j.features.peakData?(L?L.peakData.left:0):0).replace(/##peakRight##/g,j.features.peakData?(L?L.peakData.right:0):0))},_perc:function(M,L){return Math.round(100*M/L)||0},_getTitle:function(){var L=this.sound;if(this.query){var M=this.element.find(this.query).eq(this.config.diag.index);if(M.attr("title")!=""){return M.attr("title")}if(M.text()!=""){return M.text()}}return L?L.id3.title||L.id3.TIT2||L.url.substring(L.url.lastIndexOf("/")+1):"No sound loaded..."}};function z(){var T=false,P,M=navigator,N=M.plugins,L,O,V,S,W,X,Q,R=window.ActiveXObject;if(N&&N.length){V="application/x-shockwave-flash";S=M.mimeTypes;if(S&&S[V]&&S[V].enabledPlugin&&S[V].enabledPlugin.description){T=true}}else{if(typeof R!=="undefined"){try{O=new R("ShockwaveFlash.ShockwaveFlash")}catch(U){}T=(!!O)}}return T}})(jQuery,soundManager);
