{"version":3,"sources":["../../../../dev/j/v3/components/forms-fetch2024.js"],"names":["initAvastForm","callback","getPlaceHolder","el","getAttribute","$","attr","setPlaceHolder","value","removePlaceHolder","replace","each","this","val","data","closest","hide","formSubmitTracking","avastFormSubmitTracking","avastGlobals","detect","browser","isInternetExplorer","phs","document","documentMode","i","length","on","e","k","keyCode","firstInputDiv","querySelector","elm","rect","getBoundingClientRect","viewHeight","Math","max","documentElement","clientHeight","window","innerHeight","bottom","top","classList","contains","focus","console","log","querySelectorAll","forEach","form","AvastForm","hideConditionInputs","type","validate","off","avastForm","isValid","isAjax","hasClass","ajaxSubmit","formDiv","offset","parseInt","scrollTop","animate","input","addHelp","ajaxUpdate","datepicker","dateFormat","changeYear","changeMonth","call","globalErrorSelector","formName","avastFormStartTracking","prototype","trErrorClassName","helpDivSelector","errorSelector","formDivSelector","globalNoErrorSelector","globalErrorClassName","globalNoErrorClassName","ajaxHandlerInput","ajaxErrorInput","globalErrorInput","that","validationError","elem","name","first","get","result","checkControl","removeErrorMessage","addErrorMessage","rules","noError","getElementRules","ruleName","userRule","arg","isCondition","negRule","key","rule","op","match","control","getElementValue","success","validators","msg","checkedRadio","Function","addClass","html","split","pop","append","showGlobalErrorMessage","removeClass","find","remove","filled","email","test","url","regexp","parts","RegExp","pattern","integer","float","range","isArray","parseFloat","minLength","maxLength","equal","undefined","len","elements","ajaxHandler","values","FormData","options","web","domain","location","href","cache","URLSearchParams","dataFilter","trim","dataType","submit","after","fetch","headers","Accept","X-Requested-With","method","body","then","response","json","dataLayer","setTimeout","event","push","trigger","show","processResult","err","isPlainObject","errors","customErrors","replaces","indexOf","text","replaceWith","help","inputLabel","parentElement","setAttribute","selector","checkConditionInput","checkEl","showEl","closestGroup","add","thisEl","_tagUpdate","destEl","prop","toLowerCase","firstEl","empty","elVal","elName","elText","definitions","def","parseJSON","condition","AvastFormAjax","doAjax","id","u","ajaxResponseStorage","ajaxExpirationDelay","_onSuccess","_onError","respOptions","makeKeyFromUrl","isExpired","ajax","encodeURI","writeToStorage","error","readFromStorage","expire","curr","Date","getTime"],"mappings":"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","file":"forms-fetch2024.js","sourcesContent":["/**\n * Avast form JS\n */\n\n\n$(initAvastForm);\n\nfunction initAvastForm( callback ) {\n\t// Set page URL to relevant input for tracking purposes\n\t//$('#AVform [name*=\"url\"]').attr('value', window.location.href);\n\n\t// initial fields hiding according to data attributes\n\t$('form.avast-form input[data-set-hide]').each(function() {\n\t\t$(this).val($(this).data('set-hide')).closest('div.form-group').hide();\n\t});\n\n\tif (typeof formSubmitTracking !== 'undefined') {\n\t\tavastFormSubmitTracking(formSubmitTracking); // Function avastFormSubmitTracking is empty???\n\t}\n\n\t//patch IE placeholders\n\tif (avastGlobals.detect.browser.isInternetExplorer) {\n\t\tfunction getPlaceHolder(el) {\n\t\t\treturn el.getAttribute('placeholder') || $(el).attr('placeholder');\n\t\t}\n\n\t\tfunction setPlaceHolder(el) {\n\t\t\tel.value = getPlaceHolder(el);\n\t\t}\n\n\t\tfunction removePlaceHolder(el) {\n\t\t\tel.value = el.value.replace(getPlaceHolder(el), '');\n\t\t}\n\n\t\tvar phs = $('input[placeholder]');\n\n\t\tif (document.documentMode < 10) {\n\t\t\tphs.each(function (i, el) {\n\t\t\t\tif (el.value.length == 0) {\n\t\t\t\t\tsetPlaceHolder(el);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\tphs.on('click focus blur', function () {\n\t\t\tif (this.value.length == 0) {\n\t\t\t\tsetPlaceHolder(this);\n\t\t\t}\n\t\t});\n\n\t\tphs.on('keydown', function () {\n\t\t\tremovePlaceHolder(this);\n\t\t});\n\n\t\tphs.on('keyup', function (e) {\n\t\t\tvar k = e.keyCode;\n\t\t\tif (this.value.length == 0 && k != 8 && k != 46) {\n\t\t\t\tsetPlaceHolder(this);\n\t\t\t}\n\t\t});\n\t}\n\n\t// focus the first input\n\tfunction checkVisible(elm) {\n\t\tvar rect = elm.getBoundingClientRect();\n\t\tvar viewHeight = Math.max(document.documentElement.clientHeight, window.innerHeight);\n\t\treturn !(rect.bottom < 0 || rect.top - viewHeight >= 0);\n\t}\n\tvar firstInputDiv = document.querySelector('form.avast-form input');\n\tif (firstInputDiv && checkVisible(firstInputDiv) && !firstInputDiv.getAttribute('disabled') && !firstInputDiv.classList.contains('nofocus')) {\n\t\tfirstInputDiv.focus();\n\t}\n\t// / focus the first input\n\n\t// disable html 5 validation\n\t// try/catch because of IE 7\n\ttry {\n\t\t$('form.avast-form').attr('novalidate', 'novalidate');\n\t} catch (e) {\n\t\tconsole.log('Error while disabling html 5 validation', e);\n\t}\n\n\t// hide elements with display conditions\n\tdocument.querySelectorAll('form.avast-form.live-validation').forEach(function (form) {\n\t\tvar avastForm = new AvastForm(form);\n\t\tavastForm.hideConditionInputs();\n\t});\n\n\t// add live onchange validation\n\t$('form.avast-form.live-validation').on('change keyup click', 'input', function (e) {\n\t\tif (e.type == 'change') {\n\t\t\t$(this).data('changed', 1);\n\t\t}\n\n\t\tif ($(this).data('changed') || $(this.form).data('submitted')) {\n\t\t\tvar avastForm = new AvastForm(this.form);\n\t\t\tavastForm.validate(this);\n\t\t}\n\t});\n\n\t// add onsubmit validation (unbind first - can be called more times)\n\t$('form.avast-form.live-validation').off('submit').on('submit', function () {\n\t\t$(this).data('submitted', true);\n\t\tvar avastForm = new AvastForm(this);\n\t\tvar isValid = avastForm.validate();\n\t\tvar isAjax = $(this).hasClass('ajax-form');\n\n\t\tif (isValid && isAjax) {\n\t\t\treturn avastForm.ajaxSubmit();\n\t\t}\n\t\tvar formDiv = $(this).closest('div.AVsizer');\n\t\tif (!isValid && formDiv.length) {\n\t\t\tvar offset = parseInt(formDiv.offset().top);\n\t\t\tif (parseInt($(window).scrollTop()) > offset) {\n\t\t\t\t$('html,body').animate({scrollTop: offset}, 200);\n\t\t\t}\n\t\t}\n\t\treturn isValid;\n\t});\n\n\n\t// add help hints next to inputs with [data-help] attrib\n\tdocument.querySelectorAll('form.avast-form input[data-help]').forEach(function (input) {\n\t\tvar avastForm = new AvastForm(input);\n\t\tavastForm.addHelp(input);\n\t});\n\n\n\t// start tracking\n\t/* $('form.avast-form').on('change', 'input', function (e) {\n\t\tif (!$(this.form).hasClass('tracking-started')) {\n\t\t\tvar formName = this.form.id.split('\\\\');\n\t\t\tavastFormStartTracking(formName.pop()); // Function avastFormStartTracking is empty???\n\t\t\t$(this.form).addClass('tracking-started');\n\t\t}\n\t}); */\n\n\t// add onChange event for any [data-ajax=] tag to process ajax call for new data and destination tag update\n\t$('form.avast-form [data-ajax]')\n\t\t.on('change', function () {\n\t\t\tvar avastForm = new AvastForm(this);\n\t\t\tavastForm.ajaxUpdate($(this));\n\t\t});\n\n\tif ($.datepicker) {\n\t\t$('input.datepicker').datepicker({\n\t\t\tdateFormat: 'dd.mm.yy',\n\t\t\tchangeYear: true,\n\t\t\tchangeMonth: true\n\t\t});\n\t}\n\n\tif( typeof callback === 'function' ){\n\t\tcallback.call();\n\t}\n}\n\n\n/**\n * AvastForm\n */\nfunction AvastForm(form) {\n\tthis.form = form;\n\n\t// added data to form if there is specific div on page (shrug)\n\tif (document.querySelectorAll(this.globalErrorSelector).length) {\n\t\t$(this.form).data('submitted', true);\n\t}\n}\n\n\n// Object with various methods to manipulate with form or its entities\nAvastForm.prototype = {\n\ttrErrorClassName: 'alert',\n\thelpDivSelector: 'div.bundle-popup',\n\terrorSelector: 'div.errors',\n\tformDivSelector: 'div.AVsizer',\n\tglobalErrorSelector: 'div.bubble.error', // element is present after submitting and form displays error response content\n\tglobalNoErrorSelector: 'div.form-top',\n\tglobalErrorClassName: 'bubble error',\n\tglobalNoErrorClassName: 'form-top',\n\n\tajaxHandlerInput: '_ajax_handler_',\n\tajaxErrorInput: '_ajax_error_',\n\tglobalErrorInput: '_global_error_',\n\n\n\t/**\n\t * validate whole form or one element\n\t * @return bool\n\t */\n\tvalidate: function (el) {\n\n\t\tvar that = this;\n\t\tvar validationError = false;\n\t\tel = el || 'input';\n\n\t\t$(el, this.form).each(function () {\n\n\t\t\t// if is radio, test the first input\n\t\t\tvar elem = (this.type == 'radio') ? $('input[name=' + this.name + ']', that.form).first().get(0) : this;\n\t\t\tvar result = that.checkControl(elem);\n\n\t\t\tif (result === true) {\n\t\t\t\tthat.removeErrorMessage(elem);\n\t\t\t}\n\t\t\telse if (result) {\n\t\t\t\tthat.addErrorMessage(elem, result);\n\t\t\t\tvalidationError = true;\n\t\t\t}\n\t\t});\n\t\treturn !validationError;\n\t},\n\n\t/**\n\t * @return mixed true or error message\n\t */\n\tcheckControl: function (el, rules) {\n\n\t\t//console.log('checkControl', el, rules);\n\n\t\tvar noError = true;\n\n\t\tif (rules || $(el).data('nette-rules')) {\n\t\t\trules = rules || this.getElementRules(el);\n\t\t\tvar that = this;\n\t\t\tvar ruleName, userRule, arg, isCondition, result, negRule;\n\n\t\t\t// check the rules\n\t\t\tif (rules && rules.length) {\n\n\t\t\t\t$.each(rules, function (key, rule) {\n\n\t\t\t\t\truleName = rule.op.replace(/^.*:(.*)$/, '$1');\n\t\t\t\t\tnegRule = rule.op.match(/^~:.*$/);\n\t\t\t\t\tisCondition = !!rule.rules;\n\t\t\t\t\targ = rule.arg || null;\n\t\t\t\t\telem = rule.control ? that.form[rule.control] : el;\n\t\t\t\t\tuserRule = $(elem).data('validator');\n\n\t\t\t\t\tval = that.getElementValue(elem);\n\n\t\t\t\t\tvar success = true;\n\t\t\t\t\tif (ruleName && ruleName in that.validators) {\n\t\t\t\t\t\tsuccess = that.validators[ruleName](val, that.form, arg);\n\t\t\t\t\t}\n\t\t\t\t\tif (userRule && userRule in window) {\n\t\t\t\t\t\tsuccess = window[userRule](val, that.form, arg);\n\t\t\t\t\t}\n\t\t\t\t\tif (negRule) {\n\t\t\t\t\t\tsuccess = !success;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (!success && !isCondition) {\n\t\t\t\t\t\tnoError = rule.msg;\n\t\t\t\t\t}\n\t\t\t\t\telse if (success && isCondition) {\n\t\t\t\t\t\tnoError = that.checkControl(el, rule.rules);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t\treturn noError;\n\t},\n\n\tgetElementValue: function (elem) {\n\t\tvar val = $(elem).val();\n\t\t// radio\n\t\tif (!elem.name || elem.type == 'radio') {\n\t\t\tvar name = elem.name ? elem.name : elem[0].name;\n\t\t\tvar checkedRadio = $('input[name=' + name + ']:checked');\n\t\t\t\n\t\t\tval = (checkedRadio.length) ? $(checkedRadio).val() : '';\n\t\t}\n\t\telse if (elem.type == 'checkbox') {\n\t\t\t// it can be checkboxList\n\t\t\tval = !!$('input[name=\"' + elem.name + '\"]:checked').length;\n\t\t}\n\n\t\tif (val === $(elem).data('nette-empty-value')) {\n\t\t\tval = '';\n\t\t}\n\t\treturn val;\n\t},\n\n\tgetElementRules: function (el) {\n\t\treturn (new Function('return ' + el.getAttribute('data-nette-rules')))();\n\t},\n\n\taddErrorMessage: function (el, msg) {\n\t\tthis.removeErrorMessage(el);\n\t\t$(el).closest('div.form-group').addClass(this.trErrorClassName);\n\t\tvar html = '
' + msg + '
';\n\t\t$(el).closest('div.form-item').append(html);\n\t\tthis.showGlobalErrorMessage();\n\t},\n\n\tremoveErrorMessage: function (el) {\n\t\t$(el).closest('div.form-group, div.captcha').removeClass(this.trErrorClassName).find(this.errorSelector).remove();\n\t\tthis.showGlobalErrorMessage();\n\t},\n\n\tshowGlobalErrorMessage: function () {\n\t\tif ($(this.form).data('submitted')) {\n\t\t\tvar formDiv = $(this.form).closest(this.formDivSelector);\n\t\t\tif (formDiv.find(this.errorSelector).length && this.form[this.globalErrorInput]) {\n\t\t\t\tformDiv.find(this.globalNoErrorSelector)\n\t\t\t\t\t.data('oldhtml', $(this.globalNoErrorSelector).html())\n\t\t\t\t\t.removeClass(this.globalNoErrorClassName)\n\t\t\t\t\t.addClass(this.globalErrorClassName)\n\t\t\t\t\t.append(this.form[this.globalErrorInput].value);\n\t\t\t}\n\t\t\telse {\n\t\t\t\tformDiv.find(this.globalErrorSelector)\n\t\t\t\t\t.html($(this.globalErrorSelector).data('oldhtml'))\n\t\t\t\t\t.removeClass(this.globalErrorClassName)\n\t\t\t\t\t.addClass(this.globalNoErrorClassName);\n\t\t\t}\n\t\t}\n\t},\n\n\tvalidators: {\n\t\t'filled': function (val) {\n\t\t\treturn val !== '' && val !== false && val !== null;\n\t\t},\n\n\t\t'email': function (val) {\n\t\t\treturn (/^(\"([ !\\x23-\\x5B\\x5D-\\x7E]*|\\\\[ -~])+\"|[-a-z0-9!#$%&'*+\\/=?^_`{|}~]+(\\.[-a-z0-9!#$%&'*+\\/=?^_`{|}~]+)*)@([0-9a-z\\u00C0-\\u02FF\\u0370-\\u1EFF]([-0-9a-z\\u00C0-\\u02FF\\u0370-\\u1EFF]{0,61}[0-9a-z\\u00C0-\\u02FF\\u0370-\\u1EFF])?\\.)+[a-z\\u00C0-\\u02FF\\u0370-\\u1EFF][-0-9a-z\\u00C0-\\u02FF\\u0370-\\u1EFF]{0,17}[a-z\\u00C0-\\u02FF\\u0370-\\u1EFF]$/i).test(val);\n\t\t},\n\n\t\t'url': function (val) {\n\t\t\treturn (/^(https?:\\/\\/|(?=.*\\.))([0-9a-z\\u00C0-\\u02FF\\u0370-\\u1EFF](([-0-9a-z\\u00C0-\\u02FF\\u0370-\\u1EFF]{0,61}[0-9a-z\\u00C0-\\u02FF\\u0370-\\u1EFF])?\\.)*[a-z\\u00C0-\\u02FF\\u0370-\\u1EFF][-0-9a-z\\u00C0-\\u02FF\\u0370-\\u1EFF]{0,17}[a-z\\u00C0-\\u02FF\\u0370-\\u1EFF]|\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3})(:\\d{1,5})?(\\/\\S*)?$/i).test(val);\n\t\t},\n\n\t\t'regexp': function (val, form, arg) {\n\t\t\tvar parts = typeof arg === 'string' ? arg.match(/^\\/(.*)\\/([imu]*)$/) : false;\n\t\t\tif (parts) {\n\t\t\t\ttry {\n\t\t\t\t\treturn (new RegExp(parts[1], parts[2].replace('u', ''))).test(val);\n\t\t\t\t} catch (e) {\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\t'pattern': function (val, form, arg) {\n\t\t\ttry {\n\t\t\t\treturn typeof arg === 'string' ? (new RegExp('^(' + arg + ')$')).test(val) : null;\n\t\t\t} catch (e) {\n\t\t\t}\n\t\t},\n\n\t\t'integer': function (val) {\n\t\t\treturn (/^-?[0-9]+$/).test(val);\n\t\t},\n\n\t\t'float': function (val) {\n\t\t\treturn (/^-?[0-9]*[.,]?[0-9]+$/).test(val);\n\t\t},\n\n\t\t'range': function (val, form, arg) {\n\t\t\treturn $.isArray(arg) ?\n\t\t\t\t((arg[0] === null || parseFloat(val) >= arg[0]) && (arg[1] === null || parseFloat(val) <= arg[1])) : null;\n\t\t},\n\n\t\t'minLength': function (val, form, arg) {\n\t\t\treturn val.length >= arg;\n\t\t},\n\n\t\t'maxLength': function (val, form, arg) {\n\t\t\treturn val.length <= arg;\n\t\t},\n\n\t\t'length': function (val, form, arg) {\n\t\t\targ = $.isArray(arg) ? arg : [arg, arg];\n\t\t\treturn (arg[0] === null || val.length >= arg[0]) && (arg[1] === null || val.length <= arg[1]);\n\t\t},\n\n\t\t'equal': function (val, form, arg) {\n\t\t\tif (arg === undefined) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\targ = $.isArray(arg) ? arg : [arg];\n\t\t\tfor (var i = 0, len = arg.length; i < len; i++) {\n\t\t\t\tif (val == (arg[i].control ? $(form.elements[arg[i].control]).val() : arg[i])) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t}\n\t},\n\n\t/*addValidator: function(name, func)\n\t {\n\t this.validators[name] = func;\n\t },*/\n\n\tajaxSubmit: function () {\n\t\tvar form = this.form,\n\t\t\tthat = this,\n\t\t\tajaxHandler = (this.ajaxHandlerInput in form && form[this.ajaxHandlerInput].value in window) ? window[form[this.ajaxHandlerInput].value] : null,\n\t\t\tvalues = new FormData(this.form),\n\t\t\toptions = {\n\t\t\t\turl: $(form).attr('action') ? 'https://' + avastGlobals.web.domain + '/' + $(form).attr('action') : document.location.href,\n\t\t\t\tcache: false,\n\t\t\t\tdata: new URLSearchParams(values),\n\t\t\t\tdataFilter: function (data) {\n\t\t\t\t\treturn $.trim(data);\n\t\t\t\t},\n\t\t\t\tdataType: 'json',\n\t\t\t\ttype: $(form).attr('method') || 'get'\n\t\t\t};\n\n\t\tvar submit = $('input[type=submit].ajax');\n\t\tif (submit.length && !$('img.form-ajax-loader').length) {\n\t\t\tsubmit.hide().after('\"\"');\n\t\t}\n\n\t\tfetch(options.url + '?projectId[]=29047&projectId[]=28382', {\n\t\t\theaders: {\n\t\t\t\t'Accept': 'application/json',\n\t\t\t\t'X-Requested-With': 'XMLHttpRequest'\n\t\t\t},\n\t\t\tmethod: options.type,\n\t\t\tbody: options.data\n\n\t\t}).then(function (response) {\n\t\t\treturn response.json();\n\n\t\t}).then(function (data) {\n\t\t\tif (typeof dataLayer !== 'undefined' && dataLayer.length > 0) {\n\t\t\t\t// There may be script which pushes to dataLayer 'formCompleted'. Timeout set to wait for final push.\n\t\t\t\tsetTimeout(function() {\n\t\t\t\t\tfor (var i = 0; i < dataLayer.length; i++) {\n\t\t\t\t\t\tif (typeof dataLayer[i].event !== 'undefined' && dataLayer[i].event === 'formCompleted') {\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tdataLayer.push({'event': 'formCompleted'});\n\t\t\t\t}, 10);\n\t\t\t}\n\t\t\t$(document).trigger('avastform-linear-success');\n\t\t\t$('input[type=submit].ajax').show();\n\t\t\t$('img.form-ajax-loader').remove();\n\t\t\tajaxHandler ? ajaxHandler(data, form) : that.processResult(data);\n\t\t}).catch(function (err) {\n\t\t\t$('img.form-ajax-loader').remove();\n\t\t\t$('input[type=submit].ajax').show();\n\t\t});\n\n\t\treturn false;\n\t},\n\n\t/**\n\t * default ajax handler\n\t */\n\tprocessResult: function (data) {\n\t\tif ($.isPlainObject(data)) {\n\n\t\t\tif ('errors' in data) {\n\t\t\t\tfor (var name in data.errors) {\n\t\t\t\t\tif (name in this.form) {\n\t\t\t\t\t\tthis.addErrorMessage(this.form[name], data.errors[name]);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ('customErrors' in data && $('.formCustomErrorMessage').length > 0) {\n\t\t\t\t$('.formCustomErrorMessage').html(data.customErrors).removeClass('hidden');\n\t\t\t}\n\n\t\t\tif ('replaces' in data) {\n\t\t\t\tfor (var replace in data.replaces) {\n\t\t\t\t\t// convert entities to html if needed\n\t\t\t\t\tif (data.replaces[replace].indexOf('<') > -1) {\n\t\t\t\t\t\tvar html = $('
').html(data.replaces[replace]).text();\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvar html = data.replaces[replace];\n\t\t\t\t\t}\n\t\t\t\t\tif (replace == 'form') {\n\t\t\t\t\t\t$(this.form).replaceWith(html);\n\t\t\t\t\t}\n\t\t\t\t\telse if (replace.indexOf('#') === 0) {\n\t\t\t\t\t\t$(replace).replaceWith(html);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\t/**\n\t * adds help icons next to inputs and tooltips\n\t *\n\t * @param object el element with help text\n\t */\n\taddHelp: function (input) {\n\t\tvar\n\t\t\thelp = input.getAttribute('data-help'),\n\t\t\tinputLabel = input.parentElement.parentElement.querySelector('.label');\n\t\t\n\t\tif (help && inputLabel) {\n\t\t\tinputLabel.setAttribute('data-bs-toggle','tooltip');\n\t\t\tinputLabel.setAttribute('data-bs-placement','top');\n\t\t\tinputLabel.setAttribute('data-bs-custom-class','dark');\n\t\t\tinputLabel.setAttribute('data-bs-title',help);\n\t\t\tinputLabel.setAttribute('tabindex',0);\n\t\t}\n\t},\n\n\thideConditionInputs: function () {\n\t\tvar that = this; // the AvastForm prototype reference\n\n\t\tthis.form.querySelectorAll('input[data-display-condition][data-nette-rules]').forEach(function (input) {\n\t\t\tvar rules = that.getElementRules(input); // pull out rules\n\n\t\t\trules.forEach(function(rule){\n\t\t\t\tvar selector = that.form[rule.control]; // name of the form element which controls this input\n\t\t\t\tif (selector.isArray) {\n\t\t\t\t\tselector = $('input[name=' + selector[0].name + ']', that.form);\n\t\t\t\t}\n\n\t\t\t\t// lookup for form element which controls this input based on selector\n\t\t\t\tthat.checkConditionInput(selector, rule, input);\n\n\t\t\t\t$(selector).on('change keyup click', function () {\n\t\t\t\t\tthat.checkConditionInput(this, rule, input);\n\t\t\t\t});\n\t\t\t});\n\t\t});\n\t},\n\n\tcheckConditionInput: function (checkEl, rules, showEl) {\n\t\trules.rules = null;\n\t\trules.control = null;\n\t\tvar closestGroup = showEl.closest('div.form-group');\n\n\t\tif (this.checkControl(checkEl, [rules]) === true) {\n\t\t\tclosestGroup.classList.remove('hidden');\n\t\t} else {\n\t\t\tclosestGroup.classList.add('hidden');\n\t\t\tthis.removeErrorMessage(showEl);\n\t\t}\n\t},\n\n\n\t/*\n\t * Method will update elements values form given data from ajax\n\t * @method ajaxUpdate\n\t * @param object thisEl - current element properties - attribute [data-ajax] needed\n\t * @return boolean\n\t */\n\tajaxUpdate: function (thisEl) {\n\t\t//fix for chars like ''\n\t\tvar definitions = thisEl\n\t\t\t.attr('data-ajax')\n\t\t\t.replace(/\\'/g, \"\\\"\");\n\n\t\tvar thisVal = thisEl.val();\n\n\t\t//read and instance definition object\n\t\tvar def = $.parseJSON(definitions);\n\n\t\t//check if necessary params exists in given definition object\n\t\tif (typeof def.destEl === 'undefined' && ( typeof def.url === 'undefined' || typeof def.condition === 'undefined' )) {\n\t\t\treturn false;\n\t\t}\n\n\n\t\t/*\n\t\t * Function will update html tag from values form given data from ajax\n\t\t * @function tagUpdate\n\t\t * @param object data - object wit data from ajax or ajaxResponseStorage\n\t\t * @param string destEl - destination element\n\t\t * @return boolean\n\t\t */\n\t\tfunction _tagUpdate(data, destEl) {\n\t\t\t//set working element\n\t\t\tvar el = $('form.avast-form [name=' + destEl + ']');\n\n\t\t\tswitch ($(el).prop('tagName').toLowerCase()) {\n\t\t\t\tcase 'select':\n\t\t\t\t\tvar firstEl = $(el).find('option').first();\n\t\t\t\t\t$(el)\n\t\t\t\t\t\t.empty()\n\t\t\t\t\t\t.append(firstEl);\n\t\t\t\t\t//fill select\n\t\t\t\t\t$.each(data, function (key, val) {\n\t\t\t\t\t\t$(el).append(\"\");\n\t\t\t\t\t});\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'input':\n\t\t\t\t\t$(el)\n\t\t\t\t\t\t.empty()\n\t\t\t\t\t\t.val(data.elVal)\n\t\t\t\t\t\t.text(data.elText);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'textarea':\n\t\t\t\t\t$(el)\n\t\t\t\t\t\t.empty()\n\t\t\t\t\t\t.text(data.elText);\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\tvar url = typeof def.url === 'undefined' ? false : def.url;\n\n\t\t//Process update\n\t\tif (typeof def.condition === 'undefined') {\n\t\t\t//execure ajax\n\t\t\tif (url) {\n\t\t\t\tAvastFormAjax.doAjax(url, _tagUpdate, false, def.destEl);\n\t\t\t}\n\t\t}\n\t\telse {\n\t\t\t//apply conditions and check if all ok\n\t\t\t$.each(def.condition, function (key, val) {\n\t\t\t\t//test condition\n\t\t\t\tif (thisEl.val() === val.id) {\n\t\t\t\t\t//select correct URL\n\t\t\t\t\tvar u = typeof val.url === 'undefined' ? url : val.url;\n\t\t\t\t\t//execure ajax\n\t\t\t\t\tAvastFormAjax.doAjax(u, _tagUpdate, false, val.destEl);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t}\n\n};\n\n\n/* \nfunction rcCallback() {\n\t//$('#frm-send').removeAttr('disabled');\n\tconsole.log('kapĨa');\n}; */\n\n/*\n * AvastForm Ajax provide functionality for getting data from ajax call and store it in to array\n * @class AvastForm.ajax\n */\nvar AvastFormAjax = {\n\tajaxResponseStorage: [],\n\tajaxExpirationDelay: 60000, //miliseconds\n\n\t/*\n\t * Method will do ajax call on given URL when previous response not exists in ajaxResponseStorage object or the record expired in ajaxResponseStorage\n\t * @function doAjax\n\t * @param string url - url to call\n\t * @param function _onSuccess - function that will be executed after successed ajax\n\t * @param function _onError - function that will be executed on error\n\t * @param object respOptions - options that will be delivered to final functions (on succes, etc)\n\t * @return boolean\n\t */\n\tdoAjax: function (url, _onSuccess, _onError, respOptions) {\n\t\t//make key from url to store data properly in ajaxResponseStorage\n\t\tvar key = AvastFormAjax.makeKeyFromUrl(url);\n\n\t\tif (AvastFormAjax.isExpired(key)) {\n\t\t\t//do ajax for data\n\t\t\t$.ajax({\n\t\t\t\turl: encodeURI(url),\n\t\t\t\tsuccess: function (data) {\n\t\t\t\t\t//write to storage\n\t\t\t\t\tAvastFormAjax.writeToStorage(key, data);\n\n\t\t\t\t\tif (typeof _onSuccess === 'function') {\n\t\t\t\t\t\t_onSuccess(data, respOptions);\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\terror: function (data) {\n\t\t\t\t\tif (typeof _onError === 'function') {\n\t\t\t\t\t\t_onError(data, respOptions);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t\telse {\n\t\t\t_onSuccess(AvastFormAjax.readFromStorage(key), respOptions);\n\t\t}\n\t},\n\n\n\t/*\n\t * Method will create key from given url\n\t * @function makeKeyFromUrl\n\t * @param string url - url to change to key\n\t * @return string\n\t */\n\tmakeKeyFromUrl: function (url) {\n\t\treturn url\n\t\t\t.replace(/\\//gi, \"-\")\n\t\t\t.replace(/\\&/gi, \"----\")\n\t\t\t.replace(/\\=/gi, \"---\")\n\t\t\t.replace(/\\?/gi, \"--\")\n\t\t\t.replace(/\\%/gi, \"-----\")\n\t\t\t.replace(/\\;/gi, \"------\")\n\t\t\t.replace(/\\:/gi, \"-\");\n\t},\n\n\n\t/*\n\t * Method will write data to ajaxResponseStorage\n\t * @function writeToStorage\n\t * @param string key - key in ajaxResponseStorage\n\t * @param object data - data to write\n\t * @param int expire - expiration timestamp\n\t * @return boolean\n\t */\n\twriteToStorage: function (key, data, expire) {\n\t\tvar curr = new Date().getTime();\n\n\t\tAvastFormAjax.ajaxResponseStorage[ key ] = {\n\t\t\texpire: curr + (typeof expire !== 'undefined' ? expire : AvastFormAjax.ajaxExpirationDelay),\n\t\t\tdata: data\n\t\t};\n\t},\n\n\n\t/*\n\t * Method will read data from ajaxResponseStorage\n\t * @function writeToStorage\n\t * @param string key - key in ajaxResponseStorage\n\t * @return object\n\t */\n\treadFromStorage: function (key) {\n\t\tif (typeof AvastFormAjax.ajaxResponseStorage[ key ] !== 'undefined' && typeof AvastFormAjax.ajaxResponseStorage[ key ].data !== 'undefined') {\n\t\t\treturn AvastFormAjax.ajaxResponseStorage[ key ].data;\n\t\t}\n\t\telse {\n\t\t\treturn false;\n\t\t}\n\t},\n\n\t/*\n\t * Method will check if the key in ajaxResponseStorage expired\n\t * @function writeToStorage\n\t * @param string key - key in ajaxResponseStorage\n\t * @return object\n\t */\n\tisExpired: function (key) {\n\t\tvar curr = new Date().getTime();\n\n\t\t//check if key exists in ajaxResponseStorage\n\t\tif (typeof AvastFormAjax.ajaxResponseStorage[ key ] !== 'undefined') {\n\t\t\t//check if record expired\n\t\t\tif (AvastFormAjax.ajaxResponseStorage[ key ].expire < curr) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\telse {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t\telse {\n\t\t\treturn true;\n\t\t}\n\t}\n\n};\n\n\n/**\n * success form submit tracking\n *\n * @param string formName\n */\nfunction avastFormSubmitTracking(formName) {}\n\n/**\n * form - start of filling tracking\n *\n * @param string formName\n */\nfunction avastFormStartTracking(formName) {}\n"]}