var arrowImg = null, closeImg = null;
var locObj = $("#location_list_result");
var isClickImg = null;
// 获取Json数据长度
function getJsonLength(json){
	var length = 0;
	for(var item in json) { length++; }
	return length;
}
// 加载省份、城市、区县、热点等列表
function onloadLocationList(id) {
	isClickImg = false;
	var loc_id = id;
	var idx = id.indexOf("_");
	if (idx > -1) {
		loc_id = id.substring(0, idx);
		isClickImg = true;
	}
	selectMapcenterById(loc_id);
	var htmlStr = locObj.html();
	locObj.empty();
	locObj.unbind();
	$(document).unbind("click");
	var accessURL =CONSTANTS_COUNTRYSEARCH_CONTEXTPATH+"/citydisplace.servlet";
	var requestParam = "";
	switch (loc_id) {
	case "province": requestParam = "type=getprovince&id=&show=2"; break;
	case "city": requestParam = "type=province&id=" + $("#provinceid")[0].value + "&show=2"; break;
	case "dis": requestParam = "type=city&id=" + $("#cityid")[0].value + "&show=2"; break;
	case "place": requestParam = "type=dis&id=" + $("#placeid")[0].value + "&show=2"; break;
	}
	$.ajax({
		url: accessURL,
		data: requestParam,
		success: function(locs) { showLocationList(locs, loc_id); }
	});
}
function showLocationList(locations, loc_id) {
	var location = eval("("+ locations +")");
	var datalist;
	switch (loc_id) {
	case "province": datalist = location.cities1; break;
	case "city": datalist = location.cities; break;
	case "dis": datalist = location.dis; break;
	case "place": datalist = location.places; break;
	}
	if (datalist == undefined) { return; }
	var size = getJsonLength(datalist[0]);
	var htmlStr = new Array();
	var d, na;
	for (var i = 0; i < size; i++) {
		d = datalist[0][i][0];
		if ("dis" == loc_id) { na = d.na + d.type; }
		else { na = d.na; }
		htmlStr[i] = ("<a href='javascript:void(0)' onclick='refreshLocation(\"" + d.lo + "\",\"" + d.la + "\",\"" + d.le + "\",\"" + na + "\",\"" + d.id + "\", \"" + loc_id + "\", \"" + loc_id + "id\")'>" + na + "</a><br/>");
	}
	buildLocation(htmlStr.join(""), loc_id);
}
var locObj_offset, locObj_width, locObj_height;
function buildLocation(htmlStr, loc_id) {
	locObj = $("#location_list_result");
	locObj.html(htmlStr);
	var offset = $("#" + loc_id).offset();
	var l = offset.left;
	var t = offset.top;
	var w = locObj.width();
	locObj.css({zIndex:1000000, position:"absolute", left:l, top:t+25});
	locObj.click(function() {
		locObj_offset = $(this).offset();
		locObj_width = $(this).width();
		locObj_height = $(this).height();
	});
	locObj.click();
	$(document).click(function(e) {
		var l = locObj_offset.left;
		var r = l + locObj_width;
		var t = locObj_offset.top;
		var b = t + locObj_height;
		if ((e.pageX < l || e.pageX > r) || (e.pageY < t || e.pageY > b)) { hiddLoc(); }
	});
	if (arrowImg == null) {
		locObj.after("<img id='arrow_img' src='/img/arrow.gif'/>");
		arrowImg = $("#arrow_img");
	}
	if (closeImg == null) {
		locObj.after("<img id='close_img' src='/img/close.jpg' title='关闭'/>");
		closeImg = $("#close_img");
	}
	arrowImg.css({zIndex:1000000, position:"absolute", left:l+10, top:t+20});
	closeImg.css({zIndex:1000000, position:"absolute", left:l+w-15, top:t+30, cursor:"pointer"});
	closeImg.click(hiddLoc);
	showLoc(loc_id);
}
function showLoc(loc_id) {
	$("#location_list_result, #arrow_img, #close_img").removeClass("hidden");
	isLocShow = true;
	selectMapcenterById(loc_id);
}
function hiddLoc() {
	$("#location_list_result, #arrow_img, #close_img").addClass("hidden");
	$(document).unbind("click");
	isLocShow = false;
	revertMapcenter();
}
function revertMapcenter() {
	$(".map_center li:gt(0)").removeClass("li_hover");
	$(".map_center a.img_bg").css({background:"url('/img/list_0.png')"});
}
function selectMapcenterById(loc_id) {
	if (loc_id != null) {
		$(".map_center li:gt(0)").removeClass("li_hover");
		$("a.img_bg").css({background:"url('/img/list_0.png')"});
		$("#" + loc_id).parent().parent().addClass("li_hover");
		if (isClickImg) {
			$("#" + loc_id).next().css({background:"url('/img/list_2.png')"});
		} else {
			$("#" + loc_id).next().css({background:"url('/img/list_1.png')"});
		}
	}
}
function refreshLocation(lat, lon, zoom, name, id, innerNameid, hiddenid) {
	closeImg.addClass("hidden");
	arrowImg.addClass("hidden");
	locObj.addClass("hidden");
	revertMapcenter();
	$("#" + innerNameid).text(String(name));
	$("#" + hiddenid)[0].value = id;
	map.centerAndZoom(new SE_LngLat(lat, lon), zoom);
}

// 移动到某点
function moveToPlace(obj) {
      if(obj.value == "") { return; } 
      var values = obj.value.split("&");
      var center = new SE_LngLat(values[1],values[2])
      map.centerAndZoom(center,values[3]);
}
// 中心点位置div定位
function orientationSelect(id) {
 	//reSetAllSelect(); 
 	var regprovince = /0{7}/; // 判断id是否是省份
 	var regcity = /0{5}/; // 判断id是否是城市
 	var regdis = /0{3}/; // 判断id是否是区县
	if (regdis.test(id) && !regprovince.test(id) && !regcity.test(id)) {
 	    $("#disid")[0].value = id.substring(0,6);
 	    $.ajax({
 	    	url: CONSTANTS_COUNTRYSEARCH_CONTEXTPATH+"/citydisplace.servlet",
 	    	data: "type=getdis&id=" + id + "&show=2",
 	    	success: function(loc) {
 	    		setDis(loc);
 	    	}
 	    });
	} else if ((regdis.test(id) && !regprovince.test(id) && regcity.test(id)) || (id==110000000 || id==120000000 || id==310000000 || id==500000000)) {
		$("#cityid")[0].value = id.substring(0,6);
		$.ajax({
			url: CONSTANTS_COUNTRYSEARCH_CONTEXTPATH+"/citydisplace.servlet",
			data: "type=getcity&id=" + id + "&show=2",
			success: function(loc) {
				setCity(loc);
			}
		});
	} else if (regdis.test(id) && regprovince.test(id) && regcity.test(id)) {
		$("#provinceid")[0].value = id.substring(0,6);
		$.ajax({
			url: CONSTANTS_COUNTRYSEARCH_CONTEXTPATH+"/citydisplace.servlet",
			data: "type=getprovince&id=" + id + "&show=2",
			success: function(loc) {
				setProvince(loc);
			}
		});
	} else {
		$("#placeid")[0].value = id.substring(0,6);
		$.ajax({
			url: CONSTANTS_COUNTRYSEARCH_CONTEXTPATH+"/citydisplace.servlet",
			data: "type=getplace&id=" + id + "&show=2",
			success: function(loc) {
				setPlace(loc);
			}
		});
	}
}
// 设置热点
function setPlace(loc) {
 	setPlaceList(loc);
 	var id = $("#disid")[0].value;
 	$.ajax({
 		url: CONSTANTS_COUNTRYSEARCH_CONTEXTPATH+"/citydisplace.servlet",
		data: "type=getdis&id=" + id + "&show=2",
		success: function(loc) {
			setDis(loc);
		}
 	});
}
// 设置热点div数据
function setPlaceList(loc) {
	var dis = eval("("+ loc +")");
	if (dis.places == undefined) { return; }
	var size = getJsonLength(dis.places[0]);
	var selectId = $("#placeid")[0].value;
	for (var i = 0; i < size; i++) {
		var id = dis.places[0][i][0].id;
		if (String(id).strip() == selectId) {
			$("#place").text(String(dis.places[0][i][0].na));
			break;
		}
	}
	$("#disid")[0].value = dis.places[0][0][0].disesid;
}
// 取得中心点位置中的城市的id
function setDis(loc) {
 	setDisList(loc);
 	id = $("#cityid")[0].value;
 	$.ajax({
 		url: CONSTANTS_COUNTRYSEARCH_CONTEXTPATH+"/citydisplace.servlet",
 		data: "type=getcity&id=" + id + "&show=2",
 		success: function(loc) {
 			setCity(loc);
 		}
 	});
}
// 定位中心点位置中的区、县
function setDisList(loc) {
	var city = eval("("+ loc +")");
	if (city.dis == undefined) { return; }
	var size = getJsonLength(city.dis[0]);
    var selectId = $("#disid")[0].value;
    for (var i = 0; i < size; i++) {
    	var id = city.dis[0][i][0].id;
    	if (String(id).strip() == selectId) {
    		$("#dis").text(city.dis[0][i][0].na + city.dis[0][i][0].type);
    		break;
    	}
    }
    $("#cityid")[0].value = city.dis[0][0][0].citiesid;
}
// 取得中心点位置中的省份id
function setCity(loc) {
 	setCityList(loc);
 	var provinceId = $("#provinceid")[0].value;
 	$.ajax({
 		url: CONSTANTS_COUNTRYSEARCH_CONTEXTPATH+"/citydisplace.servlet",
 		data: "type=getprovince&id=" + provinceId + "&show=2",
 		success: function(loc) {
 			setProvince(loc);
 		}
 	});
}
// 定位中心点位置中的城市
function setCityList(loc) {
	var province = eval("("+ loc +")");
	if (province.cities == undefined) { return; }
	var size = getJsonLength(province.cities[0]);
	var selectId = $("#cityid")[0].value;
	for (var i = 0; i < size; i++) {
		var id = province.cities[0][i][0].id;
		if (String(id).strip() == selectId) {
			$("#city").text(String(province.cities[0][i][0].na));
			break;
		}
	}
    $("#provinceid")[0].value = province.cities[0][0][0].provinceid;
}
// 取得中心点位置中的省份id
function setProvince(loc) {
	setProvinceList(loc, $("#provinceid")[0].value);
}
// 定位中心点位置中的省份
function setProvinceList(loc, selectId) {
	var province = eval("("+ loc +")");
	if (province.cities1 == undefined) { return; }
	var size = getJsonLength(province.cities1[0]);
	for (var i = 0; i < size; i++) {
		var id = province.cities1[0][i][0].id;
		if (String(id).strip() == selectId) {
			$("#province").text(String(province.cities1[0][i][0].na));
			break;
		}
	}
}