
var PLAYLIST_MAX_HEIGHT=70;function MyPlayerAutoLayout(callback){var snippet_;var callback_=callback;var MAX_STRIP_HEIGHT=30;function addControlPanelPlayOps(container){container.append(snippet_.get('controlPanel'));$('#myplayer_control_panel').append(snippet_.get('controlPanelPlayOps'));var cPanelOps=$('#myplayer_play_ops');cPanelOps.append(snippet_.get('controlPanelPlayItem',{loc:_MyPlayerLocation_}));cPanelOps.append(snippet_.get('controlPanelTimers'));cPanelOps.append(snippet_.get('controlPanelNavItem',{loc:_MyPlayerLocation_}));$('#myplayer_control_panel_ops a img').each(function(){this.style.border="none";});$('#myplayer_slider').css("visibility","hidden");}
function addControlPanelTimeVolOps(container){$('#myplayer_control_panel').append(snippet_.get('controlPanelTimeVolumeOps'));var cPanelOps=$('#myplayer_timevol_ops');cPanelOps.append(snippet_.get('controlPanelVolume',{loc:_MyPlayerLocation_}));$('#myplayer_volume_strips').append(snippet_.get('controlPanelVolumeStrips'));cPanelOps.append(snippet_.get('controlPanelMute',{loc:_MyPlayerLocation_}));cPanelOps.append(snippet_.get('controlPanelCountdown'));$('#myplayer_time_countdown').css("visibility","hidden");}
function addPlaylist(container){container.append(snippet_.get('playlist'));var item=snippet_.get('playlistItem');var elements=$(".myplayer_mp3");elements.wrap(item);var playlist=$('#myplayer_playlist');playlist.append($('.myplayer_playlist_item'));if(typeof elements.tooltip=='function'){elements.tooltip({showURL:false});}}
return{init:function(){var loadedCallback=bind(this,this.loaded);snippet_=new SnippetStore(_MyPlayerLocation_+"myplayer_snippets.js",loadedCallback);snippet_.load();},loaded:function(){var container=$('#myplayer');addControlPanelPlayOps(container);addControlPanelTimeVolOps(container);addPlaylist(container);callback_();}}}
function PlayList(){var ordering_=new Array();var idToPosHash_=new Hash();return{add:function(num,object){ordering_[num]=object['id'];idToPosHash_.add(object['id'],num);},reset:function(){ordering_=[];idToPosHash_.removeAll();},getPosFromSongId:function(id){return idToPosHash_.get(id);},getSongIdFromPos:function(num){return ordering_[num];}}}
function SoundManagerHandler(){var loaded_=false;var disabled_=false;var needsLoading_=false;var elapsed_=0;var sliderRatio_=1-($('#myplayer_slider').width()/$('#myplayer_timers').width());function getDuration(sound){if(loaded_){return sound.duration;}
return sound.durationEstimate;}
function getTime(nMSec,bAsString){var nSec=Math.floor(nMSec/1000);var min=Math.floor(nSec/60);var sec=nSec-(min*60);if(min==0&&sec==0)return null;return(bAsString?(min+':'+(sec<10?'0'+sec:sec)):{'min':min,'sec':sec});}
return{getDurationFromId:function(songId){var sound=soundManager.getSoundById(songId);return getDuration(sound);},onplay:function(){$('#myplayer_loading_timer').css("width","0%");loaded_=false;firstSet_=false;needsLoading_=false;elapsed_=0;},whileloading:function(){needsLoading_=true;$('#myplayer_loading_timer').css("width",((this.bytesLoaded/this.bytesTotal)*100)+'%');if(firstSet_){return;}
var duration=getDuration(this);if(duration!=null){$('#myplayer_time_total').html(getTime(duration,true));firstSet_=true;}},whileplaying:function(){var elapsed=this.position/getDuration(this);if(disabled_){return;}
if(!needsLoading_){loaded_=true;$('#myplayer_time_total').html(getTime(getDuration(this),true));}
$('#myplayer_playing_timer').css("width",(elapsed*100)+'%');$('#myplayer_slider').css("left",(elapsed*100*sliderRatio_)+'%');if(Math.abs(this.position-elapsed_)>1000){elapsed_=this.position;$('#myplayer_time_remaining').html(getTime(elapsed_,true)||'0:00');}},onload:function(){loaded_=true;$('#myplayer_time_total').html(getTime(getDuration(this),true));},disableSlider:function(disabled){if(!disabled){$('#myplayer_slider').css("left","auto");}
disabled_=disabled;},setTimeRemaining:function(ratio,songId){$('#myplayer_time_remaining').html(getTime(Math.abs(ratio*this.getDurationFromId(songId)),true)||'0:00');}}}
function MyPlayer(){var numSongs_=0;var current_=0;var playlist_=new PlayList();var snippets_;var handler_=new SoundManagerHandler();var state_=0;var currentVolume_=100;var volumeIncrement_=0;var numberOfStrips_=0;var muted_=false;var mutedVolume_=0;var pauseImgURL=_MyPlayerLocation_+"images/pause.png";var playImgURL=_MyPlayerLocation_+"images/play.png";function showHidden(){$('#myplayer_slider').css("visibility","visible");$('#myplayer_time_countdown').css("visibility","visible");}
function setCurrentFromSoundId(id){var re=/mySound(\d)+/;var matches=re.exec(id);if(matches[1]!=null){current_=matches[1];return;}
current_=0;}
function setSelected(oldTrack,newElement){var oldSongId=playlist_.getSongIdFromPos(oldTrack);var oldLI=$('#'+oldSongId);var parentLI=oldLI.parent();if(parentLI!=null){parentLI.removeClass("ui-selected");}
parentLI=newElement.parent();if(parentLI!=null){parentLI.addClass("ui-selected");}}
function play(current,songId,element){setSelected(current,element);var sound=soundManager.getSoundById(songId);sound.instanceOptions.volume=currentVolume_;soundManager.stopAll();if(state_===2){$('#myplayer_play_pause_image').attr('src',pauseImgURL);state_=1;}
$('#myplayer_time_remaining').html('0:00');soundManager.play(songId);if(muted_){soundManager.mute(songId);if(state_!=0){soundManager.unmute(playlist_.getSongIdFromPos(current));}}}
function bindPlayToClicks(mp3s){mp3s.bind("click",function(){var element=$(this);var songId=element.attr('id');$('#myplayer_play_pause_image').attr('src',pauseImgURL);showHidden();play(current_,songId,element);current_=playlist_.getPosFromSongId(songId);state_=1;return false;})}
function playi(oldTrack,newTrack){var newSongId=playlist_.getSongIdFromPos(newTrack);var newElement=$('#'+newSongId);play(oldTrack,newSongId,newElement);}
function bindNextPrev(){$('#myplayer_next').bind("click",function(){if(current_>=(numSongs_-1)){return;}
soundManager._writeDebug("Current track #: "+current_);playi(current_,++current_);});$('#myplayer_previous').bind("click",function(){if(current_<=0){return;}
soundManager._writeDebug("Current track #: "+current_);playi(current_,--current_);})}
function bindPlayPause(){$('#myplayer_play_pause').bind("click",function(){if(state_==0&&current_>=0&&current_<numSongs_){$('#myplayer_play_pause_image').attr('src',pauseImgURL);soundManager.play(playlist_.getSongIdFromPos(current_));showHidden();state_=1;return;}
if(state_==1){$('#myplayer_play_pause_image').attr('src',playImgURL);soundManager.pause(playlist_.getSongIdFromPos(current_));state_=2;return;}
if(state_==2){$('#myplayer_play_pause_image').attr('src',pauseImgURL);soundManager.resume(playlist_.getSongIdFromPos(current_));state_=1;return;}});}
function highlightStrips(volume){var highlighted=volume/volumeIncrement_;for(var i=0;i<numberOfStrips_;i++){if(i<highlighted){$('#myplayer_strip_'+i).addClass('myplayer_strip_skin_on');}
else{$('#myplayer_strip_'+i).removeClass('myplayer_strip_skin_on');}}}
function bindVolumeOps(){numberOfStrips_=$('.myplayer_strip_skin').length
volumeIncrement_=100/numberOfStrips_;var inc=bind(this,this.increaseVolume);var dec=bind(this,this.decreaseVolume);var mute=bind(this,this.mute);$('#myplayer_volume_plus').bind("click",inc);$('#myplayer_volume_minus').bind("click",dec);$('#myplayer_mute').bind("click",mute);highlightStrips(100);}
function changeCurrentVolume(increment,checkfunc){var songId=playlist_.getSongIdFromPos(current_);var sound=soundManager.getSoundById(songId);var vol=sound.instanceOptions.volume;if(typeof(vol)=='undefined'){vol=sound.options.volume;}
if(checkfunc(vol)){return}
var newVolume=vol+increment;if(!muted_&&state_!=0){soundManager.setVolume(songId,newVolume);}
else{sound.instanceOptions.volume=newVolume;}
currentVolume_=newVolume;highlightStrips(newVolume);}
function bindControlPanel(){bindNextPrev.apply(this);bindPlayPause.apply(this);bindVolumeOps.apply(this);}
function setSliderDragStyle(){var elem=$('#myplayer_slider');elem.css("top","-2px");elem.css("height","10px");elem.css("width","10px");}
function removeSliderDragStyle(){var elem=$('#myplayer_slider');elem.css("top",'');elem.css("height",'');elem.css("width",'');}
return{init:function(){var mp3s=$('.myplayer_mp3');numSongs_=mp3s.length;var len=mp3s.length;for(var i=0;i<len;i++){var file=jQuery["attr"](mp3s[i],'href');var songId='mySound'+i;jQuery["attr"](mp3s[i],'id',songId);var next=bind(this,this.playNext);soundManager.createSound({id:songId,url:file,onplay:handler_.onplay,whileloading:handler_.whileloading,whileplaying:handler_.whileplaying,onload:handler_.onload,onfinish:next});playlist_.add(i,{id:songId});}
bindPlayToClicks(mp3s);bindControlPanel.apply(this);var sortOp=bind(this,this.sorting);$('#myplayer_playlist').sortable({axis:'y',update:sortOp,helper:this.sortHelper});var starting=bind(this,this.draggingStart)
var stopping=bind(this,this.draggingStop);var drag=bind(this,this.dragging);$('#myplayer_slider').draggable({axis:'x',containment:$('#myplayer_timers'),start:starting,stop:stopping,drag:drag});},playNext:function(){current_++;if(current_<numSongs_){playi(current_-1,current_);}
else{$('#myplayer_play_pause_image').attr('src',playImgURL);current_--;state_=0;$('#myplayer_slider').css("visibility","hidden");}},sortHelper:function(e,el){var item=el.clone();var link=item.find('a.myplayer_mp3');link.removeClass('myplayer_mp3');link.addClass('myplayer_helper');item.css("list-style-type","none");return item;},sorting:function(f,e,ui){var playingId=playlist_.getSongIdFromPos(current_);playlist_.reset();var mp3s=$('.myplayer_mp3');var len=mp3s.length;for(var i=0;i<len;i++){var songId=jQuery["attr"](mp3s[i],'id');if(songId==playingId){current_=i;soundManager._writeDebug("Current track "+songId+" # after sort : "+current_);}
playlist_.add(i,{id:songId});}},draggingStart:function(){handler_.disableSlider(true);setSliderDragStyle();},draggingStop:function(f,e,ui){var pos=ui.position;var width=$('#myplayer_timers').width();var currentSongId=playlist_.getSongIdFromPos(current_);var duration=handler_.getDurationFromId(currentSongId);var offset=(pos.left/width)*duration;soundManager.setPosition(currentSongId,offset);handler_.disableSlider(false);removeSliderDragStyle();},dragging:function(f,e,ui){var pos=ui.position;var width=$('#myplayer_timers').width();var ratio=(pos.left/width);$('#myplayer_playing_timer').css("width",(ratio*100)+'%');handler_.setTimeRemaining(ratio,playlist_.getSongIdFromPos(current_));},increaseVolume:function(){changeCurrentVolume(volumeIncrement_,function(vol){return(vol>=100)});},decreaseVolume:function(){changeCurrentVolume(-volumeIncrement_,function(vol){return(vol<=0)})},mute:function(){var playingId=playlist_.getSongIdFromPos(current_);if(muted_){$('#myplayer_mute_image').attr('src',_MyPlayerLocation_+'images/unmute.png');if(state_!=0){soundManager.unmute(playingId);}
if(currentVolume_!=mutedVolume_){soundManager.setVolume(playingId,currentVolume_);}
mutedVolume_=currentVolume_;muted_=false;return;}
$('#myplayer_mute_image').attr('src',_MyPlayerLocation_+'images/mute.png');if(state_!=0){soundManager.mute(playingId);}
muted_=true;}}}
function whenInitComplete()
{toComplete--;if(toComplete==0){var myPlayer=new MyPlayer();myPlayer.init();}}
if(_MyPlayerLocation_.lastIndexOf('/')!=(_MyPlayerLocation_.length-1)){_MyPlayerLocation_+='/';}
var toComplete=2;soundManager.debugMode=false;soundManager.waitForWindowLoad=true;soundManager.onload=whenInitComplete;soundManager.url=_MyPlayerLocation_+'soundmanager/';$(document).ready(function(){var layout=MyPlayerAutoLayout(whenInitComplete);layout.init();});
