1(function ($) { 2 3 var lpregions = false; 4 var lpattern = jQuery('#page').data('lpattern'); 5 if (lpattern === "with_region") { 6 lpregions = true; 7 } 8 9 10 $.fn.cityAutocomplete = function (options) { 11 var autocompleteService = new google.maps.places.AutocompleteService(); 12 var predictionsDropDown = $('<div class="city-autocomplete"></div>').appendTo('body'); 13 var input = this; 14 15 input.keyup(function () { 16 var searchStr = $(this).val(); 17 18 if (searchStr.length > 0) { 19 20 if (!lpregions) { 21 var params = { 22 input: searchStr, 23 types: ['(cities)'] 24 }; 25 } else { 26 var params = { 27 input: searchStr, 28 types: ['(regions)'] 29 }; 30 } 31 32 33 if (input.data('country').length > 0) { 34 params.componentRestrictions = { country: input.data('country') } 35 } 36 37 autocompleteService.getPlacePredictions(params, updatePredictions); 38 } else { 39 predictionsDropDown.hide(); 40 } 41 }); 42 43 predictionsDropDown.delegate('div', 'click', function () { 44 substrr = $(this).text(); 45 //New update 2.7.0 46 substrr = substrr.split(","); 47 substrr = substrr[0] + ',' + substrr[1]; 48 //End New update 2.7.0 49 jQuery('input[name=lp_s_loc]').val(substrr); 50 jQuery('input[name=location]').val(substrr); 51 input.val($(this).text()); 52 input.data('isseleted', 'true'); 53 predictionsDropDown.hide(); 54 }); 55 56 $(document).mouseup(function (e) { 57 if (!predictionsDropDown.is(e.target) && predictionsDropDown.has(e.target).length === 0) { 58 predictionsDropDown.hide(); 59 } 60 }); 61 62 $(window).resize(function () { 63 updatePredictionsDropDownDisplay(predictionsDropDown, input); 64 }); 65 66 updatePredictionsDropDownDisplay(predictionsDropDown, input); 67 68 function updatePredictions(predictions, status) { 69 if (google.maps.places.PlacesServiceStatus.OK != status) { 70 predictionsDropDown.hide(); 71 return; 72 } 73 74 predictionsDropDown.empty(); 75 var predcities = []; 76 $.each(predictions, function (i, prediction) { 77 if (!lpregions) { 78 predcities.push($.fn.cityAutocomplete.transliterate(prediction.terms[0].value)); 79 } else { 80 predcities.push(prediction.description); 81 } 82 }); 83 if (!lpregions) { 84 predcities = predcities.filter((v, i, a) => a.indexOf(v) === i); 85 } 86 $.each(predcities, function (i, cities) { 87 predictionsDropDown.append('<div class="help">' + cities + '</div'); 88 }); 89 predictionsDropDown.show(); 90 } 91 92 return input; 93 }; 94 95 $.fn.cityAutocomplete.transliterate = function (s) { 96 s = String(s); 97 98 var char_map = { 99 // Latin 100 'Ã': 'A', 'Ã': 'A', 'Ã': 'A', 'Ã': 'A', 'Ã': 'A', 'à ': 'A', 'Ã': 'AE', 'Ã': 'C', 101 'Ã': 'E', 'Ã': 'E', 'Ã': 'E', 'Ã': 'E', 'Ã': 'I', 'Ã': 'I', 'Ã': 'I', 'Ã': 'I', 102 'Ã': 'D', 'Ã': 'N', 'Ã': 'O', 'Ã': 'O', 'Ã': 'O', 'Ã': 'O', 'Ã': 'O', 'Å': 'O', 103 'Ã': 'O', 'Ã': 'U', 'Ã': 'U', 'Ã': 'U', 'Ã': 'U', 'Ű': 'U', 'Ã': 'Y', 'Ã': 'TH', 104 'Ã': 'ss', 105 'à ': 'a', 'á': 'a', 'â': 'a', 'ã': 'a', 'ä': 'a', 'Ã¥': 'a', 'æ': 'ae', 'ç': 'c', 106 'è': 'e', 'é': 'e', 'ê': 'e', 'ë': 'e', 'ì': 'i', 'Ã': 'i', 'î': 'i', 'ï': 'i', 107 'ð': 'd', 'ñ': 'n', 'ò': 'o', 'ó': 'o', 'ô': 'o', 'õ': 'o', 'ö': 'o', 'Å': 'o', 108 'ø': 'o', 'ù': 'u', 'ú': 'u', 'û': 'u', 'ü': 'u', 'ű': 'u', 'ý': 'y', 'þ': 'th', 109 'ÿ': 'y', 110 111 // Latin symbols 112 '©': '(c)', 113 114 // Greek 115 'Î': 'A', 'Î': 'B', 'Î': 'G', 'Î': 'D', 'Î': 'E', 'Î': 'Z', 'Î': 'H', 'Î': '8', 116 'Î': 'I', 'Î': 'K', 'Î': 'L', 'Î': 'M', 'Î': 'N', 'Î': '3', 'Î': 'O', 'Î ': 'P', 117 'Ρ': 'R', 'Σ': 'S', 'Τ': 'T', 'Î¥': 'Y', 'Φ': 'F', 'Χ': 'X', 'Ψ': 'PS', 'Ω': 'W', 118 'Î': 'A', 'Î': 'E', 'Î': 'I', 'Î': 'O', 'Î': 'Y', 'Î': 'H', 'Î': 'W', 'Ϊ': 'I', 119 'Ϋ': 'Y', 120 'α': 'a', 'β': 'b', 'γ': 'g', 'δ': 'd', 'ε': 'e', 'ζ': 'z', 'η': 'h', 'θ': '8', 121 'ι': 'i', 'κ': 'k', 'λ': 'l', 'μ': 'm', 'ν': 'n', 'ξ': '3', 'ο': 'o', 'Ï': 'p', 122 'Ï': 'r', 'Ï': 's', 'Ï': 't', 'Ï ': 'y', 'Ï': 'f', 'Ï': 'x', 'Ï': 'ps', 'Ï': 'w', 123 'ά': 'a', 'Î': 'e', 'ί': 'i', 'Ï': 'o', 'Ï': 'y', 'ή': 'h', 'Ï': 'w', 'Ï': 's', 124 'Ï': 'i', 'ΰ': 'y', 'Ï': 'y', 'Î': 'i', 125 126 // Turkish 127 'Å': 'S', 'İ': 'I', 'Ã': 'C', 'Ã': 'U', 'Ã': 'O', 'Ä': 'G', 128 'Å': 's', 'ı': 'i', 'ç': 'c', 'ü': 'u', 'ö': 'o', 'Ä': 'g', 129 130 // Russian 131 'Ð': 'A', 'Ð': 'B', 'Ð': 'V', 'Ð': 'G', 'Ð': 'D', 'Ð': 'E', 'Ð': 'Yo', 'Ð': 'Zh', 132 'Ð': 'Z', 'Ð': 'I', 'Ð': 'J', 'Ð': 'K', 'Ð': 'L', 'Ð': 'M', 'Ð': 'N', 'Ð': 'O', 133 'Ð': 'P', 'Ð ': 'R', 'С': 'S', 'Т': 'T', 'У': 'U', 'Ф': 'F', 'Ð¥': 'H', 'Ц': 'C', 134 'Ч': 'Ch', 'Ш': 'Sh', 'Щ': 'Sh', 'Ъ': '', 'Ы': 'Y', 'Ь': '', 'Ð': 'E', 'Ю': 'Yu', 135 'Я': 'Ya', 136 'а': 'a', 'б': 'b', 'в': 'v', 'г': 'g', 'д': 'd', 'е': 'e', 'Ñ': 'yo', 'ж': 'zh', 137 'з': 'z', 'и': 'i', 'й': 'j', 'к': 'k', 'л': 'l', 'м': 'm', 'н': 'n', 'о': 'o', 138 'п': 'p', 'Ñ': 'r', 'Ñ': 's', 'Ñ': 't', 'Ñ': 'u', 'Ñ': 'f', 'Ñ ': 'h', 'Ñ': 'c', 139 'Ñ': 'ch', 'Ñ': 'sh', 'Ñ': 'sh', 'Ñ': '', 'Ñ': 'y', 'Ñ': '', 'Ñ': 'e', 'Ñ': 'yu', 140 'Ñ': 'ya', 141 142 // Ukrainian 143 'Ð': 'Ye', 'Ð': 'I', 'Ð': 'Yi', 'Ò': 'G', 144 'Ñ': 'ye', 'Ñ': 'i', 'Ñ': 'yi', 'Ò': 'g', 145 146 // Czech 147 'Ä': 'C', 'Ä': 'D', 'Ä': 'E', 'Å': 'N', 'Å': 'R', 'Å ': 'S', 'Ť': 'T', 'Å®': 'U', 148 'Ž': 'Z', 149 'Ä': 'c', 'Ä': 'd', 'Ä': 'e', 'Å': 'n', 'Å': 'r', 'Å¡': 's', 'Å¥': 't', 'ů': 'u', 150 'ž': 'z', 151 152 // Polish 153 'Ä': 'A', 'Ä': 'C', 'Ä': 'e', 'Å': 'L', 'Å': 'N', 'Ã': 'o', 'Å': 'S', 'Ź': 'Z', 154 'Å»': 'Z', 155 'Ä ': 'a', 'Ä': 'c', 'Ä': 'e', 'Å': 'l', 'Å': 'n', 'ó': 'o', 'Å': 's', 'ź': 'z', 156 'ż': 'z', 157 158 // Latvian 159 'Ä': 'A', 'Ä': 'C', 'Ä': 'E', 'Ä¢': 'G', 'Ī': 'i', 'Ķ': 'k', 'Ä»': 'L', 'Å ': 'N', 160 'Å ': 'S', 'Ū': 'u', 'Ž': 'Z',
161 'Ä': 'a', 'Ä': 'c', 'Ä': 'e', 'Ä£': 'g', 'Ä«': 'i', 'Ä·': 'k', 'ļ': 'l', 'Å': 'n', 162 'Å¡': 's', 'Å«': 'u', 'ž': 'z' 163 }; 164 165 for (var k in char_map) { 166 s = s.replace(new RegExp(k, 'g'), char_map[k]); 167 } 168 169 return s; 170 }; 171 172 function updatePredictionsDropDownDisplay(dropDown, input) { 173 dropDown.css({ 174 'width': input.outerWidth(), 175 'left': input.offset().left, 176 'top': input.offset().top + input.outerHeight() 177 }); 178 } 179 180}(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.