Skip to content

Instantly share code, notes, and snippets.

@konclave
Last active February 12, 2018 13:25
Show Gist options
  • Save konclave/80ae28a18a4058ea724529ad7407246e to your computer and use it in GitHub Desktop.
Save konclave/80ae28a18a4058ea724529ad7407246e to your computer and use it in GitHub Desktop.
<script>
document.addEventListener('DOMContentLoaded', function() {
var formAction = 'https://www.moneta.ru/assistant.htm';
var formParams = {
MNT_ID: '85531267',
MNT_TEST_MODE: '0',
PS: '1686945',
ACTIVE_PS: '1686945'
};
var form = document.querySelector('.js-form-proccess');
var moneta = createMonetaForm(form);
Array.prototype.forEach.call(document.querySelectorAll('a[href="#popup:webinar"]'), handleBuyClick);
bindCollectDescription();
function bindCollectDescription() {
var emailInput = form.querySelector('[name="Email"]');
var phoneInput = form.querySelector('[name="Phone"]');
var nameInput = form.querySelector('[name="Name"]');
emailInput.addEventListener('blur', setDescription);
nameInput.addEventListener('blur', setDescription);
phoneInput.addEventListener('blur', setDescription);
function setDescription() {
var email = emailInput.value;
var phone = phoneInput.value;
var name = nameInput.value;
var typeInput = document.querySelector('[name="Who_is"]:checked');
moneta.querySelector('[name="MNT_DESCRIPTION"]').setAttribute('value', email);
moneta.querySelector('[name="MNT_CUSTOM1"]').setAttribute('value', name);
moneta.querySelector('[name="MNT_CUSTOM2"]').setAttribute('value', phone);
moneta.querySelector('[name="MNT_CUSTOM3"]').setAttribute('value', typeInput ? typeInput.value : '');
}
}
function setFormParams() {
form.setAttribute('action', formAction);
Object.keys(formParams).forEach(function(key) {
form.querySelector('[name="' + key + '"]').setAttribute('value', formParams[key]);
});
}
function handleBuyClick(button) {
button.addEventListener('click', function(event) {
var price = event.currentTarget.parentNode.querySelector('.t599__price').textContent.match(/\d+/g).join('');
moneta.querySelector('[name="MNT_AMOUNT"]').setAttribute('value', price);
});
}
function createMonetaForm(source) {
var formElement = document.createElement('form');
var successURL = source.querySelector('[name="SUCCESS_URL"]');
var failURL = source.querySelector('[name="FAIL_URL"]');
var returnURL = source.querySelector('[name="RETURN_URL"]');
formElement.setAttribute('action', formAction);
formElement.innerHTML =
'<input type="hidden" name="MNT_ID" value="' + formParams.MNT_ID + '" />' +
'<input type="hidden" name="MNT_TEST_MODE" value="' + formParams.MNT_TEST_MODE + '" />' +
'<input type="hidden" name="paymentSystem.unitId" value="' + formParams.ACTIVE_PS + '" />' +
'<input type="hidden" name="paymentSystem.limitIds" value="' + formParams.PS + '" />' +
'<input type="hidden" name="MNT_DESCRIPTION" />' +
'<input type="hidden" name="MNT_CUSTOM1" />' +
'<input type="hidden" name="MNT_CUSTOM2" />' +
'<input type="hidden" name="MNT_CUSTOM3" />' +
(successURL ? '<input type="hidden" name="MNT_SUCCESS_URL" value="' + successURL.value + '"/>' : '') +
(failURL ? '<input type="hidden" name="MNT_FAIL_URL" value="' + failURL.value + '" />' : '') +
(returnURL ? '<input type="hidden" name="MNT_RETURN_URL" value="' + returnURL.value + '"/>' : '') +
'<input type="hidden" name="MNT_AMOUNT" />';
document.querySelector('body').appendChild(formElement);
return formElement;
}
window.pawSuccessFunction = function(form) {
$(moneta).submit();
};
form.dataset.successCallback = 'window.pawSuccessFunction';
});
</script>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment