﻿function lrcClass(tt)
{this.gsh="";this.inr=[];this.oTime=0;this.hailang;this.dts=-1;this.dte=-1;this.dlt=-1;this.ddh;this.fjh;this.haohaiplay;this.oceanx;this.cnane;this.gshs="";if(/\[offset\:(\-?\d+)\]/i.test(tt))
this.oTime=RegExp.$1/1000;if((/\[ar:([^\[\]:]+)\]/i.test(tt)))
this.gshs="歌手:"+RegExp.$1+"&nbsp;";if((/\[ti:([^\[\]:]+)\]/i.test(tt)))
this.gshs+="曲名:"+RegExp.$1+"&nbsp;";if((/\[al:([^\[\]:]+)\]/i.test(tt)))
this.gshs+="专辑:"+RegExp.$1+"&nbsp;";if((/\[by:([^\[\]:]+)\]/i.test(tt)))
this.gshs+="编者:"+RegExp.$1+"&nbsp;";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,"");tt="[00:00.00]"+this.gshs+tt;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]);if(ii==0)
var sso={t:[],w:[],n:ltxt}
else
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,"&lt;").replace(/>/g,"&gt;").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.print("");cleari();lrcbc.style.width=0;}
function cleari()
{lrcwt1.innerText="";lrcwt2.innerText="";lrcwt3.innerText="";lrcwt4.innerText="";lrcwt5.innerText="";lrcwt6.innerText="";lrcwt7.innerText="";lrcbox.innerText="";lrcbc.innerText="";}
lrcClass.prototype.run=function()
{try{if(this.oceanx==0)
this.runing(this.haohaiplay.controls.currentPosition,this.haohaiplay.currentMedia.duration);else
this.runing(this.haohaiplay.GetPosition()/1000,this.haohaiplay.GetLength()/1000);}catch(hh){}}
lrcClass.prototype.runing=function(tme,plen)
{if(tme==0 && plen>0)return; 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]:plen;if(ifallsong==1)
{this.print("");cleari();this.print("由于您正在进行彩铃片段试听，歌词显示将暂停..");}
cleari();this.print(this.retxt(ii-1));lrcwt1.innerText=this.retxt(ii-3);lrcwt2.innerText=this.retxt(ii-2);lrcwt3.innerText=this.retxt(ii-1);lrcwt4.innerText=this.retxt(ii);lrcwt5.innerText=this.retxt(ii+1);lrcwt6.innerText=this.retxt(ii+2);lrcwt7.innerText=this.retxt(ii+3);if(this.dlt==ii-1)
{clearTimeout(this.hailang);this.golrcoll(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);}
lrcClass.prototype.retxt=function(i)
{return(i<-1||i>=this.inr.length)?"":this.inr[i+1].n;}
lrcClass.prototype.print=function(txt)
{lrcbox.innerText=txt;lrcbc.innerText=txt;lrcwt3.style.display='none';}
lrcClass.prototype.golrcoll=function(s)
{lrcoll.style.top=20-(s++)*7;lrcwt1.filters.alpha.opacity=90-s*18;lrcwt7.filters.alpha.opacity=s*18+10;if(s<=7)
this.hailang=setTimeout(this.cnane+".golrcoll("+s+")",120);}
var lrcobj;var m;var Intervalid;function lrcplay(lrc)
{if(lrc)
m=lrc;else
m=GetObj("lrcdata").innerHTML;
if(typeof(Intervalid)!="undefined")
{try
{clearInterval(Intervalid);}
catch(e)
{}}
cleari();GetObj("lrcwt1").innerHTML="<p align=center>歌词加载中...</p>";lrcbox.innerText="";lrcbc.innerText="";lrcobj=new lrcClass(m);lrcobj.cnane="lrcobj";lrcobj.haohaiplay=Exobud;lrcobj.oceanx=0;Intervalid=setInterval("lrcobj.run();",100);}//alert}
