﻿var _x = 0;
var _y = 0;
var id = 0;//music
var album_id=0//album
var _tag = null;//music
var album_tag=null;//album
var _pos = 0;//music
var album_pos = 0;//album
var mode = 0;//0:album	1:music

String.prototype.trim = function(){
  return this.replace(/(^\s*)|(\s*$)/g,"");
}

function getOffset(e){
  	var t = e.offsetTop;
    var l = e.offsetLeft;
 
	while(e=e.offsetParent){
        t+=e.offsetTop;
        l+=e.offsetLeft;
    }
	
    return {
        top : t,
        left : l
    }
}

function getPosition(tag,pos){	
	var detY=0;
	var detX=0;
	
	switch(pos){
		case 1: detY=30;	detX=-135;	break;//专辑页 右上角			专辑收藏
		case 2: detY=25;	detX=-126;	break;//专辑页 中部 			专辑收藏
		case 3: detY=-8;	detX=-235;	break;//专辑页 中部;歌曲搜索 	歌曲收藏
		case 4: detY=-30;	detX=-250;	break;//专辑页 中部;歌曲搜索	歌曲收藏
		case 5: detY=25;	detX=-91;	break;//歌手页 中部 			专辑收藏
		case 6: detY=25;	detX=-93;	break;//最新专辑页  			专辑收藏
		case 7: detY=-4;	detX=100;	break;//搜索页  				专辑收藏
		case 8: detY=-7;	detX=90;	break;//单播页  				歌曲收藏
		case 9:									//单播页  				歌曲收藏
		case 10:								//单播页  				登陆
		
			var scrollPos=0; 
			if (typeof window.pageYOffset != 'undefined') { 
				scrollPos = window.pageYOffset; 
			}else if (typeof document.compatMode != 'undefined' && 
				document.compatMode != 'BackCompat') { 
				scrollPos = document.documentElement.scrollTop; 
			}else if (typeof document.body != 'undefined') { 
				scrollPos = document.body.scrollTop; 
			}
			
			var height = 0;
			if(window.webkit419){
				height = window.innerHeight;
			}else if(window.opera){
				height = document.body.clientHeight;
			}else{
				height = document.documentElement.clientHeight;
			}
			
			_y = scrollPos +  (height - 90)/2;
			_x = document.body.clientWidth  /2  - 125;
			return;
		case 11:detY=20;	detX=-170;	break;//首页  			歌曲专辑收藏
		default: detX=0;detY=0;
	}
	var offset = getOffset(tag);
	_y = offset.top  + detY;
	_x = offset.left + detX;
}


/*-------------------------------------- 专辑 --------------------------------------------*/
/*
* id: 专辑id
* orignTag: this
* pos 指定位置索引
*/
function addFavorateAlbum(id,orignTag,pos){
		//if(typeof(document.readyState)!= 'undefined' && document.readyState.toLowerCase() != "complete") return;
	album_id = id;
	if(orignTag != null){
		album_tag = orignTag;
	}
	mode=0;
	album_pos = pos;
	getPosition(album_tag,pos);
	press("正在提交 ......",0);
	var favorateTag = document.createElement("script");
	favorateTag.type="text/javascript";
	favorateTag.src="http://www2.haoting.com/user/addAlbumServer.asp?id="+id;
	document.getElementsByTagName("head")[0].appendChild(favorateTag);
}

/*-------------------------------------- 歌曲 --------------------------------------------*/

function addFavorateMusic(id,orignTag,pos,dir){
	//if(typeof(document.readyState)!= 'undefined' && document.readyState.toLowerCase() != "complete") return;
	this.id = id;
	if(dir==null)	dir="";
	
	if(orignTag != null){
		_tag = orignTag;
	}

	mode=1;
	_pos = pos;
	getPosition(_tag,pos);
	press("正在提交 ......",0);
	var favorateTag = document.createElement("script");
	favorateTag.type="text/javascript";
	favorateTag.src="http://www2.haoting.com/user/addMusicServer.asp?id="+id+"&dir="+dir;
	document.getElementsByTagName("head")[0].appendChild(favorateTag);
		
}



function initDirectory(json){
	var str = "";
	if(_pos==3){
		getPosition(_tag,4);
		str = "<div class=sbody><div class=bbody><div class=tit>请选择分类</div><div class=list>";
		var ipot = 3;
		_pos = 3;
	}else if(_pos==8 || _pos==9  ||_pos==11){
		getPosition(_tag,9);
		str = "<div class=sbody1><div class=bbody><div class=tit>请选择分类</div><div class=list>";
		var ipot = 9;
		_pos = 9;
	}
	
	for(i=0;i<json.rows.length;i++){
		str += "<span><a href='###' onclick=\"addFavorateMusic('"+id+"',null,"+ipot+",'"+json.rows[i].directory+"');return false;\">"+unescape(json.rows[i].directory) + "</a></span>";
	}
	str += "<span><a href='###' onclick=\"addFavorateMusic('"+id+"',null,"+ipot+",\'"+escape('未分类的歌曲') + "\');return false;\">不分类直接收藏</a></span>";
	str +="</div><div class=list style=padding-top:0px><input type=text id=newdir onKeyPress=\"if(event.keyCode==13){content=document.getElementById('newdir').value.trim();if(content!='')addFavorateMusic('"+id+"',null,"+ipot+",escape(content));}\" /><button onclick=content=document.getElementById('newdir').value.trim();if(content!='')addFavorateMusic('"+id+"',null,"+ipot+",escape(content));return false; >新建</button><button onclick='closeTag()'>关闭</button></div></div></div>";
	press(str,mode);
	document.getElementById("newdir").focus();
}

/*-------------------------------------- 公共 --------------------------------------------*/

function dressInformation(flag){
	switch(flag){
		case 0: 	showLogin();break;
		case 1:  	press("<div style=float:left>收藏成功</div><div style=float:right><button onclick='closeTag()'>确定</button></div>",0);break;
		case 2: 	press("<div style=float:left>您已经收藏过</div><div style=float:right><button onclick='closeTag()'>确定</button></div>",0);break;
		case 3:		press("<div style=float:left>创建分类并收藏成功</div><div style=float:right><button onclick='closeTag()'>确定</button></div>",0);break;
		case -1: 	press("<div style=float:left>收藏出错,请联系管理员</div><div style=float:right><button onclick='closeTag()'>确定</button></div>",0);break;
		default: 	break;
	}
	//setTimeout("closeTag()",1000);
}

function press(str,mode){
	var infoDiv = document.getElementById("infoTag");
	if(infoDiv)	closeTag();
	
	infoDiv 	=	document.createElement("div");
	infoDiv.id	=	"infoTag";
	infoDiv.style.zIndex = "100";
		
	document.getElementById("funcTag").appendChild(infoDiv);
	
	var name = "";
	
	if(mode==0)			name	=	"sczj";
	else if(mode==1)	{name	=	"gq_sc";}
	
	infoDiv.className		=	name;
	infoDiv.style.top		=	_y + "px";
	infoDiv.style.left		=	_x + "px";
	infoDiv.innerHTML		=	str;
	infoDiv.style.display 	= 	"block";
}



function closeTag(){
	var funcT = document.getElementById('funcTag');
	var infoDiv = document.getElementById("infoTag");
	if(funcT && infoDiv)funcT.removeChild(infoDiv);
	effectBG(false);
}

function showLogin(){
	getPosition(null,10);
	var str ="<div class=sbody id=login><div class=bbody><div class=tit>请登录</div><div id=main><div class=list><ul><li>&nbsp;用户名：<input id=user type=text style='height:16px;' onKeyPress='if(event.keyCode==13) login2();' /></li><li>&nbsp;密&nbsp;&nbsp;&nbsp;码：<input id=pass type=password style='height:16px;' onKeyPress='if(event.keyCode==13) login2();' /></li></ul></div><div class=list style='padding-top:0px'><button onclick=login2()>登录</button><button onClick=window.open('http://www2.haoting.com/user/regok.asp','register','width=280,height=410,menubar=no,top=120,left=200')>注册</button><button onclick='closeTag();'>关闭</button></div></div></div><div style='clear:both'></div></div>";
	press(str,1);	
	effectBG(true);
}

function login2(){
	
	var usernameValue = document.getElementById("user").value;
	var passwordValue = document.getElementById("pass").value;
	
	if(usernameValue=="" || passwordValue=="")	return;

	document.getElementById("main").innerHTML="<div class=list>正在提交 ......</div>";
	
	//火狐不支持vbs
	passwordValue = encode(escape(passwordValue));

	var s = document.createElement("script");
	s.type="text/javascript";
	s.src="http://www2.haoting.com/user/loginServer.asp?username="+escape(usernameValue)+"&password="+passwordValue;
	document.getElementsByTagName("head")[0].appendChild(s);


	s.onreadystatechange=function(){
		if(this.readyState && (this.readyState == "complete" || this.readyState == "loaded") ){
			if(typeof(username) != 'undefined'){
				if(username != null){
					closeTag();
					if(mode==0)	addFavorateAlbum(album_id,null,album_pos);
					else		addFavorateMusic(id,null,_pos,null);
				}else{
					document.getElementById("main").innerHTML="<div class=list>用户名或密码错误.&nbsp;&nbsp;&nbsp;&nbsp;<button onclick=showLogin()>返回</button></div>";
				}
			}
		}
	}

	s.onload = function () {
		if(typeof(username) != 'undefined'){
			if(username != null){
				closeTag();
				if(mode==1)	addFavorateAlbum(album_id,null,album_pos);
				else		addFavorateMusic(id,null,_pos,null);
			}else{
				document.getElementById("main").innerHTML="<div class=list>用户名或密码错误.&nbsp;&nbsp;&nbsp;&nbsp;<button onclick=showLogin()>返回</button></div>";
			}
		}
	}
}

var publicKey	=	3179;
var modulus	=	2573;
var privateKey	=	0;

function crypt(pLngMessage, pLngKey){
	var lLngMod=0;
	var lLngResult=0;
	var lLngIndex=0;
	
	var binKey =Math.floor( pLngKey / 2);

	if(pLngKey % 2 == 0){
		lLngResult = 1;
		for(lLngIndex = 1;lLngIndex <= binKey; lLngIndex++){
			lLngMod = (pLngMessage * pLngMessage) % modulus;
			// Mod may error on key generation
			lLngResult = (lLngMod * lLngResult) % modulus;	
		}
	}else{
		lLngResult = pLngMessage;
		for(lLngIndex = 1;  lLngIndex <= binKey ; lLngIndex++){
			lLngMod = (pLngMessage * pLngMessage) % modulus;

			// Mod may error on key generation
			lLngResult = (lLngMod * lLngResult) % modulus;
		}
	}
	return lLngResult;
}

function encode(pStrMessage){
	var lLngMaxIndex = pStrMessage.length;
	
	if(lLngMaxIndex == 0) return;

	var result="";
	for(lLngIndex = 0 ;lLngIndex < lLngMaxIndex; lLngIndex++){
		lBytAscii = pStrMessage.charCodeAt(lLngIndex);
		lLngEncrypted = crypt(lBytAscii, publicKey);
		result  += numberToHex(lLngEncrypted, 4);
	}
	return result;
}

function numberToHex(pLngNumber,pLngLength){
	var str = "0";
	for(i=0;i<pLngLength;i++){
		str +="0";
	}
	str += pLngNumber.toString(16);
	return str.substring(str.length-pLngLength,str.length);
}

function effectBG(flag){
	if(!document.all)return;
	if(flag){
		var dv = document.getElementById("bg");
		if(dv)		return;
		
		dv = document.createElement("div");
		dv.setAttribute('id','bg');
		dv.style.height = document.body.scrollHeight  + "px";
		dv.style.width = document.body.scrollWidth  + "px";
		dv.style.left = "0px";
		dv.style.zIndex = "99";
		dv.style.filter = "progid:DXImageTransform.Microsoft.Alpha(style=0,opacity=50,finishOpacity=100%)";
		dv.style.background = "#cccccc";
		dv.style.top = 0;
		dv.style.position = "absolute";
		document.getElementById('funcTag').appendChild(dv);
	}else{
		var dv = document.getElementById("bg");
		if(dv)document.getElementById('funcTag').removeChild(dv);
	}
}
