var submitFlag;
var point;
var execute;
var timerId;
var seekCount;

function search() {
	submitFlag = false;
	point = null;
	execute = false;
	if (timerId != null) {
		clearInterval(timerId);
	}
	timerId = null;
	seekCount = 0;
	
	var gClientGeocoder = new GClientGeocoder();
	var address = document.search_form.address.value;
	gClientGeocoder.getLatLng(address,
		function (latLng) {
			point = latLng;
			execute = true;
			
			if (latLng) {
				submitFlag = true;
				document.search_form.x_coordinate.value = latLng.lat();
				document.search_form.y_coordinate.value = latLng.lng();
			} else {
				window.alert("「" + address + "」は見つかりませんでした。");
			}
		}
	);
	
	timerId = setInterval(observer, 100); 
	return submitFlag;
}

function observer() {
	seekCount++;
	if (execute) {
		clearInterval(timerId);
		if (point != null) {
			document.search_form.submit();
		}
	}
	
	// タイムアウト
	if (seekCount > 20) {
		clearInterval(timerId);
	}
}
