1(function($) { 2 3ymaps.ready(function() { 4 function addressHandler() { 5 var $form = $(".js--order-form"), 6 $addressError = $("#form_address_error", $form), 7 $submit = $("input:submit", $form), 8 $deliveryPriceInput = $("input[name='delivery_price']", $form), 9 $deliveryAddressYandex = $("input[name='delivery_address_yandex']", $form), 10 $orderDelivery = $(".order__delivery", $form), 11 $orderDeliveryPrice = $(".js--cart-delivery", $orderDelivery), 12 $orderSummary = $(".js--cart-total-sum", $form), 13 orderSummaryValue = $orderSummary.data("summary"); 14 15 16 var addressMap = new ymaps.Map("address-map", { 17 center: [55.74954, 37.621587], 18 zoom: 10 19 }), 20 suggestView = new ymaps.SuggestView("delivery-address", { 21 boundedBy: [[60.239078, 29.502410], [59.790364, 30.622473]] 22 }), 23 deliveryZones = null; 24 25 $.ajax({ 26 url: "/zones.json?v=2", 27 dataType: "json", 28 success: function(json) { 29 deliveryZones = ymaps.geoQuery(json).addToMap(addressMap); 30 } 31 }); 32 33 34 $("#delivery-address").on("blur", function() { 35 (function($input) { 36 setTimeout(function() { 37 if($input.val() != $deliveryAddressYandex.val()) { 38 $input.val($deliveryAddressYandex.val()); 39 } 40 }, 100); 41 })($(this)); 42 }); 43 44 45 46 suggestView.events.add("select", function (e) { 47 var request = e.get("item").value, 48 error, freeAfter, price, minimalPrice; 49 50 $deliveryAddressYandex.val(request); 51 52 ymaps.geocode(request).then(function(res) { 53 var obj = res.geoObjects.get(0); 54 if(obj) { 55 // Ðб оÑенке ÑоÑноÑÑи оÑвеÑа геокодеÑа можно пÑоÑиÑаÑÑ ÑÑÑ: https://tech.yandex.ru/maps/doc/geocoder/desc/reference/precision-docpage/ 56 switch(obj.properties.get("metaDataProperty.GeocoderMetaData.precision")) { 57 case "exact": 58 var zone = deliveryZones.searchContaining(obj.geometry.getCoordinates()).get(0); 59 if(zone) { 60 error = ""; 61 } else { 62 error = "Ð ÑожалениÑ, Ð¼Ñ Ð½Ðµ можем доÑÑавиÑÑ Ð·Ð°ÐºÐ°Ð· на ÑказаннÑй адÑеÑ"; 63 } 64 65 break; 66 67 case "number": 68 case "near": 69 case "range": 70 case "street": 71 error = "ÐеполнÑй адÑеÑ, ÑÑебÑеÑÑÑ ÑÑоÑнение. УÑоÑниÑе Ð½Ð¾Ð¼ÐµÑ Ð´Ð¾Ð¼Ð°"; 72 break; 73 74 case "other": 75 default: 76 error = "ÐеÑоÑнÑй адÑеÑ, ÑÑебÑеÑÑÑ ÑÑоÑнение. УÑоÑниÑе адÑеÑ"; 77 } 78 } else { 79 error = "ÐдÑÐµÑ Ð½Ðµ найден. УÑоÑниÑе адÑеÑ"; 80 } 81 82 if(error) { 83 $addressError.text(error).show(); 84 $submit.attr("disabled", "disabled"); 85 } else { 86 $addressError.empty().hide(); 87 $submit.removeAttr("disabled"); 88 } 89 90 91 92 }, function(e) { 93 console.log(e); 94 }); 95 }); 96 } 97 98 99 addressHandler(); 100 101 102}); 103 104})(jQuery);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.