PageSourceSearch

https://manga-zip.my/themes/default/js/venobox.min.js?v=1.3

js manga-zip.my collected 2026-10-09 22:18:24 UTC 6,884 bytes, 210 lines download raw bytes

1window.onclick = function (event) {
2  if (
3    !$(event.target).closest(".modal-content").length &&
4    !$(event.target).closest("[data-modal]").length &&
5    !$(event.target).closest("[onclick]").length
6  ) {
7    md.close();
8  }
9  //dropdown
10  if (
11    !$(event.target).closest("[data-dropdown]").length &&
12    !$(event.target).closest(".dropdown").length
13  ) {
14    $(".dropdown").removeClass("open");
15  } else if ($(event.target).closest("[data-dropdown]").length) {
16    var evt = $(event.target).closest("[data-dropdown]");
17    $(".dropdown").removeClass("open");
18    evt.closest(".dropdown").addClass("open");
19  }
20};
21var Login = 0,
22  md = {
23    int: function () {
24      $("[data-modal]").click(function (event) {
25        event.preventDefault();
26        md.close();
27        $($(this).data("modal")).show();
28      });
29      $(".modal .close").click(function (event) {
30        event.preventDefault();
31        md.close();
32      });
33      if ($("#pwd_change").length) {
34        $('input[name="pwd_change"]').change(function () {
35          if ($(this).is(":checked") == true) {
36            $("#pwd_change").show().find("input").attr("required", true);
37          } else {
38            $("#pwd_change").hide().find("input").removeAttr("required");
39          }
40        });
41      }
42    },
43    close: function () {
44      $(".modal").hide();
45    },
46    Form: function () {
47      $("[data-action]").unbind("submit");
48      $("[data-action]").submit(function (event) {
49        let $evt = $(this);
50        let Action = $evt.data("action");
51        $evt
52          .find("[type='submit']")
53          .prop("disabled", !0)
54          .html('<i class="fa fa-circle-o-notch fa-spin"></i> Waiting...');
55        $evt.find(".help-block").remove();
56        $evt.find(".has-error").removeClass("has-error");
57
58        const Data = new FormData(this);
59        if ($evt.find('input[type="file"]').length > 0) {
60          $.each($evt.find('input[type="file"]'), function (i, tag) {
61            $.each($(tag)[0].files, function (i, file) {
62              Data.append(tag.name, file);
63            });
64          });
65        }
66        var error = [];
67        let mLoad = $("#main-loading").length ? 1 : 0;
68        if (mLoad) $("#main-loading").show();
69        $.ajax({
70          url: Action + "?__=" + Math.floor(Date.now() / 1000),
71          type: "POST",
72          data: Data,
73          cache: false,
74          processData: false,
75          contentType: false,
76          dataType: "JSON",
77          success: function (t) {
78            if (t.status == 1) {
79              if (t.ajax == "addCart") {
80                $("#order-modal").modal("hide");
81                $.toast({
82                  heading: "Awesome!",
83                  text: "Item has been added to your Cart!",
84                  icon: "success",
85                  position: "top-right",
86                });
87                $(".cart-count").text(t.count);
88                return false;
89              }
90              if (t.alert == 1) {
91                alert(t.message);
92              }
93              if (t.url) location.href = t.url;
94              else location.reload();
95            } else {
96              $.each(t.message, function (k, message) {
97                var block = $evt.find("[name='" + k + "']").parent();
98                var label =
99                  message == 1
100                    ? block.find("label").text() + " is required"
101                    : message;
102                $evt.find("[name='" + k + "']").addClass("is-invalid");
103                block.addClass("has-error");
104                if (block.hasClass("material-field")) block = block.parent();
105                block.append('<span class="help-block">' + label + "</span>");
106                $evt.find("[type='submit']").removeAttr("disabled"),
107                  $evt.find("[type='submit']").html("Resend");
108                error.push(label);
109              });
110              if (mLoad) $("#main-loading").hide();
111            }
112          },
113        }),
114          event.preventDefault();
115      });
116    },
117    auth: function () {
118      $.get(
119        "/ajax/session?__=" + Math.floor(Date.now() / 1000),
120        function (j) {
121          if (j.status) {
122            $(".member").addClass("isLogin").html(`
123          <ul>
124            <li class="dropdown">
125              <a href="#" data-dropdown="true"><i class="fa fa-user-circle"></i><span class="text"> ${j.profile}</span></a>
126              <ul class="menu">
127                <li><a href="/profile/">${j.profile}</a></li>
128                <li><a href="/following/">${j.following}</a></li>
129                <li><a href="/logout/">${j.logout}</a></li>
130              </ul>
131            </li>
132            <li class="dropdown notify-ui">
133              <a href="#" onclick="md.notify(1)" data-dropdown="true"><i class="fa fa-bell-o"></i><span data-count="0" class="tbcount">0</span></a>
134              <ul class="w300">
135                <li class="nodata">${j.nodata}</li>
136              </ul>
137            </li>
138          </ul>
139          `);
140            Login = 1;
141            md.notify();
142            setInterval(function () {
143              md.notify();
144            }, 10 * 1000);
145          }
146        },
147        "json"
148      );
149    },
150    notify: function (read) {
151      $.get(
152        "/ajax/notify" +
153          (read == 1 ? ".read" : "") +
154          "?__=" +
155          Math.floor(Date.now() / 1000),
156        function (j) {
157          if (read == 1) {
158            $(".notify-ui")
159              .find(".tbcount")
160              .data("count", 0)
161              .attr("data-count", 0);
162          } else {
163            if (j.status) {
164              $(".notify-ui")
165                .find(".tbcount")
166                .data("count", j.total)
167                .attr("data-count", j.total)
168                .text(j.total > 99 ? "99+" : j.total);
169              $(".notify-ui>ul").html(j.notify);
170            }
171          }
172        },
173        "json"
174      );
175    },
176    follow: function (evt, id) {
177      if (Login == 1) {
178        let rm = Number($(evt).data("remove"));
179        $.post(
180          "/ajax/follow?__=" + Math.floor(Date.now() / 1000),
181          { id, rm },
182          function (j) {
183            if (j.status) {
184              if (rm == 1) {
185                if ($(evt).data("rm") == 1) {
186                  $(evt).closest(".manga").remove();
187                } else {
188                  $(evt)
189                    .data("remove", 0)
190                    .removeClass("selected")
191                    .html('<i class="fa fa-heart-o"></i><span> '+lang[1]+'</span>');
192                }
193              } else {
194                $(evt)
195                  .data("remove", 1)
196                  .addClass("selected")
197                  .html('<i class="fa fa-heart"></i> <span> '+lang[2]+'</span>');
198              }
199            }
200          },
201          "json"
202        );
203      } else {
204        $("#MLogin").show();
205      }
206    },
207  };
208md.int();
209md.Form();
210md.auth();

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.