function emitResponse (points, wp)
{
	if (wp.length != points.length)
		return;

	// log the results
	$('log').innerHTML = "<h2>Geocoding Results</h2>";
	for (var i = 0; i < wp.length; i++)
		$('log').innerHTML += "<p>" + wp[i] + ":" + points[i] + "</p>";
}

function processPoint (geocoder, wp, i, points)
{
	geocoder.getLatLng(wp[i], function(point) {
            points[i] = point;
			emitResponse (points, wp);
        });
}

function initialize() 
{
	$('log').innerHTML = "loading ...";

	var wp = new Array ();

	wp[0] = "New York, New York, USA";
	wp[1] = "London, England";
	wp[2] = "Paris, France";
	wp[3] = "Sydney, Australia";
	wp[4] = "Rome, Italy";
	wp[5] = "Houston, Texas, USA";

    var points = [];
    var geocoder = new GClientGeocoder();

    for (var i = 0; i < wp.length; i++) 
		processPoint (geocoder, wp, i, points);
}

