/**
 * 省市连动菜单
 *
 * @author	寻梦的稻草人
 * @copyright ice_berg16@163.com
 * @version $Id$
 */

/**
 * 使用方法 
 * AreaSelector.bind('province', 'city');
 * 绑定默认值
 * AreaSelector.bind('province', 'city', '安徽', '安庆');
 */

var AreaSelector = {
	province: ['选择省份','全国','北京','上海','天津','重庆','安徽','福建','甘肃','广东','广西','贵州','海南','河北','河南','黑龙江','湖北','湖南','吉林','江苏','江西','辽宁','内蒙古','宁夏','青海','山东','山西','陕西','四川','西藏','新疆','云南','浙江','香港','澳门','台湾'],
	citys : [
		[],[],
['北京','东城','西城','海淀','朝阳','丰台','崇文','宣武','通州','昌平','大兴','房山','怀柔','门头沟','密云','平谷','石景山','顺义','延庆'],
['上海','松江','闸北','徐汇','杨浦','青浦','崇明','奉贤','普陀','浦东','南市','虹口','南汇','闵行','黄浦','嘉定','金山','静安','卢湾','宝山'],
['天津','武清','北辰','大港','东丽','汉沽','塘沽','和平','河北','河东','河西','红桥','蓟县','津南','静海','南开','宁河','宝坻'],
['重庆','江北','渝中','巴南','沙坪坝','万盛区','南岸','北碚区','渝北','九龙坡','大渡口','双桥','永川','合川','江津','南川','綦江','长寿','潼南','荣昌','璧山','大足','铜梁','梁平','城口','垫江','武隆','丰都','奉节','开县','云阳','忠县','巫溪','巫山','黔江','石柱土','酉阳','秀山','彭水','黔江开发区','涪陵'],
['安徽','合肥','芜湖','蚌埠','淮南','马鞍山','淮北','铜陵','安庆','黄山','滁州','阜阳','宿州','巢湖','六安','亳州','池州','宣城','徽州'],
['福建','厦门','福州','莆田','三明','泉州','漳州','南平','龙岩','宁德','晋江','龙溪'],
['甘肃','兰州','嘉峪关','金昌','白银','天水','武威','酒泉','张掖','定西','陇南','平凉','庆阳','临夏','甘南'],
['广东','广州','韶关','深圳','珠海','汕头','佛山','江门','湛江','茂名','海口','肇庆','惠州','梅州','汕尾','河源','阳江','清远','东莞','中山','梅县','惠阳','潮州','揭阳','云浮'],
['广西','南宁','柳州','桂林','梧州','北海','防城港','钦州','贵港','玉林','贺州','百色','河池','崇左','来宾'],
['贵州','贵阳','六盘水','遵义','安顺','铜仁','黔西南','毕节','黔东南','黔南'],
['海南','海口','三亚','文昌','琼海','五指山','万宁','东方','詹舟'],
['河北','石家庄','唐山','秦皇岛','邯郸','邢台','保定','张家口','承德','沧州','廊坊','衡水'],
['河南','郑州','开封','洛阳','平顶山','安阳','鹤壁','新乡','焦作','濮阳','许昌','漯河','三门峡','南阳','商丘','信阳','周口','驻马店'],
['黑龙江','哈尔滨','齐齐哈尔','鸡西','鹤岗','双鸭山','大庆','伊春','佳木斯','七台河','牡丹江','黑河','绥化','松花江','嫩江','合江','大兴安岭'],
['湖北','武汉','黄石','十堰','沙市','宜昌','襄樊','鄂州','荆门','孝感','荆州','黄冈','咸宁','随州','襄阳','郧阳'],
['湖南','长沙','株洲','湘潭','衡阳','邵阳','岳阳','常德','张家界','益阳','郴州','永州','怀化','娄底','零陵','怀北','湘西'],
['吉林','长春','吉林','四平','辽源','通化','白山','松原','白城','延边','永吉','德惠'],
['江苏','南京','无锡','徐州','常州','苏州','南通','连云港','淮安','泰州','盐城','扬州','镇江','泰州','宿迁','淮阴'],
['江西','南昌','景德镇','萍乡','九江','新余','鹰潭','抚州','上饶','赣州','宜春','吉安'],
['辽宁','沈阳','大连','鞍山','抚顺','本溪','丹东','锦州','营口','阜新','辽阳','盘锦','铁岭','朝阳','葫芦岛'],
['内蒙古','呼和浩特','包头','乌海','赤峰','通辽','呼伦贝尔','乌兰察布','','鄂尔多斯','呼伦贝尔盟','兴安盟','哲里木盟','昭乌达盟','锡林郭勒盟','乌兰察布盟','伊克昭盟','巴彦淖尔盟','阿拉善盟'],
['宁夏','银川','石嘴山','吴忠','中卫','固原','银南'],
['青海','西宁','海东','海北','黄南','海南','果洛','玉树','海西'],
['山东','济南','青岛','淄博','枣庄','东营','烟台','潍坊','济宁','泰安','威海','日照','莱芜','临沂','德州','聊城','滨州','荷泽'],
['山西','太原','大同','阳泉','长治','晋城','朔州','晋中','运城','忻州','临汾','雁北','忻县','吕梁','晋东南'],
['陕西','西安','铜川','宝鸡','咸阳','渭南','延安','汉中','榆林','安康','商洛'],
['四川','成都','自贡','攀枝花','泸州','德阳','绵阳','广元','遂宁','内江','乐山','万县','南充','眉山','宜宾','广安','达州','雅安','巴中','资阳','永川','涪陵','内江','温江','绵阳','达县','黔江'],
['西藏','拉萨','昌都','山南','日喀则','那曲','阿里','林芝','江孜'],
['新疆','乌鲁木齐','克拉玛依','石河子','吐鲁番','哈密','昌吉','伊犁','塔城','阿勒泰','博尔塔拉','巴音郭楞','阿克苏','克孜勒苏','喀什','和田'],
['云南','昆明','东川','曲靖','玉溪','普洱','保山','昭通','楚雄','红河','文山','思茅','西双版纳','大理','德宏','丽江','怒江','迪庆','临沧'],
['浙江','杭州','宁波','温州','嘉兴','湖州','绍兴','金华','衢州','舟山','台州','丽水','义乌'],
['香港'],
['澳门'],
['台湾']
	],
	
	//初始化,加载省份及城市, cp是否加载城市
	init: function(cp){
		for(var i=0;i<this.province.length;i++){
			var value = this.province[i] == '选择省份' ? '' : this.province[i];
			this.p.options.add(new Option(this.province[i], value));
			if(this.province[i] == this.dp){
				this.p.options[i].selected = true;
			}
		}
		if(cp !== false){
			this.cp(this.dp);
		}
		//加载完成后删除默认值
		this.dp = this.dc = '';
	},

	//改变省份时对应的事件
	cp : function(pv){
		//先查找省份对应的索引
		var sel = 0;
		for(var k=0;k<this.province.length;k++){
			if(this.province[k] == pv){
				sel = k;
				break;
			}
		}

		//填充城市
		this.c.length = 0;
		for(var i=0;i<this.citys[sel].length;i++){
			this.c.options.add(new Option(this.citys[sel][i], this.citys[sel][i]));
			if(this.citys[sel][i]==this.dc){
				this.c.options[i].selected=true;
			}
		}
		//控制城市控件的显示与隐藏
		this.c.style.display = this.c.length == 0 ? 'none' : 'inline';

	},

	/**
	 * 与控件及默认值绑定
	 *
	 * @param p 省份控件
	 * @param c 城市控件
	 * @param dp 省份默认值
	 * @param dc 城市默认值
	 */
	bind : function(p, c, dp, dc){
		if(typeof p == "string") p = document.getElementById(p);
		if(typeof c == "string") c = document.getElementById(c);
		if(!p){ alert('省份控件不存在'); return false}
		if(!c){ alert('城市控件不存在'); return false}
		this.p = p;
		this.c = c;
		this.dp= dp || '';
		this.dc= dc || '';
		var self = this;
		this.p.onchange = function(){
			self.cp(this.value);
		};
		this.init();
	},
	
	//只加载省份
	bindp : function(p,dp){
		if(typeof p == "string") p = document.getElementById(p);		
		if(!p){ alert('省份控件不存在'); return false};
		this.p = p;
		this.dp= dp || '';
		this.init(false);
	}
}
