1/* 2Delete the following after repo split: 3numDays, timeType, page, getDateRange, dateChange 4*/ 5/* 6field decleration 7Year: selYear 8Make: selMake 9Model: selModel 10Trim: selTrim 11Date: selDate 12Time: selTime 13 14predefined var: 15vehicleType 16vehicleYear 17vehicleMake 18vehicleModel 19numDays 20 21pages: 22EAS 23 24*/ 25var updating = false; 26var timeType; 27var isVirtual = false; 28function getDealerYear() { 29 30 if (updating) return; 31 var reqUrl = "/api/vehicle/"; 32 33 if (isVirtual) 34 reqUrl += "years-virtual?select=1"; 35 else { 36 if (vehicleType.toUpperCase() == 'USED') 37 reqUrl += "years?type=u&select=1"; 38 else 39 reqUrl += "years?type=n&select=1"; 40 } 41 updating = true; 42 $.ajax({ 43 url: reqUrl, 44 dataType: 'json', 45 success: function (data) { 46 fillSelect(data, 'selYear'); 47 updating = false; 48 if ($('#selYear option').length > 0) { 49 if (typeof (vehicleYear) !== 'undefined' && vehicleYear != '') { 50 $("#selYear option[value='" + vehicleYear + "']").prop('selected', true); 51 yearChange(); 52 } 53 else { 54 if ($('#selYear option').length == 2) { 55 $('#selYear option:eq(1)').prop('selected', true); 56 yearChange(); 57 } 58 if (preSelectYear) { 59 $('#selYear option:eq(1)').prop('selected', true); 60 yearChange(); 61 } 62 } 63 } 64 } 65 }); 66} 67 68function yearChange(event) { 69 //if (updating) return; 70 $('#selMake option:eq(0)').prop('selected', true); 71 $('#selMake').prop('disabled', true); 72 $('#selModel option:eq(0)').prop('selected', true); 73 $('#selModel').prop('disabled', true); 74 if ($('#selYear').val() == '') return; 75 76 var reqUrl = "/api/vehicle/"; 77 if (vehicleType.toUpperCase() == 'USED') 78 reqUrl += "used-makes"; 79 else 80 reqUrl += "new-makes"; 81 reqUrl += "?year=" + $('#selYear').val() + "&select=1"; 82 updating = true; 83 $.ajax({ 84 url: reqUrl, 85 dataType: 'json', 86 success: function (data) { 87 fillSelect(data, 'selMake'); 88 updating = false; 89 if ($('#selMake option').length > 0) { 90 if (typeof (vehicleMake) !== 'undefined' && vehicleMake != '') { 91 $("#selMake option[value='" + vehicleMake + "']").prop('selected', true); 92 makeChange(); 93 } 94 else { 95 if (preSelectMake) { 96 $('#selMake option:eq(1)').prop('selected', true); 97 makeChange(); 98 } 99 if ($('#selMake option').length == 2) { 100 $('#selMake option:eq(1)').prop('selected', true); 101 makeChange(); 102 } 103 } 104 $('#selMake').prop('disabled', false); 105 } 106 } 107 }); 108} 109 110function getVehicleMakes() { 111 $('#selMake option:eq(0)').prop('selected', true); 112 $('#selMake').prop('disabled', true); 113 $('#selModel option:eq(0)').prop('selected', true); 114 $('#selModel').prop('disabled', true); 115 116 var reqUrl = "/api/vehicle/"; 117 if (vehicleType.toUpperCase() == 'USED') 118 reqUrl += "used-makes"; 119 else 120 reqUrl += "new-makes"; 121 122 reqUrl += "?year=" + $('#selYear').val() + "&select=1"; 123 124 updating = true; 125 $.ajax({ 126 url: reqUrl, 127 dataType: 'json', 128 success: function (data) { 129 fillSelect(data, 'selMake'); 130 updating = false; 131 if ($('#selMake option').length > 0) { 132 $('#selMake').prop('disabled', false); 133 } 134 } 135 }); 136} 137 138function makeChange() { 139 if (updating) return; 140 $('#selModel option:eq(0)').prop('selected', true); 141 $('#selModel').prop('disabled', true); 142 if ($('#selMake').val() == '') return; 143 144 var reqUrl = "/api/vehicle/"; 145 if (isVirtual) 146 reqUrl += "new-virtual-models"; 147 else { 148 if (vehicleType.toUpperCase() == 'USED') 149 reqUrl += "used-models"; 150 else 151 reqUrl += "new-models"; 152 } 153 reqUrl += "?year=" + $('#selYear').val() + "&make=" + $('#selMake').val() + "&select=1"; 154 updating = true; 155 $.ajax({ 156 url: reqUrl, 157 dataType: 'json', 158 success: function (data) { 159 fillSelect(data, 'selModel'); 160 updating = false; 161 if (parseInt($('#selModel option').length) > 0) { 162 if (typeof (vehicleModel) !== 'undefined' && vehicleModel != '') 163 $("#selModel option[value='" + vehicleModel + "']").prop('selected', true); 164 if ($('#selModel option').length == 2) 165 $("#selModel option[value='" + vehicleModel + "']").prop('selected', true); 166 167 $('#selModel').prop('disabled', false); 168 } 169 } 170 }); 171} 172function modelPhotoChange() { 173 //The content of this method was removed because this method does not appear to be called from anywhere (7/11/2022). 174} 175 176function getDateRange() { 177 var reqUrl = "/api/dealership/dates?num=" + numDays + "&page=" + page; 178 updating = true; 179 $.ajax({ 180 url: reqUrl, 181 dataType: 'json', 182 success: function (data) { 183 fillSelect(data, 'selDate'); 184 if ($('#selDate option').length > 0) { 185 $('#selDate option:eq(1)').prop('selected', true); 186 dateChange(); 187 } 188 } 189 }); 190} 191function dateChange() { 192 if ($('#selDate').val() == '') { 193 $('#selTime option:eq(0)').prop('selected', true); 194 $('#selTime').prop('disabled', true); 195 return; 196 } 197 198 var reqUrl = "/api/dealership/times?type=" + timeType + "&date=" + $('#selDate').val(); 199 if (typeof appointmentIntervalMinutes !== 'undefined' && appointmentIntervalMinutes) { 200 reqUrl += "&interval=" + appointmentIntervalMinutes; 201 } 202 $('#selTime option:eq(0)').prop('selected', true); 203 $('#selTime').prop('disabled', true); 204 205 $.ajax({ 206 url: reqUrl, 207 dataType: 'json', 208 success: function (data) { 209 fillSelect(data, 'selTime'); 210 $('#selTime').prop('disabled', false); 211 } 212 }); 213} 214 215//________________________ REF DATA _____________________________ 216 217function getRefYear() { 218 var reqUrl = "/api/vehicle/years-ref?"; 219 if (vehicleMake == 'Lamborghini') reqUrl += "make=Lamborghini"; 220 221 updating = true; 222 $.ajax({ 223 url: reqUrl, 224 dataType: 'json', 225 success: function (data) { 226 fillSelect(data, 'selYear'); 227 updating = false;
228 if ($('#selYear option').length > 0) { 229 if (typeof (vehicleYear) !== 'undefined' && vehicleYear != '') { 230 $("#selYear option[value='" + vehicleYear + "']").prop('selected', true); 231 refYearChange(); 232 } 233 else { 234 if ($('#selYear option').length == 2) { 235 $('#selYear option:eq(1)').prop('selected', true); 236 refYearChange(); 237 } 238 if (preSelectYear) { 239 $('#selYear option:eq(1)').prop('selected', true); 240 refYearChange(); 241 } 242 } 243 } 244 } 245 }); 246} 247 248function refYearChange() { 249 if (updating) return; 250 251 $('#selMake option:eq(0)').prop('selected', true); 252 $('#selMake').prop('disabled', true); 253 $('#selModel option:eq(0)').prop('selected', true); 254 $('#selModel').prop('disabled', true); 255 if ($('#selTrim').length > 0) { 256 $('#selTrim option:eq(0)').prop('selected', true); 257 $('#selTrim').prop('disabled', true); 258 } 259 if ($('#selYear').val() == '') return; 260 261 var reqUrl = "/api/vehicle/"; 262 if (vehicleMake == 'Lamborghini') 263 reqUrl += "new-makes"; 264 else 265 reqUrl += "ref-makes"; 266 reqUrl += "?year=" + $('#selYear').val() + "&select=1"; 267 268 updating = true; 269 $.ajax({ 270 url: reqUrl, 271 dataType: 'json', 272 success: function (data) { 273 fillSelect(data, 'selMake'); 274 updating = false; 275 if ($('#selMake').length > 0) { 276 if (vehicleMake != '') { 277 $("#selMake option[value='" + vehicleMake + "']").prop('selected', true); 278 refMakeChange(); 279 } 280 else { 281 if (preSelectMake) { 282 $('#selMake option:eq(1)').prop('selected', true); 283 } else { 284 $('#selMake option:eq(0)').prop('selected', true); 285 } 286 } 287 $('#selMake').prop('disabled', false); 288 } 289 } 290 }); 291} 292 293 294function getRefMake() { 295 //if (updating) return; 296 297 $('#selMake option:eq(0)').prop('selected', true); 298 $('#selMake').prop('disabled', true); 299 $('#selModel option:eq(0)').prop('selected', true); 300 $('#selModel').prop('disabled', true); 301 if ($('#selTrim').length > 0) { 302 $('#selTrim option:eq(0)').prop('selected', true); 303 $('#selTrim').prop('disabled', true); 304 } 305 306 307 var reqUrl = "/api/vehicle/"; 308 if (vehicleMake == 'Lamborghini') 309 reqUrl += "new-makes"; 310 else 311 reqUrl += "ref-makes"; 312 reqUrl += "?year=" + $('#selYear').val() + "&select=1"; 313 314 updating = true; 315 $.ajax({ 316 url: reqUrl, 317 dataType: 'json', 318 success: function (data) { 319 fillSelect(data, 'selMake'); 320 updating = false; 321 // var tmpNum=$('#selMake').length 322 // if (tmpNum > 0) { 323 $('#selMake').prop('disabled', false); 324 // } 325 } 326 }); 327 328 if ($('#selBodyStyle').length > 0) 329 getRefBodyStyle(); 330} 331 332function refMakeChange() { 333 if (updating) return; 334 $('#selModel option:eq(0)').prop('selected', true); 335 $('#selModel').prop('disabled', true); 336 if ($('#selTrim').length > 0) { 337 $('#selTrim option:eq(0)').prop('selected', true); 338 $('#selTrim').prop('disabled', true); 339 } 340 if ($('#selMake').val() == '') return; 341 342 var reqUrl = "/api/vehicle/ref-models"; 343 reqUrl += "?year=" + $('#selYear').val() + "&make=" + $('#selMake').val() + "&select=1"; 344 345 updating = true; 346 $.ajax({ 347 url: reqUrl, 348 dataType: 'json', 349 success: function (data) { 350 fillSelect(data, 'selModel'); 351 updating = false; 352 if ($('#selModel option').length > 0) { 353 if (vehicleModel != '') 354 $("#selModel option[value='" + vehicleModel + "']").prop('selected', true); 355 else { 356 if (preSelectModel) { 357 $('#selModel option:eq(1)').prop('selected', true); 358 if ($('#selTrim').length > 0) refModelChange(); 359 } 360 } 361 $('#selModel').prop('disabled', false); 362 } 363 } 364 }); 365} 366 367function refModelChange() { 368 if (updating) return; 369 $('#selTrim option:eq(0)').prop('selected', true); 370 $('#selTrim').prop('disabled', true); 371 if ($('#selModel').val() == '') return; 372 373 var reqUrl = "/api/vehicle/ref-trims?to=1"; 374 reqUrl += "&year=" + $('#selYear').val() + "&make=" + $('#selMake').val() + "&model=" + $('#selModel').val(); 375 $.ajax({ 376 url: reqUrl, 377 dataType: 'json', 378 success: function (data) { 379 fillSelect(data, 'selTrim'); 380 updating = false; 381 $('#selTrim').prop('disabled', false); 382 } 383 }); 384} 385 386function getRefBodyStyle() { 387 // if (updating) return; 388 $('#selBodyStyle option:eq(0)').prop('selected', true); 389 $('#selBodyStyle').prop('disabled', true); 390 391 var reqUrl = "/api/vehicle/ref-bodystyles?select=1"; 392 if ($('#selMake').val() != '' && $('#selMake').val() != null) 393 reqUrl += "&make=" + $('#selMake').val(); 394 if ($('#selModel').val() != '' && $('#selModel').val() != null) 395 reqUrl += "&model=" + $('#selModel').val(); 396 397 $.ajax({ 398 url: reqUrl, 399 dataType: 'json', 400 success: function (data) { 401 fillSelect(data, 'selBodyStyle'); 402 updating = false;
403 $('#selBodyStyle').prop('disabled', false); 404 } 405 }); 406} 407 408 409//_______________________________________________________________ 410 411function fillSelect(namevalue, controlId) { 412 if (oSelect = document.getElementById(controlId)) { 413 var content = ''; 414 for (var i = oSelect.length - 1; i >= 0; i--) { 415 oSelect.options[i] = null; 416 } 417 for (var i = 0; i < namevalue.length; i++) { 418 if (namevalue[i].value == undefined) { 419 oSelect.options[oSelect.length] = new Option(namevalue[i].name); 420 content += namevalue[i].name + self.delimiter + namevalue[i].name + self.delimiter; 421 } 422 else { 423 opt = new Option(namevalue[i].name, namevalue[i].value); 424 oSelect.options[oSelect.length] = opt; 425 content += namevalue[i].name + self.delimiter + namevalue[i].value + self.delimiter; 426 } 427 } 428 if (content.substr(content.length - 1, 1) == self.delimiter) { 429 content = content.substr(0, content.length - 1); 430 } 431 if (oHidden = document.getElementById(self.hiddenId)) { 432 oHidden.value = content; 433 } 434 if (oSelect.selectedIndex > -1) { 435 if (oSelect.fireEvent) { 436 oSelect.fireEvent('onchange'); 437 } 438 else if (oSelect.dispatchEvent) { 439 var oEvent = document.createEvent('HTMLEvents'); 440 oEvent.initEvent('change', true, true); 441 oSelect.dispatchEvent(oEvent); 442 } 443 } 444 } 445}
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.