www.gusucode.com > 易心博客[圣诞版] 3.5手动安装码程序 > Player/PPDefault/js/cnsidebud.js

    <!--//
//=========================================================
// File: cnsidebud.js
// Version:2.0
// Date: 2003-5-6
// Script Written by hoja
//=========================================================
// Copyright (C) 2002,2003 CnSide.com. All rights reserved.
// Web: http://www.cnside.com,http://bbs.cnside.com
// Email: master@cnside.com
//=========================================================
//-->
var objMmInfo = null;
var intMmCnt = 0;
var intSelMmCnt=0;
var intActMmCnt=0;
var cActIdx=0;
var cActTit="nAnT";
var strMmInfo ="Infomation";

var blnfpl=false;
var blnEnabled= false;
var blnEOT=false;
var arrSelMm=null;
var arrActMm=null;
var intCnSideBudStat =0;
var tidTLab=null;
var tidErr=null;
var tidMsg=null;
var intErrCnt=0;
var blnRept=false;

var blnAutoProc = true;
var blnElaps=true; 
var intDelay =500;

function processKey() { 
if ( event.keyCode == 90 || event.keyCode == 0x25) {playPrev();}
 else if ( event.keyCode == 67 ) {wmpStop();}
 else if ( event.keyCode == 86 || event.keyCode == 80) {startCnSideBud();}
 else if ( event.keyCode == 88 ) {wmpPP();}
 else if ( event.keyCode == 66 || event.keyCode == 0x27) {playNext();}
 else if ( event.keyCode == 84 ) {chgTimeFmt();}
 else if ( event.keyCode == 65 ) {wmpMute();}
 else if ( event.keyCode == 83 || event.keyCode == 82) {chgPMode();}
 else if ( event.keyCode == 76 ) {chkRept();}
 else if ( event.keyCode == 77 ) {ShowHideList();}
 else if ( event.keyCode == 73 ) {alert(strMmInfo);}
} 
document.onkeydown = processKey;

function wmpInit(){
 var wmps = CnSideBud.settings;
 var wmpc = CnSideBud.ClosedCaption;

 wmps.autoStart=true;
 wmps.balance=0;
 wmps.enableErrorDialogs=false;
 wmps.invokeURLs = false;
 wmps.mute=false;
 wmps.playCount=1;
 wmps.rate=1;
 wmps.volume = 100;
 if(blnUseSmi){wmpc.captioningID="capText"; capText.style.display="";}
 CnSideBud.enabled=true;
}

function mkMmPath(u,t,f,s,l){
 this.mmUrl = u;
 this.mmTit =t;
 this.mmDur =0;
 this.mmCl = l;
 this.selMm=f;
 this.actMm=f;
 if(blnUseSmi){this.mmSmi=s;}
}


function mkList(u,t,s,f,l){
 var cu=u;
 var ct=t;
 var cs=s;
 var cf=f;
 var cl=l;
 var idx=0;

 if(objMmInfo == null){ objMmInfo=new Array(); idx=0;}
 else{ idx=objMmInfo.length;}
 if(u=="" || u==null){cu="mms://";}
 if(t=="" || t==null){ct="未知歌曲";}
 if(f=="f" || f=="F"){cf="f";}
 else{cf="t"; intSelMmCnt=intSelMmCnt+1;}
 if(l=="" || l==null){cl="易心博客";}

 if(blnUseSmi){ objMmInfo[idx]=new mkMmPath(cu,ct,cf,cs,cl);}
 else{objMmInfo[idx]=new mkMmPath(cu,ct,cf,cl);}

 intActMmCnt=intSelMmCnt;
 intMmCnt=objMmInfo.length;
}

function mkSel(){
 arrSelMm=null;
 intSelMmCnt=0;
 var selidx = 0;

 if(intMmCnt<=0){intCnSideBudStat=1; blnEnabled=false; return;} 

 arrSelMm=new Array();
 for(var i=0; i<intMmCnt;i++){
	if(objMmInfo[i].selMm =="t"){arrSelMm[selidx]=i;selidx=selidx+1;}
 }
 intSelMmCnt=arrSelMm.length;

 if(intSelMmCnt<=0){blnEnabled=false;intCnSideBudStat=2; arrSelMm=null; return;}
 else{blnEnabled=true; mkAct();}
}

function mkAct(){
 arrActMm=null;
 intActMmCnt=0;
 var selidx=0;
 var actidx=0;

 if(blnEnabled){
	arrActMm=new Array();
	for(var i=0; i<intSelMmCnt;i++){
		selidx=arrSelMm[i];
		if(objMmInfo[selidx].actMm=="t"){arrActMm[actidx]=selidx; actidx=actidx+1;}
	}
	intActMmCnt=arrActMm.length;
 }
 else{return;}
 if(intActMmCnt<=0){blnEOT=true;arrActMm=null;}
 else{blnEOT=false;}
}


function chkAllSel(){
 for(var i=0; i<intMmCnt; i++){
   objMmInfo[i].selMm="t";
   objMmInfo[i].actMm="t";
 }
 mkSel();
}

function chkAllDesel(){
 for(var i=0; i<intMmCnt; i++){
   objMmInfo[i].selMm="f";
   objMmInfo[i].actMm="f";
 }
 mkSel();
}

function chkItemSel(idx){
 if(objMmInfo[idx].selMm =="t"){objMmInfo[idx].selMm="f";objMmInfo[idx].actMm="f";}
 else{objMmInfo[idx].selMm="t";objMmInfo[idx].actMm="t";}
 mkSel();
}

function chkItemAct(idx){
 objMmInfo[idx].actMm="f";
 mkAct();
}

function mkSelAct(){
 var idx=0;
 for(var i=0; i<intSelMmCnt; i++){
	idx=arrSelMm[i];
	objMmInfo[idx].actMm="t";
 }
 mkAct();
}

function initCnSideBud(){
 wmpInit();
 mkSel();
 blnfpl=false;
time.style.pixelLeft=3;


 if(blnRept){imgChange('rept',1);}
 else{imgChange('rept',0);}

 if(blnRndPlay){imgChange('pmode',1);}
 else{imgChange('pmode',0);}
 showTLab();
 disp1.innerHTML="METALism Music On";
 disp4.innerHTML="METALism Music On";
 if(blnStatusBar){window.status=('METALism Music On');}
 if(blnAutoStart){startCnSideBud();}

}

function startCnSideBud(){
 var wmps= CnSideBud.playState;
 if(wmps==2){CnSideBud.controls.play(); return;}
 if(wmps==3){return;}

 blnfpl=false;
 if(!blnEnabled){waitMsg();return;}
 if(blnEOT){mkSelAct();}
 if(intErrCnt>0){intErrCnt=0;tidErr=setTimeout('retryPlay(),1000');return;}
 if(blnRndPlay){rndPlay();}
 else{cActIdx=arrActMm[0]; selMmPlay(cActIdx);}
 if(time.style.pixelLeft==null){time.style.pixelLeft=3;}
}


function selMmPlay(idx){
 clearTimeout(tidErr);
 cActIdx=idx;
 var trknum=idx+1;
 var ctit =objMmInfo[idx].mmTit;
 var ccl =objMmInfo[idx].mmCl;
 if(ctit=="nAnT"){ctit="未注释歌曲"}
 if(blnUseSmi){CnSideBud.ClosedCaption.SAMIFileName = objMmInfo[idx].mmSmi;}
 CnSideBud.URL = objMmInfo[idx].mmUrl;
 cActTit="T"+ trknum + ". " + ctit;
 disp1.innerHTML = cActTit;
 disp4.innerHTML = ccl;
 if(blnStatusBar){window.status=(cActTit);}
 chkItemAct(cActIdx); 
}


function wmpPlay(){CnSideBud.controls.play();}

function wmpStop(){
 intErrCnt=0;
 clearTimeout(tidErr);
 clearInterval(tidTLab);
 imgChange("stopt",1);
 imgChange("pauzt",0);
 imgChange("scope",0);
 showTLab();
 mkSelAct();
 CnSideBud.controls.stop();
 CnSideBud.close();
 time.style.pixelLeft=3;
 disp1.innerHTML="CnSide Media Player";
 if(blnStatusBar){window.status=('CnSide Media Player');return true;}
}


function wmpPause(){CnSideBud.controls.pause();}


function wmpPP(){
	var wmps = CnSideBud.playState;
	var wmpc=CnSideBud.controls;
	clearInterval(tidTLab);
	clearTimeout(tidMsg);
	if (wmps == 2) {wmpc.play();}
	if (wmps == 3) {wmpc.pause();disp2.innerHTML="Pause"; tidMsg=setTimeout('rtnTLab()',1500);}
	return;
}



function rndPlay(){
 if(!blnEnabled){waitMsg();return;}
 intErrCnt=0;
 var idx=Math.floor(Math.random() * intActMmCnt);
 cActIdx= arrActMm[idx];
 selMmPlay(cActIdx);
}


function playAuto(){
 if(blnRept){ selMmPlay(cActIdx); return;}
 if(!blnAutoProc){wmpStop();return;}
 if(blnfpl){wmpStop(); return;}
 if(!blnEnabled){wmpStop();return;}
 if(blnEOT){ if(blnLoopTrk){startCnSideBud();}
	   else{wmpStop();}
 }
 else{  if(blnRndPlay){rndPlay();}
	else{cActIdx= arrActMm[0]; selMmPlay(cActIdx);}
 }
}


function selPlPlay(idx){
 blnfpl=true;
 selMmPlay(idx);
}



function playPrev(){
 var wmps= CnSideBud.playState;
 if(wmps==2 || wmps==3){CnSideBud.controls.stop();}
 blnfpl=false;
 if(!blnEnabled){waitMsg();return;}
 if(blnEOT){mkSelAct();}

 intErrCnt=0;
 if(blnRndPlay){rndPlay();}
 else{	var idx=cActIdx;
 	var blnFind=false;
	for(var i=0;i<intSelMmCnt;i++){if(cActIdx==arrSelMm[i]){idx=i-1; blnFind=true;}}
	if(!blnFind){startCnSideBud();return;}
	if(idx<0){idx=intSelMmCnt-1;cActIdx=arrSelMm[idx];}
	else{cActIdx=arrSelMm[idx];}
	selMmPlay(cActIdx);
 }
}

function playNext(){
 var wmps= CnSideBud.playState;
 if(wmps==2 || wmps==3){CnSideBud.controls.stop();}
 blnfpl=false;
 if(!blnEnabled){waitMsg();return;}
 if(blnEOT){mkSelAct();}

 intErrCnt=0;
 if(blnRndPlay){rndPlay();}
 else{	var idx=cActIdx;
 	var blnFind=false;
	for(var i=0;i<intSelMmCnt;i++){	if(cActIdx==arrSelMm[i]){idx=i+1; blnFind=true;}}
	if(!blnFind){startCnSideBud();return;}
	if(idx>=intSelMmCnt){idx=0;cActIdx=arrSelMm[idx];}
	else{cActIdx=arrSelMm[idx];}
	selMmPlay(cActIdx);
 }
}


function retryPlay(){
  selMmPlay(cActIdx);
}


function chkRept(){
 var wmps=CnSideBud.playState;
 if(wmps == 3){clearInterval(tidTLab);}
 if(blnRept){blnRept=false; imgChange('rept',0);disp2.innerHTML="Norm. Play";}
 else{blnRept=true; imgChange('rept',1);disp2.innerHTML="Repeat";}
 tidMsg= setTimeout('rtnTLab()',1000);
}


function chgPMode(){
 var wmps=CnSideBud.playState;
 if(wmps == 3){clearInterval(tidTLab);}
 if(blnRndPlay){blnRndPlay=false; imgChange('pmode',0);disp2.innerHTML="SEQ. Play";}
 else{blnRndPlay=true; imgChange('pmode',1);disp2.innerHTML="RND. Play";}
 tidMsg=setTimeout('rtnTLab()',1000); 
}


function evtOSChg(f){
// 0(Undefined) 8(MediaChanging) 9(MediaLocating) 10(MediaConnecting) 11(MediaLoading) 
// 12(MediaOpening) 13(MediaOpen) 20(MediaWaiting) 21(OpeningUnknownURL)

 if(f==8){capText.innerHTML='<iframe name="ads" id="ads" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" style="width:100%;height:60;overflow:hidden;" allowtransparency src="ads.html"></iframe>';}
 if(f==13){
	var strTitle = CnSideBud.currentMedia.getItemInfo("title");
	if(strTitle.length <=0){strTitle = "未知"}
	var strAuthor = CnSideBud.currentMedia.getItemInfo("Author");
	if(strAuthor.length <=0){strAuthor = "未知"}
	var strCopy = CnSideBud.currentMedia.getItemInfo("Copyright");
	if(strCopy.length <=0){strCopy = "未知"}
	var strType = CnSideBud.currentMedia.getItemInfo("MediaType");
	var strDur=CnSideBud.currentMedia.durationString;
	var strUrl =CnSideBud.URL;
	var trknum=cActIdx+1;
	var ctit = objMmInfo[cActIdx].mmTit;
	var ccl = objMmInfo[cActIdx].mmCl;
	if(ctit=="nAnT"){ objMmInfo[cActIdx].mmTit = strAuthor + " - " + strTitle;
		ctit=strAuthor + " - " + strTitle;
		cActTit="T"+ trknum + ". " +ctit;
		disp1.innerHTML = cActTit;
		disp4.innerHTML = ccl;
	}

	strMmInfo= "Media (Title) : " + strTitle + " (CnSide MP:" + strType +")" + "\n"
	strMmInfo= strMmInfo + "Media (Author) : " + strAuthor + "\n"
        strMmInfo= strMmInfo + "Media (URL) : 媒体路径已被隐藏 \n";
	//strMmInfo= strMmInfo + "Media (URL) : " +strUrl + "\n"
	strMmInfo= strMmInfo + "Media (Copyright) : " + strCopy +"\n" 
	strMmInfo= strMmInfo + "Media (Duration) : " +strDur +"\n\n";
    strMmInfo= strMmInfo + "意念首页:http://www.cnside.com \n";
	strMmInfo= strMmInfo + "CnSide MP 2002-2003\n";
	if(blnShowMmInfo){alert(strMmInfo);}
 }
}


function evtPSChg(f){
// 0(Undefined) 1(Stopped) 2 (Paused) 3(Playing) 4(ScanFowrd) 5(ScanReverse)
// 6(Buffering) 7(Waitng) 8(MediaEnded) 9(Transitioning) 10(Redy)

 switch(f){
	case 1:
		evtStop();
		break;
	case 2:
		evtPause();
		break;
	case 3:
		evtPlay();
		break;
	case 8:
		setTimeout('playAuto()', intDelay);
		break;
 }
}


//evtWmpBuff()
function evtWmpBuff(f){
	 if(f){ disp2.innerHTML = "Buffering";
		var msg="Loading..." + cActTit;
		disp1.innerHTML = msg;
		if(blnStatusBar){window.status=(msg);}
	}
	else{
	disp1.innerHTML=cActTit;
	var ccl = objMmInfo[cActIdx].mmCl;
	disp4.innerHTML=ccl;
	showTLab();
	}
}


//evtWmpError()
function evtWmpError(){
 intErrCnt=intErrCnt+1;
 if(intErrCnt<=3){
	disp2.innerHTML="Error("+intErrCnt+")";
	var msg="(Error:" + intErrCnt +") " +cActTit;
	disp1.innerHTML="Error..." +cActTit;
	disp4.innerHTML='发生错误';
	if(blnStatusBar){window.status=(msg);}
	tidErr=setTimeout('retryPlay()',1000);
 }
 else{	clearTimeout(tidErr);
	intErrCnt=0;showTLab();
	var msg="发生错误";
	if(blnStatusBar){window.status=(msg);}	
	setTimeout('playAuto()',1000);}
}

function evtStop(){
	clearTimeout(tidErr);
	clearInterval(tidTLab);
	showTLab();
	intErrCnt=0;
	imgChange("pauzt",0);
	imgChange("playt",0);
	imgChange("scope",0);
	time.style.pixelLeft=3;
	disp1.innerHTML="CnSide MP Player";
	disp4.innerHTML="播放器已停止";
	if(blnStatusBar){window.status=('CnSide MP Player');return true;}
}

function evtPause(){
 imgChange("pauzt",1)
 imgChange("playt",0);
 imgChange("stopt",0);
 imgChange("scope",0);
 clearInterval(tidTLab);
 showTLab();
}

function evtPlay(){
 imgChange("pauzt",0)
 imgChange("playt",1);
 imgChange("stopt",0);
 imgChange("scope",1);
 tidTLab=setInterval('showTLab()',1000);
}

//showTLab()
function showTLab(){
 var ps=CnSideBud.playState;
 if(ps==2 || ps==3){
	var cp=CnSideBud.controls.currentPosition
	var cps=CnSideBud.controls.currentPositionString
	var dur=CnSideBud.currentMedia.duration;
	var durs=CnSideBud.currentMedia.durationString;
	if(blnElaps){disp2.innerHTML= cps+" | "+durs;
		var msg=cActTit + " ("+cps+" | "+durs+ ")";
		if(ps==2){msg="(CnSide MP) "+ msg;}
		if(blnStatusBar){window.status=(msg);return true;}
	}
	else{var laps= dur-cp; 
		var strLaps=wmpTime(laps);
		disp2.innerHTML= strLaps + " | "+durs;
		var msg= cActTit + " (" + strLaps + " | "+durs + ")";
		if(ps==2){msg="(CnSide MP) "+ msg;}
		if(blnStatusBar){window.status=(msg);return true;}
	}
//PrositionBar
	if (CnSideBud.controls.currentPosition>0){
		var now_postion=Math.floor(cp);
		var total_postion=Math.floor(dur);
		var postion_value=((now_postion * 200) / total_postion) +3;
		if (postion_value){
			document.all.time.style.pixelLeft=postion_value;
			}
		}
//

 }
 else{disp2.innerHTML="00:00 | 00:00";}
}


function chgTimeFmt(){
 var wmps=CnSideBud.playState;
 if(wmps == 3){clearInterval(tidTLab);}
 if(blnElaps){blnElaps=false; disp2.innerHTML="Laps";}
 else{blnElaps=true;disp2.innerHTML="ELaps";}
 tidMsg=setTimeout('rtnTLab()',1000); 
}

// rtnTLab()
function rtnTLab(){
clearTimeout(tidMsg);
var wmps=CnSideBud.playState;
if(wmps == 3){tidTLab=setInterval('showTLab()',1000);}
else{showTLab();}
}

function wmpTime(dur){
	var hh, min, sec, timeLabel
	hh = Math.floor(dur/3600);
	min = Math.floor(dur / 60)%60;
	sec = Math.floor(dur % 60);
	if (isNaN(min)){ return "00:00"; }
	if (isNaN(hh) || hh==0){timeLabel="";}
	else{
		if(hh >9){timeLabel = hh.toString()+":";}
		else{timeLabel="0"+hh.toString() +":";}
	}
  	if ( min > 9 ){  timeLabel = timeLabel + min.toString() + ":"; }
	else {timeLabel = timeLabel + "0" +min.toString() + ":";}
	if ( sec > 9 ){timeLabel = timeLabel + sec.toString();}
	else{timeLabel = timeLabel + "0" + sec.toString();}
	return timeLabel;
}

var time_startpoint=3;
var time_endpoint=200;
var chkEvent = 0;

function SetStatebar(){
		if(Math.floor(CnSideBud.controls.currentPosition)>0){
			positionSet=true;
			iex=event.clientX;
			tempx=time.style.pixelLeft;
			document.onmousemove=positionDragControl;
			if (document.all){document.onmouseup=playerSetPosition;}
		}
}

function positionDragControl(){
	if (positionSet){
		var mov = tempx+event.clientX-iex;
		if ((mov >= time_startpoint)  && (mov < time_endpoint)){
			time.style.pixelLeft=mov;
			if ( chkEvent != 3 ) { chkEvent++; } else { chkEvent = 0;	}
		} return false;
	}
}

function playerSetPosition(){
	if (positionSet){
		positionSet=false;
		CnSideBud.controls.CurrentPosition = Math.floor(CnSideBud.currentMedia.duration *((time.style.pixelLeft-4)/196));
	}
}

function drag_dropie(){
	if (setVolMove){
		var mov = Pos_Left+event.clientX-XX;
		if ((mov >= 100)  && (mov < 170)){
			cutpoint=170-sound.style.pixelLeft;
			sound.style.pixelLeft=Pos_Left+event.clientX-XX;
			CnSideBud.settings.Volume=100-(100*(cutpoint/60));
			disp2.innerHTML="Vol. " + CnSideBud.settings.Volume +"%";
			if (mov < 100) { CnSideBud.settings.Mute = true; } else { CnSideBud.settings.Mute=false; }
		}return false;
	}
}
function SetVolume(){
	XX=event.clientX;
	Pos_Left=sound.style.pixelLeft;
	setVolMove=true;
	document.onmousemove=drag_dropie;
	if (document.all){document.onmouseup=endVolume;}
}
function endVolume(){setVolMove=false;}


function waitMsg(){
 capText.innerHTML='<iframe name="ads" id="ads" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" style="width:100%;height:60;overflow:hidden;" allowtransparency src="ads.html"></iframe>';
 if(intCnSideBudStat ==1){disp1.innerHTML="CnSide MP Player";}
 if(intCnSideBudStat ==2){disp1.innerHTML="CnSide MP Player";}
 if(blnStatusBar){
	if(intCnSideBudStat ==1){window.status=('CnSide MP Player');return true;}
	if(intCnSideBudStat ==2){window.status=('CnSide MP Player'); return true;}
 }
}


function chkWmpState(){
// 0(Undefined) 1(Stopped) 2 (Paused) 3(Playing) 4(ScanFowrd) 5(ScanReverse)
// 6(Buffering) 7(Waitng) 8(MediaEnded) 9(Transitioning) 10(Redy)
 return CnSideBud.playState;
}

function chkWmpOState(){
// 0(Undefined) 8(MediaChanging) 9(MediaLocating) 10(MediaConnecting) 11(MediaLoading) 
// 12(MediaOpening) 13(MediaOpen) 20(MediaWaiting) 21(OpeningUnknownURL)
 return CnSideBud.openState;
}

function chkOnline(){
// true(Network Connected) false(Network Lost)
return CnSideBud.isOnline;
}

function vizCnSideBud(){
//CnSideBud.launchURL("http://www.cnside.com");
  window.open("http://www.cnside.com","vizCnSideBud");
}