PageSourceSearch

https://makesyoufluent.com/wp-content/plugins/360mind-core/src/assets/js/global-core.js?ver=1790165173

js makesyoufluent.com collected 2026-09-24 11:36:22 UTC 26,240 bytes, 596 lines download raw bytes

1function setCookie(cname, cvalue, exdays) {
2    const d = new Date();
3    // d.setTime(d.getTime() + (exdays * 24 * 60 * 60 * 1000)); // use for exdays
4    d.setTime(d.getTime() + (3600 * 1000));
5    let expires = "expires="+d.toUTCString();
6    document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/";
7}
8
9function getCookie(cname) {
10    let name = cname + "=";
11    let ca = document.cookie.split(';');
12    for(let i = 0; i < ca.length; i++) {
13        let c = ca[i];
14        while (c.charAt(0) == ' ') {
15            c = c.substring(1);
16        }
17        if (c.indexOf(name) == 0) {
18            return c.substring(name.length, c.length);
19        }
20    }
21    return "";
22}
23
24
25jQuery(document).ready(function($) {
26
27    //Convert.com Cookie data to be inserted to the Order meta data after purchase
28    if (
29        typeof convert !== 'undefined' &&
30        convert.data?.project?.id &&
31        convert.historicalData?.experiences &&
32        Object.keys(convert.historicalData.experiences).length
33    ) {
34        const currentConvertProjectID = convert.data.project.id;
35        const currentConvertTestData = convert.historicalData.experiences;
36
37        if (currentConvertProjectID && currentConvertTestData) {
38
39            // FIRST assigned experience
40            const currentConvertTestID = Object.keys(currentConvertTestData)[0];
41            const currentConvertExperimentData =
42                currentConvertTestData[currentConvertTestID].variation_id ||
43                currentConvertTestData[currentConvertTestID].variationId;
44
45            if (currentConvertTestID && currentConvertExperimentData) {
46
47                const currentConvertString =
48                    'CONV-' + currentConvertTestID + '-' + currentConvertExperimentData;
49
50                const currentConvertCookie = getCookie('custom_convert_data');
51
52                if (!currentConvertCookie) {
53                    setCookie('custom_convert_data', currentConvertString);
54                } else {
55                    const cookieArray = currentConvertCookie.split(', ').filter(Boolean);
56
57                    if (!cookieArray.includes(currentConvertString)) {
58                        cookieArray.push(currentConvertString);
59                        setCookie('custom_convert_data', cookieArray.join(', '));
60                    }
61                }
62            }
63        }
64    }
65    //Convert.com cookie data snippet end
66
67    $('body').on('click', '[funnelcheckout]', function(e) {
68        let targetValue = $(this).attr('funnelcheckout');
69        let cookieName = '_funnelcheckout';
70        setCookie(cookieName, targetValue);
71    });
72
73    $('body').on('click', '[funnelangle]', function(e) {
74        let targetValue = $(this).attr('funnelangle');
75        let cookieName = '_funnelangle';
76        setCookie(cookieName, targetValue);
77    });
78
79    $('body').on('click', '[flowlanguage]', function(e) {
80        let targetValue = $(this).attr('flowlanguage');
81        let cookieName = 'funnel';
82        setCookie(cookieName, targetValue);
83    });
84
85    $('body').on('click','.wfacp_modal_open_Disable a[data-product_id]', function(e){
86        e.preventDefault();
87        let productID = $(this).attr('data-product_id');
88        // paymentLoadedEvent(productID);
89        let targetProduct = $('body .wfacp_product_switcher_container > fieldset[data-id=' + productID + '] input.wfacp_switcher_checkbox');
90        let targetProductPriceText = $('body .wfacp_product_switcher_container > fieldset[data-id=' + productID + '] .woocommerce-Price-amount').text();
91        let targetProductPrice = targetProductPriceText.replace(/[^\d.-]/g, '');
92        targetProduct.click();
93
94        let formInPageID = $('#wfacp_embed_form_page_id').val();
95        if( formInPageID && productID.length ){
96            targetValue = productID;
97            cookieName = formInPageID + '_selected_product';
98            setCookie(cookieName,targetValue); //allways set new value
99        }
100
101    });
102});
103
104jQuery(document).ready(function($) {
105    setSelectedProductsCookie();
106    $('form.checkout').on('change', 'input[name="payment_method"]', function() {
107        let selectedGateway = $('input[name="payment_method"]:checked').val();
108        let placeOrderButton = $('button#place_order');
109
110        // Add your condition here to determine when to hide or show the button
111        if (selectedGateway === 'frontit_spreedly') {
112            placeOrderButton.addClass('hide-btn');
113        } else {
114            placeOrderButton.removeClass('hide-btn');
115        }
116    });
117
118    $('body').on('click','.wfacp_modal_open a[data-product_id]', function(e){
119        let productID = $(this).attr('data-product_id');
120        let currentSelectedProducts = [];
121
122        $('body .wfacp_product_switcher_container > fieldset[data-id] input.wfacp_switcher_checkbox:checked').each(function() {
123            let fieldsetId = $(this).closest('fieldset[data-id]').attr('data-id');
124            if (fieldsetId) {
125                currentSelectedProducts.push(fieldsetId);
126            }
127        });
128        if (currentSelectedProducts.length === 0) {
129            let formInPageID = $('#wfacp_embed_form_page_id').val();
130            if( formInPageID && productID.length ){
131                targetValue = productID;
132                cookieName = formInPageID + '_selected_product';
133                setCookie(cookieName,targetValue); //allways set new value
134            }
135        }
136
137        if ( ! currentSelectedProducts.includes(productID)) {
138            let targetProduct = $('body .wfacp_product_switcher_container > fieldset[data-id=' + productID + '] input.wfacp_switcher_checkbox');
139            targetProduct.click();
140        }
141
142    });
143
144    $('body').on('click','.multiple-product-add', function(e){
145        let selectedProducts = [];
146        let formInPageID = $('#wfacp_embed_form_page_id').val();
147        let selectedProductsForCart = {};
148        let flow = $(this).attr('flow');
149        if( formInPageID ){
150            setCookie("currentCheckout", formInPageID);
151            selectedProductsForCart[formInPageID] = [];
152            let $checkboxes;
153            if (flow) {
154                $checkboxes = $('div.' + flow + ' .product-checkbox:checked');
155            } else {
156                $checkboxes = $('.product-checkbox:checked');
157            }
158            $checkboxes.each(function () {
159                let value = $(this).val();
160                if (!value.includes('preselect')) {
161                    selectedProductsForCart[formInPageID].push(value);
162                }
163            });
164            // $('.product-checkbox:checked').each(function() {
165            //     let value = $(this).val();
166            //     if (!value.includes('preselect')) {
167            //         selectedProductsForCart[formInPageID].push(value);
168            //     }
169            // });
170        }
171
172        $(this).siblings('.notification-message').remove();
173        if (selectedProductsForCart[formInPageID].length === 0) {
174            let notification = $('<div class="notification-message">Please select at least one product.</div>');
175            $(this).after(notification);
176        } else {
177            setSelectedProductsCookie();
178        }
179
180
181    });
182
183    $('.product-checkbox').on('change', function(e){
184        let $container = $(this).closest('.e-con-inner');
185        let testProductSelected = [];
186        let isChecked = $(this).prop('checked');
187        let selectedValue = $(this).val();
188        let valueForSwitch = selectedValue;
189        let app = $container.find('.product-checkbox.app');
190        let isApp = $(this).hasClass('app');
191        let freeBook = $container.find('.free-book');
192        let midBook = $container.find('.mid-book');
193        let fullBook = $container.find('.full-book');
194        let hardCopy = $container.find('.hard-copy');
195        let ebook = $container.find('.ebook');
196        let isHardCopy = $(this).hasClass('hardcopy');
197        let isPreselected = $(this).attr('preselect');
198        let isEbook = $(this).hasClass('e_book');
199        let submitButton = $container.find('.multiple-product-add');
200        let aov_v1 = $('body').hasClass('aov-v1');
201        // $('.product-checkbox.app').filter('[value!="' + $(this).val() + '"]').prop('checked', false);
202        let hardCopyChecked = false;
203        let ebookChecked = false;
204        let appChecked = false;
205        $container.find('.product-checkbox:checked').each(function () {
206            if ($(this).hasClass('hardcopy')) {
207                hardCopyChecked = true;
208            }
209            if ($(this).hasClass('e_book')) {
210                ebookChecked = true;
211            }
212            if ($(this).hasClass('app')) {
213                appChecked = true;
214            }
215            let value = $(this).val();
216            testProductSelected.push(value);
217
218        });
219        valueForSwitch = isApp ? 'app' : valueForSwitch;
220        valueForSwitch = isHardCopy ? 'hardCopy' : valueForSwitch;
221        valueForSwitch = isPreselected ? 'preselect' : valueForSwitch;
222        valueForSwitch = isEbook ? 'ebook' : valueForSwitch;
223        if(aov_v1){
224            if(isChecked){
225                switch (valueForSwitch) {
226                    case "preselect":
227                        let preselect = selectedValue.split('-')[1];
228                        $container.find('.product-checkbox[value='+ preselect +']').prop('checked', true);
229                        fullBook.addClass('d-none');
230                        freeBook.addClass('d-none');
231                        midBook.removeClass('d-none');
232                        midBook.find('.product-checkbox').prop('checked', true);
233                        fullBook.find('.product-checkbox').prop('checked', false);
234                        freeBook.find('.product-checkbox').prop('checked', false);
235                        hardCopy.removeClass('d-none');
236                        hardCopy.filter('.solo').find('.product-checkbox').prop('checked', false);
237                        hardCopy.filter('.solo').addClass('d-none');
238                        break;
239                    case "app":
240
241                        $container.find('.product-checkbox[checked]').removeAttr('checked');
242                        $container.find('.product-checkbox[preselect]').prop('checked', true);
243                        $container.find('.product-checkbox.app').filter('[value!="' + selectedValue + '"]').prop('checked', false);
244
245                        hardCopy.removeClass('d-none');
246                        hardCopy.filter('.solo').addClass('d-none');
247
248                        if(hardCopyChecked){
249                            fullBook.addClass('d-none');
250                            midBook.addClass('d-none');
251                            freeBook.removeClass('d-none');
252                            freeBook.find('.product-checkbox').prop('checked', true);
253                            fullBook.find('.product-checkbox').prop('checked', false);
254                            midBook.find('.product-checkbox').prop('checked', false);
255                        }else{
256                            fullBook.addClass('d-none');
257                            freeBook.addClass('d-none');
258                            midBook.removeClass('d-none');
259                            midBook.find('.product-checkbox').prop('checked', true);
260                            fullBook.find('.product-checkbox').prop('checked', false);
261                            freeBook.find('.product-checkbox').prop('checked', false);
262                        }
263
264                        break;
265                    case "hardCopy":
266                        if(appChecked){
267                            fullBook.addClass('d-none');
268                            midBook.addClass('d-none');
269                            freeBook.removeClass('d-none');
270                            ebook.find('.product-checkbox').prop('checked', false);
271                            if(ebookChecked){
272                                freeBook.find('.product-checkbox').prop('checked', true);
273                            }
274                        }else{
275                            fullBook.addClass('d-none');
276                            freeBook.addClass('d-none');
277                            midBook.removeClass('d-none');
278                            ebook.find('.product-checkbox').prop('checked', false);
279                            if(ebookChecked){
280                                midBook.find('.product-checkbox').prop('checked', true);
281                            }
282                        }
283
284                        break;
285                    case "ebook":
286                        console.log('e2');
287                        if(hardCopyChecked){
288                            hardCopy.find('.product-checkbox').prop('checked', true);
289                        }
290                        hardCopy.removeClass('d-none');
291
292                        hardCopy.filter('.solo2').find('.product-checkbox').prop('checked', false);
293                        hardCopy.filter('.solo2').addClass('d-none');
294
295                        hardCopy.filter('.solo').find('.product-checkbox').prop('checked', false);
296                        hardCopy.filter('.solo').addClass('d-none');
297                        break;
298                    default:
299                        console.log("Unknown checkbox " + valueForSwitch);
300                }
301            }else{
302                console.log("Unknown checkbox " + valueForSwitch);
303                switch (valueForSwitch) {
304                    case "preselect":
305                        $container.find('.product-checkbox').prop('checked', false);
306                        hardCopy.addClass('d-none');
307                        ebook.addClass('d-none');
308                        fullBook.removeClass('d-none');
309                        hardCopy.filter('.solo').removeClass('d-none');
310                        break;
311                    case "app":
312                        // no need never unselect
313                        break;
314                    case "hardCopy":
315                        if(appChecked){
316                            freeBook.addClass('d-none');
317                            fullBook.addClass('d-none');
318                            midBook.removeClass('d-none');
319                            ebook.find('.product-checkbox').prop('checked', false);
320                            if(ebookChecked){
321                                midBook.find('.product-checkbox').prop('checked', true);
322                            }
323
324                        }else{
325                            freeBook.addClass('d-none');
326                            midBook.addClass('d-none');
327                            fullBook.removeClass('d-none');
328                            ebook.find('.product-checkbox').prop('checked', false);
329                            if(ebookChecked){
330                                fullBook.find('.product-checkbox').prop('checked', true);
331                            }
332                        }
333
334                        break;
335                    case "ebook":
336                        console.log('e1');
337                        if(appChecked){
338                            hardCopy.removeClass('d-none');
339                            hardCopy.find('.product-checkbox').prop('checked', false);
340                            hardCopy.filter('.solo').addClass('d-none');
341
342                            hardCopy.filter('.solo2').find('.product-checkbox').prop('checked', false);
343                            hardCopy.filter('.solo2').addClass('d-none');
344
345                        }else{
346                            if(hardCopyChecked){
347                                hardCopy.filter('.solo').find('.product-checkbox').prop('checked', true);
348                            }else{
349                                hardCopy.filter('.solo').find('.product-checkbox').prop('checked', false);
350                                hardCopy.filter('.solo2').find('.product-checkbox').prop('checked', false);
351                            }
352                            hardCopy.addClass('d-none');
353                            hardCopy.filter('.solo').removeClass('d-none');
354                        }
355                        break;
356                    default:
357                        console.log("Unknown not checked.");
358                }
359
360            }
361
362
363        }else{
364            if(isChecked){
365                switch (valueForSwitch) {
366                    case "preselect":
367                        let preselect = selectedValue.split('-')[1];
368                        $container.find('.product-checkbox[value='+ preselect +']').prop('checked', true);
369                        fullBook.addClass('d-none');
370                        freeBook.removeClass('d-none');
371                        freeBook.find('.product-checkbox').prop('checked', true);
372                        fullBook.find('.product-checkbox').prop('checked', false);
373                        hardCopy.removeClass('d-none');
374                        hardCopy.filter('.solo').find('.product-checkbox').prop('checked', false);
375                        hardCopy.filter('.solo').addClass('d-none');
376                        break;
377                    case "app":
378                        $container.find('.product-checkbox[checked]').removeAttr('checked');
379                        $container.find('.product-checkbox[preselect]').prop('checked', true);
380                        $container.find('.product-checkbox.app').filter('[value!="' + selectedValue + '"]').prop('checked', false);
381                        fullBook.addClass('d-none');
382                        freeBook.removeClass('d-none');
383                        freeBook.find('.product-checkbox').prop('checked', true);
384                        fullBook.find('.product-checkbox').prop('checked', false);
385                        hardCopy.removeClass('d-none');
386                        hardCopy.filter('.solo').find('.product-checkbox').prop('checked', false);
387                        hardCopy.filter('.solo').addClass('d-none');
388                        break;
389                    case "hardCopy":
390                        fullBook.addClass('d-none');
391                        freeBook.removeClass('d-none');
392                        freeBook.find('.product-checkbox').prop('checked', true);
393                        fullBook.find('.product-checkbox').prop('checked', false);
394                        break;
395                    default:
396                        console.log("Unknown checkbox " + valueForSwitch);
397                }
398            }else{
399                switch (valueForSwitch) {
400                    case "preselect":
401                        app.prop('checked', false);
402                        freeBook.addClass('d-none');
403                        fullBook.removeClass('d-none');
404                        freeBook.find('.product-checkbox').prop('checked', false);
405                        hardCopy.find('.product-checkbox').prop('checked', false);
406                        hardCopy.addClass('d-none');
407                        hardCopy.filter('.solo').removeClass('d-none');
408                        break;
409                    case "app":
410                        $container.find('.product-checkbox[checked]').removeAttr('checked');
411                        let checkedCount =  $container.find('.product-checkbox.app:checked').length;
412                        if(checkedCount == 0 ){
413                            $container.find('.product-checkbox[preselect]').prop('checked', false);
414                        }
415                        freeBook.addClass('d-none');
416                        fullBook.removeClass('d-none');
417                        freeBook.find('.product-checkbox').prop('checked', false);
418                        hardCopy.find('.product-checkbox').prop('checked', false);
419                        hardCopy.addClass('d-none');
420                        hardCopy.filter('.solo').removeClass('d-none');
421                        break;
422                    case "hardCopy":
423                        let checkedCount2 =  $container.find('.product-checkbox.app:checked').length;
424                        if(checkedCount2 == 0 ){
425                            freeBook.addClass('d-none');
426                            fullBook.removeClass('d-none');
427                            freeBook.find('.product-checkbox').prop('checked', false);
428                        }
429                        break;
430                    default:
431                        console.log("Unknown not checked.");
432                }
433
434            }
435        }
436
437        let finalSelectedProducts= [];
438        $container.find('.product-checkbox:checked').each(function() {
439                let value = $(this).val();
440                console.log(value);
441
442                finalSelectedProducts.push(value);
443        });
444        submitButton.siblings('.notification-message').remove();
445        if(finalSelectedProducts.length == 0){
446            let notification = $('<div class="notification-message">Please select at least one product.</div>');
447            submitButton.addClass('disabled-button');
448            submitButton.after(notification);
449        }else{
450            submitButton.removeClass('disabled-button');
451            setSelectedProductsCookie();
452        }
453        return;
454    });
455
456    jQuery(document).on('click', '.tooltip', function (e) {
457        jQuery('.tooltip').toggleClass('active');
458    });
459
460    $('body').on('click','.set-flow', function(e){
461        let targetValue = $(this).find('.elementor-button-text').text();
462        let cookieName = '_selected_gender';
463        setCookie(cookieName,targetValue);
464    });
465});
466
467function paymentLoadedEvent(productId){
468    console.log('Cart Updated - paymentLoadedEvent');
469    if(productId){
470        waitForElm('#order_summary_field .woocommerce-checkout-review-order-table tr.cart_item').then((elm) => {
471            console.log('Product found.');
472        });
473    }
474}
475
476function waitForElm(selector) {
477    return new Promise(resolve => {
478        if (document.querySelector(selector)) {
479            return resolve(document.querySelector(selector));
480        }
481        const observer = new MutationObserver(mutations => {
482            if (document.querySelector(selector)) {
483                observer.disconnect();
484                resolve(document.querySelector(selector));
485            }
486        });
487        observer.observe(document.body, {
488            childList: true,
489            subtree: true
490        });
491    });
492}
493
494//email >>>>
495const emailInput = document.querySelector('input[type="email"]#form-field-email');
496const suggestDiv = document.querySelector(".elementor-field-type-email");
497if(typeof emailInput !== 'undefined' && emailInput !== null){
498    emailInput.addEventListener('input', (event) => {
499        const suggestDivElem = document.getElementById("suggestEmail");
500        Mailcheck.run({
501            email: emailInput.value,
502            suggested: function(suggestion) {
503                if(validateEmail(emailInput.value)){
504                    let textvalue = '';
505                    if( jQuery('body #suggestEmail').length){
506                        textvalue = suggestion.full;
507                        jQuery('body #suggestEmail').html(textvalue);
508                    }else{
509                        let textDoYouMean = 'Did you mean';
510                        if (typeof globalTranslations !== 'undefined' && globalTranslations.did_you_mean) {
511                            textDoYouMean = globalTranslations.did_you_mean;
512                        }
513
514                        let textvalue = '<div class="suggestWrap">' + textDoYouMean + ' <span id="suggestEmail">' + suggestion.full + '</span> ?</div>';
515                        jQuery('.elementor-field-type-email').append(textvalue);
516
517                    }
518                }
519
520            },
521            empty: function() {
522                // callback code
523                if(typeof suggestDivElem !== 'undefined' && suggestDivElem !== null){
524                    jQuery('body .suggestWrap').remove();
525                }
526
527            }
528        });
529    });
530}
531
532document.addEventListener('click',function(e){
533    if(e.target && e.target.id == 'suggestEmail'){
534        emailInput.value = suggestEmail.innerHTML;
535        jQuery('body .suggestWrap').remove();
536    }
537});
538
539function validateEmail(email){
540    return String(email)
541        .toLowerCase()
542        .match(
543            /^(([^<>()[\]\\.,;:\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,}))$/
544        );
545};
546// <<<<email
547
548function setSelectedProductsCookie(){
549    let formInPageID = jQuery('#wfacp_embed_form_page_id').val();
550    let selectedProductsForCart = {};
551    let $container = '';
552    if (jQuery('body[class*="dynamic-"]').length > 0) {
553        let className = jQuery('body').attr('class').match(/dynamic-[^\s]+/);
554        if (className) {
555            const $el = jQuery('div.elementor-element.' + className[0]);
556            if ($el.length > 0) {
557                $container = $el;
558            }
559        }
560    }
561    if( formInPageID ){
562        setCookie("currentCheckout", formInPageID);
563        selectedProductsForCart[formInPageID] = [];
564        if($container){
565            $container.find('input.product-checkbox.app[checked]').trigger('click');
566            $container.find('.product-checkbox:checked').each(function() {
567                let value = jQuery(this).val();
568                if (!value.includes('preselect')) {
569                    selectedProductsForCart[formInPageID].push(value);
570                }
571            });
572        }else{
573            jQuery('.product-checkbox:checked').each(function() {
574                let value = jQuery(this).val();
575                if (!value.includes('preselect')) {
576                    selectedProductsForCart[formInPageID].push(value);
577                }
578            });
579        }
580
581    }
582    if ( Array.isArray(selectedProductsForCart[formInPageID]) && selectedProductsForCart[formInPageID].length !== 0) {
583        setCookie("selectedProducts", JSON.stringify(selectedProductsForCart));
584    }
585}
586
587function setFunnelStartCookie() {
588    if (!document.cookie.split('; ').find(row => row.startsWith('funnel_start'))) {
589        let path = window.location.pathname !== '/' ? window.location.pathname : 'homepage';
590        setCookie('funnel_start', path, 3600); // Set the cookie for 1 hour
591    }
592}
593
594jQuery(document).ready(function($) {
595    setFunnelStartCookie();
596});

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.