function useAddressLookup(params) {
    $(function() {
        var addressField = $('#' + params.addressFieldId);
        var countryField = $('#' + params.countryFieldId);
        $('#' + params.addressFieldId).autocomplete(
            function(address, callback) {
                var addr = {
                    'country': countryField[0].value,
                    'address': addressField[0].value
                };
                $.get('/lookup_address.php', {addr: $.toJson(addr) }, function(addrList) {
                    addrList = $.parseJson(addrList);
                    var filteredAddrList = [];
                    for (var i = 0; i < addrList.length; i++) {
                        // strip country, we have separate select box for it
                        var displayAddress = addrList[i].split(',').slice(0,-1).join(',');
                        if (displayAddress) filteredAddrList[i] = [displayAddress];
                    }
                    callback(filteredAddrList);
                });
            }, {
            //valueFieldId: params.addressFieldId + '_placemark',
            matchCase: false,
            emptyHint: 'Select a location from the list<br> that appears as you type',
            //noMatchHint: 'No matches found',
            placeholder: params.placeholder || ''
        });
        
        // reset address on country change
        countryField.change(function() {
            addressField[0].value = params.placeholder || '';
            addressField.change();
        });
    });
}