www.gusucode.com > 维六酷博客管理系统 1.1源码程序 > bottom.asp

    <!-- #include file="conn.asp" -->
<!--#include file="include.asp"-->
<%
Dim isplay
Set rs=conn.Execute("Select isplay From WebBasicInfo Where W_ID=1")
isplay=rs("isplay")
rs.close
Set rs=nothing
%>
<link rel="stylesheet" type="text/css" href="exobud.css">
<script language="JavaScript" >
var objMmInfo = null;
var intMmCnt = 0;
var intSelMmCnt = 0;
var intActMmCnt = 0;
var cActIdx = 0;
var cActTit = "nAnT";
var strMmInfo = "媒体档案信息";
var blnfpl = false;
var blnEnabled = false;
var blnEOT = false;
var arrSelMm = null;
var arrActMm = null;
var intExobudStat = 0;
var tidTLab = null;
var tidErr = null;
var tidMsg = null;
var intErrCnt = 0;
var blnRept = false;
// 这是「自动连续播放」的设定。一般来说,播放一首音乐完毕后就会自动跳到下一首。
// 但是如果您要播放的媒体是视讯档案(例如:MV)的话,最好将这个设定值改为 false 。
// true = 自动连续播放
// false = 不要自动连续播放,让使用者自行挑选下一首曲目
var blnAutoProc = true;
// 设定播放面板上所显示的时间长度,预设是以正常方式(Elapse)抑或倒数方式(Lapse)显示:
// true = 以正常方式显示时间长度,即动态地显示曲目已播放的时间
// false = 以倒数方式显示时间长度,即动态地显示曲目剩余的时间
var blnElaps = true;
// 设定播放每首曲目之间的延迟时间(Delay Time),单位是毫秒(msec)。
// 每100毫秒代表0.1秒,默认值是500毫秒(即0.5秒),最少也要设为100毫秒。
var intDelay = 500;
// wmpInit() 函式: 使用 wmp-obj v7.x 链接库建立环境设定
function wmpInit(){
var wmps = Exobud.settings;
var wmpc = Exobud.ClosedCaption;
var isplay;
isplay="<%=isplay%>";
if (isplay=="True")
{
	wmps.autoStart = true; //打开就播放
}
else
	{
wmps.autoStart = false;
	}
//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="";}
Exobud.enabled = true;
}
// mkMmPath() 函式: 准备建立 Multi-object 的数组
function mkMmPath(u,t,f,s){
this.mmUrl = u;
this.mmTit = t;
this.mmDur = 0;
this.selMm = f;
this.actMm = f;
if(blnUseSmi){this.mmSmi=s;}
}
// mkList() 函式: 建立 Multi-object 的数组
function mkList(u,t,s,f){
var cu = u;
var ct = t;
var cs = s;
var cf = f;
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="nAnT";}
if(f=="f" || f=="F"){cf="f";}
else {cf="t"; intSelMmCnt++;}
if(blnUseSmi){
objMmInfo[idx]=new mkMmPath(cu,ct,cf,cs);
} else {
objMmInfo[idx]=new mkMmPath(cu,ct,cf);
}
intActMmCnt = intSelMmCnt;
intMmCnt = objMmInfo.length;
}
// mkSel() 函式: 建立已选取播放项目(Selected Media)的数组
function mkSel(){
arrSelMm = null;
intSelMmCnt = 0;
var selidx = 0;
if(intMmCnt<=0){intExobudStat=1; blnEnabled=false; return;} // 没有任何播放清单项目
arrSelMm = new Array();
for(var i=0; i<intMmCnt; i++){
if(objMmInfo[i].selMm =="t"){arrSelMm[selidx]=i;selidx++;}
}
intSelMmCnt=arrSelMm.length;
if(intSelMmCnt<=0){blnEnabled=false; intExobudStat=2; arrSelMm=null; return;}
else {blnEnabled=true; mkAct();}
}
// mkAct() 函式: 建立已启用播放项目(Activated Media)的数组
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++;}
}
intActMmCnt=arrActMm.length;
}
else { return;}
if(intActMmCnt<=0){blnEOT=true;arrActMm=null;}
else {blnEOT=false;}
}
// chkAllSel() 函式: 全部选取所有的播放清单项目
function chkAllSel(){
for(var i=0; i<intMmCnt; i++){
objMmInfo[i].selMm="t";
objMmInfo[i].actMm="t";
}
mkSel();
}
// chkAllDesel() 函式: 不选取所有的播放清单项目
function chkAllDesel(){
for(var i=0; i<intMmCnt; i++){
objMmInfo[i].selMm="f";
objMmInfo[i].actMm="f";
}
mkSel();
}
// chkItemSel() 函式: 选取或不选取播放清单项目
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();
}
// chkItemAct() 函式: 将某个已启用播放项目(Activated Media)冻结
function chkItemAct(idx){
objMmInfo[idx].actMm="f";
mkAct();
}
// mkSelAct() 函式: 将已选取播放项目(Selected Media)加入到已启用播放项目(Activated Media)
function mkSelAct(){
var idx=0;
for(var i=0; i<intSelMmCnt; i++){
idx=arrSelMm[i];
objMmInfo[idx].actMm="t";
}
mkAct();
}
// initExobud() 函式: 初始化 ExoBUD MP 媒体播放程序
function initExobud(){
wmpInit();
mkSel();
blnfpl = false;
if(!blnShowVolCtrl) {
document.images['vmute'].style.display = "none";
document.images['vdn'].style.display = "none";
document.images['vup'].style.display = "none";
}
if(!blnShowPlist){ document.images['plist'].style.display = "none";}
if(blnRept){imgChange('rept',1);}
else {imgChange('rept',0);}
if(blnRndPlay){imgChange('pmode',1);}
else {imgChange('pmode',0);}
showTLab();
disp1.innerHTML = "92design.cn 无限精彩";
if(blnStatusBar){ window.status=('92design.cn 无限精彩');}
if(blnAutoStart){startExobud();}
}
// startExobud() 函式: 开始播放曲目
function startExobud(){
var wmps = Exobud.playState;
if(wmps==2){
Exobud.controls.play(); 
try{clearInterval(play_time)}catch(e){}
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);}
//alert(Exobud.controls.isavailable('play'));
}
//播放
function play()
{
if (Exobud.controls.isavailable('play'))
{
Exobud.controls.play();
}
}
// selMmPlay() 函式: 处理媒体标题
function selMmPlay(idx){
clearTimeout(tidErr);
cActIdx=idx;
var trknum=idx+1;
var ctit =objMmInfo[idx].mmTit;
if(ctit=="nAnT"){ctit="(没有媒体标题)"}
if(blnUseSmi){Exobud.ClosedCaption.SAMIFileName = objMmInfo[idx].mmSmi;}
Exobud.URL = objMmInfo[idx].mmUrl;
cActTit = trknum + "." + ctit;
disp1.innerHTML = cActTit;
if(blnStatusBar){ window.status=(cActTit);}
chkItemAct(cActIdx);
}
// wmpPlay() 函式: 使用 wmp-obj v7.x 链接库播放曲目
function wmpPlay(){Exobud.controls.play();}
// wmpStop() 函式: 停止播放曲目及显示「就绪」状态讯息
function wmpStop(){
intErrCnt=0;
clearTimeout(tidErr);
clearInterval(tidTLab);
imgChange("stopt",1);
imgChange("pauzt",0);
imgChange("scope",0);
showTLab();
mkSelAct();
Exobud.controls.stop();
Exobud.close();
CourseButton.style.pixelLeft=0
disp1.innerHTML = "<font class=title>92design.cn 无限精彩</font>";
if(blnStatusBar){ window.status=('92design.cn 无限精彩');return true;}
}
// wmpPause() 函式: 使用 wmp-obj v7.x 链接库暂停播放曲目
function wmpPause(){Exobud.controls.pause();}
// wmpPP() 函式: 在暂停播放和继续播放之间进行切换
function wmpPP(){
var wmps = Exobud.playState;
var wmpc = Exobud.controls;
clearInterval(tidTLab);
clearTimeout(tidMsg);
if(wmps==2){wmpc.play();}
if(wmps==3){wmpc.pause(); disp2.innerHTML="<font color=#FFFFFF><b>暂停</b></font>"; tidMsg=setTimeout('rtnTLab()',1500);}
return;
}
// rndPlay() 函式: 随机播放(Random Play)的运算方式
function rndPlay(){
if(!blnEnabled){waitMsg();return;}
intErrCnt=0;
var idx=Math.floor(Math.random() * intActMmCnt);
cActIdx=arrActMm[idx];
selMmPlay(cActIdx);
}
// playAuto() 函式: 对已启用播放项目进行「自动连续播放」的处理
// 这是根据上面 blnAutoProc 的设定值而决定的动作。
function playAuto(){
if(blnRept){selMmPlay(cActIdx);return;}
if(!blnAutoProc){wmpStop();return;}
if(blnfpl){wmpStop();return;}
if(!blnEnabled){wmpStop();return;}
if(blnEOT){
if(blnLoopTrk){startExobud();}
else {wmpStop();}
} else {
if(blnRndPlay){rndPlay();}
else {cActIdx=arrActMm[0]; selMmPlay(cActIdx);}
}
}
// 播放使用者在播放清单上所点选的单一曲目
function selPlPlay(idx){
blnfpl=true;
selMmPlay(idx);
}
// playPrev() 函式: 播放上一首已启用播放项目
function playPrev(){
var wmps = Exobud.playState;
if(wmps==2 || wmps==3){Exobud.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){startExobud();return;}
if(idx<0){idx=intSelMmCnt-1;cActIdx=arrSelMm[idx];}
else {cActIdx=arrSelMm[idx];}
selMmPlay(cActIdx);
}
play();
}
// playNext() 函式: 播放下一首已启用播放项目
function playNext(){
var wmps = Exobud.playState;
if(wmps==2 || wmps==3){Exobud.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){startExobud();return;}
if(idx>=intSelMmCnt){idx=0;cActIdx=arrSelMm[idx];}
else {cActIdx=arrSelMm[idx];}
selMmPlay(cActIdx);
}
play();
}
// retryPlay() 函式: 再次尝试联机到媒体档案
function retryPlay(){
selMmPlay(cActIdx);
}
// chkRept() 函式: 切换是否重复播放目前的曲目(已启用播放项目)
function chkRept(){
var wmps = Exobud.playState;
if(wmps==3){clearInterval(tidTLab);}
if(blnRept){
blnRept=false; imgChange('rept',0); disp2.innerHTML="<font color=#FFFFFF><b>不重复播放</b></font>";
} else {
blnRept=true; imgChange('rept',1); disp2.innerHTML="<font color=#FFFFFF><b>重复播放</b></font>";
}
tidMsg=setTimeout('rtnTLab()',1000);
}
// chgPMode() 函式: 切换以循序(Sequential)抑或随机(Random)的方式来播放媒体项目
function chgPMode(){
var wmps = Exobud.playState;
if(wmps==3){clearInterval(tidTLab);}
if(blnRndPlay){
blnRndPlay=false; imgChange('pmode',0); disp2.innerHTML="<font color=#FFFFFF><b>循序播放</b></font>";
} else {
blnRndPlay=true; imgChange('pmode',1); disp2.innerHTML="<font color=#FFFFFF><b>随机播放</b></font>";
}
tidMsg=setTimeout('rtnTLab()',1000);
}
// evtOSChg() 函式: 以弹出窗口方式显示媒体档案信息
function evtOSChg(f){
// 以下是状态值 (f) 的说明:
// 0(未定义) 8(转换媒体中) 9(寻找媒体中) 10(联机媒体中) 11(加载媒体中)
// 12(开启媒体中) 13(媒体已开启) 20(等待播放中) 21(正在开启不明的连结)
//if(f==8){capText.innerHTML="<p class=title>&copy;&nbsp;92design.cn&nbsp;&trade;";}
if(f==13){
var strTitle = Exobud.currentMedia.getItemInfo("Title");
if(strTitle.length <= 0){strTitle = "(未命名的标题)"}
var strAuthor = Exobud.currentMedia.getItemInfo("Author");
if(strAuthor.length <= 0){strAuthor = "(未命名的演出者)"}
var strCopy = Exobud.currentMedia.getItemInfo("Copyright");
if(strCopy.length <= 0){strCopy = "(没有著作权信息)"}
var strType = Exobud.currentMedia.getItemInfo("MediaType");
var strDur = Exobud.currentMedia.durationString;
var strUrl = Exobud.URL;
var trknum = cActIdx+1;
var ctit = objMmInfo[cActIdx].mmTit;
if(ctit=="nAnT"){
objMmInfo[cActIdx].mmTit = strAuthor + " - " + strTitle;
ctit = strAuthor + " - " + strTitle;
cActTit = trknum + ". " + ctit;
disp1.innerHTML = cActTit;
}
strMmInfo = "  标题: " + strTitle + " (形式: " + strType +")" + "\n\n";
strMmInfo += " 演出者: " + strAuthor + "\n\n";
strMmInfo += "档案位置: " + strUrl + "\n\n";
strMmInfo += " 著作权: " + strCopy + "\n\n";
strMmInfo += "时间长度: " + strDur + "\n\n\n";
strMmInfo += "   92design.cn.\n";
strMmInfo += "   ALL RIGHTS RESERVED.\n";
if(blnShowMmInfo){alert(strMmInfo);}
}
}
// evtPSChg() 函式: 切换播放程序的动作
function evtPSChg(f){
// 以下是状态值 (f) 的说明:
// 0(未定义) 1(已停止播放) 2(已暂停播放) 3(正在播放中) 4(向前搜索) 5(向后搜索)
// 6(缓冲处理中) 7(等待中) 8(已播放完毕) 9(转换曲目中) 10(就绪状态)
switch(f){
case 1:
evtStop();
break;
case 2:
evtPause();
break;
case 3:
evtPlay();
break;
case 8:
setTimeout('playAuto()', intDelay);
break;
}
}
// evtWmpBuff() 函式: 对媒体档案进行缓冲处理(Buffering)的动作
function evtWmpBuff(f){
if(f){
disp2.innerHTML = "缓冲处理中";
var msg = cActTit;
disp1.innerHTML = msg;
if(blnStatusBar){ window.status=(msg);}
} else {
disp1.innerHTML = cActTit; showTLab();
}
}
// evtWmpError() 函式: 当无法联机到媒体档案时,显示错误讯息
function evtWmpError(){
intErrCnt++;
Exobud.Error.clearErrorQueue();
if(intErrCnt<=3){
disp2.innerHTML = "<font color=#FFFFFF><b>尝试联机 (" + intErrCnt + ")</font>";
var msg = "<font color=#FFFFFF><b>(尝试第 " + intErrCnt + " 次联机) " + cActTit+"</font>";
disp1.innerHTML = "<font color=#FFFFFF><b><无法播放> " + cActTit +"</font>";
if(blnStatusBar){ window.status=(msg);}
tidErr=setTimeout('retryPlay()',1000);
} else {
clearTimeout(tidErr);
intErrCnt=0;showTLab();
var msg = "<font color=#FFFFFF><b>已放弃尝试再联机。现在将会播放下一首曲目。</font>";
if(blnStatusBar){ window.status=(msg);}
setTimeout('playAuto()',1000);}
}
// evtStop() 函式: 停止播放
function evtStop(){
clearTimeout(tidErr);
clearInterval(tidTLab);
showTLab();
intErrCnt=0;
imgChange("pauzt",0);
imgChange("playt",0);
imgChange("scope",0);
disp1.innerHTML = "<font class=title>等待中…</font>";
if(blnStatusBar){ window.status=('等待…');return true;}
}
// evtPause() 函式: 暂停播放
function evtPause(){
imgChange("pauzt",1)
imgChange("playt",0);
imgChange("stopt",0);
imgChange("scope",0);
clearInterval(tidTLab);
showTLab();
}
// evtPlay() 函式: 开始播放
function evtPlay(){
imgChange("pauzt",0)
imgChange("playt",1);
imgChange("stopt",0);
imgChange("scope",1);
tidTLab=setInterval('showTLab()',1000);
}
// showTLab() 函式: 显示时间长度
function showTLab(){
var ps = Exobud.playState;
if(ps==2 || ps==3){
var cp=Exobud.controls.currentPosition;
var cps=Exobud.controls.currentPositionString;
var dur=Exobud.currentMedia.duration;
var durs=Exobud.currentMedia.durationString;
if(blnElaps){
disp2.innerHTML = "<font color=#FFFFFF><b>"+cps + " | " + durs+"</b></font>";
var msg = "<font color=#FFFFFF><b>"+cActTit + " (" + cps + " | " + durs + ")</b></font>";
if(ps==2){msg = "(暂停) " + msg;}
if(blnStatusBar){ 
//window.status=(msg);
CourseButton.style.pixelLeft=Math.round((CourseButtonBox.offsetWidth-CourseButton.offsetWidth)*Exobud.controls.currentposition/Exobud.currentMedia.duration)
return true;
}
} else {
var laps = dur-cp;
var strLaps = wmpTime(laps);
disp2.innerHTML = "<font color=#FFFFFF><b>"+strLaps + " | " + durs+"</b></font>";
var msg = "<font color=#FFFFFF><b>"+cActTit + " (" + strLaps + " | " + durs + ")</b></font>";
if(ps==2){msg = "(暂停) " + msg;}
if(blnStatusBar){ 
//window.status=(msg);
CourseButton.style.pixelLeft=Math.round((CourseButtonBox.offsetWidth-CourseButton.offsetWidth)*Exobud.controls.currentposition/Exobud.currentMedia.duration)
return true;}
}
} else {
disp2.innerHTML = "<font color=#FFFFFF><b>00:00 | 00:00</b></font>";
}
}
// chgTimeFmt() 函式: 变更时间长度的显示方式
function chgTimeFmt(){
var wmps = Exobud.playState;
if(wmps==3){clearInterval(tidTLab);}
if(blnElaps){
blnElaps=false; disp2.innerHTML="<font color=#FFFFFF><b>倒数方式</b></font>";
} else {
blnElaps=true; disp2.innerHTML="<font color=#FFFFFF><b>正常方式</b></font>";
}
tidMsg=setTimeout('rtnTLab()',1000);
}
// rtnTLab() 函式: 传回时间长度
function rtnTLab(){
clearTimeout(tidMsg);
var wmps = Exobud.playState;
if(wmps==3){tidTLab=setInterval('showTLab()',1000);}
else {showTLab();}
}
// wmpTime() 函式: 计算时间长度
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 EventObject=0,Old_X,New_X;
function button_down(){//拖动按钮按下事件
    EventObject=event.srcElement;
    Old_X=event.clientX;
    EventObject.setCapture();
    }
function button_move(){//拖动按钮移动事件
    if(EventObject){
        New_X=event.clientX;
        var MovePels=EventObject.style.pixelLeft+New_X-Old_X;
        var MaxBound=document.all(EventObject.id+"Box").offsetWidth-EventObject.offsetWidth;
        if(EventObject&&MovePels<=MaxBound&&MovePels>=0){
            EventObject.style.pixelLeft=MovePels;
            eval(EventObject.id+"Event("+EventObject.style.pixelLeft+","+MaxBound+")");
            Old_X=New_X;
            }
        }
    }
function button_up(){//拖动按钮松开事件
    if(EventObject){
        EventObject.releaseCapture();
        EventObject=0;
        }
    }
function CourseButtonEvent(l,m){//播放进程控制
    Exobud.controls.currentposition=Math.round(Exobud.currentMedia.duration*l/m);
    }
function VolumeButtonEvent(l,m){//音量控制
    var wmps=Exobud.playState;
    if(wmps == 3){clearInterval(tidTLab);}
    var ps = Exobud.settings;
    ps.volume=Math.round((l/m)*100);
    disp2.innerHTML = "<font color=#FFFFFF><b>音量: " + ps.volume + "%</b></font>";
    }
function TrackButtonEvent(l,m){//声道控制
    var n=Math.round(l/m*100);
    var ps = Exobud.settings;
    ps.balance=n==50?0:n>50?(n-50)*1.8:n<50?-(50-n)*1.8:0;
    }

vArray = new Array();
vArray[0] = 0;
vArray[1] = 10;
vArray[2] = 20;
vArray[3] = 30;
vArray[4] = 40;
vArray[5] = 50;
vArray[6] = 60;
vArray[7] = 70;
vArray[8] = 80;
vArray[9] = 90; 
vArray[10] = 100; 

function SetVolume(index)
{
var wmps=Exobud.playState;
if(wmps == 3){clearInterval(tidTLab);}
var ps = Exobud.settings;
ps.volume = vArray[index];
document.images["meter"].src = eval("meter" + index + ".src");
disp2.innerHTML="<font color=#FFFFFF><b>Vol. " + ps.volume +"%</b></font>";
if(ps.volume != 0 && ps.mute){ps.mute = false;imgChange("vmute", 0);}
if(ps.volume == 0 && !ps.mute){ps.mute = true;disp2.innerHTML="<font color=#FFFFFF><b>静音模式</b></font>"; imgChange("vmute", 1);}
tidMsg=setTimeout('rtnTLab()',1000);
}
function MeterClick(n)
{
SetVolume(n);
}
// wmpMute() 函式: 静音模式(Mute)
function wmpMute(){ 
var wmps=Exobud.playState;
if(wmps == 3){clearInterval(tidTLab);}
var ps = Exobud.settings;
if(!ps.mute){ps.mute = true;disp2.innerHTML="<font color=#FFFFFF><b>静音模式启动</b></font>"; imgChange("vmute", 1);}
else {ps.mute = false;disp2.innerHTML="<font color=#FFFFFF><b>静音模式关闭</b></font>"; imgChange("vmute", 0);}
tidMsg=setTimeout('rtnTLab()',1000);
}
//function wmpMute(){
// var wmps = Exobud.playState;
// if(wmps==3){clearInterval(tidTLab);}
// var ps = Exobud.settings;
// if(!ps.mute){
// ps.mute=true; disp2.innerHTML="开启静音模式"; imgChange("vmute",1);
// } else {
// ps.mute=false; disp2.innerHTML="关闭静音模式"; imgChange("vmute",0);
// }
// tidMsg=setTimeout('rtnTLab()',1000);
//}
// waitMsg() 函式: 显示因播放列表空白而无法播放的讯息
function waitMsg(){
//capText.innerHTML="<p class=title>&nbsp;&copy;&nbsp;92design.cn&nbsp;&trade;";
if(intExobudStat==1){disp1.innerHTML = "无法播放 - 播放列表上没有设定任何曲目。";}
if(intExobudStat==2){disp1.innerHTML = "无法播放 - 您没有选取播放列表上任何一首曲目。";}
if(blnStatusBar){
if(intExobudStat==1){ window.status=('无法播放 - 播放列表上没有设定任何曲目。'); return true;}
if(intExobudStat==2){ window.status=('无法播放 - 您没有选取播放列表上任何一首曲目。'); return true;}
}
}
// openPlist() 函式: 以弹出窗口显示播放清单内容
function openPlist(){
window.open("exobudpl.htm","mplist","top=50,left=320,width=400,height=400,scrollbars=no,resizable=yes,copyhistory=no");
}
// chkWmpState() 函式: 当播放程序动作变更时,传回 playState 的状态值
function chkWmpState(){
// 以下是状态值的说明:
// 0(未定义) 1(已停止播放) 2(已暂停播放) 3(正在播放中) 4(向前搜索) 5(向后搜索)
// 6(缓冲处理中) 7(等待中) 8(已播放完毕) 9(转换曲目中) 10(就绪状态)
return Exobud.playState;
}
// chkWmpOState() 函式: 当播放程序开启媒体档案准备播放时,传回 openState 的状态值
function chkWmpOState(){
// 以下是状态值的说明:
// 0(未定义) 8(转换媒体中) 9(寻找媒体中) 10(联机媒体中) 11(加载媒体中)
// 12(开启媒体中) 13(媒体已开启) 20(等待播放中) 21(正在开启不明的连结)
return Exobud.openState;
}
// chkOnline() 函式: 检查使用者的联机状态 (不一定每款面板都会使用)
function chkOnline(){
// 传回值: true(已联机到因特网) false(没有联机到因特网)
return Exobud.isOnline;
}
// cnExobud() 函式: 点选连到 ExoBUD MP 播放器简体中文网站 (不一定每款面板都会使用)
function cnExobud(){
// 使用范例: <span onClick="vizExobud()" style="cursor:hand" title="http://www.92design.cn">
window.open("http://www.92design.cn","vizExobud");
}
// vizExobud() 函式: 点选连到 ExoBUD MP 播放器原作者的官方网站[韩文] (不一定每款面板都会使用)
function vizExobud(){
// 使用范例: <span onClick="vizExobud()" style="cursor:hand" title="http://exobud.nayana.org">
window.open("http://exobud.nayana.org","vizExobud");
}
</script>
<SCRIPT Language="JavaScript" src="js/set.js"></SCRIPT>
<script language="JavaScript" src="js/addlist.js"></script>
<script language="JScript" for="Exobud" event="openStateChange(sf)">evtOSChg(sf);</script>
<script language="JScript" for="Exobud" event="playStateChange(ns)">evtPSChg(ns);</script>
<script language="JScript" for="Exobud" event="error()">evtWmpError();</script>
<script language="JScript" for="Exobud" event="Buffering(bf)">evtWmpBuff(bf);</script>
<script language="JavaScript" src="js/imgchg.js"></script>
<style type="text/css">
.noshow{display:none;}
body{font-size:12px;}
</style>
</head>
<body onLoad="initExobud();openPlaylist('play_list');" style="BACKGROUND-COLOR:transparent;"  topmargin=5 leftmargin=0 marginwidth=0 marginheight=0>
<div class="noshow">
          <object id="Exobud" classid="CLSID:6BF52A52-394A-11d3-B153-00C04F79FAA6"
type="application/x-oleobject" width="304" height="0"
>
        <param name="autoStart" value="true">
        <param name="balance" value="0">
        <param name="currentPosition" value="0">
        <param name="currentMarker" value="0">
        <param name="enableContextMenu" value="false">
        <param name="enableErrorDialogs" value="false">
        <param name="enabled" value="true">
        <param name="fullScreen" value="false">
        <param name="invokeURLs" value="false">
        <param name="mute" value="false">
        <param name="playCount" value="1">
        <param name="rate" value="1">
        <param name="uiMode" value="invisible">
        <param name="volume" value="100">
      </object>
</div>
<span class="noshow" id="disp2" title="时间长度显示方式 (正常/倒数)" style="width:105;cursor:default;padding-bottom:2px">
	<strong>00:00| 00:00</strong></span>
<div align="center" class="noshow">
              <center>
              <table border="0" cellpadding="0" cellspacing="1">
                <tr>
                  <td><img border="0" src="./img/suiji.gif" width="36" height="19" name="pmode" onClick="chgPMode()"
 style="cursor:default" ></td>
                </tr>
                <tr>
                  <td><img border="0" src="./img/s.gif" width="36" height="19" name="rept" onClick="chkRept()"
 style="cursor:default" ></td>
                </tr>
              </table>
              </center>
</div>


<div align="left">
              <table border="0" cellpadding="0" cellspacing="0" style="position: relative; left: 5; top: 0" width="300" height="20">
                <tr>
				<td width="12"><img src="images/voice.gif" width="12" height="16"></td>
				<td width="33"><img src="images/music.gif" width="33" height="9"></td>
				  <td width="30"><img border="0" src="images/pre.gif" width="9" height="8"  name="prevt" onClick="playPrev()"
 style="cursor:hand" title="上一首曲目">&nbsp;<img border="0" src="images/next.gif" width="9" height="8" name="nextt" onClick="playNext()"
 style="cursor:hand" title="下一首曲目"></td>
                    <td width="20"><img border="0" src="images/stop.gif" name="pauzt" onClick="wmpPP()"
 style="cursor:hand" title="暂停.继续"></td>
                 <td width="20"> <img border="0" src="images/play.gif" name="playt" onClick="play()"
 style="cursor:hand" title="播放"></td>
                  <td><span id="disp1" style="font-size:12px;">歌曲名称</span></td>
                </tr>
              </table>
</div>


<script language="JavaScript">

moveflag = false;
movable = false;

var lrcO;  
var ffbb = 0;  

function lrcClass(tt)  
{  
  this.inr = [];  

  this.oTime = 0;  

  this.dts = -1;  
  this.dte = -1;  
  this.dlt = -1;  
  this.ddh;  
  this.fjh;  

  lrcbc.style.width = 0;  

  if(/\[offset\:(\-?\d+)\]/i.test(tt))  
    this.oTime = RegExp.$1/1000;  
   
  tt = tt.replace(/\[\:\][^$\n]*(\n|$)/g,"$1");  
  tt = tt.replace(/\[[^\[\]\:]*\]/g,"");  
  tt = tt.replace(/\[[^\[\]]*[^\[\]\d]+[^\[\]]*\:[^\[\]]*\]/g,"");  
  tt = tt.replace(/\[[^\[\]]*\:[^\[\]]*[^\[\]\d\.]+[^\[\]]*\]/g,"");  
  tt = tt.replace(/<[^<>]*[^<>\d]+[^<>]*\:[^<>]*>/g,"");  
  tt = tt.replace(/<[^<>]*\:[^<>]*[^<>\d\.]+[^<>]*>/g,"");  

  while(/\[[^\[\]]+\:[^\[\]]+\]/.test(tt))  
  {  
    tt = tt.replace(/((\[[^\[\]]+\:[^\[\]]+\])+[^\[\r\n]*)[^\[]*/,"\n");  
    var zzzt = RegExp.$1;  
    /^(.+\])([^\]]*)$/.exec(zzzt);  
    var ltxt = RegExp.$2;  
    var eft = RegExp.$1.slice(1,-1).split("][");  
    for(var ii=0; ii<eft.length; ii++)  
    {  
      var sf = eft[ii].split(":");  
      var tse = parseInt(sf[0],10) * 60 + parseFloat(sf[1]);  
      var sso = { t:[] , w:[] , n:ltxt }  
      sso.t[0] = tse-this.oTime;  
      this.inr[this.inr.length] = sso;  
    }  
  }  
  this.inr = this.inr.sort( function(a,b){return a.t[0]-b.t[0];} );  

  for(var ii=0; ii<this.inr.length; ii++)  
  {  
    while(/<[^<>]+\:[^<>]+>/.test(this.inr[ii].n))  
    {  
      this.inr[ii].n = this.inr[ii].n.replace(/<(\d+)\:([\d\.]+)>/,"%=%");  
      var tse = parseInt(RegExp.$1,10) * 60 + parseFloat(RegExp.$2);  
      this.inr[ii].t[this.inr[ii].t.length] = tse-this.oTime;  
    }  
    lrcbc.innerHTML = "<font>"+ this.inr[ii].n.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/%=%/g,"</font><font>") +" </font>";  
    var fall = lrcbc.getElementsByTagName("font");  
    for(var wi=0; wi<fall.length; wi++)  
      this.inr[ii].w[this.inr[ii].w.length] = fall[wi].offsetWidth;  
    this.inr[ii].n = lrcbc.innerText;  
  }  

  this.run = function(tme)  
  {  
    if(tme<this.dts || tme>=this.dte)  
    {  
      var ii;  
      for(ii=this.inr.length-1; ii>=0 && this.inr[ii].t[0]>tme; ii--){}  
      if(ii<0) return;  
      this.ddh = this.inr[ii].t;  
      this.fjh = this.inr[ii].w;  
      this.dts = this.inr[ii].t[0];  
      this.dte = (ii<this.inr.length-1)?this.inr[ii+1].t[0]:Exobud.currentMedia.duration;  

      lrcwt1.innerText = this.retxt(ii-10);  
      lrcwt2.innerText = this.retxt(ii-9);  
      lrcwt3.innerText = this.retxt(ii-8);  
      lrcwt4.innerText = this.retxt(ii-7);  
      lrcwt5.innerText = this.retxt(ii-6);  
      lrcwt6.innerText = this.retxt(ii-5);  
      lrcwt7.innerText = this.retxt(ii-4);  
      lrcwt8.innerText = this.retxt(ii-3);  
      lrcwt9.innerText = this.retxt(ii-2);  
      lrcwt10.innerText = this.retxt(ii-1);  
      lrcfilter.innerText = this.retxt(ii-1);  
      lrcwt11.innerText = this.retxt(ii+1);  
      lrcwt12.innerText = this.retxt(ii+2);  
      lrcwt13.innerText = this.retxt(ii+3);  
      lrcwt14.innerText = this.retxt(ii+4);  
      lrcwt15.innerText = this.retxt(ii+5);  
      lrcwt16.innerText = this.retxt(ii+6);  
      lrcwt17.innerText = this.retxt(ii+7);  
      lrcwt18.innerText = this.retxt(ii+8);  
      lrcwt19.innerText = this.retxt(ii+9);  
      this.print(this.retxt(ii));  
      if(this.dlt==ii-1)  
      {  
        clearTimeout(lrcO);  
        golrcoll(0);  
        golrcolor(0);  
      }  
      this.dlt = ii;  
    }  
    var bbw = 0;  
    var ki;  
    for(ki=0; ki<this.ddh.length && this.ddh[ki]<=tme; ki++)  
      bbw += this.fjh[ki];  
    var kt = ki-1;  
    var sc = ((ki<this.ddh.length)?this.ddh[ki]:this.dte) - this.ddh[kt];  
    var tc = tme - this.ddh[kt];  
    bbw -= this.fjh[kt] - tc / sc * this.fjh[kt];  
    if(bbw>lrcbox.offsetWidth)  
      bbw = lrcbox.offsetWidth;  
    lrcbc.style.width = Math.round(bbw);  
  }  

  this.retxt = function(i)  
  {  
    return (i<0 || i>=this.inr.length)?"":this.inr[i].n;  
  }  

  this.print = function(txt)  
  {  
    lrcbox.innerText = txt;  
    lrcbc.innerText = txt;  
  }  

  this.print("Www.CuiZ.Net (翠竹网站)");  
  lrcwt1.innerText = "";  
  lrcwt2.innerText = "";  
  lrcwt3.innerText = "";  
  lrcwt4.innerText = "";  
  lrcwt5.innerText = "";  
  lrcwt6.innerText = "";  
  lrcwt8.innerText = "";  
  lrcwt9.innerText = "";  
  lrcwt10.innerText = "";  
  lrcwt11.innerText = "";  
  lrcwt12.innerText = "";  
  lrcwt13.innerText = "";  
  lrcwt14.innerText = "";  
  lrcwt15.innerText = "";  
  lrcwt16.innerText = "";  
  lrcwt17.innerText = "";  
  lrcwt18.innerText = "";  
  lrcwt19.innerText = "";  
}  

function loadfile(url)  
{  
  Exobud.url = url;  
  Exobud.controls.play();  
  file.select();  
  document.selection.clear();  
  onfocus=file.blur();  
}  

function bb()  
{  
  ffbb = ffbb - 0.5;  
}  

function ff()  
{  
  ffbb = ffbb + 0.5;  
}  

function lrcrun()  
{  
  with(Exobud)  
  {  
    curobj.run(controls.currentPosition + ffbb);  
  }  
}  

function golrcoll(s)  
{  
  lrcoll.style.top = -2-(s++)*3;  
  if(s<=6)  
    lrcO = setTimeout("golrcoll("+s+")",100);  
}  

function golrcolor(t)  
{  
  lrcfilter.filters.alpha.opacity = 100-(t++)*10;  
  if(t<=10)  
    setTimeout("golrcolor("+t+")",60);  
}  

function killErrors()  
{  
  return true;  
}  
window.onerror = killErrors;  
function switchDisp(disptext)
{
curobj = new lrcClass(disptext);
abc = setInterval("lrcrun()",10);
}

function MakeMovable(element)
{
  element.attachEvent("onmousedown",onmousedown); 
  element.attachEvent("onmouseup",onmouseup);
  element.attachEvent("onmousemove",onmousemove);
  flagmove = false;
  var s_y, o_y;
  curpot = 0;

  function onmousedown()
  {
    if(event.button!=1 || moveflag || !movable) {flagmove = true; return;}
    clearTimeout(lrc0);
    if(curdlt>0) lowcolor(eval("lrcbc"+curdlt));
    lowcolor(eval("lrcbc"+(curdlt+1)));
    lowlight(eval("lrcbox"+(curdlt+1)));
    if(lrcoll.style.pixelTop>120) lrcoll.style.top = 120;
    if(lrcoll.style.pixelTop<-((lrcobj.inr.length-1)*20-120)) lrcoll.style.top = -((lrcobj.inr.length-1)*20-120);
    s_y = event.clientY;
    o_y = lrcoll.style.pixelTop;
    element.style.cursor = "n-resize";
    element.setCapture();
    moveflag = true;
  }

  function onmousemove()
  {
    if(event.button!=1 || !moveflag || flagmove) return;
    var offy = event.clientY-s_y;
    if(o_y+offy<=120 && o_y+offy>=-((lrcobj.inr.length-1)*20-120))
      lrcoll.style.top = o_y+offy;
    if(o_y+offy>120) lrcoll.style.top = 120;
    if(o_y+offy<-((lrcobj.inr.length-1)*20-120)) lrcoll.style.top = -((lrcobj.inr.length-1)*20-120);
    var pot = Math.floor((lrcoll.style.pixelTop-120)/-20);
    if(pot!=curpot)
    {
      lowlight(eval("lrcbox"+(curpot+1)));
      curpot = pot;
      highlight(eval("lrcbox"+(curpot+1)));
    }
  }

  function onmouseup()
  {
    if(!moveflag || flagmove) {flagmove = false; return;}
    if(Exobud.playState==3)
    {
      if(lrcoll.style.pixelTop<=120 && lrcoll.style.pixelTop>100)
        lrcobj.dte = -1;
      else
        lrcobj.dte = lrcobj.inr[Math.floor((lrcoll.style.pixelTop-120)/-20)-1].t[0];
      if(lrcobj.inr[Math.floor((lrcoll.style.pixelTop-120)/-20)].t[0]<0)
        Exobud.controls.currentPosition = 0;
      else
        Exobud.controls.currentPosition = lrcobj.inr[Math.floor((lrcoll.style.pixelTop-120)/-20)].t[0];
      lrcobj.dlt = Math.floor((lrcoll.style.pixelTop-120)/-20);
      lrctop = lrcoll.style.pixelTop;
    }
    else
    {
      lowlight(eval("lrcbox"+(curpot+1)));
      highlight(eval("lrcbox"+(curdlt+1)));
      lrcoll.style.top = o_y;
    }
    lrc0 = setTimeout("lrcrun()",10);
    element.releaseCapture();
    element.style.cursor = "hand";
    moveflag = false;
  }
}
var _curMMSmi="";
</script>
<script language="JScript" for="Exobud" event="currentItemChange()">
var xmlhttp;
if (window.XMLHttpRequest) { 
  xmlhttp = new XMLHttpRequest();
}else { 
	if (window.ActiveXObject) {
		try {
			xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
		} catch (ee) {
			xmlhttp = new ActiveXObject("MSXML.XMLHTTP");
		}
	}
}
function fnDo(){
  if (_curMMSmi == "" || (_curMMSmi != "" && objMmInfo[cActIdx].mmSmi != _curMMSmi)) {
    xmlhttp.Open("GET", "LrcGet.asp?url="+objMmInfo[cActIdx].mmSmi, true);  
    xmlhttp.onreadystatechange = fnRun;  
    xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); 
    xmlhttp.Send(null);
  }
  _curMMSmi = objMmInfo[cActIdx].mmSmi;
}
function fnRun(){
  var xmlDom = new ActiveXObject("Microsoft.XmlDom");
  if ((xmlhttp.readyState == 4) && (xmlhttp.status == 200)){
	var myroot = bytes2BSTR(xmlhttp.responseBody);
    if (myroot != null){
      switchDisp(myroot);
    }else{
      switchDisp("[00:00.00]抱歉,暂无歌词![05:00.00]www.92design.cn");
    }
  }
}
fnDo();
</script>
<script language="VBScript">
Function bytes2BSTR(arrBytes) 
strReturn = "" 
arrBytes = CStr(arrBytes) 
For i = 1 To LenB(arrBytes) 
ThisCharCode = AscB(MidB(arrBytes, i, 1)) 
If ThisCharCode < &H80 Then 
strReturn = strReturn & Chr(ThisCharCode) 
Else 
NextCharCode = AscB(MidB(arrBytes, i+1, 1)) 
strReturn = strReturn & Chr(CLng(ThisCharCode) * &H100 + CInt(NextCharCode)) 
i = i + 1 
End If 
Next 
bytes2BSTR = strReturn 
End Function
</script>