PageSourceSearch

https://www.fomac.co.id/js/scriptFomac-v2.6.4.min.js?v=1.1.0

js fomac.co.id collected 2026-10-09 04:24:45 UTC 80,676 bytes, 1,486 lines download raw bytes

1function data_statistic(a, e) {
2    $.ajax({ type: "POST", url: base_url + "data-statistic", data: "statistic_name=" + a + "&statistic_detail=" + e });
3}
4
5$(document).ready(function () {
6    $(window).bind("scroll", function () {
7        if ($(".headerNav").length == 0) return;
8        $(".headerNav").offset().top;
9        $(window).scrollTop() > 131 ? ($(".headerNav").addClass("sticky-fix-top"), $(".sticky-navbar-xs").removeClass("hidden")) : ($(".headerNav").removeClass("sticky-fix-top"), $(".sticky-navbar-xs").addClass("hidden"));
10    }), $(".navbar-collapse-field").css("max-height", function () {
11        return $(window).height() - 60;
12    }),
13        $(document).on("click", "#btn-search-mob", function (e) {
14            e.preventDefault();
15
16            var keyword = $("input[name=keyword-mob]").val();
17            var category = $("select[name=category] option:selected").val();
18
19            if (keyword == "") {
20                alert("Masukkan 'Kata Kunci' Pencarian Anda");
21                return;
22            }
23
24            var url = base_url + "cari-produk/?q=" + encodeURIComponent(keyword);
25
26            if (category) {
27                url += "&c=" + encodeURIComponent(category);
28            }
29
30            window.location.href = url;
31        });
32    $(document).on("keypress", "#form-search input[name=keyword-mob]", function (a) {
33        if (a.preventDefault, 13 == a.keyCode || 13 == a.which) return $("#btn-search-mob").click(), false;
34    }),
35        $(document).on("click", "#btn-search", function (e) {
36            e.preventDefault();
37
38            var keyword = $("input[name=keyword]").val();
39            var category = $("select[name=category] option:selected").val();
40
41            if (keyword == "") {
42                alert("Masukkan 'Kata Kunci' Pencarian Anda");
43                return;
44            }
45
46            var url = base_url + "cari-produk/?q=" + encodeURIComponent(keyword);
47
48            if (category) {
49                url += "&c=" + encodeURIComponent(category);
50            }
51
52            window.location.href = url;
53        });
54    $(document).on("keypress", "#form-search input[name=keyword]", function (a) {
55        if (a.preventDefault, 13 == a.keyCode || 13 == a.which) return $("#btn-search").click(), false;
56    });
57}),
58    $(document).ready(function () {
59        $(document).on("click", ".get_statistic", function (a) {
60            data_statistic($(this).attr("statistic-name"), $(this).attr("statistic-detail"));
61        });
62    }),
63    $(document).ready(function () {
64        $(document).on("click", ".btn-play-video", function () {
65            var a = $(this).attr("data-triger");
66            $(".indexVideo-youtube[video-label=" + a + "]").each(function () {
67                var a = $(this).attr("src");
68                $(this).attr("src", a + "?autoplay=1");
69            });
70        }),
71            $(document).on("click", ".btn-stop-video", function () {
72                var a = $(this).attr("data-action");
73                $(".indexVideo-youtube[video-label=" + a + "]").each(function () {
74                    var a = (a = $(this).attr("src")).replace("?autoplay=1", "");
75                    $(this).attr("src", a);
76                });
77            });
78    }),
79    $(document).ready(function () {
80        $("#form-subscribe").validate({
81            submitHandler: function () {
82                var a = $("#form-subscribe"), e = $("input[name=name]", a), n = $("input[name=email]", a), t = $(".g-recaptcha", a), r = n.val();
83                $.ajax({
84                    type: "POST", url: base_url + "home/subscribe", data: "name=" + e.val() + "&email=" + n.val() + "&captcha=" + grecaptcha.getResponse(), beforeSend: function () {
85                        loader.show();
86                    }, success: function (e) {
87                        loader.fadeOut(), "success" == e ? (a.trigger("reset"), alert_info("Terima Kasih. Email Anda telah terdaftar."), data_statistic("subscribe", r)) : "error" == e ? (a.trigger("reset"), alert_info("Data email Anda sudah terdaftar di database kami.")) : "errorCaptcha" == e ? reCaptcha_session_verf(t) : window.location.reload(), reCaptcha_session_off();
88                    }
89                });
90            }
91        });
92    }),
93    $(document).ready(function () {
94        $(document).on("change", "#filter-sub-category", function () {
95            "" == $(this).val() ? $(this).stop() : window.location = $(this).val();
96        });
97    }),
98    $(document).ready(function () {
99        $(".form-req-download-catalog").validate({
100            submitHandler: function () {
101                var a = $(".form-req-download-catalog"), e = $("input[name=email]", a);
102                $.ajax({
103                    type: "POST", url: base_url + "catalog/request_download", data: "email=" + e.val(), beforeSend: function () {
104                        loader.show();
105                    }, success: function (e) {
106                        loader.fadeOut(), a.trigger("reset"), a.hide(), $(".catalog .desc .form-alert").fadeIn();
107                    }
108                });
109            }
110        }), $("#form-brochure").validate({
111            submitHandler: function () {
112                var a = $("#form-brochure"), e = $("input[name=email]", a), n = $("input[name=req_type]", a);
113                $.ajax({
114                    type: "POST", url: base_url + "catalog/request_download", data: "email=" + e.val() + "&req_type=" + n.val(), beforeSend: function () {
115                        loader.show();
116                    }, success: function (e) {
117                        loader.fadeOut(), a.trigger("reset"), a.hide(), $("#form-brochure-collapse .form-alert").fadeIn();
118                    }
119                });
120            }
121        }),
122            $(document).on("click", ".download-catalog", function () {
123                var a = $(this).attr("label");
124                window.location = base_url + "catalog/get_" + a;
125            });
126    }),
127    $(document).ready(function () {
128        $(document).on("click", "#btn-form-contact", function (a) {
129            a.preventDefault();
130            var e = $("#form-contact input[name=name]"), n = $("#form-contact input[name=email]"), t = $("#form-contact input[name=phone_number]"), r = $("#form-contact input[name=subject]"), o = $("#form-contact textarea[name=message]"), i = $("body").offset().top + 165;
131            1 == ("" == e.val() ? (alert("Mohon mengisi kolom yang masih kosong"), e.focus(), false) : "" == n.val() ? (alert("Mohon mengisi kolom yang masih kosong"), n.focus(), false) : "" == t.val() ? (alert("Mohon mengisi kolom yang masih kosong"), t.focus(), false) : "" == r.val() ? (alert("Mohon mengisi kolom yang masih kosong"), r.focus(), false) : "" != o.val() || (alert("Mohon mengisi kolom yang masih kosong"), o.focus(), false)) && $.ajax({
132                type: "POST", url: base_url + "Contact/email", data: "name=" + e.val() + "&email=" + n.val() + "&phone_number=" + t.val() + "&subject=" + r.val() + "&message=" + o.val() + "&captcha=" + grecaptcha.getResponse(), beforeSend: function () {
133                    loader.fadeIn(1e3);
134                }, success: function (a) {
135                    loader.fadeOut(1e3), $("#form-contact").trigger("reset"), $("#respon-email-process").fadeIn(800).text(a), $("html,body").animate({ scrollTop: Math.round($("#respon-email-process").offset().top - i) }, 2e3);
136                }
137            });
138        });
139    }),
140    $(document).ready(function () {
141        $(document).on("click", "button[name=login]", function () {
142            var a = $("#login input[name=email]").val(), e = $("#login input[name=password]").val(), n = $(this).attr("statistic-name"), t = a;
143            $("#login").validate({
144                rules: { email: { required: true }, password: { required: true } }, submitHandler: function (r) {
145                    $.ajax({
146                        type: "POST", url: base_url + "login", data: "email=" + a + "&password=" + e, beforeSend: function () {
147                            $(".alert-userverf[data-verf=login]").hide();
148                        }, success: function (a) {
149                            "error" == a ? $(".alert-userverf[data-verf=login").fadeIn() : (data_statistic(n, t), window.location.reload());
150                        }
151                    });
152                }
153            });
154        }),
155            $(document).on("click", "#btn-verf_resetpassword", function (a) {
156                a.preventDefault();
157                var e = $("#verf_resetpassword input[name=email]").val(), n = $("#verf_resetpassword input[name=no_hp]").val();
158                $.ajax({
159                    type: "POST", url: base_url + "request-reset-password", data: "email=" + e + "&no_hp=" + n, beforeSend: function () {
160                        loader.show();
161                    }, success: function (a) {
162                        "error" == a ? (loader.fadeOut(800), $(".alert-form[data-verf=req_resetpassword]").fadeIn()) : window.location = base_url;
163                    }
164                });
165            }),
166            $(document).on("click", "#btn-set_resetpassword", function (a) {
167                a.preventDefault();
168                var e = $("#set_resetpassword input[name=email]"), n = $("#set_resetpassword input[name=password]"), t = $("#set_resetpassword input[name=cfm-password]");
169                n.val() == t.val() ? $.ajax({
170                    type: "POST", url: base_url + "resetpassword", data: "email=" + e.val() + "&password=" + n.val(), beforeSend: function () {
171                        loader.fadeIn(800);
172                    }, success: function (a) {
173                        window.location = base_url;
174                    }
175                }) : ($(".alert-form[data-verf=set_resetpassword]").fadeIn(), t.focus());
176            }),
177            $(document).on("change", "#regis input[name=email]", function (a) {
178                a.preventDefault();
179                var e = $("#regis input[name=email]");
180                $.ajax({
181                    type: "POST", url: base_url + "email-check", data: "email=" + e.val(), success: function (a) {
182                        "exist" == a && (alert("Maaf, email telah terdaftar sebagai akun Fomac Indonesia."), e.val(""), e.focus());
183                    }
184                });
185            }),
186            $(document).on("click", "#btn-regis", function (a) {
187                a.preventDefault();
188                var e = $("#regis input[name=f_name]"), n = $("#regis input[name=l_name]"), t = $("#regis input[name=gender]:checked"), r = $("#regis input[name=email]"), o = $("#regis input[name=no_hp]"), i = $("#regis input[name=password]"), s = $("#regis input[name=cfm-password]"), l = $(this).attr("statistic-name"), d = r.val();
189                1 == ("" == e.val() ? (alert("Kolom 'Nama Depan' tidak boleh kosong"), e.focus(), false) : "" == n.val() ? (alert("Kolom 'Nama Belakang' tidak boleh kosong"), n.focus(), false) : 0 == t.length ? (alert("Silahkan pilih jenis kelamin anda"), $("#regis input[name=gender]").focus(), false) : "" == r.val() ? (alert("Kolom 'Email' tidak boleh kosong"), r.focus(), false) : "" == o.val() ? (alert("Kolom 'Nomer Ponsel' tidak boleh kosong"), o.focus(), false) : "" == i.val() ? (alert("Kolom 'Password' tidak boleh kosong"), i.focus(), false) : "" == s.val() ? (alert("Mohon mengkonfirmasi ulang password yang anda masukkan"), i.focus(), false) : i.val() == s.val() || (alert("Konfirmasi ulang password yang anda masukkan tidak sesuai"), s.focus(), false)) && $.ajax({
190                    type: "POST", url: base_url + "new-register", data: "f_name=" + e.val() + "&l_name=" + n.val() + "&gender=" + t.val() + "&email=" + r.val() + "&no_hp=" + o.val() + "&password=" + i.val() + "&captcha=" + grecaptcha.getResponse(), beforeSend: function () {
191                        loader.fadeIn(1e3);
192                    }, success: function (a) {
193                        "errorCaptcha" == a ? window.location = base_url : "error" == a ? (alert("'Error Register'. Silahkan dicoba kembali."), loader.fadeOut(1e3)) : (data_statistic(l, d), window.location = base_url + "akun-saya/?p=verifikasi-akun");
194                    }
195                });
196            });
197    }),
198
199    $(document).ready(function () {
200        $("#form-warranty-1 input[name=nama_produk]").autocomplete({
201            source: "https://www.siniservice.id/brand/getproduct/?",
202            position: {
203                collision: "flipfit"
204            },
205        });
206
207
208        $("#warranty-0").validate({
209            rules: {
210                // nomer_garansi: {
211                //     required: true,
212                //     maxlength: 35
213                // },
214                email: {
215                    required: true,
216                    email: true
217                },
218                no_handphone: {
219                    required: true,
220                    maxlength: 15,
221                    number: true
222                },
223                nomer_seri: {
224                    required: true,
225                    maxlength: 35
226                },
227                nama_produk: {
228                    required: true,
229                    maxlength: 150
230                },
231                model: {
232                    required: true,
233                    maxlength: 100
234                },
235                tanggal_pembelian: {
236                    required: true,
237                    date: true
238                },
239                nama: {
240                    required: true,
241                    maxlength: 50
242                },
243                alamat: {
244                    required: true,
245                    maxlength: 250
246                },
247                province: {
248                    required: true
249                },
250                regency: {
251                    required: true
252                },
253                district: {
254                    required: true
255                },
256                village: {
257                    required: true
258                },
259                post_code: {
260                    required: true
261                },
262                invoice: {
263                    required: true,
264                    extension: "jpg|jpeg|png",
265                }
266            },
267            messages: {
268                // nomer_garansi: {
269                //     required: 'Nomor garansi wajib diisi'
270                // },
271                email: {
272                    required: 'Email wajib diisi',
273                    email: 'Format email tidak valid'
274                },
275                no_handphone: {
276                    required: 'Nomor handphone wajib diisi',
277                    maxlength: 'Nomor handphone maksimal 15 digit',
278                    number: 'Nomor handphone harus berupa angka'
279                },
280                nomer_seri: {
281                    required: 'Nomor seri wajib diisi'
282                },
283                nama_produk: {
284                    required: 'Nama produk wajib diisi'
285                },
286                model: {
287                    required: 'Model wajib diisi'
288                },
289                tanggal_pembelian: {
290                    required: 'Tanggal pembelian wajib diisi',
291                    date: 'Format tanggal tidak valid'
292                },
293                nama: {
294                    required: 'Nama wajib diisi'
295                },
296                alamat: {
297                    required: 'Alamat wajib diisi'
298                },
299                province: {
300                    required: 'Provinsi wajib dipilih'
301                },
302                regency: {
303                    required: 'Kabupaten/Kota wajib dipilih'
304                },
305                district: {
306                    required: 'Kecamatan wajib dipilih'
307                },
308                village: {
309                    required: 'Kelurahan wajib dipilih'
310                },
311                post_code: {
312                    required: 'Kode Pos wajib dipilih'
313                },
314                invoice: {
315                    required: "Silahkan pilih gambar terlebih dahulu.",
316                    extension: "Format gambar salah.",
317                }
318            },
319
320            submitHandler: function (a) {
321                const nomerSeri = $("#warranty-data input[name=nomer_seri]").val();
322                console.log('nomerSeri', nomerSeri);
323                $("#form-warranty-0").hide()
324                $("#warranty-data").removeClass('d-none')
325                $("#warranty-data").fadeIn()
326                $("#warranty-data input[name=nomer_garansi]").val("FM-" + nomerSeri);
327                $("#warranty-data input[name=email]").val($("#warranty-0 input[name=email]").val())
328                $("#warranty-data input[name=no_handphone]").val($("#warranty-0 input[name=no_handphone]").val())
329                $("#warranty-data input[name=nomer_seri]").val($("#warranty-0 input[name=nomer_seri]").val())
330                $("#warranty-data input[name=nama_produk]").val(window.product_name)
331                $("#warranty-data input[name=model]").val($("#warranty-0 input[name=model]").val())
332                $("#warranty-data input[name=tanggal_pembelian]").val($("#warranty-0 input[name=tanggal_pembelian]").val())
333                $("#warranty-data input[name=nama]").val($("#warranty-0 input[name=nama]").val())
334                $("#warranty-data textarea[name=alamat]").val($("#warranty-0 textarea[name=alamat]").val())
335                $("#warranty-data input[name=province]").val(window.province)
336                $("#warranty-data input[name=regency]").val(window.regency)
337                $("#warranty-data input[name=district]").val(window.district)
338                $("#warranty-data input[name=village]").val(window.village)
339                $("#warranty-data input[name=post_code]").val(window.post_code)
340                $("#warranty-data input[name=invoice_name]").val($("#warranty-0 input[name=invoice]").val())
341            }
342        });
343        $(document).on("click", "#back-warranty-0", function () {
344            $("#form-warranty-0").fadeIn()
345            $("#warranty-data").fadeOut()
346        })
347        $(document).on("click", "#warranty-data #send", function (a) {
348            a.preventDefault();
349
350            const buktiInvoiceFile = $("#warranty-0 input[name=invoice]")[0].files[0];
351
352            const nomerSeri = $("#warranty-data input[name=nomer_seri]").val();
353
354            const formData = new FormData();
355            formData.append("nomor_garansi", "FM-" + nomerSeri);
356            formData.append("nama", $("#warranty-data input[name=nama]").val());
357            formData.append("email", $("#warranty-data input[name=email]").val());
358            formData.append("handphone", $("#warranty-data input[name=no_handphone]").val());
359            formData.append("alamat", $("#warranty-data textarea[name=alamat]").val());
360            formData.append("provinsi", $("#warranty-data input[name=province]").val());
361            formData.append("kota", $("#warranty-data input[name=regency]").val());
362            formData.append("kecamatan", $("#warranty-data input[name=district]").val());
363            formData.append("kelurahan", $("#warranty-data input[name=village]").val());
364            formData.append("kode_pos", $("#warranty-data input[name=post_code]").val());
365            formData.append("brand", "Fomac");
366            formData.append("nama_mesin", $("#warranty-data input[name=nama_produk]").val());
367            formData.append("model", $("#warranty-data input[name=model]").val());
368            formData.append("nomor_seri_mesin", $("#warranty-data input[name=nomer_seri]").val());
369            formData.append("tanggal_pembelian", $("#warranty-data input[name=tanggal_pembelian]").val().replaceAll("/", "-"));
370            formData.append("bukti_invoice", buktiInvoiceFile);
371
372            let ul = $("#warranty-data-notif");
373            ul.empty();
374
375            $.ajax({
376                type: "POST",
377                url: "https://www.siniservice.id/api/warranty",
378                data: formData,
379                processData: false,
380                contentType: false,
381                beforeSend: function () {
382                    loader.fadeIn();
383                },
384                complete: function () {
385                    loader.fadeOut();
386                },
387                success: function (res) {
388                    if (res.status === "success") {
389                        $("#warranty-data").fadeOut()
390                        $("#form-warranty-4").fadeIn()
391                        $("#form-warranty-4 .success").fadeIn()
392                        alert_success(res.message);
393                        $("html, body").animate({ scrollTop: 0 });
394                    } else {
395                        alert_error(res.message);
396                        ul.append(`<li>${res.message}</li>`);
397                        $("html, body").animate({ scrollTop: 0 });
398                    }
399                },
400                error: function (err) {
401                    if (err.status === 400) {
402                        let errors = err.responseJSON.errors;
403                        for (let key in errors) {
404                            ul.append(`<li>${errors[key]}</li>`);
405                        }
406                        alert_error("Terjadi kesalahan: " + err.responseJSON.message);
407                    } else {
408                        alert_error("Terjadi kesalahan: " + err.status);
409                    }
410                    $("html, body").animate({ scrollTop: 0 });
411                }
412            });
413        });
414
415    });
416$(document).ready(function () {
417    $(document).on("click", "#btn-edit-data-personal", function (a) {
418        a.preventDefault();
419        var e = $("#edit-data-personal input[name=no_hp]"),
420            n = $("#edit-data-personal input[name=email]"),
421            t = $("#edit-data-personal input[name=password]");
422        1 == ("" == e.val() ? (alert("Mohon mengisi kolom yang masih kosong"),
423            e.focus(),
424            false) : "" == n.val() ? (alert("Mohon mengisi kolom yang masih kosong"),
425                n.focus(),
426                false) : "" != t.val() || (alert("Mohon mengisi kolom yang masih kosong"),
427                    t.focus(),
428                    false)) && $.ajax({
429                        type: "POST",
430                        url: base_url + "edit-data-personal",
431                        data: "no_hp=" + e.val() + "&email=" + n.val() + "&password=" + t.val(),
432                        beforeSend: function () {
433                            loader.fadeIn(1e3);
434                        },
435                        success: function (a) {
436                            window.location.reload();
437                        }
438                    });
439    }),
440        $(document).on("click", ".btn-address", function (a) {
441            a.preventDefault();
442            var e = $(this).attr("data-label"), n = $(".form-address[data-form=" + e + "] textarea[name=address]"), t = $(".form-address[data-form=" + e + "] select[name=district] option:selected"), r = $(".form-address[data-form=" + e + "] select[name=regency] option:selected"), o = $(".form-address[data-form=" + e + "] select[name=province] option:selected"), i = $(".form-address[data-form=" + e + "] input[name=post_code]");
443            1 == ("" == n.val() ? (alert("Mohon mengisi kolom yang masih kosong"), n.focus(), false) : 0 == o.val() ? (alert("Silahkan pilih Provinsi Anda"), $(".form-address select[name=province]").focus(), false) : 0 == r.val() ? (alert("Silahkan pilih Kota / Kabupaten Anda"), $(".form-address select[name=regency]").focus(), false) : 0 == t.val() ? (alert("Silahkan pilih Kecamatan Anda"), $(".form-address select[name=district]").focus(), false) : "" != i.val() || (alert("Mohon mengisi kolom yang masih kosong"), i.focus(), false)) && $.ajax({
444                type: "POST", url: base_url + "submit-address", data: "label=" + e + "&address=" + n.val() + "&district=" + t.val() + "&regency=" + r.val() + "&province=" + o.val() + "&post_code=" + i.val(), beforeSend: function () {
445                    loader.fadeIn(1e3);
446                }, success: function (a) {
447                    window.location.reload();
448                }
449            });
450        }),
451        $(document).on("click", "#btn-change-pass", function (a) {
452            a.preventDefault();
453            var e = $("#change-pass input[name=old-password]"), n = $("#change-pass input[name=new-password]"), t = $("#change-pass input[name=cfm-new-password]");
454            1 == ("" == e.val() ? (alert("Mohon mengisi kolom yang masih kosong"), e.focus(), false) : "" == n.val() ? (alert("Mohon mengisi kolom yang masih kosong"), n.focus(), false) : t.val() == n.val() || (alert("Konfirmasi ulang password yang anda masukkan tidak sesuai"), t.focus(), false)) && $.ajax({
455                type: "POST", url: base_url + "change-password", data: "old_pass=" + e.val() + "&new_pass=" + n.val(), beforeSend: function () {
456                    loader.fadeIn(1e3);
457                }, success: function (a) {
458                    "error" == a ? (alert("Anda salah memasukkan password lama Anda"), loader.fadeOut(1e3), e.focus()) : window.location.reload();
459                }
460            });
461        }),
462        $(document).on("change", "#request-service input[name=model]", function (a) {
463            a.preventDefault(), $.ajax({
464                type: "POST", url: base_url + "product-name", data: "model=" + $(this).val(), success: function (a) {
465                    $("#request-service input[name=type]").val(a);
466                }
467            });
468        }),
469        $(document).on("change", "#request-service input[name=user_address]:checked", function (a) {
470            a.preventDefault(), $.ajax({
471                type: "POST", url: base_url + "alamat-user", data: "label=" + $(this).val(), success: function (a) {
472                    $("#request-service textarea[name=address]").val(a).fadeIn();
473                }
474            });
475        }),
476        $(document).on("change", "#request-service input[name=promo_code]", function (a) {
477            a.preventDefault();
478            var e = $("#request-service input[name=promo_code]");
479            $.ajax({
480                type: "POST", url: base_url + "coupon-service-verf", data: "promo_code=" + e.val(), beforeSend: function () {
481                    loader.show();
482                }, success: function (a) {
483                    "not_valid" == a ? (alert_info("Maaf Kode Promo Tidak Terdaftar"), e.val(""), e.focus()) : "error" == a ? (alert_info("Maaf Kode Promo Sudah Tidak Berlaku"), e.val(""), e.focus()) : "success" == a && alert_success("Selamat Anda mendapatkan promo " + e.val().toUpperCase()), loader.fadeOut();
484                }
485            });
486        }), $("#request-service").validate({
487            rules: { user_address: { required: true }, image: { extension: "jpg|jpeg", filesize: 5e5 } }, messages: { user_address: { required: "Pilih alamat service." }, image: { extension: "File Type tidak sesuai." } }, submitHandler: function (a) {
488                return $.ajax({
489                    type: "POST", url: base_url + "permintaan-service", data: new FormData(a), contentType: false, processData: false, cache: false, beforeSend: function () {
490                        loader.show();
491                    }, success: function (a) {
492                        "err_image" == a ? alert_error("'Error' - Gagal Upload Gambar") : "error" == a ? ($("#request-service").trigger("reset"), $("#request-service textarea[name=address]").hide(), alert_error("'Error' - Mohon dicoba kembali")) : "success" == a && ($("#request-service").trigger("reset"), $("#request-service textarea[name=address]").hide(), alert_success("'Success' - Permintaan Service Anda Akan Kami Proses")), loader.fadeOut();
493                    }
494                }), false;
495            }
496        }),
497        $(document).on("click", "#btn-account-verf", function (a) {
498            a.preventDefault();
499            var e = $("#account-verf input[name=account-verf]");
500            1 == ("" != e.val() || (alert("Masukkan kode verifikasi Anda"), e.focus(), false)) && $.ajax({
501                type: "POST", url: base_url + "customer-verification", data: "verf_code=" + e.val(), beforeSend: function () {
502                    loader.fadeIn(1e3);
503                }, success: function (a) {
504                    "error" == a ? (alert("Kode verifikasi Anda SALAH. Mohon diperiksa kembali."), loader.fadeOut(1e3)) : window.location.reload();
505                }
506            });
507        });
508}),
509    $(document).ready(function () {
510        $(document).on("click", "#btn-buy", function (a) {
511            a.preventDefault();
512            var e = $(".product-details[name=id]"), n = $(".product-details[name=category]"), t = $(".product-details[name=sub_category]"), r = $(".product-details[name=product_name]"), o = $(".product-details[name=product_model]"), i = $(".product-details[name=image]"), s = $(".product-details[name=price]"), l = $(".product-details[name=qty]");
513            $.ajax({
514                type: "POST", url: base_url + "addtocart", data: "id=" + e.val() + "&category=" + n.val() + "&sub_category=" + t.val() + "&product_name=" + r.val() + "&product_model=" + o.val() + "&image=" + i.val() + "&price=" + s.val() + "&qty=" + l.val(), success: function () {
515                    window.location = base_url + "shoppingcart";
516                }
517            });
518        }),
519            $(document).on("click", "#btn-addtocart", function (a) {
520                a.preventDefault();
521                var e = $(".product-details[name=id]"), n = $(".product-details[name=category]"), t = $(".product-details[name=sub_category]"), r = $(".product-details[name=product_name]"), o = $(".product-details[name=product_model]"), i = $(".product-details[name=image]"), s = $(".product-details[name=price]"), l = $(".product-details[name=qty]");
522                $.ajax({
523                    type: "POST", url: base_url + "addtocart", data: "id=" + e.val() + "&category=" + n.val() + "&sub_category=" + t.val() + "&product_name=" + r.val() + "&product_model=" + o.val() + "&image=" + i.val() + "&price=" + s.val() + "&qty=" + l.val(), success: function () {
524                        alert(l.val() + " unit " + r.val() + " " + o.val() + " telah ditambahkan ke keranjang belanja Anda"), window.location.reload();
525                    }
526                });
527            }),
528            $(document).on("click", ".change-qty", function (a) {
529                a.preventDefault();
530                var e = $(this).attr("cart-id"), n = $("input[name=qty][cart-id=" + e + "]").val();
531                $.ajax({
532                    type: "POST", url: base_url + "updatecart", data: "rowid=" + e + "&qty=" + n, beforeSend: function () {
533                        loader.fadeIn(1e3);
534                    }, success: function (a) {
535                        window.location.reload();
536                    }
537                });
538            }),
539            $(document).on("click", ".remove-cart", function (a) {
540                a.preventDefault();
541                $(this).attr("data-triger");
542                var e = $(this).attr("cart-id");
543                $.ajax({
544                    type: "POST", url: base_url + "removecart", data: "rowid=" + e, beforeSend: function () {
545                        loader.fadeIn(1e3);
546                    }, success: function () {
547                        window.location.reload();
548                    }
549                });
550            }),
551            $(document).on("click", "#btn-voucher", function (a) {
552                a.preventDefault();
553                var e = $("#myVoucher input[name=promo_code]").val().toUpperCase(), n = $("#myVoucher input[name=email]").val();
554                "PCS-SV5" == e ? $.ajax({
555                    type: "POST", url: "http://localhost/putrachandra/promocodesv5-verf", data: "email=" + n, crossDomain: true, cache: false, beforeSend: function () {
556                        loader.show();
557                    }, success: function (a) {
558                        "valid" == a ? function (a) {
559                            $.ajax({
560                                type: "POST", url: base_url + "add-coupon", data: "promo_code=" + a, beforeSend: function () {
561                                    loader.show();
562                                }, success: function (a) {
563                                    "success" == a ? window.location.reload() : (alert(a), window.location.reload());
564                                }
565                            });
566                        }(e) : (alert("Kode Promo Anda sudah tidak berlaku."), window.location.reload());
567                    }
568                }) : $.ajax({
569                    type: "POST", url: base_url + "add-promo-code", data: "promo_code=" + e, beforeSend: function () {
570                        loader.show();
571                    }, success: function (a) {
572                        "success" == a ? window.location.reload() : (alert(a), window.location.reload());
573                    }
574                });
575            }),
576            $(document).on("change", "#order input[name=shipp-addr]:checked", function (a) {
577                a.preventDefault();
578                var e = $(this).val();
579                $.ajax({
580                    type: "POST", url: base_url + "check-address", data: "label=" + e, success: function (a) {
581                        "error" == a && (alert("Mohon memasukkan 'Alamat " + e + "' Anda terlebih dahulu."), window.location = base_url + "akun-saya/?p=data-alamat");
582                    }
583                });
584            }),
585            $(document).on("click", "#btn-order", function (a) {
586                a.preventDefault();
587                var e = $("#order input[name=email]"), n = $("#order input[name=shipp-addr]:checked"), t = $("#order textarea[name=order-note]");
588                1 == (0 != n.length || (alert("Silihkan pilih Alamat Pengiriman terlebih dahulu."), false)) && $.ajax({
589                    type: "POST", url: base_url + "order-product", data: "shipp_addr=" + n.val() + "&note=" + t.val(), beforeSend: function () {
590                        loader.fadeIn(1e3);
591                    }, success: function (a) {
592                        "success_pcssv5" == a && function (a) {
593                            $.ajax({ type: "POST", url: "http://localhost/putrachandra/promocodesv5-setstatus", data: "email=" + a, crossDomain: true, cache: false, success: function (a) { } });
594                        }(e.val()), window.location = base_url + "akun-saya/?p=pesanan-baru";
595                    }
596                });
597            }),
598            $(document).on("click", "#btn-order-complete", function (a) {
599                $.ajax({
600                    type: "POST", url: base_url + "order-complete", data: "order_number=" + $(this).attr("order-number"), beforeSend: function () {
601                        loader.fadeIn(1e3);
602                    }, success: function (a) {
603                        window.location = base_url + "akun-saya/?p=daftar-pesanan";
604                    }
605                });
606            });
607    }),
608    $(document).ready(function () {
609        $(document).on("click", "button[name=ikut-giveaway]", function () {
610            $("#product-giveaway .title button").hide(), $("#product-giveaway .title p").fadeIn(), $("#product-giveaway .title").css({ "border-bottom-left-radius": "0", "border-bottom-right-radius": "0" }), $("#product-giveaway .content").fadeIn();
611        }),
612            $(document).on("change", "#form-giveaway input[name=giveaway_code]", function () {
613                var a = $(this);
614                $.ajax({
615                    type: "POST", url: base_url + "product/giveaway_code_verf", data: "giveaway_code=" + a.val(), success: function (e) {
616                        "unverified" == e && (alert_info("Kode GIVEAWAY Anda salah"), a.focus(), a.val(""));
617                    }
618                });
619            }),
620            $(document).on("change", "#form-giveaway input[name=instagram_id]", function () {
621                var a = $(this);
622                $.ajax({
623                    type: "POST", url: base_url + "product/giveaway_verf", data: "instagram_id=" + a.val(), success: function (e) {
624                        "unverified" == e && (alert_info("Instagram ID sudah terdaftar dalam program GIVEAWAY"), a.focus(), a.val(""));
625                    }
626                });
627            }),
628            $(document).on("click", "button[name=form-giveaway]", function () {
629                var a = $("#form-giveaway input[name=name]"), e = $("#form-giveaway input[name=instagram_id]"), n = $("#form-giveaway input[name=email]"), t = $("#form-giveaway input[name=phone_number]"), r = $("#form-giveaway input[name=quiz_answers]"), o = { name: a.val(), instagram_id: e.val(), email: n.val(), phone_number: t.val(), quiz_answers: r.val(), captcha: grecaptcha.getResponse() };
630                $("#form-giveaway").validate({
631                    rules: { phone_number: { number: true }, quiz_answers: { number: true } }, submitHandler: function (a) {
632                        $.ajax({
633                            type: "POST", url: base_url + "giveawayFn", data: o, beforeSend: function () {
634                                loader.fadeIn();
635                            }, success: function (a) {
636                                "errorCaptcha" == a ? (loader.fadeOut(), alert_info("Mohon 'klik' reCaptcha!")) : "error" == a ? (loader.fadeOut(), alert_info("Terdapat kendala sistem. Mohon refresh halaman Anda, dan coba lagi.")) : (loader.fadeOut(), $("#form-giveaway").hide(), $("#form-giveaway").trigger("reset"), $("#giveaway-success-alert").fadeIn(), $("#unique-code-giveaway").text(a));
637                            }
638                        });
639                    }
640                });
641            });
642    });
643$(document).ready(function () {
644    $(document).on("click", "#products_detail", function () {
645        console.log($(this).data("href")), $("#form-event input[name=url_title]").val($(this).data("href")), $("#form-event input[name=domain]").val($(this).data("lable"));
646    }),
647        $(document).on("click", "#form-event button[type=submit]", function (e) {
648            $("#form-event").validate({
649                rules: { full_name: { required: true }, no_handphone: { number: true, required: true } }, submitHandler: function (e) {
650                    console.log(e), $.ajax({
651                        type: "POST", url: base_url + "event/ketupat-2022/send", data: new FormData(e), contentType: false, processData: false, cache: false, beforeSend: function () {
652                            loader.fadeIn();
653                        }, success: function (e) {
654                            var t = JSON.parse(e);
655                            "errorCaptcha" == t.error ? (loader.fadeOut(), errorsHtml = `<div class="alert alert-danger">\n\t\t\t\t\t\t\t  ${t.message}</di>`, $("#errorEvent").html(errorsHtml), grecaptcha.reset()) : "available" == t.error ? (loader.fadeOut(), errorsHtml = `<div class="alert alert-danger">\n\t\t\t\t\t\t\t  ${t.message}</di>`, $("#errorEvent").html(errorsHtml), grecaptcha.reset()) : "error" == t.error ? (loader.fadeOut(), errorsHtml = `<div class="alert alert-danger">\n\t\t\t\t\t\t\t  ${t.message}</di>`, $("#errorEvent").html(errorsHtml), grecaptcha.reset()) : "success" == t.error && (loader.fadeOut(), "powerpack" == t.domain ? window.open("https://www.powerpack.co.id/" + t.redirect, "_blank") : window.location.href = "https://www.fomac.co.id/" + t.redirect);
656                        }
657                    });
658                }
659            });
660        });
661});
662
663var customer = '';
664var daftar_alamat = [];
665var customerEmail = '';
666
667$(document).ready(function () {
668
669    $("#registration_form_ticket input[name=email], #registration_form_ticket input[name=nomor_handphone]").on("change", function () {
670        var fd = new FormData();
671        fd.append('keyword', $(this).val())
672        fd.append('source', 'fomac')
673        $.ajax({
674            type: "POST", url: "https://www.siniservice.id/api/check-customer",
675            data: fd,
676            contentType: !1,
677            processData: !1,
678            cache: !1,
679            async: !0,
680            beforeSend: function () {
681                loader.fadeIn()
682            },
683            success: function (res) {
684                if (res.status === 'success') {
685                    if (res.data) {
686                        customer = res.data.customer;
687                        daftar_alamat = res.data.alamat;
688                        $('#notification_label').text('Data Customer Sudah Ada');
689                        $('#notification_body').text('Apakah Anda ingin menggunakan data yang sudah ada?');
690                        $('#notification_footer').html(`
691                        <button type="button" class="btn btn-secondary" data-dismiss="modal">Batal</button>
692                        <button type="button" class="btn btn-primary" id="exist_customer">Lanjutkan</button>
693                    `);
694                        $('#notification').modal('show')
695                    }
696                }
697            },
698            complete: function () {
699                loader.fadeOut()
700            }
701        })
702    });
703})
704
705$(document).on('click', '#exist_customer', function () {
706    var elmCard = '';
707    let containerLeft = 0;
708    let containerRight = 1;
709    customerEmail = $('#registration_form_ticket input[name=email]').val();
710    if (customer == '' && daftar_alamat.length == 0) {
711        $('#notification').modal('hide')
712        return
713    }
714
715    $('#data-customer').html(`
716            <input type="hidden" name="cust_code" value="${customer.cust_code}">
717            <div class="row no-gutters">
718                <div class="col-xs-6">
719                    <h4>Daftar Alamat</h4>
720                </div>
721                <div class="col-xs-6">
722                    <button type="button" class="btn btn-info pull-right" id="add_address">
723                        <i class="fas fa-plus"></i> Alamat
724                    </button>
725                </div>
726            </div>
727            <div class="row scroll-card">
728                <div class="col-md-6 masonry-container-left"></div><div class="col-md-6 masonry-container-right"></div>
729            </div>`)
730    if (customer) {
731        elmCard = `
732                <div class="masonry-card">
733                    <div class="address-card">
734                        <h5 class="address-card-title">
735                            <input 
736                                id="" 
737                                type="radio" 
738                                class="radio" 
739                                name="data_cust"
740                                data-email="${customerEmail}"
741                                data-name_cust="${customer.name}" 
742                                data-cust_code="${customer.cust_code}" 
743                                data-no_handphone="${customer.nomor_handphone}" 
744                                data-address_cust="${customer.alamat}" 
745                                data-dtl_address_cust="${customer.dtl_alamat}" 
746                                data-village_cust="${customer.village_cust}"
747                                data-district_cust="${customer.district}" 
748                                data-regency_cust="${customer.regency}" 
749                                data-province_cust="${customer.province}" 
750                                data-postcode_cust="${customer.post_code}" 
751                                data-latitude="${customer.latitude}" 
752                                data-longitude="${customer.longitude}" 
753                                customer="${customer.name}" checked>
754                            <strong>${customer.name} | ${customer.nomor_handphone}</strong>
755                        </h5>
756                        ${customer.dtl_alamat}, ${customer.alamat} | ${customer.district} - ${customer.regency} - ${customer.province}, ${customer.post_code}
757                    </div>
758                </div>
759              `;
760        $('.masonry-container-left').append(elmCard)
761        containerLeft += 1;
762    }
763    $.each(daftar_alamat, function (index, value) {
764        elmCard = `
765                <div class="masonry-card">
766                    <div class="address-card">
767                        <h5 class="address-card-title">
768                            <input 
769                                id="${value.id_customer}" 
770                                type="radio" 
771                                class="radio" 
772                                name="data_cust"
773                                data-email="${customerEmail}"
774                                data-name_cust="${value.name_cust}" 
775                                data-cust_code="${value.cust_code}" 
776                                data-no_handphone="${value.no_handphone}" 
777                                data-address_cust="${value.address_cust}" 
778                                data-dtl_address_cust="${value.dtl_address_cust}" 
779                                data-village_cust="${customer.village_cust}"
780                                data-district_cust="${value.district_cust}" 
781                                data-regency_cust="${value.regency_cust}" 
782                                data-province_cust="${value.province_cust}" 
783                                data-postcode_cust="${value.postcode_cust}" 
784                                data-latitude="${value.latitude}" 
785                                data-longitude="${value.longitude}" 
786                                value="${value.name_cust}">
787                            <strong>${value.name_cust} | ${value.no_handphone}</strong>
788                        </h5>
789                        ${value.dtl_address_cust}, ${value.address_cust} | ${value.district_cust} - ${value.regency_cust} - ${value.province_cust}, ${value.postcode_cust}
790                        <a href="#" class="btn btn-link pull-right p-0" id="edit_address" data-id="${value.id_customer}">Ubah</a>
791                    </div>
792                </div>
793              `;
794
795        if (containerLeft < containerRight) {
796            containerLeft += 1
797            $('.masonry-container-left').append(elmCard)
798        } else {
799            containerRight += 1
800            $('.masonry-container-right').append(elmCard)
801        }
802    });
803    $('#notification').modal('hide')
804})
805$('input[name="adm_area"]').autocomplete({ source: function (request, response) { $.ajax({ type: 'post', url: "https://www.siniservice.id/Autocomplete/get_administrative_area", dataType: "json", data: { term: request.term }, success: function (data) { response(data) } }) }, minLength: 3, select: function (event, ui) { $('input[name="adm_area"]').val(ui.item.value); $('input[name="province"]').val(ui.item.province); $('input[name="regency"]').val(ui.item.regency); $('input[name="district"]').val(ui.item.district); return !1 }, open: function () { $(this).autocomplete("widget").css({ "position": "absolute", "width": 350, "overflow": "hidden auto", "height": 350, "z-index": 9999 }) } })
806// $(document).on('click', '#setPinPoint', function () {
807//     var address = $('input[name="address"]').val();
808//     var adm_area = $('input[name="adm_area"]').val();
809//     var post_code = $('input[name="post_code"]').val();
810
811//     $.ajax({
812//         type: 'POST',
813//         url: "https://www.siniservice.id/Api/set_pinPoint_ticket_registration",
814//         data: {
815//             'address': address,
816//             'adm_area': adm_area,
817//             'post_code': post_code
818//         },
819//         beforeSend: function () {
820//             loader.fadeIn()
821//         },
822//         complete: function () {
823//             loader.fadeOut()
824//         },
825//         success: function (dataRes) {
826//             $('#maps-view').html(dataRes)
827//         }
828//     })
829// })
830$(document).on('click', '#registration_form_ticket #setPinPoint', function () {
831    const province = window.province
832    const regency = window.regency
833    const district = window.district
834    const village = window.village
835    const postCode = window.post_code
836
837    var validator = $("#registration_form_ticket").validate({
838        rules: {
839            address: {
840                required: true
841            },
842            province: {
843                required: true
844            },
845            regency: {
846                required: true
847            },
848            district: {
849                required: true
850            },
851            village: {
852                required: true
853            },
854            post_code: {
855                required: true,
856                digits: true
857            }
858        },
859        messages: {
860            address: "Alamat wajib diisi",
861            province: "Provinsi wajib dipilih",
862            regency: "Kabupaten/Kota wajib dipilih",
863            district: "Kecamatan wajib dipilih",
864            village: "Kelurahan wajib dipilih",
865            post_code: "Kode Pos wajib diisi dengan angka"
866        },
867        errorPlacement: function (error, element) {
868
869            let tsWrapper = element.siblings('.ts-wrapper');
870
871            if (tsWrapper.length) {
872                error.insertAfter(tsWrapper);
873            } else {
874                error.insertAfter(element);
875            }
876        },
877        success: function (label) {
878            label.remove();
879        }
880    });
881
882    let valid = true;
883    valid = validator.element("[name='address']") && valid;
884    valid = validator.element("[name='province']") && valid;
885    valid = validator.element("[name='regency']") && valid;
886    valid = validator.element("[name='district']") && valid;
887    valid = validator.element("[name='village']") && valid;
888    valid = validator.element("[name='post_code']") && valid;
889
890
891    if (!valid) {
892        $('#maps-view').html("<p class='text-danger'>Harap lengkapi alamat, provinsi, kabupaten/kota, kecamatan, kelurahan dan kode pos</p>");
893        return;
894    }
895
896    var address = $('#registration_form_ticket input[name="address"]').val();
897    const adm_area = `${village}, ${district}, ${regency}, ${province}`;
898    var post_code = $('#registration_form_ticket input[name="post_code"]').val();
899
900    if (!address) {
901        $('#maps-view').html("<p class='text-danger'>Pastikan Alamat sudah terisi!</p>");
902        // highlight the address input field to indicate it's required
903        $('#registration_form_ticket input[name="address"]').addClass('is-invalid');
904        return;
905    }
906
907    $.ajax({
908        type: 'POST',
909        url: "https://www.siniservice.id/Api/set_pinPoint_ticket_registration",
910        data: {
911            'address': address,
912            'adm_area': adm_area,
913            'post_code': postCode
914        },
915        beforeSend: function () {
916            loader.fadeIn()
917        },
918        complete: function () {
919            loader.fadeOut()
920        },
921        success: function (dataRes) {
922            $('#maps-view').html(dataRes)
923        }
924    })
925})
926
927$(document).on('click', '#form_address .setPinPoint', function () {
928    const province = window.modal_province
929    const regency = window.modal_regency
930    const district = window.modal_district
931    const village = window.modal_village
932    const postCode = window.modal_post_code
933
934    var validator = $("#form_address").validate({
935        rules: {
936            address: {
937                required: true
938            },
939            province: {
940                required: true
941            },
942            regency: {
943                required: true
944            },
945            district: {
946                required: true
947            },
948            village: {
949                required: true
950            },
951            post_code: {
952                required: true,
953                digits: true
954            }
955        },
956        messages: {
957            address: "Alamat wajib diisi",
958            province: "Provinsi wajib dipilih",
959            regency: "Kabupaten/Kota wajib dipilih",
960            district: "Kecamatan wajib dipilih",
961            village: "Kelurahan wajib dipilih",
962            post_code: "Kode Pos wajib diisi dengan angka"
963        },
964        errorPlacement: function (error, element) {
965
966            if (element.hasClass("ts-hidden-accessible")) {
967                error.insertAfter(element.parent().find(".ts-wrapper"));
968            } else {
969                error.insertAfter(element);
970            }
971        },
972        success: function (label) {
973            label.remove();
974        }
975    });
976
977    let valid = true;
978
979    valid = validator.element("#form_address [name='province']") && valid;
980    valid = validator.element("#form_address [name='regency']") && valid;
981    valid = validator.element("#form_address [name='district']") && valid;
982    valid = validator.element("#form_address [name='village']") && valid;
983    valid = validator.element("#form_address [name='post_code']") && valid;
984    valid = validator.element("#form_address [name='address']") && valid;
985
986    if (!valid) {
987        $('#form_address .maps-view').html("<p class='text-danger'>Harap lengkapi alamat, provinsi, kabupaten/kota, kecamatan, kelurahan dan kode pos</p>");
988        return;
989    }
990
991    var address = $('#form_address input[name="address"]').val();
992    const adm_area = `${village}, ${district}, ${regency}, ${province}`;
993    var post_code = $('#form_address input[name="post_code"]').val();
994
995    if (!address) {
996        $('#form_address .maps-view').html("<p class='text-danger'>Pastikan Alamat sudah terisi!</p>");
997        // highlight the address input field to indicate it's required
998        $('#form_address input[name="address"]').addClass('is-invalid');
999        return;
1000    }
1001
1002    $.ajax({
1003        type: 'POST',
1004        url: "https://www.siniservice.id/Api/set_pinPoint_ticket_registration",
1005        data: {
1006            'address': address,
1007            'adm_area': adm_area,
1008            'post_code': postCode
1009        },
1010        beforeSend: function () {
1011            loader.fadeIn()
1012        },
1013        complete: function () {
1014            loader.fadeOut()
1015        },
1016        success: function (dataRes) {
1017            $('#form_address .maps-view').html(dataRes)
1018        }
1019    })
1020})
1021
1022$("#registration_form_ticket input[name=serial_number]").on("change", function () {
1023    var serial_number = $(this).val(); $.ajax({
1024        type: "POST", url: "https://www.siniservice.id/api/check-serial-number", data: { serial_number: serial_number }, dataType: "json", success: function (res) {
1025            if (res.status === 'success') { $("#registration_form_ticket input[name=nama_mesin]").val(res.data.nama_mesin); $("#registration_form_ticket input[name=nomor_garansi]").val(res.data.nomor_garansi); $('#registration_form_ticket input[name="brand"]').val(res.data.brand) }
1026            return
1027        }
1028    })
1029});
1030$('#registration_form_ticket input[name="nama_mesin"]').autocomplete({ source: function (request, response) { $.ajax({ type: 'post', url: "https://www.siniservice.id/Autocomplete/get_all_product", dataType: "json", data: { term: request.term }, success: function (data) { response(data) } }) }, minLength: 3, select: function (event, ui) { $('#registration_form_ticket input[name="nama_mesin"]').val(ui.item.value); $('#registration_form_ticket input[name="brand"]').val(ui.item.brand); return !1 } })
1031
1032// $('#form-warranty-0 input[name="nama_produk"]').autocomplete({
1033//     source: function (request, response) {
1034//         $.ajax({
1035//             type: 'post',
1036//             url: "https://www.siniservice.id/Autocomplete/get_all_product",
1037//             dataType: "json",
1038//             data: { term: request.term },
1039//             success: function (data) { response(data) }
1040//         })
1041//     },
1042//     minLength: 3,
1043//     select: function (event, ui) {
1044//         $('#form-warranty-0 input[name="nama_produk"]').val(ui.item.value);
1045//         $('#form-warranty-0 input[name="brand"]').val(ui.item.brand);
1046//         return !1
1047//     }
1048// })
1049$(document).on('click', '#add_address', function () { $('#mdl_address').modal('show'); $('#myModalLabel').html('<strong>Tambah Alamat</strong>'); var validator = $("#form_address").validate(); validator.resetForm(); $('#form_address input[name="id_customer"]').val(''); $('#form_address input[name="cust_code"]').val(customer.cust_code); $('#form_address input[name="name"]').val(''); $('#form_address input[name="nomor_handphone"]').val(''); $('#form_address input[name="address"]').val(''); $('#form_address input[name="adm_area"]').val(''); $('#form_address input[name="province"]').val(''); $('#form_address input[name="regency"]').val(''); $('#form_address input[name="district"]').val(''); $('#form_address input[name="post_code"]').val(''); $('#form_address input[name="dtl_address"]').val(''); $('#maps-view').html('') }); $(document).on('click', '#edit_address', function () { var id_customer = $(this).data('id'); var result = $.grep(daftar_alamat, function (obj) { return obj.id_customer == id_customer }); $('#myModalLabel').html('<strong>Edit Alamat'); $('#mdl_address').modal('show');
1049 var validator = $("#form_address").validate(); validator.resetForm(); $('#form_address input[name="id_customer"]').val(result[0].id_customer); $('#form_address input[name="cust_code"]').val(result[0].cust_code); $('#form_address input[name="name"]').val(result[0].name_cust); $('#form_address input[name="nomor_handphone"]').val(result[0].no_handphone); $('#form_address input[name="address"]').val(result[0].address_cust); $('#form_address input[name="adm_area"]').val(result[0].district_cust + ', ' + result[0].regency_cust + ', ' + result[0].province_cust); $('#form_address input[name="province"]').val(result[0].province_cust); $('#form_address input[name="regency"]').val(result[0].regency_cust); $('#form_address input[name="district"]').val(result[0].district_cust); $('#form_address input[name="post_code"]').val(result[0].postcode_cust); $('#form_address input[name="dtl_address"]').val(result[0].dtl_address_cust); $('#maps-view').html('') })
1050// $('#form_address').validate({
1051//     rules: {
1052//         name: { required: !0 },
1053//         nomor_handphone: {
1054//             required: !0,
1055//             digits: !0
1056//         },
1057//         address: { required: !0 },
1058//         adm_area: { required: !0 },
1059//         post_code: {
1060//             required: !0,
1061//             digits: !0
1062//         },
1063//     },
1064//     messages: {
1065//         name: "Nama wajib diisi",
1066//         nomor_handphone: "Nomor HP wajib diisi dengan angka",
1067//         address: "Alamat wajib diisi",
1068//         adm_area: "Wilayah administrasi wajib diisi",
1069//         post_code: "Kode pos wajib diisi dan angka",
1070//     },
1071//     errorElement: 'span',
1072//     errorClass: 'text-danger',
1073//     highlight: function (element) {
1074//         $(element).closest('.form-control').addClass('is-invalid')
1075//     },
1076//     unhighlight: function (element) {
1077//         $(element).closest('.form-control').removeClass('is-invalid')
1078//     }
1079// });
1080$(document).on("click", "#form_address button[type=submit]", function (e) {
1081    e.preventDefault();
1082    let form = $('#form_address');
1083    if (form.valid()) {
1084        var url_to = 'https://www.siniservice.id/Api/submitAddress';
1085        var fd = new FormData($('#form_address')[0]);
1086        if ($('#form_address input[name=cust_code]').val() !== '') {
1087            if ($('#form_address input[name=id_customer]').val() !== '') { fd.append('id_customer', $('#form_address input[name=id_customer]').val()) }
1088            fd.append('cust_code', $('#form_address input[name="cust_code"]').val());
1089            fd.append('name', $('#form_address input[name="name"]').val());
1090            fd.append('nomor_handphone', $('#form_address input[name="nomor_handphone"]').val());
1091            fd.append('address', $('#form_address input[name="address"]').val());
1092            fd.append('dtl_address', $('#form_address input[name="dtl_address"]').val());
1093            fd.append('village', window.modal_village);
1094            fd.append('province', window.modal_province);
1095            fd.append('regency', window.modal_regency);
1096            fd.append('district', window.modal_district);
1097            fd.append('post_code', window.modal_post_code);
1098            fd.append('latitude', $('input[name="latitude"]').val() ?? '');
1099            fd.append('longitude', $('input[name="longitude"]').val() ?? '')
1100        }
1101        $.ajax({
1102            type: "POST",
1103            url: url_to,
1104            data: fd,
1105            contentType: !1,
1106            processData: !1,
1107            cache: !1,
1108            async: !0,
1109            beforeSend: function () { loader.fadeIn() },
1110            complete: function () { loader.fadeOut() },
1111            success: function (res) {
1112                if (res.status === 'success') {
1113                    if (res.data) { daftar_alamat = res.data.alamat }
1114                    $('#notification_label').text('Berhasil'); $('#notification_body').text('Alamat Customer berhasil disimpan!'); $('#notification_footer').html(`
1115                            <button type="button" class="btn btn-primary" id="exist_customer">Ok</button>
1116                        `); $('#mdl_address').modal('hide'); $('#notification').modal('show')
1117                } else {
1118                    $('#notification_label').text('Gagal'); $('#notification_body').text('Alamat tidak disimpan!'); $('#notification_footer').html(`
1119                            <button type="button" class="btn btn-primary" data-dismiss="modal">Ok</button>
1120                        `); $('#notification').modal('show')
1121                }
1122            }, error: function (xhr, status, error) { if (xhr.status === 400 || xhr.status === 422) { let res = JSON.parse(xhr.responseText); if (res.errors) { let formattedErrors = {}; $.each(res.errors, function (field, message) { formattedErrors[field] = message }); form.validate().showErrors(formattedErrors) } } else { console.error('Error lain:', xhr.status, error); alert('Terjadi kesalahan: ' + xhr.status) } }
1123        })
1124    }
1125})
1126$(document).on("click", "#saveTicket", function () {
1127    var aa = $("#registration_form_ticket");
1128    aa.validate({
1129        ignore: [],
1130        rules: {
1131            machine_type: {
1132                required: true
1133            },
1134            service_type: {
1135                required: true
1136            },
1137            email: {
1138                required: !0,
1139                remote: {
1140                    type: "POST",
1141                    url: "https://www.siniservice.id/Landing_Page/validation_registration_form",
1142                    data: {
1143                        label: 'email',
1144                        value: function () {
1145                            return $("input[name=email]", aa).val()
1146                        }
1147                    }
1148                }
1149            },
1150            nomor_handphone: {
1151                required: !0,
1152                remote: {
1153                    type: "POST",
1154                    url: "https://www.siniservice.id/Landing_Page/validation_registration_form",
1155                    data: {
1156                        label: 'nomor_handphone',
1157                        value: function () {
1158                            return $("input[name=nomor_handphone]", aa).val()
1159                        }
1160                    }
1161                }
1162            },
1163        },
1164        messages: {
1165            machine_type: {
1166                required: "Silahkan pilih jenis mesin"
1167            },
1168            service_type: {
1169                required: "Silahkan pilih jenis service"
1170            },
1171            email: {
1172                remote: 'Email sudah terdaftar.'
1173            },
1174            nomor_handphone: {
1175                remote: 'Nomor sudah terdaftar.'
1176            }
1177        },
1178        errorPlacement: function (error, element) {
1179            if (element.attr("name") == "machine_type") {
1180                error.appendTo("#machine_type_container");
1181            } else if (element.attr("name") == "service_type") {
1182                error.appendTo("#service_type_container");
1183            } else {
1184                error.insertAfter(element);
1185            }
1186        },
1187    })
1188
1189
1190    if (aa.valid()) {
1191        // manual validate machine_type
1192        if ($('#registration_form_ticket input[name=machine_type]:checked').length === 0) {
1193            $('#machine_type_container').append('<label id="machine_type-error" 
1193class="error" for="machine_type" style="display: block;">Silahkan pilih jenis mesin</label>');
1194            // scroll to the error message
1195            $('html, body').animate({
1196                scrollTop: $("#machine_type_container").offset().top - 100
1197            }, 500);
1198            return false;
1199        }
1200
1201        // manual validate service_type
1202        if ($('#registration_form_ticket input[name=service_type]:checked').length === 0) {
1203            $('#service_type_container').append('<label id="service_type-error" class="error" for="service_type" style="display: block;">Silahkan pilih jenis service</label>');
1204            // scroll to the error message
1205            $('html, body').animate({
1206                scrollTop: $("#service_type_container").offset().top - 100
1207            }, 500);
1208            return false;
1209        }
1210
1211        // manual validate layanan_service
1212        if ($('#registration_form_ticket input[name=layanan_service]:checked').length === 0) {
1213            $('#layanan_service_container').append('<label id="layanan_service-error" class="error" for="layanan_service" style="display: block;">Silahkan pilih layanan service</label>');
1214            // scroll to the error message
1215            $('html, body').animate({
1216                scrollTop: $("#layanan_service_container").offset().top - 100
1217            }, 500);
1218            return false;
1219        }
1220        var fd = new FormData($('#registration_form_ticket')[0]);
1221        if ($('input[name=cust_code]').val() !== '') {
1222            fd.append('name', $('input[name="data_cust"]:checked').data("name_cust"));
1223            fd.append('nomor_handphone', $('input[name="data_cust"]:checked').data("no_handphone"));
1224            fd.append('address', $('input[name="data_cust"]:checked').data("address_cust"));
1225            fd.append('dtl_address', $('input[name="data_cust"]:checked').data("dtl_address_cust"));
1226            fd.append('province', $('input[name="data_cust"]:checked').data("province_cust"));
1227            fd.append('regency', $('input[name="data_cust"]:checked').data("regency_cust"));
1228            fd.append('district', $('input[name="data_cust"]:checked').data("district_cust"));
1229            fd.append('post_code', $('input[name="data_cust"]:checked').data("postcode_cust"));
1230            fd.append('latitude', $('input[name="data_cust"]:checked').data("latitude"));
1231            fd.append('longitude', $('input[name="data_cust"]:checked').data("longitude"))
1232        } else {
1233            fd.append('province', window.province)
1234            fd.append('district', window.district)
1235            fd.append('regency', window.regency)
1236            fd.append('village', window.village)
1237            fd.append('post_code', window.post_code)
1238        }
1239        fd.append('nama_mesin', window.product_name)
1240        fd.append('source', 'fomac')
1241
1242        // jika tidak ada machine_type di form maka append 
1243        fd.append('machine_type', $('input[name=machine_type]:checked').val())
1244        fd.append('service_type', $('input[name=service_type]:checked').val())
1245        fd.append('layanan_service', $('input[name=layanan_service]:checked').val())
1246
1247        $.ajax({
1248            type: "POST",
1249            url: "https://www.siniservice.id/Landing_Page/save_registration_form",
1250            data: fd,
1251            contentType: !1,
1252            processData: !1,
1253            cache: !1,
1254            async: !0,
1255
1256            beforeSend: function () {
1257                $('#registration_form_ticket button[type=submit]').html('<span class="spinner-border spinner-border-sm" role="status" aria-hidden="true"></span> Loading...')
1258                $('#registration_form_ticket button[type=submit]').attr('disabled', true)
1259                loader.fadeIn()
1260            },
1261            complete: function () {
1262                $('#registration_form_ticket button[type=submit]').attr('disabled', false)
1263                $('#registration_form_ticket button[type=submit]').html('DAFTAR')
1264                loader.fadeOut()
1265            },
1266            success: function (data) {
1267                var res = JSON.parse(data);
1268
1269                if (res.status === 'success') {
1270                    alert("Pendaftaran tiket berhasil dan Email berhasil dikirim! Silahkan cek email anda")
1271                    window.location.reload()
1272
1273                } else {
1274                    const msg = res.msg ? res.msg : "Gagal. Terjadi kesalahan sistem!";
1275
1276                    alert(msg)
1277                }
1278            },
1279            error: function (xhr, status, error) {
1280
1281            }
1282        })
1283    }
1284});
1285function formatTanggalIndo(datetimeString) {
1286    var date = new Date(datetimeString);
1287    var hari = new Intl.DateTimeFormat('id-ID',
1288        { weekday: 'long' }).format(date);
1289    var tgl = new Intl.DateTimeFormat('id-ID', { day: '2-digit', month: 'short', year: 'numeric' }).format(date); var jam = new Intl.DateTimeFormat('id-ID', { hour: '2-digit', minute: '2-digit', hour12: !1 }).format(date); return `${tgl} - ${hari} ${jam}`
1290}
1291function viewTicketDetail(id_ticket) {
1292    getDataTicket(id_ticket)
1293    $("#ticketListModal").modal("hide")
1294}
1295
1296$(document).on("click", "#check_ticket_service button[type=submit]", function (e) {
1297    e.preventDefault();
1298    let form = $('#check_ticket_service');
1299    if (form.valid()) {
1300        getDataTicket(null)
1301    }
1302})
1303
1304
1305function getDataTicket(id_ticket) {
1306    var url_to = 'https://www.siniservice.id/api/check-status-ticket';
1307    var fd = new FormData($('#form_address')[0]);
1308    let form = $('#check_ticket_service');
1309    if (id_ticket) {
1310        fd.append('no_ticket', id_ticket.trim())
1311    } else {
1312        fd.append('no_ticket', $('#check_ticket_service input[name="no_ticket"]').val().trim())
1313    }
1314    fd.append('email_or_no_handphone', $('#check_ticket_service input[name="email_or_no_handphone"]').val().trim())
1315    if ($('#check_ticket_service input[name="email_or_no_handphone"]').val().trim() === '' && !id_ticket === '' && $('#check_ticket_service input[name="no_ticket"]').val().trim() === '') {
1316        $('#check_ticket_service').validate().showErrors({ 'no_ticket': 'No Ticket atau email harus diisi' })
1317    }
1318    $.ajax({
1319        type: "POST",
1320        url: url_to,
1321        data: fd,
1322        contentType: !1,
1323        processData: !1,
1324        cache: !1,
1325        async: !0,
1326        beforeSend: function () {
1327            loader.fadeIn()
1328        },
1329        complete: function () {
1330            loader.fadeOut()
1331        },
1332        success: function (res) {
1333            if (res.status === 'success') {
1334                if (res.data) {
1335
1336                    var ticket = res.data.ticket;
1337                    if (ticket.length > 0) {
1338                        if (ticket.length === 1) {
1339                            getDataTicket(ticket[0].id_ticket)
1340                            return
1341                        }
1342                        let html = '<ul class="list-group" style="color: black !important; padding: 0">';
1343                        ticket.forEach((t, i) => {
1344                            html += `
1345                                <li class="list-group-item list-group-item-action mb-3 rounded" style="cursor: pointer;" onclick="viewTicketDetail('${t.id_ticket}')">
1346                                    <h6 class="mb-1">${t.id_ticket}</h6>
1347                                    <small>${formatTanggalIndo(t.tanggal)}</small>
1348                                <p class="mb-1" style="font-size:14px"><strong>${t.nama_mesin}</strong></p>
1349                                </li>`;
1350                        });
1351                        html += '</ul>';
1352
1353                        $("#ticketListModal .modal-body").html(html);
1354                        $("#ticketListModal").modal("show");
1355
1356                    } else {
1357
1358                        var elmCard = '';
1359                        $('#status_detail').html(`
1360                                <div class="mt-5">
1361                                    <h4><strong>Detail Tiket</strong></h4>
1362                                    <div class="table-responsive">
1363                                        <table class="table table-no-border">
1364                                            <tbody>
1365                                                <tr>
1366                                                    <th>Nomor Tiket</th>
1367                                                    <td>${ticket.id_ticket}</td>
1368                                                </tr>
1369                                                <tr>
1370                                                    <th>Nama Customer</th>
1371                                                    <td>${ticket.cust_name}</td>
1372                                                </tr>
1373                                                <tr>
1374                                                    <th>Tanggal Tiket</th>
1375                                                    <td>${formatTanggalIndo(ticket.tanggal)}</td>
1376                                                </tr>
1377                                                <tr>
1378                                                    <th>Nomor Handphone</th>
1379                                                    <td>${ticket.cust_nomor_handphone}</td>
1380                                                </tr>
1381                                                <tr>
1382                                                    <th>Email</th>
1383                                                    <td>${ticket.cust_email}</td>
1384                                                </tr>
1385                                                <tr>
1386                                                    <th>Nama Mesin</th>
1387                                                    <td>${ticket.nama_mesin}</td>
1388                                                </tr>
1389                                                <tr>
1390                                                    <th>Detail Masalah</th>
1391                                                    <td>${ticket.problem_detail}</td>
1392                                                </tr>
1393                                            </tbody>
1394                                        </table>
1395                                    </div>
1396                                    <h4><strong>Histori Tiket</strong></h4>
1397                                    <div class="timeline"></div>
1398                                    <!--Start of Chatwoot Script-->
1399                                    <script>
1400                                        document.querySelectorAll('iframe').forEach(f => console.log(f.src));
1401
1402                                        window.chatwootSettings = {
1403                                          hideMessageBubble: false,
1404                                          position: "left",
1405                                          locale: "id",
1406                                          type: "expanded_bubble",
1407                                          launcherTitle: "Chat with us",
1408                                          showPopoutButton: true
1409                                        };
1410
1411                                        (function(d,t) {
1412                                          var BASE_URL="https://app.chatwoot.com";
1413                                          var g=d.createElement(t),s=d.getElementsByTagName(t)[0];
1414                                          g.src=BASE_URL+"/packs/js/sdk.js";
1415                                          g.defer = true;
1416                                          g.async = true;
1417                                          s.parentNode.insertBefore(g,s);
1418                                          g.onload=function(){
1419                                            window.chatwootSDK.run({
1420                                              websiteToken: 'gpKKHecLJsD29EDMNRZHkkSZ',
1421                                              baseUrl: BASE_URL
1422                                            })
1423                                          }
1424                                        })(document,"script");
1425
1426                                        // Kirim custom attributes setelah Chatwoot siap
1427                                        window.addEventListener("chatwoot:ready", function () {    
1428                                          window.$chatwoot.setCustomAttributes({
1429                                            ticket_id: "${ticket.id_ticket}"
1430                                          });
1431                                          
1432                                          window.$chatwoot.setUser("${ticket.id_ticket}", {
1433                                            email: "${ticket.cust_email}",
1434                                            name: "${ticket.cust_name}",
1435                                            phone_number: "${ticket.cust_nomor_handphone}",
1436                                            custom_attributes: {
1437                                                ticket_id: "${ticket.id_ticket}"
1438                                            }
1439                                          });
1440                                        });
1441                                    </script>
1442                                    <!--End of Chatwoot Script-->
1443                                </div>`);
1444                        $.each(res.data.tracking, function (index, value) {
1445                            elmCard = `
1446                                          <div class="timeline-step active">
1447                                            <div class="circle"></div>
1448                                            <div class="title">${value.status}</div>
1449                                            <div class="date">${formatTanggalIndo(value.tanggal)}</div>
1450                                            <div class="desc">${value.deskripsi ?? ''}</div>
1451                                          </div>
1452                                        `; $('.timeline').append(elmCard)
1453                        });
1454                        var lastItem = res.data.tracking[res.data.tracking.length - 1];
1455                        if (lastItem.status !== 'SELESAI') {
1456                            $('.timeline').append(`<div class="timeline-step"><div class="circle"></div><div class="title">Dalam Proses</div></div>`)
1457                        }
1458                    }
1459
1460                } else {
1461                    $('#check_ticket_service').validate().showErrors({
1462                        'no_ticket': res.message
1463                    })
1464                    $("#status_detail").html('')
1465                }
1466            } else {
1467                $('#check_ticket_service').validate().showErrors({ 'no_ticket': res.message })
1468            }
1469        },
1470        error: function (xhr, status, error) {
1471            if (xhr.status === 400 || xhr.status === 422) {
1472                let res = JSON.parse(xhr.responseText);
1473                if (res.errors) {
1474                    let formattedErrors = {};
1475                    $.each(res.errors, function (field, message) {
1476                        formattedErrors[field] = message
1477                    });
1478                    form.validate().showErrors(formattedErrors)
1479                }
1480            } else {
1481                console.error('Error lain:', xhr.status, error);
1482                alert('Terjadi kesalahan: ' + xhr.status)
1483            }
1484        }
1485    })
1486}

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.