Your IP : 216.73.217.77


Current Path : /home/users/unlimited/www/foodbank.codeskitter.site/public/themes/scripts/
Upload File :
Current File : /home/users/unlimited/www/foodbank.codeskitter.site/public/themes/scripts/location-search.js

$(function () {
    "use strict";
     
    var origin, destination, map;
    if (localStorage.getItem('location') != '') {
        var location= localStorage.getItem('location');
        var city= localStorage.getItem('city');

        $('#autocomplete-input').val(location);
        $('#city').val(city);
        $('#lat').val(localStorage.getItem('lat'));
        $('#long').val(localStorage.getItem('long'));
    }

    LocationInput();
});

    // get current Position
    $('#locationIcon').on('click',function(){
        GetMyCurrentLocation();
    });

    function GetMyCurrentLocation(){
        if (navigator.geolocation) {
            navigator.geolocation.getCurrentPosition(setCurrentPosition);
        } else {
            alert("Geolocation is not supported by this browser.")
        }
    }

    function LocationInput() {
     var to_places = new google.maps.places.Autocomplete(document.getElementById('autocomplete-input'));
     var place = to_places.getPlace();

     google.maps.event.addListener(to_places, 'place_changed', function () {

        var to_place = to_places.getPlace(); 
        var to_address = to_place.formatted_address;
        $('#autocomplete-input').val(to_address);
        // $('#district').val(to_places.getPlace().address_components[2]['long_name'])
        localStorage.setItem('location',to_address);
        // localStorage.setItem('district',to_places.getPlace().address_components[2]['long_name']);
        var place = to_places.getPlace();

        localStorage.setItem('lat',place.geometry.location.lat());
        localStorage.setItem('long',place.geometry.location.lng());

        $('#lat').val(place.geometry.location.lat());
        $('#long').val(place.geometry.location.lng());

        var geocoder = new google.maps.Geocoder();
        var latlng = {lat: parseFloat(place.geometry.location.lat()), lng: parseFloat(place.geometry.location.lng())};
        setcity(latlng);

    });
 }


    // get formatted address based on current position and set it to input
    function setCurrentPosition(pos) {
        var geocoder = new google.maps.Geocoder();
        var latlng = {lat: parseFloat(pos.coords.latitude), lng: parseFloat(pos.coords.longitude)};
        
        localStorage.setItem('lat',latlng.lat);
        localStorage.setItem('long',latlng.lng);

        geocoder.geocode({ 'location' :latlng  }, function (responses) {

            if (responses && responses.length > 0) {
               $('#autocomplete-input').val(responses[0].formatted_address)
            //    $('#district').val(responses[1].address_components[3]['long_name'])
               localStorage.setItem('location',responses[0].formatted_address);
            //    localStorage.setItem('district',responses[1].address_components[3]['long_name']);

               $('#lat').val(latlng.lat);
               $('#long').val(latlng.lng);
               setcity(latlng);

           } else {
            alert("Cannot determine address at this location.")
        }
    });
    }


    function setcity(latlng,lat=false) {
       new google.maps.Geocoder().geocode({'latLng' : latlng}, function(results, status) {
        if (status == google.maps.GeocoderStatus.OK) {
            if (results[1]) {
                var country = null, countryCode = null, city = null, cityAlt = null;
                var c, lc, component;
                for (var r = 0, rl = results.length; r < rl; r += 1) {
                    var result = results[r];

                    if (!city && result.types[0] === 'locality') {
                        for (c = 0, lc = result.address_components.length; c < lc; c += 1) {
                            component = result.address_components[c];

                            if (component.types[0] === 'locality') {
                                city = component.long_name;
                                break;
                            }
                        }
                    }
                    else if (!city && !cityAlt && result.types[0] === 'administrative_area_level_1') {
                        for (c = 0, lc = result.address_components.length; c < lc; c += 1) {
                            component = result.address_components[c];

                            if (component.types[0] === 'administrative_area_level_1') {
                                cityAlt = component.long_name;
                                break;
                            }
                        }
                    } else if (!country && result.types[0] === 'country') {
                        country = result.address_components[0].long_name;
                        countryCode = result.address_components[0].short_name;
                    }

                    if (city && country) {
                        break;
                    }
                }
                $('#city').val(city);
                localStorage.setItem('city',city);

            }
        }
    });
   }