function geoCode(addressField,postCodeField,longField,latField,reportError) {    
    var address = '';
    if (addressField != '') 
        address = document.getElementById(addressField).value;
    var postCode = document.getElementById(postCodeField).value;    
    var addressToSearch;
    if (address == '') 
        addressToSearch = postCode;
    else
        addressToSearch = address + ', ' + postCode;
    if (postCode != '') {
        geocoder = new GClientGeocoder();       
        geocoder.getLatLng(
            addressToSearch,
            function(point) {              
                if (!point) {
                    if (address == '') {
                        if (reportError)
                            alert(postCode + ' not found.');
                    } else {
                        if (reportError)
                            alert(address + ', ' + postCode + ' not found... trying the post-code on its own.');                        
                        geoCode('',postCodeField,longField,latField,reportError);
                    }
                } else {
                    document.getElementById(longField).value = point.x;
                    document.getElementById(latField).value = point.y;
                }
            }
        );         
    } else
        if (reportError)
            alert('Please enter the post/zip code first.');
}
