PageSourceSearch

https://jl7bet.com/about-us

html jl7bet.com collected 2026-10-08 09:28:58 UTC 145,136 bytes, 3,307 lines download raw bytes

1
2
3<!DOCTYPE html>
4
5<html>
6<head><title>
7	About Us | M777
8</title><meta name="robots" content="" /><meta name="description" content="M777 is Malaysia's leading Online Casino and Sportsbook Gaming Establishment. Online Casino gaming plays an integral role in the entertainment field, and we believe that, with self-control and limitations, everyone deserves a chance to utilise their luck on some the fun and games." /><meta name="keywords" content="" /><link rel="canonical" href="https://54.250.124.143/about-us"><meta property="og:title"  content="About Us | M777" /><meta property="og:description"  content="M777 is Malaysia's leading Online Casino and Sportsbook Gaming Establishment. Online Casino gaming plays an integral role in the entertainment field, and we believe that, with self-control and limitations, everyone deserves a chance to utilise their luck on some the fun and games." /><meta property="twitter:title"  content="About Us | M777" /><meta property="twitter:description"  content="M777 is Malaysia's leading Online Casino and Sportsbook Gaming Establishment. Online Casino gaming plays an integral role in the entertainment field, and we believe that, with self-control and limitations, everyone deserves a chance to utilise their luck on some the fun and games." /><meta charset="UTF-8" /><meta name="viewport" content="width=device-width" /><link rel="icon" href="/favicon.ico" type="image/x-icon" />
9
10    <!-- Bootstrap-->
11    <link rel="stylesheet" href="/web/assets/bootstrap-4.3.1/css/bootstrap.min.css" /><link rel="stylesheet" href="/web/assets/css/fontawesome.css" />
12
13    <!-- Custom CSS -->
14    <link rel="stylesheet" href="/web/assets/css/modal.css" /><link rel="stylesheet" href="/web/assets/css/style.css?v=6" /><link rel="stylesheet" href="/web/assets/css/swiper-bundle.min.css" /><link rel="stylesheet" href="/web/assets/css/responsive.css" /><link rel="stylesheet" href="/web/assets/css/custom.css?v=6" /><link href="/mines/mines.css" rel="stylesheet" type="text/css" />
15
16    <!-- ********** BEGIN: Reward game theme ********** -->
17    <link href="/rewardgame/css/rewardgame.css" rel="stylesheet" type="text/css" />
18
19    <style>
20        /* reward game overriding css */
21        .mg-reward-init {
22            background: url(https://file.32828a.com/images/M777/2f44417567bc123bd7c60de8c2a2b444_2132593.png) no-repeat center /100% 100%;
23        }
24
25        .mg-reward-content {
26    top: 0px; color: #333; font-size: 20px;
27}
28
29.mg-reward-prize-amount {
30    top: 210px; color: #ffffff; width: 200px; font-size: 34px; font-weight: bold; -webkit-text-stroke:2px black; text-shadow: 2px 2px 5px white
31}
32
33.mg-reward-btn-play-again {
34    visibility:hidden
35}
36    </style>
37
38    
39    <!-- ********** END: Reward game theme ********** -->
40
41    <!-- float icon -->
42    <link href="/jcmm-float-icon/jcmm-float-icon.css" rel="stylesheet" type="text/css" /><link href="/luckydice/luckydice.css" rel="stylesheet" type="text/css" />
43
44    
44<script src="/web/assets/bootstrap-4.3.1/jquery-3.3.1.min.js"></script>
44
45    
45<script async src="/js/lazyload.min.js"></script>
45
46    
46<script src="/jcmm-float-icon/jcmm-float-icon.js"></script>
46
47    <!-- mg lucky dice -->
48    
48<script src="/Scripts/jcmm-luckydice.js"></script>
48
49    <!-- mg fortune wheel -->
50    
50<script type="text/javascript" src="/fortunewheel/fortunewheel.js?v=20250923.3"></script>
50
51    
51<script type="text/javascript" src="/mines/mines.js"></script>
51
52
53    <!-- Google Tag Manager -->
54    
54<script>
vendor: 485 bytes, lines 54-61
54(function (w, d, s, l, i) {
55            w[l] = w[l] || []; w[l].push({
56                'gtm.start':
57                    new Date().getTime(), event: 'gtm.js'
58            }); var f = d.getElementsByTagName(s)[0],
59                j = d.createElement(s), dl = l != 'dataLayer' ? '&l=' + l : ''; j.async = true; j.src =
60                    'https://www.googletagmanager.com/gtm.js?id=' + i + dl; f.parentNode.insertBefore(j, f);
61        })(window, document, 'script', 'dataLayer', '
61GTM-WPRVNLQ9
vendor: 3 bytes, line 61
61');
61</script>
61
62    <!-- End Google Tag Manager -->
63
64    <!-- Google tag (gtag.js) -->
vendor: 69 bytes, lines 64-65
64
65    <script async src="https://www.googletagmanager.com/gtag/js?id=
65G-NXGKRDZH80
vendor: 17 bytes, lines 65-66
65"></script>
66    
66<script>   
vendor: 130 bytes, line 66
66window.dataLayer = window.dataLayer || []; function gtag() { dataLayer.push(arguments); } gtag('js', new Date()); gtag('config', '
66G-NXGKRDZH80
vendor: 4 bytes, line 66
66'); 
66</script>
66
67
68    
68<script>
69        $(document).ready(function () {
70            var $fw = $('#fortunewheel');
71            var custom_sfx = {};
72            initFortuneWheel($fw, custom_sfx);
73
74            // start reward game
75            var mgr_modal = $('.mg-reward-modal');
76
77            setMGR_Html(mgr_modal);
78
79            mgr_modal.on('click', '#mgr-btn-play-again', function (e) {
80                e.preventDefault();
81                setMGR_Html(mgr_modal);
82            });
83
84            mgr_modal.on('click', '.mg-reward-init', function (e) {
85                e.preventDefault();
86                if (!$(this).hasClass('mg-reward-clicked')) {
87                    $(this).addClass('mg-reward-clicked');
88                    ClaimRewardGame();
89                }
90            });
91
92            mgr_modal.on('click', '.mg-body-close', function (e) {
93                e.preventDefault();
94                mgr_modal.toggleClass('mg-reward-show-modal');
95                setTimeout(function () {
96                    setMGR_Html(mgr_modal);
97                }, 500);
98            });
99            // another reward game script below
100            // end reward game
101
102            // to init float icon
103            var $fi = $('#float-icon');
104            var size = {
105                width: 'auto',
106                height: '120px'
107            }
108            initFloatIcon($fi, size);
109
110            // MINI GAME: Mines
111            var $mines = $('#mines');
112            initMines($mines);
113        });
114
115        function ClaimRewardGame(res, status, xhr) {
116
117            $.ajax({
118                type: 'POST',
119                url: '/ajaxData/proc_rewardGameClaim',
120                success: function (res) {
121                    var mgr_modal = $('.mg-reward-modal');
122
123                    if (res.errCode == "0") {
124                        if (res.data != null) {
125                            //getMemberTotalToken();
126                            var d = JSON.parse(res.data)[0];
127                            var win_amount = 'MYR ' + parseFloat(d.winning_amount).toFixed(2);
128
129                            var result_img = document.createElement('img');
130                            result_img.src = mgr_modal.find('.mg-reward-init').attr('data-result-img') + '?d=' + new Date().getTime();
131
132                            $(result_img).on('load', function () {
133                                mgr_modal.find('.mg-reward-init').css({
134                                    'z-index': '7',
135                                    'background': 'url(' + result_img.src + ') no-repeat center /100% 100%'
136                                });
137                            });
138
139                            mgr_modal.find('.mg-reward-prize-amount').text(win_amount);
140                            var prize_top = parseInt(mgr_modal.find('.mg-reward-prize-amount').css('top'));
141
142                            // let animated result image finish
143                            setTimeout(function () {
144                                mgr_modal.find('.mg-reward-prize-amount').animate({ opacity: '1', top: (prize_top - 45) + 'px' }, 1000);
145                                mgr_modal.find('#mgr-btn-play-again').css('display', 'inline-block');
146                            }, 1000);
147
148                        } else {
149                            mgr_modal.find('.mg-reward-init').removeClass('mg-reward-clicked');
150                            alert("Unknown error, Please contact our customer service");
151                        }
152                    }
153                    else {
154                        if (res.errCode == "99")
155                            alert("Please login first.");
156                        else if (res.errCode == "700000")
157                            alert(res.errMsg);
158                        else
159                            alert(res.errCode + " - " + res.errMsg);
160                    }
161                },
162                error: function (jqXHR, textStatus, errorThrown) {
163                    alert("Unknown error, Please contact our customer service");
164                },
165                complete: function () {
166                    $("#freezescreen").hide();
167                }
168            });
169        }
170
171        function setMGR_Html(m) {
172            var mgr_template = $('#mgr-template').clone().html();
173            m.empty();
174            m.html(mgr_template);
175        }
176
177     // end reward game script
178
179    </script>
179
180
181    
182    
182<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.17.0/jquery.validate.min.js"></script>
182
183    
183<script type="text/javascript" src="/js/base64.min.js"></script>
183
184    
184<script type="text/javascript" src="/js/jquery.qrcode.js"></script>
184
185    
185<script type="text/javascript" src="/js/js-cookie.js"></script>
185
186    
186<script type="text/javascript" src="/js/web.js?v=1"></script>
186
187    
187<script type="text/javascript" src="/js/ajax_r.js"></script>
187
188
189    
189<script type="text/javascript">
190        // $.xhrPool and $.ajaxSetup are the solution
191        $.xhrPool = [];
192        $.xhrPool.abortAll = function () {
193            $(this).each(function (idx, jqXHR) {
194                jqXHR.abort();
195            });
196            $.xhrPool = [];
197            alert("99 - " + "Session ended");
198            location.reload(true);
199        };
200
201        $.ajaxSetup({
202            beforeSend: function (jqXHR) {
203                $.xhrPool.push(jqXHR);
204            },
205            complete: function (jqXHR) {
206                var index = $.xhrPool.indexOf(jqXHR);
207                if (index > -1) {
208                    $.xhrPool.splice(index, 1);
209                }
210            }
211        });
212
213        // Get agent code and append to affiliate input in register form
214        checkAgent();
215    </script>
215
216
217    
218
219
220    
220<script>
221        // Global pixel-fire hook: any AJAX response whose JSON body includes data.pixelEvents
222        // (set server-side by PixelTracking.FireConversionEvent) automatically fires the matching
223        // client-side Meta/TikTok pixel event - no per-page wiring needed.
224        if (!window.__pixelFireHookInstalled) {
225            window.__pixelFireHookInstalled = true;
226            $(document).ajaxSuccess(function (event, xhr) {
227                try {
228                    var d = xhr.responseJSON;
229                    if (d && d.data && d.data.pixelEvents && typeof firePixelEvents === "function") {
230                        firePixelEvents(d.data);
231                    }
232                } catch (ex) {
233                    console.log("global pixel fire hook failed", ex);
234                }
235            });
236        }
237    </script>
237
238
239    </head>
240<body id="body_id" class="body_main_wrap body_main_container">
241    <!-- Google Tag Manager (noscript) -->
vendor: 83 bytes, lines 241-243
241
242    <noscript>
243        <iframe src="https://www.googletagmanager.com/ns.html?id=
243GTM-WPRVNLQ9
vendor: 97 bytes, lines 243-245
243" height="0" width="0" style="display: none; visibility: hidden"></iframe>
244    </noscript>
245    
245<!-- End Google Tag Manager (noscript) -->
246
247    <div id="freezescreen" class="loading-panel" style="display: none;">
248        <img src="/web/assets/images/common/logo.png" class="loading-logo" /><br />
249        <img src="/web/assets/images/common/preload-indicator.gif" class="loading-gif" />
250    </div>
251
252    
253    
254    <div style="display: none;" id="mgr-template">
255        <div class="mg-reward-modal-content">
256            <!-- first bg -->
257            <div class="mg-reward mg-reward-init" data-result-img="https://file.32828a.com/images/M777/632a2406bbcbcd553eec45ac14b40a0a_2133079.png"></div>
258
259            <!-- display result -->
260            <div class="mg-reward-prize-amount mg-reward-hide">-</div>
261
262            <!-- display msg -->
263            <div class="mg-reward-content">
264                <h3></h3>
265            </div>
266
267            <div class="mg-reward-btn-play-again">
268                <button class="btn btn-danger text-uppercase" id="mgr-btn-play-again" style="display: none;">%= Resources.custom.play_again %></button>
269            </div>
270        </div>
271        <a href="javascript:void(0)" class="mg-body-close"></a>
272    </div>
273    
274
275    <div class="mg-reward-modal"></div>
276    <div class="mg-reward-modal-custom" id="allModalList"></div>
277    <div id="lucky-dice-div"></div>
278
279    <div id="mines"></div>
280
281    <!-- fortune wheel -->
282    <div style="display: none;" id="fortunewheel"></div>
283
284    
285
286    
287    <div class="t-modal">
288
289        
290        <div class="announcementmodal fade modal" id="popup_announcement_listing_modal" tabindex="-1" role="dialog" data-keyboard="false" data-backdrop="static">
291            <div class="modal-dialog modal-dialog-centered" role="document">
292                <div class="modal-content">
293                    <button type="button" class="close-btn" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button>
294                    <div id="modalannoce" class="carousel slide" data-ride="carousel">
295
296                        <div class="carousel-inner announcementpopupimg" id="annnouncement_list">
297                        </div>
298
299                        <a class="carousel-control-prev" href="#modalannoce" role="button" data-slide="prev">
300                            <span class="carousel-control-prev-icon" aria-hidden="true"></span>
301                        </a>
302                        <a class="carousel-control-next" href="#modalannoce" role="button" data-slide="next">
303                            <span class="carousel-control-next-icon" aria-hidden="true"></span>
304                        </a>
305
306                    </div>
307                    <div class="cls-checkbox">
308                        <div class="round">
309                            <input type="checkbox" id="doNotShowAgainCheckBox" />
310                            <label for="doNotShowAgainCheckBox"></label>
311                        </div>
312                        Do not show again
313                    </div>
314                </div>
315            </div>
316        </div>
317
318        <div id="productDownloadModal" class="modal fade vip_modal" tabindex="-1" role="dialog">
319            <div class="modal-dialog modal-dialog-centered" role="document">
320                <div class="modal-content">
321                    <div class="modal-body">
322                        <h4 class="mb-2">Download</h4>
323                        <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button>
324                        <div class="dl-pvd-logo"></div>
325                        <div class="download-tab">
326                            <div class="downloadbody">
327                                <div class="downloadbox">
328                                    <span class="qrcodeSpan"></span>
329                                    <a class="ndl-btn" href="#"><i class="fab fa-android mr-1"></i>Android</a>
330                                </div>
331                                <div class="downloadbox">
332                                    <span class="qrcodeSpan"></span>
333                                    <a class="adl-btn" href="#"><i class="fab fa-apple mr-1"></i>IOS</a>
334                                </div>
335                            </div>
336                            
337                        </div>
338                    </div>
339                </div>
340            </div>
341        </div>
342
343        
344
345<div id="modal_login" class="modal fade share_modal" tabindex="-1" role="dialog">
346    <div class="modal-dialog modal-dialog-centered" role="document">
347        <div class="modal-content">
348            <div class="modal-body">
349                <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
350                <div class="modal_body_share">
351                    <div class="modal_body_share_left">
352                        <img class="lazy" src="/web/assets/images/login/banner1.jpg">
353                    </div>
354                    <form class="modal_body_right" id="form_login">
355                        <div class="modal_head">
356                            <button type="button" class="modalhead_btn active">
357                                Login</button>
358                            <button type="button" class="modalhead_btn" data-dismiss="modal" data-toggle="modal"
359                                data-target="#modal_register">
360                                Sign Up</button>
361                        </div>
362                        <div class="input_form_wrap">
363                            <div class="input_inner" id="l_username_field">
364                                <i class="fas fa-user"></i>
365                                <input type="text" class="input_custom" name="username" id="l_username"
366                                    placeholder="Username">
367                            </div>
368
369                            <div class="input_inner" id="l_password_field">
370                                <i class="fas fa-unlock"></i>
371                                <input type="password" class="input_custom" name="password" id="l_password"
372                                    placeholder="Password">
373                            </div>
374
375                            <div class="input_inner_forgot">
376                                <a data-toggle="modal" data-target="#modal_forgot" data-dismiss="modal">Forgot Password</a>
377                            </div>
378
379                            <button type="submit" class="btn_login_modal" id="login_submit_btn">Login</button>
380                            <div id="loginloadingbtn" class="load-indicator" style="display: none">
381                                <img src="/web/assets/images/common/load-indicator.gif" alt="loading" />
382                            </div>
383
384                            <div class="create-acc">Don’t  have an account?&nbsp;<a href="javascript:void(0)" class="acc-link" data-dismiss="modal" data-toggle="modal" data-target="#modal_register">Create Account</a></div>
385                            <div class="issues-note">If you encounter any issues while logging in, please contact our <a href="contact-us" class="acc-link">Customer Service</a> for further assistance.</div>
386                        </div>
387                    </form>
388                </div>
389            </div>
390        </div>
391    </div>
392</div>
393
394<script>
395
396    $("#form_login").validate({
397        rules: {
398                "username": {
399                required: true,
400            },
401                "password": {
402                required: true,
403            },
404                "v_code": {
405                required: true,
406            },
407        },
408        messages: {
409                "username": {
410                required: "Please insert Username.",
411            },
412                "password": {
413                required: "Please insert Password.",
414            },
415                    "v_code": {
416                required: "This field is required.",
417            }
418        },
419        errorPlacement: function (error, element) {
420            if (element.attr("name") == "username")
421                error.insertAfter("#l_username_field");
422            else if (element.attr("name") == "password")
423                error.insertAfter("#l_password_field");
424            else if (element.attr("name") == "v_code")
425                error.insertAfter("#l_v_code_field");
426            else
427                error.insertAfter(element);
428        },
429        submitHandler: function () {
430            $("#freezescreen").show();
431            $("#loginloadingbtn").show();
432            $("#login_submit_btn").hide();
433
434            $.ajax({
435                type: 'POST',
436                url: '/ajaxData/proc_memLogin',
437                data: $('#form_login').serialize(),
438                success: function (d) {
439                    $("#freezescreen").show();
440
441                    if (d.errCode == "0") {
442                        $('#form_login')[0].reset();
443                        sessionStorage.setItem("firstLogin", "1");
444                        location.reload();
445                    }
446                    else {
447                        alert(d.errCode + " - " + d.errMsg);
448                        $("#freezescreen").hide();
449                        $("#loginloadingbtn").hide();
450                        $("#login_submit_btn").show();
451                    }
452                },
453                error: function (jqXHR, textStatus, errorThrown) {
454                    $("#freezescreen").hide();
455                    $("#loginloadingbtn").hide();
456                    $("#login_submit_btn").show();
457                    alert("Unknown error, Please contact our customer service");
458                }
459            });
460
461            $("#freezescreen").hide();
462        }
463    });
464</script>
464
465
466
467        
468        
469
470<div id="modal_forgot" class="modal fade share_modal" tabindex="-1" role="dialog">
471    <div class="modal-dialog modal-dialog-centered" role="document">
472        <div class="modal-content">
473            <div class="modal-body">
474                <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span> </button>
475                <div class="modal_body_share">
476                    <div class="modal_body_share_left">
477                        <img class="lazy" src="/web/assets/images/login/login_img.png">
478                    </div>
479                    <div class="modal_body_right">
480                        <div class="modal_head">
481                            <h5>Forgot Password</h5>
482                        </div>
483
484                        <div class="input_form_wrap">
485                            Please contact 
486                                <a onclick="MyWindow=window.open('https://lc.chat/now/3716461/','MyWindow','width=400,height=600');" style="color: #069aee;">Live Chat or Sale Agent</a>
487                            to reset your password 
488                                <br />
489                            <br />
490                            <br />
491                            <button type="button" onclick="MyWindow=window.open('https://lc.chat/now/3716461/','MyWindow','width=400,height=600');" class="pop-login-btn">Contact Us</button>
492                        </div>
493
494                        <form class="input_form_wrap" style="display: none;" id="form_forgot">
495                            <div class="input_inner" id="f_email_field">
496                                <i class="fas fa-envelope"></i>
497                                <input type="text" class="input_custom" name="email" id="f_email"
498                                    placeholder="E-mail">
499                            </div>
500
501                            <div class="input_inner" id="f_v_code_field">
502                                <i class="fa fa-check-circle"></i>
503                                <input type="text" class="input_custom" name="v_code" id="f_v_code"
504                                    placeholder="Verification Code" maxlength="4">
505                                <span class="v-code-position" onclick="refreshVCode('fp','forgotPasswordVeriCode');">
506                                    <img class="verification-code-img" id="forgotPasswordVeriCode" />
507                                </span>
508                            </div>
509
510                            <input type="hidden" name="action" id="action" value="forgetPassword" />
511
512                            <button type="submit" class="btn_login_modal" id="forget_pwd_submit_btn">Send</button>
513                        </form>
514
515                        <form class="input_form_wrap" id="form_forgot_otp" style="display: none;">
516
517                            <div class="input_inner" id="f_otp_code_field">
518                                <i class="fa fa-check-circle"></i>
519                                <input type="text" class="input_custom" name="otp_code" id="f_otp_code"
520                                    placeholder="OTP Verification" maxlength="6">
521                                <button type="button" class="btn_container btn_login_modal" style="width: fit-content;" id="send_otp_btn" onclick="resendOTP();" tabindex="-1">
522                                    Resend Code&nbsp;<span id="acTimer"></span>
523                                </button>
524                            </div>
525
526                            <div class="input_inner" id="f_new_password_field" style="position: relative;">
527                                <i class="fas fa-unlock"></i>
528                                <input type="password" class="input_custom" name="new_password" id="f_new_password"
529                                    placeholder="New Password">
530                            </div>
531
532                            <div class="input_inner" id="f_confirm_password_field">
533                                <i class="fas fa-unlock"></i>
534                                <input type="password" class="input_custom" name="confirm_password" id="f_confirm_password"
535                                    placeholder="Confirm Password">
536                            </div>
537                            <ul class="list-valid">
538                                <li>
539                                    <span class="low-upper-case" id="f_uppercase_lowercase_message">
540                                        <i class="fa fa-times" aria-hidden="true"></i></span>&nbsp;1 lowercase & 1 uppercase</li>
541                                <li>
542                                    <span class="one-number" id="f_number_message">
543                                        <i class="fa fa-times" aria-hidden="true"></i></span>&nbsp;1 number (0-9)</li>
544                                <li>
545                                    <span class="one-special-char" id="f_special_message">
546                                        <i class="fa fa-times" aria-hidden="true"></i></span>&nbsp;1 Special Character (!@#$%^&*)</li>
547                                <li>
548                                    <span class="eight-character" id="f_length_message">
549                                        <i class="fa fa-times" aria-hidden="true"></i></span>&nbsp;Between 8-20 Character</li>
550                            </ul>
551
552                            <input type="hidden" id="actionresetPw" name="action" value="resetPassword" />
553                            <input type="hidden" id="userEmail" name="email" />
554                            <input type="hidden" id="userContact" name="contact" />
555                            <input type="hidden" id="userToken" name="token" />
556
557                            <button type="submit" class="btn_login_modal" id="forget_pwd_otp_submit_btn">Submit</button>
558                        </form>
559
560                    </div>
561                </div>
562            </div>
563        </div>
564    </div>
565</div>
566
567<script>
568    $(document).ready(function () {
569        refreshVCode('fp', 'forgotPasswordVeriCode');
570
571        const passwordInput = $('#f_new_password');
572        const popup = passwordInput.siblings('.validation-message-field');
573
574        passwordInput.on('focus', function () {
575            popup.show();
576        });
577
578        passwordInput.on('blur', function () {
579            popup.hide();
580        });
581    });
582
583    var resetMethod = "sms"
584    var resetMethodMsg = ("sms" == "sms" ? "SMS" : "E-mail");
585    $("#form_forgot").validate({
586        rules: {
587            "email": {
588                required: true,
589                maxlength: 200,
590                email: true
591            },
592            "contact": {
593                required: false,
594                maxlength: 200,
595            },
596            "v_code": {
597                required: true,
598            }
599        },
600        messages: {
601            "email": {
602                required: "Please insert email.",
603                maxlength: "Please enter at most {0} character",
604                email: "Please insert valid email, e.g. : [email protected].",
605            },
606            "username": {
607                required: "This field is required.",
608            },
609            "contact": {
610                required: "This field is required.",
611            },
612            "v_code": {
613                required: "This field is required.",
614            }
615        },
616        errorPlacement: function (error, element) {
617            if (element.attr("name") == "email")
618                error.insertAfter("#f_email_field");
619            else if (element.attr("name") == "v_code")
620                error.insertAfter("#f_v_code_field");
621            else
622                error.insertAfter(element);
623        },
624        submitHandler: function (form) {
625            $("#freezescreen").show();
626            $("#forget_pwd_submit_btn").hide();
627
628            $.ajax({
629                type: 'POST',
630                url: '/ajaxData/proc_forgetPasswordV2',
631                data: $('#form_forgot').serialize(),
632                success: function (d) {
633                    if (d.errCode == "0") {
634
635                        $("#userEmail").val($("#f_email").val());
636                        $("#userContact").val($("#f_contact").val());
637
638                        $('#form_forgot')[0].reset();
639
640                        var forgotPasswordSuccessTemplate = "You should receive an OTP through {0} within the next 5 minutes.";
641                        alert(forgotPasswordSuccessTemplate.replace("{0}", resetMethodMsg));
642
643                        $("#form_forgot").hide();
644                        $("#form_forgot_otp").show();
645                        $("#f_otp_code").focus();
646
647                        $("#userToken").val(d.data);
648                    }
649                    else
650                        alert(d.errCode + "-" + d.errMsg);
651                },
652                error: function (jqXHR, textStatus, errorThrown) {
653                    alert("Unknown error, Please contact our customer service");
654                    $("#forget_pwd_submit_btn").show();
655                },
656                complete: function () {
657                    $("#freezescreen").hide();
658                }
659            });
660        }
661    });
662
663    var $fPassword = $('#f_confirm_password');
664    // Update validation messages and password strength as user types
665    $fPassword.on('input', function () {
666        var inputVal = $(this).val();
667        var minLength = 8;
668        var maxLength = 20;
669        var hasUpperCase = /[A-Z]/.test(inputVal);
670        var hasNumber = /\d/.test(inputVal);
671        var hasLowerCase = /[a-z]/.test(inputVal);
672        var hasSpeicial = /[`!@#$%^&*()_+\-=\[\]{};':"\\|,.<>\/?~]/.test(inputVal);
673        var check1 = 0, check2 = 0, check3 = 0, check4 = 0;
674
675        // Validate length
676        if (inputVal.length >= minLength && inputVal.length <= maxLength) {
677            $('#f_length_message').addClass('text-success');
678            $('#f_length_message i').removeClass('fa-times').addClass('fa-check');
679            check1 = 1;
680        } else {
681            $('#f_length_message').removeClass('text-success');
682            $('#f_length_message i').addClass('fa-times').removeClass('fa-check');
683            check1 = 0;
684        }
685
686        // Validate uppercase letter
687        if (hasUpperCase && hasLowerCase) {
688            $('#f_uppercase_lowercase_message').addClass('text-success');
689            $('#f_uppercase_lowercase_message i').removeClass('fa-times').addClass('fa-check');
690            check2 = 1;
691        } else {
692            $('#f_uppercase_lowercase_message').removeClass('text-success');
693            $('#f_uppercase_lowercase_message i').addClass('fa-times').removeClass('fa-check');
694            check2 = 0;
695        }
696
697        // Validate number
698        if (hasNumber) {
699            $('#f_number_message').addClass('text-success');
700            $('#f_number_message i').removeClass('fa-times').addClass('fa-check');
701            check3 = 1;
702        } else {
703            $('#f_number_message').removeClass('text-success');
704            $('#f_number_message i').addClass('fa-times').removeClass('fa-check');
705            check3 = 0;
706        }
707
708        // Validate special character
709        if (hasSpeicial) {
710            $('#f_special_message').addClass('text-success');
711            $('#f_special_message i').removeClass('fa-times').addClass('fa-check');
712            check4 = 1;
713        } else {
714            $('#f_special_message').removeClass('text-success');
715            $('#f_special_message i').addClass('fa-times').removeClass('fa-check');
716            check4 = 0;
717        }
718
719        if (check1 == 0 || check2 == 0 || check3 == 0 || check4 == 0)
720            $("#register_step_1_submit_btn").css("pointer-events", "none");
721        else
722            $("#register_step_1_submit_btn").css("pointer-events", "");
723
724    });
725
726    $("#form_forgot_otp").validate({
727        rules: {
728                "otp_code": {
729                required: true,
730            },
731                "new_password": {
732                required: false,
733                //minlength: 8,
734                //maxlength: 20,
735            },
736                "confirm_password": {
737                required: true,
738                minlength: 8,
739                maxlength: 20,
740                equalTo: "input[id='f_new_password']",
741            }
742        },
743        messages: {
744            "otp_code": {
745                required: "This field is required.",
746            },
747            "new_password": {
748                required: "Please insert Password.",
749                minlength: "Please enter at least {0} character",
750                maxlength: "Please enter at most {0} character"
751            },
752            "confirm_password": {
753                required: "Please insert Confirm Password.",
754                minlength: "Please enter at least {0} character",
755                maxlength: "Please enter at most {0} character",
756                equalTo: "Confirm password must same with password"
757            }
758        },
759        errorPlacement: function (error, element) {
760            if (element.attr("name") == "otp_code")
761                error.insertAfter("#f_otp_code_field");
762            else if (element.attr("name") == "confirm_password")
763                error.insertAfter("#f_confirm_password_field");
764            else
765                error.insertAfter(element);
766        },
767        submitHandler: function (form) {
768            $("#freezescreen").show();
769            $("#forget_pwd_otp_submit_btn").hide();
770
771            $.ajax({
772                type: 'POST',
773                url: '/ajaxData/proc_forgetPasswordV2',
774                data: $('#form_forgot_otp').serialize(),
775                success: function (d) {
776                    if (d.errCode == "0") {
777                        $('#form_forgot_otp')[0].reset();
778                        alert("Password successfully changed!");
779
780                        $("#form_forgot_otp").hide();
781                        $("#form_forgot").show();
782                        $("#modal_forgot").modal("hide");
783
784                        $("#modal_login").modal("show");
785                        $("#l_username").focus();
786
787                    }
788                    else
789                        alert(d.errCode + " - " + d.errMsg);
790                },
791                error: function (jqXHR, textStatus, errorThrown) {
792                    alert("Unknown error, Please contact our customer service");
793                },
794                complete: function () {
795                    $("#freezescreen").hide();
796                    $("#forget_pwd_otp_submit_btn").show();
797                }
798            });
799        }
800    });
801
802    function resendOTP() {
803        $("#freezescreen").show();
804
805        var fd = new FormData();
806        fd.append('action', 'resendOTP');
807        fd.append('email', $('#userEmail').val());
808        fd.append('contact', $('#userContact').val());
809        fd.append('token', $('#userToken').val());
810
811        $.ajax({
812            type: 'POST',
813            url: '/ajaxData/proc_forgetPasswordV2',
814            data: fd,
815            dataType: 'json',
816            contentType: false,
817            processData: false,
818            success: function (d) {
819                if (d.errCode == "0") {
820                    $("#freezescreen").hide();
821
822                    $("#userToken").val(d.data);
823                    $('#send_otp_btn').css("pointer-events", "none");
824                    $("#send_otp_btn").show();
825
826                    //alert(d.errCode + "-" + d.errMsg);
827                    alert("OTP request successful.");
828
829                    /*CountDown Resend Button*/
830                    var acCountdown = 60;
831                    $('#acTimer').text("(" + acCountdown + ")");
832
833                    var acTimer = setInterval(function () {
834                        acCountdown--;
835                        if (acCountdown < 0) {
836                            clearInterval(acTimer);
837                            $('#acTimer').text("");
838                            $('#send_otp_btn').css("pointer-events", "");
839                        }
840                        else {
841                            $('#acTimer').text("(" + acCountdown + ")");
842                        }
843                    }, 1000);
844                }
845                else
846                    alert(d.errCode + "-" + d.errMsg);
847            },
848            error: function (jqXHR, textStatus, errorThrown) {
849                alert("Unknown error, Please contact our customer service");
850            },
851            complete: function () {
852                $("#freezescreen").hide();
853            }
854        });
855    }
856</script>
856
857
858
859
860        
861        
862
863
864<div id="modal_register" class="modal fade share_modal" tabindex="-1" role="dialog" data-keyboard="false" data-backdrop="static">
865    <div class="modal-dialog modal-dialog-centered" role="document">
866        <div class="modal-content">
867            <div class="modal-body">
868                <button type="button" class="close" data-dismiss="modal" aria-label="Close">
869                    <span aria-hidden="true">&times;</span>
870                </button>
871                <div class="modal_body_share">
872                    <div class="modal_body_share_left">
873                        <img src="/web/assets/images/login/banner1.jpg">
874                    </div>
875
876                    <form class="modal_body_right" id="form_registration">
877
878                        
879
880<div class="modal_head">
881    <button type="button" class="modalhead_btn" data-dismiss="modal" data-toggle="modal"
882        data-target="#modal_login">
883        Login</button>
884    <button type="button" class="modalhead_btn active">Sign Up</button>
885</div>
886
887<div class="reg-list">
888    <ul>
889        <li>
890            <a href="javascript:void(0)" class="btn-reg active reg_step_1" data-toggle="modal">1</a>
891        </li>
892        <li>
893            <a href="javascript:void(0)" class="btn-reg reg_step_2" data-toggle="modal">2</a>
894        </li>
895        <li>
896            <a href="javascript:void(0)" class="btn-reg reg_step_success" data-toggle="modal"><i class="fas fa-check"></i></a>
897        </li>
898    </ul>
899</div>
900
901<script>
902    var check_got_activate_member_method = "sms";
903
904    $(document).ready(function () {
905        
906        sessionStorage.setItem("last-step", "");
907        
908
909        if (check_got_activate_member_method != "")
910            $(".reg_step_2").parent().show();
911
912        $('#modal_register').on('shown.bs.modal', function () {
913            $('.reg_step_1').addClass('active');
914
915            $('.reg_step_2').removeClass('active');
916            $('.reg_step_success').removeClass('active');
917
918            $('.reg_step_2').attr('data-target', '#modal_register_2').attr('data-dismiss', 'modal');
919            $('.reg_step_success').attr('data-target', '#modal_register_success').attr('data-dismiss', 'modal');
920        });
921
922        $('#modal_register_2').on('shown.bs.modal', function () {
923            $('.reg_step_2').addClass('active');
924
925            $('.reg_step_1').removeClass('active');
926            $('.reg_step_success').removeClass('active');
927
928            $('.reg_step_1').attr('data-target', '#modal_register').attr('data-dismiss', 'modal');
929            $('.reg_step_success').attr('data-target', '#modal_register_success').attr('data-dismiss', 'modal');
930        });
931
932        $('#modal_register_success').on('shown.bs.modal', function () {
933            $('.reg_step_success').addClass('active');
934
935            $('.reg_step_1').removeClass('active');
936            $('.reg_step_2').removeClass('active');
937
938            $('.reg_step_1').attr('data-target', '#modal_register').attr('data-dismiss', 'modal');
939            $('.reg_step_2').attr('data-target', '#modal_register_2').attr('data-dismiss', 'modal');
940        });
941
942        //$(".reg-list li a").css("pointer-events", "none");
943    });
944
945</script>
945
946
947                        <div class="input_form_wrap">
948
949                            <div class="input_inner" id="r_username_field">
950                                <i class="fas fa-user"></i>
951                                <input type="text" class="input_custom" name="username" id="step1_username"
952                                    placeholder="Username">
953                            </div>
954
955                            <div class="input_inner" id="r_password_field" style="position: relative;">
956                                <i class="fas fa-unlock"></i>
957                                <input type="password" class="input_custom" name="password" id="step1_password"
958                                    placeholder="Password">
959                            </div>
960
961                            <div class="input_inner" id="r_confirm_password_field">
962                                <i class="fas fa-unlock"></i>
963                                <input type="password" class="input_custom" name="confirm_password" id="step1_confirm_password"
964                                    placeholder="Confirm Password">
965                            </div>
966                            <ul class="list-valid">
967                                <li>
968                                    <span class="low-upper-case" id="r_uppercase_lowercase_message">
969                                        <i class="fa fa-times" aria-hidden="true"></i></span>&nbsp;1 lowercase & 1 uppercase</li>
970                                <li>
971                                    <span class="one-number" id="r_number_message">
972                                        <i class="fa fa-times" aria-hidden="true"></i></span>&nbsp;1 number (0-9)</li>
973                                <li>
974                                    <span class="one-special-char" id="r_special_message">
975                                        <i class="fa fa-times" aria-hidden="true"></i></span>&nbsp;1 Special Character (!@#$%^&*)</li>
976                                <li>
977                                    <span class="eight-character" id="r_length_message">
978                                        <i class="fa fa-times" aria-hidden="true"></i></span>&nbsp;Between 8-20 Character</li>
979                            </ul>
980
981                            <div class="input_inner" id="r_email_field">
982                                <i class="fas fa-envelope"></i>
983                                <input type="text" class="input_custom" name="email" id="step1_email"
984                                    placeholder="E-mail">
985                            </div>
986
987                            <div class="phone-input-wrap" id="r_contact_field">
988                                <div class="input_inner phone">
989                                    <i class="fas fa-phone"></i>
990                                    <select class="input_custom phone-code" id="r_contact_phone_code">
991                                        <option value="010">6010</option>
992                                        <option value="011">6011</option>
993                                        <option value="012">6012</option>
994                                        <option value="013">6013</option>
995                                        <option value="014">6014</option>
996                                        <option value="015">6015</option>
997                                        <option value="016">6016</option>
998                                        <option value="017">6017</option>
999                                        <option value="018">6018</option>
1000                                        <option value="019">6019</option>
1001                                    </select>
1002                                </div>
1003                                <div class="input_inner phone">
1004                                    <input type="text" class="input_custom phone-num" name="r_contact_input" id="r_contact_input"
1005                                        placeholder="Contact No.">
1006                                </div>
1007                                <input type="hidden" name="contact" id="contact" />
1008                            </div>
1009
1010                            
1011                            <div class="input_inner" id="r_v_code_field">
1012                                <i class="fa fa-angle-double-right" aria-hidden="true"></i>
1013                                <input type="text" class="input_custom" name="v_code" id="step1_v_code" placeholder="Verification Code">
1014                                <a href="javascript:refreshVCode('rg','registrationVeriCode');" class="topRefresh">
1015                                <img id="registrationVeriCode" class="reg-code" width="90" height="34" />
1016                            </a>
1017                            </div>
1018                            
1019
1020                            <input type="hidden" name="agent" id="step1_agent">
1021
1022                            <div class="field-check">
1023                                <input type="checkbox" id="tnc" checked>
1024                                <label for="tnc">I'm over 18 years of age and I accept these Terms and Conditions and Privacy Policy.</label>
1025                            </div>
1026
1027                            <button type="submit" class="btn_login_modal" id="register_step_1_submit_btn">
1028                                Send
1029                            </button>
1030
1031                        </div>
1032
1033                    </form>
1034
1035                </div>
1036            </div>
1037        </div>
1038    </div>
1039</div>
1040
1041
1042<div id="modal_register_2" class="modal fade share_modal" tabindex="-1" role="dialog" data-keyboard="false" data-backdrop="static">
1043    <div class="modal-dialog modal-dialog-centered" role="document">
1044        <div class="modal-content">
1045            <div class="modal-body">
1046                <button type="button" class="close" data-dismiss="modal" aria-label="Close">
1047                    <span aria-hidden="true">&times;</span>
1048                </button>
1049                <div class="modal_body_share">
1050                    <div class="modal_body_share_left">
1051                        <img src="/web/assets/images/login/login_img.png">
1052                    </div>
1053                    <div class="modal_body_right">
1054
1055                        
1056
1057<div class="modal_head">
1058    <button type="button" class="modalhead_btn" data-dismiss="modal" data-toggle="modal"
1059        data-target="#modal_login">
1060        Login</button>
1061    <button type="button" class="modalhead_btn active">Sign Up</button>
1062</div>
1063
1064<div class="reg-list">
1065    <ul>
1066        <li>
1067            <a href="javascript:void(0)" class="btn-reg active reg_step_1" data-toggle="modal">1</a>
1068        </li>
1069        <li>
1070            <a href="javascript:void(0)" class="btn-reg reg_step_2" data-toggle="modal">2</a>
1071        </li>
1072        <li>
1073            <a href="javascript:void(0)" class="btn-reg reg_step_success" data-toggle="modal"><i class="fas fa-check"></i></a>
1074        </li>
1075    </ul>
1076</div>
1077
1078<script>
1079    var check_got_activate_member_method = "sms";
1080
1081    $(document).ready(function () {
1082        
1083        sessionStorage.setItem("last-step", "");
1084        
1085
1086        if (check_got_activate_member_method != "")
1087            $(".reg_step_2").parent().show();
1088
1089        $('#modal_register').on('shown.bs.modal', function () {
1090            $('.reg_step_1').addClass('active');
1091
1092            $('.reg_step_2').removeClass('active');
1093            $('.reg_step_success').removeClass('active');
1094
1095            $('.reg_step_2').attr('data-target', '#modal_register_2').attr('data-dismiss', 'modal');
1096            $('.reg_step_success').attr('data-target', '#modal_register_success').attr('data-dismiss', 'modal');
1097        });
1098
1099        $('#modal_register_2').on('shown.bs.modal', function () {
1100            $('.reg_step_2').addClass('active');
1101
1102            $('.reg_step_1').removeClass('active');
1103            $('.reg_step_success').removeClass('active');
1104
1105            $('.reg_step_1').attr('data-target', '#modal_register').attr('data-dismiss', 'modal');
1106            $('.reg_step_success').attr('data-target', '#modal_register_success').attr('data-dismiss', 'modal');
1107        });
1108
1109        $('#modal_register_success').on('shown.bs.modal', function () {
1110            $('.reg_step_success').addClass('active');
1111
1112            $('.reg_step_1').removeClass('active');
1113            $('.reg_step_2').removeClass('active');
1114
1115            $('.reg_step_1').attr('data-target', '#modal_register').attr('data-dismiss', 'modal');
1116            $('.reg_step_2').attr('data-target', '#modal_register_2').attr('data-dismiss', 'modal');
1117        });
1118
1119        //$(".reg-list li a").css("pointer-events", "none");
1120    });
1121
1122</script>
1122
1123
1124                        <form class="input_form_wrap" id="form_activate_account">
1125                            <input type="hidden" name="username" id="activate_username" />
1126                            <input type="hidden" name="token" id="activate_token" />
1127
1128                            <label class="form_label">OTP Verification<span class="red-txt">*</span></label>
1129                            <div class="otp-wrap">
1130                                <input type="text" class="form-control activate_code" name="code_1" id="code_1" maxlength="1">
1131                                <input type="text" class="form-control activate_code" name="code_2" id="code_2" maxlength="1">
1132                                <input type="text" class="form-control activate_code" name="code_3" id="code_3" maxlength="1">
1133                                <input type="text" class="form-control activate_code" name="code_4" id="code_4" maxlength="1">
1134                                <input type="text" class="form-control activate_code" name="code_5" id="code_5" maxlength="1">
1135                                <input type="text" class="form-control activate_code" name="code_6" id="code_6" maxlength="1">
1136                            </div>
1137                            <input type="hidden" name="v_code" id="activate_activate_code" />
1138                            <div id="activation_error_msg"></div>
1139
1140                            <button type="submit" class="btn_login_modal" id="register_step_2_submit_btn">
1141                                Register
1142                            </button>
1143                            <div class="text-center">
1144                                <a href="javascript:void(0)" class="resend-otp-btn" id="activate_send_otp_btn" onclick="resendActivateCode()">
1145                                    Resend Code&nbsp<span id="activate_acTimer"></span>
1146                                </a>
1147                            </div>
1148
1149                        </form>
1150
1151                    </div>
1152                </div>
1153            </div>
1154        </div>
1155    </div>
1156</div>
1157
1158
1159<div id="modal_register_success" class="modal fade share_modal" tabindex="-1" role="dialog" data-keyboard="false" data-backdrop="static">
1160    <div class="modal-dialog modal-dialog-centered" role="document">
1161        <div class="modal-content">
1162            <div class="modal-body">
1163                <button type="button" class="close" data-dismiss="modal" aria-label="Close">
1164                    <span aria-hidden="true">&times;</span>
1165                </button>
1166                <div class="modal_body_share">
1167                    <div class="modal_body_share_left">
1168                        <img src="/web/assets/images/login/login_img.png">
1169                    </div>
1170                    <div class="modal_body_right">
1171
1172                        
1173
1174<div class="modal_head">
1175    <button type="button" class="modalhead_btn" data-dismiss="modal" data-toggle="modal"
1176        data-target="#modal_login">
1177        Login</button>
1178    <button type="button" class="modalhead_btn active">Sign Up</button>
1179</div>
1180
1181<div class="reg-list">
1182    <ul>
1183        <li>
1184            <a href="javascript:void(0)" class="btn-reg active reg_step_1" data-toggle="modal">1</a>
1185        </li>
1186        <li>
1187            <a href="javascript:void(0)" class="btn-reg reg_step_2" data-toggle="modal">2</a>
1188        </li>
1189        <li>
1190            <a href="javascript:void(0)" class="btn-reg reg_step_success" data-toggle="modal"><i class="fas fa-check"></i></a>
1191        </li>
1192    </ul>
1193</div>
1194
1195<script>
1196    var check_got_activate_member_method = "sms";
1197
1198    $(document).ready(function () {
1199        
1200        sessionStorage.setItem("last-step", "");
1201        
1202
1203        if (check_got_activate_member_method != "")
1204            $(".reg_step_2").parent().show();
1205
1206        $('#modal_register').on('shown.bs.modal', function () {
1207            $('.reg_step_1').addClass('active');
1208
1209            $('.reg_step_2').removeClass('active');
1210            $('.reg_step_success').removeClass('active');
1211
1212            $('.reg_step_2').attr('data-target', '#modal_register_2').attr('data-dismiss', 'modal');
1213            $('.reg_step_success').attr('data-target', '#modal_register_success').attr('data-dismiss', 'modal');
1214        });
1215
1216        $('#modal_register_2').on('shown.bs.modal', function () {
1217            $('.reg_step_2').addClass('active');
1218
1219            $('.reg_step_1').removeClass('active');
1220            $('.reg_step_success').removeClass('active');
1221
1222            $('.reg_step_1').attr('data-target', '#modal_register').attr('data-dismiss', 'modal');
1223            $('.reg_step_success').attr('data-target', '#modal_register_success').attr('data-dismiss', 'modal');
1224        });
1225
1226        $('#modal_register_success').on('shown.bs.modal', function () {
1227            $('.reg_step_success').addClass('active');
1228
1229            $('.reg_step_1').removeClass('active');
1230            $('.reg_step_2').removeClass('active');
1231
1232            $('.reg_step_1').attr('data-target', '#modal_register').attr('data-dismiss', 'modal');
1233            $('.reg_step_2').attr('data-target', '#modal_register_2').attr('data-dismiss', 'modal');
1234        });
1235
1236        //$(".reg-list li a").css("pointer-events", "none");
1237    });
1238
1239</script>
1239
1240
1241                        <div class="input_form_wrap reg_form">
1242                            <h4 class="text-uppercase">Congratulations!</h4>
1243                            <div class="successful-tick">
1244                                <img src="/web/assets/images/register/tick.png">
1245                            </div>
1246                            <p>Successfully register as a member</p>
1247                            <button type="button" class="btn_login_modal" data-toggle="modal" data-dismiss="modal" onclick="changePage('duitnow')">Deposit</button>
1248                        </div>
1249                    </div>
1250                </div>
1251            </div>
1252        </div>
1253    </div>
1254</div>
1255
1256<script>
1257    $(document).ready(function () {
1258        
1259        setAgentCode();
1260        
1261
1262        $("#register_step_1_submit_btn").prop("disabled", !$("#tnc").is(":checked"));
1263
1264        $("#tnc").on("change", function () {
1265            $("#register_step_1_submit_btn").prop("disabled", !$(this).is(":checked"));
1266        });
1267    });
1268
1269    var $rPassword = $('#step1_confirm_password');
1270    // Update validation messages and password strength as user types
1271    $rPassword.on('input', function () {
1272        var inputVal = $(this).val();
1273        var minLength = 8;
1274        var maxLength = 20;
1275        var hasUpperCase = /[A-Z]/.test(inputVal);
1276        var hasNumber = /\d/.test(inputVal);
1277        var hasLowerCase = /[a-z]/.test(inputVal);
1278        var hasSpeicial = /[`!@#$%^&*()_+\-=\[\]{};':"\\|,.<>\/?~]/.test(inputVal);
1279        var check1 = 0, check2 = 0, check3 = 0, check4 = 0;
1280
1281        // Validate length
1282        if (inputVal.length >= minLength && inputVal.length <= maxLength) {
1283            $('#r_length_message').addClass('text-success');
1284            $('#r_length_message i').removeClass('fa-times').addClass('fa-check');
1285            check1 = 1;
1286        } else {
1287            $('#r_length_message').removeClass('text-success');
1288            $('#r_length_message i').addClass('fa-times').removeClass('fa-check');
1289            check1 = 0;
1290        }
1291
1292        // Validate uppercase letter
1293        if (hasUpperCase && hasLowerCase) {
1294            $('#r_uppercase_lowercase_message').addClass('text-success');
1295            $('#r_uppercase_lowercase_message i').removeClass('fa-times').addClass('fa-check');
1296            check2 = 1;
1297        } else {
1298            $('#r_uppercase_lowercase_message').removeClass('text-success');
1299            $('#r_uppercase_lowercase_message i').addClass('fa-times').removeClass('fa-check');
1300            check2 = 0;
1301        }
1302
1303        // Validate number
1304        if (hasNumber) {
1305            $('#r_number_message').addClass('text-success');
1306            $('#r_number_message i').removeClass('fa-times').addClass('fa-check');
1307            check3 = 1;
1308        } else {
1309            $('#r_number_message').removeClass('text-success');
1310            $('#r_number_message i').addClass('fa-times').removeClass('fa-check');
1311            check3 = 0;
1312        }
1313
1314        // Validate special character
1315        if (hasSpeicial) {
1316            $('#r_special_message').addClass('text-success');
1317            $('#r_special_message i').removeClass('fa-times').addClass('fa-check');
1318            check4 = 1;
1319        } else {
1320            $('#r_special_message').removeClass('text-success');
1321            $('#r_special_message i').addClass('fa-times').removeClass('fa-check');
1322            check4 = 0;
1323        }
1324
1325        if (check1 == 0 || check2 == 0 || check3 == 0 || check4 == 0)
1326            $("#register_step_1_submit_btn").css("pointer-events", "none");
1327        else
1328            $("#register_step_1_submit_btn").css("pointer-events", "");
1329
1330    });
1331
1332    // Registration Step 1
1333    $("#form_registration").validate({
1334        rules: {
1335            "username": {
1336                required: true,
1337                minlength: 6,
1338                maxlength: 12,
1339                alpha_numericRegex: true
1340            },
1341            "email": {
1342                required: true,
1343                maxlength: 200,
1344                email: true
1345            },
1346            "password": {
1347                required: true,
1348                //minlength: 8,
1349                //maxlength: 20,
1350            },
1351            "confirm_password": {
1352                required: false,
1353                //minlength: 8,
1354                //maxlength: 20,
1355                equalTo: "input[id='step1_password']",
1356            },
1357            "full_name": {
1358                required: true,
1359                alphabetsonly: true,
1360            },
1361            "r_contact_input": {
1362                required: true,
1363                number: true,
1364                minlength: 7,
1365                maxlength: 8,
1366            },
1367            "v_code": {
1368                required: true,
1369            },
1370        },
1371        messages: {
1372            "username": {
1373                required: "Please insert Username.",
1374                minlength: "Please enter at least {0} character",
1375                maxlength: "Please enter at most {0} character",
1376                alpha_numericRegex:"This field accept alphanumeric value only"
1377            },
1378            "email": {
1379                required: "Please insert email.",
1380                maxlength: "Please enter at most {0} character",
1381                email: "Please insert valid email, e.g. : [email protected].",
1382            },
1383            "password": {
1384                required: "Please insert Password.",
1385                minlength: "Please enter at least {0} character",
1386                maxlength: "Please enter at most {0} character",
1387            },
1388            "confirm_password": {
1389                required: "Please insert Confirm Password.",
1390                minlength: "Please enter at least {0} character",
1391                maxlength: "Please enter at most {0} character",
1392                equalTo: "Confirm password must same with password",
1393            },
1394            "full_name": {
1395                required: "Please insert Full Name.",
1396                alphabetsonly: "This field accept alphabet value only",
1397            },
1398            "r_contact_input": {
1399                required: "Please insert Contact.",
1400                digits: "This field accept number only",
1401                minlength: "Please enter at least {0} character",
1402                maxlength: "Please enter at most {0} character",
1403            },
1404            "v_code": {
1405                required: "Please insert verification code.",
1406            },
1407        },
1408        errorPlacement: function (error, element) {
1409            if (element.attr("name") == "username")
1410                error.insertAfter("#r_username_field");
1411            else if (element.attr("name") == "email")
1412                error.insertAfter("#r_email_field");
1413            else if (element.attr("name") == "password")
1414                error.insertAfter("#r_password_field");
1415            else if (element.attr("name") == "confirm_password")
1416                error.insertAfter("#r_confirm_password_field");
1417            else if (element.attr("name") == "full_name")
1418                error.insertAfter("#r_full_name_field");
1419            else if (element.attr("name") == "r_contact_input")
1420                error.insertAfter("#r_contact_field");
1421            else if (element.attr("name") == "v_code")
1422                error.insertAfter("#r_v_code_field");
1423            else
1424                error.insertAfter(element);
1425        },
1426        submitHandler: function (form) {
1427            $("#freezescreen").show();;
1428            $("#loadingbtn").show();;
1429            $("#register_step_1_submit_btn").hide();
1430
1431            var phone_code = $("#r_contact_phone_code").val();
1432            var phone_input = $("#r_contact_input").val();
1433            $("#contact").val(phone_code + phone_input);
1434            console.log($("#contact").val());
1435
1436            $.ajax({
1437                type: 'POST',
1438                url: '/ajaxData/proc_register',
1439                data: $('#form_registration').serialize(),
1440                cache: false,
1441                dataType: 'json',
1442                success: function (d) {
1443                    $("#freezescreen").hide();
1444                    $("#loadingbtn").hide();
1445                    $("#register_step_1_submit_btn").show();;
1446
1447                    if (d.errCode == "0") {
1448                        $('#form_registration')[0].reset();
1449                        sessionStorage.setItem("last-step", "1");
1450
1451                        // Hide step 1
1452                        $(".btn-reg").removeClass("active");
1453                        $("#modal_register").modal("hide");
1454
1455                        // Show success
1456                        $(".reg_step_success").addClass("active");
1457                        $("#modal_register_success").modal("show");
1458
1459                    } else if (d.errCode == "100018") {
1460                        alert(d.errMsg);
1461
1462                        $("#activate_username").val($("#step1_username").val());
1463                        $("#activate_token").val(d.data.token);
1464
1465                        // Hide step 1
1466                        $(".btn-reg").removeClass("active");
1467                        $("#modal_register").modal("hide");
1468
1469                        // Show step 2 (OTP)
1470                        $(".reg_step_2").addClass("active");
1471                        $("#modal_register_2").modal("show");
1472
1473                        $("#code_1").focus();
1474                        $("#a_username").val($("#username").val());
1475
1476                    } else {
1477                        alert(d.errCode + "-" + d.errMsg);
1478                    }
1479                },
1480                error: function (jqXHR, textStatus, errorThrown) {
1481                    $("#freezescreen").hide();
1482                    $("#loadingbtn").hide();
1483                    $("#submit_btn").show();;
1484                    alert("Unknown error, Please contact our customer service");
1485                }
1486            });
1487        }
1488    });
1489
1490    function setAgentCode() {
1491        var affid = getCookie("ag");
1492
1493        console.log("ag Code :'" + affid + "'");
1494        Cookies.set('ag', affid, { expires: 7 });
1495
1496        if (affid != null && affid != "" && affid != "null") {
1497            console.log("ag code found");
1498            $("#modal_register").modal("show");
1499            $("#step1_agent").val(affid);
1500            $("#step1_agent").prop('readonly', true);
1501        }
1502    }
1503
1504    jQuery.validator.addMethod("alphabetsonly", function (value, element) {
1505        return this.optional(element) || /^[a-zA-Z\s]+$/i.test(value);
1506    });
1507
1508    // Registration Step 2
1509    var elts = document.getElementsByClassName('activate_code')
1510    Array.from(elts).forEach(function (elt) {
1511        elt.addEventListener("keyup", function (event) {
1512            // Number 13 is the "Enter" key on the keyboard
1513            if (event.keyCode === 13 || elt.value.length == 1) {
1514                if (elt.nextElementSibling != null) {
1515                    // Focus on the next sibling
1516                    elt.nextElementSibling.focus()
1517                } else
1518                    $("#code_6").focus();
1519            }
1520        });
1521    });
1522
1523    $('body').on('keyup', 'input.activate_code', function () {
1524        var key = event.keyCode || event.charCode;
1525        var inputs = $('input.activate_code');
1526        if (($(this).val().length === this.size) && key != 32) {
1527            inputs.eq(inputs.index(this) + 1).focus();
1528        }
1529        if (key == 8 || key == 46) {
1530            var indexNum = inputs.index(this);
1531            if (indexNum != 0) {
1532                inputs.eq(inputs.index(this)).val('').focus();
1533                inputs.eq(inputs.index(this) - 1).focus();
1534            }
1535        }
1536    });
1537
1538    // Registration Step 2
1539    $("#form_activate_account").validate({
1540        rules: {
1541            "code_1": {
1542                required: true,
1543                digits: true,
1544            },
1545            "code_2": {
1546                required: true,
1547                digits: true,
1548            },
1549            "code_3": {
1550                required: true,
1551                digits: true,
1552            },
1553            "code_4": {
1554                required: true,
1555                digits: true,
1556            },
1557            "code_5": {
1558                required: true,
1559                digits: true,
1560            },
1561            "code_6": {
1562                required: true,
1563                digits: true,
1564            },
1565        },
1566        messages: {
1567            "code_1": {
1568                required: "This field is required.",
1569                digits: "This field accept number only",
1570            },
1571            "code_2": {
1572                required: "This field is required.",
1573                digits: "This field accept number only",
1574            },
1575            "code_3": {
1576                required: "This field is required.",
1577                digits: "This field accept number only",
1578            },
1579            "code_4": {
1580                required: "This field is required.",
1581                digits: "This field accept number only",
1582            },
1583            "code_5": {
1584                required: "This field is required.",
1585                digits: "This field accept number only",
1586            },
1587            "code_6": {
1588                required: "This field is required.",
1589                digits: "This field accept number only",
1590            },
1591        },
1592        errorPlacement: function (error, element) {
1593            if (element.attr("name") == "code_1" || element.attr("name") == "code_2" || element.attr("name") == "code_3" ||
1594                element.attr("name") == "code_4" || element.attr("name") == "code_5" || element.attr("name") == "code_6") {
1595                $("#activation_error_msg").empty();
1596                error.appendTo("#activation_error_msg");
1597            }
1598            else
1599                error.insertAfter(element);
1600        },
1601        submitHandler: function (form) {
1602            $("#freezescreen").show();
1603            $("#loadingbtn").show();
1604            $("#submitbtn").hide();
1605            $("#send_otp_btn").hide();
1606
1607            var final_code = $("#code_1").val() + $("#code_2").val() + $("#code_3").val() + $("#code_4").val() + $("#code_5").val() + $("#code_6").val();
1608
1609            $("#activate_activate_code").val(final_code);
1610
1611            var fd = new FormData();
1612            fd.append('action', 'submitaccountActivationOTP');
1613            fd.append('OTPValue', $('#activate_activate_code').val());
1614            fd.append('token', $('#activate_token').val());
1615
1616            $.ajax({
1617                type: 'POST',
1618                url: '/ajaxData/proc_activatePlayerV2',
1619                data: fd,
1620                dataType: 'json',
1621                contentType: false,
1622                processData: false,
1623                success: function (d) {
1624                    if (d.errCode == "100019") {
1625                        $('#form_activate_account')[0].reset();
1626                        $('#modal_register_2').modal("hide");
1627
1628                        $(".reg_step_success").addClass("active");
1629                        $('#modal_register_success').modal("show");
1630                    }
1631                    else {
1632                        alert(d.errCode + "-" + d.errMsg);
1633                    }
1634                },
1635                error: function (jqXHR, textStatus, errorThrown) {
1636                    alert("Unknown error, Please contact our customer service");
1637                },
1638                complete: function () {
1639                    $("#freezescreen").hide();
1640                    $("#loadingbtn").hide();
1641                    $("#submitbtn").show();
1642                    $("#send_otp_btn").show();
1643                }
1644            });
1645        }
1646    });
1647
1648    function resendActivateCode() {
1649
1650        var fd = new FormData();
1651        fd.append('action', 'resendAccountActivationOTP');
1652        fd.append('token', $('#activate_token').val());
1653
1654        $("#freezescreen").show();
1655        $("#activate_send_otp_btn").hide();
1656
1657        $.ajax({
1658            type: 'POST',
1659            url: '/ajaxData/proc_activatePlayerV2',
1660            data: fd,
1661            dataType: 'json',
1662            contentType: false,
1663            processData: false,
1664            success: function (d) {
1665
1666                $("#freezescreen").hide();
1667                $('#activate_send_otp_btn').addClass("disabled");
1668                $("#activate_send_otp_btn").show();
1669
1670                alert(d.errCode + "-" + d.errMsg)
1671
1672                /*CountDown Resend Button*/
1673                var acCountdown = 60;
1674                $('#activate_acTimer').text("(" + acCountdown + ")");
1675
1676                var acTimer = setInterval(function () {
1677                    acCountdown--;
1678                    if (acCountdown < 0) {
1679                        clearInterval(acTimer);
1680                        $('#activate_acTimer').text("");
1681                        $('#activate_send_otp_btn').removeClass("disabled");
1682                    }
1683                    else {
1684                        $('#activate_acTimer').text("(" + acCountdown + ")");
1685                    }
1686                }, 1000);
1687            },
1688            error: function (jqXHR, textStatus, errorThrown) {
1689                $("#freezescreen").hide();
1690                $("#activate_send_otp_btn").show();
1691                alert("Unknown error, Please contact our customer service");
1692            }
1693        });
1694    }
1695
1696    $('#modal_register_success').on('hidden.bs.modal', function () {
1697        sessionStorage.setItem("firstLogin", "1");
1698        location.reload();
1699    })
1700</script>
1700
1701
1702
1703        
1704
1705    </div>
1706    
1707
1708    
1709
1710    <div class="t-header">
1711        <header>
1712            <div class="header_left">
1713                <div class="logo_desktop">
1714                    <button type="button" id="header_hamburger_id" class="header_hamburger"><i class="fas fa-bars"></i></button>
1715                    <a href="/" class="logo">
1716                        <img src="/web/assets/images/common/logo.png">
1717                    </a>
1718                </div>
1719            </div>
1720            <div class="header_right">
1721                
1722                <div class="login_btn_container">
1723                    <button type="button" class="btn_container btn_log" data-toggle="modal" data-target="#modal_login">Login</button>
1724                    <button type="button" class="btn_container btn_reg" data-toggle="modal" data-target="#modal_register">Sign Up</button>
1725                    <button type="button" class="btn_popup_announcement chat_btn">
1726                        <img src="/web/assets/images/header/chat.png">
1727                    </button>
1728                </div>
1729                
1730            </div>
1731        </header>
1732    </div>
1733
1734    
1735
1736    <!-- BEGIN: Contents from .aspx -->
1737    <div class="t-body">
1738
1739        
1740
1741<div id="left_menu_container_wrap_id" class="left_menu_container_wrap">
1742    <div class="left_menu_container">
1743        <div class="left_menu_container_inner">
1744
1745            <div class="left_container_bonus">
1746                <div class="left_container_bonus_box">
1747                    <a href="/promotions">
1748                        <span class="leftmenu-icon">
1749                            <img src="/web/assets/images/icon/Promo.gif"></span>
1750                        <div class="left_container_bonus_txt"><span class="left_container_bonus_txt_btm">Promotion</span></div>
1751                    </a>
1752                </div>
1753                <div class="left_container_bonus_box event_box" style="display: none;">
1754                    <a href="/merdeka-madness">
1755                        <span class="leftmenu-icon">
1756                            <img src="/web/assets/images/festival/icon-merdeka-2026.gif"></span>
1757                        <div class="left_container_bonus_txt"><span class="left_container_bonus_txt_btm">Merdeka Madness</span></div>
1758                    </a>
1759                </div>
1760                <div class="left_container_bonus_box">
1761                    <a href="/fortune-wheel">
1762                        <span class="leftmenu-icon">
1763                            <img src="/web/assets/images/icon/Wheel.gif"></span>
1764                        <div class="left_container_bonus_txt"><span class="left_container_bonus_txt_btm">Fortune Wheel</span></div>
1765                    </a>
1766                </div>
1767                <div class="left_container_bonus_box">
1768                    <a href="/uuslots-free-spin-bonuses" target="_blank">
1769                        <span class="leftmenu-icon">
1770                            <img src="/web/assets/images/icon/uuslots-free.gif"></span>
1771                        <div class="left_container_bonus_txt"><span class="left_container_bonus_txt_btm">Free Spin Bonuses</span></div>
1772                    </a>
1773                </div>
1774                <div class="left_container_bonus_box">
1775                    <a href="/vip">
1776                        <span class="leftmenu-icon">
1777                            <img src="/web/assets/images/icon/VIP.gif"></span>
1778                        <div class="left_container_bonus_txt"><span class="left_container_bonus_txt_btm">VIP</span></div>
1779                    </a>
1780                </div>
1781                <div class="left_container_bonus_box">
1782                    <a href="/contact-us">
1783                        <span class="leftmenu-icon">
1784                            <img src="/web/assets/images/icon/contact.gif"></span>
1785                        <div class="left_container_bonus_txt"><span class="left_container_bonus_txt_btm">Contact Us</span></div>
1786                    </a>
1787                </div>
1788            </div>
1789
1790            <ul class="side_menu_content">
1791                <li>
1792                    <a href="/">
1793                        <img src="/web/assets/images/icon/sidemenu/icon-home.png">
1794                        Home</a>
1795                </li>
1796                <li>
1797                    <a href="/live-casino">
1798                        <img src="/web/assets/images/icon/sidemenu/icon-casino.png">
1799                        Live Casino</a>
1800                </li>
1801                <li>
1802                    <a href="/slots">
1803                        <img src="/web/assets/images/icon/sidemenu/icon-slots.png">
1804                        Slots</a>
1805                </li>
1806                <li>
1807                    <a href="/sportsbook">
1808                        <img src="/web/assets/images/icon/sidemenu/icon-sport.png">
1809                        Sportsbook</a>
1810                </li>
1811                <li>
1812                    <a href="/esports">
1813                        <img src="/web/assets/images/icon/sidemenu/icon-esport.png">
1814                        Esports</a>
1815                </li>
1816                <li>
1817                    <a href="/poker">
1818                        <img src="/web/assets/images/icon/sidemenu/icon-poker.png">
1819                        Poker</a>
1820                </li>
1821                <li>
1822                    <a href="/lottery">
1823                        <img src="/web/assets/images/icon/sidemenu/icon-lotto.png">
1824                        4D</a>
1825                </li>
1826                
1827                <li>
1828                    <a href="/blog">
1829                        <img src="/web/assets/images/icon/sidemenu/icon-blog.png">
1830                        Blog</a>
1831                </li>
1832            </ul>
1833
1834            <div class="sidemenu-bar">
1835                <div class="sidemenu-ttl">Language&nbsp;<span>Option</span></div>
1836                <div class="btn-group dropup btn_dropup_lang">
1837                    <button type="button" class="btn btn-secondary dropdown-toggle current_language" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
1838                    </button>
1839                    <div class="dropdown-menu language_menu" x-placement="top-start">
1840                    </div>
1841                </div>
1842            </div>
1843
1844            <div class="sidemenu-bar">
1845                <a href="javascript:void(0)" onclick="MyWindow=window.open('https://lc.chat/now/3716461/','MyWindow','width=400,height=600'); return false;" class="chat_ser">
1846                    <img src="/web/assets/images/index/icon-livechat.png">Live Chat</a>
1847            </div>
1848
1849        </div>
1850    </div>
1851</div>
1852
1853<script>
1854    $(document).ready(function () {
1855        getLanguage();
1856    });
1857
1858    // Set selected language
1859
1860    var languages = {
1861            'en-US': { name: 'English', flag: 'uk' },
1862            'zh-CN': { name: 'Chinese', flag: 'cs' },
1863            'ms-MY': { name: 'Malay', flag: 'my' },
1864    };
1865
1866    function getLanguage() {
1867        var current_language_html = "", language_menu = "";
1868        var current_language_code = getCookie("selected-lang") || 'en-US';
1869
1870        // Default to English if not found
1871        var current = languages[current_language_code] || languages['en-US'];
1872
1873        // Set current language HTML
1874        current_language_html += '<img class="lang_icon" src="/web/assets/images/flag/lang-' + current.flag + '.png">' + current.name;
1875        $(".current_language").html(current_language_html);
1876
1877        // Create other languages menu (except current)
1878        $.each(languages, function (code, lang) {
1879            if (code !== current_language_code) {
1880                language_menu += '<a href="javascript:void(0)" id="' + code + '">';
1881                language_menu += '<img class="lang_icon" src="/web/assets/images/flag/lang-' + lang.flag + '.png">';
1882                language_menu += lang.name;
1883                language_menu += '</a>';
1884            }
1885        });
1886        $(".language_menu").html(language_menu);
1887
1888        // Add click event
1889        $(".language_menu a").click(function () {
1890            var value = $(this).attr("id");
1891            setlanguage(value, 1);
1892        });
1893    }
1894
1895    function setlanguage(language) {
1896        clearCookies("selected-lang");
1897        setCookies("selected-lang", language, "720");
1898        location.reload();
1899    }
1900
1901</script>
1901
1902
1903
1904        <div class="main_wrapper afterlogin_main_bg">
1905            <div class="wrapper_inner">
1906                
1907    <div class="info-bg">
1908        <div class="container-fluid py-5">
1909            <div class="row m-0" id="section1">
1910                
1911               
1912
1913<div class="col-2 info-nav">
1914    <ul>
1915        <li>
1916            <a href="/about-us" class="keychainify-checked" id="about-us">
1917                About Us
1918            </a>
1919        </li>
1920        <li>
1921            <a href="/faq" class="keychainify-checked" id="faq">
1922                FAQ
1923            </a>
1924        </li>
1925        <li>
1926            <a href="/banking" class="keychainify-checked" id="banking">
1927                Banking
1928            </a>
1929        </li>
1930        <li>
1931            <a href="/terms-and-conditions" class="keychainify-checked" id="terms-and-conditions">
1932                Terms & Conditions
1933            </a>
1934        </li>
1935        <li>
1936            <a href="/privacy-policy" class="keychainify-checked" id="privacy-policy">
1937                Privacy Policy
1938            </a>
1939        </li>
1940        <li>
1941            <a href="/social-responsibility" class="keychainify-checked" id="social-responsibility">
1942                Social Responsibility
1943            </a>
1944        </li>
1945        <li>
1946            <a href="/contact-us" class="keychainify-checked" id="contact-us">
1947                Contact Us
1948            </a>
1949        </li>
1950    </ul>
1951</div>
1952
1953<script>
1954    const info_path = window.location.pathname;
1955    const info_pageName = info_path.substring(info_path.lastIndexOf('/') + 1);
1956
1957    switch (info_pageName) {
1958        case 'about-us':
1959            $('#about-us').addClass("active");
1960            break;
1961        case 'faq':
1962            $('#faq').addClass("active");
1963            break;
1964        case 'banking':
1965            $('#banking').addClass("active");
1966            break;
1967        case 'terms-and-conditions':
1968            $('#terms-and-conditions').addClass("active");
1969            break;
1970        case 'privacy-policy':
1971            $('#privacy-policy').addClass("active");
1972            break;
1973        case 'social-responsibility':
1974            $('#social-responsibility').addClass("active");
1975            break;
1976        case 'contact-us':
1977            $('#contact-us').addClass("active");
1978            break;
1979    }
1980
1981</script>
1981
1982
1983
1984                <div class="col-10">
1985                    <div class="info-center">
1986                        <div class="info-title">
1987                            <h5>About Us</h5>
1988                        </div>
1989                        <div class="info-wrapper">
1990                            <p>M777 is Malaysia’s leading Online Casino and Sportsbook Gaming Establishment. Online Casino gaming plays an integral role in the entertainment field, and we believe that, with self-control and limitations, everyone deserves a chance to utilise their luck on some the fun and games.</p>
1991
1992
1993                            <p>Play all sorts of exciting games, including card variations such as baccarat, blackjack and poker; classic and progressive slots machines, European and American Roulette, Sic Bo, Keno, Lottery, Scratch Cards, and many more. For sports fanatics, be part of the game by cheering and betting on your favourite sports team at anytime and anywhere. Let our games spark unexpected money gains and jackpots for you! At M777, we strive to give you the best user experience. Our commitments include:</p>
1994                            <p>
1995                                <span class="stitle">HASSLE-FREE AND QUICK MONEY TRANSACTIONS</span><br>
1996                                We understand the excitement of wanting to play and loathing the wait, therefore we assure you that all deposit and withdrawal transactions are hassle-free, speedy and secured.
1997                            </p>
1998                            <p>
1999                                <span class="stitle">24-HOURS CUSTOMER SERVICE</span><br>
2000                                Our Customer Service Representatives on Live Chat are online 24 hours a day, 7 days a week. Each of them has gone through a rigorous product, services and hospitality training to ensure professional support and assistance when at your service.
2001                            </p>
2002                            <p>
2003                                <span class="stitle">DEPOSIT AND WITHDRAWAL METHODS</span><br>
2004                                Online bank transfer is our principal transaction method. We also accept manual transfers via ATM (Automated Teller Machine) or CDM (Cash Deposit Machine) for those who don’t have online banking. Credit card and third-party payment merchants are currently not available, but we are working our way on implementing it to serve you better.
2005                            </p>
2006                            <p>
2007                                <span class="stitle">FULLY COMPLIANT AND LICENSED</span><br>
2008                                M777 is fully licensed in the Philippines under First Cagayan Leisure and Resort Corporation (FCLRC), meaning that we are obligated to adhere to the rules and regulations in one of worldwide’s most strictly controlled gaming regulatory jurisdiction. All your personal information is kept secured and confidential under an SSL encryption at all times, and we do not sell or share any information to any third parties. If you're yet to be a member, give us a try by signing up for a free account, and embark on your journey
2009										with a generous 100% Welcome Bonus of up to MYR 777 from us!
2010                            </p>
2011                        </div>
2012                    </div>
2013                </div>
2014
2015            </div>
2016        </div>
2017    </div>
2018
2019            </div>
2020        </div>
2021    </div>
2022    <!-- END: Contents from .aspx -->
2023
2024    <!-- BEGIN: Footer -->
2025    <div class="t-footer">
2026
2027        
2028        <div class="desktop_footer">
2029            <div class="container">
2030                <div class="footer_grid">
2031                    <div class="footer_submenu">
2032                        <p>Games</p>
2033                        <ul>
2034                            <li><a href="/live-casino">Live Casino</a></li>
2035                            <li><a href="/slots">Slots</a></li>
2036                            <li><a href="/sportsbook">Sportsbook</a></li>
2037                            <li><a href="/esports">Esports</a></li>
2038                            <li><a href="/lottery">4D</a></li>
2039                        </ul>
2040                    </div>
2041                    <div class="footer_submenu">
2042                        <p>Info</p>
2043                        <ul>
2044                            <li><a href="/about-us">About Us</a></li>
2045                            <li><a href="/vip">VIP</a></li>
2046                            
2047                            <li><a href="/privacy-policy">Privacy Policy</a></li>
2048                            <li><a href="/social-responsibility">Social Responsibility</a></li>
2049                            <li><a href="/terms-and-conditions">Terms & Conditions</a></li>
2050                            <li><a href="/banking">Banking</a></li>
2051                            <li><a href="/blog">Blog</a></li>
2052                        </ul>
2053                    </div>
2054                    <div class="footer_submenu">
2055                        <p>Help</p>
2056                        <ul>
2057                            <li><a href="/contact-us">Contact Us</a></li>
2058                            <li><a href="/faq">FAQ</a></li>
2059                        </ul>
2060                    </div>
2061                    <div class="footer_submenu">
2062                        <p>Payment Methods</p>
2063                        <div class="fticon-img">
2064                            <img src="/web/assets/images/footer/maybank.png">
2065                            <img src="/web/assets/images/footer/cimb.png">
2066                            <img src="/web/assets/images/footer/hongleong.png">
2067                            <img src="/web/assets/images/footer/rhb.png">
2068                            <img src="/web/assets/images/footer/duitnow.png">
2069                            <img src="/web/assets/images/footer/tngo.png">
2070                            <img src="/web/assets/images/footer/grabpay.png">
2071                        </div>
2072                    </div>
2073                    <div class="footer_submenu">
2074                        <p>Follow Us</p>
2075                        <div class="fticon-img footer_contact_list">
2076                        </div>
2077                    </div>
2078                    <div class="footer_submenu">
2079                        <p>Certifications / License</p>
2080                        <div class="fticon-img-cert">
2081                            <img src="/web/assets/images/footer/certs-1.png">
2082                            <img src="/web/assets/images/footer/certs-2.png">
2083                            <img src="/web/assets/images/footer/certs-3.png">
2084                            <img src="/web/assets/images/footer/certs-4.png">
2085                            <img src="/web/assets/images/footer/certs-5.png">
2086                            <img src="/web/assets/images/footer/certs-6.png">
2087                            <img src="/web/assets/images/footer/certs-7.png">
2088                            <img src="/web/assets/images/footer/certs-8.png">
2089                        </div>
2090                    </div>
2091                </div>
2092                <div class="footer_copyright">
2093                    Copyright ©
2094                    
2094<script>document.write(new Date().getFullYear())</script>
2094
2095                    M777. All rights reserved.
2096                </div>
2097            </div>
2098        </div>
2099
2100        
2101        <div class="mobile_footer">
2102            <div class="container">
2103                <div id="accordion">
2104                    <div class="footer-card">
2105                        <button class="btn-footer collapsed" data-toggle="collapse" data-target="#tnc1" aria-expanded="false" aria-controls="tnc1">
2106                            Games
2107                        </button>
2108                        <div id="tnc1" class="collapse" aria-labelledby="headingOne" data-parent="#accordion" style="">
2109                            <div class="footer-body">
2110                                <ul>
2111                                    <li><a href="/live-casino">Live Casino</a></li>
2112                                    <li><a href="/slots">Slots</a></li>
2113                                    <li><a href="/sportsbook">Sportsbook</a></li>
2114                                    <li><a href="/esports">Esports</a></li>
2115                                    <li><a href="/lottery">4D</a></li>
2116                                </ul>
2117                            </div>
2118                        </div>
2119                    </div>
2120                    <div class="footer-card">
2121                        <button class="btn-footer collapsed" data-toggle="collapse" data-target="#tnc2" aria-expanded="false" aria-controls="tnc2">
2122                            Info
2123                        </button>
2124                        <div id="tnc2" class="collapse" aria-labelledby="headingTwo" data-parent="#accordion">
2125                            <div class="footer-body">
2126                                <ul>
2127                                    <li><a href="/about-us">About Us</a></li>
2128                                    <li><a href="/vip">VIP</a></li>
2129                                    
2130                                    <li><a href="/privacy-policy">Privacy Policy</a></li>
2131                                    <li><a href="/social-responsibility">Social Responsibility</a></li>
2132                                    <li><a href="/terms-and-conditions">Terms & Conditions</a></li>
2133                                    <li><a href="/banking">Banking</a></li>
2134                                    <li><a href="/blog">Blog</a></li>
2135                                </ul>
2136                            </div>
2137                        </div>
2138                    </div>
2139                    <div class="footer-card">
2140                        <button class="btn-footer collapsed" data-toggle="collapse" data-target="#tnc3" aria-expanded="false" aria-controls="tnc3">
2141                            Help
2142                        </button>
2143                        <div id="tnc3" class="collapse" aria-labelledby="headingTwo" data-parent="#accordion">
2144                            <div class="footer-body">
2145                                <ul>
2146                                    <li><a href="/contact-us">Contact Us</a></li>
2147                                    <li><a href="/faq">FAQ</a></li>
2148                                </ul>
2149                            </div>
2150                        </div>
2151                    </div>
2152                </div>
2153                <div class="footer-card">
2154                    <button class="btn-footer collapsed" data-toggle="collapse" data-target="#tnc4" aria-expanded="false" aria-controls="tnc4">
2155                        Payment Methods
2156                    </button>
2157                    <div id="tnc4" class="collapse" aria-labelledby="headingTwo" data-parent="#accordion">
2158                        <div class="footer-body">
2159                            <div class="fticon-img">
2160                                <img src="/web/assets/images/footer/maybank.png">
2161                                <img src="/web/assets/images/footer/cimb.png">
2162                                <img src="/web/assets/images/footer/hongleong.png">
2163                                <img src="/web/assets/images/footer/rhb.png">
2164                                <img src="/web/assets/images/footer/duitnow.png">
2165                                <img src="/web/assets/images/footer/tngo.png">
2166                                <img src="/web/assets/images/footer/grabpay.png">
2167                            </div>
2168                        </div>
2169                    </div>
2170                </div>
2171                <div class="footer-card">
2172                    <button class="btn-footer collapsed" data-toggle="collapse" data-target="#tnc5" aria-expanded="false" aria-controls="tnc5">
2173                        Follow Us
2174                    </button>
2175                    <div id="tnc5" class="collapse" aria-labelledby="headingTwo" data-parent="#accordion">
2176                        <div class="footer-body">
2177                            <div class="fticon-img footer_contact_list">
2178                            </div>
2179                        </div>
2180                    </div>
2181                </div>
2182            </div>
2183        </div>
2184
2185        
2186        <footer class="footer-menu">
2187            <div class="footer-in">
2188                <ul>
2189                    <li>
2190                        <a href="/">
2191                            <img src="/web/assets/images/footer/ico-home.png" class="img-fluid" alt="">
2192                            Home</a>
2193                    </li>
2194                    
2195                    <li>
2196                        <a href="javascript:void(0)" onclick="alert('Please login first.')">
2197                            <img src="/web/assets/images/footer/ico-profile.png" class="img-fluid" alt="">
2198                            Profile</a>
2199                    </li>
2200                    <li>
2201                        <a href="javascript:void(0)" onclick="alert('Please login first.')">
2202                            <img src="/web/assets/images/footer/ico-wallet.png" class="img-fluid" alt="">
2203                            Wallet</a>
2204                    </li>
2205                    
2206                    <li>
2207                        <a href="/promotions">
2208                            <img src="/web/assets/images/footer/ico-promo.png" class="img-fluid" alt="">
2209                            Promo</a>
2210                    </li>
2211                    <li>
2212                        <a href="javascript:void(0)" class="header_hamburger menu_mobile">
2213                            <img src="/web/assets/images/footer/ico-more.png" class="img-fluid" alt="">
2214                            Menu</a>
2215                    </li>
2216                </ul>
2217            </div>
2218        </footer>
2219    </div>
2220    <!-- END: Footer -->
2221
2222    <div id="modal-backdrop" class=" modal-transition"></div>
2223
2224    
2224<script src="/web/assets/bootstrap-4.3.1/popper.min.js"></script>
2224
2225    
2225<script src="/web/assets/bootstrap-4.3.1/js/bootstrap.min.js"></script>
2225
2226    
2226<script src="/web/assets/js/smooth.scroll.js"></script>
2226
2227    
2227<script src="/web/assets/js/swiper-bundle.min.js"></script>
2227
2228    
2228<script src="/web/assets/js/script.js"></script>
2228
2229    
2229<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.29.4/moment.min.js"></script>
2229
2230    
2230<script src="https://cdnjs.cloudflare.com/ajax/libs/qrcodejs/1.0.0/qrcode.min.js"></script>
2230
2231    
2231<script src="https://unpkg.com/[email protected]/lib/qr-code-styling.js"></script>
2231
2232
2233    
2233<script>
2234        var now = moment().format('YYYY-MM-DD');
2235
2236        if (now >= '2026-09-17') {
2237            $('.event_box').hide();
2238        }
2239        else if (now >= '2026-08-18') {
2240            $('.event_box').show();
2241        }
2242        else {
2243            $('.event_box').hide();
2244        }
2245
2246        //$('header').css('background-image', 'url("/web/assets/images/festival/topbar-merdeka-2026.jpg")');
2247
2248        //$('.left_menu_container_wrap').css('background-image', 'url("/web/assets/images/festival/sidebar-merdeka-2026.jpg")');
2249
2250        var productName = "";
2251        var productCode = "";
2252        var productType = "";
2253        var gameID = "";
2254        var productGameBalanceStatus = "";
2255
2256        $("#closeButton").click(function () {
2257            $("#float-icon").css("display", "none");
2258        });
2259
2260        $(document).ready(function () {
2261            
2262            refreshVCode('login', 'loginVeriCode');
2263            refreshVCode('fp', 'forgotPasswordVeriCode');
2264
2265            
2266            refreshVCode('rg', 'registrationVeriCode');
2267            
2268
2269            switch (window.location.pathname) {
2270                case '/':
2271                    getProductListByCategory("SL", "Slots");
2272                    getProductListByCategory("LC", "LiveCasino");
2273                    getProductListByCategory("CB", "LiveCasino");
2274                    getProductListByCategory("SB", "Sportsbook");
2275                    getProductListByCategory("ES", "Esports");
2276                    getProductListByCategory("LK", "Lottery");
2277                    getProductListByCategory("CB", "Poker");
2278                    break;
2279                case '/slots':
2280                    getProductListByCategory("SL", "Slots");
2281                    break;
2282                case '/live-casino':
2283                    getProductListByCategory("LC", "LiveCasino");
2284                    getProductListByCategory("CB", "LiveCasino");
2285                    break;
2286                case '/sportsbook':
2287                    getProductListByCategory("SB", "Sportsbook");
2288                    break;
2289                case '/esports':
2290                    getProductListByCategory("ES", "Esports");
2291                    break;
2292                case '/poker':
2293                    getProductListByCategory("CB", "Poker");
2294                    break;
2295            }
2296        });
2297
2298        $(document).ajaxComplete(function () {
2299            $("#freezescreen").hide();
2300        });
2301
2302        function getDateTime() {
2303            setInterval('generateDateTime()', 1000);
2304        }
2305
2306        function generateDateTime() {
2307            // Get current datetime
2308            var currentdate = new Date();
2309            var datetime = currentdate.getDate() + "/"
2310                + String(currentdate.getMonth() + 1).padStart(2, '0') + "/"
2311                + currentdate.getFullYear() + " "
2312                + String(currentdate.getHours()).padStart(2, '0') + ":"
2313                + String(currentdate.getMinutes()).padStart(2, '0') + ":"
2314                + String(currentdate.getSeconds()).padStart(2, '0') + " ";
2315            $("#timezone").html(datetime + " (GMT+8) ");
2316            $("#live_transaction_time").html(datetime + " (GMT+8) ");
2317        }
2318
2319        $(function () {
2320            $(document).on("click", ".btn_popup_announcement", function () {
2321                let $btn = $(this);
2322                let hasItem = $("#annnouncement_list .carousel-item").length > 0;
2323
2324                if (hasItem) {
2325                    $("#popup_announcement_listing_modal").modal("show");
2326                } else {
2327                    $btn.tooltip({
2328                        title: "No announcement at the moment",
2329                        placement: "bottom",
2330                        trigger: "manual"
2331                    }).tooltip("show");
2332
2333                    setTimeout(function () {
2334                        $btn.tooltip("hide").tooltip("dispose");
2335                    }, 2000);
2336                }
2337            });
2338        });
2339
2340        var popup_announcement_template = "0";
2341        function getPopupAnnouncementList() {
2342
2343            $.ajax({
2344                type: 'GET',
2345                url: '/ajaxData/proc_getPopupAnnouncementList',
2346                success: function (d) {
2347                    if (d.errCode == "0") {
2348                        var activeCount = 0;
2349                        $(d.data).each(function (idx) {
2350                            
2351
2352                            var desktop_img = this.d_image;
2353                            var mobile_img = this.m_image;
2354                            var alt = this.alt != '' ? this.alt : "Slide_" + (idx + 1);
2355                            var description = this.description;
2356                            var title = this.title;
2357
2358                            if (!this.is_active) return;
2359
2360                            var html = '';
2361
2362                            if (activeCount == 0)
2363                                html += '<div class="carousel-item active">';
2364                            else
2365                                html += '<div class="carousel-item">';
2366
2367                            if (popup_announcement_template == "0") {
2368                                html += ' <img class="lazy d-block" src="' + desktop_img + '" alt="' + alt + '">';
2369                            }
2370                            else {
2371                                html += '<div class="annou-pop">';
2372                                html += '<div class="annou-ttle">' + title + '</div>';
2373                                html += '<div class="annou-content">';
2374                                html += '<img class="lazy" src="' + desktop_img + '" alt="' + alt + '">';
2375                                html += '<p>' + description + '</p>';
2376                                html += '</div>';
2377                                html += '</div>';
2378                            }
2379
2380                            html += '</div>';
2381
2382                            $('#annnouncement_list').append(html);
2383                            activeCount++;
2384                        });
2385
2386                        if (activeCount > 0) {
2387                            $("#popup_announcement_listing_modal").modal("show");
2388                        }
2389                    }
2390                    else {
2391                        console.log("getPopupAnnouncementList: " + d.errMsg);
2392                    }
2393                },
2394                error: function (jqXHR, textStatus, errorThrown) {
2395                    alert("Unknown error, Please contact our customer service");
2396                }
2397            });
2398        }
2399
2400        $("#form_forgot").validate({
2401            rules: {
2402                    "email": {
2403                    required: true,
2404                    maxlength: 200,
2405                    email: true
2406                },
2407                    "contact": {
2408                    required: false,
2409                    maxlength: 200,
2410                },
2411                    "v_code": {
2412                    required: true,
2413                }
2414            },
2415            messages: {
2416                    "email": {
2417                    required: "Please insert email.",
2418                    maxlength: "Please enter at most {0} character",
2419                    email: "Please insert valid email, e.g. : [email protected].",
2420                },
2421                    "username": {
2422                    required: "This field is required.",
2423                },
2424                    "contact": {
2425                    required: "This field is required.",
2426                },
2427                    "v_code": {
2428                    required: "This field is required.",
2429                }
2430            },
2431            errorPlacement: function (error, element) {
2432                if (element.attr("name") == "email")
2433                    error.insertAfter("#forgot_password_email_field");
2434                else if (element.attr("name") == "v_code")
2435                    error.insertAfter("#forgot_password_verification_field");
2436                else
2437                    error.insertAfter(element);
2438            },
2439            submitHandler: function (form) {
2440                $("#freezescreen").show();
2441
2442                $.ajax({
2443                    type: 'POST',
2444                    url: '/ajaxData/proc_forgetPassword',
2445                    data: $('#form_forgot').serialize(),
2446                    success: function (d) {
2447                        if (d.errCode == "0") {
2448                            $('#form_forgot')[0].reset();
2449                            alert("Reset Password Successful");
2450                        }
2451                        else
2452                            alert(d.errCode + "-" + d.errMsg);
2453                    },
2454                    error: function (jqXHR, textStatus, errorThrown) {
2455                        alert("Unknown error, Please contact our customer service");
2456                    },
2457                    complete: function () {
2458                        $("#freezescreen").hide();
2459                        changePage('/');
2460                    }
2461                });
2462            }
2463        });
2464
2465        // Get total balance
2466        var checkPopulateTotalBalanceStatus = "0";
2467        function getTotalBalance(refresh) {
2468
2469            if (checkPopulateTotalBalanceStatus == "0" || refresh == "1") {
2470
2471                getMainWalletHeader();
2472                populateProductBalance(refresh);
2473
2474                $("#w_bal_total").html('<img src="/web/assets/images/common/load-indicator.gif" />');
2475                $(".w_bal_total").html('<img src="/web/assets/images/common/load-indicator.gif" />');
2476
2477                $.ajax({
2478                    type: 'POST',
2479                    url: '/ajaxData/proc_getMemberTotalBalance',
2480                    success: function (d) {
2481                        if (d.errCode == "0") {
2482                            var all_product_balance = parseFloat(d.data).toFixed(2);
2483                            $("#w_bal_total").html(parseFloat(all_product_balance).toFixed(2));
2484                            $("#w_bal_total").val(parseFloat(all_product_balance).toFixed(2));
2485                            $(".w_bal_total").html(parseFloat(all_product_balance).toFixed(2));
2486                            $(".w_bal_total").val(parseFloat(all_product_balance).toFixed(2));
2487
2488                            checkPopulateTotalBalanceStatus++;
2489                        }
2490                        else {
2491                            showErrorMessage(d.errCode, d.errMsg);
2492                        }
2493
2494                    },
2495                    error: function (jqXHR, textStatus, errorThrown) {
2496                        $("#top_balance").html("Under Maintenance");
2497                    },
2498                });
2499            }
2500        }
2501
2502        function getMainWalletHeader() {
2503            $("#w_bal_main_header").html('<img src="/web/assets/images/common/load-indicator.gif" />');
2504            $(".w_bal_main").html('<img src="/web/assets/images/common/load-indicator.gif" />');
2505
2506            $.ajax({
2507                type: 'POST',
2508                url: '/ajaxData/proc_getMemberBalance',
2509                success: function (d) {
2510                    if (d.errCode == "0") {
2511                        $("#w_bal_main_header").html(parseFloat(d.data).toFixed(2));
2512                        $("#w_bal_main_header").val(parseFloat(d.data).toFixed(2));
2513                        $(".w_bal_main").html(parseFloat(d.data).toFixed(2));
2514                        $(".w_bal_main").val(parseFloat(d.data).toFixed(2));
2515
2516                        $(".btn-bln-all").show();
2517                    }
2518                    else
2519                        alert(d.errCode + " - " + d.errMsg);
2520                },
2521                error: function (jqXHR, textStatus, errorThrown) {
2522                    $("#w_bal_main_header" + productCode).html("Under Maintenance");
2523                }
2524            });
2525        }
2526
2527        var checkPopulateStatus = "0";
2528        function populateProductBalance(refresh) {
2529
2530            if (checkPopulateStatus == "0" || refresh == "1") {
2531
2532                $.ajax({
2533                    type: 'POST',
2534                    url: '/ajaxData/proc_getProductList',
2535                    success: function (d) {
2536                        if (d.errCode == "0") {
2537
2538                            var txt_node = "";
2539
2540                            $.each(d.data, function (i, d) {
2541                                txt_node += '<li>';
2542                                txt_node += '<div class="bln-in">';
2543                                txt_node += '<div class="bln-icon"><span>' + d.p_name + '</span></div>';
2544                                txt_node += '<div class="blc-amt">';
2545                                //txt_node += '<button type="button" class="btn-out btn-out_' + d.p_code + '" value="' + d.p_code + '" onclick="transferIntoMain(this.value)" style="display: none;">Out</button>';
2546                                txt_node += '<div class="blc-inout">';
2547                                txt_node += '<div class="btn-ammt w_bal_header_' + d.p_code + '" id="w_bal_header_' + d.p_code + '"><img src="/web/assets/images/common/load-indicator.gif"></div>';
2548                                //txt_node += '<button type="button" class="btn-in btn-in_' + d.p_code + '" value="' + d.p_code + '" onclick="transferIntoProduct(this.value)" style="display: none;">In</button>';
2549                                txt_node += '</div>';
2550                                txt_node += '</div>';
2551                                txt_node += '</div>';
2552                                txt_node += '</li>';
2553                            });
2554
2555                            $(".user_balance").html(txt_node);
2556                            checkPopulateStatus++;
2557
2558                            $.each(d.data, function (i, d) {
2559                                if (!d.isMaintenance) {
2560                                    if (!d.isSeamless)
2561                                        getProductBalanceHeader(d.p_code);
2562                                    else
2563                                        $(".w_bal_header_" + d.p_code).html("--");
2564                                }
2565                                else {
2566                                    $(".w_bal_header_" + d.p_code).html("Under Maintenance");
2567                                }
2568                            });
2569                        }
2570                        else
2571                            alert(d.errCode + " - " + d.errMsg);
2572                    },
2573                    error: function (jqXHR, textStatus, errorThrown) {
2574                        alert("Unknown error, Please contact our customer service");
2575                    }
2576                });
2577            }
2578        }
2579
2580        function getProductBalanceHeader(productCode) {
2581            $.ajax({
2582                type: 'POST',
2583                url: '/ajaxData/proc_getCCLBalance',
2584                data: { "p_code": productCode },
2585                success: function (d) {
2586                    if (d.errCode == 0) {
2587                        $(".w_bal_header_" + productCode).html(parseFloat(d.data).toFixed(2));
2588                        $(".w_bal_header_" + productCode).val(parseFloat(d.data).toFixed(2));
2589
2590                        $(".btn-in_" + productCode).css("display", "");
2591                        $(".btn-out_" + productCode).css("display", "");
2592                    }
2593                    else {
2594                        $(".w_bal_header_" + productCode).html("Under Maintenance");
2595                    }
2596                },
2597                error: function (jqXHR, textStatus, errorThrown) {
2598                    $(".w_bal_header_" + productCode).html("Under Maintenance");
2599                }
2600            });
2601        }
2602
2603        function transferIntoProduct(productCode) {
2604            $("#freezescreen").show();
2605            $(".btn-in").hide();
2606            $(".btn-out").hide();
2607
2608            $.ajax({
2609                type: 'POST',
2610                url: '/ajaxData/proc_makeTransfer',
2611                data: {
2612                    "trans_from": "main",
2613                    "trans_to": productCode,
2614                    "trans_amount": $('#w_bal_main_header').text(),
2615                },
2616                success: function (d) {
2617                    if (d.errCode == "0") {
2618                        alert("Transfer Successful");
2619                        location.reload();
2620                    }
2621                    else
2622                        showErrorMessage(d.errCode, d.errMsg);
2623                },
2624                error: function (jqXHR, textStatus, errorThrown) {
2625                    alert("Unknown error, Please contact our customer service");
2626                },
2627                complete: function () {
2628                    $("#freezescreen").hide();
2629                    location.reload();
2630                }
2631            });
2632        }
2633
2634        function transferIntoMain(productCode) {
2635            $("#freezescreen").show();
2636            $(".btn-in").hide();
2637            $(".btn-out").hide();
2638
2639            $.ajax({
2640                type: 'POST',
2641                url: '/ajaxData/proc_makeTransfer',
2642                data: {
2643                    "trans_from": productCode,
2644                    "trans_to": "main",
2645                    "trans_amount": document.getElementById('w_bal_header_' + productCode).value,
2646                },
2647                success: function (d) {
2648                    if (d.errCode == "0") {
2649                        alert("Transfer Successful");
2650                        location.reload();
2651                    }
2652                    else
2653                        showErrorMessage(d.errCode, d.errMsg);
2654                },
2655                error: function (jqXHR, textStatus, errorThrown) {
2656                    alert("Unknown error, Please contact our customer service");
2657                },
2658                complete: function () {
2659                    $("#freezescreen").hide();
2660                    location.reload();
2661                }
2662            });
2663        }
2664
2665        function transferAll() {
2666            $("#freezescreen").show();
2667
2668            $.ajax({
2669                type: 'POST',
2670                url: '/ajaxData/proc_TransferAllProductBalanceAsync',
2671                success: function (d) {
2672                    if (d.errCode == "0") {
2673                        alert("Transfer Successful");
2674                        location.reload();
2675                    }
2676                    else if (d.errCode == '99' || d.errCode == '100012') {
2677                        showErrorMessage(d.errCode, d.errMsg);
2678                    }
2679                    else
2680                        alert("Unknown error, Please contact our customer service");
2681                },
2682                error: function (jqXHR, textStatus, errorThrown) {
2683                    alert("Unknown error, Please contact our customer service");
2684                },
2685                complete: function () {
2686                    $("#freezescreen").hide();
2687                }
2688            });
2689        }
2690
2691        function getMemberCurrentLevelLogo() {
2692            $('.current_vip_logo').attr("src", "/web/assets/images/common/load-indicator.gif");
2693
2694            var date = new Date(), y = date.getFullYear(), m = date.getMonth();
2695            var firstDay = new Date(y, m, 1);
2696            var lastDay = new Date(y, m + 1, 0);
2697
2698            var resultFirstDay = firstDay.getFullYear() + "-" + (firstDay.getMonth() + 1) + "-" + firstDay.getDate();
2699            var resultLastDay = lastDay.getFullYear() + "-" + (lastDay.getMonth() + 1) + "-" + lastDay.getDate();
2700
2701            $.ajax({
2702                type: 'POST',
2703                url: '/ajaxData/proc_getMemberDailyData',
2704                data: { "from_date": resultFirstDay, "to_date": resultLastDay },
2705                success: function (d) {
2706                    if (d.errCode == "0") {
2707                        var current_max_d_tier = d.data.current_max_d_tier;
2708                        var group_id = d.data.group_id;
2709
2710                        var vip_logo = '', vip_logo_path = '/web/assets/images/vip/';
2711
2712                        if (group_id == "2" || group_id == "11" || group_id == "18" || group_id == "25" || group_id == "35" || group_id == "42") {
2713                            vip_logo = vip_logo_path + 'bronze.png';
2714                            $(".currentMemberGroup").html("Bronze");
2715                        }
2716                        else if (group_id == "3" || group_id == "12" || group_id == "19" || group_id == "26" || group_id == "36") {
2717                            vip_logo = vip_logo_path + 'silver.png';
2718                            $(".currentMemberGroup").html("Silver");
2719                        }
2720                        else if (group_id == "4" || group_id == "13" || group_id == "20" || group_id == "27" || group_id == "37") {
2721                            vip_logo = vip_logo_path + 'gold.png';
2722                            $(".currentMemberGroup").html("Gold");
2723                        }
2724                        else if (group_id == "5" || group_id == "14" || group_id == "21" || group_id == "28" || group_id == "38") {
2725                            vip_logo = vip_logo_path + 'platinum.png';
2726                            $(".currentMemberGroup").html("Platinum");
2727                        }
2728                        else if (group_id == "6" || group_id == "15" || group_id == "22" || group_id == "29" || group_id == "39") {
2729                            vip_logo = vip_logo_path + 'diamond.png';
2730                            $(".currentMemberGroup").html("Diamond");
2731                        }
2732                        else if (group_id == "7" || group_id == "16" || group_id == "23" || group_id == "30" || group_id == "40") {
2733                            vip_logo = vip_logo_path + 'elite.png';
2734                            $(".currentMemberGroup").html("Elite");
2735                        }
2736                        else {
2737                            vip_logo = vip_logo_path + 'bronze.png';
2738                            $(".currentMemberGroup").html("VIP");
2739                        }
2740
2741                        $('.current_vip_logo').attr("src", vip_logo);
2742                    }
2743
2744                },
2745                error: function (jqXHR, textStatus, errorThrown) {
2746                    alert("Unknown error, Please contact our customer service");
2747                }
2748            });
2749        }
2750
2751        // Represented as ajax.error, will be executed when ajax request has error
2752        function ajaxFail(err, status, xhr) {
2753            $("#freezescreen").hide();
2754            alert("Unknown error, Please contact our customer service");
2755        }
2756
2757        // Represented as ajax.complete, will be executed after ajax request success or fail
2758        function ajaxAlways(res, status, xhr) {
2759            if (res.errCode == "99") {
2760                $.xhrPool.abortAll();
2761                //alert("Session timeout. Please login again.");
2762                //window.location = "/";
2763            }
2764        }
2765
2766        var popUpWin;
2767        // Launch Game
2768        popUpGameLink = function (prod_code, prod_type, prod_html5, game_id, width, height) {
2769            
2770            alert("Please login first.");
2771            $("#modal_login").modal("show");
2772            
2773        }
2774
2775        // Launch GSI Game
2776        popUpGameLinkGSI = function (prod_code, prod_type, prod_html5, game_id, width, height) {
2777            
2778            alert("Please login first.");
2779            $("#modal_login").modal("show");
2780            
2781        }
2782
2783        // Launch Demo Game
2784        popUpDGameLink = function (prod_code, prod_type, prod_html5, game_id, width, height) {
2785            if (screen.width < 720) {
2786                prod_html5 = 1;
2787            }
2788
2789            if (navigator.userAgent.match(/(iPod|iPhone|iPad)/)) {
2790                popUpWin = window.location.href = 'launchDGames2?url=/' + prod_type + '/' + prod_code + '/' + prod_html5 + '/' + game_id, 'Game Window', 'width=' + width + ',height=' + height + ',scrollbars=yes,resizable=1,menubar=0;';
2791            }
2792            else {
2793                popUpWin = window.open('launchDGames2?url=/' + prod_type + '/' + prod_code + '/' + prod_html5 + '/' + game_id, 'Game Window', 'width=' + width + ',height=' + height + ',scrollbars=0,resizable=1,menubar=0;');
2794            }
2795        }
2796
2797        function getInboxMsgTotalCount() {
2798            $.ajax({
2799                type: 'POST',
2800                url: '/ajaxData/proc_inboxMsgFunction',
2801                data: { "action": "getTotalCount" },
2802                success: function (d) {
2803                    if (d.errCode == "0") {
2804                        if (d.data != null) {
2805                            if (d.data.total_count > 0) {
2806                                $(".unread_count").html(d.data.total_count);
2807                                $(".unread_count").show();
2808                            }
2809                            else {
2810                                $(".unread_count").html("");
2811                                $(".unread_count").hide();
2812                            }
2813                        }
2814                    }
2815                    else
2816                        alert(d.errCode + " - " + d.errMsg);
2817                },
2818                error: function (jqXHR, textStatus, errorThrown) {
2819                    console.log("Unknown error, Please contact our customer service");
2820                }
2821            });
2822        }
2823
2824        function logout() {
2825            $("#freezescreen").show();
2826            $.ajax({
2827                type: 'POST',
2828                url: '/ajaxData/proc_memLogout',
2829                success: function (d) {
2830                    if (d.errCode == "0")
2831                        changePage("/");
2832                    else
2833                        alert(d.errCode + " - " + d.errMsg);
2834                },
2835                error: function (jqXHR, textStatus, errorThrown) {
2836                    alert("Unknown error, Please contact our customer service");
2837                }
2838            });
2839            $("#freezescreen").hide();
2840        }
2841
2842        function changePage(pageName) {
2843            window.location.href = pageName;
2844        }
2845
2846        var preferencesStr = '{"language_code":[],"logo":{"logo_primary":"","logo_secondary":"","logo_fav":"","logo_seo":""},"contact":[{"type":"hotline","icon":"https://file.32828a.com/images/M777/102ee893a4ce9e663287e79619d6e2d5_7223140.png","image":null,"info":"","link":"https://lc.chat/now/3716461/","seq":1,"is_show":true},{"type":"whatsapp","icon":"https://file.32828a.com/images/M777/c4f79e15f8c6ed0715a8ea44aebc38d8_7225115.png","image":null,"info":"","link":"https://api.whatsapp.com/send/?phone=601125663288&text=M777%20CS","seq":2,"is_show":true},{"type":"wechat","icon":"https://file.32828a.com/images/M777/855a3b1b5f04a16bb093201a1e8c4910_722541.png","image":null,"info":"","link":"https://msng.link/wc/m777my","seq":3,"is_show":true},{"type":"telegram","icon":"https://file.32828a.com/images/M777/035963b147f3b4b278d6dad324c642c6_7225819.png","image":null,"info":"","link":"https://t.me/m777casino","seq":4,"is_show":true},{"type":"facebook","icon":null,"image":null,"info":"","link":"https://www.facebook.com/profile.php?id=100057068605362#","seq":5,"is_show":true},{"type":"instagram","icon":null,"image":null,"info":"","link":"https://www.instagram.com/m777casino","seq":6,"is_show":true}],"live_chat":null,"app_download":null}';
2847        if (preferencesStr != "" && preferencesStr != null)
2848            var preferences = JSON.parse(preferencesStr);
2849
2850        if (preferences != null) {
2851            $(".footer_contact_list").empty();
2852            $(".contact-social-media-wrapper").empty();
2853            var contactList = preferences.contact;
2854
2855            $(contactList).each(function () {
2856                if (!this.is_show) return; // skip inactive contact
2857
2858                var contact_html = '';
2859                var social_media_html = '';
2860                var device_name = '';
2861                var device_icon = '';
2862
2863                var contactHtmlTypes = new Set([
2864                "hotline",
2865                "whatsapp",
2866                "wechat",
2867                "telegram"
2868                ]);
2869
2870                var socialMediaHtmlTypes = new Set([
2871                "hotline",
2872                "whatsapp",
2873                "telegram",
2874                "facebook",
2875                    "instagram"
2876                ]);
2877
2878                switch (this.type) {
2879                    case "hotline":
2880                        device_name = "Live Chat";
2881                        device_icon = "social-dis.png";
2882                        break;
2883                    case "email":
2884                        device_name = "E-mail";
2885                        device_icon = "social-dis.png";
2886                        break;
2887                    case "skype":
2888                        device_name = "Skype";
2889                        device_icon = "social-twi.png";
2890                        break;
2891                    case "facebook":
2892                        device_name = "Facebook";
2893                        device_icon = "ft-facebook.png";
2894                        break;
2895                    case "whatsapp":
2896                        device_name = "Whatsapp";
2897                        device_icon = "ft-whatsapp.png";
2898                        break;
2899                    case "wechat":
2900                        device_name = "Wechat";
2901                        device_icon = "social-red.png";
2902                        break;
2903                    case "line":
2904                        device_name = "Line";
2905                        device_icon = "social-red.png";
2906                        break;
2907                    case "qq":
2908                        device_name = "QQ";
2909                        device_icon = "social-pin.png";
2910                        break;
2911                    case "telegram":
2912                        device_name = "Telegram";
2913                        device_icon = "ft-telegram.png";
2914                        break;
2915                    case "yahoo":
2916                        device_name = "Yahoo";
2917                        device_icon = "social-pin.png";
2918                        break;
2919                    case "qr":
2920                        device_name = "QR Code";
2921                        device_icon = "social-red.png";
2922                        break;
2923                    case "bbm":
2924                        device_name = "BBM";
2925                        device_icon = "social-stee.png";
2926                        break;
2927                    case "youtube":
2928                        device_name = "Youtube";
2929                        device_icon = "social-yt.png";
2930                        break;
2931                    case "instagram":
2932                        device_name = "Instagram";
2933                        device_icon = "ft-instagram.png";
2934                        break;
2935                    case "other":
2936                        device_name = "Customer Service";
2937                        device_icon = "social-ins.png";
2938                        break;
2939                }
2940
2941                if (this.type == "email") {
2942                    contact_html += '<a href="mailto:' + this.info + '" target="_blank">';
2943                } else {
2944                    if (this.link)
2945                        contact_html += '<a href="' + this.link + '" target="_blank">';
2946                    else
2947                        contact_html += '<a href="/contact-us">';
2948                }
2949
2950                contact_html += '<img src="' + this.icon + '">';
2951                contact_html += '</a>';
2952
2953                if (this.type == "hotline") {
2954                    social_media_html += '<a class="smcbox" href="javascript:void(0)" ';
2955                    social_media_html += 'onclick="MyWindow=window.open(\'' + this.link + '\',\'MyWindow\',\'width=400,height=600\'); return false;">';
2956                } else {
2957                    social_media_html += '<a class="smcbox" href="' + this.link + '" target="_blank">';
2958                }
2959
2960                social_media_html += '<div class="sm-icon">';
2961                social_media_html += '<img src="/web/assets/images/contact/social/' + this.type + '.png">';
2962                social_media_html += '</div>';
2963
2964                social_media_html += '<div class="sm-text">';
2965                social_media_html += device_name;
2966                social_media_html += '</div>';
2967
2968                social_media_html += '<img src="/web/assets/images/contact/' + this.type + '-box.png">';
2969                social_media_html += '</a>';
2970
2971                if (contactHtmlTypes.has(this.type)) {
2972                    $(".footer_contact_list").append(contact_html);
2973                }
2974
2975                if (socialMediaHtmlTypes.has(this.type)) {
2976                    $(".contact-social-media-wrapper").append(social_media_html);
2977                }
2978            });
2979        }
2980
2981        function launchGame(pCode, pName, pType, gID, demoUrl) {
2982            
2983            alert("Please login first.");
2984            
2985        }
2986
2987        function playDemo() {
2988            var url = $('#demoButton').data('url');
2989            if (!url)
2990                return;
2991
2992            $('#quick-transfer').modal('hide');
2993
2994            if (navigator.userAgent.match(/(iPod|iPhone|iPad)/)) {
2995                window.location.href = url;
2996            }
2997            else {
2998                popUpWin = window.open(url, 'Demo Window', 'width=1000,height=600,scrollbars=yes,resizable=1,menubar=0;');
2999            }
3000        }
3001
3002        function getMainWalletBalance() {
3003            $.ajax({
3004                type: 'POST',
3005                url: '/ajaxData/proc_getMemberBalance',
3006                success: function (d) {
3007                    if (d.errCode == "0") {
3008                        $("#main_wallet").val('MYR ' + parseFloat(d.data).toFixed(2));
3009                        $("#quick-transfer-amount").val(parseFloat(d.data).toFixed(2));
3010                    }
3011                    else
3012                        alert(d.errMsg);
3013                },
3014                error: function (jqXHR, textStatus, errorThrown) {
3015                    alert("Unknown error, Please contact our customer service");
3016                }
3017            });
3018        }
3019
3020        function getProductBalance(pCode) {
3021            $.ajax({
3022                type: 'POST',
3023                url: '/ajaxData/proc_getCCLBalance',
3024                cache: false,
3025                data: { "p_code": pCode },
3026                dataType: 'json',
3027                success: function (d) {
3028                    if (d.errCode == 0) {
3029                        $('.gameBalance').val('MYR ' + parseFloat(d.data).toFixed(2));
3030                        productGameBalanceStatus = "MYR " + parseFloat(d.data).toFixed(2);
3031                        $('#quickTransferButton').show();
3032                    }
3033                    else {
3034                        $('.gameBalance').val("Maintenance");
3035                        productGameBalanceStatus = "Maintenance";
3036                        $('#quickTransferButton').hide();
3037                    }
3038                },
3039                error: function (jqXHR, textStatus, errorThrown) {
3040                    $('.gameBalance').val("Maintenance");
3041                    productGameBalanceStatus = "Maintenance";
3042                    $('#quickTransferButton').hide();
3043                }
3044            });
3045        }
3046
3047        function quickTransfer() {
3048            // If activate code is not entered, then return false
3049            if (!$("#quick-transfer-amount").val()) {
3050                $("#quick-transfer-amount-error").css("display", "").html("Please enter transfer amount.");
3051                $("#quick-transfer-amount-error").css("color", "#e05966");
3052                return false;
3053            } else {
3054                $("#freezescreen").show();
3055
3056                var data = {
3057                    "trans_from": "main",
3058                    "trans_to": productCode,
3059                    "trans_amount": $("#quick-transfer-amount").val(),
3060                }
3061
3062                $.ajax({
3063                    type: 'POST',
3064                    url: '/ajaxData/proc_makeTransfer',
3065                    data: data,
3066                    success: function (d) {
3067                        if (d.errCode == "0") {
3068                            alert("Transfer Successful");
3069                            goToLobby();
3070                        }
3071                        else
3072                            alert(d.errCode + " - " + d.errMsg);
3073                    },
3074                    error: function (jqXHR, textStatus, errorThrown) {
3075                        alert("Unknown error, Please contact our customer service");
3076                    },
3077                    complete: function () {
3078                        $("#freezescreen").hide();
3079                    }
3080                });
3081            }
3082        }
3083
3084        function goToLobby() {
3085            $('#quick-transfer').modal('hide');
3086
3087            if (productType == "SL") {
3088                if (window.location.pathname == '/') {
3089                    popUpGameLink(productCode, productType, '0', gameID, 1000, 600);
3090                }
3091                else if (productGameBalanceStatus != 'Maintenance') {
3092                    window.location.href = '/slots/' + productName.toLowerCase().replace(' ', '-');
3093                }
3094                else {
3095                    alert('Product is under maintenance');
3096                }
3097            }
3098            else {
3099                popUpGameLink(productCode, productType, '0', gameID, 1000, 600);
3100            }
3101        }
3102
3103        function getProductDownloadQRCode(code) {
3104            $('.dl-pvd-logo').html('<img src="/web/assets/images/providerlogo/Color/' + code + '.png">');
3105
3106            $("#productDownloadModal .qrcodeSpan").empty();
3107            var qrText = "";
3108
3109            if (code == 'Y6') {
3110                qrText = "https://b1.918kiss.com";
3111            }
3112            else if (code == 'K1') {
3113                qrText = "https://123.jra8888.com";
3114            }
3115            else if (code == 'Y7') {
3116                qrText = "http://m.mega166.com";
3117                //qrText = "http://mega.336699bet.com";
3118            }
3119            else if (code == 'Y8') {
3120                qrText = "http://pussy.336699bet.com";
3121            }
3122
3123            $('.ndl-btn').attr('href', qrText);
3124            $('.ndl-btn').attr('target', '_blank');
3125            $('.adl-btn').attr('href', qrText);
3126            $('.adl-btn').attr('target', '_blank');
3127
3128            document.querySelectorAll('#productDownloadModal .qrcodeSpan').forEach(el => {
3129                const qrCode = new QRCodeStyling({
3130                    width: 100,
3131                    height: 100,
3132                    data: qrText,
3133                    dotsOptions: {
3134                        color: "#333",
3135                        type: "rounded"
3136                    },
3137                    backgroundOptions: {
3138                        color: "#ffffff"
3139                    }
3140                });
3141
3142                qrCode.append(el);
3143            });
3144
3145            
3146        }
3147
3148        function getGameUsername(prod_code) {
3149            $.ajax({
3150                type: 'POST',
3151                url: '/ajaxData/proc_getProductUsername',
3152                data: { "p_code": prod_code },
3153                success: function (d) {
3154                    if (d.errCode == "0")
3155                        $('#product_download_username').html(d.data);
3156                    else
3157                        getGameBalance(prod_code);
3158                },
3159                error: function (jqXHR, textStatus, errorThrown) {
3160                    alert("Unknown error, Please contact our customer service");
3161                }
3162            });
3163        }
3164
3165        function getGamePassword(prod_code) {
3166            $.ajax({
3167                type: 'POST',
3168                url: '/ajaxData/proc_getdlClientInfo',
3169                data: { "p_code": prod_code },
3170                success: function (d) {
3171                    if (d.errCode == "0")
3172                        $('#product_download_password').html(d.data);
3173                    else
3174                        getGameBalance(prod_code);
3175                },
3176                error: function (jqXHR, textStatus, errorThrown) {
3177                    alert("Unknown error, Please contact our customer service");
3178                }
3179            });
3180        }
3181
3182        function getGameBalance(prod_code) {
3183            $.ajax({
3184                type: "POST",
3185                url: "/ajaxData/proc_getCCLBalance",
3186                data: { "p_code": prod_code },
3187                success: function (d) {
3188                    if (d.errCode == "0") {
3189                        getGamePassword(prod_code);
3190                        getGameUsername(prod_code);
3191                    }
3192                    else
3193                        alert(d.errMsg);
3194                }
3195            });
3196        }
3197
3198        function setGamePassword(prod_code) {
3199            $("#freezescreen").show();
3200            $.ajax({
3201                type: 'POST',
3202                url: '/ajaxData/proc_setdlClientInfo',
3203                data: {
3204                    "p_code": prod_code,
3205                    "p_pw": $('#product_download_new_password').val()
3206                },
3207                success: function (d) {
3208                    if (d.errCode == "0") {
3209                        alert('Success');
3210
3211                        $("#product_download_new_password").val('');
3212                        getGamePassword(prod_code);
3213                    }
3214                    else
3215                        alert(d.errMsg);
3216
3217                    $("#freezescreen").hide();
3218                },
3219                error: function (jqXHR, textStatus, errorThrown) {
3220                    alert("Unknown error, Please contact our customer service");
3221                    $("#freezescreen").hide();
3222                }
3223            });
3224        }
3225
3226        function getProductListByCategory(categoryType, gameType) {
3227            $("#freezescreen").show();
3228            var url = "/ajaxData/proc_getProductListByCategory?c_type=" + categoryType;
3229            ajaxRequest("GET", url, null, getProductListByCategoryDone.bind({ "gameType": gameType }), ajaxFail, ajaxAlways);
3230        }
3231
3232        // Success callback function
3233        function getProductListByCategoryDone(res, status, xhr) {
3234            $("#freezescreen").hide();
3235            if (res.errCode == "0") {
3236                var gameType = this.gameType;
3237                var html = '';
3238                $(res.data).each(function (idx) {
3239                    var name = this.p_name;
3240                    var code = this.p_code;
3241                    var type = this.p_type;
3242                    var image = this.p_image || "//:0";
3243
3244                    //home
3245                    html = '';
3246
3247                    if (code == 'Y6' || code == 'Y7' || code == 'Y8' || code == 'K1') {
3248                        html += '<a href="javascript:void(0)" onclick="getProductDownloadQRCode(\'' + code + '\')" data-toggle="modal" data-target="#productDownloadModal">';
3249                    }
3250                    else if (code == 'GE' && type == 'SL') {
3251                        html += '<a href="javascript:void(0)" onclick="launchGame(\'' + code + '\', \'red-tiger\', \'' + type + '\', \'0\')">';
3252                    }
3253                    else {
3254                        html += '<a href="javascript:void(0)" onclick="launchGame(\'' + code + '\', \'' + name.toLowerCase() + '\', \'' + type + '\', \'0\')">';
3255                    }
3256
3257                    html += '<img src="' + image + '" alt="' + name.toLowerCase() + '">';
3258                    html += '</a>';
3259
3260                    $("#home" + gameType).append(html);
3261
3262                    //page
3263                    html = '';
3264
3265                    html += '<li>';
3266
3267                    if (code == 'Y6' || code == 'Y7' || code == 'Y8' || code == 'K1') {
3268                        html += '<a href="javascript:void(0)" class="keychainify-checked" onclick="getProductDownloadQRCode(\'' + code + '\')" data-toggle="modal" data-target="#productDownloadModal">';
3269                        html += '<img src="' + image + '" alt="' + name.toLowerCase() + '">';
3270                    }
3271                    else if (code == 'GE' && type == 'SL') {
3272                        html += '<a href="javascript:void(0)" class="keychainify-checked" onclick="launchGame(\'' + code + '\', \'red-tiger\', \'' + type + '\', \'0\')">';
3273                        html += '<img src="' + image + '" alt="' + name.toLowerCase() + '">';
3274                    }
3275                    else {
3276                        html += '<a href="javascript:void(0)" class="keychainify-checked" onclick="launchGame(\'' + code + '\', \'' + name.toLowerCase() + '\', \'' + type + '\', \'0\')">';
3277                        html += '<img src="' + image + '" alt="' + name.toLowerCase() + '">';
3278                    }
3279
3280                    html += '</a>';
3281                    html += '</li>';
3282
3283                    $("#page" + gameType).append(html);
3284                });
3285
3286                if (gameType == 'Slots') {
3287                    $("#homeSlots").append('<a href="javascript:void(0)" onclick="launchGame(\'JD\', \'spribe\', \'SL\', \'0\')"><img src="/web/assets/images/products/slots/Spibe.png" alt="spribe" /></a>');
3288                    $("#pageSlots").append('<li><a href="javascript:void(0)" onclick="launchGame(\'JD\', \'spribe\', \'SL\', \'0\')" class="keychainify-checked"><img src="/web/assets/images/products/slots/Spibe.png" alt="spribe" /></a></li>');
3289                }
3290            }
3291        }
3292    </script>
3292
3293
3294    
3295
3296
3297    <!-- Global site tag (gtag.js) - Google Analytics -->
vendor: 65 bytes, lines 3297-3298
3297
3298<script async src="https://www.googletagmanager.com/gtag/js?id=
3298G-MN7L3WD7D0
vendor: 13 bytes, line 3298
3298"></script>
3299<script>
vendor: 132 bytes, lines 3300-3304
3300window.dataLayer = window.dataLayer || [];
3301function gtag(){dataLayer.push(arguments);}
3302gtag('js', new Date());
3303
3304gtag('config', '
3304G-MN7L3WD7D0
vendor: 5 bytes, line 3304
3304');
3305</script>
3305
3306</body>
3307</html>

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.