File: /home-ssd1/busines1/www/wp-content/plugins/woocommerce-multilingual/res/js/wcml-multi-currency.js
document.addEventListener('DOMContentLoaded', function() {
document.addEventListener('click', wcml_switch_currency_handler);
});
function wcml_switch_currency_handler(event) {
var eventTargetElement = event.target;
if (eventTargetElement.matches('.wcml_currency_switcher a, .wcml_currency_switcher a *')) {
event.preventDefault();
var targetElement = eventTargetElement.closest('.wcml_currency_switcher a');
if (targetElement.disabled ||
targetElement.parentElement.classList.contains('wcml-cs-active-currency') ||
targetElement.classList.contains('wcml-cs-active-currency')) {
return;
}
document.removeEventListener('click', wcml_switch_currency_handler);
wcml_load_currency(targetElement.getAttribute('rel'));
}
}
function wcml_load_currency(currency, force_switch) {
force_switch = force_switch || 0;
var ajax_loader = document.createElement('img');
ajax_loader.className = 'wcml-spinner';
ajax_loader.width = 16;
ajax_loader.height = 16;
ajax_loader.src = wcml_mc_settings.wcml_spinner;
var switchers = document.querySelectorAll('.wcml_currency_switcher');
switchers.forEach(function(switcher) {
switcher.appendChild(ajax_loader);
});
var formData = new FormData();
formData.append('action', 'wcml_switch_currency');
formData.append('currency', currency);
formData.append('force_switch', force_switch);
formData.append('params', window.location.search.substr(1));
var xhr = new XMLHttpRequest();
xhr.open('POST', woocommerce_params.ajax_url);
xhr.responseType = 'json';
xhr.onload = function() {
var response = xhr.response;
if (response.error) {
alert(response.error);
} else if (response.data && response.data.prevent_switching) {
wcml_insert_ajax_html_response_in_dom(response.data.prevent_switching);
} else {
var target_location = window.location.href;
if (target_location.includes('#') || wcml_mc_settings.cache_enabled) {
var url_dehash = target_location.split('#');
var hash = url_dehash.length > 1 ? '#' + url_dehash[1] : '';
target_location = url_dehash[0].replace(/&wcmlc(\=[^&]*)?(?=&|$)|wcmlc(\=[^&]*)?(&|$)/, '').replace(/\?$/, '');
var url_glue = target_location.includes('?') ? '&' : '?';
target_location += url_glue + 'wcmlc=' + currency + hash;
}
wcml_reset_cart_fragments();
window.location = wcml_maybe_adjust_widget_price(target_location, response.data);;
}
};
xhr.send(formData);
}
function wcml_insert_ajax_html_response_in_dom(html) {
// Insert the HTML fragment without the script
const div = document.createElement('div');
div.innerHTML = html;
const script = div.getElementsByTagName('script')[0];
const scriptContent = script.innerText || script.textContent;
// Remove the script tags from the div and grab their content
script.parentNode.removeChild(script);
// Now insert the cleaned HTML
document.body.insertAdjacentHTML('beforeend', div.innerHTML);
// Create a new script element and add the extracted script content
const scriptToExecute = document.createElement('script');
scriptToExecute.type = 'text/javascript';
scriptToExecute.id = 'wcml-cart-dialog-script';
scriptToExecute.appendChild(document.createTextNode(scriptContent));
// Append the new script element to the document so it will execute
document.body.appendChild(scriptToExecute);
}
function wcml_maybe_adjust_widget_price(target_location, response) {
if (response.min_price) {
target_location = target_location.replace(/(min_price=)(\d+)/, "$1" + response.min_price);
}
if (response.max_price) {
target_location = target_location.replace(/(max_price=)(\d+)/, "$1" + response.max_price);
}
return target_location;
}