window.Form={init:function(form){var self=this;var beforeUnloadHandler=self.createBeforeUnloadHandler(self,form);var optionsEl=form.find(".form-config").first();var options=JSON.parse(optionsEl.html());if(!options.afterValidateAttribute){options.afterValidateAttribute=Form.afterValidateAttribute}if(!options.afterValidate){options.afterValidate=Form.afterValidate}form.yiiactiveform(options);window.dataLayer=window.dataLayer||[];if(typeof window.dataLayer!=="undefined"){var uuid=form.data("uuid");window.dataLayer.push({event:"form_load_page",params:{form_uuid:uuid}});if(window.gtag){gtag("event","form_load_page",{form_uuid:uuid})}}form.on("submit",function(e){console.log("on form submit(?)",form);window.removeEventListener("beforeunload",beforeUnloadHandler);if(e.isPropagationStopped()){return true}var form=$(this);var optionsEl=form.find(".form-config").first();var options=JSON.parse(optionsEl.html());if(options.ajaxSubmit!==false){e.preventDefault();var utmParams=sessionStorage.getItem("utm_params");utmParams=utmParams&&JSON.parse(utmParams);if(utmParams){["source","medium","campaign","term","content"].forEach(function(param){var field=form.find(".utm-"+param).first();if(field){field.val(utmParams["utm_"+param])}})}var formData=new FormData(this);var action=Template.url.updateParameter(form.attr("action"),{submit:1,ajax:1},true);Form.submit(form,action,formData);return false}});window.addEventListener("beforeunload",beforeUnloadHandler)},afterValidateAttribute:function(form,attribute,data,hasError){if(!hasError){var input=$(form).find("#"+attribute.id).first();input.closest(".form-group").removeClass("has-error");input.parent().find(".help-block").hide()}},afterValidate:function(form,data,hasError){if(hasError){if($(form).height()>$(window).height()){var firstError=$(document).find(".help-block.error:visible:first");$("html, body").animate({scrollTop:firstError.parent().offset().top-firstError.parent().height()},1e3)}return false}else{return true}},submit:function submitForm(form,action,formData){var uuid=form.data("uuid");form.find(".UIButtonForm input").prop("disabled",true);form.trigger("beforeSubmit",{form:form,formData:formData});$.ajax({url:action,method:"POST",data:formData,processData:false,contentType:false,success:function(response){var callback=form.find(".UICallback");var message;if(response.success){if(typeof ga!=="undefined"){}}if(callback.length){if(response.success){if(response.redirect){window.location=response.redirect}message=callback.find(".form-callback-success")}else{message=callback.find(".form-callback-error")}if(message.hasClass("callback-replace")){form.find(".template-component").hide();callback.closest(".template-component").show()}message.show()}else{if(response.success){if(response.redirect){window.location=response.redirect;return false}message=$(document).find("#form-modal-"+uuid+".success-message")}else{message=$(document).find("#form-modal-"+uuid+".error-message");if(form.data("showSpecificError")){$(message).find(".errors-wrapper").empty();var errorMessages='<div class="errors-wrapper">';Object.entries(JSON.parse(response)).forEach(function(pItem){errorMessages+="<p>"+pItem[1][0]+"</p>"});errorMessages+="</div>";$(message).find(".modal-body").append(errorMessages)}}message.modal("show")}if(response.success){form[0].reset()}form.find(".UIButtonForm input").prop("disabled",false);form.trigger("afterSubmit",{form:form,formData:formData,success:response.success})}})},createBeforeUnloadHandler:function(self,form){return function(){self.beforeWindowUnload(form)}},beforeWindowUnload:function(data){for(var i=0;i<data.length;i++){var formData=new FormData(data[i]);formData=this.formatData(formData,data[i]);if(formData===false){return}window.dataLayer=window.dataLayer||[];if(typeof window.dataLayer!=="undefined"){for(var o=0;o<formData.length;o++){window.dataLayer.push(formData[o]);if(typeof functionName==="function"){gtag("event",formData[o].event,formData[o].params)}}}}},formatData:function(array,form){var isStarted=false;var formUuid=form.getAttribute("data-uuid");var formData=[{event:"form_leave",params:{form_uuid:formUuid}}];form=Array.from(form);for(var[key,value]of array.entries()){if(!/\[[a-zA-Z0-9]{8}-[a-zA-Z0-9]{4}-[a-zA-Z0-9]{4}-[a-zA-Z0-9]{4}-[a-zA-Z0-9]{12}\]/.test(key)||!(value!==undefined&&value!=="")){continue}var index=form.findIndex(function(inputField){return inputField.name===key});if(index!==-1){var inputData={event:"field_filled",params:{form_uuid:formUuid,field_uuid:form[index].id.split(/_/).pop(),field_name:form[index].getAttribute("data-field-name")}};isStarted=true;formData.push(inputData)}}return isStarted?formData:false}};