1 2var smsInterval2; 3var smsTimer2; 4 5var tempPhone = ''; 6var tempEmail = ''; 7 8var passwordFormMayBeEmpty = false; 9 10$(document).ready(function(){ 11 $.optionsValidForm = { 12 ignore: [], 13 focusInvalid: false, 14 rules: { 15 name: { 16 required: true, 17 minlength: 3, 18 maxlength: 40, 19 cyrillicvalidation: true 20 }, 21 lastname: { 22 required: true, 23 minlength: 3, 24 maxlength: 40, 25 cyrillicvalidation: true 26 }, 27 /*patroname: { 28 required: true, 29 minlength: 3, 30 maxlength: 40, 31 cyrillicvalidation: true 32 },*/ 33 fullname: { 34 required: true, 35 minlength: 3, 36 maxlength: 60, 37 }, 38 email: { 39 required: true, 40 email: true, 41 }, 42 phone: { 43 required: true, 44 minlength: 10, 45 }, 46 code: { 47 required: true, 48 minlength: 4, 49 }, 50 city: { 51 required: true, 52 minlength: 3, 53 }, 54 birthday: { 55 required: true, 56 }, 57 gender: { 58 required: true, 59 }, 60 password: { 61 required: function(element){ 62 return !passwordFormMayBeEmpty; 63 }, 64 minlength: 8, 65 }, 66 password2: { 67 required: true, 68 minlength: 8, 69 equalTo: "[name='password']", 70 }, 71 editPassword: { 72 minlength: 8, 73 }, 74 editPassword2: { 75 minlength: 8, 76 equalTo: "[name='editPassword']", 77 }, 78 agree: { 79 required: true, 80 }, 81 dealer_id: { 82 required: true, 83 }, 84 city_id: { 85 required: true, 86 }, 87 ownertype_id: { 88 required: true, 89 }, 90 model_id: { 91 /*required: true,*/ 92 93 required: function(element){ 94 return $(".model_name-wrapper").css('display') == 'none'; 95 } 96 }, 97 model_name: { 98 required: function(element){ 99 return $("select[name='model_id']").val().length < 1; 100 } 101 }, 102 year: { 103 required: true, 104 number: true, 105 minlength: 4, 106 maxlength: 4, 107 min: 1990, 108 max: 2022, 109 }, 110 car_name: { 111 required: false, 112 }, 113 /*vin: { 114 required: true, 115 },*/ 116 vin0: { 117 required: true, 118 }, 119 subaruId: { 120 required: true, 121 number: true, 122 }, 123 mileage: { 124 /*required: true,*/ 125 number: true, 126 }, 127 need_date1: { 128 required: true, 129 }, 130 need_time1: { 131 required: true, 132 }, 133 color: { 134 required: false, 135 }, 136 engine: { 137 required: false, 138 } 139 }, 140 messages: { 141 password2: { 142 equalTo: "ÐовÑоÑиÑе паÑÐ¾Ð»Ñ Ð² ÑоÑноÑÑи", 143 }, 144 year: { 145 minlength: "ÐевеÑнÑй год", 146 maxlength: "ÐевеÑнÑй год", 147 min: "ÐинималÑнÑй год: 1990", 148 max: "ÐакÑималÑнÑй год: 2022", 149 }, 150 }, 151 errorPlacement: function(error, element) { 152 if (element.is(':checkbox')) { 153 element.parent().addClass('cb-error'); 154 } else if (element.is(':radio')) { 155 element.parent().parent().addClass('cb-error'); 156 } else if (element.is('select')) { 157 element.parent().parent().addClass('error'); 158 element.parent().parent().parent().find('.error-text').html(error.html()); 159 } else { 160 element.parent().find('.error-text').html(error.html()); 161 return true; 162 } 163 }, 164 165 highlight: function (element, errorClass, validClass) { 166 var elem = $(element); 167 elem.parent().addClass(errorClass); 168 }, 169 170 unhighlight: function (element, errorClass, validClass) { 171 var elem = $(element); 172 elem.removeClass(errorClass); 173 174 elem.parents(".form-group").removeClass(errorClass); 175 elem.parents(".form-group").parent().removeClass(errorClass); 176 177 elem.parents(".form-group").removeClass("cb-error"); 178 elem.parents(".form-group").parent().removeClass("cb-error"); 179 }, 180 }; 181 182 $.validator.addMethod("cyrillicvalidation", 183 function(value, element) { 184 var regex = /^([а-ÑÐ-ЯÐÑ ])*$/; 185 return regex.test(value); 186 }, 187 "ÐведиÑе ÑÑÑÑкие ÑимволÑ" 188 ); 189 190 $(".project-form").each(function(index, elem){ 191 $(elem).validate($.optionsValidForm); 192 }); 193 194 $("#login-form").submit(function(){ 195 196 var frm = $(this); 197 198 if (!frm.hasClass("checked")) 199 passwordFormMayBeEmpty = true; 200 201 if (frm.valid()) { 202 203 if (frm.hasClass("disabled")) 204 return false; 205 206 frm.addClass("disabled"); 207 208 var fields = { 209 phone: $.trim($("#login-form input[name='phone']").val()), 210 password: $.trim($("#login-form input[name='password']").val()), 211 }; 212 213 $.post('/profile/login', {fields: fields}, function(data){ 214 215 frm.removeClass("disabled"); 216 217 if (data.status == 'error') { 218 219 if (data.errors) { 220 if (data.errors.phone) { 221 //frm.find("input[name='phone']").parent().addClass('error'); 222 //frm.find("input[name='phone']").parent().find('.error-text').html(data.errors.phone); 223 224 location.href = '/profile/signup?phone='+encodeURIComponent($.trim($("#login-form input[name='phone']").val())); 225 226 } else { 227 frm.find("input[name='phone']").parent().removeClass('error'); 228 passwordFormMayBeEmpty = false; 229 frm.addClass("checked"); 230 231 setTimeout(function(){ 232 frm.find("input[name='password']").parent().removeClass('error'); 233 $(".form-group-login-password").show(); 234 }, 100); 235 } 236 237 if (data.errors.password) { 238 frm.find("input[name='password']").parent().addClass('error'); 239 frm.find("input[name='password']").parent().find('.error-text').html(data.errors.password); 240 } else { 241 frm.find("input[name='password']").parent().removeClass('error'); 242 } 243 } else { 244 message("ÐÑибка!|||"+data.message); 245 } 246 } else { 247 location.href = '/'; 248 } 249 }, 'json'); 250 } 251 252 return false; 253 }); 254 255 $("#loginEmail-form").submit(function(){ 256 257 var frm = $(this); 258 259 if (frm.valid()) { 260 261 if (frm.hasClass("disabled")) 262 return false; 263 264 frm.addClass("disabled"); 265 266 var fields = { 267 email: $.trim($("#loginEmail-form input[name='email']").val()), 268 password: $.trim($("#loginEmail-form input[name='password']").val()), 269 }; 270 271 $.post('/profile/loginEmail', {fields: fields}, function(data){ 272 273 frm.removeClass("disabled"); 274 275 if (data.status == 'error') { 276 277 if (data.errors) { 278 if (data.errors.email) { 279 frm.find("input[name='email']").parent().addClass('error'); 280 frm.find("input[name='email']").parent().find('.error-text').html(data.errors.email); 281 } else { 282 frm.find("input[name='email']").parent().removeClass('error'); 283 } 284 285 if (data.errors.password) { 286 frm.find("input[name='password']").parent().addClass('error'); 287 frm.find("input[name='password']").parent().find('.error-text').html(data.errors.password); 288 } else { 289 frm.find("input[name='password']").parent().removeClass('error'); 290 } 291 292 } else { 293 message("ÐÑибка!|||"+data.message); 294 } 295 } else { 296 location.href = '/'; 297 } 298 }, 'json'); 299 } 300 301 return false; 302 }); 303 304 $("#loginSubaruId-form").submit(function(){ 305 306 var frm = $(this); 307 308 if (frm.valid()) { 309 310 if (frm.hasClass("disabled")) 311 return false; 312 313 frm.addClass("disabled"); 314 315 var fields = { 316 subaruId: $.trim($("#loginSubaruId-form input[name='subaruId']").val()), 317 password: $.trim($("#loginSubaruId-form input[name='password']").val()), 318 }; 319 320 $.post('/profile/loginsubaruid', {fields: fields}, function(data){ 321 322 frm.removeClass("disabled"); 323 324 if (data.status == 'error') { 325 326 if (data.errors) { 327 if (data.errors.subaruId) { 328 frm.find("input[name='subaruId']").parent().addClass('error'); 329 frm.find("input[name='subaruId']").parent().find('.error-text').html(data.errors.subaruId); 330 } else { 331 frm.find("input[name='subaruId']").parent().removeClass('error'); 332 } 333 334 if (data.errors.password) { 335 frm.find("input[name='password']").parent().addClass('error'); 336 frm.find("input[name='password']").parent().find('.error-text').html(data.errors.password); 337 } else { 338 frm.find("input[name='password']").parent().removeClass('error'); 339 } 340 } else { 341 message("ÐÑибка!|||"+data.message); 342 } 343 } else { 344 location.href = '/'; 345 } 346 }, 'json'); 347 } 348 349 return false; 350 }); 351 352 $("#signup-form").submit(function(){ 353 354 var frm = $(this); 355 356 if (frm.valid()) { 357 358 if (frm.hasClass("disabled")) 359 return false; 360 361 frm.addClass("disabled"); 362 363 var fields = { 364 phone: $.trim($("#signup-form input[name='phone']").val()), 365 code: $.trim($("#signup-form input[name='code']").val()), 366 }; 367 368 $.post('/profile/signup', {fields: fields}, function(data){ 369 370 frm.removeClass("disabled"); 371 372 if (data.status == 'error') { 373 374 if (data.errors) { 375 if (data.errors.phone) { 376 frm.find("input[name='phone']").parent().addClass('error'); 377 frm.find("input[name='phone']").parent().find('.error-text').html(data.errors.phone); 378 } else { 379 frm.find("input[name='phone']").parent().removeClass('error'); 380 } 381 382 if (data.errors.code) { 383 frm.find("input[name='code']").parent().addClass('error'); 384 frm.find("input[name='code']").parent().find('.error-text').html(data.errors.code); 385 } else { 386 frm.find("input[name='code']").parent().removeClass('error'); 387 } 388 } else { 389 message("ÐÑибка!|||"+data.message); 390 } 391 } else { 392 location.href = '/profile/signup'; 393 } 394 }, 'json'); 395 } 396 397 return false; 398 }); 399 400 $("#signup2-form").submit(function(){ 401 402 var frm = $(this); 403 404 if (frm.valid()) { 405 406 if (frm.hasClass("disabled")) 407 return false; 408 409 frm.addClass("disabled"); 410 411 var fields = { 412 password: $.trim($("#signup2-form input[name='password']").val()), 413 }; 414 415 $.post('/profile/signup2', {fields: fields}, function(data){ 416 417 frm.removeClass("disabled"); 418 419 if (data.status == 'error') { 420 421 if (data.errors) { 422 if (data.errors.password) { 423 frm.find("input[name='password']").parent().addClass('error'); 424 frm.find("input[name='password']").parent().find('.error-text').html(data.errors.password); 425 } else { 426 frm.find("input[name='password']").parent().removeClass('error'); 427 } 428 } else { 429 message("ÐÑибка!|||"+data.message); 430 } 431 } else { 432 location.reload(); 433 } 434 }, 'json'); 435 } 436 437 return false; 438 }); 439 440 $("#signup3-form").submit(function(){ 441 442 var frm = $(this); 443 444 if (frm.valid()) { 445 446 if (frm.hasClass("disabled")) 447 return false; 448 449 frm.addClass("disabled"); 450 451 var fields = { 452 name: $.trim($("#signup3-form input[name='name']").val()), 453 lastname: $.trim($("#signup3-form input[name='lastname']").val()), 454 email: $.trim($("#signup3-form input[name='email']").val()), 455 456 patroname: $.trim($("#signup3-form input[name='patroname']").val()), 457 city: $.trim($("#signup3-form input[name='city']").val()), 458 birthday: $.trim($("#signup3-form input[name='birthday']").val()), 459 gender: $.trim($("#signup3-form input[name='gender']:checked").val()), 460 nickname: $.trim($("#signup3-form input[name='nickname']").val()), 461 }; 462 463 $.post('/profile/signup3', {fields: fields}, function(data){ 464 465 frm.removeClass("disabled"); 466 467 if (data.status == 'error') { 468 469 if (data.errors) { 470 if (data.errors.name) { 471 frm.find("input[name='name']").parent().addClass('error'); 472 frm.find("input[name='name']").parent().find('.error-text').html(data.errors.name); 473 } else { 474 frm.find("input[name='name']").parent().removeClass('error'); 475 } 476 477 if (data.errors.lastname) { 478 frm.find("input[name='lastname']").parent().addClass('error'); 479 frm.find("input[name='lastname']").parent().find('.error-text').html(data.errors.lastname); 480 } else { 481 frm.find("input[name='lastname']").parent().removeClass('error'); 482 } 483 484 if (data.errors.nickname) { 485 frm.find("input[name='nickname']").parent().addClass('error'); 486 frm.find("input[name='nickname']").parent().find('.error-text').html(data.errors.nickname); 487 } else { 488 frm.find("input[name='nickname']").parent().removeClass('error'); 489 } 490 491 if (data.errors.email) { 492 frm.find("input[name='email']").parent().addClass('error'); 493 frm.find("input[name='email']").parent().find('.error-text').html(data.errors.email); 494 } else { 495 frm.find("input[name='email']").parent().removeClass('error'); 496 } 497 498 if (data.errors.birthday) { 499 frm.find("input[name='birthday']").parent().addClass('error'); 500 frm.find("input[name='birthday']").parent().find('.error-text').html(data.errors.birthday); 501 } else { 502 frm.find("input[name='birthday']").parent().removeClass('error'); 503 } 504 505 if (data.errors.city) { 506 frm.find("input[name='city']").parent().addClass('error'); 507 frm.find("input[name='city']").parent().find('.error-text').html(data.errors.city); 508 } else { 509 frm.find("input[name='city']").parent().removeClass('error'); 510 } 511 } else { 512 message("ÐÑибка!|||"+data.message); 513 } 514 } else { 515 location.href = '/'; 516 } 517 }, 'json'); 518 } 519 520 return false; 521 }); 522 523 $("#edit-form").submit(function(){ 524 525 var frm = $(this); 526 527 if (frm.valid()) { 528 529 if (frm.hasClass("disabled")) 530 return false; 531 532 frm.addClass("disabled"); 533 534 var fields = { 535 name: $.trim($("#edit-form input[name='name']").val()), 536 lastname: $.trim($("#edit-form input[name='lastname']").val()), 537 patroname: $.trim($("#edit-form input[name='patroname']").val()), 538 nickname: $.trim($("#edit-form input[name='nickname']").val()), 539 city: $.trim($("#edit-form input[name='city']").val()), 540 birthday: $.trim($("#edit-form input[name='birthday']").val()), 541 gender: $.trim($("#edit-form input[name='gender']:checked").val()), 542 password: $.trim($("#edit-form input[name='editPassword']").val()), 543 }; 544 545 $.post('/profile/edit', {fields: fields}, function(data){ 546 547 frm.removeClass("disabled"); 548 549 if (data.status == 'error') { 550 551 if (data.errors) { 552 if (data.errors.name) { 553 frm.find("input[name='name']").parent().addClass('error'); 554 frm.find("input[name='name']").parent().find('.error-text').html(data.errors.name); 555 } else { 556 frm.find("input[name='name']").parent().removeClass('error'); 557 } 558 559 if (data.errors.lastname) { 560 frm.find("input[name='lastname']").parent().addClass('error'); 561 frm.find("input[name='lastname']").parent().find('.error-text').html(data.errors.lastname); 562 } else { 563 frm.find("input[name='lastname']").parent().removeClass('error'); 564 } 565 566 if (data.errors.nickname) { 567 frm.find("input[name='nickname']").parent().addClass('error'); 568 frm.find("input[name='nickname']").parent().find('.error-text').html(data.errors.nickname); 569 } else { 570 frm.find("input[name='nickname']").parent().removeClass('error'); 571 } 572 573 /*if (data.errors.birthday) { 574 frm.find("input[name='birthday']").parent().addClass('error'); 575 frm.find("input[name='birthday']").parent().find('.error-text').html(data.errors.birthday); 576 } else { 577 frm.find("input[name='birthday']").parent().removeClass('error'
577); 578 }*/ 579 580 if (data.errors.birthday) { 581 frm.find("input[name='birthday']").parent().addClass('error'); 582 frm.find("input[name='birthday']").parent().find('.error-text').html(data.errors.birthday); 583 } else { 584 frm.find("input[name='birthday']").parent().removeClass('error'); 585 } 586 587 if (data.errors.city) { 588 frm.find("input[name='city']").parent().addClass('error'); 589 frm.find("input[name='city']").parent().find('.error-text').html(data.errors.city); 590 } else { 591 frm.find("input[name='city']").parent().removeClass('error'); 592 } 593 594 if (data.errors.password) { 595 frm.find("input[name='password']").parent().addClass('error'); 596 frm.find("input[name='password']").parent().find('.error-text').html(data.errors.password); 597 } else { 598 frm.find("input[name='password']").parent().removeClass('error'); 599 } 600 } else { 601 message("ÐÑибка!|||"+data.message); 602 } 603 } else { 604 location.href = '/profile'; 605 } 606 }, 'json'); 607 } 608 609 return false; 610 }); 611 612 $("#recoverEmail-form").submit(function(){ 613 614 var frm = $(this); 615 616 if (frm.valid()) { 617 618 if (frm.hasClass("disabled")) 619 return false; 620 621 frm.addClass("disabled"); 622 623 var fields = { 624 email: $.trim($("#recoverEmail-form input[name='email']").val()), 625 code: $.trim($("#recoverEmail-form input[name='code']").val()), 626 }; 627 628 $.post('/profile/recoverEmail', {fields: fields}, function(data){ 629 630 frm.removeClass("disabled"); 631 632 if (data.status == 'error') { 633 634 if (data.errors) { 635 if (data.errors.email) { 636 frm.find("input[name='email']").parent().addClass('error'); 637 frm.find("input[name='email']").parent().find('.error-text').html(data.errors.email); 638 } else { 639 frm.find("input[name='email']").parent().removeClass('error'); 640 } 641 642 if (data.errors.code) { 643 frm.find("input[name='code']").parent().addClass('error'); 644 frm.find("input[name='code']").parent().find('.error-text').html(data.errors.code); 645 } else { 646 frm.find("input[name='code']").parent().removeClass('error'); 647 } 648 } else { 649 message("ÐÑибка!|||"+data.message); 650 } 651 } else { 652 location.href = '/profile'; 653 } 654 }, 'json'); 655 } 656 657 return false; 658 }); 659 660 $("#recover-form").submit(function(){ 661 662 var frm = $(this); 663 664 if (frm.valid()) { 665 666 if (frm.hasClass("disabled")) 667 return false; 668 669 frm.addClass("disabled"); 670 671 var fields = { 672 phone: $.trim($("#recover-form input[name='phone']").val()), 673 code: $.trim($("#recover-form input[name='code']").val()), 674 }; 675 676 $.post('/profile/recover', {fields: fields}, function(data){ 677 678 frm.removeClass("disabled"); 679 680 if (data.status == 'error') { 681 682 if (data.errors) { 683 if (data.errors.phone) { 684 frm.find("input[name='phone']").parent().addClass('error'); 685 frm.find("input[name='phone']").parent().find('.error-text').html(data.errors.phone); 686 } else { 687 frm.find("input[name='phone']").parent().removeClass('error'); 688 } 689 690 if (data.errors.code) { 691 frm.find("input[name='code']").parent().addClass('error'); 692 frm.find("input[name='code']").parent().find('.error-text').html(data.errors.code); 693 } else { 694 frm.find("input[name='code']").parent().removeClass('error'); 695 } 696 } else { 697 message("ÐÑибка!|||"+data.message); 698 } 699 } else { 700 location.href = '/profile'; 701 } 702 }, 'json'); 703 } 704 705 return false; 706 }); 707 708 $("#login-sms-form").submit(function(){ 709 710 var frm = $(this); 711 712 if (frm.valid()) { 713 714 if (frm.hasClass("disabled")) 715 return false; 716 717 frm.addClass("disabled"); 718 719 var fields = { 720 phone: $.trim($("#login-sms-form input[name='phone']").val()), 721 code: $.trim($("#login-sms-form input[name='code']").val()), 722 }; 723 724 $.post('/profile/loginsms', {fields: fields}, function(data){ 725 726 frm.removeClass("disabled"); 727 728 if (data.status == 'error') { 729 730 if (data.errors) { 731 if (data.errors.phone) { 732 frm.find("input[name='phone']").parent().addClass('error'); 733 frm.find("input[name='phone']").parent().find('.error-text').html(data.errors.phone); 734 } else { 735 frm.find("input[name='phone']").parent().removeClass('error'); 736 } 737 738 if (data.errors.code) { 739 frm.find("input[name='code']").parent().addClass('error'); 740 frm.find("input[name='code']").parent().find('.error-text').html(data.errors.code); 741 } else { 742 frm.find("input[name='code']").parent().removeClass('error'); 743 } 744 } else { 745 message("ÐÑибка!|||"+data.message); 746 } 747 } else { 748 location.href = '/profile'; 749 } 750 }, 'json'); 751 } 752 753 return false; 754 }); 755 756 $("#edit-phone-form").submit(function(){ 757 758 var frm = $(this); 759 760 if (frm.valid()) { 761 762 if (frm.hasClass("disabled")) 763 return false; 764 765 frm.addClass("disabled"); 766 767 var fields = { 768 phone: $.trim($("#edit-phone-form input[name='phone']").val()), 769 password: $.trim($("#edit-phone-form input[name='password']").val()), 770 }; 771 772 $.post('/profile/editPhoneStep1', {fields: fields}, function(data){ 773 774 frm.removeClass("disabled"); 775 776 if (data.status == 'error') { 777 778 if (data.errors) { 779 if (data.errors.phone) { 780 frm.find("input[name='phone']").parent().addClass('error'); 781 frm.find("input[name='phone']").parent().find('.error-text').html(data.errors.phone); 782 } else { 783 frm.find("input[name='phone']").parent().removeClass('error'); 784 } 785 786 if (data.errors.password) { 787 frm.find("input[name='password']").parent().addClass('error'); 788 frm.find("input[name='password']").parent().find('.error-text').html(data.errors.password); 789 } else { 790 frm.find("input[name='password']").parent().removeClass('error'); 791 } 792 } else { 793 hidePopup("#modal-change-number"); 794 795 message("ÐÑибка!|||"+data.message); 796 } 797 } else { 798 hidePopup("#modal-change-number"); 799 clearInterval(smsInterval2); 800 801 $("#edit-phone-form-step2 .to-send-sms-2").addClass("not-active"); 802 803 tempPhone = $.trim($("#edit-phone-form input[name='phone']").val()); 804 805 $("#edit-phone-form-step2 .sms-timer").html('01:00'); 806 $("#edit-phone-form-step2 .form-foot p:eq(1)").show(); 807 808 smsTimer2 = 60; 809 smsInterval2 = setInterval(function(){ 810 let t1 = Math.floor(smsTimer2 / 60); 811 let t2 = smsTimer2 - t1 * 60; 812 813 if (t1 < 10) t1 = '0'+t1; 814 if (t2 < 10) t2 = '0'+t2; 815 816 $("#edit-phone-form-step2 .sms-timer").html(t1+':'+t2); 817 818 smsTimer2--; 819 if (smsTimer2 < 0) { 820 clearInterval(smsInterval2); 821 $("#edit-phone-form-step2 .to-send-sms-2").removeClass("not-active"); 822 $("#edit-phone-form-step2 .form-foot p:eq(1)").hide(); 823 } 824 825 }, 1000); 826 827 showPopup("#modal-number-sms"); 828 } 829 }, 'json'); 830 } 831 832 return false; 833 }); 834 835 $("#edit-phone-form-step2").submit(function(){ 836 837 var frm = $(this); 838 839 if (frm.valid()) { 840 841 if (frm.hasClass("disabled")) 842 return false; 843 844 frm.addClass("disabled"); 845 846 var fields = { 847 phone: tempPhone, 848 code: $.trim($("#edit-phone-form-step2 input[name='code']").val()), 849 }; 850 851 $.post('/profile/editPhoneStep2', {fields: fields}, function(data){ 852 853 frm.removeClass("disabled"); 854 855 if (data.status == 'error') { 856 857 if (data.errors) { 858 if (data.errors.code) { 859 frm.find("input[name='code']").parent().addClass('error'); 860 frm.find("input[name='code']").parent().find('.error-text').html(data.errors.code); 861 } else { 862 frm.find("input[name='code']").parent().removeClass('error'); 863 } 864 } else { 865 hidePopup("#modal-number-sms"); 866 clearInterval(smsInterval2); 867 868 message("ÐÑибка!|||"+data.message); 869 } 870 } else { 871 hidePopup("#modal-number-sms"); 872 clearInterval(smsInterval2); 873 874 location.href = '/profile'; 875 } 876 }, 'json'); 877 } 878 879 return false; 880 }); 881 882 883 $("#edit-email-form").submit(function(){ 884 885 var frm = $(this); 886 887 if (frm.valid()) { 888 889 if (frm.hasClass("disabled")) 890 return false; 891 892 frm.addClass("disabled"); 893 894 var fields = { 895 email: $.trim($("#edit-email-form input[name='email']").val()), 896 password: $.trim($("#edit-email-form input[name='password']").val()), 897 }; 898 899 $.post('/profile/editEmailStep1', {fields: fields}, function(data){ 900 901 frm.removeClass("disabled"); 902 903 if (data.status == 'error') { 904 905 if (data.errors) { 906 if (data.errors.email) { 907 frm.find("input[name='email']").parent().addClass('error'); 908 frm.find("input[name='email']").parent().find('.error-text').html(data.errors.email); 909 } else { 910 frm.find("input[name='email']").parent().removeClass('error'); 911 } 912 913 if (data.errors.password) { 914 frm.find("input[name='password']").parent().addClass('error'); 915 frm.find("input[name='password']").parent().find('.error-text').html(data.errors.password); 916 } else { 917 frm.find("input[name='password']").parent().removeClass('error'); 918 } 919 } else { 920 hidePopup("#modal-email-succes"); 921 922 message("ÐÑибка!|||"+data.message); 923 } 924 } else { 925 hidePopup("#modal-email-succes"); 926 clearInterval(smsInterval2); 927 928 $("#edit-email-form-step2 .to-send-email-2").addClass("not-active"); 929 930 tempEmail = $.trim($("#edit-email-form input[name='email']").val()); 931 932 $("#edit-email-form-step2 .sms-timer").html('01:00'); 933 $("#edit-email-form-step2 .form-foot p:eq(1)").show(); 934 935 smsTimer2 = 60; 936 smsInterval2 = setInterval(function(){ 937 let t1 = Math.floor(smsTimer2 / 60); 938 let t2 = smsTimer2 - t1 * 60; 939 940 if (t1 < 10) t1 = '0'+t1; 941 if (t2 < 10) t2 = '0'+t2; 942 943 $("#edit-email-form-step2 .sms-timer").html(t1+':'+t2); 944 945 smsTimer2--; 946 if (smsTimer2 < 0) { 947 clearInterval(smsInterval2); 948 $("#edit-email-form-step2 .to-send-email-2").removeClass("not-active"); 949 $("#edit-email-form-step2 .form-foot p:eq(1)").hide(); 950 } 951 952 }, 1000); 953 954 showPopup("#modal-email-succes-sms"); 955 } 956 }, 'json'); 957 } 958 959 return false; 960 }); 961 962 $("#edit-email-form-step2").submit(function(){ 963 964 var frm = $(this); 965 966 if (frm.valid()) { 967 968 if (frm.hasClass("disabled")) 969 return false; 970 971 frm.addClass("disabled"); 972 973 var fields = { 974 email: tempEmail, 975 code: $.trim($("#edit-email-form-step2 input[name='code']").val()), 976 }; 977 978 $.post('/profile/editEmailStep2', {fields: fields}, function(data){ 979 980 frm.removeClass("disabled"); 981 982 if (data.status == 'error') { 983 984 if (data.errors) { 985 if (data.errors.code) { 986 frm.find("input[name='code']").parent().addClass('error'); 987 frm.find("input[name='code']").parent().find('.error-text').html(data.errors.code); 988 } else { 989 frm.find("input[name='code']").parent().removeClass('error'); 990 } 991 } else { 992 hidePopup("#modal-email-succes-sms"); 993 clearInterval(smsInterval2); 994 995 message("ÐÑибка!|||"+data.message); 996 } 997 } else { 998 hidePopup("#modal-email-succes-sms"); 999 clearInterval(smsInterval2); 1000 1001 location.href = '/profile'; 1002 } 1003 }, 'json'); 1004 } 1005 1006 return false; 1007 }); 1008 1009 $("#request-form").submit(function(){ 1010 1011 var frm = $(this); 1012 1013 if (frm.valid()) { 1014 1015 if (frm.hasClass("disabled")) 1016 return false; 1017 1018 frm.addClass("disabled"); 1019 1020 var fields = { 1021 name: $.trim($("#request-form input[name='fullname']").val()), 1022 phone: $.trim($("#request-form input[name='phone']").val()), 1023 email: $.trim($("#request-form input[name='email']").val()), 1024 cityId: $.trim($("#request-form select[name='city_id']").val()), 1025 dealerId: $.trim($("#request-form select[name='dealer_id']").val()), 1026 type: $.trim($("#request-form input[name='type']").val()), 1027 1028 need_date: $.trim($("#request-form input[name='need_date']").val()), 1029 planned_works: $.trim($("#request-form input[name='planned_works']").val()), 1030 1031 }; 1032 1033 $.post('/profile/request', {fields: fields}, function(data){ 1034 1035 frm.removeClass("disabled"); 1036 1037 if (data.status == 'error') { 1038 1039 if (data.errors) { 1040 if (data.errors.name) { 1041 frm.find("input[name='fullname']").parent().addClass('error'); 1042 frm.find("input[name='fullname']").parent().find('.error-text').html(data.errors.name); 1043 } else { 1044 frm.find("input[name='fullname']").parent().removeClass('error'); 1045 } 1046 1047 if (data.errors.phone) { 1048 frm.find("input[name='phone']").parent().addClass('error'); 1049 frm.find("input[name='phone']").parent().find('.error-text').html(data.errors.phone); 1050 } else { 1051 frm.find("input[name='phone']").parent().removeClass('error'); 1052 } 1053 1054 if (data.errors.email) { 1055 frm.find("input[name='email']").parent().addClass('error'); 1056 frm.find("input[name='email']").parent().find('.error-text').html(data.errors.email); 1057 } else { 1058 frm.find("input[name='email']").parent().removeClass('error'); 1059 } 1060 1061 if (data.errors.city) { 1062 frm.find("select[name='city_id']").parent().parent().parent().addClass('error'); 1063 frm.find("select[name='city_id']").parent().parent().parent().find('.error-text').html(data.errors.city); 1064 } else { 1065 frm.find("select[name='city_id']").parent().parent().parent().removeClass('error'); 1066 } 1067 1068 if (data.errors.dealer) { 1069 frm.find("select[name='dealer_id']").parent().parent().parent().addClass('error'); 1070 frm.find("select[name='dealer_id']").parent().parent().parent().find('.error-text').html(data.errors.dealer); 1071 } else { 1072 frm.find("select[name='dealer_id']").parent().parent().parent().removeClass('error'); 1073 } 1074 } else { 1075 message("ÐÑибка!|||"+data.message); 1076 } 1077 } else { 1078 location.href = '/profile'; 1079 } 1080 }, 'json'); 1081 } 1082 1083 return false; 1084 }); 1085 1086 $("#confirm-form").submit(function(){ 1087 1088 var frm = $(this); 1089 1090 if (frm.valid()) { 1091 1092 if (frm.hasClass("disabled")) 1093 return false; 1094 1095 frm.addClass("disabled"); 1096 1097 var fields = { 1098 email: $.trim($("#confirm-form input[name='email']").val()), 1099 cityId: $.trim($("#confirm-form select[name='city_id']").val()), 1100 dealerId: $.trim($("#confirm-form select[name='dealer_id']").val()), 1101 need_date: $.trim($("#confirm-form input[name='need_date1']").val()) + ' ' + $.trim($("#confirm-form input[name='need_time1']").val()), 1102 confirm_type: $.trim($("#confirm-form input[name='confirm_type']").val()),
1103 carId: $("#modal-confiirm-prof").attr('data-car-id'), 1104 }; 1105 1106 $.post('/profile/requestConfirm', {fields: fields}, function(data){ 1107 1108 frm.removeClass("disabled"); 1109 1110 if (data.status == 'error') { 1111 1112 if (data.errors) { 1113 if (data.errors.email) { 1114 frm.find("input[name='email']").parent().addClass('error'); 1115 frm.find("input[name='email']").parent().find('.error-text').html(data.errors.email); 1116 } else { 1117 frm.find("input[name='email']").parent().removeClass('error'); 1118 } 1119 1120 if (data.errors.city) { 1121 frm.find("select[name='city_id']").parent().parent().parent().addClass('error'); 1122 frm.find("select[name='city_id']").parent().parent().parent().find('.error-text').html(data.errors.city); 1123 } else { 1124 frm.find("select[name='city_id']").parent().parent().parent().removeClass('error'); 1125 } 1126 1127 if (data.errors.dealer) { 1128 frm.find("select[name='dealer_id']").parent().parent().parent().addClass('error'); 1129 frm.find("select[name='dealer_id']").parent().parent().parent().find('.error-text').html(data.errors.dealer); 1130 } else { 1131 frm.find("select[name='dealer_id']").parent().parent().parent().removeClass('error'); 1132 } 1133 1134 if (data.errors.need_date) { 1135 frm.find("input[name='need_date1']").parent().addClass('error'); 1136 frm.find("input[name='need_date1']").parent().find('.error-text').html(data.errors.need_date1); 1137 } else { 1138 frm.find("input[name='need_date1']").parent().removeClass('error'); 1139 } 1140 } else { 1141 message("ÐÑибка!|||"+data.message); 1142 } 1143 } else { 1144 if (fields.confirm_type == 'user') 1145 location.href = '/profile'; 1146 else 1147 location.reload(); 1148 } 1149 }, 'json'); 1150 } 1151 1152 return false; 1153 }); 1154 1155 $("#garage-add-form").submit(function(){ 1156 1157 var vin = $.trim($("#garage-vin-form input[name='vin0']").val()); 1158 if (vin.length > 0 && vin.length < 17) { 1159 $("#garage-vin-form input[name='vin0']").parent().addClass("error"); 1160 $("#garage-vin-form input[name='vin0']").parent().find('.error-text').html("ÐевеÑнÑй VIN-код"); 1161 return false; 1162 1163 } else { 1164 $("#garage-vin-form input[name='vin0']").parent().removeClass("error"); 1165 } 1166 1167 var frm = $(this); 1168 1169 if (frm.valid()) { 1170 1171 if (frm.hasClass("disabled")) 1172 return false; 1173 1174 frm.addClass("disabled"); 1175 $(".to-submit-another-form[data-form='garage-add-form']").addClass("disabled"); 1176 1177 var fields = { 1178 modelId: $.trim($("#garage-add-form select[name='model_id']").val()), 1179 modelName: $.trim($("#garage-add-form input[name='model_name']").val()), 1180 year: $.trim($("#garage-add-form input[name='year']").val()), 1181 name: $.trim($("#garage-add-form [name='car_name']").val()), 1182 ownerTypeId: $.trim($("#garage-add-form select[name='ownertype_id']").val()), 1183 engine: $.trim($("#garage-add-form [name='engine']").val()), 1184 color: $.trim($("#garage-add-form [name='color']").val()), 1185 mileage: $.trim($("#garage-add-form [name='mileage']").val()), 1186 vin: vin, 1187 }; 1188 1189 if (($(".form-add-auto img").attr('src') || '').length > 0) 1190 fields.image = $(".form-add-auto img").attr('src'); 1191 1192 $.post('/garage/add', {fields: fields}, function(data){ 1193 1194 frm.removeClass("disabled"); 1195 $(".to-submit-another-form[data-form='garage-add-form']").removeClass("disabled"); 1196 1197 if (data.status == 'error') { 1198 1199 if (data.errors) { 1200 1201 if (data.errors.vin) { 1202 $("#garage-vin-form input[name='vin0']").parent().addClass('error'); 1203 $("#garage-vin-form input[name='vin0']").parent().find('.error-text').html(data.errors.vin); 1204 } else { 1205 $("#garage-vin-form input[name='vin0']").parent().removeClass('error'); 1206 } 1207 1208 if (data.errors.mileage) { 1209 frm.find("input[name='mileage']").parent().addClass('error'); 1210 frm.find("input[name='mileage']").parent().find('.error-text').html(data.errors.mileage); 1211 } else { 1212 frm.find("input[name='mileage']").parent().removeClass('error'); 1213 } 1214 1215 if (data.errors.engine) { 1216 frm.find("input[name='engine']").parent().addClass('error'); 1217 frm.find("input[name='engine']").parent().find('.error-text').html(data.errors.engine); 1218 } else { 1219 frm.find("input[name='engine']").parent().removeClass('error'); 1220 } 1221 1222 if (data.errors.color) { 1223 frm.find("input[name='color']").parent().addClass('error'); 1224 frm.find("input[name='color']").parent().find('.error-text').html(data.errors.color); 1225 } else { 1226 frm.find("input[name='color']").parent().removeClass('error'); 1227 } 1228 1229 if (data.errors.name) { 1230 frm.find("input[name='car_name']").parent().addClass('error'); 1231 frm.find("input[name='car_name']").parent().find('.error-text').html(data.errors.name); 1232 } else { 1233 frm.find("input[name='car_name']").parent().removeClass('error'); 1234 } 1235 1236 if (data.errors.model) { 1237 frm.find("select[name='model_id']").parent().parent().parent().addClass('error'); 1238 frm.find("select[name='model_id']").parent().parent().parent().find('.error-text').html(data.errors.model); 1239 } else { 1240 frm.find("select[name='model_id']").parent().parent().parent().removeClass('error'); 1241 } 1242 1243 if (data.errors.year) { 1244 frm.find("select[name='year']").parent().parent().parent().addClass('error'); 1245 frm.find("select[name='year']").parent().parent().parent().find('.error-text').html(data.errors.year); 1246 } else { 1247 frm.find("select[name='year']").parent().parent().parent().removeClass('error'); 1248 } 1249 1250 if (data.errors.ownertype) { 1251 frm.find("select[name='ownertype_id']").parent().parent().parent().addClass('error'); 1252 frm.find("select[name='ownertype_id']").parent().parent().parent().find('.error-text').html(data.errors.ownertype); 1253 } else { 1254 frm.find("select[name='ownertype_id']").parent().parent().parent().removeClass('error'); 1255 } 1256 1257 } else { 1258 message("ÐÑибка!|||"+data.message); 1259 } 1260 } else { 1261 location.href = '/'; 1262 } 1263 }, 'json'); 1264 } else { 1265 var err = frm.find(".error:eq(0)"); 1266 if (err.length) { 1267 $("html,body").stop().animate({scrollTop: err.offset().top-50}, 200); 1268 } 1269 } 1270 1271 return false; 1272 }); 1273 1274 $("#garage-edit-form").submit(function(){ 1275 1276 var frm = $(this); 1277 1278 if (frm.valid()) { 1279 1280 if (frm.hasClass("disabled")) 1281 return false; 1282 1283 frm.addClass("disabled"); 1284 1285 var id = parseInt(frm.attr('data-id')) || 0; 1286 1287 var fields = { 1288 modelId: $.trim($("#garage-edit-form select[name='model_id']").val()), 1289 modelName: $.trim($("#garage-edit-form input[name='model_name']").val()), 1290 year: $.trim($("#garage-edit-form input[name='year']").val()), 1291 name: $.trim($("#garage-edit-form [name='car_name']").val()), 1292 ownerTypeId: $.trim($("#garage-edit-form select[name='ownertype_id']").val()), 1293 vin: $.trim($("#garage-edit-form input[name='vin']").val()), 1294 mileage: $.trim($("#garage-edit-form input[name='mileage']").val()), 1295 engine: $.trim($("#garage-edit-form [name='engine']").val()), 1296 color: $.trim($("#garage-edit-form [name='color']").val()), 1297 }; 1298 1299 $.post('/garage/edit/'+id, {fields: fields}, function(data){ 1300 1301 frm.removeClass("disabled"); 1302 1303 if (data.status == 'error') { 1304 1305 if (data.errors) { 1306 1307 if (data.errors.vin) { 1308 frm.find("input[name='vin']").parent().addClass('error'); 1309 frm.find("input[name='vin']").parent().find('.error-text').html(data.errors.vin); 1310 } else { 1311 frm.find("input[name='vin']").parent().removeClass('error'); 1312 } 1313 1314 if (data.errors.mileage) { 1315 frm.find("input[name='mileage']").parent().addClass('error'); 1316 frm.find("input[name='mileage']").parent().find('.error-text').html(data.errors.mileage); 1317 } else { 1318 frm.find("input[name='mileage']").parent().removeClass('error'); 1319 } 1320 1321 if (data.errors.engine) { 1322 frm.find("input[name='engine']").parent().addClass('error'); 1323 frm.find("input[name='engine']").parent().find('.error-text').html(data.errors.engine); 1324 } else { 1325 frm.find("input[name='engine']").parent().removeClass('error'); 1326 } 1327 1328 if (data.errors.color) { 1329 frm.find("input[name='color']").parent().addClass('error'); 1330 frm.find("input[name='color']").parent().find('.error-text').html(data.errors.color); 1331 } else { 1332 frm.find("input[name='color']").parent().removeClass('error'); 1333 } 1334 1335 if (data.errors.name) { 1336 frm.find("input[name='car_name']").parent().addClass('error'); 1337 frm.find("input[name='car_name']").parent().find('.error-text').html(data.errors.name); 1338 } else { 1339 frm.find("input[name='car_name']").parent().removeClass('error'); 1340 } 1341 1342 if (data.errors.model) { 1343 frm.find("select[name='model_id']").parent().parent().parent().addClass('error'); 1344 frm.find("select[name='model_id']").parent().parent().parent().find('.error-text').html(data.errors.model); 1345 } else { 1346 frm.find("select[name='model_id']").parent().parent().parent().removeClass('error'); 1347 } 1348 1349 if (data.errors.year) { 1350 frm.find("select[name='year']").parent().parent().parent().addClass('error'); 1351 frm.find("select[name='year']").parent().parent().parent().find('.error-text').html(data.errors.year); 1352 } else { 1353 frm.find("select[name='year']").parent().parent().parent().removeClass('error'); 1354 } 1355 1356 if (data.errors.ownertype) { 1357 frm.find("select[name='ownertype_id']").parent().parent().parent().addClass('error'); 1358 frm.find("select[name='ownertype_id']").parent().parent().parent().find('.error-text').html(data.errors.ownertype); 1359 } else { 1360 frm.find("select[name='ownertype_id']").parent().parent().parent().removeClass('error'); 1361 } 1362 1363 } else { 1364 message("ÐÑибка!|||"+data.message); 1365 } 1366 } else { 1367 location.href = '/garage/item/'+id; 1368 } 1369 }, 'json'); 1370 } else { 1371 var err = frm.find(".error:eq(0)"); 1372 if (err.length) { 1373 $("html,body").stop().animate({scrollTop: err.offset().top-50}, 200); 1374 } 1375 } 1376 1377 return false; 1378 }); 1379 1380 1381 $("#garage-vin-form").submit(function(){ 1382 1383 var frm = $(this); 1384 1385 if (frm.valid()) { 1386 1387 if (frm.hasClass("disabled")) 1388 return false; 1389 1390 frm.addClass("disabled"); 1391 1392 var id = parseInt(frm.attr('data-id')) || 0; 1393 1394 var fields = { 1395 vin: $.trim($("#garage-vin-form input[name='vin0']").val()), 1396 }; 1397 1398 $.post('/garage/findvin', {fields: fields}, function(data){ 1399 1400 frm.removeClass("disabled"); 1401 1402 if (data.status == 'error') { 1403 1404 if (data.errors) { 1405 1406 if (data.errors.vin) { 1407 frm.find("input[name='vin0']").parent().addClass('error'); 1408 frm.find("input[name='vin0']").parent().find('.error-text').html(data.errors.vin); 1409 } else { 1410 frm.find("input[name='vin0']").parent().removeClass('error'); 1411 } 1412 1413 } else { 1414 message("ÐÑибка!|||"+data.message); 1415 } 1416 } else { 1417 //console.log(data); 1418 1419 $("#garage-add-form select[name='model_id']").val(data.model_id); 1420 setTimeout(function(){ 1421 $("#garage-add-form select[name='model_id']").selectric("update"); 1422 }, 5);
1423 1424 $("#garage-add-form input[name='year']").val(data.year); 1425 1426 if (data.engine) 1427 $("#garage-add-form input[name='engine']").val(data.engine); 1428 1429 /*setTimeout(function(){ 1430 $("#garage-add-form select[name='year']").selectric("update"); 1431 }, 5);*/ 1432 } 1433 }, 'json'); 1434 } 1435 1436 return false; 1437 }); 1438 1439 $("#garage-add-form select[name='model_id'], #garage-edit-form select[name='model_id']").change(function(){ 1440 var val = $.trim($(this).val()); 1441 if (val.length > 0) { 1442 $(".model_name-wrapper").hide(); 1443 } else { 1444 $(".model_name-wrapper").show(); 1445 } 1446 return false; 1447 }); 1448 1449});
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.