PageSourceSearch

https://www.mylabbox.com/wp-content/plugins/wpgens-refer-a-friend-…/assets/js/gens-raf-public.js?ver=4.2.0

js mylabbox.com collected 2026-10-02 06:43:31 UTC 14,616 bytes, 365 lines download raw bytes

1/* eslint-disable */
2(function ($) {
3    'use strict';
4
5    function gens_set_cookie(name, value, days) {
6        var expires = '';
7        if (days) {
8            var date = new Date();
9            date.setTime(date.getTime() + days * 24 * 60 * 60 * 1000);
10            expires = '; expires=' + date.toUTCString();
11        }
12        document.cookie = name + '=' + (value || '') + expires + '; path=/';
13    }
14
15    //Javascript GET cookie parameter
16    const urlParams = new URLSearchParams(window.location.search);
17    const myParam = urlParams.get('raf');
18    var $_GET = {};
19    document.location.search.replace(/\??(?:([^=]+)=([^&]*)&?)/g, function () {
20        function decode(s) {
21            return decodeURIComponent(s.split('+').join(' '));
22        }
23
24        $_GET[decode(arguments[1])] = decode(arguments[2]);
25    });
26
27    // Get time var defined in woo backend
28    var $time = 1;
29    if (typeof gens_raf !== 'undefined' && gens_raf.cookieTime !== '') {
30        $time = parseInt(gens_raf.cookieTime);
31    }
32
33    //If raf is set, add cookie.
34    if ((typeof $_GET['raf'] !== 'undefined' && $_GET['raf'] !== null) || myParam) {
35        //console.log(window.location.hostname);
36        gens_set_cookie('gens_raf', myParam ? myParam : $_GET['raf'], $time);
37    }
38
39    if (typeof gens_raf.modal !== 'undefined' && gens_raf.modal) {
40        const delay = gens_raf.modal_delay ? gens_raf.modal_delay * 1000 : 0;
41        setTimeout(function () {
42            const modalElement = document.getElementById('raf-modal');
43            if (modalElement) {
44                modalElement.style.display = 'flex';
45            }
46        }, delay);
47    }
48
49    // Share Shortcode
50    $.fn.rafSocShare = function (opts) {
51        var $this = this;
52
53        opts = $.extend(
54            {
55                attr: 'href',
56                linked_in: false,
57                pinterest: false,
58                whatsapp: false,
59            },
60            opts
61        );
62
63        for (var opt in opts) {
64            if (opts[opt] === false) {
65                continue;
66            }
67
68            switch (opt) {
69                case 'facebook':
70                    var url = 'https://www.facebook.com/sharer/sharer.php?u=';
71                    var name = 'Facebook';
72                    _popup(url, name, opts[opt], 400, 640);
73                    break;
74
75                case 'twitter':
76                    var posttitle = $('.gens-referral_share__tw').data('title');
77                    var via = $('.gens-referral_share__tw').data('via');
78                    var url = 'https://twitter.com/intent/tweet?via=' + via + '&text=' + encodeURIComponent(posttitle) + '&url=';
79                    var name = 'Twitter';
80                    _popup(url, name, opts[opt], 440, 600);
81                    break;
82
83                case 'whatsappDesktop':
84                    var posttitle = $('.gens-referral_share__wade').data('title');
85                    var url = 'whatsapp://send?text=' + encodeURIComponent(posttitle) + '%20';
86                    var name = 'WhatsApp Desktop';
87                    _popup(url, name, opts[opt], 600, 600);
88                    break;
89
90                case 'linked_in':
91                    var url = 'https://www.linkedin.com/shareArticle?mini=true&url=';
92                    var name = 'LinkedIn';
93                    _popup(url, name, opts[opt], 570, 520);
94                    break;
95
96                case 'pinterest':
97                    var url = 'https://www.pinterest.com/pin/create/link/?url=';
98                    var name = 'Pinterest';
99                    _popup(url, name, opts[opt], 500, 800);
100                    break;
101
102                case 'whatsapp':
103                    var posttitle = $('.gens-referral_share__wa').data('title');
104                    var name = 'Whatsapp';
105                    var url = 'whatsapp://send?text=' + encodeURIComponent(posttitle) + '%20';
106                    _popup(url, name, opts[opt], 500, 800);
107                    break;
108
109                case 'viber':
110                    var posttitle = $('.gens-referral_share__viber').data('title');
111                    var name = 'Whatsapp';
112                    var url = 'viber://forward?text=' + encodeURIComponent(posttitle) + '%20';
113                    _popup(url, name, opts[opt], 500, 800);
114                    break;
115
116                default:
117                    break;
118            }
119        }
120
121        function _popup(url, name, opt, height, width) {
122            if (opt !== false && $this.find(opt).length) {
123                $this.on('click', opt, function (e) {
124                    e.preventDefault();
125
126                    var top = screen.height / 2 - height / 2;
127                    var left = screen.width / 2 - width / 2;
128                    var share_link = $(this).attr(opts.attr);
129
130                    if (name === 'Whatsapp') {
131                        window.location = url + encodeURIComponent(share_link) + '%20';
132                        return true;
133                    }
133 else if (name === 'WhatsApp Desktop') {
134                        window.open(url, name, 'menubar=no,toolbar=no,resizable=yes,scrollbars=yes,height=' + height + ',width=' + width + ',top=' + top + ',left=' + left);
135                    } else {
136                        window.open(
137                            url + encodeURIComponent(share_link),
138                            name,
139                            'menubar=no,toolbar=no,resizable=yes,scrollbars=yes,height=' + height + ',width=' + width + ',top=' + top + ',left=' + left
140                        );
141                    }
142
143                    return false;
144                });
145            }
146        }
147        return;
148    };
149
150    function gensCopyText(text) {
151        function selectElementText(element) {
152            if (document.selection) {
153                var range = document.body.createTextRange();
154                range.moveToElementText(element);
155                range.select();
156            } else if (window.getSelection) {
157                var range = document.createRange();
158                range.selectNode(element);
159                window.getSelection().removeAllRanges();
160                window.getSelection().addRange(range);
161            }
162        }
163        var element = document.createElement('DIV');
164        element.textContent = text;
165        element.style.backgroundColor = '#fff';
166        element.style.color = '#000';
167        document.body.appendChild(element);
168        selectElementText(element);
169        document.execCommand('copy');
170        element.remove();
171    }
172
173    jQuery(document).ready(function () {
174        $('.gens-referral_share').rafSocShare({
175            facebook: '.gens-referral_share__fb',
176            twitter: '.gens-referral_share__tw',
177            whatsappDesktop: '.gens-referral_share__wade',
178            linked_in: '.gens-referral_share__ln',
179            pinterest: '.gens-referral_share__pin',
180            whatsapp: '.gens-referral_share__wa',
181            viber: '.gens-referral_share__viber',
182        });
183
184        $('#js--gens-email-clone').on('click', function (e) {
185            e.preventDefault();
186            var $clone = $('#gens-referral_share__email').children().first().clone();
187            $clone.insertBefore('#js--gens-email-clone').find('input').val('');
188        });
189
190        $('.raf-close').on('click', function (e) {
191            e.preventDefault();
192            $('#raf-modal').hide();
193        });
194
195        $('#js--gens-email-remove').on('click', function (e) {
196            e.preventDefault();
197            if ($('.gens-referral_share__email__inputs').length > 1) {
198                $('#gens-referral_share__email').find('.gens-referral_share__email__inputs').last().remove();
199            }
200        });
201
202        $('#gens-referral_share__email').submit(function (e) {
203            e.preventDefault();
204            var valid = true;
205            $('.gens-referral_share__email__inputs').each(function () {
206                var emailInput = $(this).find("input[type='email']");
207                emailInput.removeClass('error');
208                if (!validateEmail(emailInput.val())) {
209                    valid = false;
210                    emailInput.addClass('error');
211                }
212            });
213            if (valid === true) {
214                gensAjaxSubmit();
215            }
216        });
217
218        // Click to copy
219        $('.gens-ctc').on('click', function () {
220            var that = this;
221            var text = $(this).text();
222            var copied = $(this).data('text');
223            var raf_link = $(this).parent().find('strong').text();
224            var copied;
225            gensCopyText(raf_link);
226            $(this).text(copied);
227            setTimeout(function () {
228                $(that).text(text);
229            }, 1500);
230        });
231
232        const copyInputs = Array.from(document.querySelectorAll('.gens-copy'));
233        copyInputs.forEach((input) => {
234            input.addEventListener('click', function () {
235                const input = this.querySelector('input');
236                const copyIcon = this.querySelector('.gens-copy-icon');
237                const copiedIcon = this.querySelector('.gens-copied-icon');
238
239                navigator.clipboard
240                    .writeText(input.value)
241                    .then(() => {
242                        copyIcon.style.display = 'none';
243                        copiedIcon.style.display = 'block';
244
245                        setTimeout(() => {
246                            copyIcon.style.display = 'block';
247                            copiedIcon.style.display = 'none';
248                        }, 2000);
249                    })
250                    .catch((err) => {
251                        console.error('Could not copy text: ', err);
252                    });
253            });
254        });
255
256        // Generate referral link from guest email
257        $('body').on('click', '.gens-raf-generate-link', function () {
258            var valid = true;
259            var $email = $('.gens-raf-guest-email');
260            var $name = $('.gens-raf-guest-name');
261            if (!validateEmail($email.val())) {
262                valid = false;
263                $email.addClass('error');
264            }
265            if (valid === true) {
266                $('.gens-raf__url strong').text($('.gens-raf__url strong').text() + '?raf=' + $email.val());
267                const input = $('.gens-raf-field--link');
268                if (input.length) {
269                    input.val(input.val() + '?raf=' + $email.val());
270                }
271                $('.gens-referral_share')
272                    .find('a')
273                    .each(function () {
274                        var $href = $(this).attr('href');
275                        $(this).attr('href', $href + '?raf=' + $email.val());
276                    });
277                var $link = $('.gens-refer-a-friend').attr('data-link');
278                $('.gens-refer-a-friend').attr('data-link', $link + '?raf=' + $email.val());
279                $('.gens-refer-a-friend').attr('data-name', $name.val());
280                $('.gens-refer-a-friend--generate').hide();
281                $('.gens-refer-a-friend--guest').show();
282                gens_set_cookie('gens_raf_guest', $email.val(), 7);
283            }
284        });
285
286        // Refresh on email change
287        var typingTimer;
288        var gensDoneTypingInterval = 1000;
289
290        $('#billing_email').on('input', function () {
291            window.clearTimeout(typingTimer);
292            typingTimer = window.setTimeout(() => gensDoneTyping('email'), gensDoneTypingInterval);
293        });
294
295        $('#shipping_email').on('input', function () {
296            window.clearTimeout(typingTimer);
297            typingTimer = window.setTimeout(() => gensDoneTyping('email'), gensDoneTypingInterval);
298        });
299
300        $('#billing_phone').on('input', function () {
301            window.clearTimeout(typingTimer);
302            typingTimer = window.setTimeout(() => gensDoneTyping('phone'), gensDoneTypingInterval);
303        });
304
305        function validateEmail(email) {
306            var re = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
307            return re.test(String(email).toLowerCase());
308        }
309
310        function gensDoneTyping(type) {
311            if (type === 'email') {
312                var val = $('#billing_email').val();
313                if (val.indexOf('@') > -1) {
314                    jQuery(document.body).trigger('update_checkout');
315                }
316            } else {
317                jQuery(document.body).trigger('update_checkout');
318            }
319        }
320
321        function gensAjaxSubmit() {
322            $("#gens-referral_share__email input[type='submit']").prop('disabled', true);
323            var data = new Array();
324            var link = $('.gens-refer-a-friend').data('link');
325            var name = $('.gens-refer-a-friend').data('name');
326            $('.gens-referral_share__email__inputs').each(function () {
327                var email = $(this).find("input[type='email']").val();
328                var text = $(this).find("input[type='text']").val();
329                if (email != '') {
330                    var valueToPush = {};
331                    valueToPush.email = email;
332                    valueToPush.name = text;
333                    data.push(valueToPush);
334                }
335            });
336
337            jQuery.ajax({
338                type: 'POST',
339                url: gens_raf.ajax_url,
340                data: {
341                    data: data,
342                    link: link,
343                    name: name,
344                    action: 'gens_share_via_email',
345                },
346                success: function (data) {
347                    // Remove form and say thx
348                    $('.gens-raf-submit-success').show();
349                    $('.gens-raf-send-emails').hide();
350                    var $success = "<div class='gens-raf-mail-share'>" + gens_raf.success_msg + '</div>';
351                    $('.gens-referral_share__email__inputs').not(':first').remove();
352                    $('.gens-referral_share__email__inputs').find('input').val('');
353                    $("#gens-referral_share__email input[type='submit']").prop('disabled', false);
354                    $('.gens-referral_share__email').after($success);
355                    setTimeout(function (d) {
356                        $('.gens-raf-mail-share').remove();
357                        $('.gens-raf-submit-success').hide();
358                        $('.gens-raf-send-emails').show();
359                    }, 4500);
360                },
361            });
362            return false;
363        }
364    });
365})(jQuery);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.