var geocoder; 
var map; 
var marker; 
 
function initialize() { 
	document.getElementById("map_canvas").style.display="block"; 
	geocoder = new google.maps.Geocoder(); 
	var latlng = new google.maps.LatLng(25.059604, 121.545394); 
	var myOptions = { 
		zoom: 6, 
		center: latlng, 
		mapTypeId: google.maps.MapTypeId.ROADMAP 
	} 
	map = new google.maps.Map(document.getElementById("map_canvas"), myOptions); 
} 
 
function codeAddress() { 
	document.getElementById("settingmsg").innerHTML="<img src='/images/ajax-loader.gif' /> 出生地经纬度搜寻中..."; 
	document.getElementById("settingmsg").style.display="block"; 
	var address = document.getElementById("address").value; 
	var country = document.getElementById("country").value; 
	address = address.replace(/^\s*|\s*$/g,""); 
	country = country.replace(/^\s*|\s*$/g,""); 
	if(address!="" && country!="") { 
		initialize(); 
		geocoder.geocode( { 'address': country + ' ' + address, 'language':'en'}, function(results, status) { 
			if (status == google.maps.GeocoderStatus.OK) { 
				document.getElementById("mapzone").style.display="none"; 
				var lat = results[0].geometry.location.lat(); 
				var lng = results[0].geometry.location.lng(); 
				var url = "getTimezone.jsp?lat="+lat+"&lng="+lng; 
 
				$.getJSON(url,function(resultData){ 
					var timezone=document.getElementById("timezone"); 
					var offset=resultData.rawOffset*(-60); 
					for(var i=0; i<timezone.options.length; i++) { 
						if(timezone.options[i].value==offset) { 
							timezone.options[i].selected=true; 
							break; 
						} 
					} 
					setLocation(lat,lng); 
					document.getElementById("settingmsg").innerHTML="出生地设定成功！若地图标点不正确，请<a href=\"javascript:resetBirthPlace()\">重新输入</a>其它更精确的地名试试看"; 
					document.getElementById("settingmsg").style.display="block"; 
				}); 
 
				map.setCenter(results[0].geometry.location); 
				document.getElementById("formatted_address").value = results[0].formatted_address; 
				if (marker) { 
					marker.setMap(null); 
				} 
				marker = new google.maps.Marker({ 
					map: map,  
					position: results[0].geometry.location 
				}); 
				 
			} else { 
				document.getElementById("map_canvas").style.display="none"; 
				document.getElementById("settingmsg").innerHTML="星盘小精灵找不到你输入的地名，请<a href=\"javascript:resetBirthPlace()\">重新输入</a>其它较靠近你出生地的城镇试试看！"; 
				document.getElementById("settingmsg").style.display="block"; 
			} 
		}); 
	} else { 
		document.getElementById("settingmsg").innerHTML="你忘记输入出生国家或城镇了！请<a href=\"javascript:resetBirthPlace()\">重新输入</a>，谢谢！"; 
		document.getElementById("settingmsg").style.display="block"; 
	} 
} 
 
function setLocation(lat,lng) { 
	// set latitude 
	if(lat>=0) { 
		var latitude=document.getElementById("latitude"); 
		for(var i=0; i<latitude.options.length; i++) { 
			if(latitude.options[i].value=="N"){ 
				latitude.options[i].selected=true; 
				break; 
			} 
		} 
	} else { 
		var latitude=document.getElementById("latitude"); 
		for(var i=0; i<latitude.options.length; i++) { 
			if(latitude.options[i].value=="S") { 
				latitude.options[i].selected=true; 
				break; 
			} 
		} 
	} 
	lat=Math.abs(lat); 
	var d=parseInt(lat); 
	document.getElementById("latitudeDegree").value=d; 
	var m=parseInt((lat-d)*60); 
	var latitudeMinute=document.getElementById("latitudeMinute"); 
	for(var i=0; i<latitudeMinute.options.length; i++) { 
		if(latitudeMinute.options[i].value==m){ 
			latitudeMinute.options[i].selected=true; 
			break; 
		} 
	} 
	// set longitude 
	if(lng>=0) { 
		var longitude=document.getElementById("longitude"); 
		for(var i=0; i<longitude.options.length; i++) { 
			if(longitude.options[i].value=="E") { 
				longitude.options[i].selected=true; 
				break; 
			} 
		} 
	} else { 
		var longitude=document.getElementById("longitude"); 
		for(var i=0; i<longitude.options.length; i++) { 
			if(longitude.options[i].value=="W") { 
				longitude.options[i].selected=true; 
				break; 
			} 
		} 
	} 
	lng=Math.abs(lng); 
	d = parseInt(lng); 
	document.getElementById("longitudeDegree").value=d; 
	m = parseInt((lng-d)*60); 
	var longitudeMinute=document.getElementById("longitudeMinute"); 
	for(var i=0; i<longitudeMinute.options.length; i++) { 
		if(longitudeMinute.options[i].value==m) { 
			longitudeMinute.options[i].selected=true; 
			break; 
		} 
	} 
} 
 
function showMapZone() { 
	document.getElementById("citymenu").style.display="none";
	document.getElementById("submenu2").style.display="block";
	document.getElementById("mapzone").style.display="block";
	document.getElementById("settingmsg").style.display="none";
	document.getElementById("map_canvas").style.display="none";
	document.getElementById("submenu3").style.display="none";
	document.getElementById("detailplace").style.display="none";
} 

function showCityMenu() {
	document.getElementById("settingmsg").style.display="none";
	document.getElementById("map_canvas").style.display="none";
	document.getElementById("mapzone").style.display="none";
	document.getElementById("detailplace").style.display="none";
	document.getElementById("submenu2").style.display="none";
	document.getElementById("submenu3").style.display="none";
	document.getElementById("citymenu").style.display="block";
	document.getElementById("country").value="";
	document.getElementById("address").value="";
	setValue();
}

function showDetailPlace() { 
	document.getElementById("citymenu").style.display="none";
	document.getElementById("settingmsg").style.display="none"; 
	document.getElementById("map_canvas").style.display="none"; 
	document.getElementById("mapzone").style.display="none"; 
	document.getElementById("submenu2").style.display="none";
	document.getElementById("submenu3").style.display="block";
	document.getElementById("detailplace").style.display="block"; 
} 

function resetBirthPlace() {
	document.getElementById("settingmsg").style.display="none";
	document.getElementById("map_canvas").style.display="none";
	document.getElementById("mapzone").style.display="block";
	document.getElementById("country").value="";
	document.getElementById("address").value="";
	document.getElementById("country").focus();
}
 
function checkYear() {  
	re = /^\d{1,4}$/;  
	if (!(re.test(document.form1.year.value) && (0 <= document.form1.year.value && document.form1.year.value < 5399)))  
		alert("年代格式不正确！请输入公元出生年，例如 1988");  
	else 
		return true; 
} 
 
function checkLongitudeDegree() {  
	re = /^\d{1,3}$/;  
	if (!(re.test(document.form1.longitudeDegree.value) && (0 <= document.form1.longitudeDegree.value && document.form1.longitudeDegree.value < 180))) 
		alert("经度格式不正确！请重新输入（经度范围介于0~179）");  
	else 
		return true; 
} 
 
function checkLatitudeDegree() {  
	re = /^\d{1,3}$/;  
	if (!(re.test(document.form1.latitudeDegree.value) && (0 <= document.form1.latitudeDegree.value && document.form1.latitudeDegree.value < 90))) 
		alert("纬度格式不正确！请重新输入（纬度范围介于0~89）");  
	else 
		return true; 
} 
 
function checkHoroscopeForm() { 
	if(checkLongitudeDegree() && checkLatitudeDegree() && checkYear()) { 
		return true; 
	} else {
		return false;
	} 
} 

