1function login() { 2 var token = $('input[name="token"]').val(); 3 $.ajax(base_url + "api/load_login", { 4 method: "GET", 5 data: { token: token }, 6 beforeSend: function () { 7 //$('.loader').show(); 8 }, 9 }).done(function (data) { 10 if (data != "") { 11 $("#login-modal").html(data); 12 $("#login-modal").modal("show"); 13 } else { 14 //$('.btn-loadmore').hide(); 15 } 16 }); 17} 18 19function verifySerialExists($this) { 20 var lang = $("html").attr("lang"); 21 var form_el = $this.closest("form"); 22 var frm = new FormData(form_el[0]); 23 24 $.ajax({ 25 data: frm, 26 type: "POST", 27 url: 28 window.location.origin + 29 "/ProductRegisteration/verifySerialByPcodeIsserailSerial", 30 cache: false, 31 contentType: false, 32 processData: false, 33 dataType: "json", 34 success: function (arresult) { 35 if (arresult.rs) { 36 form_el.submit(); 37 } else { 38 popup_message( 39 (type = "error"), 40 (message = ""), 41 (title = arresult.error_text), 42 (timer = 3000), 43 (timer_message = "à¸à¸´à¸à¸«à¸¥à¸±à¸à¸à¸²à¸ 3 วิà¸à¸²à¸à¸µ") 44 ); 45 } 46 }, 47 }); 48} 49 50function filterProductListTopOnly($this) { 51 var token = $('input[name="token"]').val(); 52 if ($this.hasClass("top-filter")) { 53 var product_value = parseInt($this.attr("data-prod-con")); 54 var category_code = parseInt($this.attr("data-product-model")); 55 $.ajax(base_url + "api/load_product_list_top_only", { 56 method: "GET", 57 data: { 58 token: token, 59 product_val: product_value, 60 category_code: category_code, 61 }, 62 beforeSend: function () { 63 console.log("sent"); 64 //$('.loader').show(); 65 }, 66 }).done(function (data) { 67 if (data != "") { 68 var data_elem = $this 69 .closest(".wrapper") 70 .find(".group-product") 71 .find(".group-product-list") 72 .find(".row"); 73 data_elem.empty(); 74 data_elem.html(data); 75 } else { 76 //$('.btn-loadmore').hide(); 77 } 78 }); 79 } 80} 81 82function filterProductFilterList($this) { 83 var token = $('input[name="token"]').val(); 84 if ($this.hasClass("pure-filler-item")) { 85 var water_value = 0; 86 var filter_value = 0; 87 88 setTimeout(() => { 89 var group_filter_elem = $this 90 .closest(".group-product") 91 .find(".group-filter"); 92 93 var group_product_list_elem = $this 94 .closest(".wrapper") 95 .find(".group-product-list"); 96 97 var water_select = group_filter_elem.find(".water"); 98 var filter_select = group_filter_elem.find(".filter"); 99 100 var water_value_elem = water_select.find("li.active a"); 101 var filter_value_elem = filter_select.find("li.active a"); 102 103 var price_filter_select = group_product_list_elem.find(".pure-filter"); 104 var price_filter_elem = price_filter_select.find("li.active a"); 105 106 if (price_filter_elem.length > 0) { 107 var price_filter_value = parseInt(price_filter_elem.attr("value")); 108 } else { 109 var price_filter_value = 0; 110 } 111 112 if (water_value_elem.length > 0) { 113 water_value = parseInt(water_value_elem.attr("value")); 114 } else { 115 water_value = 0; 116 } 117 118 if (filter_value_elem.length > 0) { 119 filter_value = parseInt(filter_value_elem.attr("value")); 120 } else { 121 filter_value = 0; 122 } 123 124 $.ajax(base_url + "api/load_product_filter_list", { 125 method: "GET", 126 data: { 127 token: token, 128 water_val: water_value, 129 filter_val: filter_value, 130 price_filter_value: price_filter_value, 131 }, 132 beforeSend: function () { 133 console.log("sent"); 134 //$('.loader').show(); 135 }, 136 }).done(function (data) { 137 if (data != "") { 138 var data_elem = $this 139 .closest(".group-product") 140 .find(".group-product-list") 141 .find(".row"); 142 data_elem.empty(); 143 data_elem.html(data); 144 } else { 145 //$('.btn-loadmore').hide(); 146 } 147 }); 148 }, 250); 149 } else if ($this.hasClass("price_filter")) { 150 var water_value = 0; 151 var filter_value = 0; 152 153 setTimeout(() => { 154 var group_filter_elem = $this.closest(".wrapper").find(".group-filter"); 155 156 var group_product_list_elem = $this 157 .closest(".wrapper") 158 .find(".group-product-list"); 159 160 var water_select = group_filter_elem.find(".water"); 161 var filter_select = group_filter_elem.find(".filter"); 162 163 var water_value_elem = water_select.find("li.active a"); 164 var filter_value_elem = filter_select.find("li.active a"); 165 166 var price_filter_select = group_product_list_elem.find(".pure-filter"); 167 var price_filter_elem = price_filter_select.find("li.active a"); 168 169 if (price_filter_elem.length > 0) { 170 var price_filter_value = parseInt(price_filter_elem.attr("value")); 171 } else { 172 var price_filter_value = 0; 173 } 174 175 if (water_value_elem.length > 0) { 176 water_value = parseInt(water_value_elem.attr("value")); 177 } else { 178 water_value = 0; 179 } 180 181 if (filter_value_elem.length > 0) { 182 filter_value = parseInt(filter_value_elem.attr("value")); 183 } else { 184 filter_value = 0; 185 } 186
187 $.ajax(base_url + "api/load_product_filter_list", { 188 method: "GET", 189 data: { 190 token: token, 191 water_val: water_value, 192 filter_val: filter_value, 193 price_filter_value: price_filter_value, 194 }, 195 beforeSend: function () { 196 console.log("sent"); 197 //$('.loader').show(); 198 }, 199 }).done(function (data) { 200 if (data != "") { 201 var data_elem = $this 202 .closest(".group-product") 203 .find(".group-product-list") 204 .find(".row"); 205 data_elem.empty(); 206 data_elem.html(data); 207 } else { 208 //$('.btn-loadmore').hide(); 209 } 210 }); 211 }, 250); 212 } 213} 214 215function filterProductList($this) { 216 var token = $('input[name="token"]').val(); 217 if ($this.hasClass("top-filter")) { 218 var product_value = parseInt($this.attr("data-prod-con")); 219 var group_prod_elem = $this.closest(".wrapper").find(".group-product"); 220 var group_filter_elem = group_prod_elem.find(".group-filter"); 221 var group_product_list_elem = group_prod_elem.find(".group-product-list"); 222 223 var water_select = group_filter_elem.find(".water"); 224 var install_select = group_filter_elem.find(".install"); 225 var usage_select = group_filter_elem.find(".usage"); 226 var filter_select = group_filter_elem.find(".filter"); 227 228 var water_value_elem = water_select.find("li.active a"); 229 var install_value_elem = install_select.find("li.active a"); 230 var usage_value_elem = usage_select.find("li.active a"); 231 var filter_value_elem = filter_select.find("li.active a"); 232 233 var price_filter_select = group_product_list_elem.find(".pure-filter"); 234 var price_filter_elem = price_filter_select.find("li.active a"); 235 236 if (price_filter_elem.length > 0) { 237 var price_filter_value = parseInt(price_filter_elem.attr("value")); 238 } else { 239 var price_filter_value = 0; 240 } 241 242 if (water_value_elem.length > 0) { 243 var water_value = parseInt(water_value_elem.attr("value")); 244 } else { 245 var water_value = 0; 246 } 247 248 if (install_value_elem.length > 0) { 249 var install_value = parseInt(install_value_elem.attr("value")); 250 } else { 251 var install_value = 0; 252 } 253 254 if (usage_value_elem.length > 0) { 255 var usage_value = parseInt(usage_value_elem.attr("value")); 256 } else { 257 var usage_value = 0; 258 } 259 260 if (filter_value_elem.length > 0) { 261 var filter_value = parseInt(filter_value_elem.attr("value")); 262 } else { 263 var filter_value = 0; 264 } 265 266 $.ajax(base_url + "api/load_product_list", { 267 method: "GET", 268 data: { 269 token: token, 270 water_val: water_value, 271 install_val: install_value, 272 usage_val: usage_value, 273 filter_val: filter_value, 274 product_val: product_value, 275 price_filter_value: price_filter_value, 276 }, 277 beforeSend: function () { 278 console.log("sent"); 279 //$('.loader').show(); 280 }, 281 }).done(function (data) { 282 if (data != "") { 283 var data_elem = $this 284 .closest(".wrapper") 285 .find(".group-product") 286 .find(".group-product-list") 287 .find(".row"); 288 data_elem.empty(); 289 data_elem.html(data); 290 } else { 291 //$('.btn-loadmore').hide(); 292 } 293 }); 294 } else if ($this.hasClass("pure-filler-item")) { 295 var water_value = 0; 296 var install_value = 0; 297 var usage_value = 0; 298 var filter_value = 0; 299 var price_filter_value = 0; 300 301 setTimeout(() => { 302 var group_product_elem = $this 303 .closest(".wrapper") 304 .find(".hero-banner-has-tab"); 305 var product_active_element = group_product_elem.find("ul li a.active"); 306 307 var group_filter_elem = group_product_elem.find(".group-filter"); 308 var group_product_list_elem = group_product_elem.find( 309 ".group-product-list" 310 ); 311 312 var group_filter_elem = $this 313 .closest(".group-product") 314 .find(".group-filter"); 315 var water_select = group_filter_elem.find(".water"); 316 var install_select = group_filter_elem.find(".install"); 317 var usage_select = group_filter_elem.find(".usage"); 318 var filter_select = group_filter_elem.find(".filter"); 319 320 var water_value_elem = water_select.find("li.active a"); 321 var install_value_elem = install_select.find("li.active a"); 322 var usage_value_elem = usage_select.find("li.active a"); 323 var filter_value_elem = filter_select.find("li.active a"); 324 325 var price_filter_select = group_product_list_elem.find(".pure-filter"); 326 var price_filter_elem = price_filter_select.find("li.active a"); 327 328 if (price_filter_elem.length > 0) { 329 var price_filter_value = parseInt(price_filter_elem.attr("value")); 330 } else { 331 var price_filter_value = 0; 332 } 333 334 if (water_value_elem.length > 0) { 335 water_value = parseInt(water_value_elem.attr("value")); 336 } else { 337 water_value = 0; 338 } 339 340 if (install_value_elem.length > 0) { 341 install_value = parseInt(install_value_elem.attr("value")); 342 } else { 343 install_value = 0; 344 } 345 346 if (usage_value_elem.length > 0) { 347 usage_value = parseInt(usage_value_elem.attr("value")); 348 } else { 349 usage_value = 0; 350 } 351 352 if (filter_value_elem.length > 0) { 353 filter_value = parseInt(filter_value_elem.attr("value")); 354 } else { 355 filter_value = 0; 356 } 357 358 var product_value = parseInt( 359 product_active_element.attr("data-prod-con") 360 ); 361
362 $.ajax(base_url + "api/load_product_list", { 363 method: "GET", 364 data: { 365 token: token, 366 water_val: water_value, 367 install_val: install_value, 368 usage_val: usage_value, 369 filter_val: filter_value, 370 product_val: product_value, 371 price_filter_value: price_filter_value, 372 }, 373 beforeSend: function () { 374 console.log("sent"); 375 //$('.loader').show(); 376 }, 377 }).done(function (data) { 378 if (data != "") { 379 var data_elem = $this 380 .closest(".group-product") 381 .find(".group-product-list") 382 .find(".row"); 383 data_elem.empty(); 384 data_elem.html(data); 385 } else { 386 //$('.btn-loadmore').hide(); 387 } 388 }); 389 }, 250); 390 } else if ($this.hasClass("price_filter")) { 391 var water_value = 0; 392 var install_value = 0; 393 var usage_value = 0; 394 var filter_value = 0; 395 var price_filter_value = 0; 396 setTimeout(() => { 397 var group_product_top_elem = $this 398 .closest(".wrapper") 399 .find(".hero-banner-has-tab"); 400 var product_active_element = 401 group_product_top_elem.find("ul li a.active"); 402 403 var group_product_elem = $this.closest(".wrapper").find(".group-product"); 404 405 var group_filter_elem = group_product_elem.find(".group-filter"); 406 var group_product_list_elem = group_product_elem.find( 407 ".group-product-list" 408 ); 409 410 var group_filter_elem = $this 411 .closest(".group-product") 412 .find(".group-filter"); 413 var water_select = group_filter_elem.find(".water"); 414 var install_select = group_filter_elem.find(".install"); 415 var usage_select = group_filter_elem.find(".usage"); 416 var filter_select = group_filter_elem.find(".filter"); 417 418 var water_value_elem = water_select.find("li.active a"); 419 var install_value_elem = install_select.find("li.active a"); 420 var usage_value_elem = usage_select.find("li.active a"); 421 var filter_value_elem = filter_select.find("li.active a"); 422 423 var price_filter_select = group_product_list_elem.find(".pure-filter"); 424 var price_filter_elem = price_filter_select.find("li.active a"); 425 if (price_filter_elem.length > 0) { 426 var price_filter_value = parseInt(price_filter_elem.attr("value")); 427 } else { 428 var price_filter_value = 0; 429 } 430 431 if (water_value_elem.length > 0) { 432 water_value = parseInt(water_value_elem.attr("value")); 433 } else { 434 water_value = 0; 435 } 436 437 if (install_value_elem.length > 0) { 438 install_value = parseInt(install_value_elem.attr("value")); 439 } else { 440 install_value = 0; 441 } 442 443 if (usage_value_elem.length > 0) { 444 usage_value = parseInt(usage_value_elem.attr("value")); 445 } else { 446 usage_value = 0; 447 } 448 449 if (filter_value_elem.length > 0) { 450 filter_value = parseInt(filter_value_elem.attr("value")); 451 } else { 452 filter_value = 0; 453 } 454 455 var product_value = parseInt( 456 product_active_element.attr("data-prod-con") 457 ); 458 459 $.ajax(base_url + "api/load_product_list", { 460 method: "GET", 461 data: { 462 token: token, 463 water_val: water_value, 464 install_val: install_value, 465 usage_val: usage_value, 466 filter_val: filter_value, 467 product_val: product_value, 468 price_filter_value: price_filter_value, 469 }, 470 beforeSend: function () { 471 console.log("sent"); 472 //$('.loader').show(); 473 }, 474 }).done(function (data) { 475 if (data != "") { 476 var data_elem = $this 477 .closest(".group-product") 478 .find(".group-product-list") 479 .find(".row"); 480 data_elem.empty(); 481 data_elem.html(data); 482 } else { 483 //$('.btn-loadmore').hide(); 484 } 485 }); 486 }, 250); 487 } 488} 489 490function dealerFilter($this) { 491 if ($this.hasClass("dealer-submit")) { 492 var dealer_wrapper = $this.closest(".dealer-filter-select"); 493 } else { 494 var dealer_wrapper = $this 495 .closest(".container") 496 .find(".dealer-filter-select"); 497 } 498 499 var zipcode = dealer_wrapper.find(".zip-code").val(); 500 var province = ""; 501 var district = ""; 502 if (zipcode != "") { 503 dealer_wrapper.find(".province select.selectpicker").val("-1"); 504 dealer_wrapper.find(".district select.selectpicker").val("-1"); 505 province = dealer_wrapper.find(".province select.selectpicker").val(); 506 district = dealer_wrapper.find(".district select.selectpicker").val(); 507 $(".selectpicker").selectpicker("refresh"); 508 } else { 509 province = dealer_wrapper.find(".province select.selectpicker").val(); 510 district = dealer_wrapper.find(".district select.selectpicker").val(); 511 } 512 513 var dealer_type_all = 0; 514 var dealer_type0 = 0; 515 var dealer_type1 = 0; 516 var dealer_type2 = 0; 517 var dealer_type3 = 0; 518 519 if ($("#check-all").is(":checked")) { 520 dealer_type_all = 1; 521 } 522 if ($("#dealerCheck1").is(":checked")) { 523 dealer_type0 = 1; 524 } 525 if ($("#dealerCheck2").is(":checked")) { 526 dealer_type1 = 1; 527 } 528 if ($("#dealerCheck3").is(":checked")) { 529 dealer_type2 = 1; 530 } 531 if ($("#dealerCheck4").is(":checked")) { 532 dealer_type3 = 1; 533 } 534 535 var token = $this 536 .closest(".dealer-filter-select") 537 .find("form") 538 .find("input[name=token]") 539 .val(); 540
541 $.ajax(base_url + "api/load_spacific_dealer", { 542 method: "GET", 543 data: { 544 token: token, 545 zipcode_val: zipcode, 546 province_val: province, 547 district_val: district, 548 dealer_type_all: dealer_type_all, 549 dealer_type_0: dealer_type0, 550 dealer_type_1: dealer_type1, 551 dealer_type_2: dealer_type2, 552 dealer_type_3: dealer_type3, 553 }, 554 beforeSend: function () { 555 console.log("sent"); 556 //$('.loader').show(); 557 }, 558 }).done(function (data) { 559 if (data != "") { 560 var data_elem = $this 561 .closest(".row") 562 .find(".order-list-dealer") 563 .find(".dealer-group"); 564 data_elem.empty(); 565 data_elem.html(data); 566 svg(); 567 } else { 568 //$('.btn-loadmore').hide(); 569 } 570 }); 571} 572 573function addToCart($this) { 574 var lang = $("html").attr("lang"); 575 if ($this.hasClass("prod-detail-top")) { 576 var thumb_wrapper = $this.closest(".box-product-detail"); 577 var thumb_color_selector = thumb_wrapper.find(".thumb-color-selector"); 578 var input_elem_check = thumb_color_selector.find("input:checked"); 579 var amount = $this 580 .siblings(".qty-select-product") 581 .find("input.top-spinner") 582 .val(); 583 } else if ($this.hasClass("prod-detail-stick")) { 584 var thumb_wrapper = $this.closest(".wrapper").find(".box-product-detail"); 585 var thumb_color_selector = thumb_wrapper.find(".thumb-color-selector"); 586 var input_elem_check = thumb_color_selector.find("input:checked"); 587 var amount = $this 588 .siblings(".qty-select-product") 589 .find("input.bottom-spinner") 590 .val(); 591 } else if ($this.hasClass("prod-list-filter")) { 592 var thumb_wrapper = $this; 593 var thumb_color_selector = $this; 594 var input_elem_check = $this; 595 var amount = 1; 596 } else if ($this.hasClass("prod-list-water")) { 597 var thumb_wrapper = $this; 598 var thumb_color_selector = $this; 599 var input_elem_check = $this; 600 var amount = 1; 601 } else if ($this.hasClass("home-page")) { 602 var thumb_wrapper = $this.closest(".thumb"); 603 var thumb_color_selector = thumb_wrapper.find(".thumb-color-selector"); 604 var input_elem_check = thumb_color_selector.find("input:checked"); 605 var amount = 1; 606 } else { 607 var thumb_wrapper = $this.closest(".thumb.thumb-filter"); 608 var thumb_color_selector = thumb_wrapper.find(".thumb-color-selector"); 609 var input_elem_check = thumb_color_selector.find("input:checked"); 610 var amount = 1; 611 } 612 613 var product_code = input_elem_check.attr("data-prod"); 614 var sku_id = input_elem_check.attr("data-sku"); 615 616 var token = $this.closest("body").find("input[name=token]").val(); 617 $.ajax(base_url + "api/add_to_cart", { 618 method: "GET", 619 data: { 620 token: token, 621 product_code: product_code, 622 sku_id: sku_id, 623 amount: parseInt(amount), 624 }, 625 beforeSend: function () { 626 console.log("sent"); 627 //$('.loader').show(); 628 }, 629 }).done(function (data) { 630 if (data != "") { 631 var cart_elem = $("body").find(".box-cart-product"); 632 cart_elem.empty(); 633 cart_elem.append(data); 634 if (lang == "th") { 635 popup_message_cart( 636 "success", 637 "", 638 "สำà¹à¸£à¹à¸<br>à¹à¸à¸´à¹à¸¡à¸ªà¸´à¸à¸à¹à¸²à¸¥à¸à¹à¸à¸à¸°à¸à¸£à¹à¸²à¹à¸£à¸µà¸¢à¸à¸£à¹à¸à¸¢", 639 3000, 640 "à¸à¸´à¸à¸«à¸¥à¸±à¸à¸à¸²à¸ 3 วิà¸à¸²à¸à¸µ" 641 ); 642 } else { 643 popup_message_cart( 644 "success", 645 "", 646 "Success<br>The product has been added to the cart.", 647 3000, 648 "Close in 3 seconds." 649 ); 650 } 651 cart_elem.addClass("active"); 652 cart_elem.show(); 653 } else { 654 //$('.btn-loadmore').hide(); 655 } 656 }); 657} 658 659function deleteItem($this) { 660 var data_index = $this.attr("data-index"); 661 var data_memberid = $this.attr("data-memberid"); 662 var token = $this.closest(".wrapper").find("input[name=token]").val(); 663 664 $.ajax(base_url + "api/delete_cart", { 665 method: "GET", 666 data: { 667 token: token, 668 data_index: data_index, 669 data_memberid: data_memberid, 670 }, 671 beforeSend: function () { 672 console.log("sent"); 673 //$('.loader').show(); 674 }, 675 }).done(function (data) { 676 if (parseInt(data) == 1) { 677 setTimeout(function () { 678 location.reload(); 679 }, 200); 680 } else { 681 element = $this.closest(".thumb-ver"); 682 element.remove(); 683 refreshTopCart($this); 684 window.location.reload(); 685 } 686 }); 687} 688 689function deleteAllItem($this) { 690 var member_id = $this.attr("data-id"); 691 var token = $this.closest(".wrapper").find("input[name=token]").val(); 692
693 $.ajax(base_url + "api/delete_all_cart", { 694 method: "GET", 695 data: { 696 token: token, 697 member_id: member_id, 698 }, 699 beforeSend: function () { 700 console.log("sent"); 701 //$('.loader').show(); 702 }, 703 }).done(function (data) { 704 element = $this.closest(".group-item-list"); 705 element.empty(); 706 }); 707 setTimeout(function () { 708 location.reload(); 709 }, 300); 710} 711 712function refreshTopCart($this) { 713 var cart_elem = $(".box-cart-product"); 714 var token = $this.closest(".wrapper").find("input[name=token]").val(); 715 $.ajax(base_url + "api/refresh_top_cart", { 716 method: "GET", 717 data: { 718 token: token, 719 }, 720 beforeSend: function () { 721 console.log("sent4"); 722 //$('.loader').show(); 723 }, 724 }).done(function (data) { 725 cart_elem.empty(); 726 cart_elem.append(data); 727 // console.log('cart_elem',cart_elem); 728 }); 729} 730// marks 731function quantitySelectProduct($this) { 732 // console.log('run quantitySelectProduct'); 733 734 let item_list_wrapper = $this.closest(".group-item-list"); 735 let thumb_ver = item_list_wrapper.find(".thumb-ver"); 736 let data_index = $this.attr("data-index"); 737 var token = $this.closest(".wrapper").find("input[name=token]").val(); 738 let total = 0; 739 var discount_total = 0; 740 var n_total = 0; 741 742 if ($this.hasClass("plus")) { 743 let input = $this.siblings("input"); 744 if (input.data("type") === "number") { 745 let step = input.attr("step"); 746 let oldValue = input.val(); 747 let newValue = parseInt(oldValue) + parseInt(step || 1); 748 input.val(newValue); 749 input.attr("value", newValue); 750 } else if (input.data("type") === "text") { 751 let oldIndex = input.data("spinner-index") || 0; 752 let items = input.data("spinner-items"); 753 let newIndex = oldIndex + 1; 754 755 if (newIndex < items.length) { 756 input.val(items[newIndex]); 757 input.data("spinner-index", newIndex); 758 } else if (input.data("spinner-loop")) { 759 input.val(items[0]); 760 input.data("spinner-index", 0); 761 } 762 } 763 } else if ($this.hasClass("minus")) { 764 let input = $this.siblings("input"); 765 if (input.data("type") === "number") { 766 let step = input.attr("step"); 767 let oldValue = input.val(); 768 let newValue = parseInt(oldValue) - parseInt(step || 1); 769 let minValue = parseInt(input.attr("min")); 770 if (newValue <= minValue) { 771 input.val(minValue); 772 } else { 773 input.val(newValue); 774 } 775 } else if (input.data("type") === "text") { 776 let oldIndex = input.data("spinner-index") || 0; 777 let items = input.data("spinner-items"); 778 let newIndex = oldIndex - 1; 779 780 if (newIndex >= 0) { 781 input.val(items[newIndex]); 782 input.data("spinner-index", newIndex); 783 } else if (input.data("spinner-loop")) { 784 input.val(items[items.length - 1]); 785 input.data("spinner-index", items.length - 1); 786 } 787 } 788 } 789 790 for (let index = 0; index < thumb_ver.length; index++) { 791 const thumb_ver_elem = thumb_ver.eq(index); 792 793 const thumb_text_title = thumb_ver_elem.find(".thumb-txt-title"); 794 var item_price = parseInt( 795 thumb_text_title.find(".thumb-txt-price").attr("data-item-price") 796 ); 797 var full_price = parseInt( 798 thumb_text_title.find(".thumb-txt-price").attr("data-full-price") 799 ); 800 801 const item_b_pro_dis_1 = parseInt( 802 thumb_text_title.find(".thumb-txt-price").attr("data-item-bun-dis1") 803 ); 804 const item_b_pro_dis_2 = parseInt( 805 thumb_text_title.find(".thumb-txt-price").attr("data-item-bun-dis2") 806 ); 807 const item_b_pro_dis_type = parseInt( 808 thumb_text_title.find(".thumb-txt-price").attr("data-item-bun-type") 809 ); 810 const item_b_code = parseInt( 811 thumb_text_title.find(".thumb-txt-price").attr("data-item-bun-b-code") 812 ); 813 814 815 const quantity_product = thumb_ver_elem.find(".qty-select-product"); 816 const quantity = parseInt(quantity_product.find("input[type=text]").val()); 817 let quantity2 = 0; 818 let item_price2 = 0; 819 let q_use = 0; 820 let totalab = 0; 821 var finalDiscount = 0; 822 823 if (item_b_code && item_b_code != "") { 824 for (let index2 = 0; index2 < thumb_ver.length; index2++) { 825 const thumb_ver_elem2 = thumb_ver.eq(index2); 826 const thumb_text_title2 = thumb_ver_elem2.find(".thumb-txt-title"); 827 const item_code2 = parseInt( 828 thumb_text_title2.find(".thumb-txt-price").attr("data-item-code") 829 ); 830 831 if (item_b_code == item_code2) { 832 item_price2 = parseInt( 833 thumb_text_title2.find(".thumb-txt-price").attr("data-item-price") 834 ); 835 const quantity_product2 = thumb_ver_elem2.find(".qty-select-product"); 836 quantity2 = parseInt( 837 quantity_product2.find("input[type=text]").val() 838 ); 839 } 840 } 841 842 if (quantity > quantity2) { 843 q_use = quantity2; 844 } else { 845 q_use = quantity; 846 } 847 // console.log('item_price',item_price); 848 totalab = item_price2 + item_price; 849 let dis = 0; 850 if (item_b_pro_dis_type != "" && item_b_pro_dis_type == 1) { 851 dis = Math.round((totalab * item_b_pro_dis_1) / 100); 852 discount_total += q_use * dis; 853 } else if (item_b_pro_dis_type != "" && item_b_pro_dis_type == 2) { 854 855 // dis = totalab - item_b_pro_dis_2; 856 // console.log('totalab',totalab); 857 // console.log('item_b_pro_dis_2',item_b_pro_dis_2); 858 // discount_total += q_use * (totalab - item_b_pro_dis_2); 859 // console.log('discount_total',discount_total); 860 861 //onbb-comment -old code 862 863 dis = totalab - item_b_pro_dis_2; 864 console.log('totalab',totalab); 865 console.log('item_b_pro_dis_2',item_b_pro_dis_2); 866 discount_total += q_use * (item_b_pro_dis_2); 867 console.log('discount_total',discount_total); 868 869 // return 870 } 871 total = total + item_price * (quantity - q_use); 872 total = total + item_price2 * (quantity2 - q_use); 873 total = total - item_price2 * quantity2; 874 total = total + dis * q_use; 875 console.log('total',total); 876 if (full_price && full_price != "") { 877 console.log('if'); 878 n_total += full_price * quantity; 879 } else { 880 console.log('elsefewqe'); 881 n_total += item_price * quantity; 882 } 883 } else { 884 885 total += item_price * quantity; 886 console.log("total-- :", total); 887 888 if (full_price && full_price != "") { 889 console.log('if1'); 890 discount_total += (full_price - item_price) * quantity; 891 n_total += full_price * quantity; 892 finalDiscount = discount_total; 893 } else { 894 console.log('else1'); 895 // console.log('n_total1',n_total); 896 n_total += item_price * quantity; 897 // console.log('n_total_change',n_total); 898 } 899 } 900 901 // console.log("yo2", discount_total); 902 } 903 904 // console.log("discount_total before 2", discount_total); 905 906 // return 907 908 let subtotal = n_total - finalDiscount; 909 console.log('full_price :' + full_price); 910 console.log('finalDiscount :' + finalDiscount); 911 console.log('discount_total :' + discount_total); 912 913 // console.log("n_total", n_total); 914 // console.log("finalDiscount", finalDiscount); 915 916 if (finalDiscount !== 0) { 917 var n_total_val_string = new Intl.NumberFormat("th", { 918 style: "currency", 919 currency: "THB", 920 minimumFractionDigits: 0, 921 }).format(n_total - finalDiscount); 922 } else { 923 var n_total_val_string = new Intl.NumberFormat("th", { 924 style: "currency", 925 currency: "THB", 926 minimumFractionDigits: 0, 927 }).format(n_total); 928 } 929 930 // console.log("subtotal", subtotal); 931 932 n_total_val_string = n_total_val_string.replace("฿", ""); 933 934 // console.log("discount_total before", discount_total); 935 936 // console.log('finalDiscount',finalDiscount); 937 938 // console.log('finaldis1',finalDiscount); 939 // console.log('discount_total1',discount_total); 940 941 // return 942 943 if (finalDiscount !== 0) { 944 var dis_val_string = new Intl.NumberFormat("th", { 945 style: "currency", 946 currency: "THB", 947 minimumFractionDigits: 0, 948 }).format(finalDiscount); 949 } else { 950 var dis_val_string = new Intl.NumberFormat("th", { 951 style: "currency", 952 currency: "THB", 953 minimumFractionDigits: 0, 954 }).format(discount_total); 955 }//Case bundal 956 957 958 // console.log('dis_val_string',dis_val_string); 959 960 // return 961 962 dis_val_string = dis_val_string.replace("฿", ""); 963 // console.log("discount_total after", discount_total); 964 965 966 if (finalDiscount !== 0) { 967 var total_val_string = new Intl.NumberFormat("th", { 968 style: "currency", 969 currency: "THB", 970 minimumFractionDigits: 0, 971 }).format(n_total - finalDiscount); 972 } else { 973 var total_val_string = new Intl.NumberFormat("th", { 974 style: "currency", 975 currency: "THB", 976 minimumFractionDigits: 0, 977 }).format(n_total - discount_total); 978 } 979 // console.log(''); 980 // var total_val_string = new Intl.NumberFormat('th', { style: 'currency', currency: 'THB', minimumFractionDigits: 0 }).format(n_total-discount_total); 981 total_val_string = total_val_string.replace("฿", ""); 982 983 let row_wrapper = item_list_wrapper.closest(".row"); 984 let group_order = row_wrapper.find(".group-order"); 985 let order_group_price = group_order.find(".order-group-price"); 986 let top_price = order_group_price.find(".order-txt-total"); 987 let dis_price = order_group_price.find(".order-txt-dis"); 988 let top_price_txt = top_price.find(".price-txt"); 989 990 let dis_txt = dis_price.find(".dis-txt"); 991 992 // top_price_txt.html(n_total_val_string); 993 994 995 996 if (discount_total != 0) { 997 dis_txt.html("-" + dis_val_string); 998 } else { 999 dis_txt.html(dis_val_string); 1000 // console.log("this else"); 1001 } 1002 top_price.attr("data-top-price", n_total); 1003 top_price_txt.html( 1004 new Intl.NumberFormat("th", { 1005 // style: "currency", 1006 currency: "THB", 1007 minimumFractionDigits: 0, 1008 }).format(n_total) 1009 ); 1010 // console.log("dtt", discount_total); 1011 dis_price.attr("data-dis-price", discount_total); 1012 1013 1014 let total_order = row_wrapper.find(".total-order"); 1015 let total_price = total_order.find(".total-price"); 1016 1017 let total_price_txt = total_price.find(".price-txt"); 1018 1019 1020 1021 // console.log("subtotal : " + subtotal); 1022 // console.log("n_total : " + n_total); 1023 1024 if (finalDiscount !== 0) { 1025 // total_price.attr("data-total", subtotal - finalDiscount); 1026 total_price.attr("data-total", subtotal); 1027 } else { 1028 total_price.attr("data-total", n_total - discount_total); 1029 // total_price.attr("data-total", n_total); 1030 // total_price.attr("data-total", total); 1031 1032 } 1033 1034 1035 1036 if (finalDiscount !== 0) { 1037 console.log('#this if'); 1038 // total_price_txt.html(subtotal - finalDiscount); 1039 var sub_total_val_string_currency = new Intl.NumberFormat("th", { 1040 // style: "currency", 1041 currency: "THB", 1042 minimumFractionDigits: 0, 1043 }).format(subtotal); 1044 total_price_txt.html(sub_total_val_string_currency); 1045 } else { 1046 console.log('#this else'); 1047 var total_val_string_currency = new Intl.NumberFormat("th", { 1048 // style: "currency", 1049 currency: "THB", 1050 minimumFractionDigits: 0, 1051 }).format(n_total - discount_total); 1052 1053 console.log('total_val_string_currency',total_val_string_currency); 1054 total_price_txt.html(total_val_string_currency); 1055 } 1056 1057 1058 1059 // total_price_txt.html(subtotal-finalDiscount); 1060 1061 // total_price.attr('data-total', n_total-discount_total ); 1062 // total_price.attr('data-total', total ); 1063 1064 let amount = $this.siblings("input").val(); 1065 1066 // console.log('dis_price', dis_price[0].dataset.disPrice); 1067
1068 $.ajax(base_url + "api/item_amount", { 1069 method: "GET", 1070 data: { 1071 token: token, 1072 data_index: data_index, 1073 amount: amount, 1074 }, 1075 beforeSend: function () { 1076 // console.log('sent1456'); 1077 //$('.loader').show(); 1078 }, 1079 }).done(function (data) { 1080 refreshTopCart($this); 1081 }); 1082} 1083 1084function spinnerChange($this) { 1085 console.log("change"); 1086} 1087 1088function loadOrder(token, order_summary_elem) { 1089 $.ajax(base_url + "api/load_order_summary", { 1090 method: "GET", 1091 data: { 1092 token: token, 1093 }, 1094 beforeSend: function () { 1095 console.log("sent2"); 1096 //$('.loader').show(); 1097 }, 1098 }).done(function (data) { 1099 var product_order_list_elem = order_summary_elem.siblings( 1100 ".product-order-list" 1101 ); 1102 product_order_list_elem.empty(); 1103 product_order_list_elem.append(data); 1104 }); 1105} 1106 1107function deleteShippingAddress($this) { 1108 var token = $this.closest(".wrapper").find("input[name=token]").val(); 1109 popup_message_delete("ship", token, $this); 1110} 1111 1112function deleteBillingAddress($this) { 1113 var token = $this.closest(".wrapper").find("input[name=token]").val(); 1114 popup_message_delete("bill", token, $this); 1115} 1116 1117function emailLogin($this) { 1118 var form = $this.closest("form"); 1119 var wrapper = $this.closest(".wrapper"); 1120 var ship_type_el = wrapper 1121 .find(".form-step.form-step-1") 1122 .find("input[name=transfer]:checked"); 1123 var ship_type_val = ship_type_el.attr("data-trans"); 1124 1125 form.find("input[name=ship_type]").val(ship_type_val); 1126 form.submit(); 1127} 1128 1129function selDisFromProv($this) { 1130 var code = $this.find(":selected").attr("data-pro-id"); 1131 var token = $this.closest("form").find("input[name=token]").val(); 1132 if ($this.hasClass("dealer-dis")) { 1133 token = $this 1134 .closest(".dealer-filter-select") 1135 .find("form") 1136 .find("input[name=token]") 1137 .val(); 1138 } 1139 1140 var return_data = ""; 1141 $.ajax(window.location.origin + "/api/load_district", { 1142 method: "GET", 1143 async: false, 1144 data: { 1145 token: token, 1146 code: parseInt(code), 1147 }, 1148 beforeSend: function () { 1149 console.log("sentx"); 1150 //$('.loader').show(); 1151 }, 1152 }).done(function (data) { 1153 if (data != "") { 1154 var district = $this 1155 .closest(".select") 1156 .siblings(".district") 1157 .find(".selectpicker"); 1158 district.empty(); 1159 district.append(data); 1160 var subDistrict = $this 1161 .closest(".select") 1162 .siblings(".sub-district") 1163 .find(".selectpicker"); 1164 subDistrict.empty(); 1165 var zipcode = $this 1166 .closest(".select") 1167 .siblings(".zip-code") 1168 .find(".selectpicker"); 1169 zipcode.empty(); 1170 $("select").selectpicker("refresh"); 1171 } else { 1172 //$('.btn-loadmore').hide(); 1173 var district = $this 1174 .closest(".select") 1175 .siblings(".district") 1176 .find(".selectpicker"); 1177 district.empty(); 1178 var subDistrict = $this 1179 .closest(".select") 1180 .siblings(".sub-district") 1181 .find(".selectpicker"); 1182 subDistrict.empty(); 1183 var zipcode = $this 1184 .closest(".select") 1185 .siblings(".zip-code") 1186 .find(".selectpicker"); 1187 zipcode.empty(); 1188 $("select").selectpicker("refresh"); 1189 } 1190 }); 1191 1192 return return_data; 1193} 1194 1195function selDisFromProvDealer($this) { 1196 var code = $this.find(":selected").attr("data-pro-id"); 1197 var token = $this.closest("form").find("input[name=token]").val(); 1198 if ($this.hasClass("dealer-dis")) { 1199 token = $this 1200 .closest(".dealer-filter-select") 1201 .find("form") 1202 .find("input[name=token]") 1203 .val(); 1204 } 1205 1206 var return_data = ""; 1207 $.ajax(window.location.origin + "/api/load_district_dealer", { 1208 method: "GET", 1209 async: false, 1210 data: { 1211 token: token, 1212 code: parseInt(code), 1213 }, 1214 beforeSend: function () { 1215 console.log("senta"); 1216 //$('.loader').show(); 1217 }, 1218 }).done(function (data) { 1219 if (data != "") { 1220 var district = $this 1221 .closest(".select") 1222 .siblings(".district") 1223 .find(".selectpicker"); 1224 district.empty(); 1225 district.append(data); 1226 var subDistrict = $this 1227 .closest(".select") 1228 .siblings(".sub-district") 1229 .find(".selectpicker"); 1230 subDistrict.empty(); 1231 var zipcode = $this 1232 .closest(".select") 1233 .siblings(".zip-code") 1234 .find(".selectpicker"); 1235 zipcode.empty(); 1236 $("select").selectpicker("refresh"); 1237 } else { 1238 var district = $this 1239 .closest(".select") 1240 .siblings(".district") 1241 .find(".selectpicker"); 1242 district.empty(); 1243 var subDistrict = $this 1244 .closest(".select") 1245 .siblings(".sub-district") 1246 .find(".selectpicker"); 1247 subDistrict.empty(); 1248 var zipcode = $this 1249 .closest(".select") 1250 .siblings(".zip-code") 1251 .find(".selectpicker"); 1252 zipcode.empty(); 1253 $("select").selectpicker("refresh"); 1254 //$('.btn-loadmore').hide(); 1255 } 1256 }); 1257 1258 return return_data; 1259} 1260 1261function selDisFromProvDealer_Product($this) { 1262 var code = $this.find(":selected").attr("data-pro-id"); 1263 var token = $this.closest("form").find("input[name=token]").val(); 1264 if ($this.hasClass("dealer-dis")) { 1265 token = $this 1266 .closest(".dealer-filter-select") 1267 .find("form") 1268 .find("input[name=token]") 1269 .val(); 1270 } 1271 1272 var return_data = ""; 1273 $.ajax(window.location.origin + "/api/load_district_dealer", { 1274 method: "GET", 1275 async: false, 1276 data: { 1277 token: token, 1278 code: parseInt(code), 1279 }, 1280 beforeSend: function () { 1281 console.log("sentg"); 1282 //$('.loader').show(); 1283 }, 1284 }).done(function (data) { 1285 if (data != "") { 1286 var district = $this 1287 .closest(".select") 1288 .closest(".group-search-dealer") 1289 .find(".district") 1290 .find(".selectpicker"); 1291 district.empty(); 1292 district.append(data); 1293 var subDistrict = $this 1294 .closest(".select") 1295 .siblings(".sub-district") 1296 .find(".selectpicker"); 1297 subDistrict.empty(); 1298 var zipcode = $this 1299 .closest(".select") 1300 .siblings(".zip-code") 1301 .find(".selectpicker"); 1302 zipcode.empty(); 1303 $("select").selectpicker("refresh"); 1304 } else { 1305 //$('.btn-loadmore').hide(); 1306 } 1307 }); 1308 1309 return return_data; 1310} 1311 1312function selSubDisFromDis($this) { 1313 var code = $this.find(":selected").attr("data-dis-id"); 1314 var token = $this.closest("form").find("input[name=token]").val(); 1315 var return_data = ""; 1316 $.ajax(window.location.origin + "/api/load_sub_district", { 1317 method: "GET", 1318 async: false, 1319 data: { 1320 token: token, 1321 code: parseInt(code), 1322 }, 1323 beforeSend: function () { 1324 console.log("senth"); 1325 //$('.loader').show(); 1326 }, 1327 }).done(function (data) { 1328 if (data != "") { 1329 var subDistrict = $this 1330 .closest(".select") 1331 .siblings(".sub-district") 1332 .find(".selectpicker"); 1333 subDistrict.empty(); 1334 subDistrict.append(data); 1335 var zipcode = $this 1336 .closest(".select") 1337 .siblings(".zip-code") 1338 .find(".selectpicker"); 1339 zipcode.empty(); 1340 $("select").selectpicker("refresh"); 1341 } else { 1342 //$('.btn-loadmore').hide(); 1343 var subDistrict = $this 1344 .closest(".select") 1345 .siblings(".sub-district") 1346 .find(".selectpicker"); 1347 subDistrict.empty(); 1348 var zipcode = $this 1349 .closest(".select") 1350 .siblings(".zip-code") 1351 .find(".selectpicker"); 1352 zipcode.empty(); 1353 $("select").selectpicker("refresh"); 1354 } 1355 }); 1356 1357 return return_data; 1358} 1359
1360function selZipFromSubDis($this) { 1361 var code = $this.find(":selected").attr("data-sub-dis-id"); 1362 var token = $this.closest("form").find("input[name=token]").val(); 1363 1364 var return_data = ""; 1365 $.ajax(window.location.origin + "/api/load_zipcode", { 1366 method: "GET", 1367 async: false, 1368 data: { 1369 token: token, 1370 code: parseInt(code), 1371 }, 1372 beforeSend: function () { 1373 console.log("sentm"); 1374 //$('.loader').show(); 1375 }, 1376 }).done(function (data) { 1377 if (data != "") { 1378 var zipcode = $this 1379 .closest(".select") 1380 .siblings(".zip-code") 1381 .find(".selectpicker"); 1382 zipcode.empty(); 1383 zipcode.append(data); 1384 $("select").selectpicker("refresh"); 1385 } else { 1386 //$('.btn-loadmore').hide(); 1387 } 1388 }); 1389 1390 return return_data; 1391} 1392 1393function checkLoginMobile($this) { 1394 var lang = $("html").attr("lang"); 1395 var form_el = $this.closest(".box-form").find("form"); 1396 var frm = new FormData(form_el[0]); 1397 $.ajax({ 1398 data: frm, 1399 type: "POST", 1400 url: window.location.origin + "/Login/check_login_phonenumber", 1401 cache: false, 1402 contentType: false, 1403 processData: false, 1404 dataType: "json", 1405 success: function (arresult) { 1406 if (arresult.rs) { 1407 popOtpBtn($this); 1408 } else { 1409 if (lang == "th") { 1410 popup_message( 1411 (type = "error"), 1412 (message = ""), 1413 (title = 1414 "à¸à¸³à¹à¸à¸·à¸à¸ !\nà¹à¸¡à¹à¸¡à¸µà¹à¸à¸à¸£à¹à¹à¸à¸£à¸¨à¸±à¸à¸à¹à¸à¸µà¹à¸à¸¢à¸¹à¹à¹à¸à¸£à¸°à¸à¸\nà¸à¸£à¸¸à¸à¸²à¸ªà¸¡à¸±à¸à¸£à¸ªà¸¡à¸²à¸à¸´à¸"), 1415 (timer = 3000), 1416 (timer_message = "à¸à¸´à¸à¸«à¸¥à¸±à¸à¸à¸²à¸ 3 วิà¸à¸²à¸à¸µ") 1417 ); 1418 } else { 1419 popup_message( 1420 (type = "error"), 1421 (message = ""), 1422 (title = 1423 "Warning !\nthis phone number is not in the system\nplease subscribe member"), 1424 (timer = 3000), 1425 (timer_message = "Close after 3 seconds") 1426 ); 1427 } 1428 } 1429 }, 1430 }); 1431} 1432 1433function checkLoginEmail(token, form_el) { 1434 var lang = $("html").attr("lang"); 1435 var frm = new FormData(form_el[0]); 1436 $.ajax({ 1437 data: frm, 1438 type: "POST", 1439 url: window.location.origin + "/Login/check_login_email", 1440 cache: false, 1441 contentType: false, 1442 processData: false, 1443 dataType: "json", 1444 success: function (arresult) { 1445 if (arresult.rs) { 1446 const queryString = window.location.search; 1447 const urlParams = new URLSearchParams(queryString); 1448 const goto = urlParams.get("goto"); 1449 const sub = urlParams.get("sub"); 1450 if (goto) { 1451 document.getElementById("goto_e").value = goto; 1452 } 1453 if (sub) { 1454 document.getElementById("sub_e").value = sub; 1455 } 1456 form_el.submit(); 1457 } else { 1458 if (lang == "th") { 1459 popup_message( 1460 (type = "error"), 1461 (message = ""), 1462 (title = "à¸à¸³à¹à¸à¸·à¸à¸ !\nà¸à¸µà¹à¸¡à¸¥à¸«à¸£à¸·à¸à¸£à¸«à¸±à¸ªà¸à¹à¸²à¸à¹à¸¡à¹à¸à¸¹à¸à¸à¹à¸à¸"), 1463 (timer = 3000), 1464 (timer_message = "à¸à¸´à¸à¸«à¸¥à¸±à¸à¸à¸²à¸ 3 วิà¸à¸²à¸à¸µ") 1465 ); 1466 } else { 1467 popup_message( 1468 (type = "error"), 1469 (message = ""), 1470 (title = "Warning !\nincorrect email or password"), 1471 (timer = 3000), 1472 (timer_message = "Close after 3 seconds") 1473 ); 1474 } 1475 } 1476 }, 1477 }); 1478} 1479 1480function addBillAddress($this) { 1481 var frm = new FormData($this.closest("form")[0]); 1482 var pop_footer = $this.closest(".pop-footer"); 1483 var pop_body = pop_footer.siblings(".popup-body"); 1484 var box_tab_elem = pop_body.find(".box-tab"); 1485 var active_tab = box_tab_elem.find(".tab-btn.active"); 1486 var valid = true; 1487 var is_scroll = 0; 1488 1489 var address_name = pop_body.find("input[name=address_name]"); 1490 address_name.closest(".address_name").removeClass("error"); 1491 if (address_name.val() === "") { 1492 valid = false; 1493 address_name.closest(".address_name").addClass("error"); 1494 if (is_scroll == 0) { 1495 is_scroll = 1; 1496 address_name.closest(".popup-body").animate( 1497 { 1498 scrollTop: address_name.offset().top - 350, 1499 }, 1500 500 1501 ); 1502 } 1503 } 1504 1505 if (active_tab.attr("data-tab-list") == 0) { 1506 var tab_body = pop_body.find(".tab-list.accor-ref-0"); 1507 var id_card_elem = tab_body.find("input[name=id_card_number]"); 1508 var first_name = pop_body.find("input[name=first_name]"); 1509 var last_name = pop_body.find("input[name=last_name]"); 1510 var personal_phone_number = pop_body.find( 1511 "input[name=personal_phone_number]" 1512 ); 1513 var personal_address_detail = pop_body.find( 1514 "input[name=personal_address_detail]" 1515 ); 1516 var personal_province = pop_body.find("select[name=personal_province]"); 1517 var personal_district = pop_body.find("select[name=personal_district]"); 1518 var personal_sub_district = pop_body.find( 1519 "select[name=personal_sub_district" 1520 ); 1521 var personal_zip_code = pop_body.find("select[name=personal_zip_code"); 1522 1523 first_name.closest(".first_name").removeClass("error"); 1524 last_name.closest(".last_name").removeClass("error"); 1525 id_card_elem.closest(".id_card_number").removeClass("error"); 1526 personal_phone_number 1527 .closest(".personal_phone_number") 1528 .removeClass("error"); 1529 personal_address_detail 1530 .closest(".personal_address_detail") 1531 .removeClass("error"); 1532 personal_province.closest(".province").removeClass("error"); 1533 personal_district.closest(".district").removeClass("error"); 1534 personal_sub_district.closest(".sub-district").removeClass("error"); 1535 personal_zip_code.closest(".zip-code").removeClass("error"); 1536 1537 if (!thaiIdvalidate(id_card_elem) && id_card_elem.val() != "") { 1538 valid = false;
1539 id_card_elem.closest(".id_card_number").addClass("error"); 1540 id_card_elem 1541 .closest(".id_card_number") 1542 .find(".validate") 1543 .html("รูà¸à¹à¸à¸à¹à¸¥à¸à¸à¸±à¸à¸£à¸à¸£à¸°à¸à¸²à¸à¸à¹à¸¡à¹à¸à¸¹à¸à¸à¹à¸à¸"); 1544 } else if (!thaiIdvalidate(id_card_elem) && id_card_elem.val() == "") { 1545 valid = false; 1546 id_card_elem.closest(".id_card_number").addClass("error"); 1547 id_card_elem 1548 .closest(".id_card_number") 1549 .find(".validate") 1550 .html("à¸à¸£à¸¸à¸à¸²à¸à¸£à¸à¸à¹à¸¥à¸à¸à¸±à¸à¸£à¸à¸£à¸°à¸à¸²à¸à¸"); 1551 } else if ( 1552 thaiIdvalidate(id_card_elem) && 1553 id_card_elem.val() != "" && 1554 id_card_elem.val().length == 13 && 1555 !checkThaiIdCorrectness(id_card_elem.val()) 1556 ) { 1557 valid = false; 1558 id_card_elem.closest(".id_card_number").addClass("error"); 1559 id_card_elem 1560 .closest(".id_card_number") 1561 .find(".validate") 1562 .html("หมายà¹à¸¥à¸à¸à¸±à¸à¸£à¸à¸£à¸°à¸à¸²à¸à¸à¹à¸¡à¹à¸à¸¹à¸à¸à¹à¸à¸"); 1563 } 1564 1565 if (first_name.val() === "") { 1566 valid = false; 1567 first_name.closest(".first_name").addClass("error"); 1568 if (is_scroll == 0) { 1569 is_scroll = 1; 1570 first_name.closest(".popup-body").animate( 1571 { 1572 scrollTop: first_name.offset().top - 850, 1573 }, 1574 500 1575 ); 1576 } 1577 } 1578 1579 if (last_name.val() === "") { 1580 valid = false; 1581 last_name.closest(".last_name").addClass("error"); 1582 if (is_scroll == 0) { 1583 is_scroll = 1; 1584 last_name.closest(".popup-body").animate( 1585 { 1586 scrollTop: last_name.offset().top - 850, 1587 }, 1588 500 1589 ); 1590 } 1591 } 1592 1593 if (personal_phone_number.val() === "") { 1594 personal_phone_number 1595 .closest(".personal_phone_number") 1596 .find(".validate") 1597 .html("à¸à¸£à¸¸à¸à¸²à¸à¸£à¸à¸à¹à¸à¸à¸£à¹à¹à¸à¸£à¸¨à¸±à¸à¸à¹"); 1598 personal_phone_number.closest(".personal_phone_number").addClass("error"); 1599 valid = false; 1600 if (is_scroll == 0) { 1601 is_scroll = 1; 1602 personal_phone_number.closest(".popup-body").animate( 1603 { 1604 scrollTop: personal_phone_number.offset().top - 850, 1605 }, 1606 500 1607 ); 1608 } 1609 } else if (personal_phone_number.val().length != 10) { 1610 personal_phone_number 1611 .closest(".personal_phone_number") 1612 .find(".validate") 1613 .html("à¸à¸£à¸¸à¸à¸²à¸à¸£à¸à¸à¹à¸à¸à¸£à¹à¹à¸à¸£à¸¨à¸±à¸à¸à¹à¹à¸«à¹à¸à¸£à¸ 10 หลัà¸"); 1614 personal_phone_number.closest(".personal_phone_number").addClass("error"); 1615 valid = false; 1616 if (is_scroll == 0) { 1617 is_scroll = 1; 1618 personal_phone_number.closest(".popup-body").animate( 1619 { 1620 scrollTop: personal_phone_number.offset().top - 850, 1621 }, 1622 500 1623 ); 1624 } 1625 } 1626 1627 if (personal_address_detail.val() === "") { 1628 valid = false; 1629 personal_address_detail 1630 .closest(".personal_address_detail") 1631 .addClass("error"); 1632 if (is_scroll == 0) { 1633 is_scroll = 1; 1634 personal_address_detail.closest(".popup-body").animate( 1635 { 1636 scrollTop: personal_address_detail.offset().top - 850, 1637 }, 1638 500 1639 ); 1640 } 1641 } 1642 1643 if (personal_province.val() == 0) { 1644 valid = false; 1645 personal_province.closest(".province").addClass("error"); 1646 if (is_scroll == 0) { 1647 is_scroll = 1; 1648 personal_province.closest(".popup-body").animate( 1649 { 1650 scrollTop: personal_province.offset().top - 850, 1651 }, 1652 500 1653 ); 1654 } 1655 } else { 1656 if (personal_district.val() == "") { 1657 valid = false; 1658 personal_district.closest(".district").addClass("error"); 1659 } else { 1660 if (personal_sub_district.val() == "") { 1661 valid = false; 1662 personal_sub_district.closest(".sub-district").addClass("error"); 1663 } else { 1664 if (personal_zip_code.val() == "") { 1665 valid = false; 1666 personal_zip_code.closest(".zip-code").addClass("error"); 1667 } 1668 } 1669 } 1670 } 1671 } else if (active_tab.attr("data-tab-list") == 1) { 1672 var tab_body = pop_body.find(".tab-list.accor-ref-1"); 1673 var jurastic_address_detail = pop_body.find( 1674 "input[name=jurastic_address_detail]" 1675 ); 1676 var jurastic_province = pop_body.find("select[name=jurastic_province]"); 1677 var jurastic_district = pop_body.find("select[name=jurastic_district]"); 1678 var jurastic_sub_district = pop_body.find( 1679 "select[name=jurastic_sub_district" 1680 ); 1681 var jurastic_zip_code = pop_body.find("select[name=jurastic_zip_code"); 1682 var jurastic_phone_number = pop_body.find( 1683 "input[name=jurastic_phone_number]" 1684 ); 1685 var jurastic_id = pop_body.find("input[name=jurastic_id"); 1686 var jurastic_name = pop_body.find("input[name=jurastic_name"); 1687
1688 jurastic_id.closest(".jurastic_id").removeClass("error"); 1689 jurastic_name.closest(".jurastic_name").removeClass("error"); 1690 jurastic_phone_number 1691 .closest(".jurastic_phone_number") 1692 .removeClass("error"); 1693 jurastic_address_detail 1694 .closest(".jurastic_address_detail") 1695 .removeClass("error"); 1696 jurastic_province.closest(".province").removeClass("error"); 1697 jurastic_district.closest(".district").removeClass("error"); 1698 jurastic_sub_district.closest(".sub-district").removeClass("error"); 1699 jurastic_zip_code.closest(".zip-code").removeClass("error"); 1700 1701 if (!thaiIdvalidate(jurastic_id) && jurastic_id.val() != "") { 1702 valid = false; 1703 jurastic_id.closest(".jurastic_id").addClass("error"); 1704 jurastic_id 1705 .closest(".jurastic_id") 1706 .find(".validate") 1707 .html("รูà¸à¹à¸à¸à¸«à¸¡à¸²à¸¢à¹à¸¥à¸à¹à¸¥à¸à¸à¸¹à¹à¹à¸ªà¸µà¸¢à¸ าษีà¹à¸¡à¹à¸à¸¹à¸à¸à¹à¸à¸"); 1708 } else if (!thaiIdvalidate(jurastic_id) && jurastic_id.val() == "") { 1709 valid = false; 1710 jurastic_id.closest(".jurastic_id").addClass("error"); 1711 jurastic_id 1712 .closest(".jurastic_id") 1713 .find(".validate") 1714 .html("à¸à¸£à¸¸à¸à¸²à¸à¸£à¸à¸à¸«à¸¡à¸²à¸¢à¹à¸¥à¸à¹à¸¥à¸à¸à¸¹à¹à¹à¸ªà¸µà¸¢à¸ าษี"); 1715 } 1716 1717 if (jurastic_name.val() === "") { 1718 valid = false; 1719 jurastic_name.closest(".jurastic_name").addClass("error"); 1720 if (is_scroll == 0) { 1721 is_scroll = 1; 1722 jurastic_name.closest(".popup-body").animate( 1723 { 1724 scrollTop: jurastic_name.offset().top - 850, 1725 }, 1726 500 1727 ); 1728 } 1729 } 1730 1731 if (jurastic_phone_number.val() === "") { 1732 jurastic_phone_number 1733 .closest(".jurastic_phone_number") 1734 .find(".validate") 1735 .html("à¸à¸£à¸¸à¸à¸²à¸à¸£à¸à¸à¹à¸à¸à¸£à¹à¹à¸à¸£à¸¨à¸±à¸à¸à¹"); 1736 jurastic_phone_number.closest(".jurastic_phone_number").addClass("error"); 1737 valid = false; 1738 if (is_scroll == 0) { 1739 is_scroll = 1; 1740 jurastic_phone_number.closest(".popup-body").animate( 1741 { 1742 scrollTop: jurastic_phone_number.offset().top - 850, 1743 }, 1744 500 1745 ); 1746 } 1747 } else if (jurastic_phone_number.val().length != 10) { 1748 jurastic_phone_number 1749 .closest(".jurastic_phone_number") 1750 .find(".validate") 1751 .html("à¸à¸£à¸¸à¸à¸²à¸à¸£à¸à¸à¹à¸à¸à¸£à¹à¹à¸à¸£à¸¨à¸±à¸à¸à¹à¹à¸«à¹à¸à¸£à¸ 10 หลัà¸"); 1752 personal_phone_number.closest(".jurastic_phone_number").addClass("error"); 1753 valid = false; 1754 if (is_scroll == 0) { 1755 is_scroll = 1; 1756 jurastic_phone_number.closest(".popup-body").animate( 1757 { 1758 scrollTop: jurastic_phone_number.offset().top - 850, 1759 }, 1760 500 1761 ); 1762 } 1763 } 1764 1765 if (jurastic_address_detail.val() === "") { 1766 valid = false; 1767 jurastic_address_detail 1768 .closest(".jurastic_address_detail") 1769 .addClass("error"); 1770 if (is_scroll == 0) { 1771 is_scroll = 1; 1772 jurastic_address_detail.closest(".popup-body").animate( 1773 { 1774 scrollTop: jurastic_address_detail.offset().top - 200, 1775 }, 1776 500 1777 ); 1778 } 1779 } 1780 1781 if (jurastic_province.val() == 0) { 1782 valid = false; 1783 jurastic_province.closest(".province").addClass("error"); 1784 } else { 1785 if (jurastic_district.val() == "") { 1786 valid = false; 1787 jurastic_district.closest(".district").addClass("error"); 1788 } else { 1789 if (jurastic_sub_district.val() == "") { 1790 valid = false; 1791 jurastic_sub_district.closest(".sub-district").addClass("error"); 1792 } else { 1793 if (jurastic_zip_code.val() == "") { 1794 valid = false; 1795 jurastic_zip_code.closest(".zip-code").addClass("error"); 1796 } 1797 } 1798 } 1799 } 1800 } 1801 1802 if (valid) { 1803 $.ajax({ 1804 data: frm, 1805 type: "POST", 1806 url: window.location.origin + "/api/add_bill_address", 1807 cache: false, 1808 contentType: false, 1809 processData: false, 1810 dataType: "json", 1811 success: function (arresult) { 1812 if (arresult.rs) { 1813 if ($this.hasClass("login")) { 1814 reloadBillAddressLogin($this); 1815 } else { 1816 reloadBillAddress($this); 1817 } 1818 1819 popout_name("popup-add-tax-invoice"); 1820 } 1821 }, 1822 }); 1823 } 1824} 1825 1826function addBillAddressLogin($this) { 1827 var frm = new FormData($this.closest("form")[0]); 1828 var this_elem = $this; 1829 var pop_footer = $this.closest(".pop-footer"); 1830 var pop_body = pop_footer.siblings(".popup-body"); 1831 var box_tab_elem = pop_body.find(".box-tab"); 1832 var active_tab = box_tab_elem.find(".tab-btn.active"); 1833 var valid = true; 1834 if (active_tab.attr("data-tab-list") == 0) { 1835 var tab_body = pop_body.find(".tab-list.accor-ref-0"); 1836 var id_card_elem = tab_body.find("input[name=id_card_number]"); 1837 $(".form-group").removeClass("has_danger"); 1838 if (!thaiIdvalidate(id_card_elem)) { 1839 valid = false;
1840 id_card_elem.parent().addClass("has_danger"); 1841 } 1842 } 1843 1844 if (valid) { 1845 $.ajax({ 1846 data: frm, 1847 type: "POST", 1848 url: window.location.origin + "/api/add_bill_address", 1849 cache: false, 1850 contentType: false, 1851 processData: false, 1852 dataType: "json", 1853 success: function (arresult) { 1854 if (arresult.rs) { 1855 reloadBillAddressLogin(this_elem); 1856 } 1857 }, 1858 }); 1859 } 1860} 1861 1862function addShipAddress($this) { 1863 var frm = new FormData($this.closest("form")[0]); 1864 var this_elem = $this; 1865 $.ajax({ 1866 data: frm, 1867 type: "POST", 1868 url: window.location.origin + "/api/add_ship_address", 1869 cache: false, 1870 contentType: false, 1871 processData: false, 1872 dataType: "json", 1873 success: function (arresult) { 1874 if (arresult.rs) { 1875 reloadShipAddress(this_elem); 1876 if ($(".stp-2.btn-next").is(":disabled")) { 1877 $(".stp-2.btn-next").prop("disabled", false); 1878 $(".chk-ship-no-addr").hide(); 1879 } 1880 1881 popout_name("popup-add-address"); 1882 } 1883 }, 1884 }); 1885} 1886 1887function addShipAddressLogin($this) { 1888 var frm = new FormData($this.closest("form")[0]); 1889 var this_elem = $this; 1890 $.ajax({ 1891 data: frm, 1892 type: "POST", 1893 url: window.location.origin + "/api/add_ship_address", 1894 cache: false, 1895 contentType: false, 1896 processData: false, 1897 dataType: "json", 1898 success: function (arresult) { 1899 if (arresult.rs) { 1900 reloadShipAddressLogin(this_elem); 1901 popout_name("popup-add-address-login"); 1902 } 1903 }, 1904 }); 1905} 1906 1907function updateShipAddress($this) { 1908 var frm = new FormData($this.closest("form")[0]); 1909 $.ajax({ 1910 data: frm, 1911 type: "POST", 1912 url: window.location.origin + "/api/update_ship_address", 1913 cache: false, 1914 contentType: false, 1915 processData: false, 1916 dataType: "json", 1917 success: function (arresult) { 1918 if (arresult.rs) { 1919 reloadShipAddressLogin($this); 1920 popout_name("popup-edit-address-login"); 1921 } 1922 }, 1923 }); 1924} 1925 1926function reloadShipAddress($this) { 1927 $this.closest("form").find("input[name=address_name]").val(""); 1928 $this.closest("form").find("input[name=first_name]").val(""); 1929 $this.closest("form").find("input[name=last_name]").val(""); 1930 $this.closest("form").find("input[name=email]").val(""); 1931 $this.closest("form").find("input[name=phone_number]").val(""); 1932 $this.closest("form").find("input[name=address_detail]").val(""); 1933 $this.closest("form").find("select[name=province]").val(0); 1934 $this.closest("form").find("select[name=district]").empty(); 1935 $this.closest("form").find("select[name=sub_district]").empty(); 1936 $this.closest("form").find("select[name=zip_code]").empty(); 1937 $("select").selectpicker("refresh"); 1938 1939 var frm = new FormData($this.closest("form")[0]); 1940 var this_elem = $this; 1941 $.ajax({ 1942 data: frm, 1943 type: "POST", 1944 url: window.location.origin + "/api/add_ship_address", 1945 cache: false, 1946 contentType: false, 1947 processData: false, 1948 dataType: "json", 1949 success: function (arresult) { 1950 if (arresult.rs) { 1951 reloadShipAddressLogin(this_elem); 1952 } 1953 }, 1954 }); 1955} 1956 1957function reloadShipAddressLogin($this) { 1958 var token = $this.closest("form").find("input[name=token]").val(); 1959 1960 if ($this.hasClass("edit-addr-check-out")) { 1961 var wrapper_el = $this.closest("body").find(".wrapper"); 1962 var delivery_detail_el = wrapper_el.find(".delivery-detail"); 1963 } else if ($this.hasClass("edit-addr-profile")) { 1964 var wrapper_el = $this.closest("body").find(".wrapper"); 1965 var step2_el = wrapper_el.find(".tab-info-address"); 1966 var delivery_detail_el = step2_el.find(".delivery-detail"); 1967 } else if ($this.hasClass("add-ship-add-log")) { 1968 var wrapper_el = $this.closest("body").find(".wrapper"); 1969 var delivery_detail_el = wrapper_el 1970 .find(".tab-info-address") 1971 .find(".delivery-detail"); 1972 } else if ($this.hasClass("delete-address-ship-button")) { 1973 var wrapper_el = $("body").find(".wrapper"); 1974 var delivery_detail_el = wrapper_el 1975 .find(".delivery-detail-wrapper") 1976 .find(".delivery-detail"); 1977 } else { 1978 var wrapper_el = $("body").find(".wrapper"); 1979 var delivery_detail_el = wrapper_el 1980 .find(".delivery-detail-wrapper") 1981 .find(".delivery-detail"); 1982 } 1983 1984 $this.closest("form").find("input[name=address_name]").val(""); 1985 $this.closest("form").find("input[name=first_name]").val(""); 1986 $this.closest("form").find("input[name=last_name]").val(""); 1987 $this.closest("form").find("input[name=email]").val(""); 1988 $this.closest("form").find("input[name=phone_number]").val(""); 1989 $this.closest("form").find("input[name=address_detail]").val(""); 1990 $this.closest("form").find("select[name=province]").val(0); 1991 $this.closest("form").find("select[name=district]").empty(); 1992 $this.closest("form").find("select[name=sub_district]").empty(); 1993 $this.closest("form").find("select[name=zip_code]").empty(); 1994 $("select").selectpicker("refresh"); 1995 1996 $.ajax(window.location.origin + "/api/load_ship_address", { 1997 method: "GET", 1998 async: false, 1999 data: { 2000 token: token, 2001 }, 2002 beforeSend: function () { 2003 console.log("sent"); 2004 //$('.loader').show(); 2005 }, 2006 }).done(function (data) { 2007 if (data != "") { 2008 if ($this.hasClass("edit-addr-check-out")) { 2009 var box_form_check_el = delivery_detail_el.find( 2010 ".box-form-check.shipping" 2011 ); 2012 } else if ( 2013 $this.hasClass("edit-addr-profile") || 2014 $this.hasClass("add-ship-add-log") 2015 ) { 2016 delivery_detail_el.closest(".row").find(".ship-addr-first").hide(); 2017 delivery_detail_el.closest(".row").find(".ship-addr-data").show(); 2018 var box_form_check_el = delivery_detail_el.find( 2019 ".box-form-check.shipping" 2020 ); 2021 } else if ($this.hasClass("delete-address-ship-button")) { 2022 var box_form_check_el = delivery_detail_el.find( 2023 ".box-form-check.shipping" 2024 ); 2025 } else { 2026 var box_form_check_el = delivery_detail_el.find(".box-form-check"); 2027 } 2028 2029 box_form_check_el.empty(); 2030 box_form_check_el.append(data); 2031 2032 popout_name("popup-add-address-login"); 2033 } else { 2034 //$('.btn-loadmore').hide(); 2035 } 2036 }); 2037} 2038 2039function reloadShipAddress($this) { 2040 var token = $this.closest("form").find("input[name=token]").val(); 2041 2042 var wrapper_el = $this.closest("body").find(".wrapper"); 2043 var step2_el = wrapper_el.find(".form-step.form-step-2"); 2044 var delivery_detail_el = step2_el.find(".delivery-detail"); 2045 $this.closest("form").find("input[name=address_name]").val(""); 2046 $this.closest("form").find("input[name=first_name]").val(""); 2047 $this.closest("form").find("input[name=last_name]").val(""); 2048 $this.closest("form").find("input[name=email]").val(""); 2049 $this.closest("form").find("input[name=phone_number]").val(""); 2050 $this.closest("form").find("input[name=address_detail]").val(""); 2051 $this.closest("form").find("select[name=province]").val(0); 2052 $this.closest("form").find("select[name=district]").empty(); 2053 $this.closest("form").find("select[name=sub_district]").empty(); 2054 $this.closest("form").find("select[name=zip_code]").empty(); 2055 $("select").selectpicker("refresh"); 2056 2057 $.ajax(window.location.origin + "/api/load_ship_address", { 2058 method: "GET", 2059 async: false, 2060 data: { 2061 token: token, 2062 }, 2063 beforeSend: function () { 2064 console.log("sent"); 2065 //$('.loader').show(); 2066 }, 2067 }).done(function (data) { 2068 if (data != "") { 2069 var box_form_check_el = delivery_detail_el.find( 2070 ".box-form-check.shipping" 2071 ); 2072 box_form_check_el.empty(); 2073 box_form_check_el.append(data); 2074 popout_name("popup-add-address-login"); 2075 } else { 2076 //$('.btn-loadmore').hide(); 2077 } 2078 }); 2079} 2080 2081function reloadBillAddress($this) { 2082 var token = $this.closest("form").find("input[name=token]").val(); 2083 2084 $this.closest("form").find("input[name=address_name]").val(""); 2085 $this.closest("form").find("input[name=first_name]").val(""); 2086 $this.closest("form").find("input[name=last_name]").val(""); 2087 $this.closest("form").find("input[name=email]").val(""); 2088 $this.closest("form").find("input[name=personal_phone_number]").val(""); 2089 $this.closest("form").find("input[name=personal_address_detail]").val(""); 2090 $this.closest("form").find("select[name=personal_province]").val(0); 2091 $this.closest("form").find("select[name=personal_district]").empty(); 2092 $this.closest("form").find("select[name=personal_sub_district]").empty(); 2093 $this.closest("form").find("select[name=personal_zip_code]").empty(); 2094 $this.closest("form").find("select[name=personal_country]").empty(); 2095 2096 $this.closest("form").find("input[name=jurastic_id]").val(""); 2097 $this.closest("form").find("input[name=jurastic_name]").val(""); 2098 $this.closest("form").find("input[name=jurastic_country]").val(""); 2099 $this.closest("form").find("input[name=jurastic_phone_number]").val(""); 2100 $this.closest("form").find("input[name=jurastic_address_detail]").val(""); 2101 $this.closest("form").find("select[name=jurastic_province]").val(0); 2102 $this.closest("form").find("select[name=jurastic_district]").empty(); 2103 $this.closest("form").find("select[name=jurastic_sub_district]").empty(); 2104 $this.closest("form").find("select[name=jurastic_zip_code]").empty(); 2105 $("select").selectpicker("refresh"); 2106 2107 $.ajax(window.location.origin + "/api/load_bill_address", { 2108 method: "GET", 2109 async: false, 2110 data: { 2111 token: token, 2112 }, 2113 beforeSend: function () { 2114 console.log("sent"); 2115 //$('.loader').show(); 2116 }, 2117 }).done(function (data) { 2118 if (data != "") { 2119 var box_form_check_el = $this 2120 .closest("body") 2121 .find(".wrapper") 2122 .find(".box-form-check.billing"); 2123 box_form_check_el.empty(); 2124 box_form_check_el.append(data); 2125 } else { 2126 //$('.btn-loadmore').hide(); 2127 } 2128 }); 2129} 2130 2131function reloadBillAddressLogin($this) { 2132 var token = $this.closest("form").find("input[name=token]").val(); 2133 2134 var wrapper_el = $this.closest("body").find(".wrapper"); 2135 var step2_el = wrapper_el.find(".tab-info-tax"); 2136 var delivery_detail_el = step2_el.find(".delivery-detail"); 2137 2138 $this.closest("form").find("input[name=address_name]").val(""); 2139 $this.closest("form").find("input[name=first_name]").val(""); 2140 $this.closest("form").find("input[name=last_name]").val(""); 2141 $this.closest("form").find("input[name=email]").val(""); 2142 $this.closest("form").find("input[name=personal_phone_number]").val(""); 2143 $this.closest("form").find("input[name=personal_address_detail]").val(""); 2144 $this.closest("form").find("select[name=personal_province]").val(0); 2145 $this.closest("form").find("select[name=personal_district]").empty(); 2146 $this.closest("form").find("select[name=personal_sub_district]").empty(); 2147 $this.closest("form").find("select[name=personal_zip_code]").empty(); 2148 $this.closest("form").find("select[name=personal_country]").empty(); 2149 2150 $this.closest("form").find("input[name=jurastic_id]").val(""); 2151 $this.closest("form").find("input[name=jurastic_name]").val(""); 2152 $this.closest("form").find("input[name=jurastic_country]").val(""); 2153 $this.closest("form").find("input[name=jurastic_phone_number]").val(""); 2154 $this.closest("form").find("input[name=jurastic_address_detail]").val(""); 2155 $this.closest("form").find("select[name=jurastic_province]").val(0); 2156 $this.closest("form").find("select[name=jurastic_district]").empty(); 2157 $this.closest("form").find("select[name=jurastic_sub_district]").empty(); 2158 $this.closest("form").find("select[name=jurastic_zip_code]").empty(); 2159 $("select").selectpicker("refresh"); 2160 2161 $.ajax(window.location.origin + "/api/load_bill_address", { 2162 method: "GET", 2163 async: false, 2164 data: { 2165 token: token, 2166 }, 2167 beforeSend: function () { 2168 console.log("sent"); 2169 //$('.loader').show(); 2170 }, 2171 }).done(function (data) { 2172 if (data != "") { 2173 delivery_detail_el.closest(".row").find(".bill-addr-first").hide(); 2174 delivery_detail_el.closest(".row").find(".bill-addr-data").show(); 2175 var box_form_check_el = delivery_detail_el.find( 2176 ".box-form-check.billing" 2177 ); 2178 box_form_check_el.empty(); 2179 box_form_check_el.append(data); 2180 popout_name("popup-add-tax-invoice-login"); 2181 } else { 2182 //$('.btn-loadmore').hide(); 2183 } 2184 }); 2185} 2186 2187function checkThaiIdCorrectness(id) { 2188 // STEP 1 - get only first 12 digits 2189 for (i = 0, sum = 0; i < 12; i++) { 2190 // STEP 2 - multiply each digit with each index (reverse) 2191 // STEP 3 - sum multiply value together 2192 sum += parseInt(id.charAt(i)) * (13 - i); 2193 } 2194 // STEP 4 - mod sum with 11 2195 let mod = sum % 11; 2196 // STEP 5 - subtract 11 with mod, then mod 10 to get unit 2197 let check = (11 - mod) % 10; 2198 // STEP 6 - if check is match the digit 13th is correct 2199 if (check == parseInt(id.charAt(12))) { 2200 return true; 2201 } 2202 return false;
2203} 2204 2205function thaiIdvalidate($this) { 2206 var regexThaiID = new RegExp(/^[0-9]{13}$/); 2207 var data = $this.val(); 2208 return regexThaiID.test(data); 2209} 2210 2211function passwordPattern($this) { 2212 var regex_password = /^[a-zA-Z0-9]*$/; 2213 $this.keypress(function (event) { 2214 var _event = event || window.event; 2215 var key = _event.keyCode || _event.which; 2216 key = String.fromCharCode(key); 2217 if (!regex_password.test(key)) { 2218 _event.returnValue = false; 2219 if (_event.preventDefault) _event.preventDefault(); 2220 } 2221 }); 2222} 2223 2224// function emailPattern($this) { 2225// var regex_password = /^[a-zA-Z0-9@.]*$/; 2226// $this.keypress(function (event) { 2227// var _event = event || window.event; 2228// var key = _event.keyCode || _event.which; 2229// key = String.fromCharCode(key); 2230// if (!regex_password.test(key)) { 2231// _event.returnValue = false; 2232// if (_event.preventDefault) _event.preventDefault(); 2233// } 2234// }); 2235// } 2236 2237function emailPattern($this) { 2238 var regex_password = /^[a-zA-Z0-9@._-]*$/; 2239 $this.keypress(function (event) { 2240 var _event = event || window.event; 2241 var key = _event.keyCode || _event.which; 2242 key = String.fromCharCode(key); 2243 if (!regex_password.test(key)) { 2244 _event.returnValue = false; 2245 if (_event.preventDefault) _event.preventDefault(); 2246 } 2247 }); 2248} 2249 2250 2251function keypress_form() { 2252 var regexphone = /^[0-9]$/; 2253 $( 2254 'input[name="phone_number"],input[name="business_number"],input[name="ship_phone_number"], input[name="user_phone_number"], input[name="juristic_phone_number"], input[name="personal_phone_number"], input[name="phone_number_serial"]' 2255 ).keypress(function (event) { 2256 var _event = event || window.event; 2257 var key = _event.keyCode || _event.which; 2258 // Allow backspace 2259 if (key === 8) { 2260 return; 2261 } 2262 key = String.fromCharCode(key); 2263 // Check if the key is a digit and the total length is less than 10 2264 if (!regexphone.test(key) || $(this).val().length >= 10) { 2265 _event.preventDefault(); 2266 } 2267 }); 2268} 2269 2270$(document).ready(function () { 2271 // Call the function when the document is ready 2272 keypress_form(); 2273}); 2274 2275function thaiKeyPress($this) { 2276 var thai_juras = /^[0-9\x08]$/; 2277 $this.keypress(function (event) { 2278 var _event = event || window.event; 2279 var key = _event.keyCode || _event.which; 2280 key = String.fromCharCode(key); 2281 if (!thai_juras.test(key)) { 2282 _event.returnValue = false; 2283 if (_event.preventDefault) { 2284 _event.preventDefault(); 2285 } 2286 2287 if ($this.val().length == 1 && typeof key == "string") { 2288 $this.val(""); 2289 } 2290 } 2291 }); 2292} 2293 2294function validate_edit_profile($this) { 2295 var form = $this.closest("form"); 2296 var pop_footer = $this.closest(".pop-footer"); 2297 var pop_body = pop_footer.siblings(".popup-body"); 2298 var email_elem = pop_body.find("input[name=user_email]"); 2299 var first_name_elem = pop_body.find("input[name=user_first_name]"); 2300 var last_name_elem = pop_body.find("input[name=user_last_name]"); 2301 2302 var valid = true; 2303 $(".form-group").removeClass("has-danger"); 2304 if (!validEmail(email_elem)) { 2305 valid = false; 2306 email_elem.parent().addClass("has-danger"); 2307 } 2308 2309 if (first_name_elem.val() === "") { 2310 valid = false; 2311 first_name_elem.parent().addClass("has-danger"); 2312 } 2313 2314 if (last_name_elem.val() === "") { 2315 valid = false; 2316 last_name_elem.parent().addClass("has-danger"); 2317 } 2318 2319 if (valid) { 2320 form.submit(); 2321 } 2322} 2323 2324function filterReview(star, pcode, token) { 2325 $.ajax(window.location.origin + "/api/load_filter_review", { 2326 method: "GET", 2327 async: false, 2328 data: { 2329 token: token, 2330 star: parseInt(star), 2331 pcode: parseInt(pcode), 2332 }, 2333 beforeSend: function () { 2334 console.log("sent"); 2335 //$('.loader').show(); 2336 }, 2337 }).done(function (data) { 2338 if (data != "") { 2339 $(".row.review-below").empty(); 2340 $(".row.review-below").html(data); 2341 $(".row.review-below").find("span.stars").stars(); 2342 $(".row.review-below").find("span.stars-count").starsCount(); 2343 } else { 2344 $(".row.review-below").empty(); 2345 } 2346 }); 2347} 2348 2349function loadMoreReviewAjax(star, pcode, old_max_ind, token) { 2350 $.ajax(window.location.origin + "/api/load_load_more_review", { 2351 method: "GET", 2352 async: false, 2353 data: { 2354 token: token, 2355 star: parseInt(star), 2356 pcode: parseInt(pcode), 2357 oldmaxind: parseInt(old_max_ind), 2358 }, 2359 beforeSend: function () { 2360 console.log("sent"); 2361 //$('.loader').show(); 2362 }, 2363 }).done(function (data) { 2364 if (data != "") { 2365 $(".row.review-below .loadmore").remove(); 2366 $(".row.review-below").append(data); 2367 2368 $(".row.review-below") 2369 .find(".lm-review-starcal") 2370 .find("span.stars") 2371 .stars(); 2372 $(".row.review-below") 2373 .find(".lm-review-starcal") 2374 .find("span.stars-count") 2375 .starsCount(); 2376 $(".row.review-below") 2377 .find(".lm-review-starcal") 2378 .removeClass("lm-review-starcal"); 2379 } 2380 }); 2381} 2382 2383function settimer(data_class, otp_class) { 2384 var timer = "59"; 2385 interval = setInterval(function () { 2386 //by parsing integer, I avoid all extra string processing 2387 var seconds = parseInt(timer); 2388 --seconds; 2389 timer = "" + seconds; 2390 if (seconds == 0) { 2391 $(".count-end-resend").html( 2392 '<a data-class="' + 2393 data_class + 2394 '"otp-class="' + 2395 otp_class + 2396 '" onclick="resendOtp($(this))">สà¹à¸à¸£à¸«à¸±à¸ª</a>' 2397 ); 2398 $(".countdown").html(seconds); 2399 clearInterval(interval); 2400 } else { 2401 $(".countdown").html(seconds); 2402 } 2403 }, 1000); 2404} 2405 2406function resendOtp($this) { 2407 var data_class = $this.attr("data-class"); 2408 var otp_class = $this.attr("otp-class"); 2409 var find_form_but = $("body").find("." + data_class); 2410 var otp_el = find_form_but.closest("body").find(".popup-otp"); 2411 otp_el.find(".box-otp-form.inputs > input[type=number]").val(""); 2412 $("p.otp-incorrect").removeClass("active"); 2413 sendOtp(find_form_but.closest("form"), otp_el); 2414 settimer(data_class, otp_class); 2415 $(".count-end-resend").html(""); 2416} 2417 2418function registerCheckExists($this) { 2419 var frm = new FormData($this.closest("form")[0]); 2420 var this_elem = $this; 2421 var lang = $("html").attr("lang"); 2422 if (register_validate(this_elem)) { 2423 $.ajax({ 2424 data: frm, 2425 type: "POST", 2426 url: window.location.origin + "/api/register_check_exists", 2427 cache: false, 2428 contentType: false, 2429 processData: false, 2430 dataType: "json", 2431 success: function (arresult) { 2432 if (arresult.rs) { 2433 var form_el = this_elem.closest("form"); 2434 var email = form_el.find(".email"); 2435 var phone_number = form_el.find(".phone_number"); 2436 var phone_number_val = phone_number.find("input").val(); 2437 var pass = form_el.find(".pass"); 2438 var pass_re = form_el.find(".pass-re"); 2439 2440 if (arresult.is_email_exist == 1 || arresult.is_phone_exist == 1) { 2441 if (arresult.is_email_exist == 1) { 2442 if ( 2443 !email.find(".form-group").hasClass("error") && 2444 !email.hasClass("form-group") 2445 ) { 2446 email.find(".form-group").addClass("error"); 2447 } else if ( 2448 !email.hasClass("error") && 2449 email.hasClass("form-group") 2450 ) { 2451 email.addClass("error"); 2452 } 2453 email.find(".validate").empty(); 2454 if (lang != "en") { 2455 email.find(".validate").html("มี E-mail à¸à¸¢à¸¹à¹à¹à¸à¸£à¸°à¸à¸"); 2456 } else { 2457 email.find(".validate").html("E-mail already exists"); 2458 } 2459 } else { 2460 if ( 2461 email.find(".form-group").hasClass("error") && 2462 !email.hasClass("form-group") 2463 ) { 2464 email.find(".form-group").removeClass("error"); 2465 } else if ( 2466 email.hasClass("error") && 2467 email.hasClass("form-group") 2468 ) { 2469 email.removeClass("error"); 2470 } 2471 } 2472 2473 if (arresult.is_phone_exist == 1) { 2474 if ( 2475 !phone_number.hasClass("error") && 2476 !phone_number.hasClass("form-group") 2477 ) { 2478 phone_number.find(".form-group").addClass("error"); 2479 } else if ( 2480 !phone_number.hasClass("error") && 2481 phone_number.hasClass("form-group") 2482 ) { 2483 phone_number.addClass("error"); 2484 } 2485 2486 if (lang != "en") { 2487 phone_number 2488 .find(".validate") 2489 .html("มีà¹à¸à¸à¸£à¹à¹à¸à¸£à¸¨à¸±à¸à¸à¹à¸¡à¸·à¸à¸à¸·à¸à¸à¸µà¹à¸à¸¢à¸¹à¹à¹à¸à¸£à¸°à¸à¸"); 2490 } else { 2491 phone_number 2492 .find(".validate") 2493 .html("Phone number already exists"); 2494 } 2495 } else { 2496 if ( 2497 phone_number.find(".form-group").hasClass("error") && 2498 !phone_number.hasClass("form-group") 2499 ) { 2500 phone_number.find(".form-group").removeClass("error"); 2501 } else if ( 2502 phone_number.hasClass("error") && 2503 phone_number.hasClass("form-group") 2504 ) { 2505 phone_number.removeClass("error"); 2506 } 2507 } 2508 } else if ( 2509 arresult.is_email_exist == 0 && 2510 arresult.is_phone_exist == 0 2511 ) { 2512 if (
2513 phone_number.find(".form-group").hasClass("error") && 2514 !phone_number.hasClass("form-group") 2515 ) { 2516 phone_number.find(".form-group").removeClass("error"); 2517 } else if ( 2518 phone_number.hasClass("error") && 2519 phone_number.hasClass("form-group") 2520 ) { 2521 phone_number.removeClass("error"); 2522 } 2523 2524 if ( 2525 email.find(".form-group").hasClass("error") && 2526 !email.hasClass("form-group") 2527 ) { 2528 email.find(".form-group").removeClass("error"); 2529 } else if ( 2530 email.hasClass("error") && 2531 email.hasClass("form-group") 2532 ) { 2533 email.removeClass("error"); 2534 } 2535 2536 if (arresult.chk_nor_is_login != 0) { 2537 if (pass.find(".form-group").hasClass("error")) { 2538 pass.find(".form-group").removeClass("error"); 2539 } 2540 2541 if (pass_re.find(".form-group").hasClass("error")) { 2542 pass_re.find(".form-group").removeClass("error"); 2543 } 2544 2545 if (this_elem.hasClass("login-normal")) { 2546 if (register_validate(this_elem)) { 2547 this_elem 2548 .closest("body") 2549 .find(".popup-otp") 2550 .find(".otp-popup-form") 2551 .find("button.validate") 2552 .addClass("register-normal"); 2553 var otp_el = this_elem.closest("body").find(".popup-otp"); 2554 var otp_ti_el = otp_el.find(".otp-title"); 2555 var otp_title_open = "<b>Please enter OTP sent to +66"; 2556 if (lang == "th") { 2557 otp_title_open = 2558 "<b>à¸à¸£à¸¸à¸à¸²à¸à¸£à¸à¸à¸£à¸«à¸±à¸ª OTP à¸à¸µà¹à¸ªà¹à¸à¹à¸à¸¢à¸±à¸à¹à¸à¸à¸£à¹ +66"; 2559 } 2560 var otp_title_close = "</b>"; 2561 var otp_title = 2562 otp_title_open + 2563 phone_number_val[1] + 2564 phone_number_val[2] + 2565 " " + 2566 phone_number_val[3] + 2567 phone_number_val[4] + 2568 phone_number_val[5] + 2569 " " + 2570 phone_number_val[6] + 2571 phone_number_val[7] + 2572 phone_number_val[8] + 2573 phone_number_val[9] + 2574 otp_title_close; 2575 otp_ti_el.empty(); 2576 otp_ti_el.html(otp_title); 2577 otp_button = 2578 '<input type="hidden" name="otp-phone" value="' + 2579 phone_number_val + 2580 '"></input>'; 2581 otp_el.find("form").prepend(otp_button); 2582 sendOtp(this_elem.closest("form"), otp_el); 2583 popin_otp_name("popup-otp"); 2584 settimer("login-normal", "register-normal"); 2585 } 2586 } else if (this_elem.hasClass("prod-regis-otp")) { 2587 this_elem 2588 .closest("body") 2589 .find(".popup-otp") 2590 .find(".otp-popup-form") 2591 .find("button.validate") 2592 .addClass("product-register"); 2593 var otp_el = this_elem.closest("body").find(".popup-otp"); 2594 var otp_ti_el = otp_el.find(".otp-title"); 2595 var otp_title_open = "<b>Please enter OTP sent to +66"; 2596 if (lang == "th") { 2597 otp_title_open = "<b>à¸à¸£à¸¸à¸à¸²à¸à¸£à¸à¸à¸£à¸«à¸±à¸ª OTP à¸à¸µà¹à¸ªà¹à¸à¹à¸à¸¢à¸±à¸à¹à¸à¸à¸£à¹ +66"; 2598 } 2599 var otp_title_close = "</b>"; 2600 var otp_title = 2601 otp_title_open + 2602 phone_number_val[1] + 2603 phone_number_val[2] + 2604 " " + 2605 phone_number_val[3] + 2606 phone_number_val[4] + 2607 phone_number_val[5] + 2608 " " + 2609 phone_number_val[6] + 2610 phone_number_val[7] + 2611 phone_number_val[8] + 2612 phone_number_val[9] + 2613 otp_title_close; 2614 otp_ti_el.empty(); 2615 otp_ti_el.html(otp_title); 2616 otp_button = 2617 '<input type="hidden" name="otp-phone" value="' + 2618 phone_number_val + 2619 '"></input>'; 2620 otp_el.find("form").prepend(otp_button); 2621 sendOtp(this_elem.closest("form"), otp_el); 2622 popin_otp_name("popup-otp"); 2623 } else if (this_elem.hasClass("popup-chkout-regis")) { 2624 if (register_validate(this_elem)) { 2625 this_elem 2626 .closest("body") 2627 .find(".popup-otp") 2628 .find(".otp-popup-form") 2629 .find("button.validate") 2630 .addClass("popup-chkout-regis"); 2631 var otp_el = this_elem.closest("body").find(".popup-otp"); 2632 var otp_ti_el = otp_el.find(".otp-title"); 2633 var otp_title_open = "<b>Please enter OTP sent to +66"; 2634 if (lang == "th") { 2635 otp_title_open = 2636 "<b>à¸à¸£à¸¸à¸à¸²à¸à¸£à¸à¸à¸£à¸«à¸±à¸ª OTP à¸à¸µà¹à¸ªà¹à¸à¹à¸à¸¢à¸±à¸à¹à¸à¸à¸£à¹ +66"; 2637 } 2638 var otp_title_close = "</b>"; 2639 var otp_title = 2640 otp_title_open + 2641 phone_number_val[1] + 2642 phone_number_val[2] + 2643 " " + 2644 phone_number_val[3] + 2645 phone_number_val[4] + 2646 phone_number_val[5] + 2647 " " + 2648 phone_number_val[6] + 2649 phone_number_val[7] + 2650 phone_number_val[8] + 2651 phone_number_val[9] + 2652 otp_title_close; 2653 otp_ti_el.empty(); 2654 otp_ti_el.html(otp_title); 2655 otp_button = 2656 '<input type="hidden" name="otp-phone" value="' + 2657 phone_number_val + 2658 '"></input>'; 2659 otp_el.find("form").prepend(otp_button); 2660 sendOtp(this_elem.closest("form"), otp_el); 2661 popin_otp_name("popup-otp"); 2662 } 2663 } 2664 } else { 2665 this_elem 2666 .closest("body") 2667 .find(".popup-otp") 2668 .find(".otp-popup-form") 2669 .find("button.validate") 2670 .addClass("chk_nor_is_login"); 2671 var otp_el = this_elem.closest("body").find(".popup-otp"); 2672 var otp_ti_el = otp_el.find(".otp-title"); 2673 var otp_title_open = "<b>Please enter OTP sent to +66"; 2674 if (lang == "th") { 2675 otp_title_open = "<b>à¸à¸£à¸¸à¸à¸²à¸à¸£à¸à¸à¸£à¸«à¸±à¸ª OTP à¸à¸µà¹à¸ªà¹à¸à¹à¸à¸¢à¸±à¸à¹à¸à¸à¸£à¹ +66"; 2676 } 2677 var otp_title_close = "</b>"; 2678 var otp_title = 2679 otp_title_open + 2680 phone_number_val[1] + 2681 phone_number_val[2] + 2682 " " + 2683 phone_number_val[3] + 2684 phone_number_val[4] + 2685 phone_number_val[5] + 2686 " " + 2687 phone_number_val[6] + 2688 phone_number_val[7] + 2689 phone_number_val[8] + 2690 phone_number_val[9] + 2691 otp_title_close; 2692 otp_ti_el.empty(); 2693 otp_ti_el.html(otp_title); 2694 otp_button = 2695 '<input type="hidden" name="otp-phone" value="' + 2696 phone_number_val + 2697 '"></input>'; 2698 otp_el.find("form").prepend(otp_button); 2699 sendOtp(this_elem.closest("form"), otp_el); 2700 popin_otp_name("popup-otp"); 2701 } 2702 } 2703 } 2704 }, 2705 }); 2706 } 2707} 2708 2709function register_validate($this) { 2710 validate = true; 2711 var form = $this.closest("form"); 2712 var first_name = form.find("input[name=first_name]"); 2713 var last_name = form.find("input[name=last_name]"); 2714 var email = form.find("input[name=email]"); 2715 var password = form.find("input[name=password]"); 2716 var password_re = form.find("input[name=password_re]"); 2717 var phone_number = form.find("input[name=phone_number]"); 2718 var concent_1 = form.find("input[name=concent_1]"); 2719 var concent_2 = form.find("input[name=concent_2]"); 2720 2721 first_name.closest(".first_name").removeClass("error"); 2722 last_name.closest(".last_name").removeClass("error"); 2723 email.closest(".email").removeClass("error"); 2724 concent_1.closest(".concent_1").removeClass("error"); 2725 concent_2.closest(".concent_2").removeClass("error"); 2726 password.closest(".pass").removeClass("error"); 2727 password_re.closest(".pass-re").removeClass("error"); 2728 phone_number.closest(".phone_number").removeClass("error"); 2729 2730 var is_scroll = 0; 2731 2732 if (first_name.val() === "") { 2733 validate = false;
2734 first_name.closest(".first_name").addClass("error"); 2735 if (is_scroll == 0) { 2736 is_scroll = 1; 2737 $(".box-form-scroll").animate( 2738 { 2739 scrollTop: first_name.offset().top - 350, 2740 }, 2741 500 2742 ); 2743 } 2744 } 2745 2746 if (last_name.val() === "") { 2747 validate = false; 2748 last_name.closest(".last_name").addClass("error"); 2749 if (is_scroll == 0) { 2750 is_scroll = 1; 2751 $(".box-form-scroll").animate( 2752 { 2753 scrollTop: last_name.offset().top - 350, 2754 }, 2755 500 2756 ); 2757 } 2758 } 2759 2760 if (email.val() === "") { 2761 validate = false; 2762 var e_pat = email.closest(".email").find(".validate"); 2763 e_pat.empty(); 2764 e_pat.html("à¸à¸£à¸¸à¸à¸²à¸à¸£à¸à¸ E-Mail"); 2765 email.closest(".email").addClass("error"); 2766 if (is_scroll == 0) { 2767 is_scroll = 1; 2768 $(".box-form-scroll").animate( 2769 { 2770 scrollTop: email.offset().top - 350, 2771 }, 2772 500 2773 ); 2774 } 2775 } 2776 2777 if (!validEmail(email)) { 2778 validate = false; 2779 if (is_scroll == 0) { 2780 is_scroll = 1; 2781 $(".box-form-scroll").animate( 2782 { 2783 scrollTop: email.offset().top - 350, 2784 }, 2785 500 2786 ); 2787 } 2788 } 2789 2790 if (!$this.hasClass("prod-regis-otp")) { 2791 if (password.val() !== "" && password_re.val() !== "") { 2792 if (password.val().length < 6 || password_re.val().length < 6) { 2793 if (password.val().length < 6) { 2794 password 2795 .closest(".pass") 2796 .find(".validate") 2797 .html("รหัสà¸à¹à¸²à¸à¸à¹à¸à¸à¸¡à¸µà¸¡à¸²à¸à¸à¸§à¹à¸² 6 à¸à¸±à¸§"); 2798 password.closest(".pass").addClass("error"); 2799 } 2800 if (password_re.val().length < 6) { 2801 password_re 2802 .closest(".pass-re") 2803 .find(".validate") 2804 .html("รหัสà¸à¹à¸²à¸à¸à¹à¸à¸à¸¡à¸µà¸¡à¸²à¸à¸à¸§à¹à¸² 6 à¸à¸±à¸§"); 2805 password_re.closest(".pass-re").addClass("error"); 2806 } 2807 2808 validate = false; 2809 if (is_scroll == 0) { 2810 is_scroll = 1; 2811 $(".box-form-scroll").animate( 2812 { 2813 scrollTop: password.offset().top - 350, 2814 }, 2815 500 2816 ); 2817 } 2818 } else { 2819 if (password.val() !== password_re.val()) { 2820 password.closest(".pass").find(".validate").html("รหัสà¸à¹à¸²à¸à¹à¸¡à¹à¸à¸£à¸à¸à¸±à¸"); 2821 password_re 2822 .closest(".pass-re") 2823 .find(".validate") 2824 .html("รหัสà¸à¹à¸²à¸à¹à¸¡à¹à¸à¸£à¸à¸à¸±à¸"); 2825 password.closest(".pass").addClass("error"); 2826 password_re.closest(".pass-re").addClass("error"); 2827 validate = false; 2828 if (is_scroll == 0) { 2829 is_scroll = 1; 2830 $(".box-form-scroll").animate( 2831 { 2832 scrollTop: password.offset().top - 350, 2833 }, 2834 500 2835 ); 2836 } 2837 } 2838 } 2839 } else { 2840 if (password.val() === "") { 2841 password.closest(".pass").find(".validate").html("à¸à¸£à¸¸à¸à¸²à¸à¸£à¸à¸à¸£à¸«à¸±à¸ªà¸à¹à¸²à¸"); 2842 password.closest(".pass").addClass("error"); 2843 validate = false; 2844 if (is_scroll == 0) { 2845 is_scroll = 1; 2846 $(".box-form-scroll").animate( 2847 { 2848 scrollTop: password.offset().top - 350, 2849 }, 2850 500 2851 ); 2852 } 2853 } 2854 2855 if (password_re.val() === "") { 2856 password_re 2857 .closest(".pass-re") 2858 .find(".validate") 2859 .html("à¸à¸£à¸¸à¸à¸²à¸à¸£à¸à¸à¸£à¸«à¸±à¸ªà¸à¹à¸²à¸"); 2860 password_re.closest(".pass-re").addClass("error"); 2861 validate = false; 2862 if (is_scroll == 0) { 2863 is_scroll = 1; 2864 $(".box-form-scroll").animate( 2865 { 2866 scrollTop: password_re.offset().top - 350, 2867 }, 2868 500 2869 ); 2870 } 2871 } 2872 } 2873 } 2874 2875 if (phone_number.val() === "") { 2876 phone_number 2877 .closest(".phone_number") 2878 .find(".validate") 2879 .html("à¸à¸£à¸¸à¸à¸²à¸à¸£à¸à¸à¹à¸à¸à¸£à¹à¹à¸à¸£à¸¨à¸±à¸à¸à¹"); 2880 phone_number.closest(".phone_number").addClass("error"); 2881 validate = false; 2882 if (is_scroll == 0) { 2883 is_scroll = 1; 2884 $(".box-form-scroll").animate( 2885 { 2886 scrollTop: phone_number.offset().top - 350, 2887 }, 2888 500 2889 ); 2890 } 2891 } else if (phone_number.val().length != 10) { 2892 phone_number 2893 .closest(".phone_number") 2894 .find(".validate") 2895 .html("à¸à¸£à¸¸à¸à¸²à¸à¸£à¸à¸à¹à¸à¸à¸£à¹à¹à¸à¸£à¸¨à¸±à¸à¸à¹à¹à¸«à¹à¸à¸£à¸ 10 หลัà¸"); 2896 phone_number.closest(".phone_number").addClass("error"); 2897 validate = false; 2898 if (is_scroll == 0) { 2899 is_scroll = 1; 2900 $(".box-form-scroll").animate( 2901 { 2902 scrollTop: phone_number.offset().top - 350, 2903 }, 2904 500 2905 ); 2906 } 2907 } 2908 2909 if (!concent_2.is(":checked")) { 2910 validate = false;
2911 concent_2.closest(".concent_2").addClass("error"); 2912 } 2913 2914 return validate; 2915} 2916 2917function guestCheckoutCheckExists($this) { 2918 var frm = new FormData($this.closest("form")[0]); 2919 var lang = $("html").attr("lang"); 2920 if (guest_checkout_validate($this)) { 2921 $.ajax({ 2922 data: frm, 2923 type: "POST", 2924 url: window.location.origin + "/api/guest_check_exists", 2925 cache: false, 2926 contentType: false, 2927 processData: false, 2928 dataType: "json", 2929 success: function (arresult) { 2930 if (arresult.rs) { 2931 var form_el = $this.closest("form"); 2932 var email = form_el.find(".email"); 2933 var phone_number = form_el.find(".phone_number"); 2934 var phone_number_val = phone_number.find("input").val(); 2935 var is_scroll = 0; 2936 2937 if (arresult.is_email_exist == 1 || arresult.is_phone_exist == 1) { 2938 if (arresult.is_email_exist == 1) { 2939 if ( 2940 !email.find(".form-group").hasClass("error") && 2941 !email.hasClass("form-group") 2942 ) { 2943 email.find(".form-group").addClass("error"); 2944 } else if ( 2945 !email.hasClass("error") && 2946 email.hasClass("form-group") 2947 ) { 2948 email.addClass("error"); 2949 } 2950 email.find(".validate").empty(); 2951 if (lang != "en") { 2952 email.find(".validate").html("มี E-mail à¸à¸¢à¸¹à¹à¹à¸à¸£à¸°à¸à¸"); 2953 } else { 2954 email.find(".validate").html("E-mail already exists"); 2955 } 2956 if (is_scroll == 0) { 2957 is_scroll = 1; 2958 $("html, body").animate( 2959 { 2960 scrollTop: email.offset().top - 200, 2961 }, 2962 500 2963 ); 2964 } 2965 } else { 2966 if ( 2967 email.find(".form-group").hasClass("error") && 2968 !email.hasClass("form-group") 2969 ) { 2970 email.find(".form-group").removeClass("error"); 2971 } else if ( 2972 email.hasClass("error") && 2973 email.hasClass("form-group") 2974 ) { 2975 email.removeClass("error"); 2976 } 2977 } 2978 2979 if (arresult.is_phone_exist == 1) { 2980 if ( 2981 !phone_number.hasClass("error") && 2982 !phone_number.hasClass("form-group") 2983 ) { 2984 phone_number.find(".form-group").addClass("error"); 2985 } else if ( 2986 !phone_number.hasClass("error") && 2987 phone_number.hasClass("form-group") 2988 ) { 2989 phone_number.addClass("error"); 2990 } 2991 2992 if (lang != "en") { 2993 phone_number 2994 .find(".validate") 2995 .html("มีà¹à¸à¸à¸£à¹à¹à¸à¸£à¸¨à¸±à¸à¸à¹à¸¡à¸·à¸à¸à¸·à¸à¸à¸µà¹à¸à¸¢à¸¹à¹à¹à¸à¸£à¸°à¸à¸"); 2996 } else { 2997 phone_number 2998 .find(".validate") 2999 .html("Phone number already exists"); 3000 } 3001 if (is_scroll == 0) { 3002 is_scroll = 1; 3003 $("html, body").animate( 3004 { 3005 scrollTop: phone_number.offset().top - 200, 3006 }, 3007 500 3008 ); 3009 } 3010 } else { 3011 if ( 3012 phone_number.find(".form-group").hasClass("error") && 3013 !phone_number.hasClass("form-group") 3014 ) { 3015 phone_number.find(".form-group").removeClass("error"); 3016 } else if ( 3017 phone_number.hasClass("error") && 3018 phone_number.hasClass("form-group") 3019 ) { 3020 phone_number.removeClass("error"); 3021 } 3022 } 3023 } else if ( 3024 arresult.is_email_exist == 0 && 3025 arresult.is_phone_exist == 0 3026 ) { 3027 if ( 3028 phone_number.find(".form-group").hasClass("error") && 3029 !phone_number.hasClass("form-group") 3030 ) { 3031 phone_number.find(".form-group").removeClass("error"); 3032 } else if ( 3033 phone_number.hasClass("error") && 3034 phone_number.hasClass("form-group") 3035 ) { 3036 phone_number.removeClass("error"); 3037 } 3038 3039 if ( 3040 email.find(".form-group").hasClass("error") && 3041 !email.hasClass("form-group") 3042 ) { 3043 email.find(".form-group").removeClass("error"); 3044 } else if ( 3045 email.hasClass("error") && 3046 email.hasClass("form-group") 3047 ) { 3048 email.removeClass("error"); 3049 } 3050 3051 var is_notify = $(".form-taxinv-nolog"); 3052 var tab_btn = is_notify.find(".tab-btn.active"); 3053 var tab_index = parseInt(tab_btn.attr("data-tab-list")); 3054 if (tab_index == 0) { 3055 var tab = $(".tab-list.accor-ref-0"); 3056 } else { 3057 var tab = $(".tab-list.accor-ref-1"); 3058 } 3059 3060 var concent = tab.find(".concent_2").find("input"); 3061 var is_tax = $("input[name=is_taxinv]").prop("checked"); 3062 3063 if ((is_tax == 1 && concent.prop("checked")) || is_tax == 0) { 3064 $this 3065 .closest("body") 3066 .find(".popup-otp") 3067 .find(".otp-popup-form") 3068 .find("button.validate") 3069 .addClass("guest-chk-out"); 3070 var otp_el = $this.closest("body").find(".popup-otp"); 3071 var otp_ti_el = otp_el.find(".otp-title"); 3072 var otp_title_open = "<b>Please enter OTP sent to +66"; 3073 if (lang == "th") { 3074 otp_title_open = "<b>à¸à¸£à¸¸à¸à¸²à¸à¸£à¸à¸à¸£à¸«à¸±à¸ª OTP à¸à¸µà¹à¸ªà¹à¸à¹à¸à¸¢à¸±à¸à¹à¸à¸à¸£à¹ +66"; 3075 } 3076 var otp_title_close = "</b>"; 3077 var otp_title = 3078 otp_title_open + 3079 phone_number_val[1] + 3080 phone_number_val[2] + 3081 " " + 3082 phone_number_val[3] + 3083 phone_number_val[4] + 3084 phone_number_val[5] + 3085 " " + 3086 phone_number_val[6] + 3087 phone_number_val[7] + 3088 phone_number_val[8] + 3089 phone_number_val[9] + 3090 otp_title_close; 3091 otp_ti_el.empty(); 3092 otp_ti_el.html(otp_title); 3093 otp_button = 3094 '<input type="hidden" name="otp-phone" value="' + 3095 phone_number_val + 3096 '"></input>'; 3097 otp_el.find("form").prepend(otp_button); 3098 sendOtp($this.closest("form"), otp_el); 3099 popin_otp_name("popup-otp"); 3100 settimer("checkout-regis", ""); 3101 } 3102 } 3103 } 3104 }, 3105 }); 3106 } 3107} 3108 3109function guest_checkout_validate($this) { 3110 validate = true; 3111 var form = $this.closest("form"); 3112 var first_name = form.find("input[name=ship_first_name]"); 3113 var last_name = form.find("input[name=ship_last_name]"); 3114 var email = form.find("input[name=ship_email]"); 3115 var phone_number = form.find("input[name=ship_phone_number]"); 3116 var address_detail = form.find("input[name=ship_address_detail]"); 3117 var concent = form.find("input[name=concent]"); 3118 3119 var is_tax = $("input[name=is_taxinv]"); 3120 var province = form.find("select[name=ship_province]"); 3121 var district = form.find("select[name=ship_district]"); 3122 var sub_district = form.find("select[name=ship_sub_district"); 3123 var zip_code = form.find("select[name=ship_zip_code"); 3124 3125 first_name.closest(".first_name").removeClass("error"); 3126 last_name.closest(".last_name").removeClass("error"); 3127 email.closest(".email").removeClass("error"); 3128 3129 district.closest(".district").removeClass("error"); 3130 sub_district.closest(".sub-district").removeClass("error"); 3131 province.closest(".province").removeClass("error"); 3132 phone_number.closest(".phone_number").removeClass("error"); 3133 address_detail.closest(".address_detail").removeClass("error"); 3134 concent.closest(".concent_2").removeClass("error"); 3135 3136 var is_scroll = 0; 3137 if (first_name.val() === "") { 3138 validate = false;
3139 first_name.closest(".first_name").addClass("error"); 3140 if (is_scroll == 0) { 3141 is_scroll = 1; 3142 $("html, body").animate( 3143 { 3144 scrollTop: first_name.offset().top - 200, 3145 }, 3146 500 3147 ); 3148 } 3149 } 3150 3151 if (last_name.val() === "") { 3152 validate = false; 3153 last_name.closest(".last_name").addClass("error"); 3154 if (is_scroll == 0) { 3155 is_scroll = 1; 3156 $("html, body").animate( 3157 { 3158 scrollTop: last_name.offset().top - 200, 3159 }, 3160 500 3161 ); 3162 } 3163 } 3164 3165 if (email.val() === "") { 3166 validate = false; 3167 var e_pat = email.closest(".email").find(".validate"); 3168 e_pat.empty(); 3169 e_pat.html("à¸à¸£à¸¸à¸à¸²à¸à¸£à¸à¸ E-Mail"); 3170 email.closest(".email").addClass("error"); 3171 if (is_scroll == 0) { 3172 is_scroll = 1; 3173 $("html, body").animate( 3174 { 3175 scrollTop: email.offset().top - 200, 3176 }, 3177 500 3178 ); 3179 } 3180 } 3181 3182 if (!validEmail(email)) { 3183 validate = false; 3184 var e_pat = email.closest(".email").find(".validate"); 3185 e_pat.empty(); 3186 e_pat.html("รูà¸à¹à¸à¸ E-Mail à¹à¸¡à¹à¸à¸¹à¸à¸à¹à¸à¸"); 3187 email.closest(".email").addClass("error"); 3188 if (is_scroll == 0) { 3189 is_scroll = 1; 3190 $("html, body").animate( 3191 { 3192 scrollTop: email.offset().top - 200, 3193 }, 3194 500 3195 ); 3196 } 3197 } 3198 3199 if (phone_number.val() === "") { 3200 phone_number 3201 .closest(".phone_number") 3202 .find(".validate") 3203 .html("à¸à¸£à¸¸à¸à¸²à¸à¸£à¸à¸à¹à¸à¸à¸£à¹à¹à¸à¸£à¸¨à¸±à¸à¸à¹"); 3204 phone_number.closest(".phone_number").addClass("error"); 3205 if (is_scroll == 0) { 3206 is_scroll = 1; 3207 $("html, body").animate( 3208 { 3209 scrollTop: phone_number.offset().top - 200, 3210 }, 3211 500 3212 ); 3213 } 3214 } else if (phone_number.val().length != 10) { 3215 phone_number 3216 .closest(".phone_number") 3217 .find(".validate") 3218 .html("à¸à¸£à¸¸à¸à¸²à¸à¸£à¸à¸à¹à¸à¸à¸£à¹à¹à¸à¸£à¸¨à¸±à¸à¸à¹à¹à¸«à¹à¸à¸£à¸ 10 หลัà¸"); 3219 phone_number.closest(".phone_number").addClass("error"); 3220 if (is_scroll == 0) { 3221 is_scroll = 1; 3222 $("html, body").animate( 3223 { 3224 scrollTop: phone_number.offset().top - 200, 3225 }, 3226 500 3227 ); 3228 } 3229 } 3230 3231 if (address_detail.val() === "") { 3232 validate = false; 3233 address_detail.closest(".address_detail").addClass("error"); 3234 if (is_scroll == 0) { 3235 is_scroll = 1; 3236 $("html, body").animate( 3237 { 3238 scrollTop: first_name.offset().top - 200, 3239 }, 3240 500 3241 ); 3242 } 3243 } 3244 3245 if (province.val() == 0) { 3246 province.closest(".province").addClass("error"); 3247 validate = false; 3248 } else { 3249 if (district.val() == "") { 3250 district.closest(".district").addClass("error"); 3251 validate = false; 3252 } else { 3253 if (sub_district.val() == "") { 3254 sub_district.closest(".sub-district").addClass("error"); 3255 validate = false; 3256 } else { 3257 if (zip_code.val() == "") { 3258 zip_code.closest(".zip-code").addClass("error"); 3259 validate = false; 3260 } 3261 } 3262 } 3263 } 3264 3265 if (is_tax.prop("checked")) { 3266 var tax_inv_wrap = $(".form-taxinv-nolog"); 3267 var active_tab = tax_inv_wrap.find(".tab-btn.active"); 3268 3269 if (active_tab.attr("data-tab-list") == 0) { 3270 var tab_body = tax_inv_wrap.find(".accor-ref-0"); 3271 var id_card_elem = tab_body.find("input[name=personal_id_card_number]"); 3272 var personal_first_name = tab_body.find( 3273 "input[name=personal_first_name]" 3274 ); 3275 var personal_last_name = tab_body.find("input[name=personal_last_name]"); 3276 var personal_phone_number = tab_body.find( 3277 "input[name=personal_phone_number]" 3278 ); 3279 var personal_address_detail = tab_body.find( 3280 "input[name=personal_address_detail]" 3281 ); 3282 var personal_province = tab_body.find("select[name=personal_province]"); 3283 var personal_district = tab_body.find("select[name=personal_district]"); 3284 var personal_sub_district = tab_body.find( 3285 "select[name=personal_sub_district" 3286 ); 3287 3288 personal_first_name.parent().removeClass("error"); 3289 personal_last_name.parent().removeClass("error"); 3290 id_card_elem.parent().removeClass("error"); 3291 personal_phone_number.parent().parent().removeClass("error"); 3292 personal_address_detail.parent().removeClass("error"); 3293 personal_province.closest(".province").removeClass("error"); 3294 personal_district.closest(".district").removeClass("error"); 3295 personal_sub_district.closest(".sub-district").removeClass("error"); 3296 3297 if (!thaiIdvalidate(id_card_elem) && id_card_elem.val() != "") { 3298 valid = false;
3299 id_card_elem.parent().addClass("error"); 3300 id_card_elem 3301 .parent() 3302 .find(".validate") 3303 .html("รูà¸à¹à¸à¸à¹à¸¥à¸à¸à¸±à¸à¸£à¸à¸£à¸°à¸à¸²à¸à¸à¹à¸¡à¹à¸à¸¹à¸à¸à¹à¸à¸"); 3304 } else if (!thaiIdvalidate(id_card_elem) && id_card_elem.val() == "") { 3305 valid = false; 3306 id_card_elem.parent().addClass("error"); 3307 id_card_elem.parent().find(".validate").html("à¸à¸£à¸¸à¸à¸²à¸à¸£à¸à¸à¹à¸¥à¸à¸à¸±à¸à¸£à¸à¸£à¸°à¸à¸²à¸à¸"); 3308 } 3309 3310 if (personal_first_name.val() === "") { 3311 valid = false; 3312 personal_first_name.parent().addClass("error"); 3313 if (is_scroll == 0) { 3314 is_scroll = 1; 3315 $("html, body").animate( 3316 { 3317 scrollTop: personal_first_name.offset().top - 850, 3318 }, 3319 500 3320 ); 3321 } 3322 } 3323 3324 if (personal_last_name.val() === "") { 3325 valid = false; 3326 personal_last_name.parent().addClass("error"); 3327 if (is_scroll == 0) { 3328 is_scroll = 1; 3329 $("html, body").animate( 3330 { 3331 scrollTop: personal_last_name.offset().top - 850, 3332 }, 3333 500 3334 ); 3335 } 3336 } 3337 3338 if (personal_phone_number.val() === "") { 3339 personal_phone_number 3340 .parent() 3341 .parent() 3342 .find(".validate") 3343 .html("à¸à¸£à¸¸à¸à¸²à¸à¸£à¸à¸à¹à¸à¸à¸£à¹à¹à¸à¸£à¸¨à¸±à¸à¸à¹"); 3344 personal_phone_number.parent().parent().addClass("error"); 3345 valid = false; 3346 if (is_scroll == 0) { 3347 is_scroll = 1; 3348 $("html, body").animate( 3349 { 3350 scrollTop: personal_phone_number.offset().top - 850, 3351 }, 3352 500 3353 ); 3354 } 3355 } else if (personal_phone_number.val().length != 10) { 3356 personal_phone_number 3357 .parent() 3358 .parent() 3359 .find(".validate") 3360 .html("à¸à¸£à¸¸à¸à¸²à¸à¸£à¸à¸à¹à¸à¸à¸£à¹à¹à¸à¸£à¸¨à¸±à¸à¸à¹à¹à¸«à¹à¸à¸£à¸ 10 หลัà¸"); 3361 personal_phone_number.parent().parent().addClass("error"); 3362 valid = false; 3363 if (is_scroll == 0) { 3364 is_scroll = 1; 3365 $("html, body").animate( 3366 { 3367 scrollTop: personal_phone_number.offset().top - 200, 3368 }, 3369 500 3370 ); 3371 } 3372 } 3373 3374 if (personal_address_detail.val() === "") { 3375 valid = false; 3376 personal_address_detail.parent().addClass("error"); 3377 if (is_scroll == 0) { 3378 is_scroll = 1; 3379 $("html, body").animate( 3380 { 3381 scrollTop: personal_address_detail.offset().top - 200, 3382 }, 3383 500 3384 ); 3385 } 3386 } 3387 if (personal_province.val() == 0) { 3388 valid = false; 3389 personal_province.closest(".province").addClass("error"); 3390 if (is_scroll == 0) { 3391 is_scroll = 1; 3392 $("html, body").animate( 3393 { 3394 scrollTop: personal_province.offset().top - 200, 3395 }, 3396 500 3397 ); 3398 } 3399 } else { 3400 if (personal_district.val() == "") { 3401 valid = false; 3402 personal_district.closest(".district").addClass("error"); 3403 if (is_scroll == 0) { 3404 is_scroll = 1; 3405 $("html, body").animate( 3406 { 3407 scrollTop: personal_district.offset().top - 200, 3408 }, 3409 500 3410 ); 3411 } 3412 } else { 3413 if (personal_sub_district.val() == "") { 3414 valid = false; 3415 personal_sub_district.closest(".sub-district").addClass("error"); 3416 if (is_scroll == 0) { 3417 is_scroll = 1; 3418 $("html, body").animate( 3419 { 3420 scrollTop: personal_sub_district.offset().top - 200, 3421 }, 3422 500 3423 ); 3424 } 3425 } 3426 } 3427 } 3428 } else if (active_tab.attr("data-tab-list") == 1) { 3429 var tab_body = pop_body.find(".accor-ref-1"); 3430 var jurastic_address_detail = pop_body.find( 3431 "input[name=jurastic_address_detail]" 3432 ); 3433 var jurastic_province = pop_body.find("select[name=jurastic_province]"); 3434 var jurastic_district = pop_body.find("select[name=jurastic_district]"); 3435 var jurastic_sub_district = pop_body.find( 3436 "select[name=jurastic_sub_district" 3437 ); 3438 var jurastic_phone_number = pop_body.find( 3439 "input[name=jurastic_phone_number]" 3440 ); 3441 var jurastic_id = pop_body.find("input[name=jurastic_id"); 3442 var jurastic_name = pop_body.find("input[name=jurastic_name"); 3443 3444 jurastic_id.closest(".jurastic_id").removeClass("error"); 3445 jurastic_name.closest(".jurastic_name").removeClass("error"); 3446 jurastic_phone_number
3447 .closest(".jurastic_phone_number") 3448 .removeClass("error"); 3449 jurastic_address_detail 3450 .closest(".jurastic_address_detail") 3451 .removeClass("error"); 3452 jurastic_province.closest(".province").removeClass("error"); 3453 jurastic_district.closest(".district").removeClass("error"); 3454 jurastic_sub_district.closest(".sub-district").removeClass("error"); 3455 3456 if (!thaiIdvalidate(jurastic_id) && jurastic_id.val() != "") { 3457 valid = false; 3458 jurastic_id.closest(".jurastic_id").addClass("error"); 3459 jurastic_id 3460 .closest(".jurastic_id") 3461 .find(".validate") 3462 .html("รูà¸à¹à¸à¸à¸«à¸¡à¸²à¸¢à¹à¸¥à¸à¹à¸¥à¸à¸à¸¹à¹à¹à¸ªà¸µà¸¢à¸ าษีà¹à¸¡à¹à¸à¸¹à¸à¸à¹à¸à¸"); 3463 } else if (!thaiIdvalidate(jurastic_id) && jurastic_id.val() == "") { 3464 valid = false; 3465 jurastic_id.closest(".jurastic_id").addClass("error"); 3466 jurastic_id 3467 .closest(".jurastic_id") 3468 .find(".validate") 3469 .html("à¸à¸£à¸¸à¸à¸²à¸à¸£à¸à¸à¸«à¸¡à¸²à¸¢à¹à¸¥à¸à¹à¸¥à¸à¸à¸¹à¹à¹à¸ªà¸µà¸¢à¸ าษี"); 3470 } 3471 3472 if (jurastic_name.val() === "") { 3473 valid = false; 3474 jurastic_name.closest(".jurastic_name").addClass("error"); 3475 if (is_scroll == 0) { 3476 is_scroll = 1; 3477 $("html, body").animate( 3478 { 3479 scrollTop: jurastic_name.offset().top - 200, 3480 }, 3481 500 3482 ); 3483 } 3484 } 3485 3486 if (jurastic_phone_number.val() === "") { 3487 jurastic_phone_number 3488 .closest(".jurastic_phone_number") 3489 .find(".validate") 3490 .html("à¸à¸£à¸¸à¸à¸²à¸à¸£à¸à¸à¹à¸à¸à¸£à¹à¹à¸à¸£à¸¨à¸±à¸à¸à¹"); 3491 jurastic_phone_number 3492 .closest(".jurastic_phone_number") 3493 .addClass("error"); 3494 valid = false; 3495 if (is_scroll == 0) { 3496 is_scroll = 1; 3497 jurastic_phone_number.closest(".popup-body").animate( 3498 { 3499 scrollTop: jurastic_phone_number.offset().top - 200, 3500 }, 3501 500 3502 ); 3503 } 3504 } else if (jurastic_phone_number.val().length != 10) { 3505 jurastic_phone_number 3506 .closest(".jurastic_phone_number") 3507 .find(".validate") 3508 .html("à¸à¸£à¸¸à¸à¸²à¸à¸£à¸à¸à¹à¸à¸à¸£à¹à¹à¸à¸£à¸¨à¸±à¸à¸à¹à¹à¸«à¹à¸à¸£à¸ 10 หลัà¸"); 3509 personal_phone_number 3510 .closest(".jurastic_phone_number") 3511 .addClass("error"); 3512 valid = false; 3513 if (is_scroll == 0) { 3514 is_scroll = 1; 3515 $("html, body").animate( 3516 { 3517 scrollTop: jurastic_phone_number.offset().top - 200, 3518 }, 3519 500 3520 ); 3521 } 3522 } 3523 3524 if (jurastic_address_detail.val() === "") { 3525 valid = false; 3526 jurastic_address_detail 3527 .closest(".jurastic_address_detail") 3528 .addClass("error"); 3529 if (is_scroll == 0) { 3530 is_scroll = 1; 3531 $("html, body").animate( 3532 { 3533 scrollTop: jurastic_address_detail.offset().top - 200, 3534 }, 3535 500 3536 ); 3537 } 3538 } 3539 3540 if (jurastic_province.val() == 0) { 3541 valid = false; 3542 $("html, body").addClass("error"); 3543 if (is_scroll == 0) { 3544 is_scroll = 1; 3545 jurastic_province.closest(".popup-body").animate( 3546 { 3547 scrollTop: jurastic_province.offset().top - 200, 3548 }, 3549 500 3550 ); 3551 } 3552 } else { 3553 if (jurastic_district.val() == "") { 3554 valid = false; 3555 jurastic_district.closest(".district").addClass("error"); 3556 if (is_scroll == 0) { 3557 is_scroll = 1; 3558 $("html, body").animate( 3559 { 3560 scrollTop: jurastic_district.offset().top - 200, 3561 }, 3562 500 3563 ); 3564 } 3565 } else { 3566 if (jurastic_sub_district.val() == 0) { 3567 valid = false; 3568 jurastic_sub_district.closest(".sub-district").addClass("error"); 3569 if (is_scroll == 0) { 3570 is_scroll = 1; 3571 $("html, body").animate( 3572 { 3573 scrollTop: jurastic_sub_district.offset().top - 200, 3574 }, 3575 500 3576 ); 3577 } 3578 } 3579 } 3580 } 3581 } 3582 } 3583 3584 if (!concent.is(":checked")) { 3585 validate = false; 3586 concent.closest(".concent_2").addClass("error"); 3587 } 3588 3589 return validate; 3590} 3591 3592function getMemberData($this) { 3593 var id = $this.attr("data-mem-id"); 3594 var token = $this 3595 .closest(".row") 3596 .find("form") 3597 .find("input[name=token]") 3598 .val(); 3599 3600 $.ajax(window.location.origin + "/api/load_mem_data_view_id", { 3601 method: "GET", 3602 async: false, 3603 data: { 3604 token: token, 3605 "data-id": parseInt(id), 3606 }, 3607 beforeSend: function () { 3608 console.log("sent"); 3609 //$('.loader').show(); 3610 }, 3611 }).done(function (data) { 3612 if (data != "") { 3613 var row_el = $this 3614 .closest("body") 3615 .find(".popup-edit-profile") 3616 .find(".popup-body .box-form .row"); 3617 row_el.empty(); 3618 row_el.html(data); 3619 } 3620 }); 3621} 3622 3623function getShipAddress($this) { 3624 var id = $this.attr("data-addr-id"); 3625 var token = $this.closest("form").find("input[name=token]").val(); 3626 3627 $.ajax(window.location.origin + "/api/load_ship_addr_view_by_id", { 3628 method: "GET", 3629 async: false, 3630 data: { 3631 token: token, 3632 "data-id": parseInt(id), 3633 }, 3634 beforeSend: function () { 3635 console.log("sent"); 3636 //$('.loader').show(); 3637 }, 3638 }).done(function (data) { 3639 if (data != "") { 3640 var popup_elem = $this.closest("body").find(".popup-edit-address-login"); 3641 var row_el = popup_elem.find(".popup-body .box-form .row");
3642 var update_but_elem = popup_elem.find(".edit-addr-ship"); 3643 if ($this.hasClass("edit-addr-check-out")) { 3644 update_but_elem.addClass("edit-addr-check-out"); 3645 } else if ($this.hasClass("edit-addr-profile")) { 3646 update_but_elem.addClass("edit-addr-profile"); 3647 } 3648 row_el.empty(); 3649 row_el.html(data); 3650 $("select").selectpicker("refresh"); 3651 } 3652 }); 3653 3654 $( 3655 "input[type=text],input[type=password],input[type=email],input[type=tel]" 3656 ).on("cut copy paste", function (e) { 3657 e.preventDefault(); 3658 }); 3659} 3660 3661function getTaxData($this) { 3662 var id = $this.attr("data-addr-id"); 3663 var token = $this 3664 .closest(".box-form") 3665 .siblings("form") 3666 .find("input[name=token]"); 3667 if (token.length == 0) { 3668 var token_val = $this 3669 .closest(".box-form") 3670 .closest("form") 3671 .find("input[name=token]") 3672 .val(); 3673 } else { 3674 var token_val = $this 3675 .closest(".box-form") 3676 .siblings("form") 3677 .find("input[name=token]") 3678 .val(); 3679 } 3680 3681 $.ajax(window.location.origin + "/api/load_tax_addr_view_by_id", { 3682 method: "GET", 3683 async: false, 3684 data: { 3685 token: token_val, 3686 "data-id": parseInt(id), 3687 }, 3688 beforeSend: function () { 3689 console.log("sent"); 3690 //$('.loader').show(); 3691 }, 3692 }).done(function (data) { 3693 if (data != "") { 3694 var row_el = $this 3695 .closest("body") 3696 .find(".popup-edit-tax-invoice") 3697 .find(".popup-body .box-form"); 3698 row_el.empty(); 3699 row_el.html(data); 3700 $("select").selectpicker("refresh"); 3701 $( 3702 "input[type=text],input[type=password],input[type=email],input[type=tel]" 3703 ).on("cut copy paste", function (e) { 3704 e.preventDefault(); 3705 }); 3706 } 3707 }); 3708} 3709 3710function updateTaxAddress($this) { 3711 var frm = new FormData($this.closest("form")[0]); 3712 var pop_footer = $this.closest(".pop-footer"); 3713 var pop_body = pop_footer.siblings(".popup-body"); 3714 var box_tab_elem = pop_body.find(".box-tab"); 3715 var active_tab = box_tab_elem.find(".tab-btn.active"); 3716 var valid = true; 3717 var is_scroll = 0; 3718 3719 var address_name = pop_body.find("input[name=address_name]"); 3720 address_name.closest(".address_name").removeClass("error"); 3721 if (address_name.val() === "") { 3722 valid = false; 3723 address_name.closest(".address_name").addClass("error"); 3724 if (is_scroll == 0) { 3725 is_scroll = 1; 3726 address_name.closest(".popup-body").animate( 3727 { 3728 scrollTop: address_name.offset().top - 350, 3729 }, 3730 500 3731 ); 3732 } 3733 } 3734 3735 if (active_tab.attr("data-tab-list") == 0) { 3736 var tab_body = pop_body.find(".accor-ref-0"); 3737 var id_card_elem = tab_body.find("input[name=id_card_number]"); 3738 var first_name = pop_body.find("input[name=first_name]"); 3739 var last_name = pop_body.find("input[name=last_name]"); 3740 var personal_phone_number = pop_body.find( 3741 "input[name=personal_phone_number]" 3742 ); 3743 var personal_address_detail = pop_body.find( 3744 "input[name=personal_address_detail]" 3745 ); 3746 var personal_province = pop_body.find("select[name=personal_province]"); 3747 var personal_district = pop_body.find("select[name=personal_district]"); 3748 var personal_sub_district = pop_body.find( 3749 "select[name=personal_sub_district" 3750 ); 3751 3752 first_name.closest(".first_name").removeClass("error"); 3753 last_name.closest(".last_name").removeClass("error"); 3754 id_card_elem.closest(".id_card_number").removeClass("error"); 3755 personal_phone_number 3756 .closest(".personal_phone_number") 3757 .removeClass("error"); 3758 personal_address_detail 3759 .closest(".personal_address_detail") 3760 .removeClass("error"); 3761 personal_province.closest(".province").removeClass("error"); 3762 personal_district.closest(".district").removeClass("error"); 3763 personal_sub_district.closest(".sub-district").removeClass("error"); 3764 3765 if (!thaiIdvalidate(id_card_elem) && id_card_elem.val() != "") { 3766 valid = false; 3767 id_card_elem.closest(".id_card_number").addClass("error"); 3768 id_card_elem 3769 .closest(".id_card_number") 3770 .find(".validate") 3771 .html("รูà¸à¹à¸à¸à¹à¸¥à¸à¸à¸±à¸à¸£à¸à¸£à¸°à¸à¸²à¸à¸à¹à¸¡à¹à¸à¸¹à¸à¸à¹à¸à¸"); 3772 } else if (!thaiIdvalidate(id_card_elem) && id_card_elem.val() == "") { 3773 valid = false; 3774 id_card_elem.closest(".id_card_number").addClass("error"); 3775 id_card_elem 3776 .closest(".id_card_number") 3777 .find(".validate") 3778 .html("à¸à¸£à¸¸à¸à¸²à¸à¸£à¸à¸à¹à¸¥à¸à¸à¸±à¸à¸£à¸à¸£à¸°à¸à¸²à¸à¸"); 3779 } 3780 3781 if (first_name.val() === "") { 3782 valid = false;
3783 first_name.closest(".first_name").addClass("error"); 3784 if (is_scroll == 0) { 3785 is_scroll = 1; 3786 first_name.closest(".popup-body").animate( 3787 { 3788 scrollTop: first_name.offset().top - 850, 3789 }, 3790 500 3791 ); 3792 } 3793 } 3794 3795 if (last_name.val() === "") { 3796 valid = false; 3797 last_name.closest(".last_name").addClass("error"); 3798 if (is_scroll == 0) { 3799 is_scroll = 1; 3800 last_name.closest(".popup-body").animate( 3801 { 3802 scrollTop: last_name.offset().top - 850, 3803 }, 3804 500 3805 ); 3806 } 3807 } 3808 3809 if (personal_phone_number.val() === "") { 3810 personal_phone_number 3811 .closest(".personal_phone_number") 3812 .find(".validate") 3813 .html("à¸à¸£à¸¸à¸à¸²à¸à¸£à¸à¸à¹à¸à¸à¸£à¹à¹à¸à¸£à¸¨à¸±à¸à¸à¹"); 3814 personal_phone_number.closest(".personal_phone_number").addClass("error"); 3815 valid = false; 3816 if (is_scroll == 0) { 3817 is_scroll = 1; 3818 personal_phone_number.closest(".popup-body").animate( 3819 { 3820 scrollTop: personal_phone_number.offset().top - 850, 3821 }, 3822 500 3823 ); 3824 } 3825 } else if (personal_phone_number.val().length != 10) { 3826 personal_phone_number 3827 .closest(".personal_phone_number") 3828 .find(".validate") 3829 .html("à¸à¸£à¸¸à¸à¸²à¸à¸£à¸à¸à¹à¸à¸à¸£à¹à¹à¸à¸£à¸¨à¸±à¸à¸à¹à¹à¸«à¹à¸à¸£à¸ 10 หลัà¸"); 3830 personal_phone_number.closest(".personal_phone_number").addClass("error"); 3831 valid = false; 3832 if (is_scroll == 0) { 3833 is_scroll = 1; 3834 personal_phone_number.closest(".popup-body").animate( 3835 { 3836 scrollTop: personal_phone_number.offset().top - 850, 3837 }, 3838 500 3839 ); 3840 } 3841 } 3842 3843 if (personal_address_detail.val() === "") { 3844 valid = false; 3845 personal_address_detail 3846 .closest(".personal_address_detail") 3847 .addClass("error"); 3848 if (is_scroll == 0) { 3849 is_scroll = 1; 3850 personal_address_detail.closest(".popup-body").animate( 3851 { 3852 scrollTop: personal_address_detail.offset().top - 850, 3853 }, 3854 500 3855 ); 3856 } 3857 } 3858 3859 if (personal_province.val() == 0) { 3860 valid = false; 3861 personal_province.closest(".province").addClass("error"); 3862 if (is_scroll == 0) { 3863 is_scroll = 1; 3864 personal_province.closest(".popup-body").animate( 3865 { 3866 scrollTop: personal_province.offset().top - 850, 3867 }, 3868 500 3869 ); 3870 } 3871 } 3872 3873 if (personal_province.val() != 0 && personal_district.val() == -1) { 3874 valid = false; 3875 personal_district.closest(".district").addClass("error"); 3876 if (is_scroll == 0) { 3877 is_scroll = 1; 3878 personal_district.closest(".popup-body").animate( 3879 { 3880 scrollTop: personal_district.offset().top - 850, 3881 }, 3882 500 3883 ); 3884 } 3885 } 3886 3887 if ( 3888 personal_province.val() != 0 && 3889 personal_district.val() != -1 && 3890 personal_sub_district.val() == 0 3891 ) { 3892 valid = false; 3893 personal_sub_district.closest(".sub-district").addClass("error"); 3894 if (is_scroll == 0) { 3895 is_scroll = 1; 3896 personal_sub_districtt.closest(".popup-body").animate( 3897 { 3898 scrollTop: personal_sub_district.offset().top - 850, 3899 }, 3900 500 3901 ); 3902 } 3903 } 3904 } else if (active_tab.attr("data-tab-list") == 1) { 3905 var tab_body = pop_body.find(".accor-ref-1"); 3906 var jurastic_address_detail = pop_body.find( 3907 "input[name=jurastic_address_detail]" 3908 ); 3909 var jurastic_province = pop_body.find("select[name=jurastic_province]"); 3910 var jurastic_district = pop_body.find("select[name=jurastic_district]"); 3911 var jurastic_sub_district = pop_body.find( 3912 "select[name=jurastic_sub_district" 3913 ); 3914 var jurastic_phone_number = pop_body.find( 3915 "input[name=jurastic_phone_number]" 3916 ); 3917 var jurastic_id = pop_body.find("input[name=jurastic_id"); 3918 var jurastic_name = pop_body.find("input[name=jurastic_name"); 3919 3920 jurastic_id.closest(".jurastic_id").removeClass("error"); 3921 jurastic_name.closest(".jurastic_name").removeClass("error"); 3922 jurastic_phone_number 3923 .closest(".jurastic_phone_number") 3924 .removeClass("error"); 3925 jurastic_address_detail 3926 .closest(".jurastic_address_detail") 3927 .removeClass("error"); 3928 jurastic_province.closest(".province").removeClass("error"); 3929 jurastic_district.closest(".district").removeClass("error"); 3930 jurastic_sub_district.closest(".sub-district").removeClass("error"); 3931 3932 if (!thaiIdvalidate(jurastic_id) && jurastic_id.val() != "") { 3933 valid = false;
3934 jurastic_id.closest(".jurastic_id").addClass("error"); 3935 jurastic_id 3936 .closest(".jurastic_id") 3937 .find(".validate") 3938 .html("รูà¸à¹à¸à¸à¸«à¸¡à¸²à¸¢à¹à¸¥à¸à¹à¸¥à¸à¸à¸¹à¹à¹à¸ªà¸µà¸¢à¸ าษีà¹à¸¡à¹à¸à¸¹à¸à¸à¹à¸à¸"); 3939 } else if (!thaiIdvalidate(jurastic_id) && jurastic_id.val() == "") { 3940 valid = false; 3941 jurastic_id.closest(".jurastic_id").addClass("error"); 3942 jurastic_id 3943 .closest(".jurastic_id") 3944 .find(".validate") 3945 .html("à¸à¸£à¸¸à¸à¸²à¸à¸£à¸à¸à¸«à¸¡à¸²à¸¢à¹à¸¥à¸à¹à¸¥à¸à¸à¸¹à¹à¹à¸ªà¸µà¸¢à¸ าษี"); 3946 } 3947 3948 if (jurastic_name.val() === "") { 3949 valid = false; 3950 jurastic_name.closest(".jurastic_name").addClass("error"); 3951 if (is_scroll == 0) { 3952 is_scroll = 1; 3953 jurastic_name.closest(".popup-body").animate( 3954 { 3955 scrollTop: jurastic_name.offset().top - 850, 3956 }, 3957 500 3958 ); 3959 } 3960 } 3961 3962 if (jurastic_phone_number.val() === "") { 3963 jurastic_phone_number 3964 .closest(".jurastic_phone_number") 3965 .find(".validate") 3966 .html("à¸à¸£à¸¸à¸à¸²à¸à¸£à¸à¸à¹à¸à¸à¸£à¹à¹à¸à¸£à¸¨à¸±à¸à¸à¹"); 3967 jurastic_phone_number.closest(".jurastic_phone_number").addClass("error"); 3968 valid = false; 3969 if (is_scroll == 0) { 3970 is_scroll = 1; 3971 jurastic_phone_number.closest(".popup-body").animate( 3972 { 3973 scrollTop: jurastic_phone_number.offset().top - 850, 3974 }, 3975 500 3976 ); 3977 } 3978 } else if (jurastic_phone_number.val().length != 10) { 3979 jurastic_phone_number 3980 .closest(".jurastic_phone_number") 3981 .find(".validate") 3982 .html("à¸à¸£à¸¸à¸à¸²à¸à¸£à¸à¸à¹à¸à¸à¸£à¹à¹à¸à¸£à¸¨à¸±à¸à¸à¹à¹à¸«à¹à¸à¸£à¸ 10 หลัà¸"); 3983 personal_phone_number.closest(".jurastic_phone_number").addClass("error"); 3984 valid = false; 3985 if (is_scroll == 0) { 3986 is_scroll = 1; 3987 jurastic_phone_number.closest(".popup-body").animate( 3988 { 3989 scrollTop: jurastic_phone_number.offset().top - 850, 3990 }, 3991 500 3992 ); 3993 } 3994 } 3995 3996 if (jurastic_address_detail.val() === "") { 3997 valid = false; 3998 jurastic_address_detail 3999 .closest(".jurastic_address_detail") 4000 .addClass("error"); 4001 if (is_scroll == 0) { 4002 is_scroll = 1; 4003 jurastic_address_detail.closest(".popup-body").animate( 4004 { 4005 scrollTop: jurastic_address_detail.offset().top - 850, 4006 }, 4007 500 4008 ); 4009 } 4010 } 4011 4012 if (jurastic_province.val() == 0) { 4013 valid = false; 4014 jurastic_province.closest(".province").addClass("error"); 4015 if (is_scroll == 0) { 4016 is_scroll = 1; 4017 jurastic_province.closest(".popup-body").animate( 4018 { 4019 scrollTop: jurastic_province.offset().top - 850, 4020 }, 4021 500 4022 ); 4023 } 4024 } 4025 4026 if (jurastic_province.val() != 0 && jurastic_district.val() == -1) { 4027 valid = false; 4028 jurastic_district.closest(".district").addClass("error"); 4029 if (is_scroll == 0) { 4030 is_scroll = 1; 4031 jurastic_district.closest(".popup-body").animate( 4032 { 4033 scrollTop: jurastic_district.offset().top - 850, 4034 }, 4035 500 4036 ); 4037 } 4038 } 4039 4040 if ( 4041 jurastic_province.val() != 0 && 4042 jurastic_district.val() != -1 && 4043 jurastic_sub_district.val() == 0 4044 ) { 4045 valid = false; 4046 jurastic_sub_district.closest(".sub-district").addClass("error"); 4047 if (is_scroll == 0) { 4048 is_scroll = 1; 4049 jurastic_sub_districtt.closest(".popup-body").animate( 4050 { 4051 scrollTop: jurastic_sub_district.offset().top - 850, 4052 }, 4053 500 4054 ); 4055 } 4056 } 4057 } 4058 4059 if (valid) { 4060 $.ajax({ 4061 data: frm, 4062 type: "POST", 4063 url: window.location.origin + "/api/update_tax_address", 4064 cache: false, 4065 contentType: false, 4066 processData: false, 4067 dataType: "json", 4068 success: function (arresult) { 4069 if (arresult.rs) { 4070 reloadBillAddress($this); 4071 popout_name("popup-edit-tax-invoice"); 4072 } 4073 }, 4074 }); 4075 } 4076} 4077 4078function sendOtp(form, $this) { 4079 var frm = new FormData(form[0]); 4080 var this_elem = $this; 4081 const searchParams = new URLSearchParams(window.location.search); 4082 var order = searchParams.get("o"); 4083 $.ajax({ 4084 data: frm, 4085 type: "POST", 4086 url: window.location.origin + "/api/send_otp", 4087 cache: false, 4088 contentType: false, 4089 processData: false, 4090 dataType: "json", 4091 success: function (arresult) { 4092 if (arresult.rs) { 4093 this_elem.find("input[name=otp-token]").val(arresult.token); 4094 this_elem.find("input[name=otp-ref]").val(arresult.ref_code); 4095 this_elem.find(".otp-ref-text").html(arresult.ref_code); 4096 this_elem.find("input[name=ordernum]").val(order); 4097 } 4098 }, 4099 }); 4100} 4101 4102function verifyOtp($this) { 4103 //otp-form-element 4104 var frm = new FormData($this.closest("form")[0]); 4105 var this_elem = $this; 4106 $.ajax({ 4107 data: frm, 4108 type: "POST", 4109 url: window.location.origin + "/api/verify_otp",
4110 cache: false, 4111 contentType: false, 4112 processData: false, 4113 dataType: "json", 4114 success: function (arresult) { 4115 if (arresult.rs) { 4116 if (arresult.status) { 4117 $("p.otp-incorrect").removeClass("active"); 4118 if ($this.hasClass("register-normal")) { 4119 //base form element 4120 var form = $this.closest("body").find(".register-normal-form"); 4121 form.submit(); 4122 } else if ($this.hasClass("login-mob-popup")) { 4123 $this.closest("body").find(".pop-login-mobile").submit(); 4124 } else if ($this.hasClass("product-register")) { 4125 $this.closest("body").find(".product-register-form").submit(); 4126 } else if ($this.hasClass("guest-chk-out")) { 4127 change_step($this); 4128 popout_name("popup-otp"); 4129 } else if ($this.hasClass("chk_nor_is_login")) { 4130 change_step($this); 4131 popout_name("popup-otp"); 4132 } else if ($this.hasClass("popup-chkout-regis")) { 4133 $this.closest("body").find(".popup-chkout-regis-form").submit(); 4134 } else { 4135 const queryString = window.location.search; 4136 const urlParams = new URLSearchParams(queryString); 4137 const goto = urlParams.get("goto"); 4138 const sub = urlParams.get("sub"); 4139 if (goto) { 4140 document.getElementById("goto").value = goto; 4141 } 4142 if (sub) { 4143 document.getElementById("sub").value = sub; 4144 } 4145 $this.closest("form").submit(); 4146 } 4147 } else { 4148 $("p.otp-incorrect").addClass("active"); 4149 } 4150 } 4151 }, 4152 }); 4153} 4154 4155function articleFilter($this) { 4156 var frm = new FormData($this.closest("form")[0]); 4157 var this_elem = $this; 4158 $.ajax({ 4159 data: frm, 4160 type: "POST", 4161 url: window.location.origin + "/api/load_article_filter", 4162 cache: false, 4163 contentType: false, 4164 processData: false, 4165 dataType: "html text", 4166 success: function (data) { 4167 this_elem.closest(".container").find(".article-data").empty(); 4168 this_elem.closest(".container").find(".article-data").html(data); 4169 }, 4170 }); 4171}
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.