forked from Netsyms/PackageHelper
You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
71 lines
1.7 KiB
JavaScript
71 lines
1.7 KiB
JavaScript
/*
|
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
*/
|
|
|
|
var autofillDB = {};
|
|
|
|
if (localStorage.getItem("autofill_db") != null) {
|
|
autofillDB = JSON.parse(localStorage.getItem("autofill_db"));
|
|
}
|
|
|
|
function addressToNumberAndStreet(address) {
|
|
var number = "";
|
|
var street = "";
|
|
|
|
var addressRegex = RegExp("^[0-9]+ .+$");
|
|
if (addressRegex.test(address)) {
|
|
number = address.split(" ", 2)[0];
|
|
street = address.substring(address.indexOf(' ') + 1);
|
|
}
|
|
|
|
return [number, street];
|
|
}
|
|
|
|
function addAutofillEntry(address) {
|
|
var [number, street] = addressToNumberAndStreet(address);
|
|
|
|
if (number == "" || street == "") {
|
|
return;
|
|
}
|
|
|
|
if (typeof autofillDB[number] == 'undefined') {
|
|
autofillDB[number] = [
|
|
[street, 1]
|
|
];
|
|
} else {
|
|
var found = false;
|
|
for (var i = 0; i < autofillDB[number].length; i++) {
|
|
if (autofillDB[number][i][0] == street) {
|
|
autofillDB[number][i][1]++;
|
|
found = true;
|
|
break;
|
|
}
|
|
}
|
|
|
|
if (!found) {
|
|
autofillDB[number].push([street, 1]);
|
|
}
|
|
}
|
|
|
|
localStorage.setItem("autofill_db", JSON.stringify(autofillDB));
|
|
}
|
|
|
|
function searchAutofill(number) {
|
|
if (typeof autofillDB[number] == 'undefined') {
|
|
return [];
|
|
}
|
|
|
|
var sorted = autofillDB[number].sort(function (a, b) {
|
|
return b[1] - a[1];
|
|
});
|
|
|
|
var streets = [];
|
|
|
|
for (var i = 0; i < sorted.length; i++) {
|
|
streets.push(sorted[i][0]);
|
|
}
|
|
|
|
return streets;
|
|
} |