Current File : /home/mdkeenpw/shafqattraders.com/wp-content/plugins/suretriggers/assets/js/st-trigger-button.js |
function st_get_cookie(cookieName) {
const regex = new RegExp(cookieName + '=([^;]+)');
const cookieValue = document.cookie.match(regex);
return cookieValue ? cookieValue[1] : null;
}
function st_trigger_ajax(element) {
var button = element;
button.disabled = true;
var form = button.closest("form");
var formData = new FormData(form);
var inputTriggerId = button.parentNode.querySelector('input[name="st_trigger_id"]');
var inputLoadingLabel = button.parentNode.querySelector('input[name="st_loading_label"]');
var inputClickedLabel = button.parentNode.querySelector('input[name="st_clicked_label"]');
var inputButtonLabel = button.parentNode.querySelector('input[name="st_button_label"]');
var inputUserId = button.parentNode.querySelector('input[name="st_user_id"]');
var cookiename = 'st_trigger_button_clicked_' + inputTriggerId.value;
var cookie = 'yes_' + inputUserId.value;
var cookieValue = st_get_cookie(cookiename);
if (cookieValue === null || cookieValue !== cookie) {
button.classList.add('st_trigger_button_loading');
if (inputLoadingLabel.value !== '') {
button.textContent = inputLoadingLabel.value;
}
var xhr = new XMLHttpRequest();
xhr.open('POST', st_ajax_object.ajax_url);
xhr.onreadystatechange = function() {
if (xhr.readyState === XMLHttpRequest.DONE) {
if (xhr.status === 200) {
button.classList.remove('st_trigger_button_loading');
button.disabled = false;
if (inputClickedLabel.value !== '') {
button.textContent = inputClickedLabel.value;
} else {
button.textContent = inputButtonLabel.value;
}
if( xhr.responseText != '' ){
var response = JSON.parse(xhr.responseText);
const parsed = new URL(response.data);
if (['http:', 'https:'].includes(parsed.protocol)) {
const redirectencodedURL = encodeURI(parsed.href);
try {
const redirectURL = decodeURI(redirectencodedURL);
window.location.href = redirectURL;
} catch (e) {
console.error(e);
}
}
}
}
}
};
xhr.send(formData);
} else {
if (inputClickedLabel.value !== '') {
button.textContent = inputClickedLabel.value;
}
}
}