var geocoder = null;
var request = null;

function submitenter(e)
{
var keycode;
if (window.event) keycode = window.event.keyCode;
else if (e) keycode = e.which;
else return true;

if (keycode == 13)
   {
   search();
   return false;
   }
else
   return true;
}

function init() {
	if (GBrowserIsCompatible()) {
		geocoder = new GClientGeocoder();
	}
}

function search() {
	var form = document.index_form;
	
	var street = form.street.value;
	var country = form.country.value;
	
	if(!country) {
		alert("Please Select a Country");
	}
	else {
		if(country == "United States") {
			var address;
			if(street == "") {
				address = country;
			}
			else {
				address = street+', '+country;
			}
		
			geocoder.getLatLng(address,
				function(point) {
					if (!point) {
						alert(address + " not found");
				    } 
				    else {
						document.index_form.latitude.value = point.y;
						document.index_form.longitude.value = point.x;
						document.index_form.submit();
				    }
				}
			);
		}
		else {
			process_korea(street);
		}
	}
}

function process_korea(street) {
	RedBox.loading();
	request = GXmlHttp.create();
	var url = "/tutor/ngeocode?address="+encodeURI(street);
	request.open("GET", url, true);
	request.onreadystatechange = function() {
		if (request.readyState == 4) {
			var data = request.responseText;
			var point = eval('('+data+')');
			if (point.success == false) {
				Element.hide('RB_loading');
				RedBox.close();
				alert(street + "은 올바른 주소가 아닙니다.");
			}
			else {
				document.index_form.latitude.value = point.korea_x;
				document.index_form.longitude.value = point.korea_y;
				document.index_form.submit();
			}
		}
	}
	request.send(null);
}

Event.observe (window, 'load', init, false);
Event.observe (window, 'unload', GUnload, false); // Prevent memory leaks