File: /home/hanode/public_html/wp-content/sitepress-multilingual-cms/res/js/xdomain-data.js
/*globals jQuery, icl_vars, wpml_xdomain_data */
(function () {
"use strict";
jQuery(document).ready(function () {
jQuery('.' + wpml_xdomain_data.css_selector + ' a').on('click', function (event) {
var originalUrl;
var currentUrl = window.location.href;
var targetUrl = jQuery(this).attr('href');
if ('#' !== targetUrl && currentUrl !== targetUrl) {
event.preventDefault();
originalUrl = jQuery(this).attr('href');
// Filter out xdomain_data if already in the url
originalUrl = originalUrl.replace(/&xdomain_data(=[^&]*)?(?=&|$)|xdomain_data(=[^&]*)?(&|$)/, '');
originalUrl = originalUrl.replace(/\?$/, '');
/** @namespace icl_vars.current_language */
jQuery.ajax({
url: wpml_xdomain_data.ajax_url,
type: 'post',
dataType: 'json',
data: {
action: 'switching_language',
from_language: wpml_xdomain_data.current_language
},
success: function (response) {
var argsGlue;
var url;
var hash;
var urlSplit;
var xdomain;
var form;
if (response.data.xdomain_data) {
if (response.success) {
if ('post' === response.data.method) {
// POST
form = jQuery('<form method="post" action="' + originalUrl + '" >');
xdomain = jQuery('<input type="hidden" name="xdomain_data" value="' + response.data.xdomain_data + '">');
form.append(xdomain);
jQuery('body').append(form);
form.submit();
} else {
// GET
urlSplit = originalUrl.split('#');
hash = '';
if (1 < urlSplit.length) {
hash = '#' + urlSplit[1];
}
url = urlSplit[0];
if (url.indexOf('?') === -1) {argsGlue = '?';} else {argsGlue = '&';}
/** @namespace response.data.xdomain_data */
url = originalUrl + argsGlue + 'xdomain_data=' + response.data.xdomain_data + hash;
location.href = url;
}
} else {
url = originalUrl;
location.href = url;
}
} else {
location.href = originalUrl;
}
},
error: function () {
location.href = originalUrl;
}
});
}
});
});
}());