function CityClass(ObjectId,Container,ArrValue,nHide,IsLocal,nMust,IsBr,ExtFun){
	if (typeof(Container)!="object"){alert("不存在容器，创建失败。");return null;}
	switch(ObjectId){
		case 1 : 
			var textOption	= Array("省级","区市级","县市级","乡镇级");
			var SelectName	= "City"
			try{var LocalDiv= DivLocalCity} catch(e){}
			
			break;
		case 2 : 
			var textOption	= Array("一级分类","二级分类","三级分类");
			var SelectName	= "Class"
			try{var LocalDiv= DivLocalClass} catch(e){}
			break;
	}
	//取得所在的Form对象
	var oForm = getForm(Container)
	if (oForm==null){alert("找不到上层表单Form");return null}

	var InputName	= "Init" + SelectName
	var SelCount	= textOption.length
	var Select		= new Array();
	var Input		= new Array();
	
	for (var i=1; i<=SelCount;i++){
		Select[i]				= document.createElement("<select name='"+ SelectName+String(i)+"'>");
		Input[i]				= document.createElement("<input name='" + InputName +String(i)+"'>");
		Select[i].id			= SelectName + String(i)
		Input[i].id				= InputName + String(i)
		Input[i].type			= "hidden"
		Input[i].NoPost			= "1"
		switch(ObjectId){
			case 2 : 
				Select[i].InfoTip	= textOption[i-1]+"必须选择。"
				break;
		}
		Select[i].options[0]	= new Option(textOption[i-1],0);
		Container.appendChild(Select[i])
		Container.appendChild(Input[i])

		Select[i] = eval("document." + oForm.name + "." + Select[i].name)
		Input[i]  = eval("document." + oForm.name + "." + Input[i].name)
		
		Select[i].onblur = function(){
			if (this.value>0) this.CheckPass=1; else this.CheckPass=0
			if (IsOkValue(nMust)){
				for(var i=nMust+1;i<=SelCount;i++) Select[i].CheckPass = 1
			}else{
				return true;	//没有这句，CompanyList.asp 的选择列表将出错
			}
			if (IsOkValue(Select[nMust].value)){
				Select[nMust].CheckPass = 1
				ShowTipText(SelectName,"选择正确。") 
				ChangeTipStyle(SelectName,3)
				setTimeout("HideTip('"+SelectName+"')",2000)
				return true;
			}else{
				Select[nMust].CheckPass = 0
				ChangeTipStyle(SelectName,2)
				switch(ObjectId){
					case 1 : 
						ShowTipText(SelectName,ArrayToStr(textOption,0,nMust-1,"、")+"必须选择。")
						break;
					case 2 : 
						ShowTipText(SelectName,Select[nMust].InfoTip)
						break;
				}
				return false;	
			}
		}
		Select[i].onchange = function(){
			var MyIndex = Number(this.id.replace(SelectName,""));
			var TmpInput = null
			for (var j=MyIndex+1;j<=SelCount;j++){
				TmpInput = eval("document." + oForm.name + "." + Input[j].name)
				TmpInput.value = 0;
				ClearSelect(j)
			}
			TmpInput = eval("document." + oForm.name + "." + Input[MyIndex].name)
			TmpInput.value = this.value;
			LoadSelect(MyIndex+1);
			if (ExtFun!=null){setTimeout(ExtFun,100)}
		}
		if(i>=nHide && nHide>0) Select[i].style.display = "none"
		if(IsBr){if(i<3) Container.appendChild(document.createElement("br"))}
	}

	
	
	//城市专用
	if (ObjectId==2){
		if(!IsOkValue(nMust)){
			try{
				ShowTipText(SelectName,"不选择默认为全国。") 
				ChangeTipStyle(SelectName,1)
				setTimeout("HideTip('"+SelectName+"')",5000)
			}catch(e){}
		}
	}

	//初始化类别搜索定位框
	try{HideObj(GetObj(LocalDiv))}catch(e){}
	if(IsLocal){
		var A	= document.createElement("a")
		Container.appendChild(A)
		A.setAttribute("href","Javascript:void(null)");
		objSpan	= document.createElement("span")
		objSpan.style.cssText = "font-size:14px; background-color:#0066FF;color:#FFFFFF; font-weight:bold; padding:2px;padding-bottom:0px; border:1px #47790B solid"
		objSpan.innerHTML = "搜"
		objSpan.onmouseout = function(){this.style.backgroundColor = "#0066FF";this.style.color = "#FFFFFF"}
		objSpan.onmouseover = function(){this.style.backgroundColor = "#FF3333";this.style.color = "#FFFF00"}
		A.appendChild(objSpan); 
		A.onclick = function(){
			try{objBB_Local.Show()}catch(e){}
			new DivMsgBox(LocalDiv,2,"","","","","",500,700,20,100).Show(null,true)
		}
	}
	
	//延时初始化CheckPass
	setTimeout(function(){
		if (IsOkValue(nMust)){	for (var i=nMust+1;i<=SelCount;i++) Select[i].CheckPass = 1}
	},500)
	
	//初始化各Selecct的初始值
	ResetSelect(ArrValue)
	
	//*************************类 方 法*********************
	this.get = function(n){return Select[n].value}
	this.set = function(ArrValue){ResetSelect(ArrValue)}	
	
	
	//*************************支持函数*********************
	//设置Select的值,并推动下一个Select的值
	function SetSelect(Index,Value){
		if (Value!="" && Value!=null && Value!=0 && Value!="0"){
			Select[Index].value	= Value
			Input[Index].value	= Value
		}
		setTimeout(function(){LoadSelect(Index+1)},100)
	}
	
	//载入Select列表
	function LoadSelect(Index){
		Index = Number(Index)
		if (Index<1 || Index>SelCount) return null
		if (Select[Index].style.display == "none")return null
		var GetUrlPage = "/Include/Asp/AjaxServer/Get"+SelectName+"Ajax.asp?Level="+Index
		if (Index>1) GetUrlPage += "&"+SelectName+"Id=" + Input[Index-1].value
		Ajax().get(GetUrlPage,function(RetString){
			var ArrRet2, ArrRet1 = GetArrRet(RetString,true,"|~|");
			for(var i=0;i<=ArrRet1.length-1;i++){
				ArrRet2 = ArrRet1[i].split("--");
				Select[Index].options[i+1] = new Option(ArrRet2[1].replace("　",""),ArrRet2[0]);
			}
			SetSelect(Index,Input[Index].value)}
		);
	}

	//清空Select列表
	function ClearSelect(Index){
		for (var i=Select[Index].options.length-1;i>0;i--){
			Select[Index].options.length--;
		}
		Select[Index].options[0].selected = true
	}
	
	//重置Select的初始化值
	function ResetSelect(ArrValue){
		var nStart = 0
		var ArrInitValue = ArrValue
		for(var i=1;i<=SelCount;i++){
			if (ArrInitValue[i-1]!=null){
				if (nStart==0) nStart = i
				Input[i].value = ArrInitValue[i-1]
			}
		}
		for (i=nStart;i<=SelCount;i++) ClearSelect(i)
		if (nStart>0) LoadSelect(nStart);
	}
	
	//是否合法的值
	function IsOkValue(n){if (n!="" && n!=null && n!=0 && n!="0") return true; else return false}	
}