| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- <div class="bx-form-input-location-auto-cont bx-clearfix">
- <div>__input__</div>
- <div id="__id_status__" class="bx-def-padding-sec-left">
- <span>__location_string__</span>
- <div id="__id_status__copyright" class="bx-def-margin-thd-top bx-def-font-small bx-def-font-grayed"></div>
- </div>
- </div>
- <input type="hidden" name="__name___lat" value="__lat__" />
- <input type="hidden" name="__name___lng" value="__lng__" />
- <input type="hidden" name="__name___country" value="__country__" />
- <input type="hidden" name="__name___state" value="__state__" />
- <input type="hidden" name="__name___city" value="__city__" />
- <input type="hidden" name="__name___zip" value="__zip__" />
- <input type="hidden" name="__name___street" value="__street__" />
- <input type="hidden" name="__name___street_number" value="__street_number__" />
- <script>
- var eForm = $('#__form_id__');
- eForm.find('input[name=__name__][type=checkbox]').on('change', function () {
- var _self = this;
- var callbackOnLocationReset = function (error) {
- eForm.find('[name="__name___lat"]').val('');
- eForm.find('[name="__name___lng"]').val('');
- eForm.find('#__id_status__ span').html("<bx_text_js:_sys_location_field_label />");
- $(_self).prop("checked", false);
- $(_self).parents('.bx-switcher-cont').removeClass('on').addClass('off');
- }
- var callbackOnLocationSucess = function (position) {
- var iTimeout = 200;
- if ('undefined' !== typeof(glBxLocationFieldPlainAutoGeocodingRequest) && glBxLocationFieldPlainAutoGeocodingRequest) { // cancel previous request
- clearTimeout(glBxLocationFieldPlainAutoGeocodingRequest);
- glBxLocationFieldPlainAutoGeocodingRequest = null;
- iTimeout = 1000;
- }
- glBxLocationFieldPlainAutoGeocodingRequest = setTimeout(function () {
- $.getJSON('__nominatim_server__/reverse?lat=' + encodeURIComponent(position.coords.latitude) + '&lon=' + encodeURIComponent(position.coords.longitude) + '&format=json&addressdetails=1&email=__nominatim_email__', function (oResult) {
- glBxLocationFieldPlainAutoGeocodingRequest = false;
- if (('object' === typeof oResult) && ('undefined' !== typeof oResult.display_name) && ('undefined' !== typeof oResult.address) && ('undefined' !== typeof oResult.address.country_code)) {
- eForm.find('[name="__name___lat"]').val(position.coords.latitude);
- eForm.find('[name="__name___lng"]').val(position.coords.longitude);
- eForm.find('[name="__name___country"]').val(oResult.address.country_code.toUpperCase());
- if ('undefined' !== typeof oResult.address.suburb)
- eForm.find('[name="__name___city"]').val(oResult.address.suburb);
- else if ('undefined' !== typeof oResult.address.town)
- eForm.find('[name="__name___city"]').val(oResult.address.town);
- else if ('undefined' !== typeof oResult.address.city)
- eForm.find('[name="__name___city"]').val(oResult.address.city);
- var oMap = {
- 'postcode': '__name___zip',
- 'state': '__name___state',
- 'road': '__name___street',
- 'house_number': '__name___street_number',
- }
- $.each(oMap, function (i) {
- if ('undefined' !== typeof oResult.address[i])
- eForm.find('[name="' + this + '"]').val(oResult.address[i]);
- });
- eForm.find('#__id_status__ span').html(oResult.display_name);
- if ('undefined' !== typeof oResult.licence)
- eForm.find('#__id_status__copyright').html(oResult.licence);
- }
- else {
- eForm.find('#__id_status__ span').html(position.coords.latitude + ', ' + position.coords.longitude);
- }
- });
- }, iTimeout);
- }
- if ($(this).is(':checked')) {
- eForm.find('#__id_status__ span').html('<bx_text_js:_sys_location_determining />');
- if (navigator.geolocation)
- navigator.geolocation.getCurrentPosition(callbackOnLocationSucess, callbackOnLocationReset);
- else
- eForm.find('#__id_status__ span').html('<bx_text_js:_sys_location_geolocation_not_supported_by_browser />');
- }
- else {
- callbackOnLocationReset();
- }
- });
- </script>
|