/*
由script初始設備項目
format:
1:中文
2:英文
3:中(英)
A1..3:加顯示細目名稱
format1:
1:隱藏第1欄
2:隱藏第1-2欄
3:隱藏第1-3欄
4:不可編輯第1欄
5:不可編輯第2欄
6:不可編輯第3欄
format2:
1:不折行
2:折行
*/

function initACode(typcode, layers, codval, dtlval, itmval, subitmval, codvar, dtlvar, itmvar, subitmvar, format, format1, format2) {
	
	var msg = "";
	var codelay = new Array();
	var codevar = new Array();
	var codeval = new Array();
	var codefuc = new Array();	
	var acodeary = "";
	var acodefuc = "";
	var acodename = "";
	var txttype = "";
	var acodetxt = "";
	var bHide = false;	
	var bNoEdit = false;		
	
	codelay[1] = "cod";
	codelay[2] = "dtl";
	codelay[3] = "itm";
	codelay[4] = "subitm";	
	codevar[1] = codvar;
	codevar[2] = dtlvar;
	codevar[3] = itmvar;
	codevar[4] = subitmvar;
	codeval[1] = codval;
	codeval[2] = dtlval;
	codeval[3] = itmval;
	codeval[4] = subitmval;	
	
	//codefuc[1] = "chgDtlList(this.form."+ codvar +",this.form."+ dtlvar +",this.form."+ itmvar +",this.form."+ subitmvar +")";
	//codefuc[2] = "chgItmList(this.form."+ codvar +",this.form."+ dtlvar +",this.form."+ itmvar +",this.form."+ subitmvar +")";
	//codefuc[3] = "chgSubItmList(this.form."+ codvar +",this.form."+ dtlvar +",this.form."+ itmvar +",this.form."+ subitmvar +")";

	codefuc[1] = "chgDtlList("+ codvar +","+ dtlvar +","+ itmvar +","+ subitmvar +")";
	codefuc[2] = "chgItmList("+ codvar +","+ dtlvar +","+ itmvar +","+ subitmvar +")";
	codefuc[3] = "chgSubItmList("+ codvar +","+ dtlvar +","+ itmvar +","+ subitmvar +")";	

	if (format.length > 1) txttype = typcode;
	for (var i = 1; i <= layers; i++) {			
		bHide = false;
		bNoEdit = false;
		acodefuc = "";
		acodeary = "";
		acodename = "";
		if (layers > i) acodefuc = " onChange = '"+ codefuc[i] +"'";						
		if (txttype != "") eval("acodetxt = codetxt[\""+ txttype + i +"\"] +\":\";");
		if (acodetxt == "undefined:") acodetxt = "";		
				
		if (i == 1 || (i > 1 && !(codeval[i] == "" && eval("codeval["+ (i-1) +"] == ''")))) {
			switch (i) {
				case 1:							
					if (CodList != null) acodeary = CodList;
					break;
				case 2:		
					if (CodList[codeval[1]] != null) acodeary = CodList[codeval[1]].dtl;
					break;
				case 3:				
					if (CodList[codeval[1]].dtl[codeval[2]] != null) acodeary = CodList[codeval[1]].dtl[codeval[2]].itm;
					break;				
				case 4:
					if (CodList[codeval[1]].dtl[codeval[2]].itm[codeval[3]] != null) acodeary = CodList[codeval[1]].dtl[codeval[2]].itm[codeval[3]].subitm;
					break;								
			}	
		}		
		
		switch (format1) {		
			case "1":				
			case "2":
			case "3":				
				if (i == 1) bHide = true
				if (format1 <= "3" && i == 2) bHide = true
				if (format1 == "3" && i == 3) bHide = true
				if (bHide) {					
					msg += "<input type=hidden name='"+ codevar[i] +"' value='"+ codeval[i] +"'>";
				}
				break;
			case "4":
			case "5":
			case "6":
				if (i == 1) bNoEdit = true
				if (format1 <= "6" && i == 2) bNoEdit = true
				if (format1 == "6" && i == 3) bNoEdit = true
				if (bNoEdit) {
					for (var j in acodeary) {			
						if (j == codeval[i]) {
							acodename = acodeary[j].name;
							break;
						}
					}									
					msg += acodetxt + acodename +"<input type=hidden name='"+ codevar[i] +"' value='"+ codeval[i] +"' >";
					if (i < 4) msg += "-";	
				}			
				break;
		}
		if (!bHide && !bNoEdit) {	
			msg += acodetxt +"<select name='"+ codevar[i] +"' "+ acodefuc +">";				

			if (i > 1 && codeval[i]	== "") {				
				if (eval("codeval["+ (i-1) +"] == ''")) {
					msg += "<option value='' >　　　</option>";	
					msg += "</select>";				
					continue;
				}
			}							
			
			for (var j in acodeary) {						
				//if (i == 2) alert(j +","+ acodeary[j].name);	
				ss = ((j == codeval[i])? "selected":"");			
				if (format.indexOf("1") != -1) {
					msg += "<option value='"+ j +"' "+ ss +">"+ acodeary[j].name +"</option>";					
				} else if (format.indexOf("2") != -1)
					msg += "<option value='"+ j +"' "+ ss +">"+ acodeary[j].ename +"</option>";
				else if (format.indexOf("3") != -1)
					msg += "<option value='"+ j +"' "+ ss +">"+ acodeary[j].name +"("+ acodeary[j].ename +")</option>";
			}
			msg += "</select>";
	
			if (format2 == "2" && i < layers) msg += "<br>";
		}
	}	
	//document.write("&lt;!--"+ msg +"--&gt;");
	//alert(msg);
								
	return msg;	
}

//$format1: 無作用, 保留做同initACode相同的功能
function initACode_NORELATION(typcode, layers, codval, dtlval, itmval, subitmval, codvar, dtlvar, itmvar, subitmvar, format, format1, format2) {
	
	var msg = "";
	var codelay = new Array();
	var codevar = new Array();
	var codeval = new Array();
	var codefuc = new Array();	
	var acodeary = "";
	var acodefuc = "";
	var acodename = "";
	var txttype = "";
	var acodetxt = "";
	var bHide = false;	
	var bNoEdit = false;		
	
	codelay[1] = "cod";
	codelay[2] = "dtl";
	codelay[3] = "itm";
	codelay[4] = "subitm";	
	codevar[1] = codvar;
	codevar[2] = dtlvar;
	codevar[3] = itmvar;
	codevar[4] = subitmvar;
	codeval[1] = codval;
	codeval[2] = dtlval;
	codeval[3] = itmval;
	codeval[4] = subitmval;	

	if (format.length > 1) txttype = typcode;	
	for (var i = 1; i <= layers; i++) {			
		acodefuc = "";
		acodeary = "";
		acodename = "";
		
		if (txttype != "") eval("acodetxt = codetxt[\""+ txttype + i +"\"] +\":\";");
		if (acodetxt == "undefined:") acodetxt = "";	
		acodeary = eval("CodList_"+ i);
		msg += acodetxt +"<select name='"+ codevar[i] +"' "+ acodefuc +">";			
		
		for (var j in acodeary) {						
			//if (i == 2) alert(j +","+ acodeary[j].name);	
			ss = ((j == codeval[i])? "selected":"");			
			if (format.indexOf("1") != -1) {
				msg += "<option value='"+ j +"' "+ ss +">"+ acodeary[j].name +"</option>";					
			} else if (format.indexOf("2") != -1)
				msg += "<option value='"+ j +"' "+ ss +">"+ acodeary[j].ename +"</option>";
			else if (format.indexOf("3") != -1)
				msg += "<option value='"+ j +"' "+ ss +">"+ acodeary[j].name +"("+ acodeary[j].ename +")</option>";
		}
		msg += "</select>";

		if (format2 == "2" && i < layers) msg += "<br>";
	
	}	
	//document.write("&lt;!--"+ msg +"--&gt;");
	//alert(msg);
								
	return msg;	
}
