function bmvSongMusic(b,a,c){if(c!==false){this.create(b,a,c)}}bmvSongMusic.inherit(top.bmHTMLView);bmvSongMusic.prototype.sourceSongsInfoByAlbum="/modules/music/song/rp/getAlbumSongs.php";bmvSongMusic.prototype.trackListControl=null;bmvSongMusic.prototype.trackListContainer=null;bmvSongMusic.prototype.trackListBlock=null;bmvSongMusic.prototype.loadSongs=false;bmvSongMusic.prototype.albumIdentifier=0;bmvSongMusic.prototype.albumSongs=new Array();bmvSongMusic.prototype.currentSongIdentifier="";bmvSongMusic.prototype.suspendDropdown=null;bmvSongMusic.prototype.suspendButton=null;bmvSongMusic.prototype.limitShowingSongs=30;bmvSongMusic.prototype.controlClick=false;bmvSongMusic.prototype.playButton=null;bmvSongMusic.prototype.suspendButton=null;bmvSongMusic.prototype.status="ready";bmvSongMusic.prototype.backgroundPositionPlay="0px 24px";bmvSongMusic.prototype.showTextControl=null;bmvSongMusic.prototype.hideTextControl=null;bmvSongMusic.prototype.suspendedButtonDown=false;bmvSongMusic.prototype.bottomIndexTrackList=0;bmvSongMusic.prototype.topIndexTrackList=0;bmvSongMusic.prototype.create=function(application,owner,parameters){this.type="bmvSongMusic";this.className="bmvSongMusic";top.bmHTMLView.prototype.create.call(this,application,owner,parameters);var sender=this;sender.load=function(event){sender.trackListControl=sender.document.getElementById("trackListControl");sender.playButton=sender.document.getElementById("playButton");sender.suspendButton=sender.document.getElementById("suspendButton");sender.currentSongIdentifier=sender.playButton.getAttribute("currentSongIdentifier");application.attachEvent(sender.playButton,"click",sender.action);application.player.attachEvent("statechange",sender.changeStatePlayer);sender.suspendButton=sender.document.getElementById("suspendButton");sender.suspendDropdown=application.createObject("bmSuspendDropdown",sender,{name:"suspendDropdown",element:sender.suspendButton,elementWindow:application.getWindow("content"),top:"rounded"});application.attachEvent(sender.suspendButton,"click",sender.activeSuspendDropDown);application.attachEvent(sender.document,"click",sender.hideSuspendedDropDown);sender.suspendDropdown.attachEvent("hide",sender.hideSuspendDropDownHandler);if(sender.trackListControl!=null){sender.trackListBlock=sender.document.getElementById("songsBlock");sender.albumIdentifier=sender.trackListControl.getAttribute("albumIdentifier");application.attachEvent(sender.trackListControl,"click",sender.showTrackList);application.attachEvent(sender.document,"click",sender.hideTrackList);sender.trackListContainer=sender.document.getElementById("trackListContainer");application.httpGateway.get(sender.sourceSongsInfoByAlbum+"?id="+sender.albumIdentifier,sender.loadSongsHandler)}sender.showTextControl=sender.document.getElementById("showTextControl");if(sender.showTextControl!=null){application.attachEvent(sender.showTextControl,"click",sender.showFullSongText);sender.hideTextControl=sender.document.getElementById("hideTextControl");application.attachEvent(sender.hideTextControl,"click",sender.showShortSongText)}};sender.getTopIndexTrackList=function(){return sender.topIndexTrackList};sender.setTopIndexTrackList=function(value){sender.topIndexTrackList=value};sender.getBottomIndexTrackList=function(){return sender.bottomIndexTrackList};sender.setBottomIndexTrackList=function(value){sender.bottomIndexTrackList=value};sender.incrementTopIndex=function(){if(sender.topIndexTrackList<(sender.albumSongs.length-1)){sender.topIndexTrackList++}};sender.decrementTopIndex=function(){if(sender.topIndexTrackList>0){sender.topIndexTrackList--}};sender.incrementBottomIndex=function(){if(sender.bottomIndexTrackList<(sender.albumSongs.length-1)){sender.bottomIndexTrackList++}};sender.decrementBottomIndex=function(){if(sender.bottomIndexTrackList>0){sender.bottomIndexTrackList--}};sender.makeTrackList=function(songs){var currentSongPosition=0;var songKey;var position=0;var song;for(songKey in songs){song=songs[songKey];if(song.identifier==sender.currentSongIdentifier){currentSongPosition=parseInt(songKey,10);break}}var startPosition=(currentSongPosition-16);var endPosition=(currentSongPosition+15);var moreBottomSongs=false;var moreTopSongs=false;var center=(songs.length/2);if(currentSongPosition<center){if(startPosition<0){endPosition+=Math.abs(startPosition);startPosition=0}if(endPosition>(songs.length-1)){endPosition=songs.length-1}}else{if(endPosition>(songs.length-1)){startPosition-=(endPosition-songs.length-1);endPosition=songs.length-1}if(startPosition<0){startPosition=0}}if(startPosition>0){moreBottomSongs=true}if(endPosition<(songs.length-1)){moreTopSongs=true}var trackList="";if(moreBottomSongs){trackList+=application.applyTemplate("moreTrack",{type:1})}position=startPosition;var songCounter=0;for(songKey=startPosition;songKey<=endPosition;songKey++){song=songs[songKey];if(song.identifier!=sender.currentSongIdentifier){if(song.hasFile==1){trackList+=application.applyTemplate("track",{trackId:song.identifier,songPage:song.info,trackNumber:song.trackNumber,trackName:song.title})}else{trackList+=application.applyTemplate("trackHasNoFile",{trackNumber:song.trackNumber,trackName:song.title})}}else{trackList+=application.applyTemplate("currentTrack",{trackId:song.identifier,trackNumber:song.trackNumber,trackName:song.title})}}if(moreTopSongs){trackList+=application.applyTemplate("moreTrack",{type:2})}sender.trackListContainer.innerHTML=trackList;var bottomControlPlaylist=sender.document.getElementById("control_1");if(bottomControlPlaylist!==null){application.attachEvent(bottomControlPlaylist,"click",function(){sender.rotateTrackList(1)})}var topControlPlaylist=sender.document.getElementById("control_2");if(topControlPlaylist!==null){application.attachEvent(topControlPlaylist,"click",function(){sender.rotateTrackList(2)})}sender.setBottomIndexTrackList(startPosition);sender.setTopIndexTrackList(endPosition)};sender.addBottomTrack=function(){var bottomIndexTrackList=sender.getBottomIndexTrackList();var currentBottomSong=sender.albumSongs[bottomIndexTrackList];bottomIndexTrackList--;var song=sender.albumSongs[bottomIndexTrackList];if(typeof song!="undefined"){var trackParameters={trackId:song.identifier,songPage:song.info,trackNumber:song.trackNumber,trackName:song.title};var trackTemplate="";if(song.identifier!=sender.currentSongIdentifier){trackTemplate="track"}else{trackTemplate="currentTrack"}var trackHTML=application.applyTemplate(trackTemplate,trackParameters);var bottomTrackId="track_"+currentBottomSong.identifier;application.updateElement(sender.trackListContainer,trackHTML,sender.document,"insert",bottomTrackId);sender.decrementBottomIndex()}};sender.removeBottomTrack=function(){var bottomIndexTrackList=sender.getBottomIndexTrackList();var song=sender.albumSongs[bottomIndexTrackList];if(typeof song!="undefined"){var trackElementId="track_"+song.identifier;var trackElement=sender.document.getElementById(trackElementId);if(trackElement!==null){trackElement.parentNode.removeChild(trackElement);sender.incrementBottomIndex()}}};sender.addTopTrack=function(){var topIndexTrackList=sender.getTopIndexTrackList()+1;var song=sender.albumSongs[topIndexTrackList];if(typeof song!="undefined"){var trackParameters={trackId:song.identifier,songPage:song.info,trackNumber:song.trackNumber,trackName:song.title};var trackTemplate="";if(song.identifier!=sender.currentSongIdentifier){trackTemplate="track"}else{trackTemplate="currentTrack"}var trackHTML=application.applyTemplate(trackTemplate,trackParameters);application.updateElement(sender.trackListContainer,trackHTML,sender.document,"append");sender.incrementTopIndex()}};sender.removeTopTrack=function(){var topIndexTrackList=sender.getTopIndexTrackList();var song=sender.albumSongs[topIndexTrackList];if(typeof song!="undefined"){var trackElementId="track_"+song.identifier;var trackElement=sender.document.getElementById(trackElementId);if(trackElement!==null){trackElement.parentNode.removeChild(trackElement);sender.decrementTopIndex()}}};sender.removeTrackListControl=function(type){var controlId="control_";switch(type){case"bottom":controlId+="1";break;case"top":controlId+="2";break}var control=sender.document.getElementById(controlId);if(control!==null){control.parentNode.removeChild(control)}};sender.addTrackListControl=function(type){if(type=="bottom"){var control=sender.document.getElementById("control_1");if(control==null){var songIndex=sender.getBottomIndexTrackList();if(songIndex>0){var bottomSong=sender.albumSongs[songIndex];if(typeof bottomSong!="undefined"){var bottomTrackListControlHTML=application.applyTemplate("moreTrack",{type:1});var bottomSongId="track_"+bottomSong.identifier;application.updateElement(sender.trackListContainer,bottomTrackListControlHTML,sender.document,"insert",bottomSongId);var bottomControl=sender.document.getElementById("control_1");application.attachEvent(bottomControl,"click",sender.topPlaylistControlClickEventHandler)}}}}else{if(type=="top"){var control=sender.document.getElementById("control_2");if(control==null){var songIndex=sender.getTopIndexTrackList();if(songIndex<(sender.albumSongs.length-1)){var topSong=sender.albumSongs[songIndex];if(typeof topSong!="undefined"){var topTrackListControlHTML=application.applyTemplate("moreTrack",{type:2});application.updateElement(sender.trackListContainer,topTrackListControlHTML,sender.document,"append");var topControl=sender.document.getElementById("control_2");application.attachEvent(topControl,"click",sender.bottomPlaylistControlClickEventHandler)}}}}}};sender.topPlaylistControlClickEventHandler=function(event){sender.rotateTrackList(1)};sender.bottomPlaylistControlClickEventHandler=function(event){sender.rotateTrackList(2)};sender.rotateTrackList=function(direction){if(direction==1){sender.removeTrackListControl("bottom");sender.addBottomTrack();sender.addTrackListControl("bottom");sender.removeTrackListControl("top");sender.removeTopTrack();sender.addTrackListControl("top")}else{sender.removeTrackListControl("top");sender.addTopTrack();sender.addTrackListControl("top");sender.removeTrackListControl("bottom");sender.removeBottomTrack();sender.addTrackListControl("bottom")}};sender.unload=function(){application.player.detachEvent("statechange",sender.changeStatePlayer)};sender.xchageStateSuspendButton=function(){if(sender.suspendedButtonDown==false){sender.changeSuspendedButton("down")}else{sender.changeSuspendedButton("up")}};sender.activeSuspendDropDown=function(event){sender.changeSuspendedButton("down");sender.suspendDropdown.show([sender.currentSongIdentifier]);application.eventPreventDefault(event);return false};sender.hideSuspendDropDownHandler=function(event){sender.changeSuspendedButton("up")};sender.changeSuspendedButton=function(state){switch(state){case"up":sender.suspendButton.style.backgroundPosition="0px 0px";sender.suspendedButtonDown=false;break;case"down":sender.suspendButton.style.backgroundPosition="0px 24px";sender.suspendedButtonDown=true;break}};sender.showFullSongText=function(event){var shotTextContainer=sender.document.getElementById("shortTextContainer");var fullTextContainer=sender.document.getElementById("fullTextContainer");shotTextContainer.style.display="none";fullTextContainer.style.display="block"};sender.showShortSongText=function(event){var shotTextContainer=sender.document.getElementById("shortTextContainer");var fullTextContainer=sender.document.getElementById("fullTextContainer");fullTextContainer.style.display="none";shotTextContainer.style.display="block"};sender.changeStatePlayButton=function(state){switch(state){case"down":sender.playButton.style.backgroundPosition="0px 25px";break;case"up":sender.playButton.style.backgroundPosition="0px 0px";break}};sender.action=function(event){if(application.player.currentSong==null){application.player.playContent(sender.currentSongIdentifier,"audio","new");sender.changeStatePlayButton("down");return}if(application.player.currentSong.identifier!=sender.currentSongIdentifier){application.player.playContent(sender.currentSongIdentifier,"audio","new");sender.changeStatePlayButton("down");return}if(application.player.readyState==application.player.PLAYER_PLAY&&sender.currentSongIdentifier==application.player.currentSong.identifier){application.player.pause();sender.changeStatePlayButton("up");return}if(application.player.readyState==application.player.PLAYER_PAUSE&&sender.currentSongIdentifier==application.player.currentSong.identifier){application.player.play();sender.changeStatePlayButton("down");return}};sender.changeStatePlayer=function(event){switch(application.player.readyState){case application.player.PLAYER_READY:sender.changeStatePlayButton("up");break;case application.player.PLAYER_PLAY:if(sender.currentSongIdentifier==application.player.currentSong.identifier){sender.changeStatePlayButton("down")}else{sender.changeStatePlayButton("up")}break;case application.player.PLAYER_PAUSE:if(sender.currentSongIdentifier==application.player.currentSong.identifier){sender.changeStatePlayButton("up")}break}};sender.loadSongsHandler=function(event){sender.albumSongs=eval("("+event.data+")");if(sender.albumSongs!="[]"){sender.makeTrackList(sender.albumSongs)}};sender.hideTrackList=function(event){var element=application.getOriginalEventElement(event);var clickByTrackListContainer=application.elementInContainer(element,sender.trackListContainer,sender.window);var clickByTrackListControl=application.elementInContainer(element,sender.trackListControl,sender.window);var clickByBottomTrackListRotateControl=false;var clickByTopTrackListRotateControl=false;var clickByPlaylistControl=sender.elementIsTrackListControl(element);if(!(clickByTrackListContainer||clickByTrackListControl||clickByPlaylistControl)){sender.trackListBlock.style.display="none"}};sender.elementIsTrackListControl=function(element){if((element.id=="control_1")||(element.id=="control_2")||(element.className=="moreText")){return true}else{return false}};sender.clickByCurrentSong=function(event){sender.trackListBlock.style.display="none"};sender.showTrackList=function(event){sender.trackListBlock.style.display="block"};sender.selectAlbumLink=function(){var albumTitle=sender.document.getElementById("albumTitleLink");albumTitle.style.color="#BB3300"};sender.deselectAlbumLink=function(){var albumTitle=sender.document.getElementById("albumTitleLink");albumTitle.style.color="#21499A"}};var application=top.application;application.bmvSongMusic=new bmvSongMusic(application,application,{name:"bmvSongMusic",window:self});
