/*调用方式$.CitySelTool.applyTool({divCitySel:$("#divCitySel"),fevent:event});	
 * divCitySel：传入顶层div对象，默认为$("#divCitySel")
 * fevent:传入回调函数，默认为function(){}
 * 在页面data-code设置值为"all"的效果：地区为全国，data-code置空，cookie置空
 * 页面data-code设置值为""的效果：去cookie读取数据初始化地区选择工具
 * */
jQuery.CitySelTool = {
		applyTool : function(options) {
		var defaults={
		divCitySel:$('#divCitySel'),
		fevent:function(){}
		};
		var opts=jQuery.extend(defaults,options);
			opts.divCitySel.each(function(){
				var divcitysel=$(this);
				var selvalue=divcitysel.children('p').children('span');
				var provincevalue=divcitysel.children('div').find('span').eq(0);
				var cityvalue=divcitysel.children('div').find('span').eq(1);
				var ulprovince=divcitysel.find('ul').eq(0);
				var ulcity=divcitysel.find('ul').eq(1);
				var flag = true;
			if($(divcitysel).attr("data-code") == "all"){
				$(divcitysel).attr("data-code","");
				flag = false;
			}
			if(flag&&$(divcitysel).attr('data-code')==""){
				$(divcitysel).attr('data-code', $.cookie('areaCode'));
			}
			var tag = true;
			$(divcitysel).hover(
					  function () {
						    $(this).addClass("mhover");
						  },
						  function () {
							  if(tag){
						    $(this).removeClass("mhover");}
						  }
						);

			var allData;
			$.ajax({
				url : '/general/areaDataAjax.jspx',
				type : 'GET',
				async : false,
				dataType : 'json',
				success : function(data) {
					allData = data;
				}
			});
			var provinceSub=function(str){
				if(str=="黑龙江省")
					return "黑龙江";
				else if(str=="内蒙古自治区")
					return "内蒙古";
				else{
					return str.substring(0,2);
				}
			}

			$.each(allData, function(i, item) {
				if (item.type == 1)
					$(ulprovince).append("<li> <a href='' id='" + item.code + "' title='" + item.name + "'>" + provinceSub(item.name) + "</a></li>");
			});

			$(ulprovince).children().children().each(function() {
			
				$(this).live('click', function() {
					tag = false;
					cityvalue.parent().show();
					provincevalue[0].innerHTML = this.innerHTML;
					provincevalue[0].name = this.id;
					provincevalue.trigger('onchange');
					return false;
				});
			});

			$(provincevalue).parent().bind(
					{
						click : function() {
							$(this).addClass("curr");
							$(cityvalue).parent().removeClass("curr");
							$(ulprovince).show();
							$(ulcity).hide();
						},
						onchange : function() {
							$(ulcity).empty();
							cityvalue[0].innerHTML="请选择";
							$.each(allData, function(i, item) {
								if (item.type == 2
										&& provincevalue[0].name == item.code
												.substring(0, 4)) {
									$(ulcity).append("<li> <a href='' id='" + item.code + "' title='" + item.name + "'>" + item.name + "</a></li>");
								}
							});
							$(ulcity).children().children().each(function() {
								$(this).live('click', function() {
									cityvalue[0].innerHTML = this.innerHTML;
									cityvalue[0].name = this.id;
									cityvalue.trigger('onchange');
									opts.fevent();
									return false;
								});
								
							});
							$(ulcity).show();
							$(ulprovince).hide();
							$(this).removeClass("curr");
							$(cityvalue).parent().addClass("curr");
						}
					});

			$(cityvalue).parent().bind( 
					{
						click : function() {
							$(this).addClass("curr");
							$(provincevalue).parent().removeClass("curr");
							$(ulcity).show();
							$(ulprovince).hide();
						},
						onchange : function() {
							$(divcitysel).attr('data-code', cityvalue[0].name);
							$.cookie('areaCode', null,{path: '/'});
							$.cookie('areaCode', cityvalue[0].name,{expires: 30,path: '/'});
							selvalue[0].innerHTML = provincevalue[0].innerHTML
									+ cityvalue[0].innerHTML;
							tag = true;
							$(divcitysel).removeClass("mhover");
						}
					});
			
			$('.close').bind("click",function(){
			tag = true;
			$(divcitysel).removeClass("mhover");
			});
			if ($(divcitysel).attr("data-code")!= undefined&&$(divcitysel).attr("data-code") != "") {
			var datacode = $(divcitysel).attr("data-code");
				$.each(allData,
						function(i, item) {
							if (item.type == 1
									&& datacode.substring(0, 4) == item.code) {
								provincevalue[0].innerHTML = provinceSub(item.name);
								provincevalue[0].name = item.code;
								provincevalue.trigger('onchange');
							}
							
						});
				$.each(allData,
						function(i, item) {
							if (item.type == 2
									&& datacode == item.code) {
								cityvalue[0].innerHTML =item.name;
								cityvalue[0].name = item.code;
								cityvalue.trigger('onchange');
							}
						});
			}else{
			cityvalue.parent().hide();
			}
		
			})
		}
	};