(function($){$.fn.Audio5=function(options){var audioSupport=function(e){return(e[0]&&!!e[0].canPlayType&&navigator.userAgent.search(/android/i)==-1);};var flashVersion=function(a){var p=(a.attr('tagName')=='DIV')?a:a.parent();b=$('object',p)||$('embed',p);if(b.length){if(navigator.userAgent.search(/msie/i)==-1){var a=b.clone(true);$('audio',p).remove();$(p).append(a);}else{a=b}a=$.audio5.u.extend(a);a.data('is5',false);setInterval(function(){if(a.aGetDuration()!=-1){if(!a.initialized){a.initialized=true;$.audio5.c.checkAndCreate(a);}var s=a[0].getValue('status'),d=a[0].getValue('loaded');if(s=='paused'||s=='stopped')a.ctrls.btns.play.removeClass('pausebtn');else a.ctrls.btns.play.addClass('pausebtn');a.aProgress(d[0],d[1]);a.aTimeUpdate();}},1000);}return a;};if($(this).length==0&&$(this).selector==".audio5 audio"){$('div.audio5').Audio5();return;}$(this).each(function(i,a){var a=$(a),src=$('source',a).length;$('source',a).bind('error',function(){src-=1;if(src==0){a=flashVersion(a);if(a.length!=0){a.appendTo(a.parents('DIV.audio5'));}}});a.data('is5',audioSupport(a));if(a.data('is5')){a=$.audio5.u.extend(a);a.attr('controls',false);a.bind('loadedmetadata',function(){$.audio5.c.checkAndCreate(a);}).bind('timeupdate',function(){$.audio5.c.checkAndCreate(a);a.aTimeUpdate();}).bind('progress',function(data){$.audio5.c.checkAndCreate(a);if(data&&data.originalEvent&&data.originalEvent.loaded&&data.originalEvent.total){a.acceptProgress=true;a.aProgress(data.originalEvent.loaded,data.originalEvent.total);}}).bind('ended',function(){a.aEnded();}).bind('error',function(e){a=flashVersion(a);if(a.length!=0){a.appendTo(a.parents('DIV.audio5'));}});}else{flashVersion(a);}});};$.audio5={};$.audio5.a={aGetDuration:function(){var d,e=this;if(e.data('aDuration')){d=e.data('aDuration');}else{if(e.data('is5')){d=e.attr('duration');d=(d&&!isNaN(d))?d:0;}else{try{d=e[0].getValue('duration');e.aSetDuration(d);}catch(err){return -1;}}}return d;},aGetCurrentTime:function(){var e=this;return(e.data('is5'))?e.attr('currentTime'):e[0].getValue('current');},aSetDuration:function(d){this.data('aDuration',d);},aSetCurrentTime:function(t){var e=this;if(e.data('is5')){e.attr('currentTime',t);}else{e[0].makeAction(['seek',t]);}},aSetVolume:function(v){var e=this;if(e.data('is5')){e.attr('volume',v);}else{e[0].makeAction(['volume',v]);}},aIsSeeking:function(){var e=this;return(e.data('is5'))?e.attr('seeking'):e[0].getValue('status')=='seeking';},aPlay:function(){var e=this;if(e.data('is5')){e[0].play();}else{e[0].makeAction(['play']);}},aPause:function(){var e=this;if(e.data('is5')){e[0].pause();}else{e[0].makeAction(['pause']);}},aReady:function(){var e=this;$.audio5.u.domEvt(e);if(e.data('is5')&&e.attr('autoplay')){e.ctrls.btns.play.click()}},aMute:function(m){var e=this;if(e.data('is5')){e.attr('muted',m);}else{e[0].makeAction(['mute',m]);}},aProgress:function(l,t){var e=this;if(e.ctrls&&l&&t){e.ctrls.bars.loaded.width(Math.abs(l/t*e.ctrls.bars.seek.width()-2)).show();}},aTimeUpdate:function(){var e=this,ct=e.aGetCurrentTime(),d=e.aGetDuration();if(d>0){if(!e.acceptProgress){if(e.ctrls.bars.loaded.width()<(e.ctrls.bars.seek.width()*ct/d)){e.aProgress(ct,d);}}e.ctrls.times.html($.audio5.u.formatTime(ct)+'/'+$.audio5.u.formatTime(d));$.audio5.u.displace(e);}},aEnded:function(){var e=this;e.aSetDuration(e.aGetCurrentTime());e.aSetCurrentTime(0);if(e.attr('loop')){e.aPlay();}else{e.aPause();e.ctrls.btns.play.removeClass('pausebtn');}}};$.audio5.c={checkAndCreate:function(a){if(!a.ctrls){$.audio5.c.create(a);a.aReady();}},create:function(a){var id=$.audio5.u.getId('ctrl');a.after('<div class="ctrls" id="'+id+'">'+'<div class="ctrls-container">'+'<div class="seekbar columns">'+'<div class="seekbarscontainer">'+'<div class="loadedbar"></div>'+'</div>'+'<div class="seekbtn"></div>'+'</div>'+'<div class="columns left-column"><span class="playbtn btns"></span></div>'+'<div class="columns right-column"><em class="elapse-duration">00:00/00:00</em>'+'<span class="mutebtn btns"></span>'+'<div class="volumebar">'+'<div class="volumebarcontainer">'+'<div class="activebar"></div>'+'</div>'+'<div class="volumebtn"></div>'+'</div>'+'</div>'+'</div>'+'</div>');id='#'+id;a.ctrls={'ctrls':$(id),'container':$(id+' .ctrls-container'),'times':$(id+' .elapse-duration'),'column':{'left':$(id+' .left-column'),'right':$(id+' .right-column')},'btns':{'play':$(id+' .playbtn'),'mute':$(id+' .mutebtn'),'seek':$(id+' .seekbtn'),'vol':$(id+' .volumebtn')},'bars':{'seek':$(id+' .seekbar'),'container':$(id+' .seekbarscontainer'),'loaded':$(id+' .loadedbar'),'volume':$(id+' .volumebarcontainer'),'active':$(id+' .activebar')}};a.parent().addClass('shadow');$.audio5.u.dimension(a);var l=a.ctrls.column.left,r=a.ctrls.column.right,lw,rw;lw=l.width()+'px';rw=(r.width()+5)+'px';a.ctrls.container.css({'padding-left':lw,'padding-right':rw});l.css('right',lw);r.css('margin-right','-'+rw);with(this.evt){play(a);mute(a);volume(a);seek(a);}},evt:{play:function(a){a.ctrls.btns.play.click(function(){if($(this).hasClass('pausebtn')){a.aPause();}else{a.aPlay();}$(this).toggleClass('pausebtn');});},mute:function(a){a.ctrls.btns.mute.click(function(){$(this).toggleClass('mutebtn-on');a.aMute($(this).hasClass('mutebtn-on'));});},volume:function(a){var v=a.ctrls.btns.vol,vb=a.ctrls.bars.volume;v.attr('moving','false').mousedown(function(){v.attr('moving','true');});vb.click(function(e){var m=$(this),l=m.offset().left,x=e.pageX-l,mw=m.width(),bw=v.width(),vol=x/mw,p=Math.min(x,mw-bw);v.css('left',p+'px');a.ctrls.bars.active.show().width(p+bw/2);a.aSetVolume(vol);a.ctrls.btns.mute.removeClass('mutebtn-on');});},seek:function(a){var s=a.ctrls.btns.seek;s.attr('moving','false').mousedown(function(){$(this).attr('moving','true');});a.ctrls.bars.loaded.click(function(e){var x=e.pageX-$(this).offset().left;s.css('left',(x-s.width()/2)+'px');a.aSetCurrentTime(x/a.ctrls.bars.container.width()*a.aGetDuration());});}},act:{seek:function(a,c){var s=a.ctrls.btns.seek,l=a.ctrls.bars.loaded;if(s.attr('moving')==='true'){var x=Math.max(c.x-l.offset().left,0),r=l.width()-s.width();x=Math.min(x,(r<0)?0:r);s.css('left',x+'px');}},volume:function(a,c){var b=a.ctrls.btns.vol,vb=a.ctrls.bars.volume,l=(vb.length>0)?vb.offset().left:0;if(b.attr('moving')==='true'){var bw=b.width(),vbw=vb.width(),x=Math.max(c.x-vb.offset().left,0);x=Math.min(vbw-bw,x);b.css('left',x);a.ctrls.bars.active.width(x+bw/2);a.aSetVolume(x/(vbw-bw));a.ctrls.btns.mute.removeClass('mutebtn-on')}}}};$.audio5.u={extend:function(e){for(a in $.audio5.a){e[a]=$.audio5.a[a];}return e;},formatTime:function(n){n=parseInt(n);if(!isNaN(n)){var m=Math.floor(n/60)<10?"0"+Math.floor(n/60):Math.floor(n/60),s=Math.floor(n-(m*60))<10?"0"+Math.floor(n-(m*60)):Math.floor(n-(m*60));return m+":"+s;}return"00:00";},getId:function(pre){var id=pre;while($('#'+id).length){id=pre+Math.random()*Math.pow(10,17);}return id;},dimension:function(a){var h=a.attr('height'),w=a.attr('width');h=isNaN(parseInt(h))?0:parseInt(h);w=isNaN(parseInt(w))?0:parseInt(w);var o={'height':Math.max(h,25),'width':Math.max(w,220)};a.css(o).parent().css(o);},displace:function(a){var b=a.ctrls.btns.seek,c=a.ctrls.bars.container.width(),l=a.ctrls.bars.loaded.width(),d=a.aGetDuration();if(!a.aIsSeeking()&&b.attr('moving')==='false'){b.css('left',((d>0)?Math.floor(a.aGetCurrentTime()*(c-b.width()/2)/d):Math.max(l-b.width()/2,0))+'px');}},domEvt:function(a){$(document).mousemove(function(e){var c={'x':e.pageX,'y':e.pageY};$.audio5.c.act.seek(a,c);$.audio5.c.act.volume(a,c);}).mouseup(function(e){var s=a.ctrls.btns.seek;if(s.attr('moving')==='true')a.aSetCurrentTime(a.aGetDuration()*parseFloat(s.css('left'))/a.ctrls.bars.seek.width());s.attr('moving','false');a.ctrls.btns.vol.attr('moving','false');});}};$(function(){$('.audio5 audio').Audio5();});})(jQuery)
