// JavaScript Document
document.domain = "myspace.cn";

var SKIN_TYPE = {
	user:"user",
	artist:"artist",
	popout:"popoutInternational2"
};
var moFlashPlayer=null;
var MyspacePlayer = {};
setMediaPlayer();
init();

function init(){

	var lsPlayerType=getParameter("playerType");
	if(lsPlayerType!=""){		
		var loparaMeter={};
		loparaMeter.type = getParameter("type");
		loparaMeter.userID =getParameter("userID");
		loparaMeter.profileID=getParameter("profileID");
		loparaMeter.playListID = getParameter("playListID");		
		loparaMeter.songIDs = getParameter("songIDs").split(",");
		loparaMeter.skin=getParameter("skin");
		
		createPlayerByType(lsPlayerType,loparaMeter);
		notifyPlayer(loparaMeter);
	}else{
		createPlayerByType("popoutInternational2",{});
	}
}

function createPlayerByType(asPlayerType,asParaMeter){
	
	MyspacePlayer.player =document.getElementById("MediaPlayerObject"); 
	
	if(asPlayerType==SKIN_TYPE.user){
		//createPlayer_User();
		var url="bandtype=0&plid="+asParaMeter.playListID+"&profid="+asParaMeter.profileID+"&userid="+asParaMeter.userID+"&skin="+asParaMeter.skin+"&skinver=2";
		createPlayerByString("http://lads.myspace.cn/mediaplayer/main.swf?v=20091019","MediaPlayer_SWF",300,400,url);
	}else if(asPlayerType==SKIN_TYPE.artist){
		//createPlayer_Artist();
		var url="bandtype=1&plid="+asParaMeter.playListID+"&profid="+asParaMeter.profileID+"&userid="+asParaMeter.userID+"&skin="+asParaMeter.skin+"&skinver=2";
		createPlayerByString("http://lads.myspace.cn/mediaplayer/main.swf?v=20091019","MediaPlayer_SWF",450,400,url);
	}else if(asPlayerType==SKIN_TYPE.popout){
		//createPlayer_Popout();
		var url="skin=popoutInternational2&skinver=2";
		createPlayerByString("http://lads.myspace.cn/mediaplayer/main.swf?v=20091019","MediaPlayer_SWF",300,140,url);
		createPlayerByString("http://lads.myspace.cn/mediaplayer/PlayLists.swf?v=20091019","MediaList_SWF",300,347,"");
	}
}

/********************************************************* page event *************************************************/
function onClearTList(){
	if (typeof(moFlashPlayer)!="undefined"&&moFlashPlayer!=null){
		moFlashPlayer.clearPlayLists();
	}
}
function onItemClick(aiUserID,aiplayListID){
	playMusic({"type":"list","userID":aiUserID,"playListID":aiplayListID,"songIDs":[]});
}

/*************************************** 播放音乐 **********************************/
var moPlayparaMeter=null;
function notifyPlayer(ao){
	if (ao==null||typeof(moFlashPlayer)=="undefined"||moFlashPlayer==null){
		moPlayparaMeter=ao;
		setTimeout("notifyPlayer(moPlayparaMeter)",200);
		return false;
	}
	moPlayparaMeter=null;
	playMusic(ao);
	return true;
}

function getParameter(asName){
	var reg = new RegExp("(^|&|\\?|\\s)"+ asName +"\\s*=\\s*([^&]*?)(\\s|&|$)", "i");
	if (reg.test(document.location.search)) return RegExp.$2.replace(/[\x0f]/g, ";"); return "";
}
function getSWF(asName) {
  	if(navigator.userAgent.indexOf("IE") != -1) {
  		return window[asName];
	}
 	else{
 		return document[asName];
	}
}
function playSong(axSongIDs){					//播放歌曲列表
	var lxSongIDs=[];
	for (var i=0; i<axSongIDs.length; i++){
		lxSongIDs[lxSongIDs.length]=axSongIDs[i];
	}
	try{
		if (typeof(moFlashPlayer)!="undefined"&&moFlashPlayer!=null){
		
			moFlashPlayer.loadPlayLists(0,lxSongIDs);
		}
	}catch(e){}
}

function playSongList(aiUserID,aiListID){		//播放歌单
	try{
		if (typeof(moFlashPlayer)!="undefined"&&moFlashPlayer!=null){
			moFlashPlayer.loadPlaylist(aiUserID,aiListID);
		}
	}catch(e){}
}
function playMusic(ao){				//{type,playListID,userID,songIDs}
	var IsUrl="http://music.myspace.cn/music_player_service.php?action=getLeftHtml&playlistId="+ao.playListID+"&playlistUserId="+ao.userID;
	CNMS.loadJsonP(IsUrl,getListBack);
	function getListBack(aoData){
		if(aoData.Result!=0){
			alert(aoData.Msg);
		}else{			
			var liuserID=aoData.Msg.PlaylistUserID;
			var liplayListID=aoData.Msg.PlaylistID;
			
			var lstype=ao.type||"list";
			if (liplayListID==0){lstype="song";}
			
			UpdateLeftList(aoData.Msg.Html);
			if(lstype=="song"){	    		//歌曲   playListID=0 为临时歌单
				playSong(ao.songIDs);
			}else if(lstype=="list"){		//歌单
				playSongList(liuserID,liplayListID);
			}
		}
	}
}

/*************************************** 左侧栏 **********************************/
function UpdateLeftList(asHTML){
	var leLstUl=document.getElementById("mpLeftList");
	leLstUl.innerHTML=asHTML;
}



/******************************************* JS-FLASH 接口 **********************************************************/
//bridge
var listLoad = false;
var tempPlayList = null;
var tempSongID = -2;
var tempSongIndex = -2;
var tempParamInit = null;

function onPlayerInit(paramInit){
	moFlashPlayer= getSWF("MediaPlayer_SWF");
	
	if(listLoad)
	{
		var swf = document.getElementById("MediaList_SWF");
		swf.initParams(paramInit);
	}
	else
	{		
		tempParamInit = paramInit;
	}

}

//List 播放列表初始化 
function onPlayListInit(){
	listLoad = true;
	setTimeout(handlerStackFunction, 1000);
}

//handle init
// 处理堆栈请求
function handlerStackFunction(){
	if(tempPlayList)
	{
		var swf = document.getElementById("MediaList_SWF");
		swf.setPlayList(tempPlayList);
		tempPlayList = null
	}
	if(tempSongID != -2)
	{		
		var swf = document.getElementById("MediaList_SWF");
		swf.setTrack(tempSongID, tempSongIndex);
		tempSongID = -2;
		tempSongIndex = -2;
	}
	if(tempParamInit)
	{
		var swf = document.getElementById("MediaList_SWF");
		swf.initParams(tempParamInit);
	}

}
//main
// 歌单加载完成 (for main)
function onPlayListLoad(tracks){
	if(listLoad)
	{
		var swf = document.getElementById("MediaList_SWF");
		swf.setPlayList(tracks);
	}
	else
	{
		tempPlayList = tracks;
	}
}



//from main
//  播放 并更新下面的swf
function onChangeTrack(songID, index){
	if(listLoad)
	{
		var swf = document.getElementById("MediaList_SWF");
		swf.setTrack(songID, index);
	}
	else
	{
		tempSongID = songID;
		tempSongIndex = index;
	}
}

//list
// 点击播放列表 通知播放器播放
function onPlayTrack(songID, artistid){
	var swf = document.getElementById("MediaPlayer_SWF");
	swf.playTrackFromList(songID, artistid);
}

//list  随机播放
function getShuffleList(){
	var swf = document.getElementById("MediaPlayer_SWF");
	var a = swf.shuffle();
	return a;
}

//list 取消随机
function unShuffle(){
	var swf = document.getElementById("MediaPlayer_SWF");
	swf.unshuffle();
}

//list 添加到播放列表  Add~~
function onAddTrack(songID, artistid){
	var swf = document.getElementById("MediaPlayer_SWF");
	swf.addTrackToProfile(songID, artistid);
}

//
//main
//main
function onPopout(url){
	//打开新的弹出窗口。参数根据最后一次请求有不同。如果最后一次是getPlayList， 则：url = "&shuffle=&plid=&profid=&sseed"
	//否则， url = "&shuffle&plid=&profid=&&bid=&sseed"
	//新弹出播放器需要添加如下参数，均可从url中获取：
	// MediaPlayerSO.addVariable("plid", "plid"); //play list id
	// MediaPlayerSO.addVariable("shuffle", "shuffle");	//是否随机
	// MediaPlayerSO.addVariable("profid", "profid"); //歌单所在profile的id   //
	// MediaPlayerSO.addVariable("artid", "bid");	 //song的artistID        //
	// MediaPlayerSO.addVariable("sseed", "sseed");	 //随机种子
	//MediaPlayerSO("popPara",url)
	
	//PlayerMObject.paraMeter.url=url;
	
	PlayerMObject.profilePopout(url);
	//PlayerMObject.playSongList(1231,3434);
}

/***********************************************************************************************/

///
/// @ Windows Media Player Control Model
///

function setMediaPlayer(){
	MyspacePlayer.player = {};
	MyspacePlayer.control = {};
	MyspacePlayer.events = {};
	MyspacePlayer.control.setURL = function(value){
		MyspacePlayer.player.URL = value;
	};
	MyspacePlayer.control.clear = function(){
		//TODO: clear all media reference.
	};
	MyspacePlayer.control.play = function(){
		if(MyspacePlayer.player.controls.isAvailable('Play')){
			MyspacePlayer.player.controls.play();
		}	
	};
	MyspacePlayer.control.stop = function(){
		if(MyspacePlayer.player.controls.isAvailable('Stop')){
			MyspacePlayer.player.controls.stop();
		}	
	};
	MyspacePlayer.control.pause = function(){
		if(MyspacePlayer.player.controls.isAvailable('Pause')){
			MyspacePlayer.player.controls.pause();
		}	
	};
	MyspacePlayer.control.getCurrentPosition = function(){
		return MyspacePlayer.player.controls.currentPosition;
	};
	MyspacePlayer.control.setCurrentPosition = function(value){
		if (!isNaN(value) && (value != '')){
			MyspacePlayer.player.controls.currentPosition = value;
		}	
	};
	MyspacePlayer.control.getVolume = function(){
		return MyspacePlayer.player.settings.volume;
	};
	MyspacePlayer.control.setVolume = function(value){
		if (!isNaN(value) && (value != '')){
			MyspacePlayer.player.settings.volume = value;
		}	
	};
	MyspacePlayer.control.mute = function(value){
		MyspacePlayer.player.settings.mute = value;
	};
	MyspacePlayer.control.getDuration = function(){
		return MyspacePlayer.player.currentMedia.duration;
	};
	MyspacePlayer.control.getDownloadProgress = function(){
		return MyspacePlayer.player.network.downloadProgress;
	};
}

function createPlayerByString(asSwfUrl,asDomId,asWidth,asHeight,asQuery){
	
	var MediaPlayerSO = new SWFObject(asSwfUrl, asDomId, asWidth, asHeight, "9.0.0", "#000000");
	MediaPlayerSO.addParam("allowScriptAccess", "always");
	MediaPlayerSO.addParam("allowNetworking", "all");
	MediaPlayerSO.addParam("wmode", "transparent");
	
	var liIndex = asQuery.indexOf("?");
	var lsQuery = liIndex > -1 ? asQuery.substring(liIndex + 1) : asQuery;
	var lxQuery = lsQuery.split("&");
	
	for (var i = 0; i < lxQuery.length; i++) {
		var lxKeyValue = lxQuery[i].split("=");
		MediaPlayerSO.addVariable(lxKeyValue[0],lxKeyValue[1]);
	}
	if(typeof(MyspacePlayer.player.controls)=="undefined"){
		MediaPlayerSO.addVariable("wma", false); 
	}else{
		MediaPlayerSO.addVariable("wma", true); 
	}
	var domId=asDomId.replace("_","");
	MediaPlayerSO.write(domId);
}
