// Copyright 2006 Phillip Holmstrand 
var map,coords_div,query_input,gcObj;

function init() {
	coords_div = document.getElementById("coordsDiv");
	query_input = document.getElementById("queryInput");
	try {
		map = new YMap(document.getElementById("mapDiv"));
		map.addPanControl();
		map.addZoomLong();
		map.addTypeControl();
		map.disableKeyControls();
		yMapsZoomFix();
		YGeoCode.getMap = function(d){ endGeocode(d) };
	} catch(obj) {
		window.status = 'Map failed to load.';
	}
	var queryVal = getQueryVariable("q");
	if (queryVal.trim().length) {
		query_input.value = queryVal;
		doGeocode();
	}
	getSize(dId("mapDiv"));
}

function doGeocode() {
	startGeocode(query_input.value);
}

function startGeocode(value) {
	var gcURL = baseURL + "&qs=" + escape(value);
	gcObj = new JSONscriptRequest(gcURL);
	gcObj.buildScriptTag();
	gcObj.addScriptTag();
}

function endGeocode(data) {
	var lat, lon;
	gcObj.removeScriptTag();
	delete gcObj;
	if (data && data.GeoPoint && data.GeoPoint.Lat) {
		lat = parseFloat(data.GeoPoint.Lat);
		lon = parseFloat(data.GeoPoint.Lon);
	} else {
		lat = 0;
		lon = 0;
	}
	coords_div.innerHTML = "Latitude:&nbsp;" + lat + " &nbsp;/&nbsp; Longitude:&nbsp;" + lon; 
	var mapDesc = '<div style="width:150px;">Lat:&nbsp;' + lat + "<br>Long:&nbsp;" + lon + "<br>"; 
	map.removeMarkersAll();
	if (lat) {
		var sZ = 5;
		var marker = createMapMarker( new YMarker(new YGeoPoint(lat, lon), null), "Geocode Result", mapDesc, "", "", query_input.value, null, lat, lon);
		map.addOverlay(marker);
		map.drawZoomAndCenter(new YGeoPoint(lat, lon), sZ);
		openPointWin(marker);
	}
}
