// JavaScript Document
//多级下拉框选择代码

//默认项
var selecttype		= 1; 					//分两种类型，一种是如001001001:类别名称，另一种为一级|二级|三级:类别名称，系统以数字与字母结构为区别
var selectsize		= 0; 					//菜单/列表(大于0即为列表)
var multiple		= false; 				//是否多选 
var selectName		= ""; 					//项目名称
var selectNum		= 1;					//数量
var selectObj		= "";					//数据数组名字
var selected		= "";					//修改时传入数据
var inceptval		= "";					//起始值
var inputName		= "";					//传出参数名称
var defaulttxt		= "选择项目";			//默认名称
var defaultval		= "";					//默认select值
var className		= "";					//样式名称
var innerDiv		= "";					//写入到

function defaulttxtStr(txt,Num){

	var txtArr	= txt.split("|");
	
	var dText 	= "";
	
	if(txtArr[Num]){dText = txtArr[Num];}else{dText = txtArr[0]};
	
	return dText;

}

//value,编号

function locationStr(val,Num,selecttype,selectName,selectNum,inceptval,selectObj,selected,defaulttxt,defaultval,inputName){
	
	seldisplay(Num,selectNum,selectName);
	
	if(document.getElementById(selectName + Num)){
	
	document.getElementById(selectName + Num).options[document.getElementById(selectName + Num).length] = new Option(defaulttxtStr(defaulttxt,Num), defaultval);
	
	var vi		= 0;
	var val2	= "";
	var val3	= "";
	var val4	= "";
	
	if (Num == 0 || val.length > 0){
		
		for(i=0;i<selectObj.length;i++){
			
			if(!selecttype){
				
				if(selectObj[i][1] == val.split(":")[0]){
				
				document.getElementById(selectName + Num).options[document.getElementById(selectName + Num).length] = new Option(selectObj[i][0], selectObj[i][2]);
				
				vi = vi + 1;
				
				}
			
			}else{
				
				val2Arr	= val.split("|");
				
				if(val2Arr.length > 0){
					
					val2	= val2Arr[val2Arr.length-1].split(":")[0]
				//alert(val2);
				}				
				
				val3Arr	= selectObj[i][1].split("|");
				
				if(val3Arr.length > 0){
					
					val3	= val3Arr[val3Arr.length-1].split(":")[0]
				
				}
				
				if(val3 == val2){
				
				document.getElementById(selectName + Num).options[document.getElementById(selectName + Num).length] = new Option(selectObj[i][0], selectObj[i][1] + '|' + selectObj[i][2] + ':' + selectObj[i][0]);
				
				vi = vi + 1;
				
				}
			
			}
		
		}
	
	}
	
	if(vi==0){document.getElementById(selectName + Num).style.display = 'none';}
	
	}
	
	if(!inputName){inputName = selectName;}
	
	if(!val && Num > 1){
		
		var se	= document.getElementById(selectName + (Num - 4));
		
		for(var s = 0; s < se.length; s++){
			
			if(se.options[s].selected == true){
			
			val	= se.options[s].value;
			
			s	= se.length;
			
			}
		
		}

	}
	
	if(!val)val = inceptval;
	
	//alert(val);
	
	document.getElementById(inputName).value = val;
	
}


///项目隐藏函数/大于Num
function seldisplay(Num,selectNum,selectName){
	
	//大于该数的隐藏
	for(i=Num;i<selectNum;i++){
		
		document.getElementById(selectName + i).length = 0;
		
		if(i==Num){
		
		document.getElementById(selectName + i).style.display = '';
		
		}else{
		
		document.getElementById(selectName + i).style.display = 'none';
		
		}
		
	}

}

//多级列表js代码
//selects
function selects(selecttype, selectsize, multiple, selectName, selectNum, selectObj, ObjName, selected, inceptval, inputName, defaulttxt, defaultval, className, innerDiv, funName){
	
	//设置检查
	if(!selectName){alert("请设置项目名称!");return false;}
	if(!selectObj){alert("请设置数据对象!");return false;}
	if(!ObjName){alert("请设置数据对象名!");return false;}
	if(!inputName){inputName = selectName;}
	if(!selected){selected = inceptval;}
	if(!funName){funName = "";}else{funName = funName + "();"}
	if(!multiple){multiple = "";}else{multiple = "multiple";}
	
	var selBody = "";
	
	for(i=0;i<selectNum;i++){
	
		if(i == 0){
		
		selBody	+= "<select size=\""+ selectsize +"\" "+ multiple +" name=\""+ selectName + i +"\"  id=\""+ selectName + i +"\" onChange=\"locationStr(getoptions(this),"+ (i+1) +","+ selecttype +",'"+ selectName +"',"+ selectNum +",'"+ inceptval +"',"+ ObjName +",'"+ selected +"','"+ defaulttxt +"','"+ defaultval +"','"+ inputName +"');"+ funName +"\" class=\""+ className +"\"></select>"
		
		}else{
		
		selBody	+= "<select size=\""+ selectsize +"\" "+ multiple +" name=\""+ selectName + i +"\" id=\""+ selectName + i +"\" onChange=\"locationStr(getoptions(this),"+ (i+1) +","+ selecttype +",'"+ selectName +"',"+ selectNum +",'"+ inceptval +"',"+ ObjName +",'"+ selected +"','"+ defaulttxt +"','"+ defaultval +"','"+ inputName +"');"+ funName +"\" style=\"display:none;\" class=\""+ className +"\"></select>"
		
		}
	
	}

		selBody	+= ("<input name=\""+ inputName +"\" id=\""+ inputName +"\" type=\"hidden\" value=\""+ selected +"\">")
		
		if(innerDiv){
		
		if(document.getElementById(innerDiv)) document.getElementById(innerDiv).innerHTML = selBody;
			
		}else{
			
		document.write(selBody)
		//alert(selBody);
		}
		
		
		
	///////////////////////////////////////
	
	//传入数据处理
	//分两种类型，一种是如001001001:类别名称，另一种为一级|二级|三级:类别名称，系统以数字与字母结构为区别
	
	var sed		= selected.split(":")[0];
	
	var eds		= "";
	
	var ptype;
	
	var seArr	= selected.split("$$");
	
	var selist	= "|";
	
	for(var i = 0;i < seArr.length;i++){
		
		if(seArr[i]){
		
		var sen	 = seArr[i].split(":")[0];
		
		if(sen){selist	+= sen + "|";}
		
		}
		
	}
	
	if(!selecttype){
		
		for(s=1;s<=(sed.length/3);s++){if(inceptval.indexOf(sed.substring(0,s*3)) != 0){eds += sed.substring(0,s*3) + "|";}}
	
		var edArr = eds.split("|");
		
	}else{
	
		if(selected)selected = selected + "|";var edArr = selected.split("|");ptype = "|";
	
	}
	
	selist	= selist + eds;
	
	//alert(selist);
	
	var Pstr	= inceptval;
	
	for(v=0;v<edArr.length;v++){
		
		var se	= document.getElementById(selectName + v);
		
		if(se)se.options[se.length] = new Option(defaulttxtStr(defaulttxt,v), defaultval);
		
		var pv = 0;
		
		for(i=0;i<selectObj.length;i++){
			
			pstrx	= selectObj[i][1];
			
			if(ptype == "|"){pstrxArr = pstrx.split("|");if(pstrxArr.length > 0){pstrx	= pstrxArr[pstrxArr.length - 1];}}
			
			if(pstrx.split(":")[0] == Pstr.split(":")[0]){
				
				if(!selecttype || !selectObj[i][1]){
			
				if(se)se.options[se.length] = new Option(selectObj[i][0], selectObj[i][2]  + ':' + selectObj[i][3]);
				
				}else{
				
				if(se)se.options[se.length] = new Option(selectObj[i][0], selectObj[i][1] + '|' + selectObj[i][2]  + ':' + selectObj[i][0]);
					
				}
				
				pv = pv + 1;
				
				if(selist.indexOf("|" + selectObj[i][2] + "|") > -1){
				
				if(se)se.options[se.length - 1].selected = true;
									
				}
				
			}
		
		}
		
		//alert(pv);
		
		if(se && pv)se.style.display = '';
			
		Pstr	= edArr[v];
		
	}
	
}

//复选时，获所有选中
function getoptions(_this){
	
	lens	= _this.options.length;
	//alert(lens);
	if(lens > 1){
	
		for(var i = 0;i < lens; i ++){
		
			if(_this.options[i].selected == true){
				
				if(!str){
				
				var str	= _this.options[i].value;
				
				}else{
					
				str	+= "$$" + _this.options[i].value;
				
				}
			
			}
		
		}
	
	}else{
		
	var str	= _this.options[_this.selectedIndex].value;
	
	}
	
	//alert(str);
	

	return str;
}

