function drawSelect(obj,dicName){
	var argv=drawSelect.arguments;
	var argc=drawSelect.arguments.length;
	var mode=(argc>2)?argv[2]:0;
	var name=(argc>3)?argv[3]:"";
	var value=(argc>4)?argv[4]:"";
	var tips=(argc>5)?argv[5]:"";
	var prop=(argc>6)?argv[6]:"";

	var dic=eval(dicName);
	if(mode==1){value=getDicRoute(dic,value);mode=2;}

	var arrHtml=new Array(),strHtml="";
	var selDepth=0,strSelId=null,objValue=value,testNext=0,arrValue=value.split("|");
	var dicItem,intDepth,strTitle,strValue,strTheId,intLen=arrValue.length-2;

	for(var i=0;i<dic.length;i++){
		testNext=0;
		dicItem=dic[i].split(",");
		intDepth=dicItem[0];
		strTitle=dicItem[1];
		strValue=dicItem[2];
		strTheId=strValue.split("|")[selDepth+1];
		strSelId=arrValue[selDepth+1];
		if(selDepth==intDepth){
			if(arrHtml[selDepth]==null){
				arrHtml[selDepth]="<select name='prosclass' onChange=drawSelect(this.parentElement,\""+dicName+"\","+mode+",\""+name+"\",this.value,\""+tips+"\",\""+prop+"\") "+prop+">";
				if(!selDepth&&tips!="")arrHtml[0]+="<option value=\"\">"+tips+"</option>";
				if(selDepth>=intLen)testNext=1;
				objValue=strValue;
			}
			if(strSelId==strTheId&&selDepth<intLen){
				testNext=1;
				arrHtml[selDepth]+="<option value=\""+strValue+"\" selected>"+strTitle+"</option>";
				objValue=strValue;
			}else arrHtml[selDepth]+="<option value=\""+strValue+"\">"+strTitle+"</option>";
			if(testNext)selDepth++;
		}else if(selDepth>intDepth){
			while(selDepth>intDepth){
				if(arrHtml[selDepth]!=null)arrHtml[selDepth]+="</select>";
				selDepth--;
			};
			arrHtml[selDepth]+="<option value=\""+strValue+"\">"+strTitle+"</option>";
		}
	}
	while(selDepth>=0){
		if(arrHtml[selDepth]!=null)arrHtml[selDepth]+="</select>";
		selDepth--;
	};	

	for(i=0;i<arrHtml.length;i++){
		strHtml+=arrHtml[i];
	}
	if(mode==2)objValue=getDicTitle(dic,objValue);
	strHtml+="<input type=\"hidden\" value=\""+objValue+"\" name=\""+name+"\" id=\""+name+"\">";
	if(obj==null)document.write("<span>"+strHtml+"</span>");
	else obj.innerHTML=strHtml;
}
function route2top(route){
	return(route.substring(0,route.lastIndexOf("|")));
}
function getDicTitle(dic,route){
	var dicItem,title="";
	route=route2top(route);
	for(var i=dic.length-1;i>-1;i--){
		dicItem=dic[i].split(",");
		if(dicItem[2]==route+"|"){
			if(title!="")title=","+title;
			title=dicItem[1]+title;
			route=route2top(route);
			if(route2top(route)=="")return(title);
		}
	}
	return(title);
}
function getDicRoute(dic,title){
	var dicItem,route="",depth=0,isRoute=0;
	var arrTitle=title.split(",");
	var intDepth=arrTitle.length-1
	for(var i=0;i<dic.length;i++){
		dicItem=dic[i].split(",");
		if(dicItem[1]==arrTitle[depth]){
			isRoute=1;
			route=dicItem[2];
			if(depth==intDepth)return(route);
			depth++;
		}
	}
	if(isRoute)return(route);
	else return(title);
}
