PageSourceSearch

https://myportal.smartstartinc.com/js/ViewModels/CustomerOnboardin…vtwns_-qEEAScU2DROF4XPMrQ83Iq-Uh4dP8w8YfSRI

js smartstartinc.com collected 2026-10-01 12:35:34 UTC 8,530 bytes, 198 lines download raw bytes

1function DriverLicenseVm() {
2    var self = this;
3
4    self.initCustomerData = ko.observable();
5    self.firstName = ko.observable();
6    self.middleName = ko.observable();      //we do not get it from Anyline
7    self.lastName = ko.observable();
8    self.dateOfBirth = ko.observable();
9    self.address = ko.observable();
10    self.address2 = ko.observable();
11    self.city = ko.observable();
12    self.state = ko.observable();
13    self.dateOfExpiry = ko.observable();
14    self.idNumber = ko.observable();
15    self.zipCode = ko.observable();
16
17    self.AddressVm = new AddressLookupVm();
18    self.ManualAddressVm = new AddressLookupVm();
19    self.DriverLicenseScanResult = ko.observable();
20
21    self.showManualAddressEntry = ko.observable(false);
22    self.scannedDataValid = ko.observable(true);
23
24    //Anyline callback
25    self.showDriverLicenseScanResults = function (data) {
26        if (data) {
27            $('#driver-license-scan').hide();
28
29            self.DriverLicenseScanResult(data);
30            self.firstName(data.firstName?.trim());
31            self.middleName(data.middleName?.trim());
32            self.lastName(data.lastName?.trim());
33            self.dateOfBirth(data.dateOfBirth);
34            self.address(data.street?.trim());
35            var street2 = data['street-2'] || '';
36            self.address2(street2.trim());
37            self.city(data.city?.trim());
38            self.state(data.jurisdictionCode?.trim());
39            self.dateOfExpiry(data.dateOfExpiry);
40            self.idNumber(data.customerIDNumber?.trim());
41            var postalCode = data.postalCode?.trim() || '';
42            self.zipCode(postalCode.length > 5 ? postalCode.substring(0, 5) : postalCode);
43
44            self.AddressVm.CountryCode(data.countryID === "USA" ? "US" : data.countryID === "CAN" ? "CA" : data.countryID?.trim());
45            self.AddressVm.Zipcode(self.zipCode());
46            self.AddressVm.LookupZipcode(self.filterLocalityByCity);
47
48            $('#driver-license-result').show();
49            //hide anyline container that SHOULD exist and has HEIGHT, but not be visible
50            $('#driverLicenseScanScreen').css("height", "1px");
51            $('#driverLicenseScanScreen').css("margin-top", "0");
52            $('#driverLicenseScanScreen').css("visibility", "hidden");
53
54            LogDriverLicenseVerificationScan(self.hasCustomerDataDiscrepancy());
55
56            if (isNaN(Date.parse(data.dateOfBirth)) || (data.dateOfExpiry && isNaN(Date.parse(data.dateOfExpiry)))) {
57                self.scannedDataValid(false);
58            }
59
60            if (self.firstName() == '' || self.firstName() == 'NONE' ||
61                self.lastName() == '' || self.lastName() == 'NONE' ||
62                self.scannedDataValid() == false) {
63                LogDriverLicenseVerificationScanDataInvalid();
64            }
65        }
66    };
67
68    self.stopScanning = function () {
69        if (anyline && anyline.isLoaded) {
70            anyline.stopScanning();
71        }        
72        history.back();
73    };
74
75    self.driverLicenseBypass = function (url) {        
76        window.location = url;
77    };
78    self.driverLicenseSkipped = function (url) {
79        LogDriverLicenseSkipped();
80        window.location = url;
81    };
82
83    self.SelectLocality = function (locality) {
84        if (locality) {
85            self.AddressVm.SelectedLocality(locality);
86            self.address(self.DriverLicenseScanResult().street);
87            self.address2(self.DriverLicenseScanResult()['street-2']);
88            self.zipCode(self.DriverLicenseScanResult().postalCode);
89        }
90        else if (self.initCustomerData()) {
91            self.AddressVm.SelectedLocality({
92                id: self.initCustomerData().Address.LocalityId()
93            });
94            self.address(self.initCustomerData().Address.StreetAddress1());
95            self.address2(self.initCustomerData().Address.StreetAddress2());
96            self.zipCode(self.initCustomerData().Address.ZipPostalCode());
97        }
98        self.showManualAddressEntry(false);
99        self.ManualAddressVm.LocalityId(null);
100    };
101
102    self.toggleShowManualAddressEntry = function () {
103        self.showManualAddressEntry(!self.showManualAddressEntry());
104        self.AddressVm.LocalityId(null);
105        self.address(null);
106        self.address2(null);
107    };
108
109    self.submitDriverLicenseScanResult = function () {
110        if (self.showManualAddressEntry() === true && self.ManualAddressVm.LocalityId()) {
111            self.AddressVm.LocalityId(self.ManualAddressVm.LocalityId());
112        }
113        LogDriverLicenseVerificationComplete();
114        $('form').submit();
115    };
116
117    self.initCustomerDataAddresses = function () {
118
119        return self.initCustomerData().Address.StreetAddress1() + (self.initCustomerData().Address.StreetAddress2() ? ', ' + self.initCustomerData().Address.StreetAddress2() : '');
120    };
121
122    self.driverLicenseScanResultAddress = function () {
123
124        return self.DriverLicenseScanResult().street + (self.DriverLicenseScanResult()['street-2'] ? ', ' + self.DriverLicenseScanResult()['street-2'] : '');
125    };
126
127    self.initCustomerDataLabel = function () {
128        if (self.initCustomerData()) {
129            return self.initCustomerData().City() + ' | ' + self.initCustomerData().County() + ' | ' + self.initCustomerData().State() + ' | ' + self.initCustomerData().Address.ZipPostalCode();
130        }
131        else {
132            return '';
133        }
134    }
135
136    self.filterLocalityByCity = function (data) {
137        if (data.length == 0) LogDriverLicenseVerificationScanDataInvalid();
138        var filteredLocalityList = data.filter(function (locality) { return locality.municipality.toLowerCase() == self.city().toLowerCase() });
139        if (filteredLocalityList.length > 0) {
140            self.AddressVm.LocalityList(filteredLocalityList);
141        }
142        else {
143            self.AddressVm.LocalityList(data);
144        }
145    }
146
147    self.hasCustomerDataDiscrepancy = ko.computed(function () {
148        return self.initCustomerData() &&
149            (
150                (self.initCustomerData().FirstName() && self.firstName() && self.firstName().toLowerCase() !== self.initCustomerData().FirstName().toLowerCase()) ||
151                (self.initCustomerData().MiddleName() && self.middleName() && self.middleName().toLowerCase() !== self.initCustomerData().MiddleName().toLowerCase()) ||
152                (self.initCustomerData().LastName() && self.lastName() && self.lastName().toLowerCase() !== self.initCustomerData().LastName().toLowerCase()) ||
153                (self.initCustomerData().DateOfBirth() && self.dateOfBirth() && self.dateOfBirth().toLowerCase() !== self.initCustomerData().DateOfBirth().toLowerCase())
154            );
155    });
156
157    self.hasAddressDiscrepancy = ko.computed(function () {
158        if (self.initCustomerData() && self.DriverLicenseScanResult()) {
159            return self.address() !== self.initCustomerData().Address.StreetAddress1()
160                || self.address2() !== self.initCustomerData().Address.StreetAddress2()
161                || self.city() !== self.initCustomerData().City()
162                || self.state() !== self.initCustomerData().State()
163                || self.zipCode() !== self.initCustomerData().Address.ZipPostalCode();
164        }
165        else {
166            return false;
167        }
168    });
169
170    self.showAddressSelection = ko.computed(function () {
171        if (self.AddressVm.LocalityList().length == 0) {
172            return false;
173        }
174        else if (self.AddressVm.LocalityList().length == 1) {
175            self.SelectLocality(self.AddressVm.LocalityList()[0]);
176            return true;
177        }
178        else {
179            return true;
180        }
181    });
182
183    self.manualAddressEntryText = ko.computed(function () {
184        if (self.showManualAddressEntry() === true) {
185            return localizationHelper.onboarding.hideManualEntry;
186        }
187        else {
188            if (self.ManualAddressVm.LocalityList().length == 0) {
189                self.ManualAddressVm.Zipcode(self.zipCode());
190            }
191            return localizationHelper.onboarding.enterMyAddressManually;
192        }
193    });
194
195    self.enableSubmitDriverLicenseScanResult = ko.computed(function () {
196        return self.scannedDataValid() === true && self.address() && (self.AddressVm.LocalityId() || self.ManualAddressVm.LocalityId());
197    });
198}

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.