You have successfully registered for ziayarah to be performed this Thursday.
{"_id":"681c42cd2894466f2444f76a","title":"ZiyarahAndMeal","name":"ziyarahAndMeal","path":"ziyarahandmeal","type":"form","display":"form","tags":[""],"components":[{"label":"Select Location","labelPosition":"top","widget":"choicesjs","placeholder":"Select Location","description":"","tooltip":"","customClass":"","tabindex":"","hidden":false,"hideLabel":false,"uniqueOptions":false,"autofocus":false,"disabled":false,"tableView":true,"modalEdit":false,"multiple":false,"dataSrc":"url","data":{"resource":"","url":"https://akhyar.org/wp-json/brains/v1/fetch-variant-data/173/Location","headers":[{"key":"","value":""}],"values":[{"label":"","value":""}],"json":"","custom":""},"valueProperty":"","dataType":"object","idPath":"id","template":"<span>{{ item.value }}</span>","refreshOn":"","refreshOnBlur":"","clearOnRefresh":false,"searchEnabled":true,"selectThreshold":0.3,"readOnlyValue":false,"customOptions":{},"useExactSearch":false,"persistent":true,"protected":false,"dbIndex":false,"encrypted":false,"clearOnHide":true,"customDefaultValue":"","calculateValue":"","calculateServer":false,"allowCalculateOverride":false,"serverOverride":{},"validateOn":"change","validate":{"required":true,"onlyAvailableItems":false,"customMessage":"","custom":"","customPrivate":false,"json":"","strictDateValidation":false,"multiple":false,"unique":false},"unique":false,"validateWhenHidden":false,"errorLabel":"","errors":"","key":"selectLocation","tags":[],"properties":{},"conditional":{"show":"","when":"","eq":"","json":""},"customConditional":"","logic":[],"attributes":{},"overlay":{"style":"","page":"","left":"","top":"","width":"","height":""},"lazyLoad":true,"disableLimit":false,"searchField":"","searchDebounce":0.3,"filter":"","limit":100,"noRefreshOnScroll":true,"authenticate":false,"ignoreCache":false,"type":"select","input":true,"prefix":"","suffix":"","showCharCount":false,"showWordCount":false,"allowMultipleMasks":false,"addons":[],"fuseOptions":{"include":"score","threshold":0.3},"indexeddb":{"filter":{}},"id":"erl646h","selectValues":"","sort":"","defaultValue":{},"redrawOn":"","dataGridLabel":false,"minSearch":0,"selectFields":""},{"label":"When to Perform","labelPosition":"top","displayInTimezone":"viewer","useLocaleSettings":false,"allowInput":true,"format":"dd-MM-yyyy ","placeholder":"dd/mm/yyyy","description":"","tooltip":"","customClass":"","tabindex":"","hidden":false,"hideLabel":false,"autofocus":false,"disabled":false,"tableView":false,"modalEdit":false,"shortcutButtons":[],"enableDate":true,"datePicker":{"disable":"","disableFunction":"date < new Date() || date.toDateString() === new Date('2026-06-04').toDateString()","disableWeekends":false,"disableWeekdays":false,"minDate":"","maxDate":"","showWeeks":true,"startingDay":0,"initDate":"","minMode":"day","maxMode":"year","yearRows":4,"yearColumns":5},"enableTime":false,"timePicker":{"showMeridian":false,"hourStep":1,"minuteStep":1,"readonlyInput":false,"mousewheel":true,"arrowkeys":true},"multiple":false,"defaultValue":"","defaultDate":"","customOptions":{},"persistent":true,"protected":false,"dbIndex":false,"encrypted":false,"redrawOn":"","clearOnHide":true,"customDefaultValue":"","calculateValue":"","calculateServer":false,"allowCalculateOverride":false,"serverOverride":{},"validateOn":"change","validate":{"required":true,"customMessage":"","custom":"","customPrivate":false,"json":"","strictDateValidation":false,"multiple":false,"unique":false},"enableMinDateInput":false,"enableMaxDateInput":false,"unique":false,"validateWhenHidden":false,"errorLabel":"","errors":"","key":"whenToPerform","tags":[],"properties":{},"conditional":{"show":"","when":"","eq":"","json":""},"customConditional":"","logic":[],"attributes":{},"overlay":{"style":"","page":"","left":"","top":"","width":"","height":""},"type":"datetime","input":true,"widget":{"type":"calendar","displayInTimezone":"viewer","locale":"en","useLocaleSettings":false,"allowInput":true,"mode":"single","enableTime":false,"noCalendar":false,"format":"dd-MM-yyyy ","hourIncrement":1,"minuteIncrement":1,"time_24hr":true,"minDate":"","disabledDates":"","disableWeekends":false,"disableWeekdays":false,"disableFunction":"date < new Date() || date.toDateString() === new Date('2026-06-04').toDateString()","maxDate":""},"prefix":"","suffix":"","refreshOn":"","showCharCount":false,"showWordCount":false,"allowMultipleMasks":false,"addons":[],"datepickerMode":"day","id":"et4izz","dataGridLabel":false,"timezone":""},{"label":"Columns","columns":[{"components":[{"label":"HTML","tag":"div","className":"","attrs":[{"attr":"","value":""}],"content":"<label class=\"col-form-label field-required\">Number of Request(s)</label><input class=\"form-control counter quantity\" name=\"Number od Requests\" type=\"number\" min=\"1\" value=\"1\" max=\"20\">\n","refreshOnChange":false,"customClass":"","hidden":false,"modalEdit":false,"key":"html2","tags":[],"properties":{},"conditional":{"show":"","when":"","eq":"","json":""},"customConditional":"","logic":[],"attributes":{},"overlay":{"style":"","page":"","left":"","top":"","width":"","height":""},"type":"htmlelement","input":false,"tableView":false,"placeholder":"","prefix":"","suffix":"","multiple":false,"defaultValue":null,"protected":false,"unique":false,"persistent":false,"clearOnHide":true,"refreshOn":"","redrawOn":"","labelPosition":"top","description":"","errorLabel":"","tooltip":"","hideLabel":false,"tabindex":"","disabled":false,"autofocus":false,"dbIndex":false,"customDefaultValue":"","calculateValue":"","calculateServer":false,"widget":null,"validateOn":"change","validate":{"required":false,"custom":"","customPrivate":false,"strictDateValidation":false,"multiple":false,"unique":false},"allowCalculateOverride":false,"encrypted":false,"showCharCount":false,"showWordCount":false,"allowMultipleMasks":false,"addons":[],"serverOverride":{},"id":"epkmcti","dataGridLabel":false},{"label":"HTML","tag":"div","className":"","attrs":[{"attr":"","value":""}],"content":"<div>\n <div class=\"counter_caption\">\n <span class=\"counter_value\">1</span> x <span class=\"currency_name\">USD</span> <span class=\"unit_price_value\">200</span> (unit price)</div>\n <div class=\"my-error formio-errors invalid-feedback\" ref=\"messageContainer\">\n <div class=\"form-text error\">\n Counter must be minimum 1 and max 100\n </div>\n </div>\n</div>\n","refreshOnChange":false,"customClass":"unit_price","hidden":false,"modalEdit":false,"key":"html","tags":[],"properties":{},"conditional":{"show":"","when":"","eq":"","json":""},"customConditional":"","logic":[],"attributes":{},"overlay":{"style":"","page":"","left":"","top":"","width":"","height":""},"type":"htmlelement","input":false,"tableView":false,"placeholder":"","prefix":"","suffix":"","multiple":false,"defaultValue":null,"protected":false,"unique":false,"persistent":false,"clearOnHide":true,"refreshOn":"","redrawOn":"","labelPosition":"top","description":"","errorLabel":"","tooltip":"","hideLabel":false,"tabindex":"","disabled":false,"autofocus":false,"dbIndex":false,"customDefaultValue":"","calculateValue":"","calculateServer":false,"widget":null,"validateOn":"change","validate":{"required":false,"custom":"","customPrivate":false,"strictDateValidation":false,"multiple":false,"unique":false},"allowCalculateOverride":false,"encrypted":false,"showCharCount":false,"showWordCount":false,"allowMultipleMasks":false,"addons":[],"serverOverride":{},"id":"e1hbvcc","dataGridLabel":false}],"offset":0,"push":0,"pull":0,"size":"md","currentWidth":7,"width":7},{"components":[{"label":"HTML","tag":"div","className":"","attrs":[{"attr":"","value":""}],"content":"<p class=\"total_amount\"><span class=\"product_price\"> </span> <span class=\"currency_name\"> </span> </p>\n","refreshOnChange":false,"customClass":"total_currency_amount","hidden":false,"modalEdit":false,"key":"html1","tags":[],"properties":{},"conditional":{"show":null,"when":null,"eq":"","json":""},"customConditional":"","logic":[],"attributes":{},"overlay":{"style":"","page":"","left":"","top":"","width":"","height":""},"type":"htmlelement","input":false,"tableView":false,"placeholder":"","prefix":"","suffix":"","multiple":false,"defaultValue":null,"protected":false,"unique":false,"persistent":false,"clearOnHide":true,"refreshOn":"","redrawOn":"","labelPosition":"top","description":"","errorLabel":"","tooltip":"","hideLabel":false,"tabindex":"","disabled":false,"autofocus":false,"dbIndex":false,"customDefaultValue":"","calculateValue":"","calculateServer":false,"widget":null,"validateOn":"change","validate":{"required":false,"custom":"","customPrivate":false,"strictDateValidation":false,"multiple":false,"unique":false},"allowCalculateOverride":false,"encrypted":false,"showCharCount":false,"showWordCount":false,"allowMultipleMasks":false,"addons":[],"serverOverride":{},"id":"e7nu6mr","dataGridLabel":false}],"offset":0,"push":0,"pull":0,"size":"md","currentWidth":5,"width":5}],"autoAdjust":false,"customClass":"","hidden":false,"modalEdit":false,"key":"columns","tags":[],"properties":{},"conditional":{"show":null,"when":null,"eq":"","json":""},"customConditional":"","logic":[],"attributes":{},"overlay":{"style":"","page":"","left":"","top":"","width":"","height":""},"type":"columns","input":false,"placeholder":"","prefix":"","suffix":"","multiple":false,"defaultValue":null,"protected":false,"unique":false,"persistent":false,"clearOnHide":false,"refreshOn":"","redrawOn":"","tableView":false,"labelPosition":"top","description":"","errorLabel":"","tooltip":"","hideLabel":false,"tabindex":"","disabled":false,"autofocus":false,"dbIndex":false,"customDefaultValue":"","calculateValue":"","calculateServer":false,"widget":null,"validateOn":"change","validate":{"required":false,"custom":"","customPrivate":false,"strictDateValidation":false,"multiple":false,"unique":false},"allowCalculateOverride":false,"encrypted":false,"showCharCount":false,"showWordCount":false,"allowMultipleMasks":false,"addons":[],"serverOverride":{},"tree":false,"lazyLoad":false,"id":"eloeyd7","dataGridLabel":false},{"label":"HTML","tag":"div","className":"disclaimer_wrapper","attrs":[{"attr":"","value":""}],"content":"<p>Ziyarah & Meal service will be temporarily unavailable on 18th Dhul Hijjah (4th June).</p>","refreshOnChange":false,"customClass":"","hidden":false,"modalEdit":false,"key":"html3","tags":[],"properties":{},"conditional":{"show":null,"when":null,"eq":"","json":""},"customConditional":"","logic":[],"attributes":{},"overlay":{"style":"","page":"","left":"","top":"","width":"","height":""},"type":"htmlelement","input":false,"placeholder":"","prefix":"","suffix":"","multiple":false,"defaultValue":null,"protected":false,"unique":false,"persistent":false,"clearOnHide":true,"refreshOn":"","redrawOn":"","tableView":false,"labelPosition":"top","description":"","errorLabel":"","tooltip":"","hideLabel":false,"tabindex":"","disabled":false,"autofocus":false,"dbIndex":false,"customDefaultValue":"","calculateValue":"","calculateServer":false,"widget":null,"validateOn":"change","validate":{"required":false,"custom":"","customPrivate":false,"strictDateValidation":false,"multiple":false,"unique":false},"allowCalculateOverride":false,"encrypted":false,"showCharCount":false,"showWordCount":false,"allowMultipleMasks":false,"addons":[],"serverOverride":{},"id":"ebbsv2","dataGridLabel":false},{"label":"Donate","action":"submit","theme":"primary","size":"md","block":false,"leftIcon":"","rightIcon":"","shortcut":"","description":"","tooltip":"","customClass":"","tabindex":"","disableOnInvalid":false,"hidden":false,"autofocus":false,"disabled":false,"tableView":false,"modalEdit":false,"key":"submit","tags":[],"properties":{},"conditional":{"show":"","when":"","eq":"","json":""},"customConditional":"","logic":[],"attributes":{"data-source":"Record_ZiyarahAndMeal_Form"},"overlay":{"style":"","page":"","left":"","top":"","width":"","height":""},"saveOnEnter":false,"type":"button","input":true,"placeholder":"","prefix":"","suffix":"","multiple":false,"defaultValue":null,"protected":false,"unique":false,"persistent":false,"clearOnHide":true,"refreshOn":"","redrawOn":"","dataGridLabel":true,"labelPosition":"top","errorLabel":"","dbIndex":false,"customDefaultValue":"","calculateValue":"","calculateServer":false,"widget":{"type":"input"},"validateOn":"change","validate":{"required":false,"custom":"","customPrivate":false,"strictDateValidation":false,"multiple":false,"unique":false},"allowCalculateOverride":false,"encrypted":false,"showCharCount":false,"showWordCount":false,"allowMultipleMasks":false,"addons":[],"serverOverride":{},"id":"ertavac","hideLabel":false},{"label":"Currencies","labelPosition":"top","widget":"choicesjs","placeholder":"Select","description":"","tooltip":"","customClass":"fo-hidden-field","tabindex":"","hidden":false,"hideLabel":false,"uniqueOptions":false,"autofocus":false,"disabled":false,"tableView":true,"modalEdit":false,"multiple":false,"dataSrc":"values","defaultValue":"USD","data":{"values":[{"label":"USD","value":"USD"},{"label":"AUD","value":"AUD"},{"label":"EUR","value":"EUR"},{"label":"GBP","value":"GBP"},{"label":"CAD","value":"CAD"},{"label":"SGD","value":"SGD"}],"resource":"","json":"","url":"","custom":""},"valueProperty":"","dataType":"","idPath":"id","template":"<span>{{ item.label }}</span>","refreshOn":"","refreshOnBlur":"","clearOnRefresh":false,"searchEnabled":true,"selectThreshold":0.3,"readOnlyValue":false,"customOptions":{},"useExactSearch":false,"persistent":true,"protected":false,"dbIndex":false,"encrypted":false,"clearOnHide":true,"customDefaultValue":"","calculateValue":"","calculateServer":false,"allowCalculateOverride":false,"serverOverride":{},"validateOn":"change","validate":{"required":false,"onlyAvailableItems":false,"customMessage":"","custom":"","customPrivate":false,"json":"","strictDateValidation":false,"multiple":false,"unique":false},"unique":false,"validateWhenHidden":false,"errorLabel":"","errors":"","key":"currencies","tags":[],"properties":{},"conditional":{"show":"","when":"","eq":"","json":""},"customConditional":"","logic":[],"attributes":{},"overlay":{"style":"","page":"","left":"","top":"","width":"","height":""},"limit":100,"type":"select","input":true,"prefix":"","suffix":"","showCharCount":false,"showWordCount":false,"allowMultipleMasks":false,"addons":[],"fuseOptions":{"include":"score","threshold":0.3},"indexeddb":{"filter":{}},"id":"ed6th1","redrawOn":"","dataGridLabel":false,"authenticate":false,"ignoreCache":false,"lazyLoad":true,"filter":"","searchDebounce":0.3,"searchField":"","minSearch":0,"selectFields":""},{"label":"Product Id","labelPosition":"top","placeholder":"","description":"","tooltip":"","prefix":"","suffix":"","widget":{"type":"input"},"inputMask":"","displayMask":"","applyMaskOn":"change","allowMultipleMasks":false,"customClass":"fo-hidden-field","tabindex":"","autocomplete":"","hidden":false,"hideLabel":false,"showWordCount":false,"showCharCount":false,"mask":false,"autofocus":false,"spellcheck":true,"disabled":false,"tableView":true,"modalEdit":false,"multiple":false,"defaultValue":"173","persistent":true,"inputFormat":"plain","protected":false,"dbIndex":false,"case":"","truncateMultipleSpaces":false,"encrypted":false,"redrawOn":"","clearOnHide":true,"customDefaultValue":"","calculateValue":"","calculateServer":false,"allowCalculateOverride":false,"serverOverride":{},"validateOn":"change","validate":{"required":false,"pattern":"","customMessage":"","custom":"","customPrivate":false,"json":"","minLength":"","maxLength":"","strictDateValidation":false,"multiple":false,"unique":false},"unique":false,"validateWhenHidden":false,"errorLabel":"","errors":"","key":"productId","tags":[],"properties":{},"conditional":{"show":null,"when":null,"eq":"","json":""},"customConditional":"","logic":[],"attributes":{},"overlay":{"style":"","page":"","left":"","top":"","width":"","height":""},"type":"textfield","input":true,"refreshOn":"","addons":[],"inputType":"text","id":"egc04dg","dataGridLabel":false},{"label":"Variant Id","labelPosition":"top","placeholder":"","description":"","tooltip":"","prefix":"","suffix":"","widget":{"type":"input"},"inputMask":"","displayMask":"","applyMaskOn":"change","allowMultipleMasks":false,"customClass":"fo-hidden-field","tabindex":"","autocomplete":"","hidden":false,"hideLabel":false,"showWordCount":false,"showCharCount":false,"mask":false,"autofocus":false,"spellcheck":true,"disabled":false,"tableView":true,"modalEdit":false,"multiple":false,"persistent":true,"inputFormat":"plain","protected":false,"dbIndex":false,"case":"","truncateMultipleSpaces":false,"encrypted":false,"redrawOn":"","clearOnHide":true,"customDefaultValue":"","calculateValue":"","calculateServer":false,"allowCalculateOverride":false,"serverOverride":{},"validateOn":"change","validate":{"required":false,"pattern":"","customMessage":"","custom":"","customPrivate":false,"json":"","minLength":"","maxLength":"","strictDateValidation":false,"multiple":false,"unique":false},"unique":false,"validateWhenHidden":false,"errorLabel":"","errors":"","key":"variantId","tags":[],"properties":{},"conditional":{"show":null,"when":null,"eq":"","json":""},"customConditional":"","logic":[],"attributes":{},"overlay":{"style":"","page":"","left":"","top":"","width":"","height":""},"type":"textfield","input":true,"refreshOn":"","addons":[],"inputType":"text","id":"erwkg1","defaultValue":"","dataGridLabel":false},{"label":"HandleErrorOnCount","labelPosition":"top","placeholder":"","description":"","tooltip":"","prefix":"","suffix":"","widget":{"type":"input"},"inputMask":"","displayMask":"","applyMaskOn":"change","allowMultipleMasks":false,"customClass":"fo-hidden-field","tabindex":"","autocomplete":"","hidden":false,"hideLabel":false,"showWordCount":false,"showCharCount":false,"mask":false,"autofocus":false,"spellcheck":true,"disabled":false,"tableView":true,"modalEdit":false,"multiple":false,"defaultValue":"valid","persistent":true,"inputFormat":"plain","protected":false,"dbIndex":false,"case":"","truncateMultipleSpaces":false,"encrypted":false,"redrawOn":"","clearOnHide":true,"customDefaultValue":"","calculateValue":"","calculateServer":false,"allowCalculateOverride":false,"serverOverride":{},"validateOn":"change","validate":{"required":false,"pattern":"","customMessage":"","custom":"valid = input === \"valid\"","customPrivate":false,"json":"","minLength":"","maxLength":"","strictDateValidation":false,"multiple":false,"unique":false},"unique":false,"validateWhenHidden":false,"errorLabel":"","errors":"","key":"handleErrorOnCount","tags":[],"properties":{},"conditional":{"show":null,"when":null,"eq":"","json":""},"customConditional":"","logic":[],"attributes":{},"overlay":{"style":"","page":"","left":"","top":"","width":"","height":""},"type":"textfield","input":true,"refreshOn":"","addons":[],"inputType":"text","id":"e2frfz","dataGridLabel":false},{"label":"FormLogic","labelPosition":"top","placeholder":"","description":"","tooltip":"","prefix":"","suffix":"","widget":{"type":"input"},"inputMask":"","displayMask":"","applyMaskOn":"change","allowMultipleMasks":false,"customClass":"fo-hidden-field","tabindex":"","autocomplete":"","hidden":false,"hideLabel":false,"showWordCount":false,"showCharCount":false,"mask":false,"autofocus":false,"spellcheck":true,"disabled":false,"tableView":true,"modalEdit":false,"multiple":false,"persistent":true,"inputFormat":"plain","protected":false,"dbIndex":false,"case":"","truncateMultipleSpaces":false,"encrypted":false,"redrawOn":"","clearOnHide":true,"customDefaultValue":"","calculateValue":"((VERSION = \"18.0\") => {\r\n const logger = {\r\n log: (...args) => {\r\n if (localStorage.getItem(\"debug\") !== \"true\") return;\r\n console.debug(...args)\r\n }, error: (...args) => {\r\n if (localStorage.getItem(\"debug\") !== \"true\") return;\r\n console.error(...args)\r\n }, info: (...args) => {\r\n if (localStorage.getItem(\"debug\") !== \"true\") return;\r\n console.log(`%cℹ️ ${args.join(', ')}`, 'color: blue; font-weight: bold;');\r\n }\r\n }\r\n const runOnce = (config) => {\r\n instance.root.scriptRunOnced = instance.root.scriptRunOnced || false;\r\n if (!instance.root.scriptRunOnced) {\r\n instance.root.scriptRunOnced = true;\r\n instance.root.config = config;\r\n logger.info(`* FM :: version = ${VERSION}`);\r\n logger.info(`* FM :: Form > Id = ${form._id}, Title = ${form.title}`);\r\n logger.info(`* FM :: Product-Id = ${data.productId}`);\r\n\r\n return {counterMin: config.counterMin, counterMax: config.counterMax};\r\n }\r\n return {counterMin: instance.root.config.counterMin, counterMax: instance.root.config.counterMax};\r\n }\r\n data = data || {}\r\n logger.log(\"* FM :: data = \", JSON.stringify(data));\r\n\r\n const BASE_URL = 'https://akhyar.org/wp-json/brains/v1';\r\n const MAX_TEXT_LENGTH = 28;\r\n const prodPrice = document.querySelector('.product_price');\r\n const unitPrice = document.querySelector('.unit_price_value');\r\n const finalAmount = document.querySelector('.total_amount');\r\n const counter = document.querySelector('.counter');\r\n const counterCaption = document.querySelector('.counter_caption');\r\n const counterValueElem = document.querySelector('.counter_value');\r\n const maxTextLength = document.querySelector('.max-text-length');\r\n\r\n const handleErrorOnCount = instance.root.getComponent(\"handleErrorOnCount\");\r\n //const totalAmount = instance.root.getComponent(\"totalAmount\");\r\n const variantIdComponent = instance.root.getComponent('variantId');\r\n\r\n const {counterMin, counterMax} = runOnce({\r\n counterMin: counter ? counter.getAttribute(\"min\") || 1 : 1,\r\n counterMax: counter ? counter.getAttribute(\"max\") : 20\r\n });\r\n\r\n const container = document.querySelector('.formio-component-htmlelement');\r\n let labelText = \"Count\";\r\n let counterErrMsg;\r\n if (container) {\r\n const label = container.querySelector('.col-form-label');\r\n if (label) {\r\n labelText = label.textContent.trim();\r\n logger.log(\"Text here: \",labelText);\r\n } \r\n }\r\n counterErrMsg = `${labelText} must be min ${counterMin} and max ${counterMax}`;\r\n\r\n const currencyElem = document.querySelectorAll('.currency_name');\r\n const productid = data.productId;\r\n\r\n let currency = data.currencies || \"USD\";\r\n currency = currency.toUpperCase();\r\n\r\n const onCounterChange = function () {\r\n const product_price = Number(unitPrice.innerText || 0);\r\n const counterValue = Number(counter.value || 1);\r\n logger.log(\"* FM :: \", product_price, counterValue);\r\n counterValueElem.innerText = counterValue;\r\n prodPrice.innerText = product_price * counterValue;\r\n };\r\n\r\n const showHideError = function (e, show, message) {\r\n const myErrorElem = e.target.parentNode.parentNode.parentNode.querySelector(\".my-error\");\r\n if (!myErrorElem) {\r\n logger.log(\"* FM :: error comp not found\");\r\n return;\r\n }\r\n if (message) {\r\n myErrorElem.innerHTML = `<div class=\"form-text error\">${message}</div>`;\r\n }\r\n if (show) {\r\n myErrorElem.style.display = \"block\";\r\n e.target.classList.add(\"is-invalid\");\r\n handleErrorOnCount.setValue(\"error\");\r\n } else {\r\n myErrorElem.style.display = \"none\";\r\n e.target.classList.remove(\"is-invalid\");\r\n handleErrorOnCount.setValue(\"valid\");\r\n }\r\n }\r\n\r\n //showHideError({target: counter}, false);\r\n const onRefresh = function (e) {\r\n logger.log(\"* FM :: onRefresh \", Number(e.target.value), counterMax);\r\n\r\n if (currencyElem) currencyElem.forEach(el => el.innerText = currency);\r\n\r\n if (data.showFinalAmountWhenVariantIsSelected) {\r\n const show = variantIdComponent.getValue() !== '';\r\n if (finalAmount) finalAmount.style.display = show ? \"block\" : \"none\";\r\n if (counterCaption) counterCaption.style.display = show ? \"block\" : \"none\";\r\n }\r\n\r\n // if (!e.target.value || (e.target.value && Number(e.target.value) > Number(counterMax))) {\r\n // logger.log(\"* FM :: no counter value\");\r\n // return;\r\n // }\r\n\r\n let isValid = true;\r\n if (!e.target.value || Number(e.target.value) < Number(counterMin) || (counterMax && Number(e.target.value) > Number(counterMax))) {\r\n e.target.value = e.target.value.substring(0, counterMax.length)\r\n isValid = false;\r\n } else if (e.key === '0' && Number(e.target.value) < Number(counterMin)) {\r\n isValid = false;\r\n } else if (Number(e.target.value + e.key) > Number(counterMax)) {\r\n isValid = false;\r\n }\r\n if (!isValid) {\r\n showHideError(e, true, counterErrMsg);\r\n } else {\r\n showHideError(e, false);\r\n }\r\n\r\n if (isValid) {\r\n onCounterChange();\r\n }\r\n };\r\n\r\n const bindCounterEvents = () => {\r\n counter.onchange = onCounterChange;\r\n counter.onkeyup = function (e) {\r\n if (!e.target.value) {\r\n showHideError(e, true, counterErrMsg);\r\n }\r\n }\r\n counter.onkeydown = function (e) {\r\n if (['.', '+', '-', 'e'].includes(e.key)) return false;\r\n if (e.key === 'Backspace') {\r\n if (e.target.value.length === 1) {\r\n showHideError(e, true, counterErrMsg);\r\n }\r\n return true;\r\n }\r\n showHideError(e, false, counterErrMsg);\r\n if (e.key === '0' && Number(e.target.value) < Number(counterMin)) {\r\n showHideError(e, true, counterErrMsg);\r\n return false;\r\n }\r\n // if (Number(e.target.value + e.key) > Number(counterMax)) {\r\n // showHideError(e, true, counterErrMsg);\r\n // return false;\r\n // }\r\n }\r\n counter.oninput = function (e) {\r\n if (!e.target.value || Number(e.target.value) < Number(counterMin) || (counterMax && Number(e.target.value) > Number(counterMax))) {\r\n showHideError(e, true, counterErrMsg);\r\n e.target.value = e.target.value.substring(0, counterMax.length)\r\n } else {\r\n showHideError(e, false, counterErrMsg);\r\n }\r\n onCounterChange();\r\n };\r\n ['onpaste', 'oncopy', 'onselect'].forEach(method => {\r\n counter[method] = function (e) {\r\n e.preventDefault();\r\n };\r\n })\r\n }\r\n\r\n const setVariantId = (apidata) => {\r\n const key = Object.keys(data).filter((x) => {\r\n if (typeof (data[x]) === \"object\" && data[x].type === 'variant') return true;\r\n if (data[x] && data[x].charAt && data[x].charAt(0) === '{') return true;\r\n }).map((x) => {\r\n if (data[x] && data[x].charAt && data[x].charAt(0) === '{') {\r\n let jsonStr = data[x].replace(/'/g, '\"');\r\n const nData = JSON.parse(jsonStr);\r\n return `${nData.key}:${nData.value}`.toLowerCase();\r\n }\r\n return `${data[x].key}:${data[x].value}`.toLowerCase();\r\n }).sort().join('|');\r\n\r\n logger.log(\"* FM :: key = \", key);\r\n\r\n const variant = apidata.find(e => {\r\n return e.key === key;\r\n });\r\n\r\n if (!variant) {\r\n logger.info(\"* FM :: variant not found\");\r\n variantIdComponent.setValue('');\r\n return;\r\n }\r\n\r\n const variantId = variant.variant_id;\r\n logger.log(\"* FM :: variant = \", variant, variantId);\r\n\r\n if (unitPrice) unitPrice.innerText = variant.pricing_data[currency];\r\n\r\n if (prodPrice && counter) {\r\n const counterValue = Number(counter.value);\r\n prodPrice.innerText = counterValue * variant.pricing_data[currency];\r\n }\r\n\r\n if (variantIdComponent) {\r\n variantIdComponent.setValue(variantId, {fromSubmission: true});\r\n }\r\n if (variantId && data.showFinalAmountWhenVariantIsSelected) {\r\n finalAmount.style.display = \"block\";\r\n counterCaption.style.display = \"block\";\r\n }\r\n };\r\n\r\n const fetchVariantData = () => {\r\n logger.log(\"* FM :: fetching variant data\");\r\n const cahced_data = instance.root.variants_data;\r\n if (cahced_data) {\r\n logger.log(\"* FM :: cache detected\");\r\n return Promise.resolve(cahced_data);\r\n }\r\n logger.log(\"* FM :: cache detected\");\r\n return fetch(`${BASE_URL}/products/${productid}/variants`)\r\n .then(response => response.json()).then(apidata => {\r\n return apidata.map(d => {\r\n const vdata = d.variant_data;\r\n const v2 = Object.keys(vdata).map((key) => {\r\n return `${key}:${vdata[key]}`.toLocaleLowerCase();\r\n }).sort().join('|');\r\n logger.log(\"* FM :: keys \", v2);\r\n return {...d, key: v2};\r\n });\r\n });\r\n }\r\n\r\n fetchVariantData().then((apidata) => {\r\n logger.log(\"* FM :: \", apidata);\r\n instance.root.variants_data = apidata;\r\n\r\n setVariantId(apidata);\r\n }).catch((err) => {\r\n logger.log(\"* FM :: ERROR => in fetching variant data\")\r\n // delete instance.root.variants_data;\r\n }).then(() => {\r\n // setTimeout(() => {\r\n // const submitBtn = instance.root.getComponent('submit')\r\n // submitBtn.refs.button.disabled = false; \r\n // }, 300);\r\n });\r\n\r\n if (counter) {\r\n // setTimeout(() => {\r\n onRefresh({target: counter})\r\n // }, 0);\r\n bindCounterEvents();\r\n }\r\n\r\n if (maxTextLength) {\r\n maxTextLength.oninput = (e) => {\r\n if (e.target.value.length > MAX_TEXT_LENGTH) {\r\n e.target.value = e.target.value.substring(0, MAX_TEXT_LENGTH)\r\n }\r\n }\r\n }\r\n\r\n const logicToResetSearchField = () => {\r\n logger.log('* FM :: logicToResetSearchField');\r\n const logicToClearSearchField = (comp) => {\r\n const searchInput = comp.element?.querySelector('input');\r\n searchInput.addEventListener('blur', () => {\r\n logger.log('* FM :: Choices input blurred:', comp.key);\r\n comp.choices.input.value = '';\r\n comp.choices._handleSearch('', true);\r\n\r\n setTimeout(logicToResetSearchField, 600);\r\n comp.triggerRedraw();\r\n });\r\n }\r\n instance.root.getComponents().forEach(comp => {\r\n if ((!comp.columns && !comp.choices) || (comp.choices && !comp.choices.input)) return;\r\n\r\n if (comp.columns) {\r\n comp.getComponents().forEach((subComp) => {\r\n if (!subComp.choices || (subComp.choices && !subComp.choices.input)) return;\r\n logicToClearSearchField(subComp);\r\n })\r\n } else {\r\n logicToClearSearchField(comp);\r\n }\r\n });\r\n }\r\n logicToResetSearchField();\r\n})();\r\n","calculateServer":false,"allowCalculateOverride":false,"serverOverride":{},"validateOn":"change","validate":{"required":false,"pattern":"","customMessage":"","custom":"","customPrivate":false,"json":"","minLength":"","maxLength":"","strictDateValidation":false,"multiple":false,"unique":false},"unique":false,"validateWhenHidden":false,"errorLabel":"","errors":"","key":"logicForSettingVariantId","tags":[],"properties":{},"conditional":{"show":null,"when":null,"eq":"","json":""},"customConditional":"","logic":[],"attributes":{},"overlay":{"style":"","page":"","left":"","top":"","width":"","height":""},"type":"textfield","input":true,"refreshOn":"","addons":[],"inputType":"text","id":"estnt4m","defaultValue":"","dataGridLabel":false},{"label":"Show final amount when variant is selected","description":"","tooltip":"","shortcut":"","inputType":"checkbox","customClass":"fo-hidden-field","tabindex":"","hidden":false,"hideLabel":false,"autofocus":false,"disabled":false,"tableView":false,"modalEdit":false,"defaultValue":true,"persistent":true,"protected":false,"dbIndex":false,"encrypted":false,"redrawOn":"","clearOnHide":true,"customDefaultValue":"","calculateValue":"","calculateServer":false,"allowCalculateOverride":false,"serverOverride":{},"validate":{"required":false,"customMessage":"","custom":"","customPrivate":false,"json":"","strictDateValidation":false,"multiple":false,"unique":false},"validateWhenHidden":false,"errorLabel":"","errors":"","key":"showFinalAmountWhenVariantIsSelected","tags":[],"properties":{},"conditional":{"show":null,"when":null,"eq":"","json":""},"customConditional":"","logic":[],"attributes":{},"overlay":{"style":"","page":"","left":"","top":"","width":"","height":""},"type":"checkbox","input":true,"placeholder":"","prefix":"","suffix":"","multiple":false,"unique":false,"refreshOn":"","labelPosition":"right","widget":null,"validateOn":"change","showCharCount":false,"showWordCount":false,"allowMultipleMasks":false,"addons":[],"id":"ewtrkib","dataGridLabel":true,"value":"","name":""}],"pdfComponents":[],"access":[{"type":"read_all","roles":["681af7ed317bacb5e067c4ca","681af7ed317bacb5e067c4dd","681af7ed317bacb5e067c4e9"]}],"submissionAccess":[],"created":"2025-05-08T05:36:13.906Z","modified":"2026-06-01T10:13:43.944Z","machineName":"ziyarahAndMeal"}
Ziyarah & Meal
Give orphans the gift of faith and sustenance by sponsoring a visit to sacred shrines in holy cities for 20 orphanswherethey’ll also enjoy nourishing meals afterwards.
The Ziyarah & Meal program provides 20 orphans at a time the opportunity to visit holy shrines while receiving nourishing meals. This program supports both their spiritual and physical well-being.
“By Allah (SWT) Take care of the orphans and let them not starve in your presence.”
The Holy Prophet (SAW)
What Do We Offer?
Making dream of Ziyarah come true for 20 orphans at a time
Supporting their physical well-being with nourishing meals.
FAQs
FAQs
Where do the Ziyarah visits take place?
The visits are currently being held at the shrines of Imam Hussain (as) and Abul Fadhl Al Abbas (as) in the holy city of Karbala.
How are the meals provided during the program?
After the Ziyarah, ready meals are given to the orphans on your behalf as part of the program.
Who benefits from the Ziyarah & Meal program?
The program is designed to support orphans, providing them with spiritual experiences and nourishing meals.
This Is What Support Looks Like
Because of your giving, children who were left behind are receiving consistent care.
To provide the best experiences, we use technologies like cookies to store and/or access device information. Consenting to these technologies will allow us to process data such as browsing behavior or unique IDs on this site. Not consenting or withdrawing consent, may adversely affect certain features and functions.
Strictly necessary cookies allow core website functionality such as user login and account management. The website cannot be used properly without strictly necessary cookies.
Preferences
The technical storage or access is necessary for the legitimate purpose of storing preferences that are not requested by the subscriber or user.
Statistics
The technical storage or access that is used exclusively for statistical purposes.The technical storage or access that is used exclusively for anonymous statistical purposes. Without a subpoena, voluntary compliance on the part of your Internet Service Provider, or additional records from a third party, information stored or retrieved for this purpose alone cannot usually be used to identify you.
Analytics & Marketing
These cookies are used to see how visitors use the website, e.g. analytics and may be used to build a profile of visitor interests or show relevant ads on other websites.