let emailPattern = /^[\w]{1,}[\w.+-]{0,}@[\w-]{2,}([.][a-zA-Z]{2,}|[.][\w-]{2,}[.][a-zA-Z]{2,})$/; document.addEventListener("input", (event) => { if (event.target.matches("input, textarea, select")) { event.target.classList.remove("field-error"); } }); window.addEventListener('load', function() { if ((jump = getUrlParameter("leap")) != "") { const element = document.getElementById(jump); element.focus(); setTimeout(() => { element.scrollIntoView({ behavior: 'smooth', block: 'start' }); }, 1000); } }); if (!navigator.cookieEnabled) location.replace("404.php"); function initialize() { var autocomplete_cum_city = new google.maps.places.Autocomplete(document.getElementById('cum_city_name'), { types: ['(cities)'] }); autocomplete_cum_city.addListener('place_changed', function() { cityComponents = autocomplete_cum_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("cum_state_name").value = component.long_name; clearError("cum_state_name"); } if (component.types.includes('country')) { document.getElementById("cum_country_name").value = component.long_name; clearError("cum_country_name"); } } }); var autocomplete_cum_state = new google.maps.places.Autocomplete(document.getElementById('cum_state_name'), { types: ['(regions)'] }); } google.maps.event.addDomListener(window, 'load', initialize); function setError(inputObject) { iObject = document.getElementById(inputObject); if (iObject) { iObject.classList.add("field-error"); if (iObject.type.includes("select")) refreshSelectPicker($('#' + inputObject)); } } function clearError(inputObject) { iObject = document.getElementById(inputObject); if (iObject) { iObject.classList.remove("field-error"); if (iObject.type.includes("select")) refreshSelectPicker($('#' + inputObject)); } } function loadScript(url, callback) { var script = document.createElement("script"); script.type = "text/javascript"; script.src = url; script.onload = callback; document.head.appendChild(script); } function jumper(jumperPageSection) { jumperPageName = "jumper_" + window.location.pathname.split('/').pop().split('?')[0]; const isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent); if (!isSafari) { window.onpageshow = function(event) { let hasRefreshed = sessionStorage.getItem(jumperPageName); if (!hasRefreshed) { sessionStorage.setItem(jumperPageName, true); window.location.reload(); document.getElementById(jumperPageSection).scrollIntoView({ behavior: 'smooth', block: 'start' }); } }; } else { window.onpageshow = function(event) { document.getElementById(jumperPageSection).scrollIntoView({ behavior: 'smooth', block: 'start' }); }; } } function refreshSelectPicker(object) { object.selectpicker('destroy'); object.selectpicker(); } function clearSelectPicker(object) { object.selectpicker('val', ''); object.empty(); object.selectpicker('refresh'); } function mobile() { return (/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)) } function localeDateTime(sourceDate, sourceTimeZoneOffset = "+05:30") { lDate = new Date(sourceDate + sourceTimeZoneOffset); options = { dateStyle: 'medium', timeStyle: 'full', hour12: false }; return (lDate.toLocaleString([], options)); } function getNothingImage(messageCode = "A1041") { return "

" + gets(messageCode) + "
"; } function getUrlParameter(name) { name = name.replace(/[\[]/, '\\[').replace(/[\]]/, '\\]'); var regex = new RegExp('[\\?&]' + name + '=([^&#]*)'); var results = regex.exec(location.search); return results === null ? '' : decodeURIComponent(results[1].replace(/\+/g, ' ')); } async function fileGetContents(uri, callback) { uri = uri + "?v=" + parseInt(Math.random() * 27121975); let result = await fetch(uri), returnValue = await result.text(); return callback ? callback(returnValue) : returnValue; } function validatePhoneNumber(phoneNumber) { returnValue = true; if (phoneNumber != "" && (phoneNumber < 1000000 || phoneNumber > 9999999999999999)) returnValue = false; return returnValue; } function getPathName() { pathName = ""; path = window.location.href; if (path.search("localhost") > 0) pathName = "../datta/"; else pathName = "https://maitribodh.org/datta/"; return pathName; } function openPage(locale, mobile = false) { program = window.location.pathname.split("/"); program = program[program.length - 1]; path = window.location.href; if (mobile == true) { localeOptions = document.getElementById("locale_mobile").options; document.getElementById("locale").value = document.getElementById("locale_mobile").value; } else localeOptions = document.getElementById("locale").options; rootPage = true; for (ctrOpenPage = 1; ctrOpenPage < localeOptions.length; ctrOpenPage++) { if (path.search(localeOptions[ctrOpenPage].value) > 0) { rootPage = false; break; } } if (locale != "") program = "/" + program; if (rootPage) url = locale + program; else url = "../" + locale + program; location.replace(url); } function openMenuPage(page) { prefix = ""; if (window.location.href.search("vayu-deploy") > 0) prefix = "/" + window.location.pathname.split("/")[1] + "/"; else if (typeof(satellitePage) !== "undefined" && satellitePage == true) url = "/" + page; url = prefix + page; location.replace(url); } function showLoader() { $('body').append("
"); } function removeLoader() { $('#preloader').remove(); } function validateGSTN(objectGSTN) { validGSTN = (objectGSTN.value.trim().length == 15 || objectGSTN.value.trim().length == 0); if (validGSTN == false) { swal({ text: gets("A1075"), dangerMode: false, icon: "error" }); objectGSTN.focus(); } return validGSTN; } function disableForm(formId, flag) { var frmObject = document.forms[formId].getElementsByTagName('input'); for (var ctrElement = 0; ctrElement < frmObject.length; ctrElement++) frmObject[ctrElement].disabled = flag; var frmObject = document.forms[0].getElementsByTagName('textarea'); for (var ctrElement = 0; ctrElement < frmObject.length; ctrElement++) frmObject[ctrElement].disabled = flag; var frmObject = document.forms[0].getElementsByTagName('select'); for (var ctrElement = 0; ctrElement < frmObject.length; ctrElement++) frmObject[ctrElement].disabled = flag; var frmObject = document.forms[0].getElementsByTagName('button'); for (var ctrElement = 0; ctrElement < frmObject.length; ctrElement++) frmObject[ctrElement].disabled = flag; } function sleep(milliseconds) { const date = Date.now(); let currentDate = null; do { currentDate = Date.now(); } while (currentDate - date < milliseconds); } function getCookie(cname) { try { var name = cname + "="; var decodedCookie = decodeURIComponent(document.cookie); var ca = decodedCookie.split(';'); for (var i = 0; i < ca.length; i++) { var c = ca[i]; while (c.charAt(0) == ' ') { c = c.substring(1); } if (c.indexOf(name) == 0) { return c.substring(name.length, c.length).replace(/\+/g, " "); } } return ""; } catch (error) { swal({ text: gets("E9999", error.message, arguments.callee.name), dangerMode: true, icon: "error" }); } finally { // Do nothing } } function setCookie(name, value) { var date = new Date(); date.setTime(date.getTime() + (86400 * 30 * 12 * 100)); var expires = "; expires=" + date.toGMTString(); document.cookie = name + "=" + value + expires + "; path=/"; } function deleteCookie(cname) { document.cookie = `${cname}=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/`; } function getLabel(inputObject) { if (inputObject) { const label = document.querySelector(`label[for="${inputObject.id}"]`); return (label !== null) ? label.textContent.replace("*", "") + "\n" : ""; } } function validatePANFormat(input) { if (input.length == 10) { var regex = /^[a-zA-Z]{5}[0-9]{4}[a-zA-Z]$/; return (regex.test(input)); } else return false; } function formatDate(date, dmyFlag = false) { if (date.trim() != "") { date = date.replace(/-/g, "/"); dateToProcess = date.split("/"); year = ((dateToProcess[2] > 30 ? '19' : '20') + dateToProcess[2]).slice(-4); month = ('00' + dateToProcess[1]).slice(-2); day = ('00' + dateToProcess[0]).slice(-2); if (isNaN(day) || isNaN(month) || isNaN(year)) return ""; else if (dmyFlag) return [day, month, year].join("/"); else return [year, month, day].join("-"); } else return ""; } function formatDateTime(date) { return [date.substr(6, 4), date.substr(3, 2), date.substr(0, 2)].join("-") + " " + date.substr(11, 5); } function validateAge(dobObject, eventDateYYYYMMDD = "", minorAllowed = "N") { rValue = true; if (dobObject.value != "") { if (moment(formatDate(dobObject.value), 'YYYYMMDD').isValid() && dobObject.value.trim().length == 10) { if (eventDateYYYYMMDD == "") age = moment().diff(moment(formatDate(dobObject.value), 'YYYYMMDD'), 'years'); else age = moment(eventDateYYYYMMDD, 'YYYYMMDD').diff(moment(formatDate(dobObject.value), 'YYYYMMDD'), 'years'); if (age < 16 && minorAllowed == "N") { rValue = false; swal({ text: gets("A1079"), dangerMode: false, icon: "error" }); rValue = false; } } else { swal({ text: gets("A1100"), dangerMode: false, icon: "error" }); rValue = false; } } return rValue; } function tagNewLine(content) { return content.replace(/\n/g, "{{br}}"); } Array.prototype.contains = function(value) { for (var ctr = 0; ctr < this.length; ctr++) { if (this[ctr] === value) return true; } return false; }; Array.prototype.unique = function() { var array = []; for (var ctr = 0; ctr < this.length; ctr++) { if (!array.contains(this[ctr])) { array.push(this[ctr]); } } return array; } function today() { var today = new Date(); var dd = today.getDate(); var mm = today.getMonth() + 1; var yyyy = today.getFullYear(); if (dd < 10) dd = '0' + dd; if (mm < 10) mm = '0' + mm; return dd + '/' + mm + '/' + yyyy; } function findInSet(findThisArrayCells, insideThisArray) { countOfOccurences = 0; for (let ctrA = 0; ctrA < findThisArrayCells.length; ctrA++) { for (let ctrB = 0; ctrB < insideThisArray.length; ctrB++) { if (insideThisArray[ctrB] == findThisArrayCells[ctrA]) { countOfOccurences++; } } } return countOfOccurences; } function getFormValues(formName) { formValues = "{"; tableData = ""; form = document.getElementById(formName); for (ctr = 0; ctr < form.elements.length; ctr++) { element = form.elements[ctr]; if (element.name == "table_data") tableData = element.value; else if (element.name != "" && element.nodeName != "BUTTON") { formValues += (formValues != "{" ? "," : "") + '"' + element.name + '":"' + element.value + '"'; } } formValues = formValues.replace(/\"\[/g, ''); formValues = formValues.replace(/\]\"/g, ''); formValues += (tableData == "" ? "" : ',"table_data":' + tableData) + "}"; return formValues; } function getDynamicFormValues(formName) { let formValues = {}; let tableData = ""; const form = document.getElementById(formName); for (let ctr = 0; ctr < form.elements.length; ctr++) { const element = form.elements[ctr]; if (element.name == "table_data") { tableData = element.value; } else if (element.name != "" && element.nodeName != "BUTTON") { formValues[element.name] = element.value; } } if (tableData != "") { try { formValues["table_data"] = JSON.parse(tableData); } catch (e) { console.error("Invalid JSON in table_data field:", e); formValues["table_data"] = tableData; } } return JSON.stringify(formValues); } function controlDonationPurpose() { const currentPageName = ( window.location.pathname.split('/').pop().split('.')[0] == "" ? "ashram" : window.location.pathname.split('/').pop().split('.')[0] ); const optionsData = { ashram: [ 'Ashram - General Donations', 'Ashram - Corpus Donation', 'Ashram - Annadanam', 'Ashram - Promotion and Preventive Healthcare' ], shaktipeetham: [ 'Shaktipeetham - Pooja Archana', 'Shaktipeetham - Maintenance Fund' ], social: [ 'Social - Women Empowerment', 'Social - Medical Camp', 'Social - Conservation of Environment', 'Social - Poverty Relief' ], gurukul: [ 'Gurukul - Sponsor a Child', 'Gurukul - Corpus for Gurukul', 'Gurukul - Contribution towards Building Construction' ] }; const selectElement = document.getElementById('donator_scope'); selectElement.innerHTML = ''; if (optionsData[currentPageName]) { optionsData[currentPageName].forEach(optionText => { const option = document.createElement('option'); option.value = optionText; option.textContent = optionText; selectElement.appendChild(option); }); } selectElement.value = ""; refreshSelectPicker($('#donator_scope')); } function updateContactUsMessages() { if (validatePhoneNumber(document.getElementById("cum_mobile_number").value) && emailPattern.test(document.getElementById("cum_email_id").value)) { try { showLoader(); xhr = new XMLHttpRequest(); xhr.onreadystatechange = function() { if (this.readyState == 4 && this.status == 200) { removeLoader(); if (this.responseText == "FAILED") swal({ text: gets("A1002"), dangerMode: false, icon: "error" }); else swal({ text: gets("A1001") + this.responseText, dangerMode: false, icon: "info" }); } } var frmData = new FormData(); frmData.set("full_name", document.getElementById("cum_name").value); frmData.set("mobile_number", document.getElementById("cum_mobile_number").value); frmData.set("email_id", document.getElementById("cum_email_id").value); frmData.set("gender", document.getElementById("cum_gender").value); frmData.set("city_name", document.getElementById("cum_city_name").value); frmData.set("state_name", document.getElementById("cum_state_name").value); frmData.set("country_name", document.getElementById("cum_country_name").value); frmData.set("message", tagNewLine(document.getElementById("cum_message").value)); xhr.open("POST", getPathName() + "services/contact_us_messages.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 } } else { swal({ text: gets("A1003"), dangerMode: false, icon: "error" }); return false; } }