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;
}
}