%PDF- %PDF-
Direktori : /home/bitrix/www/bitrix/components/bitrix/sale.account.pay/templates/.default/ |
Current File : //home/bitrix/www/bitrix/components/bitrix/sale.account.pay/templates/.default/script.js |
BX.saleAccountPay = (function() { var classDescription = function(params) { this.messages = params.alertMessages || {}; this.nameValue = params.nameValue || "buyMoney"; this.ajaxUrl = params.url; this.signedParams = params.signedParams || {}; this.wrapperId = params.wrapperId || ""; this.templateFolder = params.templateFolder; this.templateName = params.templateName || ""; this.wrapper = document.getElementById('bx-sap'+ this.wrapperId); this.changeInputContainer = this.wrapper.getElementsByClassName('sale-acountpay-fixedpay-container')[0]; this.paySystemsContainer = this.wrapper.getElementsByClassName('sale-acountpay-pp')[0]; this.inputElement = this.wrapper.getElementsByClassName('sale-acountpay-input')[0]; this.submitButton = this.wrapper.getElementsByClassName('btn')[0]; this.checkboxList = this.wrapper.getElementsByClassName('sale-acountpay-pp-company'); BX.ready(BX.proxy(this.init, this)); }; classDescription.prototype.init = function() { this.checkboxList[0].checked = "checked"; BX.bindDelegate(this.paySystemsContainer, 'click', { 'className': 'sale-acountpay-pp-company' }, BX.proxy( function(event) { var oldChosenCheckboxList = this.wrapper.querySelectorAll('.sale-acountpay-pp-company-checkbox:checked'); Array.prototype.forEach.call(oldChosenCheckboxList, function(checkbox) { checkbox.checked = false; checkbox.parentNode.parentNode.classList.remove('bx-selected'); }); var parent = event.target.parentNode; parent.classList.add('bx-selected'); parent.parentNode.classList.add('bx-selected'); parent.querySelector('.sale-acountpay-pp-company-checkbox').checked = 'checked'; return this; }, this) ); BX.bind(this.inputElement, 'input', BX.delegate( function () { this.inputElement.value = this.inputElement.value.replace(/[^\d,.]*/g, '') .replace(/\,/g, '.') .replace(/([,.])[,.]+/g, '$1') .replace(/^[^\d]*(\d+([.,]\d{0,5})?).*$/g, '$1'); }, this) ); BX.bindDelegate(this.changeInputContainer, 'click', { 'className': 'sale-acountpay-fixedpay-item' }, BX.proxy( function(event) { this.inputElement.value = parseInt(event.target.innerText); }, this) ); BX.bind(this.submitButton, 'click', BX.delegate( function(event) { event.preventDefault(); if (parseFloat(this.inputElement.value) <= 0 || this.inputElement.value == "") { window.alert( BX.util.htmlspecialchars(this.messages.wrongInput)); return false; } this.startLoader(); BX.ajax( { method: 'POST', dataType: 'html', url: this.ajaxUrl, data: { sessid: BX.bitrix_sessid(), buyMoney: this.inputElement.value, templateName: this.templateName, paySystemId: this.wrapper.querySelector('.sale-acountpay-pp-company-checkbox:checked').value, signedParamsString: this.signedParams }, onsuccess: BX.proxy(function(result) { while (this.wrapper.firstChild) { this.wrapper.removeChild(this.wrapper.firstChild); } this.wrapper.innerHTML = result; this.endLoader(); },this), onfailure: BX.proxy(function() { return this; }, this) }, this ); this.destroy(); }, this) ); return this; }; classDescription.prototype.destroy = function() { this.messages = null; this.nameValue = null; this.signedParams = null; this.changeInputContainer = null; this.paySystemsContainer = null; this.inputElement = null; this.submitButton = null; this.checkboxList = null; }; /** * Showing loader image with overlay. */ classDescription.prototype.startLoader = function() { if (this.BXFormPosting === true) { return false; } this.BXFormPosting = true; if (!this.loadingScreen) { this.loadingScreen = new BX.PopupWindow("loading_screen", this.submitButton, { overlay: {backgroundColor: 'white', opacity: '80'}, autoHide : true, events: { onAfterPopupShow: BX.proxy(function() { BX.cleanNode(this.loadingScreen.popupContainer); this.loadingScreen.popupContainer.appendChild( BX.create('IMG', {props: {src: this.templateFolder + "/images/loader.gif"}}) ); this.loadingScreen.popupContainer.removeAttribute('style'); this.loadingScreen.popupContainer.style.display = 'block'; }, this) } }); } return this.loadingScreen.show(); }; /** * Hiding loader image with overlay. */ classDescription.prototype.endLoader = function(loaderTimer) { this.BXFormPosting = false; if (this.loadingScreen && this.loadingScreen.isShown()) { this.loadingScreen.close(); } clearTimeout(loaderTimer); }; return classDescription; })();