
<!--
/* $Id  game_webservice_category_Tree.js  v 0.1  2008-8-21 9:34  sllu Exp$
 *
 * JS解析生成的数组,递归显示出来 
 *
 * Author: sllu<sllu@sohu-inc.com>
 *
 * last-Modified:
 *
 * Copyright 2008 game.sohu.com
 * All rights reserved
 */

var theFristLevelTree="";

var theSecondLevelTree="";

var theTreeTemp = "";

var cgs = "";

var contentTree="";

var idsTree = "";

//得到类型的数组对象
function getArray(id) 
{
	if(id==null) return null;
	for(t=0;t<theTreeArray.length;t++)
	{
		if(theTreeArray[t][0]==id)	{return theTreeArray[t];}
	}
	return null;
}

//读取某类型所对应该的父类型名称
function getParentTree(id) 
{	
	theA = new Array();	
	theA = getArray(id);
	while(theA!=null )
	{
		if(theA[4]!=-1) {
			if(contentTree!=""){ contentTree=theA[1]+"> "+contentTree; } else {contentTree=theA[1];}
		}
		if(id!=theA[0]){if(idsTree!="" ){idsTree = idsTree+","+theA[0];} else {idsTree=theA[0];}}
		
		theA = getArray(theA[3]);
	}
}

function getFirstLevelId(id) {
	theA = new Array();	
	theA = getArray(id);
	while(theA!=null )
	{
		if(theA[4]==1){return theA[0];}
		theA = getArray(theA[3]);
	}
	return null;
}

//非menu.jsp页面请求过来的
function buildFristLevelTreeOther() 
{
	for(ii=0;ii<theTreeArray.length; ii++ )
	{
		if(theTreeArray[ii][4]==1)
		{
			cgs +="-"+theTreeArray[ii][0];
		}
	}
	//alert("cgs="+cgs);
	for(ii=0;ii<theTreeArray.length;ii++ )
	{
		if(theTreeArray[ii][4]==1)
		{
			theFristLevelTree+='<tr><td><img src="images/mykefu_03.jpg" width="191" height="10"></td></tr>';
			theFristLevelTree+='<tr><td id="'+theTreeArray[ii][0]+'"  class="mykefu">&nbsp;&nbsp;·<a  onClick="JavaScript:document.location=\'menu.jsp?id='+theTreeArray[ii][0]+'\'" style="cursor:hand">'+theTreeArray[ii][1]+'</a></td></tr>';	
		}
	}
}

//生成第一层类型
function buildFristLevelTree() 
{
	
	for(ii=0;ii<theTreeArray.length; ii++ )
	{
		if(theTreeArray[ii][4]==1)
		{
			cgs +="-"+theTreeArray[ii][0];
		}
	}
	for(ii=0;ii<theTreeArray.length;ii++ )
	{
		if(theTreeArray[ii][4]==1)
		{	
			theFristLevelTree+='<tr><td><img src="images/mykefu_03.jpg" width="191" height="10"></td></tr>';
			theFristLevelTree+='<tr><td id="'+theTreeArray[ii][0]+'"  class="mykefu"><span class="mykefu2">&nbsp;&nbsp;·<a  onClick="selectCg('+theTreeArray[ii][0]+')" style="cursor:hand">'+theTreeArray[ii][1]+'</a></span></td></tr>';	
			buildSecondLevelTree(theTreeArray[ii][0]);
		}
	}
}

//选择第一层类型
function selectCg(cg_id) 
{
	arrayCg = new Array();
	arrayCg = cgs.split("-");
	for(i=0;i<arrayCg.length;i++)
	{
		if(arrayCg[i]!="")
		{
			document.getElementById(arrayCg[i]).className="mykefu";	
			document.getElementById("tab_"+arrayCg[i]).style.display="none";
		} else
			continue;
	}
	document.getElementById(cg_id).className="mykefuSelect";
	document.getElementById("tab_"+cg_id).style.display="";
}

function selectFirst(cg_id) 
{
	arrayCg = new Array();
	arrayCg = cgs.split("-");
	for(i=0;i<arrayCg.length;i++)
	{
		if(arrayCg[i]!="")
		{
			document.getElementById(arrayCg[i]).className="mykefu";	
		} else
			continue;
	}
	document.getElementById(cg_id).className="mykefuSelect";
}

//生成第二层类型
function buildSecondLevelTree(parent_id)
{
	var num=0;
	for(m=0;m<theTreeArray.length;m++)
	{
		if(theTreeArray[m][4]==2 && theTreeArray[m][3]==parent_id &&  isHavaSon_(theTreeArray[m][0]))
		{
			num = num+1;
		}
	}
	theSecondLevelTree+='<table id="tab_'+parent_id+'" style="display:none"><tr>';
	
	if(num>0) {
		if(num>2)//二级菜单多于二个
		{
			var index=1;
			for(j=0;j<theTreeArray.length;j++)
			{
				if(theTreeArray[j][4]==2 && theTreeArray[j][3]==parent_id && isHavaSon_(theTreeArray[j][0]))
				{	
					theTreeTemp = "";
					buildTree(theTreeArray[j][0],0);
					theSecondLevelTree+='<td valign="top"><table width="342" border="0" cellspacing="0" cellpadding="0" class="mykefuContent" ><tr>'
	            	+'<td height="40" background="http://i8.itc.cn/20080819/38e_a20b7407_4b74_49a3_a7bc_540df6ba3123_0.jpg">&nbsp;&nbsp;&nbsp;<strong class="kkn">&nbsp;'+theTreeArray[j][1]+'</strong></td></tr>'
	          		+'<tr><td background="http://i9.itc.cn/20080819/38e_a20b7407_4b74_49a3_a7bc_540df6ba3123_1.jpg" height="100" valign="top">';
	            	theSecondLevelTree = theSecondLevelTree + theTreeTemp; 
	           		theSecondLevelTree+='</td></tr>'
	          		+'<tr><td><img src="http://i8.itc.cn/20080819/38e_a20b7407_4b74_49a3_a7bc_540df6ba3123_2.jpg" width="342" height="10"></td></tr></table></td>';	
					if(index%2==0 && index<num) 
					{
						theSecondLevelTree +='</tr><tr>';
					}
					index++;
				}	
			}	
		} else //二级菜单等于二个或一个
		{
			var index2=1;
			for(n=0;n<theTreeArray.length;n++)
			{
				if(theTreeArray[n][4]==2 && theTreeArray[n][3]==parent_id && isHavaSon_(theTreeArray[n][0]))
				{
					theTreeTemp = "";
					buildTree(theTreeArray[n][0],0);
					theSecondLevelTree+='<td valign="top"><table width="200" border="0" cellspacing="0" cellpadding="0" class="mykefuContent"><tr>'
	            	+'<td height="44" background="images/in_10.jpg">&nbsp;&nbsp;&nbsp;<strong class="kkn">&nbsp;'+theTreeArray[n][1]+'</strong></td></tr>'
	          		+'<tr><td background="images/in_08.jpg">'
					theSecondLevelTree = theSecondLevelTree + theTreeTemp; 
	           		theSecondLevelTree+='</td></tr>'
	           		+'<tr><td><img src="images/in_09.jpg" width="712" height="10"></td></tr></table></td>';
	           		if(index2=1 && num>1)
	           		{
	           			theSecondLevelTree+='</tr><tr>';
	           		}
	           		index2++;
				}
			}
		}
	}
	theSecondLevelTree+='</tr></table>';
}

//是否是父节点的最后一个子节点
function isLastSon_( idx )
{
	if ( idx == theTreeArray.length - 1)
		return true;
	else if (theTreeArray[idx+1][3] == theTreeArray[idx][3])
		return false;
	else
		return true;		
}

//是否有子节点
function isHavaSon_(parent_id)
{
	for(o=0;o<theTreeArray.length;o++)
	{
		if(parent_id == theTreeArray[o][3])
			return true;
	}
	return false;
}

//点击伸展图标伸缩树形图
function switchSubTree(theSwitcher)
{
	if(theSwitcher.parentNode.parentNode.nextSibling.style.display=="none")
	{
		theSwitcher.parentNode.parentNode.nextSibling.style.display="";
		
		if(theSwitcher.src.indexOf('cross')!='-1') theSwitcher.src="images/treecross_sonopen.gif";
		else theSwitcher.src="images/treeend_sonopen.gif";
	}
	else
	{
		theSwitcher.parentNode.parentNode.nextSibling.style.display="none";

		if(theSwitcher.src.indexOf('cross')!="-1") theSwitcher.src="images/treecross_sonclose.gif";
		else theSwitcher.src="images/treeend_sonclose.gif";
	}
}

//生成第三层树
function  buildTree(theFatherId,theLayer)
{
	var i;
	var isLast = false;
	var openLayer = 5; //若递归层达到5层以上则隐藏
	var isHavaSon = false;
	var isLastSon = false;
	for(i=0;i<theTreeArray.length; i++ )
	{
		
		if(theTreeArray[i][3]==theFatherId && theTreeArray[i][4]==0) //为三级以上的菜单显示
		{
			isHavaSon = isHavaSon_(theTreeArray[i][0]);
			isLastSon = isLastSon_(i);
			
			theTreeTemp+='	<table border="0" cellspacing="0" cellpadding="0" class="mykefuContent">';
			theTreeTemp+='        <tr> ';
			if(isHavaSon) //如果有子节点
				{
					if(isLastSon) 
					{ //是最后一个子节点
						isLast = true;
						if(theLayer>openLayer) theTreeTemp+='          <td><img src="images/treeend_sonclose.gif" onClick="switchSubTree(this)" style="cursor:hand"></td>';
						else theTreeTemp+='          <td><img src="images/treeend_sonopen.gif" onClick="switchSubTree(this)"  style="cursor:hand"></td>';
					} 
					else 
					{//不是最后一个子节点
						if(theLayer>openLayer) theTreeTemp+='          <td><img src="images/treecross_sonclose.gif" onClick="switchSubTree(this)" style="cursor:hand"></td>';
						else theTreeTemp+='          <td><img src="images/treecross_sonopen.gif" onClick="switchSubTree(this)"></td>';
					}		
				}
				else//如果没有子节点
				{	
					if(isLastSon) 
					{
						isLast = true;
						theTreeTemp+='          <td><img src="images/treeend_noson.gif" id="tree_switcher"></td>'
					}
					 else 
					 {
						theTreeTemp+='          <td><img src="images/treecross_noson.gif" id="tree_switcher"></td>'
					}
						;
				}

			theTreeTemp+='          <td>';


			/*显示文字*/
			theTreeTemp+='            <table border="0" cellspacing="0" cellpadding="0" class="kkn5">';
			theTreeTemp+='              <tr> ';
			
		//	if(isHavaSon)//如果有子节点
		//	{
		//		theTreeTemp+='	<td>'+theTreeArray[i][1]+'</td>';
		//	}
		//	else
		//	{
				theTreeTemp+='	<td><a href="issueList.jsp?id='+theTreeArray[i][0]+'&submit='+theTreeArray[i][2]+'&idParent='+getFirstLevelId(theTreeArray[i][0])+'&p='+theTreeArray[i][7]+'&v='+theTreeArray[i][5]+'&t='+theTreeArray[i][6]+'" >'+theTreeArray[i][1]+'</a></td>';
		//	}
				
			theTreeTemp+='			</td>';
			theTreeTemp+='              </tr>';
			theTreeTemp+='            </table>';
			/*/显示文字*/
			
			
			theTreeTemp+='          </td>';
			theTreeTemp+='        </tr>';
			
			//子树
			if(theLayer>openLayer) theTreeTemp+='        <tr id="tree_subtree" style="display:none"> ';
			else  theTreeTemp+='        <tr id="tree_subtree" style="display:"> ';
			if(isLastSon)
			{
				isLast = true;
				theTreeTemp+='          <td></td>';
			}
			else
			{
				theTreeTemp+='          <td background="images/treeline.gif"></td>';
			}
			theTreeTemp+='          <td>';

			theLayer++;
			if (isHavaSon)
				buildTree(theTreeArray[i][0],theLayer);
			theTreeTemp+='		  </td>';
			theTreeTemp+='        </tr>';
			theTreeTemp+='      </table>';
			
			if (isLast) continue;

		}
		
	}
}