removeLoader(); let localeDescope = ["eude", "euit"]; let eMailPattern = /^[\w]{1,}[\w.+-]{0,}@[\w-]{2,}([.][a-zA-Z]{2,}|[.][\w-]{2,}[.][a-zA-Z]{2,})$/; function initialize() { var autocomplete_donator_address = new google.maps.places.Autocomplete(document.getElementById('donator_address')); autocomplete_donator_address.addListener('place_changed', function() { addressComponents = autocomplete_donator_address.getPlace().address_components; for (ctr = 0; ctr < addressComponents.length; ctr++) { var component = addressComponents[ctr]; if (component.types.includes('administrative_area_level_1')) { document.getElementById("donator_state_name").value = component.long_name; clearError("donator_state_name"); } else if (component.types.includes('administrative_area_level_3')) { document.getElementById("donator_city_name").value = component.long_name; clearError("donator_city_name"); } } }); var autocomplete_donator_city = new google.maps.places.Autocomplete(document.getElementById('donator_city_name'), { types: ['(cities)'] }); autocomplete_donator_city.addListener('place_changed', function() { cityComponents = autocomplete_donator_city.getPlace().address_components; for (ctr = 0; ctr < cityComponents.length; ctr++) { var component = cityComponents[ctr]; if (component.types.includes('administrative_area_level_1')) { document.getElementById("donator_state_name").value = component.long_name; clearError("donator_state_name"); } } }); var autocomplete_donator_state = new google.maps.places.Autocomplete(document.getElementById('donator_state_name'), { types: ['(regions)'] }); } google.maps.event.addDomListener(window, 'load', initialize); setMandatoryPAN(); getDonationParameters(); let pgKey = ""; let unit = "KTSWT"; if ((jump = getUrlParameter("leap")) != "") { purposeList = $("#" + jump + "-button").attr("data-id"); controlDonationScopeDropdown(purposeList); $("#" + jump + "-button").click(); } function getDonationParameters() { try { showLoader(); xhr = new XMLHttpRequest(); xhr.onreadystatechange = function() { if (this.readyState == 4 && this.status == 200) { removeLoader(); if (this.responseText == "") swal({ text: gets("A1007"), dangerMode: false, icon: "error" }); else { donationParameters = JSON.parse(this.responseText); pgKey = donationParameters.payment_gateway_key; document.getElementById("disclaimer_text").innerHTML = gets("A1015"); consentTextControl(); } } } var frmData = new FormData(); xhr.open("POST", getPathName() + "services/donation_parameters.uget.php"); xhr.send(frmData); if (typeof(event) !== "undefined") event.preventDefault(); } catch (error) { swal({ text: "Exception: " + error.message + ", " + arguments.callee.name, dangerMode: true, icon: "error" }); } finally { // Do nothing } } function controlDonationScopeDropdown(dataId) { var element = document.getElementById('donator_scope'); var values = dataId.split(","); for (ctr = 0; ctr < element.options.length; ctr++) { element[ctr].selected = values.includes(element[ctr].value); element[ctr].style.display = (values.includes(element[ctr].value) ? "block" : "none"); } checkOpenOptions = 0; for (ctr = 0; ctr < element.options.length; ctr++) { if (element[ctr].style.display != "none") checkOpenOptions++; } if (checkOpenOptions == 0) for (ctr = 0; ctr < element.options.length; ctr++) element[ctr].style.display = "block"; $('#donator_scope').val(values[0]); refreshSelectPicker($('#donator_scope')); consentTextControl(); } function controlSubmit() { document.getElementById("donate_now").disabled = true; if (document.getElementById("consent").value == "YES") document.getElementById("donate_now").disabled = false; } function consentTextControl() { clearError("donator_scope"); document.getElementById("consent_text").innerHTML = ""; if (document.getElementById("donator_scope").value != "") { document.getElementById("consent_text").innerHTML = gets("A1016").replace("{{scope}}", document.getElementById("donator_scope").value); } } function setMandatoryPAN() { document.getElementById("donator_pan_information").required = false; if (document.getElementById("donation_amount").value >= 1) document.getElementById("donator_pan_information").required = true; } function formDonationValidate() { rValue = true; eMailPattern = /^[\w]{1,}[\w.+-]{0,}@[\w-]{2,}([.][a-zA-Z]{2,}|[.][\w-]{2,}[.][a-zA-Z]{2,})$/; validationFailedFields = "\nCheck the following fields:\n\n"; if (document.getElementById("donation_amount").value == 0) { setError("donation_amount"); validationFailedFields += getLabel(document.getElementById("donation_amount")); rValue = false; } if (document.getElementById("donator_scope").value == "") { setError("donator_scope"); validationFailedFields += getLabel(document.getElementById("donator_scope")); rValue = false; } if (document.getElementById("donation_amount").value >= 1 && (document.getElementById("donator_pan_information").value.trim() == "" || !validatePANFormat(document.getElementById("donator_pan_information").value))) { setError("donator_pan_information"); validationFailedFields += getLabel(document.getElementById("donator_pan_information")); swal({ text: gets("A1008"), dangerMode: false, icon: "error" }); rValue = false; } if (document.getElementById("donator_name").value == "") { setError("donator_name"); validationFailedFields += getLabel(document.getElementById("donator_name")); rValue = false; } if (document.getElementById("donator_address").value == "") { setError("donator_address"); validationFailedFields += getLabel(document.getElementById("donator_address")); rValue = false; } if (!validatePhoneNumber(document.getElementById("donator_mobile_number").value) || document.getElementById("donator_mobile_number").value == "") { setError("donator_mobile_number"); validationFailedFields += getLabel(document.getElementById("donator_mobile_number")); rValue = false; } if (!emailPattern.test(document.getElementById("donator_email_id").value)) { setError("donator_email_id"); validationFailedFields += getLabel(document.getElementById("donator_email_id")); rValue = false; } if (document.getElementById("donator_city_name").value.trim() == "") { setError("donator_city_name"); validationFailedFields += getLabel(document.getElementById("donator_city_name")); rValue = false; } if (document.getElementById("donator_state_name").value.trim() == "") { setError("donator_state_name"); validationFailedFields += getLabel(document.getElementById("donator_state_name")); rValue = false; } if (rValue == false) { swal({ text: gets("A1017") + "\n" + validationFailedFields, dangerMode: false, icon: "error" }); } return rValue; } function proceedWithDonation(event) { if (formDonationValidate()) { try { showLoader(); orderId = ""; var xhr = new XMLHttpRequest(); xhr.onreadystatechange = function() { if (this.readyState == 4 && this.status == 200) { removeLoader(); orderId = this.responseText; if (this.responseText == "PAN_CHECK_SYSTEM_ERROR") { swal({ text: gets("A1009"), dangerMode: true, icon: "error" }); } else if (this.responseText == "PAN_CHECK_FAILED") { setError("donator_pan_information"); swal({ text: gets("A1010"), dangerMode: true, icon: "error" }); } else if (this.responseText == "INVALID_MAIL_ID") { setError("donator_email_id"); swal({ text: gets("A1018"), dangerMode: false, icon: "error" }); } else if (this.responseText == "FAILED") { swal({ text: gets("A1011"), dangerMode: true, icon: "error" }); } else if (pgKey != "") { var options = { "key": pgKey, "amount": document.getElementById("donation_amount").value * 100, "name": "Donations", "description": "Kalki Tejomaya Social Welfare Trust", "order_id": (orderId.substring(0, 4) == "TEST" ? "" : orderId), "modal": { "ondismiss": function() { swal({ text: gets("A1012"), dangerMode: true, icon: "error" }); } }, "image": "https://maitribodh.org/datta/images/logo_ktswt.png", "handler": function(response) { updateDonation(response.razorpay_payment_id, orderId); }, "prefill": { "name": document.getElementById("donator_name").value, "email": document.getElementById("donator_email_id").value, "contact": document.getElementById("donator_mobile_number").value }, "notes": { "address": "KTSWT" }, "theme": { "color": "#F37254" } }; var pgModal = new Razorpay(options); pgModal.open(); } } } var frmData = new FormData(); frmData.set("caller_name", "Donations"); frmData.set("form_data", getFormValues("frmDonations")); frmData.set("unit", unit); frmData.set("program_type", "donations"); frmData.set("fee", document.getElementById("donation_amount").value); frmData.set("email_id_for_validation", document.getElementById("donator_email_id").value); frmData.set("pan", document.getElementById("donator_pan_information").value); frmData.set("full_name_entered", document.getElementById("donator_name").value); xhr.open("POST", getPathName() + "services/form_data.log.php"); xhr.send(frmData); if (typeof(event) !== "undefined") event.preventDefault(); } catch (error) { swal({ text: gets("E9999", error.message, arguments.callee.name), dangerMode: true, icon: "error" }); } finally { // Do nothing } } } function updateDonation(pgResponse, orderId) { try { showLoader(); xhr = new XMLHttpRequest(); xhr.onreadystatechange = function() { if (this.readyState == 4 && this.status == 200) { removeLoader(); if (this.responseText == "FAILED") swal({ text: gets("A1013"), dangerMode: false, icon: "error" }); else { swal({ text: gets("A1014"), dangerMode: false, icon: "info" }).then(() => { receiptWindow = window.open("", "_blank"); receiptWindow.document.write(this.responseText); receiptWindow.focus(); }); } } } var frmData = new FormData(); frmData.set("donation_amount", document.getElementById("donation_amount").value); frmData.set("scope", document.getElementById("donator_scope").value); frmData.set("pan_information", document.getElementById("donator_pan_information").value); frmData.set("name", document.getElementById("donator_name").value); frmData.set("mobile_number", document.getElementById("donator_mobile_number").value); frmData.set("gender", document.getElementById("donator_gender").value); frmData.set("address", document.getElementById("donator_address").value); frmData.set("city_name", document.getElementById("donator_city_name").value); frmData.set("state_name", document.getElementById("donator_state_name").value); frmData.set("email_id", document.getElementById("donator_email_id").value); frmData.set("order_id", orderId); frmData.set("payment_reference", pgResponse); xhr.open("POST", getPathName() + "services/donations.maintain.php"); xhr.send(frmData); if (typeof(event) !== "undefined") event.preventDefault(); } catch (error) { swal({ text: "Exception: " + error.message + ", " + arguments.callee.name, dangerMode: true, icon: "error" }); } finally { // Do nothing } } $("input[name='donation_amount']").TouchSpin({ min: 1, max: 2500000, step: 1, decimals: 0, postfix: 'INR' });