PageSourceSearch

https://www.russellhealth.com/wp-content/plugins/smg-address-book/assets/js/scripts.js?ver=1.0

js russellhealth.com collected 2026-10-04 08:29:00 UTC 28,902 bytes, 705 lines download raw bytes

1/**
2 *
3 */
4
5(function (window, $, undefined) {
6  $(document).ready(function () {
7    var load_selectWoo = true;
8    var address_book = $(
9      "select#shipping_address:visible, select#address_book:visible"
10    );
11
12    if (
13      woo_address_book.shipping_custom == "" ||
14      woo_address_book.shipping_custom == null
15    ) {
16      // Check for Selectize being used.
17      if ($.fn.selectize) {
18        if (
19          address_book.hasClass("selectized") &&
20          address_book[0] &&
21          address_book[0].selectize
22        ) {
23          load_selectWoo = false;
24        }
25      }
26
27      // SelectWoo / Select2 Enhancement if it exists.
28      if (load_selectWoo) {
29        if ($.fn.selectWoo) {
30          address_book.selectWoo();
31        } else if ($.fn.select2) {
32          address_book.select2();
33        }
34      }
35    }
36
37    if (woo_address_book.consignment_order == "yes") {
38      setTimeout(function () {
39        $("select#address_book").css("pointer-events", "none");
40      }, 1000);
41    }
42
43    if (
44      woo_address_book.shipping_custom != "" &&
45      woo_address_book.consignment_order != "yes"
46    ) {
47      var name = woo_address_book.shipping_custom;
48      $('select#address_book option:not([value="' + name + '"])').removeAttr(
49        "selected"
50      );
51      $('select#address_book option[value="' + name + '"]').attr(
52        "selected",
53        "selected"
54      );
55
56      $("select#address_book").css("pointer-events", "none");
57    }
58
59    if (
60      woo_address_book.shipping_custom != "" &&
61      woo_address_book.consignment_order == "yes"
62    ) {
63      var name = woo_address_book.shipping_custom;
64      $('select#address_book option:not([value="' + name + '"])').removeAttr(
65        "selected"
66      );
67      $('select#address_book option[value="' + name + '"]').attr(
68        "selected",
69        "selected"
70      );
71      
72      let curUrl = window.location.href;
73      if(!curUrl.includes('?address-book')) {
74        $("#shipping_first_name").attr("readonly", "readonly");
75        $("#shipping_last_name").attr("readonly", "readonly");
76        $("#shipping_company").attr("readonly", "readonly");
77        $("#shipping_address_1").attr("readonly", "readonly");
78        $("#shipping_address_2").attr("readonly", "readonly");
79        $("#shipping_country").attr("readonly", "readonly");
80        $("#shipping_city").attr("readonly", "readonly");
81        $("#shipping_state")
82          .attr("readonly", "readonly")
83          .css("pointer-events", "none");
84        $("#shipping_postcode").attr("readonly", "readonly");
85        $("select#address_book").css("pointer-events", "none");
86        $("a.button.add-new-btn-smg").hide();
87      }
88    }
89
90    /*
91     * AJAX call to delete address books.
92     */
93    $(".address_book .wc-address-book-delete").click(function (e) {
94      e.preventDefault();
95
96      $(this)
97        .closest(".wc-address-book-address")
98        .addClass("blockUI blockOverlay wc-updating");
99
100      var name = $(this).attr("id");
101
102      $.ajax({
103        url: woo_address_book.ajax_url,
104        type: "post",
105        data: {
106          action: "wc_address_book_delete",
107          name: name,
108          nonce: woo_address_book.delete_security,
109        },
110        success: function (response) {
111          $(".wc-updating").remove();
112        },
113      });
114    });
115
116    /*
117     * AJAX call to switch address to primary.
118     */
119    $(".address_book .wc-address-book-make-primary").click(function (e) {
120      e.preventDefault();
121
122      var name = $(this).attr("id");
123      var primary_address = $(
124        ".woocommerce-Addresses .u-column2.woocommerce-Address address"
125      );
126      var alt_address = $(this).parent().siblings("address");
127
128      // Swap HTML values for address and label.
129      var pa_html = primary_address.html();
130      var aa_html = alt_address.html();
131
132      alt_address.html(pa_html);
133      primary_address.html(aa_html);
134
135      primary_address.addClass("blockUI blockOverlay wc-updating");
136      alt_address.addClass("blockUI blockOverlay wc-updating");
137
138      $.ajax({
139        url: woo_address_book.ajax_url,
140        type: "post",
141        data: {
142          action: "wc_address_book_make_primary",
143          name: name,
144          nonce: woo_address_book.primary_security,
145        },
146        success: function (response) {
147          $(".wc-updating").removeClass("blockUI blockOverlay wc-updating");
148        },
149      });
150    });
151
152    /*
153     * AJAX call display address on checkout when selected.
154     */
155
156    /*$(document).on("click", ".checkout-consignment .select-shp", function (e) {
157      e.preventDefault();
158      const name = $(this).attr("name") ?? "",
159        initial_orders = $(this).attr("initial_orders"),
160        more_than_orders = $(this).attr("more_than_orders"),
161        on_hand = $(this).attr("on_hand"),
162        max_inventory = $(this).attr("max");
163
164      localStorage.setItem("initial_orders", initial_orders);
165      localStorage.setItem("more_than_orders", more_than_orders);
166      localStorage.setItem("on_hand", on_hand);
167      localStorage.setItem("max_inventory", max_inventory);
168    });*/
169
170    function shipping_checkout_field_prepop() {
171      var that = $("#address_book_field #address_book");
172      var name = $(that).val();
173
174      if (name !== undefined) {
175        if ("add_new" == name) {
176          // Clear values when adding a new address.
177          $(".shipping_address input")
178            .not($("#shipping_country"))
179            .each(function () {
180              $(this).val("");
181            });
182
183          // Set Country Dropdown.
184          // Don't reset the value if only one country is available to choose.
185          var country_input = $("#shipping_country");
186          if (
187            country_input.length > 0 &&
188            country_input.attr("readonly") !== "readonly"
189          ) {
190            country_input.val("").change();
191            $("#shipping_country_chosen").find("span").html("");
192          }
193
194          // Set state dropdown.
195          var state_input = $("#shipping_state");
196          if (
197            state_input.length > 0 &&
198            state_input.attr("readonly") !== "readonly"
199          ) {
200            state_input.val("").change();
201            $("#shipping_state_chosen").find("span").html("");
202          }
203
204          return;
205        }
206
207        if (name.length > 0) {
208          $(that)
209            .closest(".shipping_address")
210            .addClass("blockUI blockOverlay wc-updating");
211
212          var initial_orders = localStorage.getItem("initial_orders"),
213            more_than_orders = localStorage.getItem("more_than_orders"),
214            on_hand = localStorage.getItem("on_hand"),
215            max_inventory = localStorage.getItem("max_inventory");
216
217          $.ajax({
218            url: woo_address_book.ajax_url,
219            type: "post",
220            data: {
221              action: "wc_address_book_checkout_update",
222              name: name,
223              initial_orders: initial_orders,
224              more_than_orders: more_than_orders,
225              on_hand: on_hand,
226              max_inventory: max_inventory,
227              nonce: woo_address_book.checkout_security,
228            },
229            dataType: "json",
230            beforeSend: function () {
231              // setting a timeout
232              $("select#address_book").attr("disabled", true);
233              $("div.info_product").empty();
234            },
235            success: function (response) {
236              console.log("response", response);
237              $("select#address_book").attr("disabled", false);
238              // Loop through all fields incase there are custom ones.
239              /*Object.keys(response).forEach(function (key) {
240                var input = $("#" + key);
241                if (input.length > 0 && input.attr("readonly") !== "readonly") {
242                  input.val(response[key]).change();
243                }
244              });*/
245
246              if (response.validate == 1) {
247                let input = null;
248                $(document).ready(function () {
249                  input = `<p class="">To place a Replenishment Order for the product/s in your cart, please fill out each of the fields below.</p>`;
250                  $(".product_fields").append(input);
251                  if (response.productos.length == 0 || !response.productos) {
252                    $(".product_fields").hide();
253                  }
254                  if (
255                    localStorage.getItem("on_hand") != "" &&
256                    localStorage.getItem("on_hand") > 0
257                  ) {
258                    console.log("on handd");
259                    if (
260                      localStorage.getItem("max_inventory") >
261                      localStorage.getItem("on_hand")
262                    ) {
263                      console.log("work", localStorage.getItem("on_hand"));
264                      $("form.checkout.woocommerce-checkout").append(`
265                      <input type="hidden" name="consignment_type" value="I"> 
266                      `);
267                    } else if (
268                      localStorage.getItem("max_inventory") <
269                      localStorage.getItem("on_hand")
270                    ) {
271                      $("form.checkout.woocommerce-checkout").append(`
272                        <input type="hidden" name="consignment_type" value="R"> 
273                      `);
274                    }
275                  } else if (
276                    localStorage.getItem("on_hand") == "" ||
277                    localStorage.getItem("on_hand") == 0
278                  ) {
279                    $("form.checkout.woocommerce-checkout").append(`
280                      <input type="hidden" name="consignment_type" value="I"> 
281                    `);
282                  }
283                  $.each(response.productos, function (i, val) {
284                    input = `
285                      <div class="info_product">
286                      <p style="display: block">Allograft Application Log for ${val.name}</p>
287                      <p class="form-row form-row-first input-text validate-required" type_field="donor_id_consignment_field" id="donor_id_consignment_field_${i}_${val.ID}">
288                          <label for="donor_id_consignment_${i}_${val.ID}">Donor ID&nbsp;<abbr class="required" title="required">*</abbr></label>
289                          <span class="woocommerce-input-wrapper">
290                              <input type="text" class="input-text" name="data_consignment[${i}][donor_id_consignment_${i}_${val.ID}]" id="donor_id_consignment_${i}_${val.ID}" placeholder="" value="">
291                          </span>
292                      </p>
293
294                      <p class="form-row form-row-last input-text" type_field="lot_or_tissue_id_consignment" id="lot_or_tissue_id_consignment_field_${i}_${val.ID}">
295                          <label for="lot_or_tissue_id_consignment_${i}_${val.ID}">Lot# or Tissue ID&nbsp;<abbr class="required" title="required">*</abbr></label>
296                          <span class="woocommerce-input-wrapper">
297                              <input type="text" class="input-text" name="data_consignment[${i}][lot_or_tissue_id_consignment_${i}_${val.ID}]" id="lot_or_tissue_id_consignment_${i}_${val.ID}" placeholder="" value="">
298                              <label class="msg" style="color: #ff0000; display: none;">This tissue ID or Lot# was used.</label>
299                          </span>
300                      </p>
301                      <p class="form-row form-row-first input-text validate-required" type_field="provider_name_consignment" id="provider_name_consignment_field_${i}_${val.ID}">
302                          <label for="provider_name_consignment_${i}_${val.ID}">Provider Name&nbsp;<abbr class="required" title="required">*</abbr></label>
303                          <span class="woocommerce-input-wrapper">
304                              <input type="text" class="input-text" name="data_consignment[${i}][provider_name_consignment_${i}_${val.ID}]" id="provider_name_consignment" placeholder="" value="">
305                          </span>
306                      </p>
307
308                      <p class="form-row form-row-last input-text hasDatepicker validate-required" type_field="date_of_service_consignment" id="date_of_service_consignment_field_${i}_${val.ID}">
309                          <label for="date_of_service_consignment_${i}_${val.ID}">Date of Service <i>For used product only</i>&nbsp;<abbr class="required" title="required">*</abbr></label>
310                          <span class="woocommerce-input-wrapper">
311                              <input type="text" class="input-text flatpickr-input" name="data_consignment[${i}][date_of_service_consignment_${i}_${val.ID}]" id="date_of_service_consignment_${i}_${val.ID}" placeholder="" value="" readonly="readonly">
312                          </span>
313                      </p>
314                      <p class="form-row form-row-first input-text validate-required" type_field="patient_first_last_name" id="patient_first_last_name_field_${i}_${val.ID}">
315                        <label for="patient_first_last_name_consignment_${i}_${val.ID}">Patient First & Last name</i>&nbsp;<abbr class="required" title="required">*</abbr></label>
316                        <span class="woocommerce-input-wrapper">
317                            <input type="text" class="input-text" name="data_consignment[${i}][patient_first_last_name_consignment_${i}_${val.ID}]" id="patient_first_last_name_consignment_${i}_${val.ID}" placeholder="" value="">
318                        </span>
319                      </p>
320                      </div>`;
321
322                    $(document).ready(function () {
323                      $(
324                        "#date_of_service_consignment_" + i + "_" + val.ID
325                      ).flatpickr({
326                        maxDate: new Date(),
327                        minDate: "2022-01",
328                        dateFormat: "m-d-Y",
329                        locale: {
330                          firstDayOfWeek: 0,
331                        },
332                      });
333
334                      /**
335                       * Validation Tissue ID
336                       */
337                      // $("#lot_or_tissue_id_consignment_" + i + "_" + val.ID).on(
338                      //   "blur",
339                      //   function () {
340                      //     var $input = $(this);
341                      //     var wrapper = $input.closest(".form-row");
342                      //     var wrapper_label = $input.closest(
343                      //       ".form-row span.woocommerce-input-wrapper label.msg"
344                      //     );
345                      //     var lot_or_tissue_id = $input.val();
346                      //     console.log('SI ES BLUR', lot_or_tissue_id)
347                      //     /*$.post(
348                      //       smg_global.ajaxurl,
349                      //       {
350                      //         action: "validate_lot_number",
351                      //         lot_number_consignment: lot_or_tissue_id,
352                      //       },
353                      //       function (data) {
354                      //         console.log('la respuesta', data)
355                      //         if (!data) {
356                      //           wrapper
357                      //             .removeClass("woocommerce-validated")
358                      //             .addClass("woocommerce-invalid");
359                      //           wrapper_label.show();
360                      //         } else {
361                      //           wrapper
362                      //             .removeClass("woocommerce-invalid")
363                      //             .addClass("woocommerce-validated");
364                      //           wrapper_label.hide();
365                      //         }
366                      //       },
367                      //       "json"
368                      //     );*/
369                      //   }
370                      // );
371
372                      /**
373                       * Validation fields
374                       */
375
376                      $("body").on(
377                        "blur change",
378                        "#donor_id_consignment_field_" + i + "_" + val.ID,
379                        function () {
380                          var wrapper = $(this).closest(".form-row");
381                          if (
382                            $(
383                              "#donor_id_consignment_" + i + "_" + val.ID
384                            ).val() == ""
385                          ) {
386                            wrapper
387                              .removeClass("woocommerce-validated")
388                              .addClass("woocommerce-invalid");
389                          } else {
390                            wrapper
391                              .removeClass("woocommerce-invalid")
392                              .addClass("woocommerce-validated");
393                          }
394                        }
395                      );
396
397                      $("body").on(
398                        "blur change",
399                        "#provider_name_consignment_field_" + i + "_" + val.ID,
400                        function () {
401                          var wrapper = $(this).closest(".form-row");
402                          if (
403                            $(
404                              "#provider_name_consignment_" + i + "_" + val.ID
405                            ).val() == ""
406                          ) {
407                            wrapper
408                              .removeClass("woocommerce-validated")
409                              .addClass("woocommerce-invalid");
410                          } else {
411                            wrapper
412                              .removeClass("woocommerce-invalid")
413                              .addClass("woocommerce-validated");
414                          }
415                        }
416                      );
417
418                      $("body").on(
419                        "blur change",
420                        "#date_of_service_consignment_field_" +
421                          i +
422                          "_" +
423                          val.ID,
424                        function () {
425                          var wrapper = $(this).closest(".form-row");
426                          if (
427                            $(
428                              "#date_of_service_consignment_" + i + "_" + val.ID
429                            ).val() == ""
430                          ) {
431                            wrapper
432                              .removeClass("woocommerce-validated")
433                              .addClass("woocommerce-invalid");
434                          } else {
435                            wrapper
436                              .removeClass("woocommerce-invalid")
437                              .addClass("woocommerce-validated");
438                          }
439                        }
440                      );
441
442                      $(document).on(
443                        "blur change",
444                        "#patient_first_last_name_consignment_" +
445                          i +
446                          "_" +
447                          val.ID,
448                        function () {
449                          var self = $(this),
450                            wrapper = self.closest(".form-row");
451                          if (self.val() != "") {
452                            wrapper
453                              .removeClass("woocommerce-invalid")
454                              .addClass("woocommerce-validated");
455                          } else {
456                            wrapper
457                              .removeClass("woocommerce-validated")
458                              .addClass("woocommerce-invalid");
459                          }
460                        }
461                      );
462                    });
463
464                    $(".product_fields").append(input);
465                  });
466                });
467
468                $(".order_consignment").show();
469                $("#last_order_id_consignment").val(response.order);
470                $("#type_order_consignment").val(
471                  response.type_order_consignment
472                );
473
474                $wrapper = $(".form-row");
475                if (woo_address_book.consignment_order == "yes") {
476                  $wrapper.each(function () {
477                    var self = $(this),
478                      id = self.attr("id");
479
480                    if (id == "shipping_first_name_field") {
481                      self
482                        .removeClass("woocommerce-invalid")
483                        .addClass("woocommerce-validated");
484                    }
485
486                    if (id == "address_book_field") {
487                      self
488                        .removeClass("woocommerce-invalid")
489                        .addClass("woocommerce-validated");
490                    }
491
492                    if (id == "shipping_last_name_field") {
493                      self
494                        .removeClass("woocommerce-invalid")
495                        .addClass("woocommerce-validated");
496                    }
497
498                    if (id == "shipping_company_field") {
499                      self
500                        .removeClass("woocommerce-invalid")
501                        .addClass("woocommerce-validated");
502                    }
503
504                    if (id == "shipping_address_1_field") {
505                      self
506                        .removeClass("woocommerce-invalid")
507                        .addClass("woocommerce-validated");
508                    }
509
510                    if (id == "shipping_city_field") {
511                      $(".form-row#shipping_city_field")
512                        .removeClass("woocommerce-invalid")
513                        .addClass("woocommerce-validated");
514                      self
515                        .removeClass("woocommerce-invalid")
516                        .addClass("woocommerce-validated");
517                    }
518
519                    if (id == "shipping_state_field") {
520                      setTimeout(function () {
521                        //$('.form-row#shipping_state_field').removeClass('validate-state');
522                        $(".form-row#shipping_state_field")
523                          .removeClass("woocommerce-invalid")
524                          .addClass("woocommerce-validated");
525                        self
526                          .removeClass("woocommerce-invalid")
527                          .addClass("woocommerce-validated");
528                      }, 1500);
529                    }
530
531                    if (id == "shipping_postcode_field") {
532                      self
533                        .removeClass("woocommerce-invalid")
534                        .addClass("woocommerce-validated");
535                    }
536
537                    if (id == "shipping_email_field") {
538                      self
539                        .removeClass("woocommerce-invalid")
540                        .addClass("woocommerce-validated");
541                    }
542                  });
543                }
544              } else {
545                $(".order_consignment").hide();
546                $("#last_order_id_consignment").val("");
547                $("#type_order_consignment").val(
548                  response.type_order_consignment
549                );
550
551                $("form.checkout.woocommerce-checkout").append(`
552                  <input type="hidden" name="consignment_type" value="C"> 
553                `);
554
555                $wrapper = $(".form-row");
556                if (woo_address_book.consignment_order == "yes") {
557                  $wrapper.each(function () {
558                    var self = $(this),
559                      id = self.attr("id");
560
561                    if (id == "shipping_first_name_field") {
562                      self
563                        .removeClass("woocommerce-invalid")
564                        .addClass("woocommerce-validated");
565                    }
566
567                    if (id == "address_book_field") {
568                      self
569                        .removeClass("woocommerce-invalid")
570                        .addClass("woocommerce-validated");
571                    }
572
573                    if (id == "shipping_last_name_field") {
574                      self
575                        .removeClass("woocommerce-invalid")
576                        .addClass("woocommerce-validated");
577                    }
578
579                    if (id == "shipping_company_field") {
580                      self
581                        .removeClass("woocommerce-invalid")
582                        .addClass("woocommerce-validated");
583                    }
584
585                    if (id == "shipping_address_1_field") {
586                      self
587                        .removeClass("woocommerce-invalid")
588                        .addClass("woocommerce-validated");
589                    }
590
591                    if (id == "shipping_city_field") {
592                      $(".form-row#shipping_city_field")
593                        .removeClass("woocommerce-invalid")
594                        .addClass("woocommerce-validated");
595                      self
596                        .removeClass("woocommerce-invalid")
597                        .addClass("woocommerce-validated");
598                    }
599
600                    if (id == "shipping_state_field") {
601                      setTimeout(function () {
602                        //$('.form-row#shipping_state_field').removeClass('validate-state');
603                        $(".form-row#shipping_state_field")
604                          .removeClass("woocommerce-invalid")
605                          .addClass("woocommerce-validated");
606                        self
607                          .removeClass("woocommerce-invalid")
608                          .addClass("woocommerce-validated");
609                      }, 1500);
610                    }
611
612                    if (id == "shipping_postcode_field") {
613                      self
614                        .removeClass("woocommerce-invalid")
615                        .addClass("woocommerce-validated");
616                    }
617
618                    if (id == "shipping_email_field") {
619                      self
620                        .removeClass("woocommerce-invalid")
621                        .addClass("woocommerce-validated");
622                    }
623                  });
624                }
625              }
626
627              // Set Country Dropdown.
628              var country_input = $("#shipping_country");
629              if (
630                country_input.length > 0 &&
631                country_input.attr("readonly") !== "readonly"
632              ) {
633                if (
634                  country_input.hasClass("selectized") &&
635                  country_input[0] &&
636                  country_input[0].selectize
637                ) {
638                  country_input[0].selectize.setValue(
639                    response.shipping_country
640                  );
641                } else {
642                  country_input.val(response.shipping_country).change();
643                  $("#shipping_country_chosen")
644                    .find("span")
645                    .html(response.shipping_country_text);
646                }
647              }
648
649              // Set state dropdown.
650              var state_input = $("#shipping_state");
651              if (
652                state_input.length > 0 &&
653                state_input.attr("readonly") !== "readonly"
654              ) {
655                if (
656                  state_input.hasClass("selectized") &&
657                  state_input[0] &&
658                  state_input[0].selectize
659                ) {
660                  state_input[0].selectize.setValue(response.shipping_state);
661                } else {
662                  state_input.val(response.shipping_state).change();
663                  var stateName = $(
664                    '#shipping_state option[value="' +
665                      response.shipping_state +
666                      '"]'
667                  ).text();
668                  $("#s2id_shipping_state")
669                    .find(".select2-chosen")
670                    .html(stateName)
671                    .parent()
672                    .removeClass("select2-default");
673                }
674              }
675
676              // Remove loading screen.
677              $(".shipping_address").removeClass(
678                "blockUI blockOverlay wc-updating"
679              );
680            },
681          });
682        }
683      }
684    }
685
686    shipping_checkout_field_prepop();
687
688    $("#address_book_field #address_book").change(function () {
689      shipping_checkout_field_prepop();
690    });
691
692    const input = document.querySelectorAll("input");
693    const label = document.querySelectorAll(".sms");
694    input.forEach((el, index) => {
695      el.addEventListener("keydown", function () {
696        console.log(this.nextElementSibling);
697        if (el.value !== "") {
698          this.nextElementSibling.classList.add("active");
699        } else {
700          this.nextElementSibling.classList.remove("active");
701        }
702      });
703    });
704  });
705})(window, jQuery);

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.