



//var showtype=-1; //显示类型			  showtype  0 radio  1 checkbox 3 text
function changestatus(obj,id,showtype,relationArray){
    var status=false; //状态，如果为真，则相关链接打开，如果最后为false，则关闭
	
	//下拉框
	if(showtype==4){
		for(i=0; i<obj.options.length; i++){
			if(obj.options[i].value==obj.value)
				showObj(obj.value,relationArray);
			else
				hideObj(obj.options[i].value,relationArray)
		}
	}
	
	//判断该节点是否有关联，如果有关联，才进行相应循环
	if(showtype==0){
		obj= findObj(obj.name);
		//alert(obj.length);
		//该循环先把为选中的项的应该隐藏的隐藏，主要是用于两个单选按钮都把某项打开，如果只是一个循环
		//则有可能在选中该项是，由于先打开，后隐藏而被隐藏掉
		for(var i=0;i<obj.length;i++){
				
			//判断是否被选中，如果没有选中，如果有关联项，应该根据情况把关联项显示或隐藏
			if(!obj[i].checked){
				hideObj(obj[i].value,relationArray)
			}
		}
		for(var i=0;i<obj.length;i++){
			
			//判断是否被选中，如果没有选中，如果有关联项，应该根据情况把关联项显示或隐藏
			if(obj[i].checked){
				showObj(obj[i].value,relationArray);
			}
		}	
	}
	if(showtype==1){
		//是checkbox
		if(obj.checked){
			showObj(obj.value,relationArray);
		}else{
			hideObj(obj.value,relationArray);
		}
	}
	if(showtype==3){
		//alert(obj.value);
		//是text
		if(obj.value.length>0){
			 showObj(id,relationArray);
		}else{
		  hideObj(id,relationArray);
		}
	}
											  
//showtype  0 radio  1 checkbox 3 text	
}


//隐藏对象
function hideObj(id,relationArray){
	var relations=getrealtions(id,relationArray); //得到关联的项，如传入3，得到("3","11","0","1");	("3","12","0","1")
	for(var j=0;j<relations.length;j++){
		var status=0;//标记，如果有被选中的，则为1
		var realtiondata = getnodebyrealtion(relations[j][1],id,relationArray);	  //传入（11，3）得到和11关联的	("9","11","1","0")
		//alert("realtiondata:"+realtiondata+"relations[j][1]"+relations[j][1]+"j:"+j+"value:"+obj[i].value);
		for(var k=0;k<realtiondata.length;k++){
			//判断是checkbox还是radio，根据不同的情况，看是否应该隐藏	  ，如：传入9，1，0，查看是否有数据已经显示，如果有，status＝1，不能隐藏
			 status=checkstatus(realtiondata[k][0],realtiondata[k][2],realtiondata[k][3]);
			 if(status==1){
				break;
			 }
		}
		//一个都没有被选中
		var objs=findObj("div"+relations[j][1]);
		if(status==0){
			objs.style.display="none"
		}
	}
}



//显示对象
function showObj(id,relationArray){
	var relations=getrealtions(id,relationArray);
	//alert(relations);
	for(var j=0;j<relations.length;j++){
		var objs=findObj("div"+relations[j][1]);
		objs.style.display=""
	}
}



//根据id号，类型，父id号来进行判断是否被选中
function checkstatus(source,showtype,parentid){
	var obj;
	if(showtype==0){
		obj=findObj("r"+parentid);
		if(obj!=null){
			for(var i=0;i<obj.length;i++){
				//alert(obj[i].checked+"i:"+i);
				if(obj[i].checked){
					//alert(obj[i].value);
					if(obj[i].value==source){
						return 1;
					}else{
						return 0;	
					}
				  }
			}
		}
		
	}else if(showtype==1){
		obj=findObj("c"+source);
		if(obj!=null){
			if(obj.checked){
				return 1;
			}
		}
	}else if(showtype==3){
		obj=findObj("t"+source);
		if(obj!=null){
			if(obj.value.length>0){
				return 1;
			}
		}
	}
	return 0;
}


//通过关联项得到相应的节点	   如本例，传入11，3返回 9，在根据9活动相应的类型从而得到相应的状态，是否应该隐藏
function getnodebyrealtion(relationsource,source,relationArray){
    var relations=new Array();
	var index=0;
	//alert("relationArray[0][1]::"+relationArray[0][1]+"source:"+source);
	for(var i=0;i<relationArray.length;i++)
		{
			if(source!=	relationArray[i][0]&&relationsource==relationArray[i][1]){
				relations[index]= relationArray[i];
				index++;
			}
		}
	return relations;
}


//得到关联项
function getrealtions(source,relationArray){
    var relations=new Array();
	var index=0;
	//alert("relationArray[0][1]::"+relationArray[0][1]+"source:"+source);
	for(var i=0;i<relationArray.length;i++)
		{
			if(source==	relationArray[i][0]){
				relations[index]= relationArray[i];
				index++;
			}
		}
	return relations;
}



function findObj(objname)
{
	var obj = null;
	if (typeof(document.getElementByName) != "undefined") obj = document.getElementByName(objname);
	else if (typeof(document.all) != "undefined") obj = document.all[objname];
	return(obj);
}





/////////////////////////////others div control start


//常规的显示层
function showdiv(divnum){
  divnum.style.display='';
}


//常规的隐藏层
function hidediv(divnum){
  divnum.style.display='none';
}


//常规的层的当前状态
//层是否已经显示: 显示-true  隐藏-false
function isDivShowed(divnum) {
	var ret=false;
	if (divnum.style.display=='')
	{
		//showing
		ret=true;
		//alert("层的状态：【显示】");
	}
	else if (divnum.style.display=='none')
	{
		//hide
		ret=false;
		//alert("层的状态：【隐藏】");
	}
	return ret;
}


//2009-09-10 wangyx
function isHideRelateDivs(){
	if("function"==typeof(hideRelateDivs)){
		hideRelateDivs();
	}
}
if(document.all || window.attachEvent)
  window.attachEvent("onload", isHideRelateDivs);
else
  window.addEventListener("load", isHideRelateDivs, false);


/////////////////////////////others div control end  
