// $.getscript("http://maps.googleapis.com/maps/api/js?sensor=false",function(){

    var callFn;
    var cityName = "Mumbai";
    var geocoder;

    if (navigator.geolocation) {
        navigator.geolocation.getCurrentPosition(successFunction, errorFunction);
    }

    function initialize(callbackFn) {
        callFn = function() {callbackFn()};
        geocoder = new google.maps.Geocoder();
    }
    
    //Get the latitude and the longitude;
    function successFunction(position) {
        var lat = position.coords.latitude;
        var lng = position.coords.longitude;
        codeLatLng(lat, lng)
    }

    function errorFunction(msg){
        alert("Geocoder failed with code " + msg.code + " due to " + msg.message);
        callFn();
    }


    function codeLatLng(lat, lng) {

        var latlng = new google.maps.LatLng(lat, lng);
        geocoder.geocode({'latLng': latlng}, function(results, status) {
        if (status == google.maps.GeocoderStatus.OK) {
        console.log(results)
            if (results[1]) {
                //formatted address
                // alert(results[0].formatted_address)
                //find country name
                for (var i=0; i<results[0].address_components.length; i++) {
                    for (var b=0;b<results[0].address_components[i].types.length;b++) {

                    //there are different types that might hold a city admin_area_lvl_1 usually does in come cases looking for sublocality type will be more appropriate
                        // if (results[0].address_components[i].types[b] == "administrative_area_level_1") {
                        if (results[0].address_components[i].types[b] == "locality") {
                            //this is the object you are looking for
                            city = results[0].address_components[i];
                            break;
                        }
                    }
                }
                //city data
                // alert(city.short_name + " " + city.long_name)
                cityName = city.long_name;
                callFn();
                // alert(cityName);
                // window.location.href="{{ url_for('getWeather', city='" + city.long_name + "') }}"
            } else {
            alert("No results found");
            }
        } else {
            alert("Geocoder failed due to: " + status);
        }
        });
    }

// });
