document.onselectstart = function() {
	if (event.srcElement.tagName != "INPUT"&&event.srcElement.tagName != "TEXTAREA") {
		return false;
	}
} 


function Init(){
	this.currentClass = cName;
	if(this.isRead==1){		
		$("TalentInfoPool").setStyle({display:"none"});
		$("purl").setStyle({display:"none"});

	}else{
		$("nav_info").setStyle({display:"block"});
		$("btn_0").setStyle({display:"block"});
		$("btn_1").setStyle({display:"block"});
		$("btn_2").setStyle({display:"block"});
	}
	resetAll();
	setParentChildArrow();			
	
		//$("mianBoardInfo_Frame").setStyle({display:"none"});
	if(tp!=0){
		copySetPoints(tp);
		$("pointURL").value = "http://"+location.hostname+"/talent/"+location.search;
	}else{
		setPointQueryString();
	}

}


function setPointQueryString(){
	var h = "";
	for(var k=0;k<=treeStartStop[2];k++){
		var m = document.getElementById("tp_"+k);
		var t = m.innerHTML.split("/");
		h += t[0];
	}
	$("pointURL").value = "http://"+location.hostname+"/talent/?"+cName+"&"+h;
}
function resetSingleTree(treeID){
	html = "";
	var count = treeID - 1 < 0 ? 0:treeStartStop[treeID-1]+1;
	for(var j=count;j<=treeStartStop[treeID];){ //逐系打印技能
		var iconName =function(x){return "style=\"background:url(images/"+this.cName+"/"+getIconName(nltalent[x][0])+") no-repeat;z-index:1;\" onmousedown=\"setPoints(event,this,"+x+");\"   id='bg_"+x+"' ";}
		var row = function(x){return "style=\"background:url(images/icon-over-grey.gif);z-index:999;\" onMouseOver=\"ddrivetip("+x+",event);\" onMouseOut=\"hideddrivetip();\" id='icon_"+x+"' ";}
		var points = function(x){return "<span id='tp_"+x+"' class='"+getPointTextCss(x)+"' >0/"+talent[x][2]+"</span>";}
	
		if(typeof(talent[j])!="undefined"&&talent[j][3]==1){//如果此数组第三个值等于1，那么说明此技能属于此位置，显示。下面一样
			var row1 = row(j);
			var iconName1	= iconName(j);
			var points1=	points(j);						
			j++;
		}else{
			var row1 = "";
			var points1="";
			var iconName1="";
		}
		

		if(typeof(talent[j])!="undefined"&&talent[j][3]==2){
			var row2	= row(j);
			var iconName2	= iconName(j);
			var points2	=	points(j);								
			j++;
		}else{
			var row2 = "";
			var points2="";
			var iconName2="";
		}
		

		if(typeof(talent[j])!="undefined"&&talent[j][3]==3){
			var row3	= row(j);
			var iconName3	= iconName(j);
			var points3	=	points(j);	
			j++;
		}else{
			var row3 = "";
			var points3="";
			var iconName3="";
		}
		

		if(typeof(talent[j])!="undefined"&&talent[j][3]==4){
			var row4	= row(j);
			var iconName4	= iconName(j);
			var points4	=	points(j);	
			j++;
		}else{
			var row4 = "";
			var points4="";
			var iconName4="";
		}


		html += "<div "+iconName1+" class='spell' ><div class='iconImg' "+row1+"   ><div class='spell_point'>"+points1+"</div></div></div>";
		html += "<div "+iconName2+" class='spell'><div class='iconImg' "+row2+"><div class='spell_point'>"+points2+"</div></div></div>";
		html += "<div "+iconName3+" class='spell'><div class='iconImg' "+row3+"><div class='spell_point'>"+points3+"</div></div></div>";
		html += "<div "+iconName4+" class='spell'><div class='iconImg' "+row4+"><div class='spell_point'>"+points4+"</div></div></div>";
	}
	this.totalPoint = this.totalPoint+pointsTree[treeID];
	pointsTree[treeID] = 0;
	printTalentPointInfo();
	document.getElementById("Talents_"+treeID).innerHTML = html;
}
function resetAll(){
	showTalnetPointInfo();
	for(var k =0;k<3;k++){ //三系天赋遍历
		resetSingleTree(k,this.cName);
	}

}

function getIconName(str){ //获取图标文件名
	var imageName = str;
	imageName = imageName.toLowerCase();
	imageName = imageName.replace("(", "");
	imageName = imageName.replace(")", "");
	imageName = imageName.replace("'", "");
	imageName = imageName.replace(":", "");
	imageName = imageName.replace(" ", "");
	imageName = imageName.replace(" ", "");
	imageName = imageName.replace(" ", "");
	imageName = imageName.replace(" ", "");
	return imageName+"-off.jpg";
}

function getTreeNumber(n){//获取天赋树序号
	return nltree[n];
}

function getPointTextCss(n){ //文字样式（点数）
	if(this.totalPoint > 0 && checkEnable(n)){ //如果总计能大于0并且此项技能为可点项。变成绿色
		return "point_enable";
	}else{
		return "point_disable";
	}
}

function checkEnable(n){ //检测当前天赋是否可以点击
	var requireMinPoint = (talent[n][4]-1)*5;
	if(pointsTree[talent[n][0]] >= requireMinPoint   )//当前技能所需本系点数 && 总计能数大于零 && 此技能的父类天赋已经点出
		return true;
	else
		return false;

}

function checkParentPoint(n){
	if(typeof(talent[n][5])=="undefined"){
		return true;
	}else{//如果此天赋有父类天赋
		var pid = talent[n][5][0];
		var m = document.getElementById("tp_"+pid);
		var t = m.innerHTML.split("/");
		if(t[0] >= talent[n][5][1]){//并且父类天赋的点数已经达到要求
			return true;
		}else{
			return false;
		}
		
	}
}

function setParentChildArrow(){
	for(var n=0;n<=treeStartStop[2];n++){
		if(typeof(talent[n][5])!="undefined"){		
			var pid = talent[n][5][0];
			var m = document.getElementById("tp_"+pid);
			var t = m.innerHTML.split("/");//并且父类天赋的点数已经达到要求
				var p = new Array();
				p['L'] = Element.getPosition($("bg_"+pid))['left'];
				p['T'] = Element.getPosition($("bg_"+pid))['top'];

				var c = new Array();
				c['L'] = Element.getPosition($("bg_"+n))['left'];
				c['T'] = Element.getPosition($("bg_"+n))['top'];
				var idName = "arrow_"+pid+"_"+n;
				if(!document.getElementById(idName)){
					var arrow = new Element('div', { 'class': 'default_arrow', 'id':idName });
					$("tempPool").insert(arrow);
					getArrowImg(idName,p['L'],p['T'],c['L'],c['T']);
				}
			}
	}
}

function getArrowImg(idName,pl,pt,cl,ct,iName){
		if(pl==cl){//44,88,132,176
			var n = ct - pt;
			if(n<50)
				var bg = "url(images/down-1-grey.gif)";
			else if(n>50&&n<100)
				var bg = "url(images/down-2-grey.gif)";
			else if(n>100&&n<150)
				var bg = "url(images/down-3-grey.gif)";
			else if(n>150)
				var bg = "url(images/down-4-grey.gif)";

			$(idName).setStyle({left:(pl+8)});
			$(idName).setStyle({top:(pt+34)});
			$(idName).setStyle({width:16});
			$(idName).setStyle({height:(n-30)});
			$(idName).setStyle({backgroundImage:bg});
		}else if (pt==ct){
			if(cl-pl>0){
				$(idName).setStyle({left:(pl+33)});
				$(idName).setStyle({top:(pt+10)});
				$(idName).setStyle({width:19});
				$(idName).setStyle({height:16});
				$(idName).setStyle({backgroundImage:"url(images/across-right-grey.gif)"});
			}else{
				$(idName).setStyle({left:(cl+33)});
				$(idName).setStyle({top:(ct+10)});
				$(idName).setStyle({width:16});
				$(idName).setStyle({height:16});
				$(idName).setStyle({backgroundImage:"url(images/across-left-grey.gif)"});
			}
		}else{
			$(idName).setStyle({left:(pl+34)});
			$(idName).setStyle({top:(pt+4)});
			$(idName).setStyle({width:45});
			$(idName).setStyle({height:(43)});
			$(idName).setStyle({backgroundImage:"url(images/across-corner-grey.gif)"});
		}
}

function setArrowImg(n,imgStr){
	if(typeof(talent[n][5])!="undefined"){
		var pid = talent[n][5][0];
		var t = $("arrow_"+pid+"_"+n).getStyle("backgroundImage");
		t = t.replace("grey",imgStr);
		t = t.replace("green",imgStr);
		t = t.replace("yellow",imgStr);
		//showDebug("arrow_"+pid+"_"+n+"----backgroundImage:"+imgStr+":"+t);
		$("arrow_"+pid+"_"+n).setStyle({backgroundImage:t});
	}
}

function checkChildPoint(n){
	var result = true;
	var finalID = -1;
	var beforePoints = 0;
	var theFirstLevel = 0;

	var currentLevel = talent[n][4];

	var lasttreeStartStop = (talent[n][0]-1)>=0 ? talent[n][0]-1:0;


	for(var k = n ;k<=treeStartStop[talent[n][0]];k++){
		var m = document.getElementById("tp_"+k);
		var t = m.innerHTML.split("/");
		if(typeof(talent[k][5])!="undefined"&&talent[k][5][0]==n){	 //如果子类有点数，父类必须要满足子类的需求		
			if(t[0]!="0"){
				result =  false;
				break;
			}
		}
	
		if(t[0]!=0){
			finalID = k;
		}
	}	
	
	var requireNum = (talent[finalID][4]-1)*5;
	if(lasttreeStartStop==0)
		var j = 0;
	else
		var j = treeStartStop[lasttreeStartStop]

	var tmp  = "";
	for(k = j ;k  < finalID ; k++){
		var m = document.getElementById("tp_"+k);
		var t = m.innerHTML.split("/");
		if(t[0]!="0"){
			tmp += talent[k][1] +":" + t[0] +"\n";
		beforePoints += parseInt(t[0]);
		}
	}
	
	if( Math.abs(beforePoints - 1) < requireNum && n!=finalID )  result =  false;
	showDebug(tmp +talent[finalID-1][1]+"\n"+talent[j][1] + "to" + talent[finalID][1]+" - 1\n"+ beforePoints+" - 1 <= "+requireNum);
	for(k = treeStartStop[lasttreeStartStop] ;k<=treeStartStop[talent[n][0]];k++){
		var m = document.getElementById("tp_"+k);
		var t = m.innerHTML.split("/");
		if(talent[k][4]==1)
			theFirstLevel += parseInt(t[0]);
	}
//alert(talent[finalID][4]+"!=1&&"+talent[n][4]+"==1&&"+theFirstLevel+"<=5")
	if(talent[finalID][4]!=1&&talent[n][4]==1&&theFirstLevel<=5) result =  false;
	
	
	return result;
}

function getTalentID(talentName) {//取自官方函数，根据技能名称获取ID
	var theTalentID;
	for (theTalentID = 0; talent[theTalentID]; theTalentID++) {
		if (talent[theTalentID][1] == talentName)
			return theTalentID;
	}
}


function copySetPoints(sTp){

	for(var n=0;n<=treeStartStop[2];n++){
		var m = document.getElementById("tp_"+n);
		var t = m.innerHTML.split("/");
			pointsTree[talent[n][0]] = pointsTree[talent[n][0]] + parseInt(sTp.charAt(n));//当前系天赋总点数
			totalPoint = totalPoint - parseInt(sTp.charAt(n));//三系总点数--
			document.getElementById("tp_"+n).innerHTML= sTp.charAt(n)+"/"+t[1]; 	//输出点数
			
			if(sTp.charAt(n) > 0){
				var obj = document.getElementById("bg_"+n);
				var bg = obj.style.backgroundImage; 
				obj.style.backgroundImage = bg.replace("-off","");//背景图片更换
				var icon_bg = document.getElementById("icon_"+n);			
				if(sTp.charAt(n) == t[1]){//点数达到最大值		
					icon_bg.style.backgroundImage = icon_bg.style.backgroundImage.replace("green","yellow");
					icon_bg.style.backgroundImage = icon_bg.style.backgroundImage.replace("grey","yellow");
					m.className =  "point_full";
				}else{			
					icon_bg.style.backgroundImage = icon_bg.style.backgroundImage.replace("grey","green");
					m.className = "point_enable";
				}
			}
			searchOthers(1,n);
	}

	if(totalPoint<=0){ //如果达到60，所有可点项置为disable
				for(var k=0;k<=treeStartStop[2];k++){
					var m = document.getElementById("tp_"+k);
					var t = m.innerHTML.split("/");
					if(parseInt(t[0])==0)
						m.className = "point_disable";
				}
	}
		showTalnetPointInfo();	
		
}

function setPoints(evt,obj,n){
	if(this.isRead==1) return false;
	var m = document.getElementById("tp_"+n);
	var t = m.innerHTML.split("/");
	if(evt.button==1||evt.button==0){
		if(checkEnable(n)&&t[0]<t[1]&&totalPoint>0&& checkParentPoint(n)){ //如果当前天赋可以加点
			pointsTree[talent[n][0]]++;//当前系天赋总点数
			totalPoint --;//三系总点数--
			document.getElementById("tp_"+n).innerHTML= (t[0]-0+1)+"/"+t[1]; 	//输出点数
			
			var bg = obj.style.backgroundImage; 
			obj.style.backgroundImage = bg.replace("-off","");//背景图片更换
			var icon_bg = document.getElementById("icon_"+n);
			
			if(t[0] == t[1]-1){//点数达到最大值		
				icon_bg.style.backgroundImage = icon_bg.style.backgroundImage.replace("green","yellow");
				icon_bg.style.backgroundImage = icon_bg.style.backgroundImage.replace("grey","yellow");
				m.className =  "point_full";
			}else{			
				icon_bg.style.backgroundImage = icon_bg.style.backgroundImage.replace("grey","green");
				m.className = "point_enable";
			}
			
			setPointQueryString();
			if(totalPoint==0){ //如果达到60，所有可点项置为disable
				for(var k=0;k<=treeStartStop[2];k++){
					var m = document.getElementById("tp_"+k);
					var t = m.innerHTML.split("/");
					if(parseInt(t[0])==0)
						m.className = "point_disable";
				}
			}
		}
	}
	
	if(evt.button==2){
		if(checkEnable(n)&&t[0]>0&&checkChildPoint(n)&&totalPoint>=0){//可以减点
			pointsTree[talent[n][0]]--;
			totalPoint ++;
			document.getElementById("tp_"+n).innerHTML = (t[0]-1)+"/"+t[1]; 	

			
			var icon_bg = document.getElementById("icon_"+n);
	
			if(t[0] == 1){
				var bg = obj.style.backgroundImage;
				obj.style.backgroundImage = bg.replace(".jpg","-off.jpg");
				icon_bg.style.backgroundImage = icon_bg.style.backgroundImage.replace("yellow","grey");
				icon_bg.style.backgroundImage = icon_bg.style.backgroundImage.replace("green","grey");
			}else{
				icon_bg.style.backgroundImage = icon_bg.style.backgroundImage.replace("yellow","grey");
			}
				m.className =  "point_enable";
		}
		setPointQueryString();
		if(totalPoint==1){
			for(var k =0 ;k<=treeStartStop[2];k++){
				var m = document.getElementById("tp_"+k);
				var t = m.innerHTML.split("/");
				if(checkEnable(k)){
					m.className = "point_enable";
				}
			}
		}
	}
	ddrivetip(n);
	searchOthers(evt.button,n);
}

function searchOthers(eb,n){//遍历当前点击的天赋后面本系所有天赋，判断是否可加点
	try{
		if(totalPoint>0){
			var lasttreeStartStop = (talent[n][0]-1)>=0 ? talent[n][0]-1:0;
			var j = lasttreeStartStop==0?0:treeStartStop[lasttreeStartStop];
			for(var k =j ;k<=treeStartStop[talent[n][0]];k++){
				var m = document.getElementById("tp_"+k);
				var t = m.innerHTML.split("/");
				if(checkEnable(k)&&checkParentPoint(k)){
					if(t[0] == t[1]){//点数达到最大值
					m.className = "point_full";
					setArrowImg(k,"yellow");
					}else{
					m.className = "point_enable";
					setArrowImg(k,"green");
					}
				}else{
					m.className = "point_disable";
					setArrowImg(k,"grey");
				}
			}
		}

		if(eb==1){
			for(var k =j ;k<=treeStartStop[talent[n][0]];k++){
				var m = document.getElementById("tp_"+k);
				var t = m.innerHTML.split("/");
				if(checkEnable(k)&&checkParentPoint(k)){
					if(t[0] == t[1]){//点数达到最大值
					setArrowImg(k,"yellow");
					}else{
					setArrowImg(k,"green");
					}
				}else{
					setArrowImg(k,"grey");
				}
			}
		}
			
			printTalentPointInfo();
	}catch(e){}
}

function showTalnetPointInfo(){
$("Talents_0").setStyle({backgroundImage:"url(images/"+this.cName+"/background0.jpg)"});
$("Talents_1").setStyle({backgroundImage:"url(images/"+this.cName+"/background1.jpg)"});
$("Talents_2").setStyle({backgroundImage:"url(images/"+this.cName+"/background2.jpg)"});
printTalentPointInfo();

}

function printTalentPointInfo(){
document.getElementById("Talents_info_0").innerHTML = (tree[0] +" ："+ pointsTree[0]+" 点&nbsp;&nbsp;");
document.getElementById("Talents_info_1").innerHTML = (tree[1] +" ："+pointsTree[1]+" 点&nbsp;&nbsp;");
document.getElementById("Talents_info_2").innerHTML =(tree[2] +" ："+pointsTree[2]+" 点&nbsp;&nbsp;");
document.getElementById("Talents_info_pool_0").innerHTML = (tree[0] +" ："+ pointsTree[0]+" 点");
document.getElementById("Talents_info_pool_1").innerHTML = (tree[1] +" ："+pointsTree[1]+" 点");
document.getElementById("Talents_info_pool_2").innerHTML =(tree[2] +" ："+pointsTree[2]+" 点");
document.getElementById("totalpoint").innerHTML = this.totalPoint+" 点";
document.getElementById("spendpoint").innerHTML = (61 - this.totalPoint)+" 点";
document.getElementById("needlevel").innerHTML = (61 - this.totalPoint + 10)+" 级";
}
function showDebug(str){
$("debug").value = str;
}

function getTalentInfo(n){
var m = document.getElementById("tp_"+n);
var t = m.innerHTML.split("/");
var html  = "<div id='talent_name' class='talentInfo'>"+talent[n][1]+"</div>";
	html += "<div id='talent_level' class='talentInfo'>等级："+t[0]+"/"+t[1]+"</div>";
if(typeof(talent[n][5])!="undefined")
	html += "<div id='talent_require_parent' class='talentInfo'>需要："+talent[n][5][1]+" 点在 "+talent[talent[n][5][0]][1]+"</div>";
	html += "<div id='talent_require_points' class='talentInfo'>需要："+(talent[n][4]-1)*5+" 点在 "+tree[talent[n][0]]+" 天赋</div>";
if(t[0]==0){
	var info = rank[n][0];
}else if(t[0]==t[1]){
	var	info = rank[n][t[1]-1];
}else{
	var p = t[0]-1 <=0 ?0:t[0]-1;
	var	info = rank[n][p]+"<br /><br >下一等级<br />"+rank[n][p-0+1];
}
	info = info.toLowerCase().replace("<br>","<div class='enter'></div>");
	html += "<div id='talent_info' class='talentInfo'>"+info+"</div>";
	if(this.isRead==0){
	html += "<br /><div id='talent_tip' class='talentInfo'><span style='color:#1ae91b;margin-right:135px;'>左键单击学习</span><span style='color:red'>右键单击取消</span></div>";
	}
return html;
}
