1;(function (root, init) { 2 if (typeof root.jQuery === "undefined") { 3 throw "This module requires jQuery, please install." 4 } 5 6 init(root.LoanAppService = root.LoanAppService || {}, root.jQuery); 7})(window, function (exports, $) { 8 'use strict'; 9 10 var pageSetting = {}, appJsonRequest, appNewURLAJsonRequest; 11 var MAIN_TAG_SELECTOR = '#main'; 12 13 //#region Function declaration 14 /** 15 * Get data from main tag 16 * @param name 17 * @returns {*|undefined} 18 */ 19 pageSetting.get = function (name) { 20 var $main = $(MAIN_TAG_SELECTOR); 21 return $main.length > 0 ? $main.attr('data-' + name) : undefined; 22 } 23 24 /** 25 * Set data to main tag 26 * @param name 27 * @param value 28 */ 29 pageSetting.set = function (name, value) { 30 var $main = $(MAIN_TAG_SELECTOR); 31 32 if ($main.length > 0) { 33 $main.data('name', value); 34 $main.attr('data-' + name, value); 35 } 36 } 37 38 appJsonRequest = function (action, payload, opts) { 39 var ajaxOptions = $.extend(true, opts || {}, { 40 url: "/scripts/scriptsApp.php", 41 type: "POST", 42 data: JSON.stringify($.extend(true, payload, { 43 action: action 44 })), 45 headers: { 46 "Content-Type": "application/json" 47 } 48 }); 49 50 return $.ajax(ajaxOptions); 51 } 52 53 appNewURLAJsonRequest = function (action, payload) { 54 payload = payload || {}; 55 payload.isNewURLA = 1; 56 57 return appJsonRequest(action, payload); 58 } 59 60 //#endregion Function declaration 61 62 exports.pageSetting = pageSetting; 63 exports.appJsonRequest = appJsonRequest; 64 exports.appNewURLAJsonRequest = appNewURLAJsonRequest; 65}); 66 67;(function (exports, global) { 68 'use strict'; 69 70 var getLocationByZipcode, getSystemError; 71 72 //#region Function declaration 73 /** 74 * Fetch location information by zipcode 75 * @param zipcode 76 */ 77 getLocationByZipcode = function (zipcode) { 78 return LoanAppService.appJsonRequest("getLocationFromZipcode", { 79 zipcode: zipcode 80 }); 81 }; 82 83 getSystemError = function () { 84 var verbiage = typeof global.verbiage !== "undefined" ? global.verbiage.get('UnexpectedError') : ""; 85 return typeof verbiage === "undefined" || verbiage === null || verbiage.toString().trim().length === 0 86 ? "An error occurred. Please contact your loan officer for assistance." 87 : verbiage; 88 }; 89 //#endregion Function declaration 90 91 // Publish for usage 92 exports.getLocationByZipcode = getLocationByZipcode; 93 exports.getSystemError = getSystemError; 94 95})(window.LoanAppService.Utils = window.LoanAppService.Utils || {}, window); 96 97 98/** 99 * [Loan Asset] Define service API for loan asset 100 */ 101;(function (exports, global) { 102 'use strict'; 103 104 var master = global.LoanAppService, remove, add, verify; 105 106 var handler = function (payload) { 107 return master.appNewURLAJsonRequest('assetHandler', payload); 108 }; 109 110 remove = function (loanPublicID, assetID) { 111 return handler({ 112 subAction: 'removeAsset', 113 assetID: assetID, 114 publicLoanID: loanPublicID 115 }); 116 }; 117 118 add = function (loanPublicID, assetInfo) { 119 return handler({ 120 subAction: 'addAsset', 121 assetInfo: assetInfo, 122 publicLoanID: loanPublicID 123 }); 124 }; 125 126 verify = function (loanPublicID, pageData) { 127 return handler({ 128 subAction: 'verifyAssets', 129 pageData: pageData, 130 publicLoanID: loanPublicID 131 }); 132 }; 133 134 // For global usage. 135 exports.remove = remove; 136 exports.add = add; 137 exports.verify = verify; 138 139 /** 140 * For particular loan usage. 141 * @param loanPublicID 142 * @returns {{}} 143 */ 144 exports.create = function (loanPublicID) { 145 var s = {}; 146 147 s.add = function (assetInfo) { 148 return add(loanPublicID, assetInfo) 149 }; 150 151 s.remove = function (assetID) { 152 return remove(loanPublicID, assetID) 153 }; 154 155 s.verify = function (pageData) { 156 return verify(loanPublicID, pageData) 157 }; 158 159 return s; 160 }; 161 162})(window.LoanAppService.Asset = window.LoanAppService.Asset || {}, window); 163 164/** 165 * [Loan Liability] Define service API for loan liability 166 */ 167;(function (exports, global) { 168 'use strict'; 169 170 var master = global.LoanAppService, remove, add, verify, addNewProperty; 171 172 var handler = function (payload) { 173 return master.appNewURLAJsonRequest('liabilityHandler', payload); 174 } 175 176 remove = function (loanPublicID, liabilityID) { 177 return handler({ 178 subAction: 'removeLiability', 179 liabilityID: liabilityID, 180 publicLoanID: loanPublicID 181 }); 182 }; 183 184 add = function (loanPublicID, liabilityInfo) { 185 return handler({ 186 subAction: 'addLiability', 187 liabilityInfo: liabilityInfo, 188 publicLoanID: loanPublicID 189 }); 190 }; 191 192 verify = function (loanPublicID, pageData) { 193 return handler({ 194 subAction: 'verifyLiabilities', 195 pageData: pageData, 196 publicLoanID: loanPublicID 197 }); 198 }; 199 200 addNewProperty = function (loanPublicID) { 201 return handler({
202 subAction: 'addNewProperty', 203 publicLoanID: loanPublicID 204 }); 205 }; 206 207 // For global usage. 208 exports.remove = remove; 209 exports.add = add; 210 exports.verify = verify; 211 exports.addNewProperty = addNewProperty; 212 213 /** 214 * For particular loan usage. 215 * @param loanPublicID 216 * @returns {{}} 217 */ 218 exports.create = function (loanPublicID) { 219 var s = {}; 220 221 s.add = function (liabilityInfo) { 222 return add(loanPublicID, liabilityInfo) 223 }; 224 225 s.remove = function (liabilityID) { 226 return remove(loanPublicID, liabilityID) 227 } 228 229 s.verify = function (pageData) { 230 return verify(loanPublicID, pageData) 231 } 232 233 s.addNewProperty = function () { 234 return addNewProperty(loanPublicID) 235 } 236 237 return s; 238 }; 239 240})(window.LoanAppService.Liability = window.LoanAppService.Liability || {}, window); 241 242/** 243 * [Loan REO] Define service API for loan REOs 244 */ 245;(function (exports, global) { 246 'use strict'; 247 var add, remove, verify; 248 249 var appService = global.LoanAppService; 250 var loanPublicID = appService.pageSetting.get('loanpublicid'); 251 var handler = 'realEstateOwnedHandler'; 252 253 add = function (payLoad) { 254 return appService.appNewURLAJsonRequest(handler, $.extend(true, payLoad, { 255 subAction: 'addRealEstate', 256 publicLoanID: loanPublicID 257 })); 258 }; 259 260 remove = function(payLoad) { 261 return appService.appNewURLAJsonRequest(handler, $.extend(true, payLoad, { 262 subAction: 'removeREO', 263 publicLoanID: loanPublicID 264 })); 265 }; 266 267 verify = function (payLoad) { 268 return appService.appNewURLAJsonRequest(handler, $.extend(true, payLoad, { 269 subAction: 'saveRealEstate', 270 publicLoanID: loanPublicID 271 })); 272 }; 273 274 // Publish for usage 275 exports.add = add; 276 exports.remove = remove; 277 exports.verify = verify; 278})(window.LoanAppService.REO = window.LoanAppService.REO || {}, window); 279 280/** 281 * [Loan Employment] Define service API for loan Employment 282 */ 283;(function (exports, global) { 284 'use strict'; 285 var appService = global.LoanAppService, add, remove, submit, process; 286 var loanPublicID = appService.pageSetting.get('loanpublicid'); 287 var lenderPublicID = appService.pageSetting.get('lenderpublicid'); 288 289 var handler = function (payload) { 290 return appService.appNewURLAJsonRequest('employmentHandler', $.extend(true, payload, { 291 publicLoanID: loanPublicID, 292 publicLenderID: lenderPublicID 293 })); 294 } 295 296 add = function(payload) { 297 return handler($.extend(true, { 298 subAction:'add' 299 }, payload)); 300 } 301 302 remove = function(payload) { 303 return handler($.extend(true, { 304 subAction:'remove' 305 }, payload)); 306 } 307 308 submit = function(payload) { 309 return handler($.extend(true, { 310 subAction:'submit' 311 }, payload)); 312 } 313 314 process = function(payload) { 315 return handler($.extend(true, { 316 subAction:'process' 317 }, payload)); 318 } 319 320 exports.add = add; 321 exports.remove = remove; 322 exports.submit = submit; 323 exports.process = process; 324})(window.LoanAppService.Employment = window.LoanAppService.Employment || {}, window); 325 326/** 327 * [Loan GiftGrant] Define service API for loan GiftGrant 328 */ 329;(function (exports, global) { 330 'use strict'; 331 var add, remove, verify; 332 333 var appService = global.LoanAppService; 334 var loanPublicID = appService.pageSetting.get('loanpublicid'); 335 var handler = 'giftGrantHandler'; 336 add = function (payLoad) { 337 return appService.appNewURLAJsonRequest(handler, $.extend(true, payLoad, { 338 subAction: 'addGiftGrant', 339 publicLoanID: loanPublicID 340 })); 341 }; 342 343 remove = function (payLoad) { 344 return appService.appNewURLAJsonRequest(handler, $.extend(true, payLoad, { 345 subAction: 'removeGiftGrant', 346 publicLoanID: loanPublicID 347 })); 348 }; 349 350 verify = function (payLoad) { 351 return appService.appNewURLAJsonRequest(handler, $.extend(true, payLoad, { 352 subAction: 'verifyGiftGrant', 353 publicLoanID: loanPublicID 354 })); 355 }; 356 // Publish for usage 357 exports.add = add; 358 exports.remove = remove; 359 exports.verify = verify; 360})(window.LoanAppService.GiftGrant = window.LoanAppService.GiftGrant || {}, window); 361 362;(function ($) { 363 $.fn.autoPopulateAddressInfoByZipcode = function () { 364 var populate = function ($el, info) { 365 var empty = { 366 city: $el.attr('data-city-empty') || "", 367 state: $el.attr('data-state-empty') || "", 368 }; 369 370 info = $.extend({}, empty, info); 371 $($el.attr('data-city-target')).val(info.city); 372 var $stateInput = $($el.attr('data-state-target')); 373 374 if ($stateInput.find('option[value="' + info.state.toString().toLowerCase() + '"]').length > 0) { 375 $stateInput.val(info.state.toString().toLowerCase()); 376 } 377 else if ($stateInput.find('option[value="' + info.state + '"]').length > 0) { 378 $stateInput.val(info.state); 379 } 380 else { 381 $stateInput.val(empty.state); 382 } 383 }; 384 385 $(this).each(function () { 386 $(this).change(function () { 387 var $self = $(this); 388 var zipcode = $self.val(); 389 zipcode = typeof zipcode === "undefined" || zipcode === null ? "" : z
389ipcode.toString(); 390 391 if (zipcode.trim().length > 0) { 392 LoanAppService.Utils.getLocationByZipcode(zipcode).then(function (res) { 393 populate($self, res); 394 }).catch(function () { 395 populate($self, {}); 396 }); 397 } 398 else { 399 populate($self, {}); 400 } 401 }); 402 }); 403 }; 404 405})(jQuery); 406 407function determineNumUnits(propType){ 408 let units = 1; 409 if ( propType === "SingleFamily" ) { 410 units = 1; 411 } else if ( ["Condominium", "Townhouse", "Cooperative", "ManufacturedMobileHome"].indexOf( propType ) !== -1 ) { 412 units = 1 413 } else if ( propType === "Duplex" || propType === "TwoToFourUnitProperty") { 414 units = 2; 415 } else if ( propType === "Triplex" ) { 416 units = 3; 417 } else if ( propType === "Quadplex" ) { 418 units = 4; 419 } else if ( propType === "MultiFamily2To4" ) { 420 units = 4; 421 } else { 422 units = 1; 423 } 424 return units; 425} 426 427/** 428 * [Turbo Vendor] Define service API for Turbo vendor 429 */ 430;(function (exports, global) { 431 'use strict'; 432 433 var master = global.LoanAppService, chooseQuote, dismissModalQuoteOffer, updateNumberOfCloseTime, updateViewQuoteConsent, getQuote; 434 435 var handler = function (payload) { 436 return master.appJsonRequest('turboHandler', payload); 437 }; 438 439 chooseQuote = function (loanPublicID, quoteResponseID ,quoteID) { 440 return handler({ 441 subAction: 'chooseQuote', 442 quoteID: quoteID, 443 quoteResponseID: quoteResponseID, 444 publicLoanID: loanPublicID 445 }); 446 }; 447 448 dismissModalQuoteOffer = function (loanPublicID) { 449 return handler({ 450 subAction: 'dismissModalQuoteOffer', 451 publicLoanID: loanPublicID 452 }); 453 }; 454 455 updateNumberOfCloseTime = function (loanPublicID) { 456 return handler({ 457 subAction: 'updateNumberOfCloseTime', 458 publicLoanID: loanPublicID 459 }); 460 }; 461 462 updateViewQuoteConsent = function (loanPublicID) { 463 return handler({ 464 subAction: 'updateViewQuoteConsent', 465 publicLoanID: loanPublicID 466 }); 467 }; 468 469 getQuote = function (loanPublicID) { 470 return handler({ 471 subAction: 'getQuote', 472 publicLoanID: loanPublicID 473 }); 474 }; 475 476 // For global usage. 477 exports.chooseQuote = chooseQuote; 478 exports.dismissModalQuoteOffer = dismissModalQuoteOffer; 479 exports.updateNumberOfCloseTime = updateNumberOfCloseTime; 480 exports.updateViewQuoteConsent = updateViewQuoteConsent; 481 exports.getQuote = getQuote; 482 483 /** 484 * For particular loan usage. 485 * @param loanPublicID 486 * @returns {{}} 487 */ 488 exports.create = function (loanPublicID) { 489 var s = {}; 490 491 s.chooseQuote = function (quoteResponseID, quoteID) { 492 return chooseQuote(loanPublicID, quoteResponseID, quoteID); 493 }; 494 495 s.dismissModalQuoteOffer = function () { 496 return dismissModalQuoteOffer(loanPublicID); 497 }; 498 499 s.updateNumberOfCloseTime = function () { 500 return updateNumberOfCloseTime(loanPublicID); 501 }; 502 503 s.updateViewQuoteConsent = function() { 504 return updateViewQuoteConsent(loanPublicID); 505 }; 506 507 s.getQuote = function () { 508 return getQuote(loanPublicID); 509 }; 510 511 return s; 512 }; 513 514})(window.LoanAppService.VendorTurbo = window.LoanAppService.VendorTurbo || {}, window);
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.