{"version":3,"sources":["ebcontext.min.js"],"names":["EBContext","data","modules","actions","instances","pages","options","config","consoleStyles","errorMsg","warnMsg","infoMsg","errorBtn","warnBtn","infoBtn","code","utils","resource","id","toString","toUpperCase","resources","hasOwnProperty","resourceInflection","t","n","toLowerCase","ebc","d","m","p","o","r","u","mergeObj","bRecursive","bMergeArrays","targetObj","i","extender","obj1","obj2","key","Array","isArray","array","merge","isPlainObj","arguments","length","getObj","cloneObj","extendObj","reference","scope","window","searchObj","callObj","path","callback","target","bind","obj","retObj","constructor","Object","getPathArr","split","console","error","create","setObj","pathArr","value","parseObj","str","parsedObj","trim","slice","eval","errCode","groupCollapsed","warn","groupEnd","paramsStrToObj","paramsStr","keysToLowerCase","paramsObj","pair","pairs","decodeURIComponent","paramsObjToStr","encodeValues","val","JSON","stringify","encodeURIComponent","push","join","search","filter","a","ent","entries","keyObj","fromEntries","indexOf","recObj","map","rec","keys","fObj","info","form","serialize","skipSerialization","name","element","elementName","elementValue","elementDataName","getAttribute","isEnabled","hasAttribute","HTMLInputElement","checked","document","querySelector","HTMLButtonElement","HTMLSelectElement","HTMLTextAreaElement","HTMLElement","getSelector","j","selected","process","validateForm","formOptions","reload","ajaxNav","defaultReload","virtualAnchor","createAnchor","ctype","enctype","overrideURL","href","formData","postData","FormData","serializeForm","method","linkMask","replaceMask","extendQS","extendURL","ajaxURL","createAjaxURL","createURL","clearField","field","submit","elements","el","matches","forEach","f","type","disabled","readOnly","tagName","require","jQuery","selectpicker","clear","nodeName","closest","validate","setCustomValidity","required","selectedOptions","find","changeCallback","checkValidity","reportValidity","prepare","hiddenEl","createElement","appendChild","setOverride","e","ctEl","currentTarget","setTimeout","errCallback","submitattempts","parseInt","confirm","resp","location","setAttribute","submitBtn","click","style","display","removeChild","confirmSubmit","message","validity","await","resetOnCancel","reset","clearForm","prepareForm","processForm","url","HTMLAnchorElement","Location","URL","HTMLFormElement","requestParams","queryString","pathname","params","keepEmpty","call","callArr","ebpageitemcall","ebpageitemmethod","ajax","ebpageitemupdate","defaultPage","ebpageoid","template","templateStr","templates","variables","plaintext","Math","floor","templatesCache","activeReferences","rootVariables","debug","evtRefs","findTemplate","templateName","storeCache","parentParams","parentVariables","serviceMode","arrFrom","arrTo","substring","tempArr","valArr","evtName","objRef","objType","toArr","tempArr2","replace","values","evtArr","resId","resText","cond","fn","evtRef","random","eventName","fnRes","parseTemplate","tmpVars","tempVars","respStr","log","substr","references","match","debug2","ari","group","ret","ref","createDOM","refObj","retEl","cb","addEventListener","removeAttribute","querySelectorAll","wrapEl","leadingTag","leadingTagName","wrapElObj","innerHTML","childNodes","xmlHttp","charset","headers","asyn","responseType","timeout","user","password","XMLHttpRequest","alert","expectedURL","origin","xhr","open","setRequestHeader","boundary","callbackObj","ok","response","status","err","onreadystatechange","responseURL","redirect","readyState","repeated","postInterface","ignoreInterface","send","handleDownload","url2","searchParams","get","download","loader","callbackStart","fnLoaderStart","callbackFinish","fnLoaderEnd","callbackError","heading","fetch","navigator","userAgent","filename","then","cd","re","res","exec","blob","text","createObjectURL","body","revokeObjectURL","parentElement","catch","checkInterval","checkState","ifEl","ifDoc","contentDocument","contentWindow","clearInterval","getElementById","visibility","height","width","marginLeft","onload","onerror","setInterval","src","parseMoney","money","parseFloat","formatMoney","decimals","moneyArr","toFixed","NaN","mask","mapObj","reduceMapObj","matchAll","maskKey","parseMask","appendEmptyParams","linkURL","grid","getBreakpoints","bpMap","widthBreakpoints","getComputedStyle","documentElement","getPropertyValue","getBreakpoint","innerWidth","sort","b","getHeading","maxLength","ellipsis","breakWord","sentences","isVisible","contains","visible","elStyle","opacity","isTruncated","offsetWidth","scrollWidth","offsetHeight","scrollHeight","isDisabled","testEl","selector","className","getFocusableChildren","el2","tabIndex","append","eventHandlerProperty","event","getScope","retScope","NodeList","HTMLCollection","Element","HTMLDocument","getElement","all","ref2","els","uniqueId","prefix","retArr","includes","sortObjects","arr","desc","skipAO","x","y","normalize","sortObjArray","filterObjects","findLastIndexOf","condFn","findLast","currentPage","OID","blocksData","pageData","eventListeners","TmyWAC","self","version","setSession","warning","rnd","Date","getTime","httpPostRequest","escape","getSession","httpRequest","ActiveXObject","responseText","xml","object","callbackTimeout","intervalTimeout","responseXML","myWAC"],"mappings":"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","sourcesContent":["/**\r\n * Namespace for myWAC specific Objects, Methods and data for client-side use\r\n * @namespace EBContext\r\n * @author Luk� Sembol \r\n */\r\nvar EBContext = EBContext || {};\r\n\r\n/**\r\n * Namespace for various downloadable cached objects\r\n * @namespace EBContext.data\r\n */\r\nEBContext.data = EBContext.data || {};\r\n\r\n/**\r\n * Namespace for standardized EBContext plugins\r\n * @namespace EBContext.modules\r\n */\r\nEBContext.modules = EBContext.modules || {};\r\n\r\n/**\r\n * Namespace for standardized actions to be called from CMSMenu\r\n * @namespace EBContext.actions\r\n */\r\nEBContext.actions = EBContext.actions || {};\r\n\r\n/**\r\n * Object for storing (and referencing) instances of EBContext modules\r\n * @type {Object}\r\n * @name instances\r\n * @memberof EBContext\r\n */\r\nEBContext.instances = EBContext.instances || {};\r\n\r\n/**\r\n * Object for storing block-specific data and instances of EBContext modules\r\n * @name pages\r\n * @memberof EBContext\r\n * @type {Object}\r\n */\r\nEBContext.pages = EBContext.pages || {};\r\n\r\n/**\r\n * Namespace for default template and debug settings\r\n * @namespace EBContext.options\r\n */\r\nEBContext.options = EBContext.options || {};\r\n\r\n/**\r\n * Namespace for various IDs and configuration\r\n * @namespace EBContext.config\r\n */\r\nEBContext.config = EBContext.config || {};\r\n\r\n/**\r\n * Object with styles for themed console output.\r\n * This is used to distinguish caught MW exceptions from general JS errors\r\n * @name EBContext.options.consoleStyles\r\n * @type {Object}\r\n */\r\nEBContext.options.consoleStyles = {\r\n\terrorMsg: 'color: #333; background-color: pink; padding: 3px',\r\n\twarnMsg: 'color: #333; background-color: yellow; padding: 3px',\r\n\tinfoMsg: 'color: #333; background-color: lightskyblue; padding: 3px',\r\n\terrorBtn: 'color: #333; font-weight: bold; display: block; background-color: pink; border: 1px solid red; border-radius: 5px; padding: 5px 15px',\r\n\twarnBtn: 'color: #333; font-weight: bold; display: block; background-color: yellow; border: 1px solid orange; border-radius: 5px; padding: 5px 15px',\r\n\tinfoBtn: 'color: #333; font-weight: bold; display: block; background-color: lightskyblue; border: 1px solid blue; border-radius: 5px; padding: 5px 15px',\r\n\tcode: 'font-family: Courier-new, Courier, monospace'\r\n};\r\n\r\n/**\r\n * Namespace for standalone helper functions\r\n * @namespace utils\r\n * @memberof EBContext\r\n */\r\nEBContext.utils = EBContext.utils || {};\r\n\r\n/**\r\n * Function to case-insensitive search for resource texts\r\n * @param id Resource ID\r\n * @returns If resource with given ID (case insensitive) exists in current language, returns its text, else returns uppercase ID\r\n */\r\nEBContext.resource = function (id) {\r\n\tid = id.toString().toUpperCase();\r\n\treturn (EBContext && EBContext.data && EBContext.data.resources && EBContext.data.resources.hasOwnProperty(id) ? EBContext.data.resources[id] : id);\r\n};\r\n\r\nEBContext.resourceInflection = function(t, n) {\r\n\tswitch(t.toLowerCase()){\r\n\t\tcase 'dny':\r\n\t\t\tif(n===1) return n + ' ' + EBContext.resource('DEN');\r\n\t\t\tif(n>0 && n<5) return n + ' ' + EBContext.resource('DNY');\r\n\t\t\treturn n + ' ' + EBContext.resource('DNI');\r\n\t}\r\n};\r\n\r\n/**\r\n * helper namespace for EBContext, that shortens path to most used namespaces and functions\r\n * @namespace ebc\r\n * *** - Dokud tady bude tento ��dek, tak nikdy nepou��vat v k�du, jen k lad�n� v konzoli! Struktura objektu se je�t� m��e zm�nit!\r\n */\r\nvar ebc = {\r\n\td: EBContext.data,\r\n\tm: EBContext.modules,\r\n\tp: EBContext.pages,\r\n\to: EBContext.options,\r\n\tr: EBContext.resource,\r\n\tu: EBContext.utils\r\n};\r\n\r\n/**\r\n * Merges two or more JS objects\r\n * @param {boolean} [mode] If specified, deep merge is used; if true then Arrays are merged (without duplicates), else Arrays are replaced\r\n * @param {...Object} obj Two or more JS plain objects to merge. First Object is target into which consequential objects are merged\r\n * @returns {Object} New Object with deep clones of all source objects sequentially merged into it \r\n * @example Basic usage example\r\n * obj1 = {'A': 5, 'B': 'Excelsior', 'C': true};\r\n * obj2 = {'A': 6, 'B': {'B1': 1, 'B2': 2}, 'D': [1, 2, 3, 5]};\r\n * var a = EBContext.utils.extendObj(obj1, obj2);\r\n * // a = {'A': 6, 'B': {'B1': 1, 'B2': 2}, 'C': true, 'D': [1, 2, 3, 5]};\r\n * @example Example with deep merge\r\n * obj1 = {'A': 5, 'B': 'Excelsior', 'C': true};\r\n * obj2 = {'A': 6, 'B': {'B1': 1, 'B2': 2}, 'D': [1, 2, 3, 5]};\r\n * obj3 = {'A': 8, 'B': {'B1': 5, 'B3': 'A'}, 'D': [6, 7, 8, 3, 4]};\r\n * var a = EBContext.utils.extendObj(true, obj1, obj2, obj3);\r\n * // a = {'A': 8, 'B': {'B1': 5, 'B2': 2, 'B3': 'A'}, 'C': true, 'D': [1, 2, 3, 5, 6, 7, 8, 4]};\r\n * @example Example with deep merge of Object but not Arrays\r\n * obj1 = {'A': 5, 'B': 'Excelsior', 'C': true};\r\n * obj2 = {'A': 6, 'B': {'B1': 1, 'B2': 2}, 'D': [1, 2, 3, 5]};\r\n * obj3 = {'A': 8, 'B': {'B1': 5, 'B3': 'A'}, 'D': [6, 7, 8, 3, 4]};\r\n * var a = EBContext.utils.extendObj(false, obj1, obj2, obj3);\r\n * // a = {'A': 8, 'B': {'B1': 5, 'B2': 2, 'B3': 'A'}, 'C': true, 'D': [6, 7, 8, 3, 4]};\r\n */\r\nEBContext.utils.mergeObj = function () {\r\n\tvar bRecursive = false;\r\n\tvar bMergeArrays = false;\r\n\tvar targetObj = {};\r\n\tvar i = 0;\r\n\tvar extender = null;\r\n\r\n\t/**\r\n\t * @param {Object} obj1 Target plain JS Object to merge second one into.\r\n\t * @param {Object} obj2 A plain JS Object to merge into first one.\r\n\t * @returns {Object} Returns JS Object 'obj1' with 'obj2' merged into it.\r\n\t */\r\n\tvar mergeObj = function (obj1, obj2) {\r\n\t\tfor (var key in obj2) {\r\n\t\t\tif (Array.isArray(obj1[key]) && Array.isArray(obj2[key]) && bMergeArrays) {\r\n\t\t\t\tobj1[key] = EBContext.utils.array.merge(obj1[key], obj2[key]);\r\n\t\t\t} else if (EBContext.utils.isPlainObj(obj1[key]) && EBContext.utils.isPlainObj(obj2[key]) && bRecursive) {\r\n\t\t\t\tobj1[key] = mergeObj(obj1[key], obj2[key]);\r\n\t\t\t} else {\r\n\t\t\t\tobj1[key] = obj2[key];\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn obj1;\r\n\t};\r\n\r\n\tif (arguments.length > 2 && typeof arguments[0] === 'boolean') {\r\n\t\tbRecursive = true;\r\n\t\tbMergeArrays = arguments[0];\r\n\t\ti = 1;\r\n\t}\r\n\tfor (i; i < arguments.length; i++) {\r\n\t\tif (i === arguments.length - 1 && arguments[i] === undefined) continue;\r\n\t\textender = EBContext.utils.getObj(arguments[i]);\r\n\t\tif (!extender) {\r\n\t\t\tcontinue;\r\n\t\t}\r\n\t\ttargetObj = mergeObj(targetObj, EBContext.utils.cloneObj(extender));\r\n\t}\r\n\treturn targetObj;\r\n};\r\n\r\n/**\r\n * Extends first passed object with all subsequentials\r\n * @param {boolean} [mode] If specified, deep merge is used; if true then Arrays are merged (without duplicates), else Arrays are replaced\r\n * @param {...Object} obj Two or more JS plain objects to merge. First Object is target into which consequential objects are merged\r\n * @returns {Object} Reference to the first object with all other objects sequentially merged into it \r\n */\r\nEBContext.utils.extendObj = function () {\r\n\tvar bRecursive = false;\r\n\tvar bMergeArrays = false;\r\n\tvar i = 0;\r\n\tvar extender = null;\r\n\r\n\t/**\r\n\t * @param {Object} obj1 Target plain JS Object to merge second one into.\r\n\t * @param {Object} obj2 A plain JS Object to merge into first one.\r\n\t * @returns {Object} Returns JS Object 'obj1' with 'obj2' merged into it.\r\n\t */\r\n\tvar mergeObj = function (obj1, obj2) {\r\n\t\tfor (var key in obj2) {\r\n\t\t\tif (Array.isArray(obj1[key]) && Array.isArray(obj2[key]) && bMergeArrays) {\r\n\t\t\t\tobj1[key] = EBContext.utils.array.merge(obj1[key], obj2[key]);\r\n\t\t\t} else if (EBContext.utils.isPlainObj(obj1[key]) && EBContext.utils.isPlainObj(obj2[key]) && bRecursive) {\r\n\t\t\t\tobj1[key] = mergeObj(obj1[key], obj2[key]);\r\n\t\t\t} else {\r\n\t\t\t\tobj1[key] = obj2[key];\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn obj1;\r\n\t};\r\n\r\n\tif (arguments.length > 2 && typeof arguments[0] === 'boolean') {\r\n\t\tbRecursive = true;\r\n\t\tbMergeArrays = arguments[0];\r\n\t\ti = 1;\r\n\t}\r\n\tvar targetObj = EBContext.utils.getObj(arguments[i]);\r\n\tfor (i; i < arguments.length; i++) {\r\n\t\tif (i === arguments.length - 1 && arguments[i] === undefined) continue;\r\n\t\textender = EBContext.utils.getObj(arguments[i]);\r\n\t\tif (!extender) {\r\n\t\t\tcontinue;\r\n\t\t}\r\n\t\ttargetObj = mergeObj(targetObj, EBContext.utils.cloneObj(extender));\r\n\t}\r\n\r\n\treturn targetObj;\r\n};\r\n\r\n/**\r\n * HelperFunction to simplify finding an Object in global scope\r\n * @param {String|Array.|Object} reference Object itself or path to it in scope\r\n * @param {Object} [scope=window] Scope of search\r\n * @returns {Object|null} Returns object if found, else returns reference\r\n */\r\nEBContext.utils.getObj = function (reference, scope) {\r\n\tscope = scope || window;\r\n\tif(Array.isArray(reference) || typeof reference === 'string') return EBContext.utils.searchObj(scope, reference);\r\n\treturn reference;\r\n};\r\n\r\n/**\r\n * Soft accessor to EBContext properties\r\n * @param {Array.|string} path Path to target object within EBContext - nesting with dot notation\r\n * @param {function} [callback] Callback function to be called in a context of found object (if found)\r\n * @returns {*} If nothing is found in given path, returns `null` else returns callback return value\r\n */\r\nEBContext.utils.callObj = function (path, callback) {\r\n\tvar target = EBContext.utils.searchObj(EBContext, path);\r\n\tif (target && callback && typeof callback === 'function') {\r\n\t\treturn (callback).bind(target)();\r\n\t}\r\n\treturn null;\r\n};\r\n\r\n/**\r\n * @param {Object} obj Source plain JS Object to clone.\r\n * @returns {Object} Returns new JS Object with 'obj' deep-cloned.\r\n */\r\nEBContext.utils.cloneObj = function (obj) {\r\n\tvar retObj = {};\r\n\tfor (var key in obj) {\r\n\t\tif (EBContext.utils.isPlainObj(obj[key])) {\r\n\t\t\tretObj[key] = EBContext.utils.cloneObj(obj[key]);\r\n\t\t} else {\r\n\t\t\tretObj[key] = obj[key];\r\n\t\t}\r\n\t}\r\n\treturn retObj;\r\n};\r\n\r\n/**\r\n * @param {*} obj Any variable to test whether it is a plain JS Object or not.\r\n * @returns {boolean} Returns true if passed variable is a plain JS Object, otherwise returns false.\r\n */\r\nEBContext.utils.isPlainObj = function (obj) {\r\n\treturn (obj && typeof obj === 'object' && obj.constructor === Object);\r\n};\r\n\r\n/**\r\n * This function unifies parsing of object path to keys array\r\n * @param {Array.|string} path Path to target object within EBContext - nesting with dot notation\r\n * @returns {Array.|null} 'null' if path is unparsable, else array of keys (string)\r\n */\r\nEBContext.utils.getPathArr = function (path) {\r\n\tif (Array.isArray(path)) {\r\n\t\treturn path;\r\n\t} else if (typeof path === 'string') {\r\n\t\treturn path.split('.');\r\n\t}\r\n\tconsole.error('%c@Invalid path!', EBContext.options.consoleStyles.errorMsg);\r\n\treturn null;\r\n};\r\n\r\n/**\r\n * This function access path of nested objects\r\n * @param {Object} scope Reference to an object representing search scope\r\n * @param {Array.|String} path Parameter 'path' is supposed to be array of keys of nested objects representing the path to access\r\n * @param {Boolean} [create] Force creation of objects in path which doesn't exist already (overrides all values with given keys with empty objects to ensure accessibility of given path)\r\n * @returns {*} 'null' if path not found or content of the path\r\n */\r\nEBContext.utils.searchObj = function (scope, path, create) {\r\n\tif (create) return EBContext.utils.setObj(scope, path);\r\n\tif(!path) return null;\r\n\tvar pathArr = EBContext.utils.getPathArr(path);\r\n\tif (!pathArr) return null;\r\n\tvar i;\r\n\tfor (i = 0; i < pathArr.length; i++) {\r\n\t\tif (!scope || !scope.hasOwnProperty(pathArr[i])) {\r\n\t\t\treturn null;\r\n\t\t}\r\n\t\tscope = scope[pathArr[i]];\r\n\t}\r\n\treturn scope;\r\n};\r\n\r\n/**\r\n * @param {Object} scope Reference to an object representing search scope\r\n * @param {Array.|string} path Path to target object within EBContext - nesting with dot notation\r\n * @param {*} [value] Value to be set to the last key in path\r\n * @returns {*} Returns reference to last object in specified path\r\n */\r\nEBContext.utils.setObj = function (scope, path, value) {\r\n\tif(!path) return null;\r\n\tlet pathArr = EBContext.utils.getPathArr(path);\r\n\tif (!pathArr) return null;\r\n\tlet i;\r\n\tfor (i = 0; i < pathArr.length; i++) {\r\n\t\tif (i === pathArr.length - 1 && typeof value !== 'undefined') {\r\n\t\t\tscope[pathArr[i]] = value;\r\n\t\t} else if (!scope.hasOwnProperty(pathArr[i])) {\r\n\t\t\tscope[pathArr[i]] = {};\r\n\t\t}\r\n\t\tscope = scope[pathArr[i]];\r\n\t}\r\n\treturn scope;\r\n};\r\n\r\n/**\r\n * Function to parse stringified plain JS objects.\r\n * Theese are used over classic JSON in case of need to use single quotes over double quotes.\r\n * E.g. config object written into HTML element's attribute.\r\n * @param {string} str Stringified plain JS Object. Value has to be string starting and ending with curly braces (leading and trailing white-spaces are acceptable).\r\n * @returns {Object} Plain JS Object parsed from passed string.\r\n */\r\nEBContext.utils.parseObj = function (str) {\r\n\tvar parsedObj = {};\r\n\tif (!!str && typeof str === 'string') {\r\n\t\tstr = str.trim();\r\n\t\tif (str[0] === '{' && str.slice(-1) === '}') {\r\n\t\t\ttry {\r\n\t\t\t\tparsedObj = eval('(' + str + ')'); // jshint ignore:line\r\n\t\t\t} catch (errCode) {\r\n\t\t\t\tconsole.error('%cError parsing object!', EBContext.options.consoleStyles.errorMsg);\r\n\t\t\t\tconsole.error(errCode);\r\n\t\t\t\tconsole.groupCollapsed(\"%cShow code\", EBContext.options.consoleStyles.infoBtn);\r\n\t\t\t\tconsole.warn('%c' + str, EBContext.options.consoleStyles.code);\r\n\t\t\t\tconsole.groupEnd();\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tconsole.error('%cPassed string doesn\\'t ressemble JS object. Object has to begin and end with curly braces!', EBContext.options.consoleStyles.errorMsg);\r\n\t\t}\r\n\t} else if (str) {\r\n\t\tconsole.error('%cPassed argument has to be stringified JS object!', EBContext.options.consoleStyles.errorMsg);\r\n\t}\r\n\treturn parsedObj;\r\n};\r\n\r\n/**\r\n * Function to convert params string (key/value pairs stringified to queryString-like string) into a plain JS Object (just one level key/value pairs).\r\n * @param {string} paramsStr Input parameter string. Can start with '?', then must match to pattern 'key1=value1&key2=value2&key3=value3' etc... \r\n * @param {boolean} keysToLowerCase Set whether keys of parsed object will be transformed to lowercase, or not. This is usefult for merging params without duplicates.\r\n * @returns {Object} Plain JS Object of key/value pairs from 'paramsStr', where keys might be transformed to lowercase (depending on 'keysToLowerCase' parameter), and values are URIComponent-decoded\r\n */\r\nEBContext.utils.paramsStrToObj = function (paramsStr, keysToLowerCase) {\r\n\tif (paramsStr[0] === '?') paramsStr = paramsStr.slice(1);\r\n\tvar paramsObj = {};\r\n\tif (paramsStr !== '') {\r\n\t\tvar pairs = paramsStr.split('&');\r\n\t\tfor (var i = 0; i < pairs.length; i++) {\r\n\t\t\tvar pair = pairs[i].split('=');\r\n\t\t\tif (keysToLowerCase) pair[0] = pair[0].toLowerCase();\r\n\t\t\tparamsObj[pair[0]] = decodeURIComponent(pair[1] || '');\r\n\t\t}\r\n\t}\r\n\treturn paramsObj;\r\n};\r\n\r\n/**\r\n * Function to convert plain JS Object (just one level key/value pairs) to params string (key/value pairs stringified to queryString-like string).\r\n * @param {Object} paramsObj One-level plain JS Object of key/value pairs.\r\n * @param {boolean} [encodeValues] Boolean to set whether values in params string will be URIComponent-encoded or not.\r\n * @returns {string} Returns string of 'paramsObj' key/value pairs matching 'key1=value1&key2=value2&key3=value3' etc., where values might be URIComponent-encoded, depending on 'encodeValues' parameter.\r\n */\r\nEBContext.utils.paramsObjToStr = function (paramsObj, encodeValues) {\r\n\tif (encodeValues === undefined) encodeValues = true;\r\n\tvar pairs = [];\r\n\tfor (var key in paramsObj) {\r\n\t\tlet val = paramsObj[key];\r\n\t\tif(typeof val === 'object') val = JSON.stringify(val);\r\n\t\tif(encodeValues) val = encodeURIComponent(val)\r\n\t\tpairs.push(key + '=' + val);\r\n\t}\r\n\treturn pairs.join('&');\r\n};\r\n\r\nEBContext.utils.search = function(obj, str){\r\n if(!obj) return obj;\r\n\tif(Array.isArray(obj)) return obj.filter(a=>EBContext.utils.search(a, str));\r\n if(typeof obj === 'object'){\r\n\t\tlet ent = Object.entries(obj);\r\n let keyObj = Object.fromEntries(ent.filter(a=>a[0].indexOf(str)>-1));\r\n let recObj = Object.fromEntries(ent.map(a=>{\r\n let rec = EBContext.utils.search(a[1], str);\r\n if(Array.isArray(rec) && !rec.length) return undefined;\r\n if(rec && typeof rec === 'object' && !Object.keys(rec).length) return undefined;\r\n if(rec) return [a[0],rec];\r\n return undefined;\r\n }).filter(a=>a!==undefined));\r\n let fObj = EBContext.utils.mergeObj(false, keyObj, recObj);\r\n \treturn fObj;\r\n\t}\t\t\r\n\tif(typeof obj !== 'function' && obj.toString().indexOf(str)>-1){\r\n console.info('found string \"%s\" in string: ', str, obj.toString(), obj);\r\n return obj;\r\n }\r\n\treturn undefined;\r\n};\r\n\r\nEBContext.utils.form = EBContext.utils.form || {};\r\n/**\r\n * This function tries to mimic standard form serialization as if normally submited.\r\n * For example it handles serialization of multiple values (from elements with same names),\r\n * serialization of inputs without their respective values (select),\r\n * and skipping disabled form elements (and elements in disabled fieldsets.)\r\n * @param {HTMLFormElement} form Reference to Form HTML DOM Element.\r\n * @param {boolean} [skipSerialization] If `true` then returns object of form values, else returns string\r\n * @returns {string|null|Object} Plain JS object or Key/value pairs in queryString-like format, where keys are names of named form elements and values are their URIComponent-encoded values.\r\n */\r\nEBContext.utils.form.serialize = function (form, skipSerialization) {\r\n\tif (!form || typeof form !== 'object' || form.constructor.name !== 'HTMLFormElement') {\r\n\t\tconsole.error('%c@serializeForm: Form element is missing or is not \"FORM\" HTMLElement!', EBContext.options.consoleStyles.errorMsg);\r\n\t\treturn null;\r\n\t}\r\n\tlet i, element, elementName, elementValue, elementDataName;\r\n\tlet paramsObj = {};\r\n\tfor (i = 0; i < form.length; i++) {\r\n\t\telement = form[i];\r\n\r\n\t\t// Do not return elements that are disabled, are in a disabled fieldset, or in a disabled form\r\n\t\tif(!element.getAttribute('name') || !EBContext.utils.element.isEnabled(element,form)) continue;\r\n\t\t\r\n\t\telementName = element.getAttribute('name');\r\n\t\telementValue = (element.hasAttribute('data-value') ? element.getAttribute('data-value') : element.value);\r\n\t\tif (element instanceof HTMLInputElement) {\r\n\t\t\tswitch (element.getAttribute('type').toLowerCase()) {\r\n\t\t\t\tcase 'checkbox':\r\n\t\t\t\tcase 'radio':\r\n\t\t\t\t\tif (!(elementName in paramsObj)) paramsObj[elementName] = '';\r\n\t\t\t\t\tif (element.checked) {\r\n\t\t\t\t\t\tif (paramsObj[elementName]) paramsObj[elementName] += ',';\r\n\t\t\t\t\t\tparamsObj[elementName] += (skipSerialization ? elementValue : encodeURIComponent(elementValue));\r\n\t\t\t\t\t}\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase 'submit':\r\n\t\t\t\t\tif (element === document.querySelector('input:hover')) { // �e�it to p�es hover je asi je�t� hor�� ne� document.activeElement,ale jestli to bude fungovat, tak je to nejjednodu��� �e�en�\r\n\t\t\t\t\t\tif (paramsObj[elementName]) paramsObj[elementName] += ',';\r\n\t\t\t\t\t\tparamsObj[elementName] += (skipSerialization ? elementValue : encodeURIComponent(elementValue));\r\n\t\t\t\t\t}\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tdefault:\r\n\t\t\t\t\tif (!paramsObj.hasOwnProperty(elementName)) paramsObj[elementName] = '';\r\n\t\t\t\t\tif (paramsObj[elementName] !== '') paramsObj[elementName] += ',';\r\n\t\t\t\t\tparamsObj[elementName] += (skipSerialization ? elementValue : encodeURIComponent(elementValue));\r\n\t\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t} else if (element instanceof HTMLButtonElement){\r\n\t\t\tcontinue; // identifikaci a serializaci stisknut�ho buttonu �e�� EBContext.utils.prepareForm\r\n\t\t} else if (element instanceof HTMLSelectElement) {\r\n\t\t\tif (!(elementName in paramsObj)) paramsObj[elementName] = '';\r\n\t\t\tif (element instanceof HTMLSelectElement) {\r\n\t\t\t\tfor (var j = 0; j < element.options.length; j++) {\r\n\t\t\t\t\tif ((element.options[j].hasAttribute('data-value') || element.options[j].hasAttribute('value')) && element.options[j].selected) {\r\n\t\t\t\t\t\tif (paramsObj[element.name] !== '') paramsObj[element.name] += ',';\r\n\t\t\t\t\t\telementValue = (element.options[j].hasAttribute('data-value') ? element.options[j].getAttribute('data-value') : element.options[j].value);\r\n\t\t\t\t\t\tparamsObj[element.name] += (skipSerialization ? elementValue : encodeURIComponent(elementValue));\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t} else if (element instanceof HTMLTextAreaElement) {\r\n\t\t\tif (!paramsObj.hasOwnProperty(elementName)) paramsObj[elementName] = '';\r\n\t\t\tif (paramsObj[elementName] !== '') paramsObj[elementName] += ',';\r\n\t\t\tparamsObj[elementName] += (skipSerialization ? elementValue : encodeURIComponent(elementValue));\r\n\t\t} else {\r\n\t\t\tconsole.error('%c@serializeForm: Element \\'' + (element instanceof HTMLElement ? EBContext.utils.element.getSelector(element) : element.toString()) + '\\' is not valid form control element!', EBContext.options.consoleStyles.errorMsg);\r\n\t\t}\r\n\t\telementDataName = element.getAttribute('data-name');\r\n\t\tif(elementDataName) paramsObj[elementDataName] = paramsObj[elementName];\r\n\t}\r\n\tif (skipSerialization) return paramsObj;\r\n\treturn EBContext.utils.paramsObjToStr(paramsObj, false);\r\n};\r\nEBContext.utils.form.process = function(form, options){\r\n\tif(!EBContext.utils.validateForm(form)) return false;\r\n\tlet formOptions = EBContext.utils.parseObj(form.getAttribute('data-ajax'));\r\n\toptions = EBContext.utils.extendObj(false, formOptions, options);\r\n\toptions.reload = options.reload || EBContext.ajaxNav.options.defaultReload.join(',');\r\n\tlet virtualAnchor = EBContext.utils.createAnchor(form);\r\n\toptions.ctype = (options.hasOwnProperty('ctype') ? options.ctype : form.enctype) || '';\r\n\tif(options.overrideURL) virtualAnchor.href = options.overrideURL;\r\n\t\r\n\tlet postData = options.postData || null, formData;\r\n\tif (options.ctype.toLowerCase() === 'multipart/form-data') {\r\n\t\tformData = new FormData(form);\r\n\t} else {\r\n\t\tformData = EBContext.utils.serializeForm(form, true);\r\n\t}\r\n\tif (!form.method || form.method.toLowerCase() === 'get') {\r\n\t\tif(options.linkMask){\r\n\t\t\tvirtualAnchor.href = EBContext.utils.replaceMask('/'+options.linkMask, formData, true);\r\n\t\t}\r\n\t\tif (options.extendQS) {\r\n\t\t\tvirtualAnchor.href = EBContext.utils.extendURL(virtualAnchor.href, formData, true);\r\n\t\t} else {\r\n\t\t\tvirtualAnchor.href = virtualAnchor.href.split('?')[0] + '?' + EBContext.utils.paramsObjToStr(formData, true);\r\n\t\t}\r\n\t} else {\r\n\t\tpostData = formData;\r\n\t}\r\n\tlet ajaxURL = EBContext.utils.createAjaxURL(virtualAnchor, options);\r\n\tvirtualAnchor.href = EBContext.utils.createURL(virtualAnchor, options);\r\n\treturn {virtualAnchor:virtualAnchor, ajaxURL:ajaxURL, postData:postData, options:options};\r\n};\r\nEBContext.utils.form.clearField = function(field, form, submit, value){\r\n\tif(typeof form === 'string') form = document.querySelector(form); //mo�no p�edat selector\r\n\tif(form && typeof field === 'string') field = [...form.elements].filter(el=>((el.matches(field) || el.name === field) && (value === undefined || value === null || el.value === value)));\r\n\tif(!field) return;\r\n\tif(!Array.isArray(field)) field = [field];\r\n\tfield.forEach(f=>{\r\n\t\tif(f.type !== 'hidden' && !f.disabled && !f.readOnly){\r\n\t\t\tif(f.type === 'checkbox' || f.type === 'radio'){\r\n\t\t\t\tf.checked = false;\r\n\t\t\t} else {\r\n\t\t\t\tf.value = (f.tagName === 'SELECT' && f.querySelector('option[value=\"\"]') ? '' : null);\r\n\t\t\t\tif(f.matches('select.selectpicker')) require(['jquery','bootstrap-select-config'], ()=>{jQuery(f).selectpicker('refresh')});\r\n\t\t\t}\r\n\t\t}\r\n\t});\r\n\tif(submit) EBContext.utils.form.submit(form);\r\n};\r\nEBContext.utils.form.clear = function(form, submit){\r\n\tif(typeof form === 'string') form = document.querySelector(form); //mo�no p�edat selector\r\n\tif(form instanceof HTMLElement && form.nodeName !== 'FORM') form = form.form || form.closest('form'); //mo�no referencovat libovoln� element formu - typicky reset btn. s `onclick=\"EBContext.utils.resetForm(this)\"`\r\n\tif(!form) return; //pokud se ani tak nenajde, tak returnovat, a� necrashne s chybou\r\n\t[...form.elements].forEach(EBContext.utils.form.clearField);\r\n\tif(submit) EBContext.utils.form.submit(form);\r\n};\r\nEBContext.utils.form.validate = function(form){\r\n\tif (!form || typeof form !== 'object' || form.constructor.name !== 'HTMLFormElement') {\r\n\t\tconsole.error('%c@serializeForm: Form element is missing or is not \"FORM\" HTMLElement!', EBContext.options.consoleStyles.errorMsg);\r\n\t\treturn null;\r\n\t}\r\n\tlet i, element, elementName, val, elementDataName;\r\n\tlet paramsObj = {};\r\n\tfor (i = 0; i < form.length; i++) {\r\n\t\telement = form[i];\r\n\r\n\t\t// Do not return elements that are disabled, are in a disabled fieldset, or in a disabled form, do not return readonly fields\r\n\t\tif(!element.getAttribute('name') || !EBContext.utils.element.isEnabled(element,form) || element.readOnly) continue;\r\n\t\t\r\n\t\tif(element instanceof HTMLSelectElement){\r\n\t\t\telement.setCustomValidity(element.required && [...element.selectedOptions].find(el=>el.disabled) ? EBContext.resource('MSG_DISABLED_OPTION') : '');\r\n\t\t\telement.changeCallback = el=>el.setCustomValidity('');\r\n\t\t}\r\n\t\t\r\n\t\tif(!element.checkValidity()){\r\n\t\t\telement.reportValidity();\r\n\t\t\treturn false;\r\n\t\t}\r\n\t}\r\n\treturn true;\r\n};\r\nEBContext.utils.form.prepare = function(form){\r\n\tif (!form || typeof form !== 'object' || form.constructor.name !== 'HTMLFormElement') {\r\n\t\tconsole.error('%c@prepareForm: Form element is missing or is not \"FORM\" HTMLElement!', EBContext.options.consoleStyles.errorMsg);\r\n\t\treturn null;\r\n\t}\r\n\tlet i, j;\r\n\tlet hiddenEl = document.createElement('input');\r\n\t\thiddenEl.type='hidden';\r\n\t\thiddenEl.value='';\r\n\t\tform.appendChild(hiddenEl);\r\n\tfor (i = 0; i < form.length; i++) {\r\n\t\tlet element = form[i];\r\n\t\tif(!element.getAttribute('name')) continue;\r\n\t\tlet type = element.getAttribute('type');\r\n\t\tif(type && type.toLowerCase()==='submit'){\r\n\t\t\tEBContext.utils.element.setOverride(element, 'onclick', e=>{\r\n\t\t\t\tvar ctEl = e.currentTarget;\r\n\t\t\t\thiddenEl.value = ctEl.value;\r\n\t\t\t\thiddenEl.name = ctEl.name;\r\n\t\t\t\tctEl.name = '';\r\n\t\t\t\tsetTimeout(()=>{\r\n\t\t\t\t\tctEl.name = hiddenEl.name;\r\n\t\t\t\t\thiddenEl.name = '';\r\n\t\t\t\t}, 100);\r\n\t\t\t});\r\n\t\t}\r\n\t\t\r\n\t}\r\n\treturn true;\r\n};\r\nEBContext.utils.form.submit = function(form, errCallback){\r\n\tif (!form || typeof form !== 'object' || form.constructor.name !== 'HTMLFormElement') {\r\n\t\tconsole.error('%c@prepareForm: Form element is missing or is not \"FORM\" HTMLElement!', EBContext.options.consoleStyles.errorMsg);\r\n\t\treturn;\r\n\t}\r\n\tlet submitattempts = parseInt(form.getAttribute('submitattempts')) || 0;\r\n\tif(submitattempts > 100){\r\n\t\tEBContext.confirm('P�ekro�en po�et ne�sp�n�ch odesl�n� formul��e. Obnovit str�nku?', resp=>{if(resp) window.location.reload()});\r\n\t\treturn;\r\n\t} else {\r\n\t\tform.setAttribute('submitattempts', ++submitattempts);\r\n\t\tif(errCallback && typeof errCallback === 'function') return errCallback(form);\r\n\t}\r\n\tlet submitBtn = form.querySelector('[type=\"submit\"]'); //bl�e nespecifikovat! M��e b�t input, nebo taky button!\r\n\tif(submitBtn) return submitBtn.click();\r\n\tsubmitBtn = document.createElement('button');\r\n\tsubmitBtn.type='submit';\r\n\tsubmitBtn.style.display='none';\r\n\tform.appendChild(submitBtn);\r\n\tsubmitBtn.click();\r\n\tform.removeChild(submitBtn);\r\n};\r\nEBContext.utils.form.confirmSubmit = function(form, message, options){\r\n\tlet validity = EBContext.utils.form.validate(form);\r\n\tif(!validity) return false;\r\n\tif(form['confirmSubmit']===true) return true;\r\n\tEBContext.await('EBContext_Modal', ()=>{\r\n\t\tEBContext.confirm(message, resp=>{\r\n\t\t\tif(resp){\r\n\t\t\t\tform['confirmSubmit'] = true;\r\n\t\t\t\tEBContext.utils.form.submit(form);\r\n\t\t\t\tform['confirmSubmit'] = false;\r\n\t\t\t} else if(options.resetOnCancel){\r\n\t\t\t\tform.reset();\r\n\t\t\t}\r\n\t\t}, options);\r\n\t});\r\n\treturn false;\r\n};\r\n\r\n//@ALIAS @DEPRICIATED\r\nEBContext.utils.clearForm = EBContext.utils.form.clear;\r\nEBContext.utils.prepareForm = EBContext.utils.form.prepare;\r\nEBContext.utils.processForm = EBContext.utils.form.process;\r\nEBContext.utils.validateForm = EBContext.utils.form.validate;\r\nEBContext.utils.serializeForm = EBContext.utils.form.serialize;\r\n\r\n/**\r\n * @param {string|HTMLAnchorElement|Location|URL|HTMLFormElement} [url] Parameter 'url' needs to be either string, Location, URL, HTMLFormElement or HTMLAnchorElement reference. If unset, current location is used\r\n * @returns {HTMLAnchorElement} Virtual HTMLAnchorElement, with 'href' from passed param 'url', and 'data-ajax' if passed 'url' is in fact HTMLElement\r\n */\r\nEBContext.utils.createAnchor = function (url) {\r\n\tif (!url) {\r\n\t\turl = window.location.href;\r\n\t} else if (url instanceof HTMLAnchorElement) {\r\n\t\treturn url;\r\n\t}\r\n\r\n\t/**@type {HTMLAnchorElement} */\r\n\tvar virtualAnchor = document.createElement('a');\r\n\r\n\tif (typeof url === 'string') {\r\n\t\tvirtualAnchor.href = url;\r\n\t} else if (url instanceof Location || url instanceof URL) {\r\n\t\tvirtualAnchor.href = url.href;\r\n\t} else if (url instanceof HTMLFormElement) {\r\n\t\tvirtualAnchor.href = url.getAttribute('action') || window.location.href;\r\n\t} else console.error('%c@createAnchor: Invalid parameter \"url\"! Parameter \"url\" accepts string, Location or HTML Anchor element.', EBContext.options.consoleStyles.errorMsg);\r\n\tif (url instanceof HTMLElement) {\r\n\t\tif (url.getAttribute('data-ajax') !== null) virtualAnchor.setAttribute('data-ajax', url.getAttribute('data-ajax'));\r\n\t\tif (url.getAttribute('target') !== null) virtualAnchor.setAttribute('target', url.getAttribute('target'));\r\n\t}\r\n\treturn virtualAnchor;\r\n};\r\n\r\n/**\r\n * @typedef {Object} EBContext.navigationOptions\r\n * @property {boolean} [navigation=true] Defines, whether is the request navigational or not \r\n * @property {Object.} [requestParams] plain JS object of queryString params to extend link's href with\r\n * @property {boolean} [extendQS=false] if `true`, passed 'requestParams' will extend queryString parameters in link's href instead of overriding them\r\n * @property {string} [reload] Comma-separated list of blocks to update\r\n */\r\n\r\n/**\r\n * This function extends given URL according to options\r\n * @param {(string|HTMLAnchorElement|Location)} url Parameter 'url' needs to be either string, Location or HTMLAnchorElement reference\r\n * @param {EBContext.navigationOptions} options \r\n * @returns {string} URL extended with options\r\n */\r\nEBContext.utils.createURL = function (url, options) {\r\n\tvar virtualAnchor = EBContext.utils.createAnchor(url);\r\n\toptions = options || {};\r\n\tif (virtualAnchor.getAttribute('data-ajax') !== null)\r\n\t\toptions = EBContext.utils.extendObj(true, EBContext.utils.parseObj(virtualAnchor.getAttribute('data-ajax')), options);\r\n\tvar requestParams = options.requestParams || {};\r\n\trequestParams = EBContext.utils.extendObj(EBContext.utils.paramsStrToObj(virtualAnchor.href.toString().split('#')[0].split('?')[1] || '', true), requestParams);\r\n\tif (options.extendQS)\r\n\t\trequestParams = EBContext.utils.extendObj(EBContext.utils.paramsStrToObj(window.location.href.toString().split('#')[0].split('?')[1] || '', true), requestParams);\r\n\tfor (var key in requestParams)\r\n\t\tif (requestParams[key] === '')\r\n\t\t\tdelete requestParams[key];\r\n\tvar queryString = EBContext.utils.paramsObjToStr(requestParams, true);\r\n\treturn virtualAnchor.pathname + (queryString.length > 0 ? '?' + queryString : '');\r\n};\r\n\r\n/**\r\n * This function extends given URL with passed parameters\r\n * @param {(string|HTMLAnchorElement|Location)} url Parameter 'url' needs to be either string, Location or HTMLAnchorElement reference\r\n * @param {Object.} params Plain JS Object of key/value pairs to stringify and extend given URL with\r\n * @returns {string} passed URL (or URL of passed object) extended with passed params\r\n */\r\nEBContext.utils.extendURL = function (url, params, keepEmpty) {\r\n\tif (!url) url = window.location.href;\r\n\tif (typeof params === 'string') params = EBContext.utils.paramsStrToObj(params, true);\r\n\tvar virtualAnchor = EBContext.utils.createAnchor(url);\r\n\tvar requestParams = EBContext.utils.extendObj(EBContext.utils.paramsStrToObj(virtualAnchor.href.toString().split('?')[1] || '', true), params);\r\n\tif(!keepEmpty){\r\n\t\tfor (var key in requestParams)\r\n\t\t\tif (requestParams[key] === '')\r\n\t\t\t\tdelete requestParams[key];\r\n\t}\r\n\tvar queryString = EBContext.utils.paramsObjToStr(requestParams, true);\r\n\treturn virtualAnchor.pathname + (queryString.length > 0 ? '?' + queryString : '');\r\n};\r\n\r\n/**\r\n * This function extends given URL according to options and transforms it to AJAX call format\r\n * @param {(string|HTMLAnchorElement|Location)} url Parameter 'url' needs to be either string, Location or HTMLAnchorElement reference\r\n * @param {EBContext.navigationOptions} [options]\r\n * @returns {string} passed URL extended with AJAX parameters\r\n */\r\nEBContext.utils.createAjaxURL = function (url, options) {\r\n\r\n\t/**@type {HTMLAnchorElement} */\r\n\tvar virtualAnchor = EBContext.utils.createAnchor(url);\r\n\r\n\t/**@type {Object.} */\r\n\toptions = options || {};\r\n\r\n\tif (virtualAnchor.getAttribute('data-ajax') !== null) {\r\n\t\toptions = EBContext.utils.extendObj(true, EBContext.utils.parseObj(virtualAnchor.getAttribute('data-ajax')), options);\r\n\t}\r\n\t\r\n\t//Nejprve se QS parametry vezmou z options\r\n\t/**@type {Object.} */\r\n\tvar requestParams = options.requestParams || {};\r\n\r\n\trequestParams = EBContext.utils.extendObj(EBContext.utils.paramsStrToObj(virtualAnchor.href.toString().split('?')[1] || '', true), requestParams);\r\n\r\n\t//Pokud je zapnut� roz���en� parametr�, na�tou se parametry z url, a roz���� se t�mi z options\r\n\tif (options.extendQS) {\r\n\t\trequestParams = EBContext.utils.extendObj(EBContext.utils.paramsStrToObj(window.location.href.toString().split('?')[1] || '', true), requestParams);\r\n\t}\r\n\t\r\n\tif (typeof options.call === \"string\"){\r\n\t\tlet callArr = options.call.split('.');\r\n\t\trequestParams.ebpageitemcall = callArr[0];\r\n\t\trequestParams.ebpageitemmethod = callArr[1];\r\n\t}\r\n\t\r\n\t//Nakonec se objekt s parametry roz���� parametry povinn�mi pro AJAX request\r\n\trequestParams.ajax = '1';\r\n\trequestParams.ebpageitemupdate = options.reload || requestParams.ebpageitemupdate || '';\r\n\r\n\t//v p��pad�, �e odkaz sm��uje na index, a je v EBContext nastaveno jeho OID, p�ed� se (toto je blbuvzdorn� fallback), jinak se zkus� p�edat path='/', co� ale asi je�t� nefunguje v�ude \r\n\tif (virtualAnchor.pathname == '/' && typeof EBContext.options.defaultPage === 'string' && EBContext.options.defaultPage.length === 12) {\r\n\t\trequestParams.ebpageoid = EBContext.options.defaultPage;\r\n\t} else if (virtualAnchor.pathname == '/' && !requestParams.ebpageoid && !requestParams.path) {\r\n\t\t// requestParams.path = '/';\r\n\t}\r\n\treturn virtualAnchor.pathname + '?' + EBContext.utils.paramsObjToStr(requestParams, true);\r\n};\r\n\r\n/**\r\n * Templating engine utilizing HTML comments, so untranslated variables wouldn't appear on page, and code is self-documented.\r\n * Only string template values will be proccessed recursively, others will be only stringified and inserted.\r\n * Template references may use dot notation according to structure of templates object\r\n * @param {string} templateStr Text/HTML containing HTML comments as references for templates\r\n * @param {Object} [templates] Plain JS Object of templates, where key is template name and value is array of two strings for pair template, string for single template or any value to be stringified\r\n * @param {Object} [variables] Plain JS Object of variables to be replaced into templates\r\n * @param {Boolean} [plaintext] if `true` then returns string, else returns NodeList\r\n * @returns {string|NodeList} TemplateStr with replaced references for their templates (if found)\r\n */\r\nEBContext.utils.template = function (templateStr, templates, variables, plaintext) {\r\n\tlet templatesCache = {};\r\n\tlet activeReferences = {};\r\n\tlet rootVariables = variables;\r\n\tlet debug = false;\r\n\tvar evtRefs = {};\r\n\r\n\tvar findTemplate = function (templateName, templates, variables, storeCache, params) {\r\n\t\tlet parentParams = params;\r\n\t\tlet parentVariables = variables;\r\n\t\tif(templateName === '!debug' && EBContext.options.serviceMode){\r\n\t\t\tdebug = true;\r\n\t\t\treturn '';\r\n\t\t} else if(templateName === '!!debug'){\r\n\t\t\tdebug = false;\r\n\t\t\treturn '';\r\n\t\t}\r\n\t\tif (!templatesCache.hasOwnProperty(templateName)) {\r\n\t\t\tlet type = templateName.substring(0, 1);\r\n\t\t\tlet tempArr = templateName.split(';');\r\n\t\t\tlet valArr = null, arrFrom, arrTo;\r\n\t\t\tlet evtName = '';\r\n\t\t\ttemplateName = tempArr[0];\r\n\t\t\tlet i;\r\n\t\t\tif (tempArr.length > 1) {\r\n\t\t\t\tfor (i = 1; i < tempArr.length; i++) {\r\n\t\t\t\t\tlet objRef = tempArr[i];\r\n\t\t\t\t\tlet objType = objRef.substring(0, 1);\r\n\t\t\t\t\tif (objType === '$' || objType === '~') {\r\n\t\t\t\t\t\tlet toArr = (objRef.substring(1, 2) === ':');\r\n\t\t\t\t\t\tif(objRef.indexOf('[') > -1){\r\n\t\t\t\t\t\t\tlet tempArr2 = objRef.split('[');\r\n\t\t\t\t\t\t\tobjRef = tempArr2[0];\r\n\t\t\t\t\t\t\ttempArr2 = tempArr2[1].replace(']', '').split(':');\r\n\t\t\t\t\t\t\tarrFrom = parseInt(tempArr2[0]) || undefined;\r\n\t\t\t\t\t\t\tarrTo = parseInt(tempArr2[1]) || undefined;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tvariables = EBContext.utils.searchObj((objType === '~' ? rootVariables : variables), objRef.slice( (toArr ? 2 : 1) ).split('.'));\r\n\t\t\t\t\t\tvalArr = (toArr ? Object.values(variables) : null);\r\n\t\t\t\t\t\tif(debug) console.debug('Associated variables: ', variables);\r\n\t\t\t\t\t} else if (objType === '#') {\r\n\t\t\t\t\t\ttemplates = EBContext.utils.searchObj(templates, objRef.slice(1).split('.'));\r\n\t\t\t\t\t\tif(debug) console.debug('Associated templates: ', templates);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif(type==='!'){\r\n\t\t\t\tlet evtArr = templateName.split('@');\r\n\t\t\t\tif(evtArr.length>1){\r\n\t\t\t\t\ttype = '@';\r\n\t\t\t\t\tevtName = evtArr[0].slice(1);\r\n\t\t\t\t\ttemplateName = '@' + evtArr.slice(1).join('@');\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif ('$~@'.indexOf(type) > -1) {\r\n\t\t\t\tif(templateName.indexOf('~resource.') === 0){\r\n\t\t\t\t\tlet resId = templateName.slice(10);\r\n\t\t\t\t\tif(resId && '~$@'.indexOf(resId[0]) > -1) resId = findTemplate(resId, templates, variables, null, params);\r\n\t\t\t\t\tlet resText = EBContext.resource(resId);\r\n\t\t\t\t\tif(debug) console.debug('Resource `' + resId + '` translated to `' + resText + '`.');\r\n\t\t\t\t\treturn resText;\r\n\t\t\t\t}\r\n\t\t\t\tif(!rootVariables){\r\n\t\t\t\t\tif(debug) console.error('Missing root variables! Returning templateName: `' + templateName + '`.');\r\n\t\t\t\t\treturn templateName;\r\n\t\t\t\t}\r\n\t\t\t\ttempArr = templateName.split('?');\r\n\t\t\t\tif(tempArr.length > 1){\r\n\t\t\t\t\tlet cond = EBContext.utils.searchObj((type === '$' ? variables : rootVariables), tempArr[0].slice(1).split('.'));\r\n\t\t\t\t\tif(debug){\r\n\t\t\t\t\t\tconsole.groupCollapsed('Template condition: `' + tempArr[0] + '`');\r\n\t\t\t\t\t\tconsole.debug('Condition references: ', cond);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif(typeof cond === 'function'){\r\n\t\t\t\t\t\tcond = cond(variables, params, rootVariables);\r\n\t\t\t\t\t\tif(debug){\r\n\t\t\t\t\t\t\tconsole.debug('Condition reference is a function. Calling function with attributes `variables` and `params`. Result: ', cond);\r\n\t\t\t\t\t\t\tconsole.debug('variables: ', variables);\r\n\t\t\t\t\t\t\tconsole.debug('params: ', params);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\ttempArr = (tempArr[1]+':').split(':');\r\n\t\t\t\t\tif(cond && typeof cond === 'object'){\r\n\t\t\t\t\t\tcond = Object.keys(cond).length;\r\n\t\t\t\t\t\tif(debug) console.debug('Condition reference is an Object. Checking keys length > 0. Result: ', cond);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif(debug){\r\n\t\t\t\t\t\tconsole.debug('Condition is ' + !!cond + '. Searching for template in `' + tempArr[(cond ? 0 : 1)] + '`');\r\n\t\t\t\t\t\tconsole.groupEnd();\r\n\t\t\t\t\t}\t\t\t\t\t\r\n\t\t\t\t\tif (cond) {\r\n\t\t\t\t\t\treturn findTemplate(tempArr[0], templates, variables, null, params);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\treturn findTemplate(tempArr[1], templates, variables, null, params);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\ttempArr = templateName.split('@');\r\n\t\t\t\tif(tempArr.length > 1){\r\n\t\t\t\t\tlet fn = EBContext.utils.searchObj(rootVariables, tempArr[tempArr.length-1]);\r\n\t\t\t\t\tlet val = (tempArr[0] ? EBContext.utils.searchObj((type === '~' ? rootVariables : variables), tempArr[0].slice(1)) : variables);\r\n\t\t\t\t\tif(debug){\r\n\t\t\t\t\t\tconsole.groupCollapsed('Parsing template function `' + tempArr[tempArr.length-1] + '`');\r\n\t\t\t\t\t\tconsole.debug('Function: ', fn);\r\n\t\t\t\t\t\tconsole.debug('Call parameter: ', val);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif(typeof fn === 'function'){\r\n\t\t\t\t\t\tif(evtName){\r\n\t\t\t\t\t\t\tlet evtRef;\r\n\t\t\t\t\t\t\tdo{\r\n\t\t\t\t\t\t\t\tevtRef = 'evtRef_' + Math.floor(Math.random() * 1000000).toString();\r\n\t\t\t\t\t\t\t} while(evtRefs.hasOwnProperty(evtRef));\r\n\t\t\t\t\t\t\tevtRefs[evtRef] = {\r\n\t\t\t\t\t\t\t\teventName: evtName,\r\n\t\t\t\t\t\t\t\tcallback: fn,\r\n\t\t\t\t\t\t\t\tvariables: variables,\r\n\t\t\t\t\t\t\t\tparams: params\r\n\t\t\t\t\t\t\t};\r\n\t\t\t\t\t\t\tif(debug){\r\n\t\t\t\t\t\t\t\tconsole.debug('Inserting event reference: ', evtRef);\r\n\t\t\t\t\t\t\t\tconsole.groupEnd();\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\treturn ' ' + evtRef + ' ';\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tlet fnRes = fn(val, params, rootVariables);\r\n\t\t\t\t\t\tif(debug){\r\n\t\t\t\t\t\t\tconsole.debug('Function call result: ', fnRes);\r\n\t\t\t\t\t\t\tconsole.groupEnd();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn parseTemplate(fnRes, templates, variables, storeCache, params);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif(debug){\r\n\t\t\t\t\t\tconsole.error('Reference is not a function!', fn);\r\n\t\t\t\t\t\tconsole.groupEnd();\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tif(templateName === '$'){\r\n\t\t\t\t\tif(debug) console.debug('Return:', variables);\r\n\t\t\t\t\treturn variables;\r\n\t\t\t\t}\r\n\t\t\t\tlet tmpVars = EBContext.utils.searchObj((type === '~' ? rootVariables : variables), templateName.slice(1)) || '';\r\n\t\t\t\tif(debug) console.debug('Return:', tmpVars);\r\n\t\t\t\treturn tmpVars;\r\n\t\t\t}\r\n\t\t\tif (!templates || type === '\"') return templateName.slice(1, -1);\r\n\t\t\tlet respStr = '';\r\n\t\t\tlet tempVars;\r\n\t\t\tif (Array.isArray(variables)) {\r\n\t\t\t\tstoreCache = false;\r\n\t\t\t\ttempVars = variables;\r\n\t\t\t}\r\n\t\t\telse if(valArr && valArr.length > 0){\r\n\t\t\t\tstoreCache = false;\r\n\t\t\t\ttempVars = valArr;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\ttempVars = [variables];\r\n\t\t\t}\r\n\t\t\tif(arrFrom !== undefined || arrTo !== undefined){\r\n\t\t\t\ttempVars = tempVars.slice(arrFrom, arrTo);\r\n\t\t\t}\r\n\t\t\tif(Array.isArray(parentVariables) && parentParams) parentVariables = parentVariables[params.i];\r\n\t\t\tif(variables===parentVariables && parentParams) parentVariables = parentParams.parentVariables;\r\n\t\t\tparams = {n: tempVars.length};\r\n\t\t\tfor (i = 0; i < tempVars.length; i++) {\r\n\t\t\t\tparams.i = i;\r\n\t\t\t\tparams.parentParams = parentParams;\r\n\t\t\t\tparams.parentVariables = parentVariables;\r\n\t\t\t\tif (templatesCache.hasOwnProperty(templateName)) {\r\n\t\t\t\t\trespStr += templatesCache[templateName];\r\n\t\t\t\t} else {\r\n\t\t\t\t\tlet template = EBContext.utils.searchObj(templates, templateName.slice(1).split('.'));\r\n\t\t\t\t\tif (template) {\r\n\t\t\t\t\t\tif (typeof template === 'string') {\t\t\t\t\t\t\t\t\t\t\t// Libovoln� string (nap�. nep�rov� tag)\r\n\t\t\t\t\t\t\trespStr += parseTemplate(template, templates, tempVars[i], null, params);\r\n\t\t\t\t\t\t} else if (type === '#' && Array.isArray(template) && template.length > 0) { // Otev�rac� p�rov� tag\r\n\t\t\t\t\t\t\trespStr += parseTemplate(template[0], templates, tempVars[i], null, params);\r\n\t\t\t\t\t\t} else if (type === '/' && Array.isArray(template) && template.length > 1) { // Zav�rac� p�rov� tag\r\n\t\t\t\t\t\t\trespStr += parseTemplate(template[1], templates, tempVars[i], null, params);\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\trespStr += template.toString();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tconsole.warn('%c@template: Template \\'' + templateName + '\\' not found!', EBContext.options.consoleStyles.warnMsg);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif (storeCache) {\r\n\t\t\t\ttemplatesCache[templateName] = respStr;\r\n\t\t\t\tif(debug) console.debug('Storing template `' + templateName + '` in cache: ', templatesCache);\r\n\t\t\t}\r\n\t\t\treturn respStr;\r\n\t\t} else {\r\n\t\t\tif(debug) console.log('Returning template `' + templateName + '` from cache: ', templatesCache);\r\n\t\t}\r\n\t\treturn parseTemplate(templatesCache[templateName], templates, variables, storeCache);\r\n\t};\r\n\r\n\tvar parseTemplate = function (templateStr, templates, variables, storeCache, params) {\r\n\t\tif(typeof templateStr !== 'string') return templateStr;\r\n\t\tif(templateStr.indexOf('') === 0 && EBContext.options.serviceMode){\r\n\t\t\tdebug = true;\r\n\t\t\ttemplateStr = templateStr.substr(13);\r\n\t\t}\r\n\t\tlet references = templateStr.match(/(?:<\\!\\-\\-[\\#\\/\\$~@!])((?!\\-\\-\\>).)*(\\-\\-\\>)/g);\r\n\t\t// let references = templateStr.match(/(?:<\\!\\-\\-[\\#\\/\\$\\?\\:\\~])((?!\\-\\-\\>).)*(\\-\\-\\>)/g);\r\n\t\tif(debug) console.groupCollapsed('Parsing `' + templateStr + '`');\r\n\t\tlet debug2 = debug;\r\n\t\tif (references) {\r\n\t\t\tfor (let i = 0; i < references.length; i++) {\r\n\t\t\t\tlet reference = references[i].replace('', '');\r\n\t\t\t\tif(reference.substr(-1) === '!'){\r\n\t\t\t\t\treference = reference.slice(0,-1);\r\n\t\t\t\t}\r\n\t\t\t\tlet ari = activeReferences[reference];\r\n\t\t\t\tif(debug) console.groupCollapsed('Processing reference `' + reference + '`');\r\n\t\t\t\tlet debug2 = debug;\r\n\t\t\t\tif (ari && ari > 100) {\r\n\t\t\t\t\tconsole.error('%c@template: Cyclic definition of \\'' + reference + '\\' exceeding 100 recursions! Recursion terminated.', EBContext.options.consoleStyles.errorMsg);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tactiveReferences[reference] = activeReferences[reference] || 0;\r\n\t\t\t\t\tactiveReferences[reference]++;\r\n\t\t\t\t\ttemplateStr = templateStr.replace(references[i], findTemplate(reference, templates, variables, storeCache, params));\r\n\t\t\t\t\tactiveReferences[reference]--;\r\n\t\t\t\t}\r\n\t\t\t\tif(debug2) console.groupEnd();\r\n\t\t\t}\r\n\t\t}\r\n\t\tif(debug){\r\n\t\t\t//console.debug('templates: ', templates);\r\n\t\t\tconsole.debug('variables: ', variables);\r\n\t\t\tif(params) console.debug('params: ', params);\r\n\t\t\tconsole.debug('Return: ', templateStr);\r\n\t\t\tconsole.groupEnd();\r\n\t\t} else if(debug2) console.groupEnd();\r\n\t\treturn templateStr;\r\n\t};\r\n\tif(debug){\r\n\t\tconsole.group('DEBUG TEMPLATE: ' + templateStr);\r\n\t\tconsole.debug('templates: ', templates);\r\n\t\tconsole.debug('variables: ', variables);\r\n\t}\r\n\tlet ret;\r\n\tif(plaintext){\r\n\t\tret = parseTemplate(templateStr, templates, variables, true);\r\n\t} else {\r\n\t\tret = EBContext.utils.createDOM(parseTemplate(templateStr, templates, variables, true));\r\n\t\tfor(ref in evtRefs){\r\n\t\t\tlet refObj = evtRefs[ref];\r\n\t\t\t[...ret].forEach(retEl=>{\r\n\t\t\t\tlet cb = el=>{\r\n\t\t\t\t\tel.addEventListener(refObj.eventName, e=>refObj.callback(e,el,refObj.variables,refObj.params));\r\n\t\t\t\t\tel.removeAttribute(ref);\r\n\t\t\t\t\tdelete evtRefs[ref];\r\n\t\t\t\t};\r\n\t\t\t\tif(retEl.matches('[' + ref + ']')) cb(retEl);\r\n\t\t\t\t[...retEl.querySelectorAll('[' + ref + ']')].forEach(cb);\t\t\t\t\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\tif(debug) console.groupEnd();\r\n\treturn ret;\r\n};\r\n\r\n/**\r\n * Function to parse template string into collection of HTML nodes\r\n * @param {string} templateStr String of HTML code to convert\r\n * @returns {NodeList} List of nodes parset from input string `templateStr`\r\n */\r\nEBContext.utils.createDOM = function (templateStr) {\r\n\tvar wrapEl;\r\n\tvar leadingTag = templateStr.match(/<(?!\\!--)[^>]*>/);\r\n\tvar leadingTagName = (leadingTag ? leadingTag.toString().match(/[a-zA-Z0-9]+/).toString().toLowerCase() : 'div');\r\n\tswitch (leadingTagName) {\r\n\t\tcase 'tr':\r\n\t\tcase 'caption':\r\n\t\tcase 'thead':\r\n\t\tcase 'tbody':\r\n\t\tcase 'tfoot':\r\n\t\tcase 'colgroup':\r\n\t\t\twrapEl = 'table';\r\n\t\t\tbreak;\r\n\t\tcase 'td':\r\n\t\tcase 'th':\r\n\t\t\twrapEl = 'tr';\r\n\t\t\tbreak;\r\n\t\tcase 'optgroup':\r\n\t\tcase 'option':\r\n\t\t\twrapEl = 'select';\r\n\t\t\tbreak;\r\n\t\tcase 'dt':\r\n\t\tcase 'dd':\r\n\t\t\twrapEl = 'dl';\r\n\t\t\tbreak;\r\n\t\tcase 'rp':\r\n\t\tcase 'rt':\r\n\t\t\twrapEl = 'ruby';\r\n\t\t\tbreak;\r\n\t\tcase 'source':\r\n\t\tcase 'track':\r\n\t\t\twrapEl = 'video';\r\n\t\t\tbreak;\r\n\t\tcase 'area':\r\n\t\t\twrapEl = 'map';\r\n\t\t\tbreak;\r\n\t\tcase 'summary':\r\n\t\t\twrapEl = 'detail';\r\n\t\t\tbreak;\r\n\t\tcase 'col':\r\n\t\t\twrapEl = 'colgroup';\r\n\t\t\tbreak;\r\n\t\tcase 'figcaption':\r\n\t\t\twrapEl = 'figure';\r\n\t\t\tbreak;\r\n\t\tcase 'legend':\r\n\t\t\twrapEl = 'fieldset';\r\n\t\t\tbreak;\r\n\t\tcase 'param':\r\n\t\t\twrapEl = 'object';\r\n\t\t\tbreak;\r\n\t\tdefault:\r\n\t\t\twrapEl = 'div';\r\n\t\t\tbreak;\r\n\t}\r\n\tvar wrapElObj = document.createElement(wrapEl);\r\n\twrapElObj.innerHTML = templateStr;\r\n\treturn wrapElObj.childNodes;\r\n};\r\nEBContext.utils.xmlHttp = function (params) {\r\n\tparams = EBContext.utils.extendObj(false, {\r\n\t\turl: window.location.href,\r\n\t\tmethod: 'GET',\r\n\t\tdata: null,\r\n\t\tctype: null,\r\n\t\tcharset: null,\r\n\t\theaders: null,\r\n\t\tcallback: null,\r\n\t\tasyn: true,\r\n\t\tresponseType: '',\r\n\t\ttimeout: 300000,\r\n\t\tuser: null,\r\n\t\tpassword: null\r\n\t}, params);\r\n\r\n\tif (!window.XMLHttpRequest) { // If browser doesn't support XMLHttpRequest then throw error msg and exit\r\n\t\talert(EBContext.resource('USR_browserWithoutXMLHTTP'));\r\n\t\treturn false;\r\n\t}\r\n\tlet expectedURL = window.location.origin + params.url;\r\n\tlet xhr = new XMLHttpRequest();\r\n\txhr.open(params.method, params.url, params.asyn, params.user, params.password);\r\n\r\n\tif (params.data && ['POST', 'PUT', 'PATCH'].indexOf(params.method) > -1) { // Theese methods have request body, therefore needs to have set content-type\r\n\t\tparams.ctype = params.ctype || 'application/x-www-form-urlencoded'; // If the content-type is not set, fallback to default FORM content type\r\n\t}\r\n\tif (params.ctype && !(params.data instanceof FormData)) { // If the content-type is set (method DELETE may or may not have body), set it to XMLHttpRequest\r\n\t\txhr.setRequestHeader(\"Content-type\", params.ctype + (params.charset ? '; charset=' + params.charset : '') + (params.boundary ? '; boundary=' + params.boundary : ''));\r\n\t}\r\n\tif (params.headers && typeof params.headers === 'object') { // If there are any additional headers, set them to XMLHttpRequest\r\n\t\tfor (var key in params.headers) {\r\n\t\t\txhr.setRequestHeader(key, params.headers[key]);\r\n\t\t}\r\n\t}\r\n\r\n\t// If specific response type is required (other than '', which is same as 'text', which is default), then it is passed to XMLHttpRequest\r\n\tif (params.responseType) {\r\n\t\txhr.responseType = params.responseType;\r\n\t}\r\n\r\n\t// If multipoint callback object is passed, set it to callbackObj, and assign callback passed afterEval function\r\n\tlet callback = params.callback;\r\n\tlet callbackObj = {};\r\n\tif (callback && typeof callback === 'object') {\r\n\t\tcallbackObj = callback;\r\n\t\tcallback = null;\r\n\t\tif (callbackObj.ok && typeof callbackObj.ok === 'function') callback = callbackObj.ok;\r\n\t}\r\n\t// If timeout is set, (has not been unset) and timeout\r\n\txhr.timeout = params.timeout;\r\n\txhr.addEventListener('timeout', function () {\r\n\t\tif (callbackObj.timeout && typeof callbackObj.timeout === 'function') callbackObj.timeout(xhr.response, xhr.status, params);\r\n\t\telse if (callbackObj.err && typeof callbackObj.err === 'function') callbackObj.err(xhr.response, xhr.status);\r\n\t\telse if (callback && typeof callback === 'function') callback(xhr.response, xhr.status);\r\n\t});\r\n\r\n\txhr.onreadystatechange = function () {\r\n\t\tif (xhr.responseURL && xhr.responseURL !== expectedURL){ // XHR has been redirected\r\n\t\t\tconsole.debug('xhr has been redirected!');\r\n\t\t\tconsole.debug('xhr request url: ', expectedURL);\r\n\t\t\tconsole.debug('xhr response url: ', xhr.responseURL);\r\n\t\t\texpectedURL = xhr.responseURL;\r\n\t\t\tif(callbackObj.hasOwnProperty('redirect') && typeof callbackObj.redirect === 'function') callbackObj.redirect(expectedURL, xhr);\r\n\t\t}\r\n\t\tif (xhr.status > 399 && xhr.readyState == 4) { // HTTP status codes starting with 400 and above are all error codes\r\n\t\t\t// if there is designated error callback, call it, else call standard callback, with err. status code\r\n\t\t\tif (callbackObj.hasOwnProperty('err') && typeof callbackObj.err === 'function') {\r\n\t\t\t\tcallbackObj.err(xhr.response, xhr.status);\r\n\t\t\t} else if (callback && typeof callback === 'function') {\r\n\t\t\t\tcallback(xhr.response, xhr.status);\r\n\t\t\t}\r\n\t\t} \r\n\t\t/* \r\n\t\t * Kdy� dojde k p�esm�rov�n� s k�dem 302, tak se z POST requestu zahazuj� data. Takov� request by nem�l nic ud�lat, a n�sledn� by se m�l zkusit s POST daty poslat znovu\r\n\t\t * A� se u POST request� za�ne m�sto 302 spr�vn� vracet 307, tak bude pot�eba toto p�epsat nebo zak�zat, aby se ten request neprov�d�l dvakr�t!\r\n\t\t */\r\n\t\tif(xhr.status === 307 && xhr.readyState == 4 && params.data && !params.repeated){\r\n\t\t\tparams.repeated = true;\r\n\t\t\treturn EBContext.utils.xmlHttp(params);\r\n\t\t}\r\n\t\telse if(xhr.readyState === 4){ // 4 - DONE - That's all, folks!\r\n\t\t\tif (xhr.status === 0 && callbackObj.hasOwnProperty('err') && typeof callbackObj.err === 'function') {\r\n\t\t\t\t// status 0 - ERR, readyState=4 - final state\r\n\t\t\t\tcallbackObj.err(xhr.response, xhr.status);\r\n\t\t\t} else if (callback && typeof callback === 'function') {\r\n\t\t\t\t// since there is nothing else, call callback function\r\n\t\t\t\tcallback(xhr.response, xhr.status);\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\tvar postInterface = EBContext.utils.getObj('myWAC.interface.setPostData');\r\n\tif (!EBContext.options.ignoreInterface && params.data && postInterface) {\r\n\t\tpostInterface(params.data.replace(/\\+/g, '%2B'), undefined, undefined, undefined, function () {\r\n\t\t\txhr.send(null);\r\n\t\t});\r\n\t} else {\r\n\t\txhr.send(params.data);\r\n\t}\r\n};\r\nEBContext.utils.handleDownload = function(url, options){\r\n\tlet url2 = url;\r\n\tif(url instanceof HTMLElement) url2 = url.href;\r\n\tif(typeof(url2) !== 'string') return true; // neplatn� url - nechat event probublat - m��e se zpracov�vat dal��m callbackem\r\n\turl2 = new URL(url2, window.location.href); // pokud se vol� handleDownload, stahuje se v�dy ze stejn� baseURL\r\n\tif(url2.searchParams.get('noattach')==='1'){\r\n\t\tif(url instanceof HTMLAnchorElement) return true; // volan� na onclick odkazu, kde se jako URL p�ed� \"this\" (element odkazu) \r\n\t\twindow.open(url, '_blank'); // fallback - kdy� se jako URL p�ed� string s noattach=1\r\n\t}\r\n\telse {\r\n\t\tEBContext.utils.download(url2, options);\r\n\t}\r\n\treturn false;\r\n};\r\nEBContext.utils.download = function(url, options){\r\n\tEBContext.await('EBContext_AjaxNavigation', ()=>{\r\n\t\tvar loader = EBContext.ajaxNav.options.loader;\r\n\t\toptions = EBContext.utils.extendObj(false, {\r\n\t\t\tcallbackStart: ()=>{ console.log('download start'); loader.fnLoaderStart(loader) },\r\n\t\t\tcallbackFinish: ()=>{ console.log('download finish'); loader.fnLoaderEnd(loader) },\r\n\t\t\tcallbackError: err=>{\r\n\t\t\t\tconsole.error('download error', err || ''); loader.fnLoaderEnd(loader);\r\n\t\t\t\tEBContext.alert(EBContext.resource('CHYBA_PRI_STAHOVANI'),null, { heading:EBContext.resource('CHYBA')});\r\n\t\t\t}\r\n\t\t}, options);\r\n\t\t\r\n\t\t\r\n\t\tif(url){\r\n\t\t\toptions.callbackStart();\r\n\t\t\tif(typeof window.fetch === 'function'){\r\n\t\t\t\tlet navStr = navigator.userAgent.toLowerCase();\r\n\t\t\t\t/* Zak�z�no kv�li blokov�n� popup oken */\r\n\t\t\t\tif(false && navStr.indexOf('firefox') > -1 && (navStr.indexOf('windows') > -1 || navStr.indexOf('macintosh') > -1)){\r\n\t\t\t\t\turl = EBContext.utils.extendURL(url, {noattach:1});\r\n\t\t\t\t\tfetch(url)\r\n\t\t\t\t\t\t.then(resp=>resp.blob())\r\n\t\t\t\t\t\t.then(blob=>{\r\n\t\t\t\t\t\t\tconst url = window.URL.createObjectURL(blob);\r\n\t\t\t\t\t\t\twindow.open(url, \"_blank\");\r\n\t\t\t\t\t\t\twindow.URL.revokeObjectURL(url);\r\n\t\t\t\t\t\t\toptions.callbackFinish();\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t\t.catch(options.callbackError);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tvar filename = '';\r\n\t\t\t\t\tfetch(url)\r\n\t\t\t\t\t\t.then(resp => {\r\n\t\t\t\t\t\t\tconst cd = resp.headers.get('Content-Disposition');\r\n\t\t\t\t\t\t\tif (cd) {\r\n\t\t\t\t\t\t\t\tlet re = /(?:filename=\\\"?)([^\\\";]*)/g;\r\n\t\t\t\t\t\t\t\tlet res = re.exec(cd);\r\n\t\t\t\t\t\t\t\tif (!res) {\r\n\t\t\t\t\t\t\t\t\tre = /(?:filename\\*=UTF-8''\\\"?)([^\\\";]*)/g;\r\n\t\t\t\t\t\t\t\t\tres = re.exec(cd);\r\n\t\t\t\t\t\t\t\t\tif (res) {\r\n\t\t\t\t\t\t\t\t\t\tfilename = decodeURIComponent(res[1]);\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t\t\tfilename = res[1];\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t\tfilename = url.split('/').slice(-1).join('');\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\treturn resp.blob();\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t\t.then(blob => {\r\n\t\t\t\t\t\t\tif (!filename) {\r\n\t\t\t\t\t\t\t\tblob.text().then(text=>{ \r\n\t\t\t\t\t\t\t\t\toptions.callbackError(text);\r\n\t\t\t\t\t\t\t\t\toptions.callbackFinish();\r\n\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tconst url = window.URL.createObjectURL(blob);\r\n\t\t\t\t\t\t\tlet a = document.createElement('a');\r\n\t\t\t\t\t\t\ta.style.display = 'none';\r\n\t\t\t\t\t\t\ta.href = url;\r\n\t\t\t\t\t\t\ta.download = filename;\r\n\t\t\t\t\t\t\ta.target='_blank';\r\n\t\t\t\t\t\t\tdocument.body.appendChild(a);\r\n\t\t\t\t\t\t\ta.click();\r\n\t\t\t\t\t\t\twindow.URL.revokeObjectURL(url);\r\n\t\t\t\t\t\t\ta.parentElement.removeChild(a);\r\n\t\t\t\t\t\t\toptions.callbackFinish();\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t\t.catch(options.callbackError);\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tvar checkInterval;\r\n\t\t\t\tvar checkState=(ifEl,e)=>{\r\n\t\t\t\t\tif(e) console.log(e);\r\n\t\t\t\t\tvar ifDoc = ifEl.contentDocument || (ifEl.contentWindow ? ifEl.contentWindow.document : null);\r\n\t\t\t\t\tif(ifDoc) console.log(ifDoc.readyState);\r\n\t\t\t\t\tif (ifDoc && ifDoc.readyState == 'complete') {\r\n\t\t\t\t\t\tclearInterval(checkInterval);\r\n\t\t\t\t options.callbackFinish();\r\n\t\t\t\t ifEl.parentElement.removeChild(ifEl);\r\n\t\t\t\t }\r\n\t\t\t\t};\r\n\t\t\t\tvar ifEl = document.getElementById('ifrmDownload');\r\n\t\t\t\tif(ifEl) ifEl.parentElement.removeChild(ifEl);\r\n\t\t\t\r\n\t\t\t\tifEl = document.createElement('iframe');\r\n\t\t\t\tifEl.id = 'ifrmDownload';\r\n\t\t\t\tifEl.style.visibility = 'hidden';\r\n\t\t\t\tifEl.style.height='1px';\r\n\t\t\t\tifEl.style.width='1px';\r\n\t\t\t\tifEl.style.marginLeft='-1px';\r\n\t\t\t\tifEl.onload = e=>checkState(ifEl,e);\r\n\t\t\t\tifEl.onerror = e=>{clearInterval(checkInterval); options.callbackError(); ifEl.parentElement.removeChild(ifEl)};\r\n\t\t\t\tcheckInterval = setInterval(()=>checkState(ifEl), 100);\r\n\t\t\t\tifEl.src = url;\r\n\t\t\t\tdocument.body.appendChild(ifEl);\r\n\t\t\t}\r\n\t\t}\r\n\t});\r\n};\r\nEBContext.utils.parseMoney = function(money){\r\n\tif(typeof money !== 'number'){\r\n\t\tif(typeof money === 'string'){\r\n\t\t\tmoney = money.replace(/([^0-9\\,\\.])/g, '').replace(/\\,/g, '.');\r\n\t\t}\r\n\t\treturn parseFloat(money);\r\n\t}\r\n\treturn money;\r\n};\r\nEBContext.utils.formatMoney = function(money, decimals){\r\n\tdecimals = decimals || (decimals === 0 ? 0 : 2);\r\n\ttry {\r\n\t\tmoney = EBContext.utils.parseMoney(money);\r\n\t\tlet moneyArr = money.toFixed(decimals).split('.');\r\n\t\treturn (moneyArr[0].replace(/\\B(?=(\\d{3})+(?!\\d))/g, \" \") + (moneyArr.length > 1 ? '.' + moneyArr[1] : '')).replace(/\\./g, ',');\r\n\t} catch(e){\r\n\t\tconsole.error(e);\r\n\t\treturn NaN;\r\n\t}\r\n};\r\nEBContext.utils.replaceMask = function(mask, mapObj, reduceMapObj){\r\n\tmask = mask || '';\r\n\tlet maskRegExp = new RegExp('{.*?}','gi');\r\n\tlet resp = [...mask.matchAll(maskRegExp)];\r\n\tfor(let i=0;i!!ent[1]));\r\n\tif(Object.keys(params).length > 0) linkURL += '?' + EBContext.utils.paramsObjToStr(params);\r\n\treturn linkURL;\r\n};\r\n\r\nEBContext.utils.grid = EBContext.utils.grid || {};\r\nEBContext.utils.grid.getBreakpoints = function(){\r\n\tlet bpMap = EBContext.config.widthBreakpoints;\r\n\tif(!bpMap){\r\n\t\tbpMap = Object.fromEntries(['xs','sm','md','lg','xl','xxl'].map(a=>[a, parseFloat(getComputedStyle(document.documentElement).getPropertyValue('--bs-breakpoint-'+a).replace(/px/g, ''))]));\r\n\t}\r\n\tEBContext.config.widthBreakpoints = bpMap;\r\n\treturn EBContext.config.widthBreakpoints;\r\n};\r\nEBContext.utils.grid.getBreakpoint = function(){\r\n\tlet bpMap = EBContext.utils.grid.getBreakpoints();\r\n\treturn Object.entries(bpMap).filter(a=>a[1]<=window.innerWidth).sort((a,b)=>(a[1]b[1]?-1:0)))[0];\r\n};\r\n\r\n/**\r\n * Namespace for text helper functions\r\n * @namespace EBContext.utils.text\r\n */\r\nEBContext.utils.text = EBContext.utils.text || {};\r\n\r\n/**\r\n * Function for getting sensible heading from/for the source text.\r\n * @param {String} text Source text to make heading of\r\n * @param {Object} [options] options object for future use\r\n */\r\nEBContext.utils.text.getHeading = function (text, options) {\r\n\toptions = EBContext.utils.extendObj({\r\n\t\tmaxLength: 0,\r\n\t\tellipsis: ' ...',\r\n\t\tbreakWord: false\r\n\t}, options);\r\n\tvar sentences = text.match(/(^|\\s).+?(?=\\.(\\s|$))/g);\r\n\tif (!sentences) return text;\r\n\tvar heading = sentences[0];\r\n\tif (options.maxLength && heading.length > options.maxLength) {\r\n\t\tif (!options.breakWord && heading.substring(options.maxLength - options.ellipsis.length - 1, 3).match(/\\s|\\./g)) {\r\n\t\t\theading = heading.substring(0, options.maxLength - options.ellipsis.length);\r\n\t\t\theading = heading.match(/.*(?=\\s)/g)[0] || heading;\r\n\t\t}\r\n\t\theading = heading + options.ellipsis;\r\n\t}\r\n\treturn heading;\r\n};\r\n\r\n/**\r\n * Namespace for HTML DOM Element's helper functions\r\n * @namespace EBContext.utils.element\r\n */\r\nEBContext.utils.element = EBContext.utils.element || {};\r\n\r\n/**\r\n * @param {HTMLElement} el HTML Element in a visible DOM tree\r\n * @returns {boolean} `true` if passed HTMLElement is visible within DOM tree, or `false` otherwise\r\n */\r\nEBContext.utils.element.isVisible = function (el) {\r\n\tif (!document.body.contains(el)) return false;\r\n\tvar visible = true;\r\n\twhile (visible && el) {\r\n\t\tvar elStyle = window.getComputedStyle(el);\r\n\t\tvisible = (elStyle.visibility !== 'hidden' && elStyle.display !== 'none' && el.getAttribute('type') !== 'hidden' && elStyle.opacity !== '0');\r\n\t\tel = el.parentElement;\r\n\t}\r\n\treturn visible;\r\n};\r\n\r\nEBContext.utils.element.isTruncated = function (el){\r\n\tif(getComputedStyle(el)['-webkit-line-clamp'] !== 'none') return (el.offsetHeight < el.scrollHeight);\r\n\treturn (el.offsetWidth < el.scrollWidth);\r\n};\r\n\r\n/**\r\n * @param {HTMLElement} el HTML Element to test if is enabled in DOM tree up to scope element\r\n * @param {HTMLElement} scope HTML Element to limit scope of DOM crawling\r\n * @returns {boolean} `true` if passed HTMLElement is enabled within given scope, or `false` otherwise\r\n */\r\nEBContext.utils.element.isEnabled = function (el, scope){\r\n\tvar isDisabled = el=>(el.disabled || el.hasAttribute('disabled'));\r\n\tif(isDisabled(el)) return false;\r\n\tscope = scope || el.form || document.body;\r\n\tlet testEl = el;\r\n\twhile (testEl !== scope && (testEl.nodeName !== 'FIELDSET' || !isDisabled(testEl))) {\r\n\t\ttestEl = testEl.parentElement;\r\n\t}\r\n\treturn (testEl === scope);\r\n}\r\n\r\n/**\r\n * @param {HTMLElement} el HTML Element to create selector from\r\n * @returns {string} String composed of key element attributes to identify it in DOM tree\r\n */\r\nEBContext.utils.element.getSelector = function (el) {\r\n\tvar selector = el.nodeName.toLowerCase();\r\n\tselector += (el.id ? '#' + el.id : '');\r\n\tselector += (!el.id && el.getAttribute('name') ? '[name=\"' + el.id + '\"]' : '');\r\n\tselector += (!el.id && el.className.trim() ? '.' + el.className.trim().replace(/\\s+/g, '.') : '');\r\n\tselector += (!el.id && el.getAttribute('href') ? '[href=\"' + el.getAttribute('href') + '\"]' : (!el.id && el.getAttribute('action') ? '[action=\"' + el.getAttribute('action') + '\"]' : ''));\r\n\treturn selector;\r\n};\r\n\r\n/**\r\n * @param {HTMLElement} el HTML Element to crawl for focusable children\r\n * @returns {string} String composed of key element attributes to identify it in DOM tree\r\n */\r\nEBContext.utils.element.getFocusableChildren = function(el) {\r\n\tif(!EBContext.utils.element.isEnabled(el)) return false;\r\n\treturn [...el.querySelectorAll('a, button, input, textarea, select, details,[tabindex]')].filter(el2=>(el2.tabIndex > -1 && EBContext.utils.element.isEnabled(el2, el)));\r\n}\r\n\r\n/**\r\n * Overrides ajaxNav after it has been already initialized\r\n */\r\nEBContext.utils.element.setOverride = function(el, eventName, callback, append){\r\n\tvar eventHandlerProperty = eventName;\r\n\twhile(typeof el[eventHandlerProperty] === 'function'){\r\n\t\teventHandlerProperty = '_' + eventHandlerProperty;\r\n\t}\r\n\tif(eventHandlerProperty === eventName){\r\n\t\tel[eventName] = callback;\r\n\t} else{\r\n\t\tel[eventHandlerProperty] = el[eventName];\r\n\t\tel[eventName] = function(event){\r\n\t\t\tif(append){\r\n\t\t\t\tvar resp = el[eventHandlerProperty](event);\r\n\t\t\t\tif(resp === undefined) resp = true;\r\n\t\t\t\treturn resp && callback(event);\t\r\n\t\t\t}\r\n\t\t\tvar resp = callback(event);\r\n\t\t\tif(resp === undefined) resp = true;\r\n\t\t\treturn resp && el[eventHandlerProperty](event);\r\n\t\t};\r\n\t}\r\n};\r\n\r\nEBContext.utils.element.getScope = function(scope){\r\n\tlet retScope = document;\r\n\tif (typeof scope === 'string') {\r\n\t\tretScope = [...document.querySelectorAll(scope)];\r\n\t} else if (scope instanceof NodeList || scope instanceof HTMLCollection) {\r\n\t\tretScope = [...scope];\r\n\t} else if (scope instanceof Element || scope instanceof HTMLDocument) {\r\n\t\tretScope = [scope];\r\n\t} else if ((window.jQuery && scope instanceof jQuery) || Array.isArray(scope)) {\r\n\t\tretScope = [];\r\n\t\tfor (let i = 0; i < scope.length; i++) {\r\n\t\t\tif (scope[i] instanceof Element || scope[i] instanceof HTMLDocument) {\r\n\t\t\t\tretScope.push(scope[i]);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\treturn retScope;\r\n};\r\n\r\nEBContext.utils.element.getElement = function(ref, scope, all){\r\n\tif(!ref) return null;\r\n\tif(typeof ref === 'string'){\r\n\t\tlet ref2 = ref;\r\n\t\tscope = scope || document;\r\n\t\tlet els = scope.querySelectorAll(ref2);\r\n\t\tif(els.length === 1 || (els.length>1 && !all)) return els[0];\r\n\t\tif(els.length > 1) return [...els];\r\n\t\tif(scope !== document && scope.matches(ref2)) return scope;\r\n\t\tif(ref[0] !== '#') return EBContext.utils.element.getElement('#'+ref, scope, all); // pokud by n�kdo p�edal jako ref ID bez #\r\n\t}\r\n\tif(ref instanceof HTMLElement || ref instanceof HTMLDocument)\r\n\t\tif(!scope || scope.contains(ref) || scope===ref)\r\n\t\t\treturn ref;\r\n\tconsole.warn('%cElement not found within given scope! - Element: %s, Scope: %o', EBContext.options.consoleStyles.warnMsg, ref, scope);\t\t\t\r\n\treturn null;\r\n};\r\n\r\nEBContext.utils.element.uniqueId = function(el){\r\n\tif(el && !(el instanceof HTMLElement)) el = null;\r\n\tif(el && el.id && document.getElementById(el.id).length <= 1) return el.id;\r\n\tlet id, prefix='id';\r\n\tif(el) prefix = el.tagName.toLowerCase();\r\n\tdo {id = prefix + '_' + ('00000' + Math.floor(Math.random() * 1000).toString()).slice(-6)} while(document.getElementById(id));\r\n\tif(el) el.id = id;\r\n\treturn id;\r\n}\r\n\r\n/**\r\n * Namespace for arrays helper functions\r\n * @namespace EBContext.utils.array\r\n */\r\nEBContext.utils.array = EBContext.utils.array || {};\r\n\r\n/**\r\n * @param {Array} arr1 First array to merge\r\n * @param {Array} arr2 Second array to merge\r\n * @returns {Array} Returns new Array with all source arrays merged into it without duplicates\r\n */\r\nEBContext.utils.array.merge = function () {\r\n\tvar i, j;\r\n\tvar retArr = [];\r\n\tfor (i = 0; i < arguments.length; i++) {\r\n\t\tif (!Array.isArray(arguments[i])) console.error('Argument ' + typeof arguments[i] + ' is not an Array!');\r\n\t\tfor (j = 0; j < arguments[i].length; j++) {\r\n\t\t\tif (retArr.includes(arguments[i][j])) continue;\r\n\t\t\tretArr.push(arguments[i][j]);\r\n\t\t}\r\n\t}\r\n\treturn retArr;\r\n};\r\n\r\n/**\r\n * Function to sort array of plain JS objects by values of objects common property\r\n * @param {Object[]} arr Array of plain JS objects\r\n * @param {string} key Name of object's property to sort objects by\r\n * @param {boolean} [desc=false] Switch of sort direction (ascending/descending)\r\n * @returns {Object[]} Returns array of objects sorted by chosen property's values\r\n */\r\nEBContext.utils.array.sortObjects = function (arr, key, desc, skipAO) {\r\n\tif (desc === undefined) desc = false;\r\n\tif (skipAO === undefined) skipAO = false;\r\n\treturn arr.sort(function (a, b) {\r\n\t\tvar x = desc ? b[key] : a[key];\r\n\t\tvar y = desc ? a[key] : b[key];\r\n\t\tif (skipAO) {\r\n\t\t\tx = x.normalize('NFD').replace(/[\\u0300-\\u036f]/g, \"\");\r\n\t\t\ty = y.normalize('NFD').replace(/[\\u0300-\\u036f]/g, \"\");\r\n\t\t}\r\n\t\treturn ((x < y) ? -1 : ((x > y) ? 1 : 0));\r\n\t});\r\n};\r\n//@ALIAS @DEPRICIATED\r\nEBContext.utils.sortObjArray = EBContext.utils.array.sortObjects;\r\n\r\n/**\r\n * @param {Array.} arr\r\n * @param {string|number} key\r\n * @param {*} val\r\n * @returns {Array.}\r\n */\r\nEBContext.utils.array.filterObjects = function (arr, key, val) {\r\n\tvar retArr = [];\r\n\tfor (var i = 0; i < arr.length; i++) {\r\n\t\tif (typeof arr[i] == 'object' && arr[i].hasOwnProperty(key)) {\r\n\t\t\tif ((Array.isArray(arr[i][key]) && arr[i][key].indexOf(val) >= 0) || arr[i][key] === val) {\r\n\t\t\t\tretArr.push(arr[i]);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\treturn retArr;\r\n};\r\n\r\nEBContext.utils.array.findLastIndexOf = function(arr, condFn){\r\n\tlet i;\r\n\tfor(i=arr.length-1;i>-1;i--) if(condFn(arr[i])) return i;\r\n\treturn undefined;\r\n};\r\n\r\nEBContext.utils.array.findLast = function(arr, condFn){\r\n\treturn arr[EBContext.utils.array.findLastIndexOf(arr,condFn)];\r\n};\r\n\r\n/** creating EBContext.currentPage default structure while preserving the already set page OID */\r\nEBContext.currentPage = EBContext.utils.extendObj(true, {OID: null, blocksData: {}, pageData: {}, eventListeners: []}, EBContext.currentPage);\r\n\r\n// DEPRICIATED - Wherewer is used, should be rewritten to use 'EBContext.utils.xmlhttp'!\r\nvar TmyWAC = function () {\r\n\tvar pVersion = '1.0.0';\r\n\tvar self = this;\r\n\r\n\tthis.version = function () {\r\n\t\treturn pVersion;\r\n\t};\r\n\tthis.setSession = function (name, value) {\r\n\t\tconsole.warning('You are using function that is soon to be depreceated! If you see this message, request refactoring \\'myWAC.setSession\\' into \\'EBContext.session.set\\'!');\r\n\t\tvar rnd = new Date().getTime() + Math.random();\r\n\t\tvar response = self.httpPostRequest('/myWAC/System/Lib/Server/httpsession.asp?rnd=' + rnd + '&session=save&sessionName=' + escape(name), 'sessionValue=' + escape(value).replace(/\\+/g, '%2B'), false);\r\n\t\tif (!response) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\t\treturn true;\r\n\t};\r\n\tthis.getSession = function (name) {\r\n\t\tconsole.warning('You are using function that is soon to be depreceated! If you see this message, request refactoring \\'myWAC.getSession\\' into \\'EBContext.session.get\\'!');\r\n\t\tvar rnd = new Date().getTime() + Math.random();\r\n\t\tvar response = self.httpRequest('/myWAC/System/Lib/Server/httpsession.asp?rnd=' + rnd + '&session=get&sessionName=' + escape(name), false);\r\n\t\tif (!response) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\t\treturn response;\r\n\t};\r\n\tthis.httpPostRequest = function (url, data, asyn, ctype, callback, errCallback) {\r\n\t\tconsole.warning('You are using function that is soon to be depreceated! Rewrite any call of \\'myWAC.httpPostRequest\\' to \\'EBContext.utils.xmlHttp\\' - see in-code documentation');\r\n\t\tasyn = true;\r\n\t\tvar xmlHttp;\r\n\t\tif (window.XMLHttpRequest) {\r\n\t\t\txmlHttp = new XMLHttpRequest();\r\n\t\t} else if (window.ActiveXObject) {\r\n\t\t\txmlHttp = new ActiveXObject(\"Microsoft.XMLHTTP\");\r\n\t\t} else {\r\n\t\t\talert(EBContext.resource('USR_browserWithoutXMLHTTP'));\r\n\t\t\treturn;\r\n\t\t}\r\n\t\txmlHttp.open(\"POST\", url, asyn);\r\n\t\tif (ctype == null) {\r\n\t\t\tctype = 'application/x-www-form-urlencoded';\r\n\t\t}\r\n\t\txmlHttp.setRequestHeader(\"Content-type\", ctype);\r\n\t\txmlHttp.addEventListener('readystatechange', function () {\r\n\t\t\tif (xmlHttp.readyState == 4) {\r\n\t\t\t\tif (xmlHttp.status != 200) {\r\n\t\t\t\t\tif (asyn && typeof errCallback == 'function') {\r\n\t\t\t\t\t\terrCallback(xmlHttp.responseText, xmlHttp.status);\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tif (asyn && callback != null) {\r\n\t\t\t\t\t\tcallback(xmlHttp.responseText, asyn);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t} else if (xmlHttp.readyState == 2) {\r\n\t\t\t\tif (xmlHttp.status > 399) {\r\n\t\t\t\t\terrCallback(xmlHttp.responseText, xmlHttp.status);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tvar postInterface = EBContext.utils.getObj('myWAC.interface.setPostData');\r\n\t\tif (!EBContext.options.ignoreInterface && postInterface) {\r\n\t\t\tpostInterface(data.replace(/\\+/g, '%2B'), undefined, undefined, undefined, function () {\r\n\t\t\t\tif (xmlHttp) xmlHttp.send(null);\r\n\t\t\t});\r\n\t\t} else {\r\n\t\t\txmlHttp.send(data.replace(/\\+/g, '%2B'));\r\n\t\t}\r\n\t};\r\n\r\n\tthis.httpRequest = function (url, asyn, callback, xml, object, callbackTimeout, intervalTimeout, errCallback) {\r\n\t\tconsole.warning('You are using function that is soon to be depreceated! Rewrite any call of \\'myWAC.httpRequest\\' to \\'EBContext.utils.xmlHttp\\' - see in-code documentation');\r\n\t\tif (asyn == null) {\r\n\t\t\tasyn = false;\r\n\t\t}\r\n\t\tif (xml == null) {\r\n\t\t\txml = false;\r\n\t\t}\r\n\t\tvar xmlHttp;\r\n\t\tif (window.XMLHttpRequest) {\r\n\t\t\txmlHttp = new XMLHttpRequest();\r\n\t\t} else if (window.ActiveXObject) {\r\n\t\t\txmlHttp = new ActiveXObject(\"Microsoft.XMLHTTP\");\r\n\t\t} else {\r\n\t\t\talert(EBContext.resource('USR_browserWithoutXMLHTTP'));\r\n\t\t\treturn;\r\n\t\t}\r\n\t\txmlHttp.open(\"GET\", url, asyn);\r\n\t\tif (callbackTimeout != null) {\r\n\t\t\tif (intervalTimeout == null) {\r\n\t\t\t\tintervalTimeout = 10000;\r\n\t\t\t}\r\n\t\t\txmlHttp.timeout = intervalTimeout;\r\n\t\t\txmlHttp.addEventListener('timeout', callbackTimeout);\r\n\t\t}\r\n\t\txmlHttp.addEventListener('readystatechange', function () {\r\n\t\t\tvar status;\r\n\t\t\tif (xmlHttp.readyState == 4) {\r\n\t\t\t\ttry {\r\n\t\t\t\t\tstatus = xmlHttp.status;\r\n\t\t\t\t} catch (x) {\r\n\t\t\t\t\tstatus = 500;\r\n\t\t\t\t}\r\n\t\t\t\tif (status > 399) {\r\n\t\t\t\t\terrCallback(xmlHttp.responseText, status);\r\n\t\t\t\t} else if (asyn) {\r\n\t\t\t\t\tcallback((xml ? xmlHttp.responseXML : xmlHttp.responseText), status);\r\n\t\t\t\t}\r\n\t\t\t} else if (false && xmlHttp.readyState == 2) {\r\n\t\t\t\tif (status > 399) {\r\n\t\t\t\t\terrCallback(xmlHttp.responseText, status);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\t\txmlHttp.addEventListener('error', function (e) {\r\n\t\t\terrCallback(xmlHttp.responseText, e.type);\r\n\t\t});\r\n\t\txmlHttp.send();\r\n\t\tif (!asyn) {\r\n\t\t\ttry {\r\n\t\t\t\treturn (xml ? xmlHttp.responseXML : xmlHttp.responseText);\r\n\t\t\t} catch (x) {\r\n\t\t\t\treturn '';\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\treturn this;\r\n};\r\nvar myWAC = new TmyWAC();"]}