﻿(function ($) {
    var data = [{ t: '臺北市', v: '0'
	, zip: [{ t: '中正區', v: '100' }, { t: '大同區', v: '103' }, { t: '中山區', v: '104' }, { t: '松山區', v: '105' }, { t: '大安區', v: '106' }, { t: '萬華區', v: '108' }, { t: '信義區', v: '110' }, { t: '士林區', v: '111' }, { t: '北投區', v: '112' }, { t: '內湖區', v: '114' }, { t: '南港區', v: '115' }, { t: '文山區', v: '116'}]
    },
{ t: '新北市', v: '1'
	, zip: [{ t: '萬里區', v: '207' }, { t: '金山區', v: '208' }, { t: '板橋區', v: '220' }, { t: '汐止區', v: '221' }, { t: '深坑區', v: '222' }, { t: '石碇區', v: '223' }, { t: '瑞芳區', v: '224' }, { t: '平溪區', v: '226' }, { t: '雙溪區', v: '227' }, { t: '貢寮區', v: '228' }, { t: '新店區', v: '231' }, { t: '坪林區', v: '232' }, { t: '烏來區', v: '233' }, { t: '永和區', v: '234' }, { t: '中和區', v: '235' }, { t: '土城區', v: '236' }, { t: '三峽區', v: '237' }, { t: '樹林區', v: '238' }, { t: '鶯歌區', v: '239' }, { t: '三重區', v: '241' }, { t: '新莊區', v: '242' }, { t: '泰山區', v: '243' }, { t: '林口區', v: '244' }, { t: '蘆洲區', v: '247' }, { t: '五股區', v: '248' }, { t: '八里區', v: '249' }, { t: '淡水區', v: '251' }, { t: '三芝區', v: '252' }, { t: '石門區', v: '253'}]
},
{ t: '基隆市', v: '2'
	, zip: [{ t: '仁愛區', v: '200' }, { t: '信義區', v: '201' }, { t: '中正區', v: '202' }, { t: '中山區', v: '203' }, { t: '安樂區', v: '204' }, { t: '暖暖區', v: '205' }, { t: '七堵區', v: '206'}]
},
{ t: '宜蘭縣', v: '3'
	, zip: [{ t: '宜蘭市', v: '260' }, { t: '頭城鎮', v: '261' }, { t: '礁溪鄉', v: '262' }, { t: '壯圍鄉', v: '263' }, { t: '員山鄉', v: '264' }, { t: '羅東鎮', v: '265' }, { t: '三星鄉', v: '266' }, { t: '大同鄉', v: '267' }, { t: '五結鄉', v: '268' }, { t: '冬山鄉', v: '269' }, { t: '蘇澳鎮', v: '270' }, { t: '南澳鄉', v: '272'}]
},
{ t: '桃園縣', v: '4'
	, zip: [{ t: '中壢市', v: '320' }, { t: '平鎮市', v: '324' }, { t: '龍潭鄉', v: '325' }, { t: '楊梅鎮', v: '326' }, { t: '新屋鄉', v: '327' }, { t: '觀音鄉', v: '328' }, { t: '桃園市', v: '330' }, { t: '龜山鄉', v: '333' }, { t: '八德市', v: '334' }, { t: '大溪鎮', v: '335' }, { t: '復興鄉', v: '336' }, { t: '大園鄉', v: '337' }, { t: '蘆竹鄉', v: '338'}]
},
{ t: '新竹縣市', v: '5'
	, zip: [{ t: '新竹市', v: '300' }, { t: '竹北市', v: '302' }, { t: '湖口鄉', v: '303' }, { t: '新豐鄉', v: '304' }, { t: '新埔鎮', v: '305' }, { t: '關西鎮', v: '306' }, { t: '芎林鄉', v: '307' }, { t: '寶山鄉', v: '308' }, { t: '竹東鎮', v: '310' }, { t: '五峰鄉', v: '311' }, { t: '橫山鄉', v: '312' }, { t: '北埔鄉', v: '313' }, { t: '峨眉鄉', v: '315'}]
},
{ t: '苗栗縣', v: '6'
	, zip: [{ t: '竹南鎮', v: '350' }, { t: '頭份鎮', v: '351' }, { t: '三灣鄉', v: '352' }, { t: '南庄鄉', v: '353' }, { t: '獅潭鄉', v: '354' }, { t: '後龍鎮', v: '356' }, { t: '通霄鎮', v: '357' }, { t: '苑裡鎮', v: '358' }, { t: '苗栗市', v: '360' }, { t: '造橋鄉', v: '361' }, { t: '頭屋鄉', v: '362' }, { t: '公館鄉', v: '363' }, { t: '大湖鄉', v: '364' }, { t: '泰安鄉', v: '365' }, { t: '銅鑼鄉', v: '366' }, { t: '三義鄉', v: '367' }, { t: '西湖鄉', v: '368' }, { t: '卓蘭鎮', v: '369'}]
},
{ t: '臺中市', v: '7'
	, zip: [{ t: '中區', v: '400' }, { t: '東區', v: '401' }, { t: '南區', v: '402' }, { t: '西區', v: '403' }, { t: '北區', v: '404' }, { t: '北屯區', v: '406' }, { t: '西屯區', v: '407' }, { t: '南屯區', v: '408' }, { t: '太平區', v: '411' }, { t: '大里區', v: '412' }, { t: '霧峰區', v: '413' }, { t: '烏日區', v: '414' }, { t: '豐原區', v: '420' }, { t: '后里區', v: '421' }, { t: '石岡區', v: '422' }, { t: '東勢區', v: '423' }, { t: '和平區', v: '424' }, { t: '新社區', v: '426' }, { t: '潭子區', v: '427' }, { t: '大雅區', v: '428' }, { t: '神岡區', v: '429' }, { t: '大肚區', v: '432' }, { t: '沙鹿區', v: '433' }, { t: '龍井區', v: '434' }, { t: '梧棲區', v: '435' }, { t: '清水區', v: '436' }, { t: '大甲區', v: '437' }, { t: '外埔區', v: '438' }, { t: '大安區', v: '439'}]
},
{ t: '彰化縣', v: '8'
	, zip: [{ t: '彰化市', v: '500' }, { t: '芬園鄉', v: '502' }, { t: '花壇鄉', v: '503' }, { t: '秀水鄉', v: '504' }, { t: '鹿港鎮', v: '505' }, { t: '福興鄉', v: '506' }, { t: '線西鄉', v: '507' }, { t: '和美鎮', v: '508' }, { t: '伸港鄉', v: '509' }, { t: '員林鎮', v: '510' }, { t: '社頭鄉', v: '511' }, { t: '永靖鄉', v: '512' }, { t: '埔心鄉', v: '513' }, { t: '溪湖鎮', v: '514' }, { t: '大村鄉', v: '515' }, { t: '埔鹽鄉', v: '516' }, { t: '田中鎮', v: '520' }, { t: '北斗鎮', v: '521' }, { t: '田尾鄉', v: '522' }, { t: '埤頭鄉', v: '523' }, { t: '溪州鄉', v: '524' }, { t: '竹塘鄉', v: '525' }, { t: '二林鎮', v: '526' }, { t: '大城鄉', v: '527' }, { t: '芳苑鄉', v: '528' }, { t: '二水鄉', v: '530'}]
},
{ t: '南投縣', v: '9'
	, zip: [{ t: '南投市', v: '540' }, { t: '中寮鄉', v: '541' }, { t: '草屯鎮', v: '542' }, { t: '國姓鄉', v: '544' }, { t: '埔里鎮', v: '545' }, { t: '仁愛鄉', v: '546' }, { t: '名間鄉', v: '551' }, { t: '集集鎮', v: '552' }, { t: '水里鄉', v: '553' }, { t: '魚池鄉', v: '555' }, { t: '信義鄉', v: '556' }, { t: '竹山鎮', v: '557' }, { t: '鹿谷鄉', v: '558'}]
},
{ t: '嘉義縣市', v: '10'
	, zip: [{ t: '嘉義市', v: '600' }, { t: '番路鄉', v: '602' }, { t: '梅山鄉', v: '603' }, { t: '竹崎鄉', v: '604' }, { t: '阿里山', v: '605' }, { t: '中埔鄉', v: '606' }, { t: '大埔鄉', v: '607' }, { t: '水上鄉', v: '608' }, { t: '鹿草鄉', v: '611' }, { t: '太保市', v: '612' }, { t: '朴子市', v: '613' }, { t: '東石鄉', v: '614' }, { t: '六腳鄉', v: '615' }, { t: '新港鄉', v: '616' }, { t: '民雄鄉', v: '621' }, { t: '大林鎮', v: '622' }, { t: '溪口鄉', v: '623' }, { t: '義竹鄉', v: '624' }, { t: '布袋鎮', v: '625'}]
},
{ t: '雲林縣', v: '11'
	, zip: [{ t: '斗南鎮', v: '630' }, { t: '大埤鄉', v: '631' }, { t: '虎尾鎮', v: '632' }, { t: '土庫鎮', v: '633' }, { t: '褒忠鄉', v: '634' }, { t: '東勢鄉', v: '635' }, { t: '台西鄉', v: '636' }, { t: '崙背鄉', v: '637' }, { t: '麥寮鄉', v: '638' }, { t: '斗六市', v: '640' }, { t: '林內鄉', v: '643' }, { t: '古坑鄉', v: '646' }, { t: '莿桐鄉', v: '647' }, { t: '西螺鎮', v: '648' }, { t: '二崙鄉', v: '649' }, { t: '北港鎮', v: '651' }, { t: '水林鄉', v: '652' }, { t: '口湖鄉', v: '653' }, { t: '四湖鄉', v: '654' }, { t: '元長鄉', v: '655'}]
},
{ t: '臺南市', v: '12'
	, zip: [{ t: '中西區', v: '700' }, { t: '東區', v: '701' }, { t: '南區', v: '702' }, { t: '北區', v: '704' }, { t: '安平區', v: '708' }, { t: '安南區', v: '709' }, { t: '永康區', v: '710' }, { t: '歸仁區', v: '711' }, { t: '新化區', v: '712' }, { t: '左鎮區', v: '713' }, { t: '玉井區', v: '714' }, { t: '楠西區', v: '715' }, { t: '南化區', v: '716' }, { t: '仁德區', v: '717' }, { t: '關廟區', v: '718' }, { t: '龍崎區', v: '719' }, { t: '官田區', v: '720' }, { t: '麻豆區', v: '721' }, { t: '佳里區', v: '722' }, { t: '西港區', v: '723' }, { t: '七股區', v: '724' }, { t: '將軍區', v: '725' }, { t: '學甲區', v: '726' }, { t: '北門區', v: '727' }, { t: '新營區', v: '730' }, { t: '後壁區', v: '731' }, { t: '白河區', v: '732' }, { t: '東山區', v: '733' }, { t: '六甲區', v: '734' }, { t: '下營區', v: '735' }, { t: '柳營區', v: '736' }, { t: '鹽水區', v: '737' }, { t: '善化區', v: '741' }, { t: '大內區', v: '742' }, { t: '山上區', v: '743' }, { t: '新市區', v: '744' }, { t: '安定區', v: '745'}]
},
{ t: '高雄市', v: '13'
	, zip: [{ t: '新興區', v: '800' }, { t: '前金區', v: '801' }, { t: '苓雅區', v: '802' }, { t: '鹽埕區', v: '803' }, { t: '鼓山區', v: '804' }, { t: '旗津區', v: '805' }, { t: '前鎮區', v: '806' }, { t: '三民區', v: '807' }, { t: '楠梓區', v: '811' }, { t: '小港區', v: '812' }, { t: '左營區', v: '813' }, { t: '仁武區', v: '814' }, { t: '大社區', v: '815' }, { t: '岡山區', v: '820' }, { t: '路竹區', v: '821' }, { t: '阿蓮區', v: '822' }, { t: '田寮區', v: '823' }, { t: '燕巢區', v: '824' }, { t: '橋頭區', v: '825' }, { t: '梓官區', v: '826' }, { t: '彌陀區', v: '827' }, { t: '永安區', v: '828' }, { t: '湖內區', v: '829' }, { t: '鳳山區', v: '830' }, { t: '大寮區', v: '831' }, { t: '林園區', v: '832' }, { t: '鳥松區', v: '833' }, { t: '大樹區', v: '840' }, { t: '旗山區', v: '842' }, { t: '美濃區', v: '843' }, { t: '六龜區', v: '844' }, { t: '內門區', v: '845' }, { t: '杉林區', v: '846' }, { t: '甲仙區', v: '847' }, { t: '桃源區', v: '848' }, { t: '三民區', v: '849' }, { t: '茂林區', v: '851' }, { t: '茄萣區', v: '852'}]
},
{ t: '澎湖縣', v: '14'
	, zip: [{ t: '馬公市', v: '880' }, { t: '西嶼鄉', v: '881' }, { t: '望安鄉', v: '882' }, { t: '七美鄉', v: '883' }, { t: '白沙鄉', v: '884' }, { t: '湖西鄉', v: '885'}]
},
{ t: '屏東縣', v: '15'
	, zip: [{ t: '屏東市', v: '900' }, { t: '三地門', v: '901' }, { t: '霧台鄉', v: '902' }, { t: '瑪家鄉', v: '903' }, { t: '九如鄉', v: '904' }, { t: '里港鄉', v: '905' }, { t: '高樹鄉', v: '906' }, { t: '鹽埔鄉', v: '907' }, { t: '長治鄉', v: '908' }, { t: '麟洛鄉', v: '909' }, { t: '竹田鄉', v: '911' }, { t: '內埔鄉', v: '912' }, { t: '萬丹鄉', v: '913' }, { t: '潮州鎮', v: '920' }, { t: '泰武鄉', v: '921' }, { t: '來義鄉', v: '922' }, { t: '萬巒鄉', v: '923' }, { t: '崁頂鄉', v: '924' }, { t: '新埤鄉', v: '925' }, { t: '南州鄉', v: '926' }, { t: '林邊鄉', v: '927' }, { t: '東港鎮', v: '928' }, { t: '琉球鄉', v: '929' }, { t: '佳冬鄉', v: '931' }, { t: '新園鄉', v: '932' }, { t: '枋寮鄉', v: '940' }, { t: '枋山鄉', v: '941' }, { t: '春日鄉', v: '942' }, { t: '獅子鄉', v: '943' }, { t: '車城鄉', v: '944' }, { t: '牡丹鄉', v: '945' }, { t: '恆春鎮', v: '946' }, { t: '滿州鄉', v: '947'}]
},
{ t: '臺東縣市', v: '16'
	, zip: [{ t: '臺東市', v: '950' }, { t: '綠島鄉', v: '951' }, { t: '蘭嶼鄉', v: '952' }, { t: '延平鄉', v: '953' }, { t: '卑南鄉', v: '954' }, { t: '鹿野鄉', v: '955' }, { t: '關山鎮', v: '956' }, { t: '海端鄉', v: '957' }, { t: '池上鄉', v: '958' }, { t: '東河鄉', v: '959' }, { t: '成功鎮', v: '961' }, { t: '長濱鄉', v: '962' }, { t: '太麻里', v: '963' }, { t: '金峰鄉', v: '964' }, { t: '大武鄉', v: '965' }, { t: '達仁鄉', v: '966'}]
},
{ t: '花蓮縣', v: '17'
	, zip: [{ t: '花蓮市', v: '970' }, { t: '新城鄉', v: '971' }, { t: '秀林鄉', v: '972' }, { t: '吉安鄉', v: '973' }, { t: '壽豐鄉', v: '974' }, { t: '鳳林鎮', v: '975' }, { t: '光復鄉', v: '976' }, { t: '豐濱鄉', v: '977' }, { t: '瑞穗鄉', v: '978' }, { t: '萬榮鄉', v: '979' }, { t: '玉里鎮', v: '981' }, { t: '卓溪鄉', v: '982' }, { t: '富里鄉', v: '983'}]
},
{ t: '金門縣', v: '18'
	, zip: [{ t: '金沙鎮', v: '890' }, { t: '金湖鎮', v: '891' }, { t: '金寧鎮', v: '892' }, { t: '金城鎮', v: '893' }, { t: '烈嶼鄉', v: '894' }, { t: '烏坵鄉', v: '896'}]
},
{ t: '連江縣', v: '19'
	, zip: [{ t: '南竿鄉', v: '209' }, { t: '北竿鄉', v: '210' }, { t: '莒光鄉', v: '211' }, { t: '東引鄉', v: '212'}]
},
{ t: '其他諸島', v: '20'
	, zip: [{ t: '南海諸島東沙', v: '817' }, { t: '南海諸島南沙', v: '819' }, { t: '釣魚台列嶼', v: '290'}]
}];

	// a : 縣市 select jquery 物件
	// b : 行政區 select jquery 物件
	// zip : 初始行政區, 搭配 a, b 可用 Array
	// showAll : 顯示 "全部";
	$.twzip = function(a, b, zip, showAll,keep) {
		// for fast access
		var r = data;
		// has initial values
		if (zip && !$.isArray(zip)) {
			var z = [];
			var l = a.size();
			while (l--) { z.push(zip); }
			zip = z;
		}
		// get options html, IE6 can't assign value after append, must use "selected" attribute
		function _(r, v) { return $.map(r, function(o) { return '<option' + (v != o.v ? '' : ' selected="selected"') + ' value="' + o.v + '">' + o.t + '</option>'; }).join(''); }
		if (!keep){a.empty()}
		a.change(function() {
			if (!b) return;
			var s = b.eq(a.index(this)).empty();
			showAll && s.prepend(_([{ t: '全部', v: $(this).val()}]));
			s.append(_(r[$(this).val()].zip));
		}).each(function(i) {
			var v;
			if (zip) {
				var z = zip[i];
				v = /^\d{3}$/.test(z) ? ($.twzip.region(z) || r[0]).v : z;
			}
			$(this).append(_(r, v));
			if (b) {
				var s = b.eq(a.index(this)).empty();
				showAll && s.prepend(_([{ t: '全部', v: $(this).val()}]));
				s.append(_(r[$(this).val()].zip, zip[i]));
			}
		});
	};
	$.twzip.data = data;

	// 透過 zip 取得行政區文字
	$.twzip.text = function(zip) {
		var t = '';
		$.each(data, function(i, o) {
			$.each(o.zip, function(i, o) {
				if (o.v == zip) { return !(t = o.t); }
			});
			if (t) return !1;
		});
		return t;
	};

	// 透過 zip 取得所屬縣市"物件"
	$.twzip.region = function(zip) {
		var r = null;
		$.each(data, function(i, o) {
			$.each(o.zip, function(i, d) {
				if (d.v == zip) { return !(r = o); }
			});
			if (r) return !1;
		});
		return r;
	};
})(jQuery);
