PageSourceSearch

https://medvetsrl.it/modules/ets_cfultimate/views/js/scripts.js

js medvetsrl.it collected 2026-10-02 00:22:03 UTC 40,955 bytes, 1,127 lines download raw bytes

1/**
2 * Copyright ETS Software Technology Co., Ltd
3 *
4 * NOTICE OF LICENSE
5 *
6 * This file is not open source! Each license that you purchased is only available for 1 website only.
7 * If you want to use this file on more websites (or projects), you need to purchase additional licenses.
8 * You are not allowed to redistribute, resell, lease, license, sub-license or offer our resources to any third party.
9 *
10 * DISCLAIMER
11 *
12 * Do not edit or add to this file if you wish to upgrade PrestaShop to newer
13 * versions in the future.
14 *
15 * @author ETS Software Technology Co., Ltd
16 * @copyright  ETS Software Technology Co., Ltd
17 * @license    Valid for 1 website (or project) for each purchase of license
18 */
19var wpcfu = {
20    "apiSettings": {
21        "root": "http:\/\/web.prestahero.com\/chung\/wp494\/wp-json\/contact-form-7\/v1",
22        "namespace": "contact-form-7\/v1"
23    }, "recaptcha": {"messages": {"empty": "Please verify that you are not a robot."}}
24};
25(function ($) {
26
27    'use strict';
28    if (typeof wpcfu === 'undefined' || wpcfu === null) {
29        return;
30    }
31
32    wpcfu = $.extend({
33        cached: 0,
34        inputs: []
35    }, wpcfu);
36
37    $(function () {
38        wpcfu.supportHtml5 = (function () {
39            var features = {};
40            var input = document.createElement('input');
41
42            features.placeholder = 'placeholder' in input;
43
44            var inputTypes = ['email', 'url', 'tel', 'number', 'range', 'date'];
45
46            $.each(inputTypes, function (index, value) {
47                input.setAttribute('type', value);
48                features[value] = input.type !== 'text';
49            });
50            return features;
51        })();
52
53        $('div.wpcfu > form').each(function () {
54            var $form = $(this);
55            wpcfu.initForm($form);
56
57            if (wpcfu.cached) {
58                wpcfu.refill($form);
59            }
60        });
61    });
62
63    wpcfu.getId = function (form) {
64        return parseInt($('input[name="_wpcfu"]', form).val(), 10);
65    };
66
67    wpcfu.initForm = function (form) {
68        var $form = $(form);
69        $form.submit(function (event) {
70            if (typeof window.FormData !== 'function') {
71                return;
72            }
73            wpcfu.submit($form);
74            event.preventDefault();
75        });
76        if ($form.find('.ajax-loader').length <= 0)
77            $form.find('.wpcfu-submit').after('<span class="ajax-loader"></span>');
78        wpcfu.toggleSubmit($form);
79
80        $form.on('click', '.wpcfu-acceptance', function () {
81            wpcfu.toggleSubmit($form);
82        });
83
84        // Exclusive Checkbox
85        $('.wpcfu-exclusive-checkbox', $form).on('click', 'input:checkbox', function () {
86            var name = $(this).attr('name');
87            $form.find('input:checkbox[name="' + name + '"]').not(this).prop('checked', false);
88        });
89
90        // Free Text Option for Checkboxes and Radio Buttons
91        $('.wpcfu-list-item.has-free-text', $form).each(function () {
92            var $freetext = $(':input.wpcfu-free-text', this);
93            var $wrap = $(this).closest('.wpcfu-form-control');
94            if ($(':checkbox, :radio', this).is(':checked')) {
95                $freetext.prop('disabled', false);
96            } else {
97                $freetext.prop('disabled', true);
98            }
99            $wrap.on('change', ':checkbox, :radio', function () {
100                var $cb = $('.has-free-text', $wrap).find(':checkbox, :radio');
101                if ($cb.is(':checked')) {
102                    $freetext.prop('disabled', false).focus();
103                } else {
104                    $freetext.prop('disabled', true);
105                }
106            });
107        });
108
109        // Placeholder Fallback
110        if (!wpcfu.supportHtml5.placeholder) {
111            $('[placeholder]', $form).each(function () {
112                $(this).val($(this).attr('placeholder'));
113                $(this).addClass('placeheld');
114
115                $(this).focus(function () {
116                    if ($(this).hasClass('placeheld')) {
117                        $(this).val('').removeClass('placeheld');
118                    }
119                });
120
121                $(this).blur(function () {
122                    if ('' === $(this).val()) {
123                        $(this).val($(this).attr('placeholder'));
124                        $(this).addClass('placeheld');
125                    }
126                });
127            });
128        }
129
130        if (wpcfu.jqueryUi && !wpcfu.supportHtml5.date) {
131            $form.find('input.wpcfu-date[type="date"]').each(function () {
132                $(this).datepicker({
133                    dateFormat: 'yy-mm-dd',
134                    minDate: new Date($(this).attr('min')),
135                    maxDate: new Date($(this).attr('max')),
136                    changeMonth: true,
137                    changeYear: true,
138                });
139            });
140        }
141
142        if (wpcfu.jqueryUi && !wpcfu.supportHtml5.number) {
143            $form.find('input.wpcfu-number[type="number"]').each(function () {
144                $(this).spinner({
145                    min: $(this).attr('min'),
146                    max: $(this).attr('max'),
147                    step: $(this).attr('step')
148                });
149            });
150        }
151
152        // Character Count
153        $('.wpcfu-character-count', $form).each(function () {
154            var $count = $(this);
155            var name = $count.attr('data-target-name');
156            var down = $count.hasClass('down');
157            var starting = parseInt($count.attr('data-starting-value'), 10);
158            var maximum = parseInt($count.attr('data-maximum-value'), 10);
159            var minimum = parseInt($count.attr('data-minimum-value'), 10);
160
161            var updateCount = function (target) {
162                var $target = $(target);
163                var length = $target.val().length;
164                var count = down ? starting - length : length;
165                $count.attr('data-current-value', count);
166                $count.text(count);
167
168                if (maximum && maximum < length) {
169                    $count.addClass('too-long');
170                } else {
171                    $count.removeClass('too-long');
172                }
173
174                if (minimum && length < minimum) {
175                    $count.addClass('too-short');
176                } else {
177                    $count.removeClass('too-short');
178                }
179            };
180
181            $(':input[name="' + name + '"]', $form).each(function () {
182                updateCount(this);
183
184                $(this).keyup(function () {
185                    updateCount(this);
186                });
187            });
188        });
189
190        // URL Input Correction
191        $form.on('change', '.wpcfu-validates-as-url', function () {
192            var val = $.trim($(this).val());
193
194            if (val
195                && !val.match(/^[a-z][a-z0-9.+-]*:/i)
196                && -1 !== val.indexOf('.')) {
197                val = val.replace(/^\/+/, '');
198                val = 'http://' + val;
199            }
200
201            $(this).val(val);
202        });
203    };
204
205    wpcfu.grecaptchaReset = function () {
206
207    }
208
209    wpcfu.submit = function (form) {
210        if (typeof tinyMCE !== 'undefined' && tinyMCE.editors.length > 0 && $('.autoload_rte_cfu').length) {
211            tinyMCE.triggerSave();
212        }
213        if (typeof window.FormData !== 'function') {
214            return;
215        }
216        var $form = $(form);
217        if ($form.hasClass('is-active'))
218            return false;
219        $('.ajax-loader', $form).addClass('is-active');
220        $form.addClass('is-active');
221        $('[placeholder].placeheld', $form).each(function (i, n) {
222            $(n).val('');
223        });
224
225        wpcfu.clearResponse($form);
226
227        var formData = new FormData($form.get(0));
228
229        var detail = {
230            id: $form.closest('div.wpcfu').attr('id'),
231            status: 'init',
232            inputs: [],
233            formData: formData
234        };
235
236        $.each($form.serializeArray(), function (i, field) {
237            if ('_wpcfu' == field.name) {
238                detail.contactFormId = field.value;
239            } else if ('_ets_cfu_version' == field.name) {
240                detail.pluginVersion = field.value;
241            } else if ('_ets_cfu_locale' == field.name) {
242                detail.contactFormLocale = field.value;
243            } else if ('_ets_cfu_unit_tag' == field.name) {
244                detail.unitTag = field.value;
245            } else if ('_ets_cfu_container_post' == field.name) {
246                detail.containerPostId = field.value;
247            } else if (field.name.match(/^_ets_cfu_\w+_free_text_/)) {
248                var owner = field.name.replace(/^_ets_cfu_\w+_free_text_/, '');
249                detail.inputs.push({
250                    name: owner + '-free-text',
251                    value: field.value
252                });
253            } else if (field.name.match(/^_/)) {
254                // do nothing
255            } else {
256                detail.inputs.push(field);
257            }
258        });
259        wpcfu.triggerEvent($form.closest('div.wpcfu'), 'beforesubmit', detail);
260        var ajaxSuccess = function (data, status, xhr, $form) {
261
262            detail.id = $(data.into).attr('id');
263            detail.status = data.status;
264            detail.apiResponse = data;
265            var $message = $('.wpcfu-response-output', $form);
266
267            $message.removeClass('alert-warning');
268            $message.removeClass('alert-success');
269            if (data.status && typeof grecaptcha !== "undefined" && $form.find(':input[name=g-recaptcha-response]').length > 0) {
270                if (!ets_cfu_recaptcha_v3) {
271                    grecaptcha.reset();
272                }
273            }
274            switch (data.status) {
275                case 'validation_failed':
276                    $.each(data.invalidFields, function (i, n) {
277                        $(n.into, $form).each(function () {
278                            wpcfu.notValidTip(this, n.message);
279                            $('.wpcfu-form-control', this).addClass('wpcfu-not-valid');
280                            $('[aria-invalid]', this).attr('aria-invalid', 'true');
281                        });
282                    });
283                    $message.addClass('alert alert-warning');
284                    $form.addClass('invalid');
285                    wpcfu.triggerEvent(data.into, 'invalid', detail);
286                    break;
287                case 'acceptance_missing':
288                    $message.addClass('alert alert-warning');
289                    $form.addClass('unaccepted');
290                    wpcfu.triggerEvent(data.into, 'unaccepted', detail);
291                    break;
292                case 'spam':
293                    $message.addClass('alert alert-warning');
294                    $form.addClass('spam');
295                    $('[name="g-recaptcha-response"]', $form).each(function () {
296                        if ('' === $(this).val()) {
297                            var $recaptcha = $(this).closest('.wpcfu-form-control-wrap');
298                            wpcfu.notValidTip($recaptcha, wpcfu.recaptcha.messages.empty);
299                        }
300                    });
301                    wpcfu.triggerEvent(data.into, 'spam', detail);
302                    break;
303                case 'aborted':
304                    $message.addClass('alert alert-warning');
305                    $form.addClass('aborted');
306
307                    wpcfu.triggerEvent(data.into, 'aborted', detail);
308                    break;
309                case 'mail_sent':
310                    $message.addClass('alert alert-success');
311                    $form.addClass('sent');
312                    wpcfu.triggerEvent(data.into, 'mailsent', detail);
313                    break;
314                case 'mail_failed':
315                    $message.addClass('alert alert-warning');
316                    $form.addClass('failed');
317                    wpcfu.triggerEvent(data.into, 'mailfailed', detail);
318                    break;
319                case 'mail_redirect':
320                    $message.hide().remove();
321                    window.location.href = data.message;
322                    break;
323                case 'load_thank_page':
324                    $message.hide().remove();
325                    window.location.href = data.message;
326                    break;
327                case 'not_found':
328                    $message.addClass('alert alert-danger');
329                    $form.addClass('failed');
330                    break;
331                default:
332                    var customStatusClass = 'custom-' + data.status.replace(/[^0-9a-z]+/i, '-');
333                    $message.addClass('wpcfu-' + customStatusClass);
334                    $form.addClass(customStatusClass);
335            }
336
337            wpcfu.refill($form, data);
338
339            wpcfu.triggerEvent(data.into, 'submit', detail);
340
341            if ('mail_sent' === data.status) {
342                $form.each(function () {
343                    this.reset();
344                });
345            }
346
347            $form.find('[placeholder].placeheld').each(function (i, n) {
348                $(n).val($(n).attr('placeholder'));
349            });
350
351            $message.html('').append(data.message).slideDown('fast');
352            $message.attr('role', 'alert');
353
354            $('.screen-reader-response', $form.closest('.wpcfu')).each(function () {
355                var $response = $(this);
356                $response.html('').attr('role', '').append(data.message);
357
358                if (data.invalidFields) {
359                    var $invalids = $('<ul></ul>');
360
361                    $.each(data.invalidFields, function (i, n) {
362                        if (n.idref) {
363                            var $li = $('<li></li>').append($('<a></a>').attr('href', '#' + n.idref).append(n.message));
364                        } else {
365                            var $li = $('<li></li>').append(n.message);
366                        }
367
368                        $invalids.append($li);
369                    });
370
371                    $response.append($invalids);
372                }
373
374                $response.attr('role', 'alert').focus();
375            });
376        };
377        $.ajax({
378            type: 'POST',
379            url: $form.attr('action'),
380            data: formData,
381            dataType: 'json',
382            processData: false,
383            contentType: false
384        }).done(function (data, status, xhr) {
385            ajaxSuccess(data, status, xhr, $form);
386            $('.ajax-loader', $form).removeClass('is-active');
387            $form.removeClass('is-active');
388            if ($form.find('.pa-captcha-refesh').length)
389                refeshImage($form.find('.pa-captcha-refesh'));
390        }).fail(function (xhr, status, error) {
391            $form.find('.wpcfu-response-output').removeClass('alert-warning');
392            $form.find('.wpcfu-response-output').removeClass('alert-success');
393            $form.find('.wpcfu-response-output').html('There was a technical error when submitting the form. Please contact webmaster for more information');
394            $form.find('.wpcfu-response-output').addClass('alert alert-warning');
395            $form.find('.wpcfu-response-output').addClass('invalid').show();
396            $form.find('.ajax-loader').removeClass('is-active');
397            $form.removeClass('is-active');
398            if ($form.find('.pa-captcha-refesh'))
399                refeshImage($form.find('.pa-captcha-refesh'));
400        });
401    };
402    wpcfu.triggerEvent = function (target, name, detail) {
403        var $target = $(target);
404
405        /* DOM event */
406        var event = new CustomEvent('wpcfu' + name, {
407            bubbles: true,
408            detail: detail
409        });
410        /* jQuery event */
411        $target.trigger('wpcfu:' + name, detail);
412        $target.trigger(name + '.wpcfu', detail); // deprecated
413    };
414
415    wpcfu.toggleSubmit = function (form, state) {
416        var $form = $(form);
417        var $submit = $('input:submit', $form);
418
419        if (typeof state !== 'undefined') {
420            $submit.prop('disabled', !state);
421            return;
422        }
423
424        if ($form.hasClass('wpcfu-acceptance-as-validation')) {
425            return;
426        }
427        $submit.prop('disabled', false);
428
429        $('.wpcfu-acceptance', $form).each(function () {
430            var $span = $(this);
431            var $input = $('input:checkbox', $span);
432
433            if (!$span.hasClass('optional')) {
434                if ($span.hasClass('invert') && $input.is(':checked')
435                    || !$span.hasClass('invert') && !$input.is(':checked')) {
436                    $submit.prop('disabled', true);
437                    return false;
438                }
439            }
440        });
441    };
442
443    wpcfu.notValidTip = function (target, message) {
444        var $target = $(target);
445        $('.wpcfu-not-valid-tip', $target).remove();
446        $('<span role="alert" class="wpcfu-not-valid-tip"></span>')
447            .text(message).appendTo($target);
448
449        if ($target.is('.use-floating-validation-tip *')) {
450            var fadeOut = function (target) {
451                $(target).not(':hidden').animate({
452                    opacity: 0
453                }, 'fast', function () {
454                    $(this).css({'z-index': -100});
455                });
456            };
457
458            $target.on('mouseover', '.wpcfu-not-valid-tip', function () {
459                fadeOut(this);
460            });
461
462            $target.on('focus', ':input', function () {
463                fadeOut($('.wpcfu-not-valid-tip', $target));
464            });
465        }
466    };
467
468    wpcfu.refill = function (form, data) {
469        var $form = $(form);
470
471        var refillCaptcha = function ($form, items) {
472            $.each(items, function (i, n) {
473                $form.find(':input[name="' + i + '"]').val('');
474                $form.find('img.wpcfu-captcha-' + i).attr('src', n);
475                var match = /([0-9]+)\.(png|gif|jpeg)$/.exec(n);
476                $form.find('input:hidden[name="_ets_cfu_captcha_challenge_' + i + '"]').attr('value', match[1]);
477            });
478        };
479
480        var refillQuiz = function ($form, items) {
481            $.each(items, function (i, n) {
482                $form.find(':input[name="' + i + '"]').val('');
483                $form.find(':input[name="' + i + '"]').siblings('span.wpcfu-quiz-label').text(n[0]);
484                $form.find('input:hidden[name="_ets_cfu_quiz_answer_' + i + '"]').attr('value', n[1]);
485            });
486        };
487
488        if (typeof data === 'undefined') {
489            $.ajax({
490                type: 'GET',
491                url: wpcfu.apiSettings.getRoute(
492                    '/contact-forms/' + wpcfu.getId($form) + '/refill'),
493                beforeSend: function (xhr) {
494                    var nonce = $form.find(':input[name="_wpnonce"]').val();
495
496                    if (nonce) {
497                        xhr.setRequestHeader('X-WP-Nonce', nonce);
498                    }
499                },
500                dataType: 'json'
501            }).done(function (data, status, xhr) {
502                if (data.captcha) {
503                    refillCaptcha($form, data.captcha);
504                }
505
506                if (data.quiz) {
507                    refillQuiz($form, data.quiz);
508                }
509            });
510
511        } else {
512            if (data.captcha) {
513                refillCaptcha($form, data.captcha);
514            }
515
516            if (data.quiz) {
517                refillQuiz($form, data.quiz);
518            }
519        }
520    };
521
522    wpcfu.clearResponse = function (form) {
523        var $form = $(form);
524        $form.removeClass('invalid spam sent failed');
525        $form.siblings('.screen-reader-response').html('').attr('role', '');
526
527        $('.wpcfu-not-valid-tip', $form).remove();
528        $('[aria-invalid]', $form).attr('aria-invalid', 'false');
529        $('.wpcfu-form-control', $form).removeClass('wpcfu-not-valid');
530
531        $('.wpcfu-response-output', $form)
532            .hide().empty().removeAttr('role')
533            .removeClass('wpcfu-mail-sent-ok wpcfu-mail-sent-ng wpcfu-validation-errors wpcfu-spam-blocked');
534    };
535
536    wpcfu.apiSettings.getRoute = function (path) {
537        var url = wpcfu.apiSettings.root;
538
539        url = url.replace(
540            wpcfu.apiSettings.namespace,
541            wpcfu.apiSettings.namespace + path);
542
543        return url;
544    };
545
546})(jQuery);
547
548
549 function parseQueryString(queryString) {
550	 var params = {};
551	 var queries = queryString.split("&");
552	 $.each(queries, function(i, query) {
553		 var pair = query.split("=");
554		 params[pair[0]] = decodeURIComponent(pair[1]);
555	 });
556	 return params;
557 }
558
559$(document ).ajaxComplete(function( event, xhr, settings ) {
560    var data_post = settings.data;
561	
562	if($('.ps-shown-by-js .btn').length){
563		$('.ps-shown-by-js .btn').show();
564		if(typeof data_post!= 'object' && data_post )
565		{
566
567			if(data_post.indexOf('module_name')>=0 && data_post.indexOf('module_name')>=0 ){
568
569				let dataObj = parseQueryString(data_post);
570				let paymentOption = dataObj.module_name;
571				console.log("sadasda", paymentOption);
572				if(paymentOption == "ps_checkout-paypal"){
573				console.log("sadasda2", paymentOption);
574					$('.ps-shown-by-js .btn').hide();
575					//Paypal
576				} else if(paymentOption == "ps_checkout-card"){
577					//Carta di Credito
578				} else if(paymentOption == "ps_checkout-mybank"){
579					//Maybank 
580				} else if(paymentOption == "ps_wirepayment"){
581					//Bonifico
582				} else if(paymentOption == "amazonpay"){
583					//AmazonPay
584				} else if(paymentOption == "ps_cashondelivery"){
585					//Grenke
586				} else if(paymentOption == "satispay"){
587					//Satispay
588				} else if(paymentOption == "alma"){
589					//Alma
590				} else if(paymentOption == "heidipay"){
591					//Pagolight
592				}
593			}
594		}
595	}
596    
597	if (xhr.responseText && xhr.responseText.indexOf('quickview_html')) {
598
599        $('div.wpcfu > form').each(function () {
600            var $form = $(this);
601            wpcfu.initForm($form);
602
603            if (wpcfu.cached) {
604                wpcfu.refill($form);
605            }
606        });
607    }
608    // if(typeof data_post!= 'object' && data_post )
609    // {
610    //     if(data_post.indexOf('addDiscount')>=0 && data_post.indexOf('discount_name')>=0 )
611    //         $('.loading').removeClass('loading');
612    // }
613    // if(xhr.responseText && xhr.responseText.indexOf("cart_detailed")>=0)
614    // {
615    //     var json= $.parseJSON(xhr.responseText);
616    //
617    //     if($('.block-shopping-cart').attr('data-change-cart'))
618    //     {
619    //         $('.block-shopping-cart').attr('data-change-cart','');
620    //         ets_refresh_shipping_cart(true);
621    //     }
622    //     $(document).trigger('updatePayMentMethod');
623    //     $(document).trigger('DOMContentLoaded');
624    // }
625});
626
627
628/*
629 * Polyfill for Internet Explorer
630 * See https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent/CustomEvent
631 */
632(function () {
633    if (typeof window.CustomEvent === "function") return false;
634
635    function CustomEvent(event, params) {
636        params = params || {bubbles: false, cancelable: false, detail: undefined};
637        var evt = document.createEvent('CustomEvent');
638        evt.initCustomEvent(event,
639            params.bubbles, params.cancelable, params.detail);
640        return evt;
641    }
642
643    CustomEvent.prototype = window.Event.prototype;
644
645    window.CustomEvent = CustomEvent;
646})();
647
648$(document).ready(function () {
649    $('.wpcfu input[type="url"]').each(function () {
650        if ($(this).val()) {
651            $(this).val($(this).val().replace('default:current_url', window.location.href));
652        }
653    });
654    $(document).on('click', '.wpcfu .ets_cfu_show_hide', function () {
655        if ($(this).find('i.svg-eye-slash').length > 0) {
656            $(this).find('i').removeClass('svg-eye-slash').addClass('svg-eye');
657            $(this).prev('input').attr('type', 'text');
658        } else {
659            $(this).find('i').removeClass('svg-eye').addClass('svg-eye-slash');
660            $(this).prev('input').attr('type', 'password');
661        }
662    });
663    $(document).on('click', '.ctf_click_open_contactform7', function () {
664        var id = $(this).attr('data-id');
665        $('#ctf-popup-wapper-' + id).addClass('show');
666        if (!$(this).hasClass('addlogded')) {
667            ajaxAddLoger($('#ctf-popup-wapper-' + id).find('.wpcfu').attr('data-id'));
668            $(this).addClass('addlogded');
669        }
670    });
671    $(document).on('click', '.wpcfu.hook', function () {
672        var id = $(this).attr('data-id');
673        $('#ctf-popup-wapper-' + id).addClass('show');
674        if (!$(this).hasClass('addlogded')) {
675            ajaxAddLoger(id);
676            $(this).addClass('addlogded');
677        }
678    });
679    $(document).on('click', '.ctf_close_popup', function () {
680        $(this).closest('.ctf-popup-wapper').removeClass('show');
681    });
682    $(document).mouseup(function (e) {
683        var container = $('.ctf-popup-content');
684        var datepicker = $('.ui-datepicker');
685        if (!container.is(e.target) && container.has(e.target).length === 0 && !datepicker.is(e.target) && datepicker.has(e.target).length === 0) {
686            $('.ctf-popup-wapper').removeClass('show');
687        }
688    });
689    $(document).keyup(function (e) {
690        if (e.keyCode == 27) { // escape key maps to keycode `27`
691            $('.ctf-popup-wapper').removeClass('show');
692        }
693    });
694    if ($(".wpcfu .datetimepicker").length > 0) {
695        $(".wpcfu .datetimepicker").datetimepicker({
696            timepicker: true,
697            format: 'Y-m-d h:i',
698            dateFormat: 'yy-mm-dd',
699            timeFormat: 'hh:mm',
700            changeMonth: true,
701            changeYear: true,
702        });
703    }
704    if ($(".wpcfu .datepicker").length > 0) {
705        $(".wpcfu .datepicker").datepicker({
706            timepicker: false,
707            format: 'Y-m-d',
708            dateFormat: 'yy-mm-dd',
709            changeMonth: true,
710            changeYear: true,
711        });
712    }
713    $('.pa-captcha-refesh').click(function () {
714        refeshImage($(this));
715        return false;
716    });
717    if ($('input[type="range"]').length) {
718        $('input[type="range"]').each(function () {
719            if ($(this).prev('.rang-value').length > 0)
720                $(this).prev('.rang-value').html($(this).val());
721        });
722    }
723    $('input[type="range"]').change(function () {
724        if ($(this).prev('.rang-value').length > 0)
725            $(this).prev('.rang-value').html($(this).val());
726    });
727
728
729    //Init MCE
730    if (typeof tinyMCE !== 'undefined' && $('.autoload_rte_cfu').length > 0) {
731        tinyMCE.init({
732            selector: '.autoload_rte_cfu',
733            plugins: "align link image media code emoticons",
734            browser_spellcheck: true,
735            toolbar1: "emoticons,bold,italic,underline,link,align,bulli,numlist,table,image",
736            convert_urls: false,
737        });
738    }
739});
740
741function getDataContent(object) {
742    var idEl = object[0].id,
743        body = tinyMCE.get(idEl).getBody(),
744        text = body.innerText || body.textContent;
745    var re = /\n$/g;
746    var OK = re.exec(text);
747    if (OK) {
748        text = text.replace(/\n$/g, '');
749    }
750    return {
751        idEl: idEl,
752        chars: text.replace(/[\t\n]+/g, ' ').length,
753        words: text.split(/[\w\u2019\'-]+/).length
754    };
755};
756
757function excuteType(objectData) {
758    var elMax = $('#' + objectData['idEl']).next('.number_max'),
759        elIndex = elMax.find('.index_type').first();
760
761    if (parseInt(objectData['chars']) >= parseInt($('#' + objectData['idEl']).attr('maxlength'))) {
762        elIndex.html(parseInt($('#' + objectData['idEl']).attr('maxlength')));
763        return false;
764    }
765    elIndex.html(parseInt(objectData['chars']));
766    return true;
767}
768
769
770function refeshImage($this) {
771    if ($this.prev('.pa-captcha-img-data').length) {
772        originalCapcha = $this.prev('.pa-captcha-img-data').attr('src');
773        originalCode = $this.attr('data-rand');
774        newCode = Math.random();
775        $this.prev('.pa-captcha-img-data').attr('src', originalCapcha.replace(originalCode, newCode));
776        $this.attr('data-rand', newCode);
777        $('input[type="captcha"]').val('');
778    }
779}
780
781function ajaxAddLoger(id_contact) {
782    $.ajax({
783        type: 'POST',
784        headers: {"cache-control": "no-cache"},
785        url: link_contact_ets,
786        dataType: "json",
787        data: 'action=etsCfuAddLogger&id_contact=' + id_contact,
788        success: function (jsonData) {
789
790        }
791    });
792}
793
794function ets_cfu_loading_captcha() {
795    var img = $('.pa-captcha-img-data:not(.loaded)').first();
796    if (img.length > 0) {
797        img.load(function () {
798            if (!img.hasClass('loaded')) {
799                ets_cfu_refresh_captcha(img);
800            }
801            if (img[0].complete && img.hasClass('loaded')) {
802                ets_cfu_loading_captcha();
803            }
804        }).filter(function () {
805            return this.complete;
806        }).load();
807    }
808}
809
810function ets_cfu_refresh_captcha(img) {
811    if (img.length && !img.hasClass('loaded')) {
812        var org_link = img.attr('src'),
813            org_code = img.attr('data-rand'),
814            rand = Math.random();
815        img.attr({'src': org_link.replace(org_code, rand), 'data-rand': rand});
816        if (!img.hasClass('loaded')) {
817            img.addClass('loaded');
818        }
819        img.next(".pa-captcha-refesh").attr('data-rand', rand);
820    }
821}
822
823document.addEventListener("DOMContentLoaded", function (event) {
824    if ($('.pa-captcha-img-data').length > 1) {
825        ets_cfu_loading_captcha();
826    }
827});
828
829var ets_cfu_update = {
830    init: function () {
831        this.check_maxlength_number();
832        this.caculate_maxleng();
833        this.hidden_reference();
834    },
835    check_maxlength_number: function () {
836        var input_number = $('.ets_cfu_form-control-wrap input[type="number"]');
837        if (input_number.length > 0) {
838            input_number.on("keyup", function (e) {
839                var $field = $(this),
840                    val = this.value; // retrieve the index
841                if (val.length > Number($field.attr("maxlength"))) {
842                    val = val.slice(0, $field.attr('maxlength'));
843                    $field.val(val);
844                }
845            });
846        }
847    },
848    caculate_maxleng: function () {
849        $(document).on('keyup', 'input[maxlength], textarea[maxlength]', function () {
850            var leng = $(this).val().length;
851            if (leng > $(this).attr('maxlength')) {
852                return;
853            }
854            var el_numbermax = $(this).next('.number_max');
855            el_numbermax.find('.index_type').first().html(leng);
856        });
857    },
858    hidden_reference: function () {
859        if ($('.ets_cfu_input_reference').length > 0 && typeof hidden_reference !== "undefined" && hidden_reference) {
860            $('.ets_cfu_input_reference').hide();
861        }
862        if ($('.ets_cfu_input_referrence').length > 0 && typeof hidden_reference !== "undefined" && hidden_reference) {
863            $('.ets_cfu_input_referrence').hide();
864        }
865    },
866};
867
868$(document).ready(function () {
869    ets_cfu_update.init();
870});
871
872$(document).on('click', '.ets_cfu_form-control-wrap .number_plus,.ets_cfu_form-control-wrap .number_minus', function () {
873    var $qty = $(this).closest('.ets_cfu_form-control-wrap').find('.ets_cfu-number').first(),
874        currentVal = parseFloat($qty.val()),
875        max = parseFloat($qty.attr('max')),
876        min = parseFloat($qty.attr('min')),
877        step = $qty.attr('step');
878
879    // Format values
880    if (!currentVal || currentVal === '' || currentVal === 'NaN') currentVal = 0;
881    if (max === '' || max === 'NaN') max = '';
882    if (min === '' || min === 'NaN') min = 0;
883    if (step === 'any' || step === '' || step === undefined || parseFloat(step) === 'NaN') step = 1;
884
885    // Change the value
886    if ($(this).is('.ets_cfu_form-control-wrap .number_plus')) {
887        if (max && (currentVal >= max)) {
888            $qty.val(max);
889        } else {
890            $qty.val((currentVal + parseFloat(step)));
891        }
892    } else {
893        if (min && (currentVal <= min)) {
894            $qty.val(min);
895        } else if (currentVal > 0) {
896            $qty.val((currentVal - parseFloat(step)));
897        }
898    }
899
900    // Trigger change event
901    $qty.trigger('change');
902});
903
904$(".access_numer input").keypress(function (event) {
905    var keyCode = event.keyCode ? event.keyCode : event.which ? event.which : event.charCode;
906    if ((keyCode >= 65 && keyCode <= 90) || (keyCode >= 97 && keyCode <= 122))
907        return false;
908    else return true;
909});
910
911
912//newCode:
913const ETS_CFU_DO_SHOW = 1;
914const ETS_CFU_DO_HIDE = 2;
915const ETS_CFU_DO_SHOW_MULTIPLE = 3;
916const ETS_CFU_DO_HIDE_MULTIPLE = 4;
917
918const ETS_CFU_OPERATOR_CONTAINER = 1;
919const ETS_CFU_OPERATOR_DO_NOT_CONTAINER = 2;
920const ETS_CFU_OPERATOR_EMPTY = 3;
921const ETS_CFU_OPERATOR_FILLED = 4;
922const ETS_CFU_OPERATOR_EQUAL = 5;
923const ETS_CFU_OPERATOR_NOT_EQUAL = 6;
924const ETS_CFU_OPERATOR_LESS_THAN = 7;
925const ETS_CFU_OPERATOR_GREATER_THAN = 8;
926const ETS_CFU_OPERATOR_BEFORE = 9;
927const ETS_CFU_OPERATOR_AFTER = 10;
928
929const ETS_CFU_INPUT_TYPES = ['menu', 'radio', 'checkbox'];
930
931function ets_cfu_init_condition_form(form, load) {
932    if (!form) {
933        form = $('form.ets-cfu-form:not(.ets-cfu-condition-loaded)');
934    }
935    if (!form.length > 0)
936        return;
937    form.each(function () {
938        let _this = $(this)
939            , id = _this.attr('data-id')
940        ;
941        try {
942            if (typeof eval(`ETS_CFU_CONDITION_FF_${id}`) === typeof undefined) return;
943        } catch (error) {
944            return error;
945        }
946        let fields_form = eval(`ETS_CFU_CONDITION_FF_${id}`)
947            , ifs = eval(`ETS_CFU_CONDITION_IF_${id}`)
948            , operators = eval(`ETS_CFU_CONDITION_OP_${id}`)
949            , values = eval(`ETS_CFU_CONDITION_VL_${id}`)
950            , dos = eval(`ETS_CFU_CONDITION_DO_${id}`)
951            , fields = eval(`ETS_CFU_CONDITION_FI_${id}`)
952        ;
953        if (typeof ifs !== typeof undefined) {
954            let keys = Object.keys(ifs);
955            keys.forEach((key) => {
956                let field = ets_cfu_get_field_form(fields_form, ifs[key])
957                    , selector = `form[data-id=${id}] [name^=${ifs[key]}]`
958                    , selectorForm = `form[data-id=${id}]`
959                ;
960                if (load) {
961                    let _this = $(selector);
962                    ets_cfu_condition(selectorForm, _this, key, ifs, operators, values, dos, fields, field);
963                }
964                $(document).on('change keyup', selector, function (e) {
965                    e.preventDefault();
966                    let _this = $(this);
967                    ets_cfu_condition(selectorForm, _this, key, ifs, operators, values, dos, fields, field);
968                });
969            });
970        }
971    });
972}
973
974function ets_cfu_condition(selectorForm, _this, key, ifs, operators, values, dos, fields, field) {
975    let logic = false;
976    switch (operators[key]) {
977        case `${ETS_CFU_OPERATOR_CONTAINER}`:
978            if (_this.val().indexOf(values[key]) !== -1) {
979                logic = true;
980            }
981            break;
982        case `${ETS_CFU_OPERATOR_DO_NOT_CONTAINER}`:
983            if (_this.val().indexOf(values[key]) === -1) {
984                logic = true;
985            }
986            break;
987        case `${ETS_CFU_OPERATOR_EMPTY}`:
988            if (_this.val().trim() === '') {
989                logic = true;
990            }
991            break;
992        case `${ETS_CFU_OPERATOR_FILLED}`:
993            if (_this.val().trim() !== '') {
994                logic = true;
995            }
996            break;
997        case `${ETS_CFU_OPERATOR_EQUAL}`:
998            let eq = ets_cfu_convert_value(_this, values[key], field.type);
999            if (eq[0] === eq[1]) {
1000                logic = true;
1001            }
1002            break;
1003        case `${ETS_CFU_OPERATOR_NOT_EQUAL}`:
1004            let not_eq = ets_cfu_convert_value(_this, values[key], field.type);
1005            if (not_eq[0] !== not_eq[1]) {
1006                logic = true;
1007            }
1008            break;
1009        case `${ETS_CFU_OPERATOR_BEFORE}`:
1010        case `${ETS_CFU_OPERATOR_LESS_THAN}`:
1011            let le = ets_cfu_convert_value(_this, values[key], field.type);
1012            if (le[0] < le[1]) {
1013                logic = true;
1014            }
1015            break;
1016        case `${ETS_CFU_OPERATOR_AFTER}`:
1017        case `${ETS_CFU_OPERATOR_GREATER_THAN}`:
1018            let gt = ets_cfu_convert_value(_this, values[key], field.type);
1019            if (gt[0] > gt[1]) {
1020                logic = true;
1021            }
1022            break;
1023    }
1024    ets_cfu_do_field(selectorForm, dos[key], fields[key], logic);
1025}
1026
1027function ets_cfu_convert_value(_this, value2, type) {
1028    let convert1 = null, convert2 = null;
1029    switch (type) {
1030        case 'number':
1031            convert1 = new Number(_this.val());
1032            convert2 = new Number(value2);
1033            break;
1034        case 'date':
1035            convert1 = new Date(_this.val()).getTime();
1036            convert2 = new Date(value2).getTime();
1037            break;
1038        case 'checkbox':
1039            convert1 = 0;
1040            convert2 = 1;
1041            let values = $(`input[name="${_this.attr('name')}"]:checked`), list = [];
1042            if (values.length > 0) {
1043                values.each(function () {
1044                    list.push($(this).val());
1045                });
1046            }
1047            if (value2.length > 0 && list.length > 0 && value2.length === list.length) {
1048                convert1 = 1;
1049                convert2 = 1;
1050                list.forEach((item) => {
1051                    if (value2.indexOf(item) === -1) {
1052                        convert1 = 0;
1053                        convert2 = 1;
1054                        return [convert1, convert2];
1055                    }
1056                });
1057            }
1058            break;
1059        case 'radio':
1060            convert1 = $(`input[name="${_this.attr('name')}"]:checked`).length > 0 ? $(`input[name="${_this.attr('name')}"]:checked`).val().trim() : null;
1061            convert2 = value2[0].trim();
1062            break;
1063        case 'menu':
1064            convert1 = _this.val();
1065            convert2 = value2.trim();
1066            if (_this.attr('multiple') === 'multiple') {
1067                if (convert1 !== null && convert1.length > 0) {
1068                    convert1.forEach((item) =>{
1069                        if (item === convert2) {
1070                            convert1 = item;
1071                            return [convert1, convert2];
1072                        }
1073                    });
1074                }
1075            }
1076            break;
1077        default:
1078            convert1 = _this.val().trim();
1079            convert2 = value2.trim();
1080            break;
1081    }
1082    return [convert1, convert2];
1083}
1084
1085function ets_cfu_do_field(selectorForm, _do, fields, logic) {
1086    if (!_do || !fields)
1087        return;
1088    switch (_do) {
1089        case `${ETS_CFU_DO_HIDE}`:
1090        case `${ETS_CFU_DO_HIDE_MULTIPLE}`:
1091            fields.forEach((field) => {
1092                let wrapper_field = $(`${selectorForm} [name^=${field}]`).closest('.ets_cfu_input');
1093                if (logic)
1094                    wrapper_field.hide();
1095                else
1096                    wrapper_field.show();
1097            });
1098            break;
1099        case `${ETS_CFU_DO_SHOW}`:
1100        case `${ETS_CFU_DO_SHOW_MULTIPLE}`:
1101            fields.forEach((field) => {
1102                let wrapper_field = $(`${selectorForm} [name=${field}]`).closest('.ets_cfu_input');
1103                if (logic)
1104                    wrapper_field.show();
1105                else
1106                    wrapper_field.hide();
1107            });
1108            break;
1109    }
1110}
1111
1112function ets_cfu_get_field_form(fields_form, name) {
1113    if (!fields_form)
1114        return {};
1115    let find = {};
1116    fields_form.forEach((field) => {
1117        if (name === field.name) {
1118            find = field;
1119        }
1120    });
1121    return find;
1122}
1123
1124$(document).ready(function () {
1125    ets_cfu_init_condition_form(false, true);
1126});
1127

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.