var addr_fields = ['address', 'city', 'zip', 'country'];

function showGeocodeFill() {
    var visible =  false;
    for (var i=0; i<addr_fields.length; i++) {
	visible |= document.getElementById(addr_fields[i]).value!="";
    }
    var e_geoloc = document.getElementById('geoloc');
    if (visible) {
	e_geoloc.style.visibility = "visible";
    } else {
	e_geoloc.style.visibility = "hidden";
    }
}

function getAddress() {
    var s = "";
    var v = document.getElementById('address').value;
    if (v) s += v;
    v = document.getElementById('zip').value;
    if (v) s += ", " + v;
    v = document.getElementById('city').value;
    if (v) s += ", " + v;
    v = document.getElementById('country').value;
    if (v) s+= ", " + v;

    return s;
}

function fetchGeocode(s) {
    var geocoder = new GClientGeocoder();
    geocoder.getLatLng(s,
		       function setGeocode(point) {
			   var lat_e = document.getElementById('latitude');
			   var lng_e = document.getElementById('longitude');
			   if (point) {
			       lat_e.value = point.lat();
			       lng_e.value = point.lng();
			   } else {
			       lat_e.value = 0.0;
			       lng_e.value = 0.0;
			   }
		       }
		       );
}

