// source --> https://www.los-olivos.es/wp-content/plugins/cleantalk-spam-protect/js/cleantalk_nocache.min.js?ver=5.149 
if(void 0===ctNocache)var ctNocache={set_cookies_flag:!0,ajaxurl:"/wp-admin/admin-ajax.php"};function sendRequest(e,t,n){var c=createXMLHTTPObject();if(c){var i=n?"POST":"GET";e="https:"===location.protocol?e.replace("http:","https:"):e.replace("https:","http:"),c.open(i,e,!0),n&&c.setRequestHeader("Content-type","application/x-www-form-urlencoded"),c.onreadystatechange=function(){4==c.readyState&&(200!=c.status&&304!=c.status||t(c))},4!=c.readyState&&c.send(n)}}var XMLHttpFactories=[function(){return new XMLHttpRequest},function(){return new ActiveXObject("Msxml2.XMLHTTP")},function(){return new ActiveXObject("Msxml3.XMLHTTP")},function(){return new ActiveXObject("Microsoft.XMLHTTP")}];function createXMLHTTPObject(){for(var e=!1,t=0;t<XMLHttpFactories.length;t++){try{e=XMLHttpFactories[t]()}catch(e){continue}break}return e}function ct_getCookie(e){var t=document.cookie.match(new RegExp("(?:^|; )"+e.replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g,"\\$1")+"=([^;]*)"));return t?decodeURIComponent(t[1]):void 0}function ct_setCookie(e,t){if(ctNocache.set_cookies_flag){document.cookie=e+" =; expires=Thu, 01 Jan 1970 00:00:01 GMT; path = /; samesite=lax",document.cookie=e+" =; expires=Thu, 01 Jan 1970 00:00:01 GMT; samesite=lax";var n=new Date;n.setDate(n.getDate()+1),setTimeout(function(){document.cookie=e+"="+t+"; expires="+n.toUTCString()+"; path = /; samesite=lax"},500)}return null}function ct_callback(t){for(ct_cookie=t.responseText.trim(),ct_setCookie("ct_checkjs",ct_cookie),i=0;i<document.forms.length;i++)for(f=document.forms[i],j=0;j<f.elements.length;j++)e=f.elements[j],void 0!==e.name&&-1!=e.name.indexOf("ct_checkjs")&&(e.value=ct_cookie)}if(Date.now||(Date.now=function(){return(new Date).getTime()}),null==ct_nocache_executed){var ct_nocache_executed=!0,checkjs_cookie=ct_getCookie("ct_checkjs");if(null!=checkjs_cookie)for(i=0;i<document.forms.length;i++)for(f=document.forms[i],j=0;j<f.elements.length;j++)e=f.elements[j],void 0!==e.name&&-1!=e.name.indexOf("ct_checkjs")&&(e.value=checkjs_cookie);if(null==checkjs_cookie&&sendRequest(ctNocache.ajaxurl+"?"+Math.random(),ct_callback,"action=ct_get_cookie"),void 0!==ctNocache.info_flag&&ctNocache.info_flag){var cleantalk_user_info={},cleantalk_screen_info={};for(var prop in screen)navigator[prop]instanceof Object||""===screen[prop]||(cleantalk_screen_info[prop]=screen[prop]);cleantalk_user_info.screen=cleantalk_screen_info;for(var prev,cleantalk_plugins=Array(),cnt=0,i=0;i<navigator.plugins.length;i++){var plugin;prev!=(plugin=(plugin=navigator.plugins[i]).name+" "+(plugin.version||""))&&(cleantalk_plugins[cnt]=plugin,cnt++,prev=plugin)}cleantalk_user_info.plugins=cleantalk_plugins,cleantalk_user_info.timezone_offset=-(new Date).getTimezoneOffset()/60,cleantalk_user_info.datetime=Math.round((new Date).getTime()/1e3),cleantalk_user_info.browser_x=document.documentElement.clientWidth,cleantalk_user_info.browser_y=document.documentElement.clientHeight;var ua=navigator.userAgent.toLowerCase(),flashInstalled=0;if(void 0!==navigator.plugins&&"object"==typeof navigator.plugins["Shockwave Flash"])flashInstalled=1;else if(void 0!==window.ActiveXObject)try{new ActiveXObject("ShockwaveFlash.ShockwaveFlash")&&(flashInstalled=1)}catch(e){}cleantalk_user_info.is_flash=flashInstalled,isVisitedMain=-1,location.href!="http://"+location.hostname+"/"&&location.href!="https://"+location.hostname+"/"||(isVisitedMain=1,setTimeout(function(){document.cookie="ct_visited_main = 1; path = /; samesite=lax"},1500)),ct_visited_main=ct_getCookie("ct_visited_main"),isVisitedMain=null==ct_visited_main&&-1==isVisitedMain?0:1,cleantalk_user_info.is_main=isVisitedMain,setTimeout(function(){document.cookie="ct_user_info = "+escape(JSON.stringify(cleantalk_user_info))+"; path = /; samesite=lax"},1500)}};
// source --> https://www.los-olivos.es/wp-content/plugins/learncare-master/wp-advanced-search/js/scripts.js?ver=5.4.19 
// Global constants
var __WPAS = {
    FORM : "#wp-advanced-search.wpas-ajax-enabled",
    CONTAINER : "#wpas-results",
    INNER : "#wpas-results-inner",
    DEBUG_CONTAINER : "#wpas-debug",
    PAGE_FIELD : "#wpas-paged",
    FORM_ID: "",
    KEY_PREFIX: "wpasInstance_",
    HASH: "",
    STORAGE_KEY: function() {
        return this.KEY_PREFIX + this.FORM_ID;
    }
};

jQuery(document).ready(function($) {

    __WPAS.FORM_ID = $('#wpas-id').val();
    __WPAS.HASH = $(__WPAS.FORM).data('ajax-url-hash');
    var CURRENT_PAGE = 1;

    /**
     *  Event listeners
     */

    $('form.wpas-autosubmit :input').change(function() {
        $(this).parents('form').submit();
    });

    $('button.wpas-clear').click(function(e) {
        e.preventDefault();
        $(this).parents('form').find(':input')
            .not(':button, :submit, :reset, :hidden')
            .val('')
            .removeAttr('checked')
            .removeAttr('selected');
        $(this).parents('form.wpas-autosubmit').each(function() {
            $(this).submit();
            return false;
        });
    });

    $('input.wpas-reset').click(function(e){
        e.preventDefault();
        $(this).parents('form')[0].reset();
        $(this).parents('form.wpas-autosubmit').each(function() {
            $(this).submit();
            return false;
        });
    });

    /**
     *  AJAX Functionality
     */

    if ($(__WPAS.FORM).length == 0) {
        log("No AJAX-enabled WPAS search form detected on page.");
        return;
    }

    if ($(__WPAS.CONTAINER).length == 0) {
        log("No container with ID #wpas-results found on page.  Results cannot be shown");
        return;
    }

    var DEBUG_ON = ($(__WPAS.FORM).hasClass('wpas-debug-enabled')) ? true : false;
    var SHOW_DEFAULT = ($(__WPAS.FORM).data('ajax-show-default')) ? true : false;

    var T = (DEBUG_ON) ? 500 : 0;

    if (DEBUG_ON && $(__WPAS.DEBUG_CONTAINER).length == 0) {
        log("WPAS_DEBUG is enabled but no container with ID #wpas-debug was found " +
        "on this page.  Debug information cannot be shown.");
        return;
    }

    var ajaxLoader = {
        container: "wpas-load",
        load_btn: "wpas-load-btn",
        load_btn_text: "",
        load_img: "wpas-loading-img",
        load_img_url: "",
        init : function(form) {
            this.load_btn_text = $(form).data('ajax-button');
            this.load_img_url = $(form).data('ajax-loading');
            $(__WPAS.CONTAINER).append(this.create());
        },

        create: function() {
            var html = "<div id='wpas-load'>";
            html += "<div><img id='"+this.load_img+"' style='display:none;' src='"+this.load_img_url+"'></div>";
            html += "<div><button id='"+this.load_btn+"' style='display:none;'>"+this.load_btn_text+"</button></div>";
            html += "</div>";
            return html;
        },

        showButton: function() {
            $('#'+this.load_btn).addClass('active').show();
        },

        hideButton: function() {
            $('#'+this.load_btn).removeClass('active').hide();
        },

        showImage: function() {
            $('#'+this.load_img).show();
        },

        hideImage: function() {
            $('#'+this.load_img).hide();
        }

    };

    $(__WPAS.CONTAINER).append("<div id='wpas-results-inner'></div>");
    ajaxLoader.init(__WPAS.FORM);

    var storage = null;
    if (window.location.hash.slice(1) == __WPAS.HASH) {
        storage = JSON.parse(localStorage.getItem("wpasInstance_"+__WPAS.FORM_ID));
    }

    if (storage != null) {
        log("localStorage found");
        loadInstance();
    } else {
        setPage(1);
        setRequest($(__WPAS.FORM).serialize());
    }

    if ($(__WPAS.CONTAINER).length != 0) {
        if (storage != null) {
            $(__WPAS.CONTAINER).html(storage.results);
        } else if (SHOW_DEFAULT) { // Show results by default if attribute is set
            sendRequest($(__WPAS.FORM).serialize(), CURRENT_PAGE);
        }
    }

    // Submits the form
    // Reset current page to 1
    function submitForm(form) {
        setPage(1);
        var form_data = $(form).serialize();
        setRequest(form_data);
        $(__WPAS.INNER).empty();
        sendRequest(form_data, CURRENT_PAGE);
    }

    // Set AJAX request to fetch results
    // Appends results to the container
    function sendRequest(data, page) {
        ajaxLoader.hideButton();
        ajaxLoader.showImage();
        jQuery.ajax({
            type: 'POST',
            url: WPAS_Ajax.ajaxurl,
            data: {
                action: 'wpas_ajax_load',
                page: page,
                form_data: data
            },
            success: function(data, textStatus, XMLHttpRequest) {
                response = JSON.parse(data);
                setTimeout(function() {
                    appendHTML(__WPAS.INNER, response.results);
                    ajaxLoader.hideImage();
                    updateHTML(__WPAS.DEBUG_CONTAINER,response.debug);
                    CURRENT_PAGE = response.current_page;
                    var max_page = response.max_page;

                    log("Current Page: "+CURRENT_PAGE+", Max Page: "+max_page);

                    if (max_page == 0 || CURRENT_PAGE == max_page) {
                        ajaxLoader.hideButton();
                    } else {
                        ajaxLoader.showButton();
                    }

                    window.location.hash = __WPAS.HASH;
                    storeInstance();
                    unlockForm();

                }, T);

            },
            error: function(MLHttpRequest, textStatus, errorThrown){
                console.log(errorThrown);
            }
        });
    }

    function storeInstance() {
        var instance = { request: REQUEST_DATA, form: getFormValues(), results : getResults(), page: CURRENT_PAGE  };
        instance = JSON.stringify(instance);
        localStorage.setItem(__WPAS.STORAGE_KEY(), instance);
    }

    function addArrayValues(values, input) {
        var name = $(input).attr('name');
        var value = $(input).val();

        if (typeof values[name] == 'undefined') {
            values[name] = [];
        }

        if ($(input).is(":checked")) values[name].push(value);

        return values;
    }

    function getFormValues() {
        var values = {};
        $(__WPAS.FORM).find(':input').not(':button, :submit, :reset').each(function() {
            if ($(this).attr('type') == 'checkbox') {
                values = addArrayValues(values, this)
            } else {
                values[$(this).attr('name')] = $(this).val();
            }
        });
        return values;
    }

    function getResults() {
        return $(__WPAS.CONTAINER).html();
    }

    function loadInstance() {
        var instance = localStorage.getItem(__WPAS.STORAGE_KEY());
        instance = JSON.parse(instance);
        if (instance == null) return;
        if (instance.form) loadForm(instance.form);
        if (instance.results) loadResults(instance.results);
        if (instance.page) setPage(instance.page);
        if (instance.request) setRequest(instance.request);
    }

    function loadForm(form_values) {
        $(__WPAS.FORM).find(':input').not(':button, :submit, :reset').each(function() {
            var value = form_values[$(this).attr('name')];
            if ($(this).attr('type') == 'checkbox') {
                if (value.indexOf( $(this).val() ) >= 0) {
                    $(this).prop('checked',true);
                } else {
                    $(this).prop('checked',false);
                }
            } else {
                $(this).val(value);
            }
        });
    }

    function loadResults(results) {
        $(__WPAS.CONTAINER).html(results);
    }

    function lockForm() {
        $(__WPAS.FORM).addClass('wpas-locked');
        $(__WPAS.FORM).find('input:submit').attr('disabled', 'disabled');
    }

    function formLocked() {
        return $(__WPAS.FORM).hasClass('wpas-locked');
    }

    function unlockForm() {
        $(__WPAS.FORM).removeClass('wpas-locked');
        $(__WPAS.FORM).find('input:submit').removeAttr('disabled');
    }

    function appendHTML(el, content) {
        $(el).append(content);
    }

    function updateHTML(el, content) {
        $(el).html(content);
    }

    function setPage(pagenum) {
        CURRENT_PAGE = pagenum;
        $(__WPAS.PAGE_FIELD).val(pagenum);
    }

    function setRequest(request) {
        REQUEST_DATA = request;
    }

    function log(msg) {
        if (DEBUG_ON) console.log("WPAS: " + msg);
    }

    // AJAX Event Listeners

    $(__WPAS.FORM).submit(function(e) {
        e.preventDefault();
        if (formLocked()) return;
        lockForm();
        submitForm(this);
    });

    $(document).on('click', '#'+ajaxLoader.load_btn+'.active', function(e){
        setPage(parseInt(CURRENT_PAGE) + 1)
        sendRequest(REQUEST_DATA,CURRENT_PAGE);
    });

});