//????
//??select???
function ld_clearList(ctrl){
	if (document.all)	{
		for(;ctrl.options.length>0;)
			ctrl.options.remove(ctrl.options.length-1);
	}	else	{
		for(;ctrl.options.length>0;)
			ctrl.options[ctrl.options.length-1] = null;
	}
}
//?????
function ld_select(fld1,value1){
	var opsArr = fld1.options;
	for(var i=0;i<opsArr.length;i++){
		if(opsArr[i].value == value1){
			opsArr[i].selected = true;
			return;
		}
	}
}

//?????,treeDom?xmlDom?
//??????
function ld_fillFirst(treeDom,fld1){
	
	var rootNode = treeDom.documentElement;	
	//alert(rootNode.nodeName);
	//????
	ld_fill(rootNode,fld1);
}
//fill first?????????(??)(??????)
function ld_fillFirst_3(treeDom,fld1,fld2,fld3){
	
	ld_fillFirst(treeDom,fld1);
	ld_chg1_3(treeDom,fld1,fld2,fld3);
}
function ld_fillFirst_2(treeDom,fld1,fld2){
	
	ld_fillFirst(treeDom,fld1);
	ld_chg1(treeDom,fld1,fld2);
}
//??list,??(?3???)
function ld_fillAllValue_3(treeDom,fld1,value1,fld2,value2,fld3,value3){
	ld_clearList(fld1);
	ld_fillFirst(treeDom,fld1);
	ld_select(fld1,value1);
	ld_chg1(treeDom,fld1,fld2);
	ld_select(fld2,value2);
	ld_chg2_3(treeDom,fld1,fld2,fld3);
	ld_select(fld3,value3);
}
//??list,??(?2???)
function ld_fillAllValue_2(treeDom,fld1,value1,fld2,value2){
	
	ld_fillFirst(treeDom,fld1);
	ld_select(fld1,value1);
	ld_chg1(treeDom,fld1,fld2);
	ld_select(fld2,value2);
	
}

//???chang??fld2???????(onchange ?2???)
function ld_chg1(treeDom,srcElement,fld2){
	ld_clearList(fld2);
	
	var t = srcElement.selectedIndex;
	if (t==-1) return;

	var srcValue = srcElement.options[srcElement.selectedIndex].value;
	ld_chg1ByValue(treeDom,srcValue,fld2);
}
//???chang??fld2,fld3???????(onchange ?3???)
function ld_chg1_3(treeDom,srcElement,fld2,fld3){
	ld_chg1(treeDom,srcElement,fld2);
	ld_chg2_3(treeDom,srcElement,fld2,fld3);
}
//???chang??fld3???????(onchange ?3???),????ld_chg2_3
function ld_chg2_3(treeDom,srcElement1,srcElement2,fld3){
	
	//ld_clearList(fld2);
	ld_clearList(fld3);
	
	var t = srcElement1.selectedIndex;
	if (t==-1) return;
	t = srcElement2.selectedIndex;
	if (t==-1) return;

	var srcValue1 = srcElement1.options[srcElement1.selectedIndex].value;
	var srcValue2 = srcElement2.options[srcElement2.selectedIndex].value;

    ld_chg2ByValue(treeDom,srcValue1,srcValue2,fld3);
}

function ld_chg1ByValue(treeDom,value1,fld2){
	
	var rootNode = treeDom.documentElement;	
	var srcValue = value1;
	var subNode = xml_firstChildNodeCode(rootNode,srcValue);

	//????
	ld_fill(subNode,fld2);
}



//???chang??fld3???????,treeDom?xmlDom?
function ld_chg2ByValue(treeDom,srcValue1,srcValue2,fld3){
    var rootNode = treeDom.documentElement;	
	var subNode1 = xml_firstChildNodeCode(rootNode,srcValue1);
	var subNode2 = xml_firstChildNodeCode(subNode1,srcValue2);

	//????
	ld_fill(subNode2,fld3);
}


//srcElement chang??fld2???????,treeDom?xmlDom?
function ld_fill(subNode,fld2){
	//alert("ld_fill");
	var nodeList = subNode.childNodes;
	//alert("ld_fill1");
	//don't clear
	//ld_clearList(fld2);
	var ctrl = fld2;
	var Opt;
	if (document.all)	{
		for (i=0; i<nodeList.length; i++)		{
			Opt = ctrl.document.createElement("OPTION");
			Opt.text = nodeList[i].getAttribute("name");
			Opt.value = nodeList[i].getAttribute("code");
			ctrl.options.add(Opt);
		}
	}else{
		for (i=0; i<nodeList.length; i++){
			Opt = new Option(nodeList[i].getAttribute("name"),nodeList[i].getAttribute("code"),false,false);
			ctrl.options[ctrl.options.length] = Opt;
		}
	}
}

var addressDom = null;