Well, based on your IP tracking, you can find the user country through your IP address, the entire list of cities, for certain countries that you can find somewhere, and add it to your functions, you probably also need some ajax functions to feed or even better JSON.
source share