//全域變數
var addressObject;

//Area物件, 紀錄郵遞區號
function areaObject(area, zipcode) {
	this.zipcode = zipcode;
	this.area = area;
	this.getZipcode = function() {
		return this.zipcode;
	};
	this.getArea = function() {
		return this.area;
	};
}

//City物件
function cityObject(cityName) {
	this.areaArray = new Array();
	this.cityName = cityName;
	this.getCityName = function() {
		return this.cityName;
	};
	this.addArea = function(area, zipcode) {
		this.areaArray[this.areaArray.length] = new areaObject(area, zipcode);
	};
}

function AddressObject() {
	this.cityArray = new Array;
	this.addCity = function(city) {
		this.cityArray[this.cityArray.length] = city;
	};
	this.getCity = function(cityName) {
		for(var i=0;i<this.cityArray.length;i++) {
			if(this.cityArray[i].getCityName() == cityName) {
				return this.cityArray[i];
			}
		}
	};
	this.buildCityList = function(cityObj) {
		cityObj.options[0] = new Option("請選擇", "");
		for(var i=0;i<this.cityArray.length;i++) {
			cityObj.options[i+1] = new Option(this.cityArray[i].getCityName(), this.cityArray[i].getCityName());
			//document.write("<option>"+this.cityArray[i].getCityName()+"</option>");
		}
	}	
	this.getCityList = function() {
		document.write("<option>請選擇縣市</option>");
		for(var i=0;i<this.cityArray.length;i++) {
			document.write("<option>"+this.cityArray[i].getCityName()+"</option>");
		}
	};
}

//初始化物件
function initAddressData() {
	addressObject = new AddressObject();
	
	tempObj = new cityObject("台北市");
		tempObj.addArea("中正區",100);
		tempObj.addArea("大同區",103);
		tempObj.addArea("中山區",104);
		tempObj.addArea("松山區",105);
		tempObj.addArea("大安區",106);
		tempObj.addArea("萬華區",108);
		tempObj.addArea("信義區",110);
		tempObj.addArea("士林區",111);
		tempObj.addArea("北投區",112);
		tempObj.addArea("內湖區",114);
		tempObj.addArea("南港區",115);
		tempObj.addArea("文山區",116);
	addressObject.addCity(tempObj);
	
	tempObj = new cityObject("基隆市");
		tempObj.addArea("仁愛區",200);
		tempObj.addArea("信義區",201);
		tempObj.addArea("中正區",202);
		tempObj.addArea("中山區",203);
		tempObj.addArea("安樂區",204);
		tempObj.addArea("暖暖區",205);
		tempObj.addArea("七堵區",206);
	addressObject.addCity(tempObj);
	tempObj = new cityObject("連江縣");
		tempObj.addArea("南竿鄉",209);
		tempObj.addArea("北竿鄉",210);
		tempObj.addArea("莒光鄉",211);
		tempObj.addArea("東引鄉",212);
	addressObject.addCity(tempObj);
	
	tempObj = new cityObject("台北縣");
		tempObj.addArea("萬里鄉",207);
		tempObj.addArea("金山鄉",208);
		tempObj.addArea("板橋市",220);
		tempObj.addArea("汐止市",221);
		tempObj.addArea("深坑鄉",222);
		tempObj.addArea("石碇鄉",223);
		tempObj.addArea("瑞芳鎮",224);
		tempObj.addArea("平溪鄉",226);
		tempObj.addArea("雙溪鄉",227);
		tempObj.addArea("貢寮鄉",228);
		tempObj.addArea("新店市",231);
		tempObj.addArea("坪林鄉",232);
		tempObj.addArea("烏來鄉",233);
		tempObj.addArea("永和市",234);
		tempObj.addArea("中和市",235);
		tempObj.addArea("土城市",236);
		tempObj.addArea("三峽鎮",237);
		tempObj.addArea("樹林市",238);
		tempObj.addArea("鶯歌鎮",239);
		tempObj.addArea("三重市",241);
		tempObj.addArea("新莊市",242);
		tempObj.addArea("泰山鄉",243);
		tempObj.addArea("林口鄉",244);
		tempObj.addArea("蘆洲市",247);
		tempObj.addArea("五股鄉",248);
		tempObj.addArea("八里鄉",249);
		tempObj.addArea("淡水鎮",251);
		tempObj.addArea("三芝鄉",252);
		tempObj.addArea("石門鄉",253);
	addressObject.addCity(tempObj);
	
	tempObj = new cityObject("宜蘭縣");
		tempObj.addArea("宜蘭市",260);
		tempObj.addArea("頭城鎮",261);
		tempObj.addArea("礁溪鄉",262);
		tempObj.addArea("壯圍鄉",263);
		tempObj.addArea("員山鄉",264);
		tempObj.addArea("羅東鎮",265);
		tempObj.addArea("三星鄉",266);
		tempObj.addArea("大同鄉",267);
		tempObj.addArea("五結鄉",268);
		tempObj.addArea("冬山鄉",269);
		tempObj.addArea("蘇澳鎮",270);
		tempObj.addArea("南澳鄉",272);
	addressObject.addCity(tempObj);
	
	tempObj = new cityObject("新竹市");
		tempObj.addArea("新竹市",300);
	addressObject.addCity(tempObj);
	
	tempObj = new cityObject("新竹縣");
		tempObj.addArea("竹北市",302);
		tempObj.addArea("湖口鄉",303);
		tempObj.addArea("新豐鄉",304);
		tempObj.addArea("新埔鎮",305);
		tempObj.addArea("關西鎮",306);
		tempObj.addArea("芎林鄉",307);
		tempObj.addArea("寶山鄉",308);
		tempObj.addArea("竹東鎮",310);
		tempObj.addArea("五峰鄉",311);
		tempObj.addArea("橫山鄉",312);
		tempObj.addArea("尖石鄉",313);
		tempObj.addArea("北埔鄉",314);
		tempObj.addArea("峨眉鄉",315);
	addressObject.addCity(tempObj);
	
	tempObj = new cityObject("桃園縣");
		tempObj.addArea("中壢市",320);
		tempObj.addArea("平鎮市",324);
		tempObj.addArea("龍潭鄉",325);
		tempObj.addArea("楊梅鎮",326);
		tempObj.addArea("新屋鄉",327);
		tempObj.addArea("觀音鄉",328);
		tempObj.addArea("桃園市",330);
		tempObj.addArea("龜山鄉",333);
		tempObj.addArea("八德市",334);
		tempObj.addArea("大溪鎮",335);
		tempObj.addArea("復興鄉",336);
		tempObj.addArea("大園鄉",337);
		tempObj.addArea("蘆竹鄉",338);
	addressObject.addCity(tempObj);
	
	tempObj = new cityObject("苗栗縣");
		tempObj.addArea("竹南鎮",350);
		tempObj.addArea("頭份鎮",351);
		tempObj.addArea("三灣鄉",352);
		tempObj.addArea("南莊鄉",353);
		tempObj.addArea("獅潭鄉",354);
		tempObj.addArea("後龍鎮",356);
		tempObj.addArea("通霄鎮",357);
		tempObj.addArea("苑裡鎮",358);
		tempObj.addArea("苗栗市",360);
		tempObj.addArea("造橋鄉",361);
		tempObj.addArea("頭屋鄉",362);
		tempObj.addArea("公館鄉",363);
		tempObj.addArea("大湖鄉",364);
		tempObj.addArea("泰安鄉",365);
		tempObj.addArea("銅鑼鄉",366);
		tempObj.addArea("三義鄉",367);
		tempObj.addArea("西湖鄉",368);
		tempObj.addArea("卓蘭鎮",369);
	addressObject.addCity(tempObj);
	
	tempObj = new cityObject("台中市");
		tempObj.addArea("中區",400);
		tempObj.addArea("東區",401);
		tempObj.addArea("南區",402);
		tempObj.addArea("西區",403);
		tempObj.addArea("北區",404);
		tempObj.addArea("北屯區",406);
		tempObj.addArea("西屯區",407);
		tempObj.addArea("南屯區",408);
	addressObject.addCity(tempObj);
	
	tempObj = new cityObject("台中縣");
		tempObj.addArea("太平市",411);
		tempObj.addArea("大里市",412);
		tempObj.addArea("霧峰鄉",413);
		tempObj.addArea("烏日鄉",414);
		tempObj.addArea("豐原市",420);
		tempObj.addArea("后里鄉",421);
		tempObj.addArea("石岡鄉",422);
		tempObj.addArea("東勢鎮",423);
		tempObj.addArea("和平鄉",424);
		tempObj.addArea("新社鄉",426);
		tempObj.addArea("潭子鄉",427);
		tempObj.addArea("大雅鄉",428);
		tempObj.addArea("神岡鄉",429);
		tempObj.addArea("霧峰鄉",431);
		tempObj.addArea("大肚鄉",432);
		tempObj.addArea("沙鹿鎮",433);
		tempObj.addArea("龍井鄉",434);
		tempObj.addArea("梧棲鎮",435);
		tempObj.addArea("清水鎮",436);
		tempObj.addArea("大甲鎮",437);
		tempObj.addArea("外埔鄉",438);
		tempObj.addArea("大安鄉",439);
	addressObject.addCity(tempObj);
	
	tempObj = new cityObject("彰化縣");
		tempObj.addArea("彰化市",500);
		tempObj.addArea("芬園鄉",502);
		tempObj.addArea("花壇鄉",503);
		tempObj.addArea("秀水鄉",504);
		tempObj.addArea("鹿港鎮",505);
		tempObj.addArea("福興鄉",506);
		tempObj.addArea("線西鄉",507);
		tempObj.addArea("和美鄉",508);
		tempObj.addArea("伸港鄉",509);
		tempObj.addArea("員林鎮",510);
		tempObj.addArea("社頭鄉",511);
		tempObj.addArea("永靖鄉",512);
		tempObj.addArea("埔心鄉",513);
		tempObj.addArea("溪湖鎮",514);
		tempObj.addArea("大村鄉",515);
		tempObj.addArea("埔鹽鄉",516);
		tempObj.addArea("田中鎮",520);
		tempObj.addArea("北斗鎮",521);
		tempObj.addArea("田尾鄉",522);
		tempObj.addArea("埤頭鄉",523);
		tempObj.addArea("溪州鄉",524);
		tempObj.addArea("竹塘鄉",525);
		tempObj.addArea("二林鎮",526);
		tempObj.addArea("大城鄉",527);
		tempObj.addArea("芳苑鄉",528);
		tempObj.addArea("二水鄉",530);
	addressObject.addCity(tempObj);
	
	tempObj = new cityObject("南投縣");
		tempObj.addArea("南投市",540);
		tempObj.addArea("中寮鄉",541);
		tempObj.addArea("草屯鎮",542);
		tempObj.addArea("國姓鄉",544);
		tempObj.addArea("埔里鎮",545);
		tempObj.addArea("仁愛鄉",546);
		tempObj.addArea("名間鄉",551);
		tempObj.addArea("集集鎮",552);
		tempObj.addArea("水里鄉",553);
		tempObj.addArea("魚池鄉",555);
		tempObj.addArea("信義鄉",556);
		tempObj.addArea("竹山鎮",557);
		tempObj.addArea("鹿谷鄉",558);
	addressObject.addCity(tempObj);
	
	tempObj = new cityObject("嘉義市");
		tempObj.addArea("嘉義市",600);
	addressObject.addCity(tempObj);
	
	tempObj = new cityObject("嘉義縣");
		tempObj.addArea("番路鄉",602);
		tempObj.addArea("梅山鄉",603);
		tempObj.addArea("竹崎鄉",604);
		tempObj.addArea("阿里山",605);
		tempObj.addArea("中埔鄉",606);
		tempObj.addArea("大埔鄉",607);
		tempObj.addArea("水上鄉",608);
		tempObj.addArea("鹿草鄉",611);
		tempObj.addArea("太保市",612);
		tempObj.addArea("朴子市",613);
		tempObj.addArea("東石鄉",614);
		tempObj.addArea("六腳鄉",615);
		tempObj.addArea("新港鄉",616);
		tempObj.addArea("民雄鄉",621);
		tempObj.addArea("大林鎮",622);
		tempObj.addArea("溪口鄉",623);
		tempObj.addArea("義竹鄉",624);
		tempObj.addArea("布袋鄉",625);
	addressObject.addCity(tempObj);
	
	tempObj = new cityObject("雲林縣");
		tempObj.addArea("斗南鎮",630);
		tempObj.addArea("大埤鄉",631);
		tempObj.addArea("虎尾鎮",632);
		tempObj.addArea("土庫鎮",633);
		tempObj.addArea("褒忠鄉",634);
		tempObj.addArea("東勢鄉",635);
		tempObj.addArea("台西鄉",636);
		tempObj.addArea("崙背鄉",637);
		tempObj.addArea("麥寮鄉",638);
		tempObj.addArea("斗六市",640);
		tempObj.addArea("林內鄉",643);
		tempObj.addArea("古坑鄉",646);
		tempObj.addArea("莿桐鄉",647);
		tempObj.addArea("西螺鎮",648);
		tempObj.addArea("二崙鄉",649);
		tempObj.addArea("北港鎮",651);
		tempObj.addArea("水林鄉",652);
		tempObj.addArea("口湖鄉",653);
		tempObj.addArea("四湖鄉",654);
		tempObj.addArea("元長鄉",655);
	addressObject.addCity(tempObj);
	
	tempObj = new cityObject("台南市");
		tempObj.addArea("中區",700);
		tempObj.addArea("東區",701);
		tempObj.addArea("南區",702);
		tempObj.addArea("西區",703);
		tempObj.addArea("北區",704);
		tempObj.addArea("安平區",708);
		tempObj.addArea("安南區",709);
	addressObject.addCity(tempObj);
	
	tempObj = new cityObject("台南縣");
		tempObj.addArea("永康市",710);
		tempObj.addArea("歸仁鄉",711);
		tempObj.addArea("新化鎮",712);
		tempObj.addArea("左鎮鄉",713);
		tempObj.addArea("玉井鄉",714);
		tempObj.addArea("楠西鄉",715);
		tempObj.addArea("南化鄉",716);
		tempObj.addArea("仁德鄉",717);
		tempObj.addArea("關廟鄉",718);
		tempObj.addArea("龍崎鄉",719);
		tempObj.addArea("官田鄉",720);
		tempObj.addArea("麻豆鎮",721);
		tempObj.addArea("佳里鎮",722);
		tempObj.addArea("西港鄉",723);
		tempObj.addArea("七股鄉",724);
		tempObj.addArea("將軍鄉",725);
		tempObj.addArea("學甲鎮",726);
		tempObj.addArea("北門鄉",727);
		tempObj.addArea("新營市",730);
		tempObj.addArea("後壁鄉",731);
		tempObj.addArea("白河鎮",732);
		tempObj.addArea("東山鄉",733);
		tempObj.addArea("六甲鄉",734);
		tempObj.addArea("下營鄉",735);
		tempObj.addArea("柳營鄉",736);
		tempObj.addArea("鹽水鎮",737);
		tempObj.addArea("善化鎮",741);
		tempObj.addArea("大內鄉",742);
		tempObj.addArea("山上鄉",743);
		tempObj.addArea("新市鄉",744);
		tempObj.addArea("安定鄉",745);
	addressObject.addCity(tempObj);
	
	tempObj = new cityObject("高雄市");
		tempObj.addArea("新興區",800);
		tempObj.addArea("前金區",801);
		tempObj.addArea("苓雅區",802);
		tempObj.addArea("鹽埕區",803);
		tempObj.addArea("鼓山區",804);
		tempObj.addArea("旗津區",805);
		tempObj.addArea("前鎮區",806);
		tempObj.addArea("三民區",807);
		tempObj.addArea("楠梓區",811);
		tempObj.addArea("小港區",812);
		tempObj.addArea("左營區",813);
	addressObject.addCity(tempObj);
	
	tempObj = new cityObject("高雄縣");
		tempObj.addArea("仁武鄉",814);
		tempObj.addArea("大社鄉",815);
		tempObj.addArea("岡山鎮",820);
		tempObj.addArea("路竹鄉",821);
		tempObj.addArea("阿蓮鄉",822);
		tempObj.addArea("田寮鄉",823);
		tempObj.addArea("燕巢鄉",824);
		tempObj.addArea("橋頭鄉",825);
		tempObj.addArea("梓官鄉",826);
		tempObj.addArea("彌陀鄉",827);
		tempObj.addArea("永安鄉",828);
		tempObj.addArea("湖內鄉",829);
		tempObj.addArea("鳳山市",830);
		tempObj.addArea("大寮鄉",831);
		tempObj.addArea("林園鄉",832);
		tempObj.addArea("鳥松鄉",833);
		tempObj.addArea("大樹鄉",840);
		tempObj.addArea("旗山鎮",842);
		tempObj.addArea("美濃鎮",843);
		tempObj.addArea("六龜鄉",844);
		tempObj.addArea("內門鄉",845);
		tempObj.addArea("杉林鄉",846);
		tempObj.addArea("甲仙鄉",847);
		tempObj.addArea("桃源鄉",848);
		tempObj.addArea("三民鄉",849);
		tempObj.addArea("茂林鄉",851);
		tempObj.addArea("茄萣鄉",852);
	addressObject.addCity(tempObj);
	
	tempObj = new cityObject("澎湖縣");
		tempObj.addArea("馬公市",880);
		tempObj.addArea("西嶼鄉",881);
		tempObj.addArea("望安鄉",882);
		tempObj.addArea("七美鄉",883);
		tempObj.addArea("白沙鄉",884);
		tempObj.addArea("湖西鄉",885);
	addressObject.addCity(tempObj);
	
	tempObj = new cityObject("南海島");
		tempObj.addArea("東沙",817);
		tempObj.addArea("南沙",819);
		tempObj.addArea("釣魚台列嶼",290);
	addressObject.addCity(tempObj);
	
	tempObj = new cityObject("金門縣");
		tempObj.addArea("金沙鎮",890);
		tempObj.addArea("金湖鎮",891);
		tempObj.addArea("金寧鄉",892);
		tempObj.addArea("金城鎮",893);
		tempObj.addArea("烈嶼鄉",894);
		tempObj.addArea("烏坵鄉",896);
	addressObject.addCity(tempObj);
	
	tempObj = new cityObject("屏東縣");
		tempObj.addArea("屏東市",900);
		tempObj.addArea("三地鄉",901);
		tempObj.addArea("霧台鄉",902);
		tempObj.addArea("瑪家鄉",903);
		tempObj.addArea("九如鄉",904);
		tempObj.addArea("里港鄉",905);
		tempObj.addArea("高樹鄉",906);
		tempObj.addArea("鹽埔鄉",907);
		tempObj.addArea("長治鄉",908);
		tempObj.addArea("麟洛鄉",909);
		tempObj.addArea("竹田鄉",911);
		tempObj.addArea("內埔鄉",912);
		tempObj.addArea("萬丹鄉",913);
		tempObj.addArea("潮州鎮",920);
		tempObj.addArea("泰武鄉",921);
		tempObj.addArea("來義鄉",922);
		tempObj.addArea("萬巒鄉",923);
		tempObj.addArea("崁頂鄉",924);
		tempObj.addArea("新埤鄉",925);
		tempObj.addArea("南州鄉",926);
		tempObj.addArea("林邊鄉",927);
		tempObj.addArea("東港鄉",928);
		tempObj.addArea("琉球鄉",929);
		tempObj.addArea("佳冬鄉",931);
		tempObj.addArea("新園鄉",932);
		tempObj.addArea("枋寮鄉",940);
		tempObj.addArea("枋山鄉",941);
		tempObj.addArea("春日鄉",942);
		tempObj.addArea("獅子鄉",943);
		tempObj.addArea("車城鄉",944);
		tempObj.addArea("牡丹鄉",945);
		tempObj.addArea("恆春鎮",946);
		tempObj.addArea("滿州鄉",947);
	addressObject.addCity(tempObj);
	
	tempObj = new cityObject("台東縣");
		tempObj.addArea("台東市",950);
		tempObj.addArea("綠島鄉",951);
		tempObj.addArea("蘭嶼鄉",952);
		tempObj.addArea("延平鄉",953);
		tempObj.addArea("卑南鄉",954);
		tempObj.addArea("鹿野鄉",955);
		tempObj.addArea("關山鎮",956);
		tempObj.addArea("海端鄉",957);
		tempObj.addArea("池上鄉",958);
		tempObj.addArea("東河鄉",959);
		tempObj.addArea("成功鎮",961);
		tempObj.addArea("長濱鄉",962);
		tempObj.addArea("太麻里",963);
		tempObj.addArea("金峰鄉",964);
		tempObj.addArea("大武鄉",965);
		tempObj.addArea("達仁鄉",966);
	addressObject.addCity(tempObj);
	
	tempObj = new cityObject("花蓮縣");
		tempObj.addArea("花蓮市",970);
		tempObj.addArea("新城鄉",971);
		tempObj.addArea("秀林鄉",972);
		tempObj.addArea("吉安鄉",973);
		tempObj.addArea("壽豐鄉",974);
		tempObj.addArea("鳳林鎮",975);
		tempObj.addArea("光復鄉",976);
		tempObj.addArea("豐濱鄉",977);
		tempObj.addArea("瑞穗鄉",978);
		tempObj.addArea("萬榮鄉",979);
		tempObj.addArea("玉里鎮",981);
		tempObj.addArea("卓溪鄉",982);
		tempObj.addArea("富里鄉",983);
	addressObject.addCity(tempObj);
}

function reSetWardZip(ObjForm,firstName,secondName,fieldOneName,fieldTwoName) {
	if(!ObjForm) ObjForm = "beMemberFrm";
	if(!firstName) firstName = "ZipCity";
	if(!secondName) secondName = "ZipArea"
	if(!fieldOneName) fieldOneName = "ZipCode";
	if(!fieldTwoName) fieldTwoName = "Address";
	
	//取得城市物件
	var ObCity = document[ObjForm][firstName];
	//取得地區的物件
	var ObArea = document[ObjForm][secondName];
	//取得區碼的文字欄位
	var ObZipCode = document[ObjForm][fieldOneName];
	//取得地址的文字欄位
	var ObAddress = document[ObjForm][fieldTwoName];

	//如果第一個是空的就停下來
	if(ObArea.options[ObArea.selectedIndex].value == "")
		return;
		
	//將區碼填入
	ObZipCode.value = ObArea.options[ObArea.selectedIndex].value;
	//將地址填入
	ObAddress.value = ObCity.options[ObCity.selectedIndex].text + ObArea.options[ObArea.selectedIndex].text;
}

//改成傳入三個,城市,地區跟地址欄位
function reSetCityZip(ObjForm,firstName,secondName,fieldOneName,fieldTwoName) {
	
	if(!ObjForm) ObjForm = "beMemberFrm";
	if(!firstName) firstName = "ZipCity";
	if(!secondName) secondName = "ZipArea"
	if(!fieldOneName) fieldOneName = "ZipCode";
	if(!fieldTwoName) fieldTwoName = "Address";
	
	//取得城市物件
	var ObCity = document[ObjForm][firstName];
	//取得地區的物件
	var ObArea = document[ObjForm][secondName];
	//取得點選的索引
	var tempIndex = parseInt(ObCity.options[ObCity.selectedIndex].value);
	//取得文字
	var tempText = ObCity.options[ObCity.selectedIndex].text;
	if(tempIndex == 0) return;
	//這邊要取出城市物件
	cityObj = addressObject.getCity(tempText);
	//列出城市資料
	for(var i=0;i<cityObj.areaArray.length;i++) {
		ObArea.options[i] = new Option(cityObj.areaArray[i].getArea(),	cityObj.areaArray[i].getZipcode());
	}
	ObArea.options.length = cityObj.areaArray.length;
	//預設第一個是被選擇
	ObArea.options[0].selected = true;
	
	reSetWardZip(ObjForm,firstName,secondName,fieldOneName,fieldTwoName);
}
//初始化
initAddressData();