{"version":3,"file":"PurchaseValidationGroups.min.js","names":["validationGroupName","BindIgnoreHandler","pep","validation","validator","settings","ignore","ignoreHandler","i","elem","ignoreDisplayOnly","$elem","$","hasClass","outsideValidationGroup","length","has","isDisplayOnlyField","attr","hidden","is","disabled","hiddenValidator","$displayField","find","addMethod","value","element","this","optional","test","submit","each","val","replace","pageCommand","$clicked","btnClicked","data","skipValidation","onsubmit","change","isMobile","Android","blur","focus","removeClass"],"sources":["Purchase/Scripts/PurchaseValidationGroups.js"],"mappings":"AAAC,IAAIA,oBAsCL,SAASC,oBACLC,IAAIC,WAAWC,UAAUC,SAASC,OAASC,aAC/C,CAKA,SAASA,cAAcC,EAAGC,KAAMC,mBAC5B,IAAIC,MAAQC,EAAEH,MAEd,GAAIE,MAAME,SAAS,UAAW,OAAO,EAEZ,MAArBH,oBACAA,mBAAoB,GAGxB,IAAII,wBAAyB,EACF,MAAvBd,qBAA+BA,oBAAoBe,OAAS,IAC5DD,uBAA2E,GAAlDF,EAAE,IAAMZ,qBAAqBgB,IAAIL,OAAOI,QAGrE,IAAIE,mBAAsD,MAAjCN,MAAMO,KAAK,oBAA8BP,MAAMO,KAAK,mBAAmBH,OAAS,EACrGI,OAASR,MAAMS,GAAG,WAClBC,SAAWV,MAAMS,GAAG,aACpBE,gBAAkBX,MAAME,SAAS,kBAErC,GAAIC,wBAA2BG,oBAAsBP,kBACjD,OAAO,EAEX,GAAIY,gBAAiB,CACjB,IAAIC,cAAgBX,EAAE,QAAQY,KAAK,oBAAsBb,MAAMO,KAAK,MAAQ,KAC5E,OAAqB,MAAjBK,eAAyBA,cAAcR,OAAS,GACzCR,cAAcC,EAAGe,eAAe,EAG/C,CACA,OAAOJ,QAAUE,QACrB,CAzEAT,GAAE,WAEEA,EAAER,UAAUqB,UAAU,SAAS,SAAUC,MAAOC,SAC5C,OAAOC,KAAKC,SAASF,UAAY,gKAAgKG,KAAKJ,MAC1M,GAAG,4BAEHd,EAAE,YAAYmB,QAAO,WACjBnB,EAAE,UAAUoB,MAAK,WACPpB,EAAEgB,MAAMK,OACVrB,EAAEgB,MAAMK,IAAIrB,EAAEgB,MAAMK,MAAMC,QAAQ,OAAQ,IAElD,IACN,IAAIC,YAAcvB,EAAE,yBAAyBqB,MACzCG,SAAWxB,EAAE,cAAgBuB,YAAc,KAC3CE,WAAazB,EAAE,UAAYuB,YAAc,KAC7CnC,oBAAsBoC,SAASE,KAAK,cAAgBD,WAAWC,KAAK,aAC9DrC,oBAEA,IAAIsC,eAAiB3B,EAAE,mBAAmBqB,MACpB,MAAlBM,gBAA4C,GAAlBA,iBAC1BrC,IAAIC,WAAWC,UAAUC,SAASmC,UAAW,EACrD,IACA5B,EAAE,UAAU6B,QAAO,WAEXC,SAASC,WACT/B,EAAEgB,MAAMgB,OAAOC,QAAQD,MAC/B,IACAhC,GAAE,WAEEA,EAAE,YAAYmB,QAAO,WACU,MAAvB/B,qBAA+BA,oBAAoBe,OAAS,GAC5DH,EAAE,uBAAyBZ,oBAAsB,WAAW8C,YAAY,WAChF,GACJ,GACJ","sourcesContent":["var validationGroupName;\r\n\r\n$(function () {\r\n // Override jquery email validation (it does not required a domain by default)\r\n $.validator.addMethod('email', function (value, element) {\r\n return this.optional(element) || /^[A-Za-z0-9!#$%&'*+/=?_`{|}~-]+(?:\\.[A-Za-z0-9!#$%&'*+/=?_`{|}~-]+)*@(?:[A-Za-z0-9](?:[A-Za-z0-9-]*[A-Za-z0-9])?\\.)+[A-Za-z0-9](?:[A-Za-z0-9-]*[A-Za-z0-9])?$/.test(value);\r\n }, \"Email address is invalid\");\r\n\r\n $(\"#frmMain\").submit(function () {\r\n $(\":input\").each(function () {\r\n if (!!$(this).val()) {\r\n $(this).val($(this).val().replace(/[<>]/, ''));\r\n }\r\n });\r\n\t\tvar pageCommand = $(\"#frmMain #pageCommand\").val();\r\n\t\tvar $clicked = $(\"input[name=\" + pageCommand + \"]\");\r\n\t\tvar btnClicked = $(\"a[name=\" + pageCommand + \"]\");\r\n\t\tvalidationGroupName = $clicked.data(\"val-group\") || btnClicked.data(\"val-group\");\r\n BindIgnoreHandler(); // rewire in case it's been taken over\r\n\r\n var skipValidation = $(\"#skipValidation\").val();\r\n if (skipValidation != null && skipValidation == true)\r\n pep.validation.validator.settings.onsubmit = false;\r\n });\r\n $(\"select\").change(function () {\r\n //Hack to refresh dropdowns for Nexus 4\r\n if (isMobile.Android())\r\n $(this).blur().focus().blur();\r\n });\r\n $(function () {\r\n // Yes, this is a Ready event inside a Ready event - it's to ensure that this runs after other Form submit events\r\n $(\"#frmMain\").submit(function () {\r\n if (validationGroupName != null && validationGroupName.length > 0)\r\n $(\"label.capError:not(#\" + validationGroupName + \" label)\").removeClass(\"capError\");\r\n });\r\n });\r\n});\r\n\r\nfunction BindIgnoreHandler() {\r\n pep.validation.validator.settings.ignore = ignoreHandler;\r\n}\r\n\r\n//This is called recursively on masked displayField so that the actual data (hidden) field is validated based on the visibility/enabled of the display field.\r\n//Because of this, the default ignoreDisplayOnly param is true, but when we recursively call to take the properties of the hidden field, we must not\r\n//return false just because it is a display field.\r\nfunction ignoreHandler(i, elem, ignoreDisplayOnly) {\r\n var $elem = $(elem);\r\n\r\n if ($elem.hasClass(\"ignore\")) return true;\r\n\r\n if (ignoreDisplayOnly == null) {\r\n ignoreDisplayOnly = true;\r\n }\r\n\r\n var outsideValidationGroup = false;\r\n if (validationGroupName != null && validationGroupName.length > 0) {\r\n outsideValidationGroup = $(\"#\" + validationGroupName).has($elem).length == 0\r\n }\r\n\r\n var isDisplayOnlyField = $elem.attr('data-forcontrol') != null && $elem.attr('data-forcontrol').length > 0;\r\n var hidden = $elem.is(\":hidden\");\r\n var disabled = $elem.is(\":disabled\");\r\n var hiddenValidator = $elem.hasClass('validateHidden');\r\n\r\n if (outsideValidationGroup || (isDisplayOnlyField && ignoreDisplayOnly)) {\r\n return true;\r\n }\r\n if (hiddenValidator) {\r\n var $displayField = $('body').find('[data-forcontrol=' + $elem.attr('id') + ']');\r\n if ($displayField != null && $displayField.length > 0) {\r\n return ignoreHandler(i, $displayField, false);\r\n }\r\n return false;\r\n }\r\n return hidden || disabled;\r\n};\r\n"]}