(function (window, document) { "use strict"; const element = (id) => document.getElementById(id); const checked = (id) => Boolean(element(id)?.checked); const requiredWhen = (id) => () => checked(id); const sectionRule = (id, rule = {}) => Object.assign({ when: requiredWhen(id) }, rule); const RULES = { applno: { required: true, format: "AlphaNumeric", requiredMessage: "Application number is required." }, bank_branch_id: { required: true, requiredMessage: "Bank branch is required." }, product: { required: true, requiredMessage: "Product is required." }, customername: { required: true, format: "AlphaSpace", requiredMessage: "Customer name is required." }, apptype: { required: true, requiredMessage: "Application type is required." }, bankcode: { format: "AlphaNumeric" }, fathername: { format: "AlphaSpace" }, dob: { format: "Date" }, mobileno: { format: "AllowWrong" }, loanamount: { format: "LoanAmount" }, contactperson: { format: "AlphaSpace" }, specialinst: { format: "SplInstruction" }, raddr1: sectionRule("rv", { required: true, format: "SplInstruction" }), raddr2: sectionRule("rv", { format: "SplInstruction" }), raddr3: sectionRule("rv", { required: true, format: "SplInstruction" }), rlandmark: sectionRule("rv", { format: "SplInstruction" }), rcity: sectionRule("rv", { required: true }), colr: sectionRule("rv", { required: true, format: "SplInstruction" }), rpincode: sectionRule("rv", { format: "Pincode" }), rphone: sectionRule("rtv", { required: true, format: "Phone" }), companyname: sectionRule("ov", { format: "SplInstruction" }), oaddr1: sectionRule("ov", { required: true, format: "SplInstruction" }), oaddr2: sectionRule("ov", { format: "SplInstruction" }), oaddr3: sectionRule("ov", { required: true, format: "SplInstruction" }), olandmark: sectionRule("ov", { format: "SplInstruction" }), ocity: sectionRule("ov", { required: true }), colo: sectionRule("ov", { required: true, format: "SplInstruction" }), opincode: sectionRule("ov", { format: "Pincode" }), department: sectionRule("ov", { format: "SplInstruction" }), designation: sectionRule("ov", { format: "SplInstruction" }), ophone: sectionRule("otv", { required: true, format: "Phone" }), extension: sectionRule("otv", { format: "Extension" }), paddr1: sectionRule("pv", { required: true, format: "SplInstruction" }), paddr2: sectionRule("pv", { format: "SplInstruction" }), paddr3: sectionRule("pv", { required: true, format: "SplInstruction" }), plandmark: sectionRule("pv", { format: "SplInstruction" }), pcity: sectionRule("pv", { required: true }), colp: sectionRule("pv", { required: true, format: "SplInstruction" }), ppincode: sectionRule("pv", { format: "Pincode" }), refname1: sectionRule("refv", { required: true, format: "AlphaSpace" }), refaddress1: sectionRule("refv", { format: "SplInstruction" }), refcontactno1: sectionRule("refv", { required: true, format: "Phone" }), refname2: sectionRule("refv", { format: "AlphaSpace" }), refaddress2: sectionRule("refv", { format: "SplInstruction" }), refcontactno2: sectionRule("refv", { format: "Phone" }) }; function registerDynamicRules(form) { if (!form) return; form.querySelectorAll("#FormPanel6 [data-validation-required]").forEach(function (field) { const label = field.closest(".widget")?.querySelector(".lblcontainer")?.textContent.trim(); RULES[field.id] = { required: field.dataset.validationRequired === "true", format: field.dataset.validationFormat || "", requiredMessage: (label || "This dynamic field") + " is required." }; }); } function validateField(field) { const target = typeof field === "string" ? element(field) : field; const rule = target && RULES[target.id]; return !target || !rule || window.CygnusFormValidation.validateElement(target, rule); } function validateForm() { return window.CygnusFormValidation.validateRules(RULES); } function bind(form) { if (!form || form.dataset.initiationValidationBound === "true") return; registerDynamicRules(form); form.dataset.initiationValidationBound = "true"; form.addEventListener("focusout", function (event) { window.CygnusFormValidation.sanitizeElement(event.target); validateField(event.target); }); } window.CygnusInitiationValidation = Object.freeze({ rules: RULES, bind: bind, validateField: validateField, validateForm: validateForm }); }(window, document));