//浮动层显示属性
function MouseOverShow(id)
{  
    var parID=parseInt(document.getElementById('Img'+id).name);
    var info = document.getElementById("info"); 
    var divHtml=null;
    var redid=0;
    var redid1=0;
    var RedHtml="";
    var NextHtml=NextSkill.replace("{$NextskillNote}",talent[parseInt(parID)+1][2].replace(/#/g,"<br/>"));
    
    if(document.getElementById(id).name==0)
    {
        redid=parseInt(talent[parID][4])+parseInt(talent[parID][5]);
        if(talent[parID][0]<11)      
            redid1=parseInt(talent[parID+1][4])+parseInt(talent[parID+1][5]);   
    }    
    else
    {
        redid=parseInt(talent[parID+1][4])+parseInt(talent[parID+1][5]);
        if(talent[parID+2]!=null)
        if(talent[parID][0]<11)
            redid1=parseInt(talent[parID+2][4])+parseInt(talent[parID+2][5]);
//        if(parID==929)
//            alert(talent[parID][4]+"和"+talent[parID][5]+"和"+redid);      
    }
    
    if((id==15 || id==136 || id==920 || id==777 || id==667 || id==445 || id==555 || id==335) && document.getElementById(id).name==0)
    {
        if(talent[parID][3]!=1)
        {
            RedHtml+= "需要等级<br/>"+talent[parID][3];
            if(document.getElementById("dvLevel").innerText<talent[parID][3])
                RedHtml+='<span id = "Redlevel" style = "color:Red;">'+ RedHtml +'</span>';
            else
                RedHtml+='<span id = "Redlevel" style = "color:White;">'+ RedHtml +'</span>';
        }
        else
        {
            RedHtml+='<span id = "Redlevel" style = "color:White;"></span>';
        }
    }
    else if((id==15 || id==136 || id==920 || id==777 || id==667 || id==445 || id==555 || id==335) && document.getElementById(id).name==1)
    {
        if(talent[parID+1][3]!=1)
        {
            RedHtml="需要等级<br/>"+talent[parID+1][3];
            if(document.getElementById("dvLevel").innerText<talent[parID+1][3])
                RedHtml+="<span id = \"Redlevel\" style = \"color:Red;\">"+ RedHtml +"</span>";
            else
                RedHtml+="<span id = \"Redlevel\" style = \"color:White;\">"+ RedHtml +"</span>"; 
        }
        else
        {
            RedHtml+='<span id = "Redlevel" style = "color:White;"></span>';
        }   
     }
    else// if(talent[parID][3]!="1" && id!=15 && id!=136 && id!=920 && id!=777 && id!=667 && id!=445 && id!=555 && id!=335)  // && document.getElementById(id).name==0
    {
        if(talent[parID][3]!=1 && talent[parID+1][3]!=1)
        {
            if(document.getElementById(id).name==0)
                RedHtml="需要等级<br/>"+talent[parID][3];
            else
                RedHtml="需要等级<br/>"+talent[parID+1][3];
                  
            if(document.getElementById("dvLevel").innerText<talent[parID+1][3])
                RedHtml+="<span id = \"Redlevel\" style = \"color:Red;\">"+ RedHtml +"</span>";
            else
                RedHtml+="<span id = \"Redlevel\" style = \"color:White;\">"+ RedHtml +"</span>";
        } 
        else
        {
            RedHtml+='<span id = "Redlevel" style = "color:White;"></span>';
        }       
    } 
    
    
    if(redid!=0)
    {
//        if(parID==929)
//            alert(talent[parID][4]+"和"+redid);
        //父技能一级ID
        var fName=parseInt(talent[parID][4])+parseInt(talent[parID][5])-talent[parseInt(talent[parID][4])+parseInt(talent[parID][5])][0]+1;
        var fNameLv=talent[parseInt(talent[parID][4])+parseInt(talent[parID][5])][0];  //当前技能需要父技能的等级数
        var fNowLv=talent[document.getElementById(fName).childNodes[0].name][0];   //当前父技能的等级状态
                
        var fName1=0;
        var fNameLv1=0;
        var fNowLv1=0;
        
        //第二个父技能限制存在的情况下
        if(parseInt(talent[parID+1][4])+parseInt(talent[parID+1][5])!=0)
        {
            fName1=parseInt(talent[parID+1][4])+parseInt(talent[parID+1][5])-talent[parseInt(talent[parID+1][4])+parseInt(talent[parID+1][5])][0]+1;
            fNameLv1=talent[parseInt(talent[parID+1][4])+parseInt(talent[parID+1][5])][0];  //当前技能需要第二个父技能的等级数
            fNowLv1= talent[document.getElementById(fName1).childNodes[0].name][0];   //当前父技能的等级状态
        }        
        
        if(fNowLv<fNameLv || fNowLv1<fNameLv1 || ((fName==15 || fName==136 || fName==920 || fName==777 || fName==667 || fName==445 || fName==555 || fName==335 || fName==810) && document.getElementById(fName).name==0))
        {
            RedHtml+='<br/><span id = "RedSkill" style = "color:Red;">需要技能<br/>'+talent[redid][0]+'级 '+talent[redid][1];        
            if(redid1>0)
                RedHtml+="<br/>"+talent[redid1][0]+"级 "+talent[redid1][1];
            RedHtml+="</span>";
        }
        else
        {
           // alert(fNowLv+"<"+fNameLv+" || "+fNowLv1+"<"+fNameLv1);
            RedHtml+='<br/><span id = "RedSkill" style = "color:White;">需要技能<br/>'+talent[redid][0]+'级 '+talent[redid][1];   
            if(redid1>0)
                RedHtml+="<br/>"+talent[redid1][0]+"级 "+talent[redid1][1];
            RedHtml+="</span>";
        }      
    } 
    
    //<span id = "RedNote" style = "color:Red;"></span>
    
    
    if(document.getElementById(id).name==1)
        divHtml=SkillHTML.replace("{$Level_$skillname}",talent[parID][0]+"级 "+talent[parID][1]+"<br/>").replace("{$skillNote1}",talent[parID][2].replace(/#/g,"<br/>")).replace("{$NextSkill}",NextHtml).replace("{$skillRed}",RedHtml);
    else
        divHtml=SkillHTML.replace("{$Level_$skillname}",talent[parID][1]+"<br/>").replace("{$skillNote1}",talent[parID][2].replace(/#/g,"<br/>")).replace("{$NextSkill}","").replace("{$skillRed}",RedHtml);
        
    
    info.innerHTML=divHtml;
    info.style.display = "";
    info.style.left = event.clientX;
    info.style.top = event.clientY + document.body.scrollTop;    
}

function OnMouseEvent(id,num,type)
{    
    document.getElementById("dvLevel").contentEditable = false;
    document.getElementById("dvStar").contentEditable = false;
    document.getElementById("dvStarLevel").contentEditable = false;
    if(event.button==1)  //鼠标左键
    {
        OnClickMouseLeft(id,num,type);
    }
    else if(event.button==2)  //鼠标右键 
    {
        OnClickMouseRight(id,num,type);
    }
}

//左键点击
function OnClickMouseLeft(id,num,type)
{
    var parID=0;
    var Point=parseInt(document.getElementById("skillPoint").innerText);
    
    if(Point<=0)
        return;
        
    /**********特殊情况,直接写死 *****************/  
    if(talent[id][1]=="烈焰冲天")
    {
        if(document.getElementById("810").name==0)
            return;
    }  
    
    if(talent[id][1]=="冰神护体")
    {
        if(document.getElementById("445").name==0)
            return;
    }  
    /*******************************************/
        
    if(document.getElementById(id).name=="0")
        parID=parseInt(document.getElementById('Img'+id).name);
    else
        parID=parseInt(document.getElementById('Img'+id).name)+1;
        
        
    if(!CheckAllowPoint(parID,id))
        return false;
    
    var ImgCode=ImgHtml[id][1].replace("{$parID}",parID).replace("{$ImgID}","Img"+id);
    document.getElementById(id).innerHTML=ImgCode;
    CheckAllowChild(parID);
    document.getElementById("skillPoint").innerText=Point-1;
    FixSkillsID(parID,num,type,id);    
}

//右键点击
function OnClickMouseRight(id,num,type)
{
    var parID=parseInt(document.getElementById('Img'+id).name);
    var Point=parseInt(document.getElementById("skillPoint").innerText);   
    if(Point<0)
        return;
         
    if(document.getElementById(id).name==0)
        return;
    
       
    if(!CheckAllowReducePoint(parID,id))
        return;
        
    /*--------特殊状态情况.直接写死-----------*/    
    if(talent[parID][1]=="火魔缠身" && talent[parID][0]=="1")
    {
        document.getElementById("854").innerHTML=ImgHtml[854][0];
        resetjnSkill[3][5]=854;
        jnName[3][5]=0;       
    }
    
    if(talent[parID][1]=="冰雪寒锥" && talent[parID][0]=="1")
    {
        document.getElementById("489").innerHTML=ImgHtml[489][0];
        resetjnSkill[5][7]=489;
        jnName[5][7]=0;       
    }   
    
    /*---------------------*/
        
    //如果技能等级小于1,熄灭技能图标
    if(parseInt(talent[parID][0])-1<1 && document.getElementById(id).name==1)
    {
        //父技能一级ID
        var xFParID=parseInt(talent[document.getElementById("Img"+id).name][4])+parseInt(talent[document.getElementById("Img"+id).name][5]);
        if(xFParID!=0)    
            xFParID=xFParID-talent[xFParID][0]+1;
        
        //如果父技能未灭,子技能的也不灭
        if(xFParID!=0 && document.getElementById(xFParID).name==1)
        {
            document.getElementById(id).innerHTML=ImgHtml[id][1].replace("{$parID}",parID).replace("{$ImgID}","Img"+id);
        }
        else
        {        
            document.getElementById(id).innerHTML=ImgHtml[id][0];                    
        }
        
        document.getElementById(id).name=0;
        document.getElementById("skillPoint").innerText=Point+1;
        return;
    }
    else
    {
       var BaseParID=parID - talent[parID][0]+1;
       document.getElementById(id).innerHTML=ImgHtml[BaseParID][1].replace("{$parID}",parID-1).replace("{$ImgID}","Img"+id); 
    }
    
    
    
    //熄灭技能灯
    GetChildBaseID(parID,id,true,type,num);
       
    document.getElementById("skillPoint").innerText=Point+1;
    
    FixSkillsID(parID-1,num,type,id); 
}

//判断是否允许减去技能点数
function CheckAllowReducePoint(parID,id)
{
    var TmpParID=0; //子技能的限制条件值之和
    var BaseParID=0;    //子技能的一级ID
    var fLevel=talent[document.getElementById("Img"+id).name][0];  //当前点击的技能等级
    var cLevel=0;  //当前子技能的等级
    var xLevel=1;  //当前子技能限制的等级
    
    var TmpParID1=0;
    var BaseParID1=0;    //子技能的一级ID
    var fLevel1=talent[document.getElementById("Img"+id).name][0];  //当前点击的技能等级
    var cLevel1=0;  //当前子技能的等级
    var xLevel1=1;  //当前子技能限制的等级

    for(var e=0;e<talent.length;e++)
    {
        if(talent[e]==null)
            continue;  
        
        
        //子技能是否当前状态是否有技能限制
        TmpParID=parseInt(talent[e][4])+parseInt(talent[e][5]);
        if(TmpParID==0)
            continue;
                
        //只有子技能ID限制 等于 当前技能ID时,才生成子技能的一级ID
        if(TmpParID!=parID)
            continue;       
        
        BaseParID=e - talent[e][0]+1;
          
        cLevel=talent[document.getElementById("Img"+BaseParID).name][0];
        if(parseInt(talent[e+1][4])+parseInt(talent[e+1][5])!=0 && talent[e+1][0]==2)
        {                      
            e=e+1;
            TmpParID1=parseInt(talent[e][4])+parseInt(talent[e][5]);
            //alert(TmpParID1);
            BaseParID1=e - talent[e][0]+1;
            cLevel1=talent[document.getElementById("Img"+BaseParID1).name][0];            
        }
        
        
        if(cLevel>=xLevel && document.getElementById(BaseParID).name!=0)
        {
            //alert("Img"+BaseParID+"=="+cLevel+":"+xLevel+"\r当前循环次数:"+e);
            if(BaseParID1!=0)
            {
                //alert(cLevel1+">="+xLevel1+" && "+document.getElementById(BaseParID1).name + " &&  BaseParID1=="+BaseParID1);
                if(cLevel1>=xLevel1 && document.getElementById(BaseParID1).name!=0)
                    return false;
            }
            return false;
        }
    }
    return true;
}

//判断是否允许增加技能点数
function CheckAllowPoint(parID,id)
{   
//只有1--10级的时候,才允许增加
    if(parseInt(parID)-parseInt(id)>=10 || parseInt(parID)-parseInt(id)<0)
        return false;
    
    //点击的名称在与一级名称一致才可以,并且等级小于10
    if(talent[id][1]!=talent[parID][1] || talent[parID][0]>10)
        return false;  
        
        
    //判断等级条件是否达到
    if(parseInt(document.getElementById("dvLevel").innerText)<talent[parID][3])
    {
        //alert("当前等级:"+document.getElementById("dvLevel").innerText+"< 需求等级:"+talent[parID][3]);
        return false;
    }
   
    //父技能条件是否达到,第一个技能不进入判断
    if(id!=15 && id!=136 && id!=920 && id!=777 && id!=667 && id!=445 && id!=555 && id!=335)
    {
        //当前点击的技能父Name项
        var fName=parseInt(talent[parID][4])+parseInt(talent[parID][5])
        var fName1=parseInt(talent[parID+1][4])+parseInt(talent[parID+1][5])
//        alert(CheckImgParID(fName)+":"+fName);
//        return false;
        if(fName!=0)
        {
            if(parseInt(CheckImgParID(fName))<parseInt(fName))
            {
                return false;
            }
        }
        
        if(fName1!=0)
        {
            if(parseInt(CheckImgParID(fName1))<parseInt(fName1))
            {
                return false;
            }
        }
    }
    
    document.getElementById(id).name="1";    
    
    return true;
}

//减去点数后,熄灭子技能
function CheckAllCloseChild(ChildID,id,sktype,num)
{
//    var ChildID=GetChildBaseID(ParID,id);
    
//    if (ChildID==142)
//        alert(talent[ChildID][4]+"+"+talent[ChildID][5]+"=="+document.getElementById(id).childNodes[0].name);
    if(document.getElementById(ChildID).name==0 && talent[ChildID][4]+talent[ChildID][5]-1==document.getElementById(id).childNodes[0].name)
    {        
        document.getElementById(ChildID).innerHTML=ImgHtml[ChildID][0];
        document.getElementById(ChildID).name==0;
        for(var u=0;u< resetjnSkill[sktype].length;u++)
        {
            if(resetjnSkill[sktype][u]==ChildID)
            {
                num=u;
                break;
            }    
        }
        jnName[sktype][num]=0;
    }
}

//增加点数后,判断是否有子技能点亮
function CheckAllowChild(parID)
{
    var SkillCnt=talent.length;
        
    for(ki=0;ki<SkillCnt;ki++)
    {
        if(talent[ki]!=null)
        {
            if(parseInt(talent[ki][4])+parseInt(talent[ki][5])==parID)
            {
                if(ImgHtml[ki]!=null)
                {
                    var ImgCode=ImgHtml[ki][1].replace("{$parID}",ki).replace("{$ImgID}","Img"+ki);
                    document.getElementById(ki).innerHTML=ImgCode;
                }
            }
        }
    }
}

//技能ID组合
function FixSkillsID(ParID,Num,SkillType,id)
{   
    var Url="";   
    jnSkill[SkillType][Num]=ParID;
    jnName[SkillType][Num]=document.getElementById(id).name;

    if(event.button==2)
    {
        if(talent[ParID][0]==1)
            jnName[SkillType][Num]=0;
    }
    
    //小于2,是战士有两个技能树        
    var slen=0;
    var PageName="index.html";
    if(SkillType<=1)
    {
        slen=2;
        for(var j=0;j<slen;j++)
        {        
            for(var u=0;u<jnSkill[j].length;u++)
            {   
                Url+=jnSkill[j][u]+"|"+jnName[j][u]+"&";
            }
        }
    }
    else if(SkillType>=2 && SkillType<=4)  //猎人有三个技能树
    {
        
        slen=5;
        PageName="ls.html";
        for(var j=2;j<slen;j++)
        {        
            for(var u=0;u<jnSkill[j].length;u++)
            {   
                Url+=jnSkill[j][u]+"|"+jnName[j][u]+"&";
            }
        }
    }
    else
    {
        slen=8;     //法师有三个技能树
        PageName="ss.html";
        for(var j=5;j<slen;j++)
        {        
            for(var u=0;u<jnSkill[j].length;u++)
            {   
                Url+=jnSkill[j][u]+"|"+jnName[j][u]+"&";
            }
        }
    }   
    
    
    Url="http://"+window.location.host+"/active/090215/"+PageName+"?"+Url.substring(0,Url.length-1)+"?"+SetPoint[0]+"&"+SetPoint[1]+"&"+SetPoint[2];
    document.getElementById("Url").innerHTML="<a href='#' onclick='copyUrl(\""+ Url +"\")'>点击复制当前设置点数地址</a>";
}

//数据值设置到技能树
//0:刀剑系,1:枪斧系,2:术士冰系,3:术士电系,4:术士火系,5:猎手神箭系,6:猎手火箭系,7:猎手冰箭系
//function SetPointArray(SkillNum)
//{
//    var jn=new Array();  //每一个技能的Name值
//    var BaseID=0; //一级技能的ID号
//    var u=0;
//    for(u=0;u<jnSkill[SkillNum].length;u++)
//    {
//        jn[u]=jnSkill[SkillNum][u];
//    }
//    
//    for(u=0;u>jn.length;u++)
//    {
//        BaseID=jn[u]-talent[jn[u]][0]+1;
//        document.getElementById(BaseID).name=jnName[SkillNum][u];
//        if(jnName[SkillNum][u]==0)
//        {
//            document.getElementById(BaseID).innerHTML=ImgHtml[BaseID][0];
//            document.getElementById(BaseID).name=jnName[SkillNum][u];
//        }
//        else
//        {
//            var ImgCode=ImgHtml[BaseID][1].replace("{$parID}",jn[u]).replace("{$ImgID}","Img"+BaseID);
//            document.getElementById(BaseID).innerHTML=ImgCode;
//            document.getElementById(BaseID).name=jnName[SkillNum][u];
//        }
//    }
//    
//    //剩余技能点数
//    //
//}

//重置技能树
//0:刀剑系,1:枪斧系,2:术士冰系,3:术士电系,4:术士火系,5:猎手神箭系,6:猎手火箭系,7:猎手冰箭系
function reSetPointArray(SkillNum)
{
    //alert(document.getElementById("dvLevel").innerText);
    var baseID=0;
    var Point=0;
    var BaseByID=null;
    for(var u=0;u<resetjnSkill[SkillNum].length;u++)
    {          
        baseID=resetjnSkill[SkillNum][u];
        BaseByID=document.getElementById(baseID);
        
        if(BaseByID.name!=0)
            Point+=talent[BaseByID.childNodes[0].name][0];
        
        document.getElementById(baseID).innerHTML=ImgHtml[baseID][0];
        document.getElementById(baseID).name=0;
        
        jnSkill[SkillNum][u]=resetjnSkill[SkillNum][u];
        jnName[SkillNum][u]=0;
    }
    
    var SkillPoint=document.getElementById("skillPoint");
    SkillPoint.innerText=parseInt(SkillPoint.innerText) + parseInt(Point);
}

//检查技能组的Name值,并返回当前状态的ParID,也就是返回父级技能图标的当前Name值
//ParID  当前点击的技能需求数值和
function CheckImgParID(ParID)
{
    var SkillName=talent[ParID][1];
    
    for(var k=0;k<=talent.length;k++)
    {
        if(talent[k]==null)
            continue;
            
        if(talent[k][1]==SkillName)
        {
            for(var u = 0;u < document.images.length;u++)
            {
                var img = document.images[u];
                if(img.parentNode.onmouseover)
                {                                      
                    if(img.name==k)
                    {
                        return img.name;
                    }
                }
            }
        }
    } 
    return null;   
}

//获取ImgHtml中的属性值
function FormatImgHTML(ImgHtmls,ParNum)
{
    var reName =/<img.*name=\"([^\"]+)\"/i;
    var reSrc= /<img.*src=\"([^\"]+)\"/i;

    var mresult=null;
    
    if(ParNum==1)
        mresult=reSrc.exec(ImgHtmls); 
    else if(ParNum==2)
        mresult=reName.exec(ImgHtmls);
                   
    if(mresult != null)
    {
       return RegExp.$1;
    }
}

//获取父技能一级ID
function GetFartherBaseID(id)
{
    var xFParID=parseInt(talent[document.getElementById("Img"+id).name][4])+parseInt(talent[document.getElementById("Img"+id).name][5]);
        if(xFParID!=0)    
            xFParID=xFParID-talent[xFParID][0]+1;
            
    return xFParID;
}

//获取子技能一级ID
function GetChildBaseID(ParID,id,closePic,sktype,num)
{
    var xChildParID=0;
    for(var e=0;e<=talent.length;e++)
    {
        if(talent[e]==null)
            continue;
        
        //子技能是否当前状态是否有技能限制
        TmpParID=parseInt(talent[e][4])+parseInt(talent[e][5]);
        if(TmpParID==0)
            continue;
            
            
        //只有子技能ID限制名称 等于 当前技能ID名称时,才生成子技能的基础ID
        if(talent[TmpParID][1]!=talent[ParID][1])
            continue;
        
        xChildParID=e - talent[e][0]+1;
        
        //如果技能等级不为1,则不是一级ID
        if(talent[xChildParID][0]!=1)
            continue;             
            
        //熄灭子技能图标  
        if(closePic)
            CheckAllCloseChild(xChildParID,id,sktype,num);
                
     } 
     
     return xChildParID;
}



function copyUrl(Url)
{
    window.clipboardData.setData("Text",Url); 
    alert("复制成功，请保存好地址以备后用，或者去论坛晒一晒你的配点方案！"); 
}
