1. Import
This commit is contained in:
199
html/service/price_finder/wpcf7r-fe.js
Normal file
199
html/service/price_finder/wpcf7r-fe.js
Normal file
@@ -0,0 +1,199 @@
|
||||
var wpcf7_redirect;
|
||||
|
||||
(function ($) {
|
||||
function Wpcf7_redirect() {
|
||||
this.init = function () {
|
||||
this.wpcf7_redirect_mailsent_handler();
|
||||
};
|
||||
|
||||
this.wpcf7_redirect_mailsent_handler = function () {
|
||||
|
||||
document.addEventListener('wpcf7mailsent', function (event) {
|
||||
|
||||
$(document.body).trigger('wpcf7r-mailsent', [event]);
|
||||
|
||||
if (typeof event.detail.apiResponse != 'undefined' && event.detail.apiResponse) {
|
||||
var apiResponse = event.detail.apiResponse;
|
||||
var actionDelay = 0;
|
||||
|
||||
//handle api response
|
||||
if (typeof apiResponse.api_url_request != 'undefined' && apiResponse.api_url_request) {
|
||||
wpcf7_redirect.handle_api_action(apiResponse.api_url_request);
|
||||
}
|
||||
|
||||
//handle api response
|
||||
if (typeof apiResponse.api_json_xml_request != 'undefined' && apiResponse.api_json_xml_request) {
|
||||
wpcf7_redirect.handle_api_action(apiResponse.api_json_xml_request);
|
||||
}
|
||||
|
||||
//handle fire javascript action
|
||||
if (typeof apiResponse.FireScript != 'undefined' && apiResponse.FireScript) {
|
||||
actionDelay = typeof apiResponse.FireScript.delay_redirect != 'undefined' ? apiResponse.FireScript.delay_redirect : actionDelay;
|
||||
window.setTimeout(function () {
|
||||
wpcf7_redirect.handle_javascript_action(apiResponse.FireScript);
|
||||
}, actionDelay);
|
||||
}
|
||||
|
||||
//catch and handle popup action
|
||||
if (typeof apiResponse.popup != 'undefined' && apiResponse.popup) {
|
||||
wpcf7_redirect.handle_popups(apiResponse.popup);
|
||||
}
|
||||
|
||||
//catch redirect to paypal
|
||||
if (typeof apiResponse.redirect_to_paypal != 'undefined' && apiResponse.redirect_to_paypal) {
|
||||
actionDelay = typeof apiResponse.redirect_to_paypal.delay_redirect != 'undefined' ? apiResponse.redirect_to_paypal.delay_redirect : actionDelay;
|
||||
window.setTimeout(function () {
|
||||
wpcf7_redirect.handle_redirect_action(apiResponse.redirect_to_paypal);
|
||||
}, actionDelay);
|
||||
}
|
||||
|
||||
//catch redirect action
|
||||
if (typeof apiResponse.redirect != 'undefined' && apiResponse.redirect) {
|
||||
actionDelay = typeof apiResponse.redirect.delay_redirect != 'undefined' ? apiResponse.redirect.delay_redirect : actionDelay;
|
||||
window.setTimeout(function () {
|
||||
wpcf7_redirect.handle_redirect_action(apiResponse.redirect);
|
||||
}, actionDelay);
|
||||
}
|
||||
}
|
||||
}, false);
|
||||
|
||||
document.addEventListener('wpcf7invalid', function (event) {
|
||||
|
||||
$(document.body).trigger('wpcf7r-invalid', [event]);
|
||||
|
||||
if (typeof event.detail.apiResponse != 'undefined' && event.detail.apiResponse) {
|
||||
response = event.detail.apiResponse;
|
||||
if (response.invalidFields) {
|
||||
//support for multistep by ninja
|
||||
wpcf7_redirect.ninja_multistep_mov_to_invalid_tab(event, response);
|
||||
}
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
this.handle_popups = function (popups) {
|
||||
|
||||
$(document.body).trigger('wpcf7r-before-open-popup', [event]);
|
||||
|
||||
$.each(popups, function (k, popup) {
|
||||
|
||||
var $new_elem = $(popup['popup-template']);
|
||||
|
||||
$(document.body).append($new_elem);
|
||||
$(document.body).addClass(popup['template-name']);
|
||||
|
||||
window.setTimeout(function () {
|
||||
$(document.body).addClass('modal-popup-open');
|
||||
$new_elem.addClass('is-open');
|
||||
}, 1000);
|
||||
|
||||
$new_elem.find('.close-button').on('click', function () {
|
||||
|
||||
$new_elem.removeClass('is-open').addClass('fade');
|
||||
|
||||
$(document.body).removeClass('modal-popup-open');
|
||||
|
||||
window.setTimeout(function () {
|
||||
$('.wpcf7r-modal').remove();
|
||||
$(document.body).trigger('wpcf7r-popup-removed', [$new_elem]);
|
||||
}, 4000);
|
||||
});
|
||||
|
||||
$(document.body).trigger('wpcf7r-popup-appended', [$new_elem]);
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
this.handle_api_action = function (send_to_api_result, request) {
|
||||
|
||||
$.each(send_to_api_result, function (k, v) {
|
||||
if (!v.result_javascript) {
|
||||
return;
|
||||
}
|
||||
response = typeof v.api_response != 'undefined' ? v.api_response : '';
|
||||
request = typeof v.request != 'undefined' ? v.request : '';
|
||||
eval(v.result_javascript);
|
||||
});
|
||||
};
|
||||
|
||||
this.ninja_multistep_mov_to_invalid_tab = function (event, response) {
|
||||
|
||||
if ($('.fieldset-cf7mls-wrapper').length) {
|
||||
var form = $(event.target);
|
||||
var first_invalid_field = response.invalidFields[0];
|
||||
var parent_step = $(first_invalid_field.into).parents('fieldset');
|
||||
|
||||
form.find('.fieldset-cf7mls').removeClass('cf7mls_current_fs');
|
||||
parent_step.addClass('cf7mls_current_fs').removeClass('cf7mls_back_fs');
|
||||
if (form.find('.cf7mls_progress_bar').length) {
|
||||
form.find('.cf7mls_progress_bar li').eq(form.find("fieldset.fieldset-cf7mls").index(previous_fs)).addClass("current");
|
||||
form.find('.cf7mls_progress_bar li').eq(form.find("fieldset.fieldset-cf7mls").index(current_fs)).removeClass("active current");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
this.handle_redirect_action = function (redirect) {
|
||||
|
||||
$(document.body).trigger('wpcf7r-handle_redirect_action', [redirect]);
|
||||
|
||||
$.each(redirect, function (k, v) {
|
||||
var delay = typeof v.delay != 'undefined' && v.delay ? v.delay : '';
|
||||
|
||||
delay = delay * 1000;
|
||||
|
||||
window.setTimeout(function (v) {
|
||||
var redirect_url = typeof v.redirect_url != 'undefined' && v.redirect_url ? v.redirect_url : '';
|
||||
var type = typeof v.type != 'undefined' && v.type ? v.type : '';
|
||||
|
||||
if (typeof v.form != 'undefined' && v.form) {
|
||||
$('body').append(v.form);
|
||||
$('#cf7r-result-form').submit();
|
||||
} else {
|
||||
|
||||
if (redirect_url && type == 'redirect') {
|
||||
window.location = redirect_url;
|
||||
} else if (redirect_url && type == 'new_tab') {
|
||||
window.open(redirect_url);
|
||||
}
|
||||
}
|
||||
}, delay, v);
|
||||
|
||||
});
|
||||
|
||||
};
|
||||
|
||||
this.handle_javascript_action = function (scripts) {
|
||||
|
||||
$(document.body).trigger('wpcf7r-handle_javascript_action', [scripts]);
|
||||
|
||||
$.each(scripts, function (k, script) {
|
||||
eval(script); //not using user input
|
||||
});
|
||||
|
||||
};
|
||||
|
||||
this.htmlspecialchars_decode = function (string) {
|
||||
|
||||
var map = {
|
||||
'&': '&',
|
||||
'&': "&",
|
||||
'<': '<',
|
||||
'>': '>',
|
||||
'"': '"',
|
||||
''': "'",
|
||||
'’': "’",
|
||||
'‘': "‘",
|
||||
'–': "–",
|
||||
'—': "—",
|
||||
'…': "…",
|
||||
'”': '”'
|
||||
};
|
||||
|
||||
return string.replace(/\&[\w\d\#]{2,5}\;/g, function (m) { return map[m]; });
|
||||
};
|
||||
|
||||
this.init();
|
||||
}
|
||||
|
||||
wpcf7_redirect = new Wpcf7_redirect();
|
||||
})(jQuery);
|
||||
Reference in New Issue
Block a user