HEX
Server: Apache
System: Linux server-634962.emtiyz.com 5.14.0-611.11.1.el9_7.x86_64 #1 SMP PREEMPT_DYNAMIC Wed Dec 3 09:47:37 EST 2025 x86_64
User: codo66ho (1003)
PHP: 8.2.30
Disabled: exec,passthru,shell_exec,system
Upload Files
File: /home/codo66ho/www/ar/wp-content/plugins/tf-car-listing/public/assets/js/main.js
var mainJSTFCL = mainJSTFCL || {};
(function ($) {
    'use strict';
    var decimals = 0,
        decPoint = '.',
        thousandsSep = ',';
    mainJSTFCL = {
        init: function () {
            this.onChangeFilterListingStatus();
            this.showFullNumber();
            searchMoreOptions();
            changeConditionFilter();
            if (main_variables.toggle_lazy_load == 'on') {
                this.lazyLoadImage();
            }
        },
        numberFormat: function (number, decimal) {
            decimal = (typeof decimal !== 'undefined') ? decimal : decimals;

            // Strip all characters but numerical ones.
            number = (number + '').replace(/[^0-9+\-Ee.]/g, '');
            var n = !isFinite(+number) ? 0 : +number,
                prec = !isFinite(+decimal) ? 0 : Math.abs(decimal),
                sep = (typeof thousandsSep === 'undefined') ? ',' : thousandsSep,
                dec = (typeof decPoint === 'undefined') ? '.' : decPoint,
                s = '',
                toFixedFix = function (n, prec) {
                    var k = Math.pow(10, prec);
                    return '' + Math.round(n * k) / k;
                };
            // Fix for IE parseFloat(0.55).toFixed(0) = 0;
            s = (prec ? toFixedFix(n, prec) : '' + Math.round(n)).split('.');
            if (s[0].length > 3) {
                s[0] = s[0].replace(/\B(?=(?:\d{3})+(?!\d))/g, sep);
            }
            if ((s[1] || '').length < prec) {
                s[1] = s[1] || '';
                s[1] += new Array(prec - s[1].length + 1).join('0');
            }
            return s.join(dec);
        },
        onChangeFilterListingStatus: function () {
            $('select#post_status').on('change', function () {
                var selected = $(this).find(":selected").val();
                window.location.href = selected;
            })
        },
        lazyLoadImage: function () {
            var lazyloadImages;
            if ("IntersectionObserver" in window) {
                lazyloadImages = document.querySelectorAll("img.lazy");
                var imageObserver = new IntersectionObserver(function (entries, observer) {
                    entries.forEach(function (entry) {
                        if (entry.isIntersecting) {
                            var image = entry.target;
                            var src = image.dataset.src;

                            image.tagName.toLowerCase() === 'img'
                                ? image.src = src
                                : image.style.backgroundImage = "url(\'" + src + "\')";
                            image.classList.add('loaded');
                            image.classList.remove("lazy");
                            imageObserver.unobserve(image);
                        }
                    });
                });

                lazyloadImages.forEach(function (image) {
                    imageObserver.observe(image);
                });
            } else {
                var lazyloadThrottleTimeout;
                lazyloadImages = document.querySelectorAll("img.lazy");
                function lazyload() {
                    if (lazyloadThrottleTimeout) {
                        clearTimeout(lazyloadThrottleTimeout);
                    }

                    lazyloadThrottleTimeout = setTimeout(function () {
                        var scrollTop = window.pageYOffset;
                        lazyloadImages.forEach(function (img) {
                            if (img.offsetTop < (window.innerHeight + scrollTop)) {
                                var src = img.dataset.src;
                                img.tagName.toLowerCase() === 'img'
                                    ? img.src = src
                                    : img.style.backgroundImage = "url(\'" + src + "\')";
                                img.classList.add('loaded');
                                img.classList.remove("lazy");
                            }
                        });
                        if (lazyloadImages.length == 0) {
                            document.removeEventListener("scroll", lazyload);
                            window.removeEventListener("resize", lazyload);
                            window.removeEventListener("orientationChange", lazyload);
                        }
                    }, 20);
                }

                document.addEventListener("scroll", lazyload);
                window.addEventListener("resize", lazyload);
                window.addEventListener("orientationChange", lazyload);
            }
        },
        showFullNumber: function () {
            $('.sale_phone_text').each(function () {
                var number = $(this).siblings('.full_number_phone').data('fullnumber');
                number = String(number);
                var hidden_part = '*'.repeat(3);
                var masked_phone_number = String(number).substr(0, 5) + hidden_part;
                $(this).text(masked_phone_number);
            });

            $('.show_number_btn').on('click', function (e) {
                e.preventDefault();
                var number = $(this).siblings('.full_number_phone').data('fullnumber');
                number = String(number);
                var textNumberCurrent = $(this).siblings('.sale_phone_text').text();

                if (textNumberCurrent == number) {
                    var hidden_part = '*'.repeat(number.length - 5);
                    var masked_phone_number = number.substr(0, 5) + hidden_part;
                    $(this).siblings('.sale_phone_text').text(masked_phone_number);
                } else {
                    $(this).siblings('.sale_phone_text').text(number);
                }
            });
        },
    }

    var changeConditionFilter = function () {
        // change condition filter
        $('.tf-search-condition-tab .btn-condition-filter').on('click', function (e) {
            e.preventDefault();
            $(this).siblings().removeClass('active');
            $(this).addClass('active');
            var conditionFilterVal = $(this).data('value');
            $('#condition').val(conditionFilterVal);
        })
    }

    var searchMoreOptions = function () {
        var searchMoreBtn = $('.tfcl-advanced-search-wrap .tf-search-more-btn');
        var wrap_btn_filter = $('.tfcl-advanced-search-wrap .tf-wrap-search-more-btn');
        var searchOptions = $('.tfcl-form-bottom.search-more-options');

        searchOptions.hide();

        searchMoreBtn.on('click', function (e) {
            e.stopPropagation();
            $(this.parentNode).toggleClass('active');
            $(this).toggleClass('active');
            searchOptions.slideToggle('slow', function () {
                searchOptions.toggleClass('open');
            });
        });

        $('.wrap-action-filter-search .btn-apply-filter').on('click', function (e) {
            searchOptions.slideUp('slow');
            searchMoreBtn.removeClass('active');
            wrap_btn_filter.removeClass('active');
        });

        // click outside
        $(document).on('click', function (e) {
            if (!$(e.target).closest($('.tfcl-advanced-search-wrap')).length) {
                searchOptions.slideUp('slow', function () {
                    searchOptions.removeClass('open');
                });
                searchMoreBtn.removeClass('active');
                wrap_btn_filter.removeClass('active');
            }
        });
    }

    var addIconRemove = function () {
        var selects = $('.search-listing-form select');        

        $(document).ready(function () {
            selects.each(function(){
                var $this = $(this);
                if ( $this.val() != '' ) {
                    var selectedItem = $this.closest('.form-item').find('.nice-select .current');
                    selectedItem.append('<span class="clear-option"></span>');
                }
            })
        });
        selects.on('change', function(e) {
            e.preventDefault(); 
            var $this = $(this);
            if ($this.val() != '') {
                var selectedItem = $this.closest('.form-item').find('.nice-select .current');
                selectedItem.append('<span class="clear-option"></span>');
            }
            $('.wrap-reset-filter').addClass('active');
        }); 
    }

    var resetOptions = function () {
        $('.search-listing-form').on('click', '.current .clear-option', function(e) {  
            e.stopPropagation();       
            var $select = $(this).closest('.form-item').find('select'); 
            $select.val($select.find('option:first').val());
            $select.niceSelect('destroy');
            $select.trigger('change');
            $select.niceSelect();            
        });
     }

    $(window).on('elementor/frontend/init', function () {
        elementorFrontend.hooks.addAction('frontend/element_ready/widget', function ($scope) {
            if (main_variables.toggle_lazy_load == 'on') {
                mainJSTFCL.lazyLoadImage();
            }
        });
        elementorFrontend.hooks.addAction('frontend/element_ready/tf_search.default', searchMoreOptions);
        elementorFrontend.hooks.addAction('frontend/element_ready/tf_search.default', changeConditionFilter);
        elementorFrontend.hooks.addAction('frontend/element_ready/tf_search.default', addIconRemove);
        elementorFrontend.hooks.addAction('frontend/element_ready/tf_search.default', resetOptions);
    });

    jQuery(document).ready(function () {
        mainJSTFCL.init();
        addIconRemove();
        resetOptions();
    });
})(jQuery);