//window.resizeTo(250,500);
function $(objID) {return document.getElementById(objID)}
function $F(objID) {return document.getElementById(objID).value}
function $$(node){return document.getElementsByTagName(node)}
function setCookie(name, value,domain){
 	document.cookie = name + "=" + escape(value) + "; path=/; domain="+domain+";expires="+(new Date('2050/1/1').toGMTString());
}
function getCookie(name){
	var search;
	search = name + "=";
	offset = document.cookie.indexOf(search) ;
	if (offset != -1){
	offset += search.length ;
	end = document.cookie.indexOf(";", offset) ;
	if (end == -1)
	end = document.cookie.length;
	return  unescape(document.cookie.substring(offset, end));
	}
	else  return "";
}



var isFF=(navigator.userAgent.toLowerCase().indexOf("firefox")!=-1);


function AJAX(){
	this.xmlhttp=function (){
		var Version = ["MSXML2.XMLHTTP","Microsoft.XMLHTTP"];
		try{ for(var i=0;i<Version.length;i++)return new ActiveXObject(Version[i]);}
		catch(e){try{return new XMLHttpRequest();}catch(e){return null;}}
	}
	selfthis=this;
	this.request=function (){
		var _p={asynchronous:true,method:"GET",parameters:"",mime:"text/html;charset=GB2312"};
		for(var key in arguments[0]){ _p[key]=arguments[0][key]; }
		var _x=this.xmlhttp();
		if (_x!=null){
			var _url=_p["url"];
			if (_p["parameters"]=="") _url=_url;
			else _url+="?"+_p["parameters"];
			_url+=(_url.indexOf("?") >= 0)?"&nowtime="+new Date().getTime():"?nowtime=" + new Date().getTime();
			_x.open(_p["method"],_url,_p["asynchronous"]);
			if(_x.overrideMimeType)_x.overrideMimeType(_p["mime"]);
			_x.onreadystatechange=function (){
				if(_x.readyState==4){
					if(_x.status==200) {  
						if($("loading")) $("loading").innerHTML="";
						_p["onComplete"]?_p["onComplete"](_x):"";
					}else _p["onError"]?_p["onError"](_x):"";
				}else if($("loading")) $("loading").innerHTML=(_p["onLoading"]?_p["onLoading"]:"");
			};
			if(_p["method"].toUpperCase()=="POST")_x.setRequestHeader("Content-Type","application/x-www-form-urlencoded");	
			_x.send(_p["method"].toUpperCase()=="POST"?_p["parameters"]:null);	
		}else alert("无法创建xmlhttp");
	}
}





function circle(){
	if($("player")){
		if($("player").playCount==1){
			$("player").playCount=100;
		}else{
			$("player").playCount=1;
		}
	}
}

function urlerr(){
	if($("player").playState==10||$("player").playState==0)playmp3();
	setTimeout("urlerr()",3000);
}


function playmp3(islrc,musicname){
	if (islrc==""||typeof(islrc)=="undefined")islrc=0;
	if (musicname==""){
		showerr(".");
		return false;
	}else{
		function callback(req){
			url=req.responseText;
			if (url==0){showerr("");return false;}
			//$("r").style.display="block";
			$("musicurl").href=url;
			if(!isFF) $("player").filename=url;
			else setTimeout('$("fplayer").src=url',2000);
			if (islrc==0)palylrc(musicname);
			//setTimeout("urlerr()", 2000);

		}
		var myAjax=new AJAX().request({
			url:"/mp3.asp",
			parameters:"s=geturl&songname="+escape(musicname),
			onComplete:callback,
			onLoading:""
		});
	}
}

function palylrc(Musiclrc){
	if (Musiclrc==""){
		showerr("");
		return false;
	}else{
		isReal = false;		
		_player = $("player");
		function callback(req){
			lrcString = req.responseText;
			if (lrcString==0){showerr("");$("lrc").innerHTML ="<br /><br /><br /><br /><br />抱歉，没有找到相应的歌词。";return false;}
			if(lrcString.replace(/ |\n|\t/g, "") != ""){
				if($("player") == null) isFF=true;
				else if(!isFF) $("lrcscroll").style.display = "block";
			}else{
				$("lrc").innerHTML ="<br /><br /><br /><br /><br />抱歉，没有找到相应的歌词。"
				return;
			}
			initLRC();
		}
		var myAjax=new AJAX().request({
			url:"/mp3.asp",
			parameters:"s=getlrc&songname="+escape(Musiclrc),
			onComplete:callback,
			onLoading:"正在搜索歌词中..."
		});
	}
}





var iii=0;
function playall(){
	
	arr=$('top').childNodes
	arr[iii].className="select";
	autoput(arr[iii].innerHTML);
	setTimeout("isstop()",5000);
}

function isstop(){
	iii=iii+1;
	if($("player").playState==0)playall();
	setTimeout("isstop()",3000);
}

function autoput(song){
	$('song').value=song;
	playmp3();
}


function showerr(errstr){
	$("loading").innerHTML=errstr;
	setTimeout('$("loading").innerHTML=""',3000);
}




//lrc－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－
var lrcData = new Object(); 
lrcData.timer = new Array(); 
lrcData.info = new Array(); 

function parseLineData(lineString){
	var timeStart = lineString.indexOf("[");
	var timeEnd = lineString.indexOf("]");
	if(timeStart == -1){
		lrcData.info[lrcIndex] = lineString;
		lrcData.timer[lrcIndex] = lrcData.timer[lrcIndex - 1];
		lrcIndex++;
		return;
	}
	isLrc = true;
	if(isNaN(lineString.slice(timeStart + 1, timeStart + 3)) == false && lineString.indexOf(":") == timeStart + 3){
		lrcData.timer[lrcIndex] = parseInt(lineString.slice(timeStart + 1, timeStart + 3)) * 60 + parseFloat(lineString.slice(timeStart + 4, timeEnd));
		lrcData.info[lrcIndex] = lineString.slice(lineString.lastIndexOf("]") + 1);
	}
	else{
		var tagName; 
		if(lineString.indexOf("[ar:") != -1){ 
			tagName = "艺人:"; 
		}
		else if(lineString.indexOf("[ti:") != -1){ 
			tagName = "歌曲:"; 
		}else if(lineString.indexOf("[al:") != -1){ 
			tagName = "专辑:"; 
		}
		else if(lineString.indexOf("[by:") != -1){ 
			tagName = "歌词制作:"; 
		} 
		else{
			return;
		}
		if(lineString.lastIndexOf("]")>lineString.lastIndexOf("[")){ 
			lrcData.info[lrcIndex] = tagName+lineString.slice(lineString.lastIndexOf(":")+1, lineString.lastIndexOf("]")); 
		}else{ 
			lrcData.info[lrcIndex] = lineString; 
		}
		 
		if(lineString.indexOf("[offset:") != -1){ 
			lrcData.info[lrcIndex] = "------------------------------------------"; 
			offset = Number(lineString.slice(lineString.lastIndexOf(":")+1, lineString.lastIndexOf("]"))); 
			if(isNaN(offset)) { 
				offset = 0; 
			} 
		} 
		lrcData.timer[lrcIndex] = 0; 
	}
	lrcIndex++;
	lineString = lineString.slice(lineString.indexOf("]") + 1);
	if(lineString.indexOf("[") != -1){
		parseLineData(lineString);
	}
}

function sortLRC(){
	for(var i = lrcData.timer.length - 1; i > 0; i--){
		for(var j = 0; j < i; j++){
			if(lrcData.timer[j] > lrcData.timer[j + 1]){
				var temp = lrcData.timer[j];
				lrcData.timer[j] = lrcData.timer[j + 1];
				lrcData.timer[j + 1] = temp;
				temp = lrcData.info[j];
				lrcData.info[j] = lrcData.info[j + 1];
				lrcData.info[j + 1] = temp;				
			}
		}
	}	
}

function getLrcPos(){
	var pos;
	if(isReal) pos = _player.GetPosition() / 1000; //rm
	else pos = _player.CurrentPosition; //wma,mp3
	var i;
	for(i = 0; i < lrcData.timer.length; i++){
		if(lrcData.timer[i] - offset / 1000 > pos) break;
	}
	return i;	
}

var iScr = 0;
function checkTime(){
	clearInterval(iScr);
	var i = getLrcPos();
	while(lrcData.info[i - 1] == "")
		i--;
	iScr = setInterval("lrcScroll("+i+")", 50);
	if(i == 0 || currIndex == i - 1) return;
	$("lrc").innerHTML = "<br /><br /><br />" + showLRC(i - 1);
	currIndex = i - 1;
}

function lrcScroll(index){
	if($("lrc").scrollTop < (index - 2) * 19) $("lrc").scrollTop += 2;
}

function resetLrcScroll(){
	if(isLrc){
		var index = getLrcPos();
		if($("lrc").scrollTop > (getLrcPos() - 2) * 19 || $("lrc").scrollTop < (getLrcPos() - 2) * 19 - 70)
		$("lrc").scrollTop = (getLrcPos() - 2) * 19;
	}
}

function showLRC(index){
	var info = new String();
	for(var i = 0; i < lrcData.info.length; i++){
		if(i == index) info += lrcData.info[i].fontcolor("red").bold() + "<br>";
		else info += lrcData.info[i].fontcolor("gray") + "<br>"
	}
	return info;
}

var iLrc;
var oldtime;
var isLrc = false;

function initLRC(){
	lrcIndex = 0;
	offset = 0;
	currIndex = 0;
	var tmpString = lrcString;
	for(var k = 0; k < 200; k++){
		var cur = lrcString.indexOf("\n");
		if(cur == -1) break;
		var lineString = lrcString.slice(0, cur);
		lrcString = lrcString.slice(cur + 1);
		parseLineData(unescape(lineString).replace(/(^\s*)|(\s*$)/g, ""));
	}
	sortLRC();
	if(lrcData.info.length <= 1){
		$("lrc").innerHTML = tmpString.replace(/\n/g, "<br />");
		return;
	}
	if(!isFF && isLrc) enableLRC();
	else $("lrc").innerHTML = showLRC(-1);	
}

function enableLRC(){
	if(isLrc){
		resetLrcScroll();
		iLrc = setInterval("checkTime();", 500);	
	}
}

function disableLRC(){
	if(isLrc){
		clearInterval(iLrc);
		clearInterval(iScr);
		$("lrc").innerHTML = showLRC(-1);
	}
}

function setLRC(){
	if($("chkLrc").checked == true) enableLRC();
	else disableLRC();
}
