
function xmlSplit(iXml,iTag){


ST = new String('<'+iTag+'>');
ET = new String('</'+iTag+'>');
S=iXml.indexOf(ST,0);

if(S<0){return false;}
E=iXml.indexOf(ET,S);
if(E<0){return false;}
S += ST.length;
return iXml.slice(S,E);

}

function loadcity(objC,cityString){

HC = new Number();
HX = new Number();

objC.length=0;
objC.options[0] =new Option('請選擇','');
HC = xmlSplit(cityString,'HC');
if(HC==false){return;}

	for(I=1;I<=HC;I++){
		CT_X = xmlSplit(cityString,'CT_'+I)
		if(CT_X!=false){
			N = xmlSplit(CT_X,'N');
			O = xmlSplit(CT_X,'O');
			if(N!=false && O!=false){objC.options[I] =new Option(N,O);}
		}
	}
}

function loadtown(){

	objC = this.parent.objC;
	objT = this.parent.objT;
	objZ = this.parent.objZ;
	cityString = this.parent.cityString;
			
	index = objC[objC.selectedIndex].value;
	
	zip = objZ.value;
	objT.length=0;
	selectindex=0;
	objT.options[0] =new Option('請選擇','');
	if(index==''){return;}
	
	HC = new Number();
	HX = new Number();
	
	TOWN = xmlSplit(cityString,'TO_'+index);
	if(TOWN==false){return;}
	
	HC = xmlSplit(TOWN,'C');
	if(HC==false){return;}

	for(I=1;I<=HC;I++){
		CT_X = xmlSplit(TOWN,I)
		if(CT_X!=false){
			N = xmlSplit(CT_X,'N');
			O = xmlSplit(CT_X,'Z');
			if(zip==O){selectindex=I;}
			if(N!=false && O!=false){objT.options[I] =new Option(N,O);}
		}
	}
	objT.selectedIndex = selectindex;
	if(objT.selectedIndex==0){objZ.value = '';}

	if (typeof(this.parent.objCT) == 'object'){
		objCT = this.parent.objCT;
		loadchr(objC,objT,objCT,objZ);
	}	
}


function loadzip(){

	objT = this.parent.objT;
	objZ = this.parent.objZ;	
	objC = this.parent.objC;	
	
	index = objT[objT.selectedIndex].value;
	objZ.value = index;
	if (typeof(this.parent.objCT) == 'object'){
		objCT = this.parent.objCT;
		loadchr(objC,objT,objCT,objZ);
	}
}

function loadchr(objC,objT,objCT,objZ){

	if(objZ.value==''){
		CT_value = new String('請先輸入或選擇郵遞區號');
		objCT.value = CT_value;
		objCT.size = CT_value.length*2;
		return;
	}
	
	ocs = objC.selectedIndex;
	ots = objT.selectedIndex;
	
	CN = objC[ocs].text;
	TN = objT[ots].text;
	ZN = objT[ots].value;
	
	CT_value = new String(CN + TN);
	ZN_value = new String(ZN);

	objCT.value = CT_value+ZN_value;
	objCT.size = CT_value.length*2+ZN_value.length;

}

function zip_onKeyup(){

	objZ = this.parent.objZ;
	objC = this.parent.objC;
	cityString = this.parent.cityString;
	
	HC = new Number();
	zip = new String(objZ.value);
	if (typeof(this.parent.objA) == 'object'){
		objA = this.parent.objA;
		if(zip.length>=3){objA.focus();}
		else{return;}
	}
	
	HC = xmlSplit(cityString,'Z2C_'+zip);
	if(HC==false){return;}
	
	objC.selectedIndex = HC;
	objC.onchange();

}


function zip_onBlur(){

objZ = this.parent.objZ;
objT = this.parent.objT;
objC = this.parent.objC;
cityString = this.parent.cityString;

zip=new String(objZ.value);
HC = xmlSplit(cityString,'Z2C_'+zip);

if(HC==false){
	objZ.value = objT[objT.selectedIndex].value;
	return;
}

}

function makeAddressOBJ(objC,objT,objZ,objA,cityString,objCT){

	this.objC = objC;
	this.objT = objT;
	this.objZ = objZ;
	this.objA = objA;
	this.cityString = cityString;
	this.objCT = objCT;
	
	this.objC.parent = this;
	this.objT.parent = this;
	this.objZ.parent = this;
	this.objA.parent = this;
	this.objCT.parent = this;

	this.loadtown = loadtown;
	this.loadzip = loadzip;
	this.zip_onKeyup = zip_onKeyup;
	this.zip_onBlur = zip_onBlur;
	
	
	this.objC.onchange = loadtown;	
	this.objT.onchange = loadzip;
	this.objZ.onblur = zip_onBlur;
	this.objZ.onkeyup = zip_onKeyup;
	
	loadcity(objC,cityString);
}
