﻿
function ShowNodeDetails(cTreeId,cNodeId,cFatherId,cContentTarget,cContentId,cLabel)
{
    /*
    var cTreeNode = cFatherId+"_"+cNodeId;
    alert(MyTree.nodes[cTreeNode]);
    var cSource = MyTree.nodes[cTreeNode];
    var cIndex = cSource.substring(cSource.indexOf(":")+1,cSource.indexOf(";"));
    alert(cIndex);
    alert(MyTree.node[Number(cIndex)].text);
    alert(MyTree.node[Number(cIndex)].parentNode.text);
    alert(MyTree.node[Number(cIndex)].path);
    alert(MyTree.node[Number(cIndex)].sourceIndex); 
    alert("HasChild: "+MyTree.node[Number(cIndex)].hasChild);
    return;
    
    // 上面的代码可以演示 MzTree 对象树形列表的定义
    // sourceIndex 形似 1235_1254 , 是原来定义的
    // path 返回 形如： 0_2_4  是当前节点的全部路径 其中的数字是新的数组的下标 
    // MyTree.nodes["987_9888"]="text:....."  这样原来的定义被重新解析，新的数组为 MyTree.node[1]="index:1;text:...." 这样的形式
    */
    
    
    var NodeFullPathHtml ="";
    var CurrSource = MyTree.nodes[cFatherId+"_"+cNodeId];
    if (typeof CurrSource=="string")
    {
        var CurrNodeIndex = Number(CurrSource.substring(CurrSource.indexOf(":")+1,CurrSource.indexOf(";")));
        var CurrNode = MyTree.node[CurrNodeIndex];
        
        if (!CurrNode.hasChild)
        {
            //alert("即将加载子系统");
            if (AutoLoadSubSystem(cTreeId,cNodeId))
            return;
        }
        
        var CurrPath = CurrNode.path; // 
        var aCurrPath = CurrPath.split("_");
        
        var LayersStr = "";
        for(var i=0; i<aCurrPath.length; i++)
        {
            if (aCurrPath[i]!='0')
            {
                tNode = MyTree.node[aCurrPath[i]];
                var tNodeTaxonId = tNode.sourceIndex.substring(tNode.sourceIndex.indexOf("_")+1);
                NodeFullPathHtml += "<br />"+LayersStr;
                NodeFullPathHtml += "<span class='ItemSmallLable'><a href='/Taxon/ShowTaxonSystem.aspx?sysid="+MyTreeProperty.SysId+"&rootid="+tNodeTaxonId+"'>"+tNode.text+"</a></span>";
                if (LayersStr=="") 
                  LayersStr = "&nbsp;&nbsp;└";
                else
                  LayersStr = "&nbsp;"+LayersStr;
            }
        }                
    }
    
    var HtmlString = "";
    HtmlString += "<div class='ItemDivTitle'>当前节点属性</div>";
    HtmlString += "<br />";    
    HtmlString += "<span class='ItemFirstLable'>"+cLabel+"</span>";
    HtmlString += "<br />";
    HtmlString += "<span class='ItemTitle'>ID：</span>";
    HtmlString += "<span class='ItemSmallLable'>"+cNodeId+"</span>";
    HtmlString += "<span class='ItemTitle'>父ID：</span>";
    HtmlString += "<span class='ItemSmallLable'>"+cFatherId+"</span>";
    HtmlString += "<br />";
    HtmlString += "<span class='ItemTitle'>内容表：</span>";
    HtmlString += "<span class='ItemSmallLable'>"+cContentTarget+"</span>";
    HtmlString += "<span class='ItemTitle'>内容ID：</span>";
    HtmlString += "<span class='ItemSmallLable'>"+cContentId+"</span>";
    HtmlString += "<br />";
    HtmlString += "<span class='ItemTitle'>分类位置：</span>";
    HtmlString += NodeFullPathHtml;
    HtmlString += "<br />";
    HtmlString += "<span class='SpanBtn' onclick=\"ShowSubSystem('"+cTreeId+"','"+cNodeId+"');\">展开下级子系统</span>";
    HtmlString += "<span class='SpanBtn' onclick=\"ShowNodeTaxonInfo('"+cNodeId +"','"+ cContentTarget+"','"+cContentId+"');\">查看物种信息</span>";
    HtmlString += "<br /><div id='SubSysListDiv'></div>";
    HtmlString += "<br /><div id='SpInfoCard'></div>";
    
    
   $("#NodeDetails").html(HtmlString);
}

function ShowNodeTaxonInfo(cNodeId,cTarget,cContentId)
{
    // http://192.168.248.128/ajaxServer/server.ashx?service=spinfo&method=showall&spid=23&format=json
 
    $.getJSON("/ajaxServer/server.ashx?service=spinfo&method=showall&format=json",
        { spid: cContentId },
        function(json){ ShowSpInfoCard(json); }
    );
}

function ShowSpInfo(cSpId)
{
    $.getJSON("/ajaxServer/server.ashx?service=spinfo&method=showall&format=json",
        { spid:cSpId },
        function(json){ ShowSpInfoCard(json); }
    );
}



/**
    显示指定节点的下级分类系统
*/
function ShowSubSystem(cTreeId,cNodeId)
{
    // 从服务器取得下级系统路径， 如果路径只有一条，直接打开；否则显示列表，供用户选择
    // http://192.168.248.128/AjaxServer/Server.ashx?service=taxonnode&format=json&sysid=9&nodeid=1950&method=getsubsystems
    // 返回的有效数据为 IdNamePair
    
   
    $.getJSON("/AjaxServer/Server.ashx?service=taxonnode&format=json&method=getsubsystems",
    { sysid:cTreeId, nodeid:cNodeId },
    function(json){
            if (typeof json!="object") return alert("服务器应答异常！");
            
            if (typeof json.type=="jsonmsg")
            {
                return alert(json.message);
            }
            if (typeof json.length=="number")
            {
                if (json.length<1)
                    return alert("没有可用子系统！");
                if (json.length==1)
                {
                    // alert(json[0].Name);
                    // 直接打开新系统
                    if (typeof json[0].Id == "string")
                         document.location = "/Taxon/ShowTaxonSystem.aspx?sysid="+json[0].Id;
                }
                else
                {
                    // 将多个子系统绘制出来，供用户选择
                    // alert(json.length);
                    var SubSysHtml = "";
                    $.each(json,function(i,data) {
                        if ((typeof data.Id=="string")&&(typeof data.Name =="string"))
                        {
                          SubSysHtml += "<span class='ItemSmallLable'><a href='/Taxon/ShowTaxonSystem.aspx?sysid="+data.Id+"'>"+data.Name+"</a></span><br />";
                        }
                    });
                    $("#SubSysListDiv").html(SubSysHtml);
                }
            }
            else
            {
                alert("没有可用子系统！");
            }
    });
}
/**
    自动加载子系统
*/
function AutoLoadSubSystem(cTreeId,cNodeId)
{
    $.getJSON("/AjaxServer/Server.ashx?service=taxonnode&format=json&method=getdefaultsubsystem",
    { sysid:cTreeId, nodeid:cNodeId },
    function(json){
            if (typeof json!="object")
                return false;
            
            if (typeof json.type=="jsonmsg")
            {
                return false;
            }

            if (typeof json.Id == "string")
            {
                 document.location = "/Taxon/ShowTaxonSystem.aspx?sysid="+json.Id+"&fathersysid="+cTreeId;
                 return true;
            }
            else
            {
                return false;
            }
    });
}

function ShowSpInfoCard(json)
{
    $("#SpInfoCard").html("");
    $("#SpInfoCard").css({ "border":"none" });
    
    if (typeof json!="object") return alert("服务器应答异常！");
    if (typeof json.type=="jsonmsg")
    {
        return alert(json.message);
    }
    // 开始绘制物种信息卡
    var SpInfoHtml ="";
    //--------
    if (typeof json.Label== "string")
    {
        SpInfoHtml += "<div><span class='ItemFirstLable'>"+json.Label+"</span>";
        SpInfoHtml += "<a href=\"/spdb/TaxonNodeTree.aspx?spid=" + json.Key + "\"><span class='ItemTitle' style='color:#00F;'>显示物种分类树</span></a>";
        SpInfoHtml += "<a href=\"" + json.Key + ".spalbum\"><span class='ItemTitle' style='color:#00F;margin-left:20px;'>显示物种相册</span></a>";
        SpInfoHtml += "</div>";
        SpInfoHtml += "<hr size=\"1\" />";
    }    
    if (typeof json.Key== "string")
    {
        SpInfoHtml += "<span class='ItemTitle'>ID：</span>";
        SpInfoHtml += "<span class='ItemSmallLable'>"+json.Key+"</span>";
    }
    if (typeof json.Name_Latin == "string")
    {
        SpInfoHtml += "<br /><span class='ItemTitle'>学名： </span>";
        SpInfoHtml += "<span class='ItemSmallLable'>"+json.Name_Latin+"</span>";
    }    
    if (typeof json.Name_Zh == "string")
    {
        SpInfoHtml += "<br /><span class='ItemTitle'>中名： </span>";
        SpInfoHtml += "<span class='ItemSmallLable'>"+json.Name_Zh +"</span>";
    }
    if (typeof json.NormalNamesList=="object")
    {
        if (typeof json.NormalNamesList.length =="number")
        {
            SpInfoHtml += "<br /><span class='ItemTitle'>别名： </span>";
            $.each(json.NormalNamesList,function(i,NNames){
                SpInfoHtml += "<span class='ItemSmallLable'>"+NNames.Name+"</span>";
            });
        }
    }
        
    //--------
    $("#SpInfoCard").html(SpInfoHtml);
    //$("#SpInfoCard").css({ "border":"solid 1px #666","padding":"30px" });
}

function ShowTaxonSysInfo()
{
    if (typeof MyTreeProperty!="object")
        return;
    if (MyTreeProperty==null)
        return;
        
    var TaxonSysHtml = "";
    TaxonSysHtml += "<div class='ItemDivTitle'>当前系统属性</div>";
    TaxonSysHtml += "<br />";
    if (typeof MyTreeProperty.Names=="object")
    {
        TaxonSysHtml += "<span class='ItemTitle'>系统名：</span>";
        $.each(MyTreeProperty.Names,function(i,cSysName)
        {
            if (typeof cSysName=="string")
            {
                TaxonSysHtml += "<br />";
                TaxonSysHtml += "<span class='ItemSmallLable'>"+cSysName+"</span>";
            }
        }
        );
        TaxonSysHtml += "<br />";
    }
    if (typeof MyTreeProperty.NodeCount=="number")
    {
        TaxonSysHtml += "<span class='ItemTitle'>节点数目：</span>";
        TaxonSysHtml += "<span class='ItemSmallLable'>"+MyTreeProperty.NodeCount+"</span>";
    }
    if (typeof MyTreeProperty.SysRoot=="string")
    {
        TaxonSysHtml += "<span class='ItemTitle'>根节点ID：</span>";
        TaxonSysHtml += "<span class='ItemSmallLable'>"+MyTreeProperty.SysRoot+"</span>";
        TaxonSysHtml += "<br />";
    }
    
    // FatherSysList
    if (typeof MyTreeProperty.FatherSysList=="object")
    {
        if (typeof MyTreeProperty.FatherSysList.length=="number")
        {
            TaxonSysHtml += "<span class='ItemTitle'>当前系统的父系统数目：</span>";
            TaxonSysHtml += "<span class='ItemSmallLable'>"+MyTreeProperty.FatherSysList.length+"</span>";
            TaxonSysHtml += "<br />";
            if (MyTreeProperty.FatherSysList.length>0)
            {
                TaxonSysHtml += "<div style='width:80%;' id='FatherList'>";
                TaxonSysHtml += "<span class='SpanBtn' onclick=\"$('#FatherList > ul').toggle(); $('#FatherList > span').text($('#FatherList > span').text()=='-'?'+ 详细内容...':'-');\">+ 详细内容...</span>";
                TaxonSysHtml += "<ul style='display:none;'>";
                $.each(MyTreeProperty.FatherSysList, function(i,nameid){
                    if (typeof nameid=="object")
                    {
                        if ((typeof nameid.Id=="string")&&(typeof nameid.Name=="string"))
                        {
                            TaxonSysHtml += "<li><a href='/Taxon/ShowTaxonSystem.aspx?sysid="+nameid.Id+"'>"+nameid.Name+"</a></li>";
                        }
                    }
                });
                TaxonSysHtml += "</ul></div>";
            }                     
        }
    }    
    
    //alert(typeof MyTreeProperty.ChildSysList);
    if (typeof MyTreeProperty.ChildSysList=="object")
    {
        //alert(typeof MyTreeProperty.ChildSysList.length);
        if (typeof MyTreeProperty.ChildSysList.length=="number")
        {
            TaxonSysHtml += "<span class='ItemTitle'>当前系统的子系统数目：</span>";
            TaxonSysHtml += "<span class='ItemSmallLable'>"+MyTreeProperty.ChildSysList.length+"</span>";
            TaxonSysHtml += "<br />";
            if (MyTreeProperty.ChildSysList.length>0)
            {
                TaxonSysHtml += "<div style='width:80%;' id='ChildList'>";
                TaxonSysHtml += "<span class='SpanBtn' onclick=\"$('#ChildList > ul').toggle(); $('#ChildList > span').text($('#ChildList > span').text()=='-'?'+ 详细内容...':'-');\">+ 详细内容...</span>";
                TaxonSysHtml += "<ul style='display:none;'>";
                $.each(MyTreeProperty.ChildSysList, function(i,nameid){
                    if (typeof nameid=="object")
                    {
                        if ((typeof nameid.Id=="string")&&(typeof nameid.Name=="string"))
                        {
                            TaxonSysHtml += "<li><a href='/Taxon/ShowTaxonSystem.aspx?sysid="+nameid.Id+"'>"+nameid.Name+"</a></li>";
                        }
                    }
                });
                TaxonSysHtml += "</ul></div>";
            }
        }
    }
    //alert(typeof MyTreeProperty.BrotherSysList);
    if (typeof MyTreeProperty.BrotherSysList=="object")
    {
        if (typeof MyTreeProperty.BrotherSysList.length=="number")
        {
            TaxonSysHtml += "<span class='ItemTitle'>父范畴下系统数目：</span>";
            TaxonSysHtml += "<span class='ItemSmallLable'>"+MyTreeProperty.BrotherSysList.length+"</span>";
            TaxonSysHtml += "<br />";
            
            if (MyTreeProperty.BrotherSysList.length>0)
            {
                TaxonSysHtml += "<div style='width:80%;' id='BrotherSysList'>";
                TaxonSysHtml += "<span class='SpanBtn' onclick=\"$('#BrotherSysList > ul').toggle(); $('#BrotherSysList > span').text($('#BrotherSysList > span').text()=='-'?'+ 详细内容...':'-');\">+ 详细内容...</span>";
                TaxonSysHtml += "<ul style='display:none;'>";
                $.each(MyTreeProperty.BrotherSysList, function(i,nameid){
                    if (typeof nameid=="object")
                    {
                        if ((typeof nameid.Id=="string")&&(typeof nameid.Name=="string"))
                        {
                            TaxonSysHtml += "<li><a href='/Taxon/ShowTaxonSystem.aspx?sysid="+nameid.Id+"'>"+nameid.Name+"</a></li>";
                        }
                    }
                });
                TaxonSysHtml += "</ul></div>";
            }
        }
    }
    
    if (typeof MyTreeProperty.SysFullPath=="object")
    {
        if (typeof MyTreeProperty.SysFullPath.length=="number")
        {
            TaxonSysHtml += "<span class='ItemTitle'>分类系统层次关系：</span>";
            
            var LayersStr = "";
            if (MyTreeProperty.SysFullPath.length>0)
            {
                for(var iPath=MyTreeProperty.SysFullPath.length-1;iPath>-1; iPath--)
                {
                    var path=MyTreeProperty.SysFullPath[iPath];
                    TaxonSysHtml += "<br />"+LayersStr;
                    TaxonSysHtml += "<span class='ItemSmallLable'><a href='/Taxon/ShowTaxonSystem.aspx?sysid="+path.SysId+"&rootid="+path.NodeId+"'>"+path.SysName+"->"+ path.NodeContentName+"</a></span>";
                    if (LayersStr=="") 
                      LayersStr = "&nbsp;&nbsp;└";
                    else
                      LayersStr = "&nbsp;"+LayersStr;                         
                }
            }            
        }
    }

    
    $("#SysProperty").html(TaxonSysHtml);
}
