﻿(function(window,document){var timerFunction=function(hiddenField,siteKey){window.grecaptcha.execute(siteKey,{action:'umbracoform_submit'}).then(function(token){hiddenField.form.querySelector('[type=submit]').removeAttribute('disabled');hiddenField.value=token;});setTimeout(timerFunction,60*1000,hiddenField,siteKey);};document.addEventListener('DOMContentLoaded',function(){Array.from(document.getElementsByClassName("umbraco-forms-recaptcha-v3-config")).forEach(function(configElement){var hiddenField=document.getElementById(configElement.dataset.id);var siteKey=configElement.dataset.siteKey;hiddenField.form.querySelector('[type=submit]').setAttribute('disabled','disabled');window.grecaptcha.ready(function(){timerFunction(hiddenField,siteKey);});});});})(window,document);
;;;(function(){if(!Element.prototype.matches)Element.prototype.matches=Element.prototype.msMatchesSelector;if(!Element.prototype.closest)Element.prototype.closest=function(selector){var el=this;while(el){if(el.matches(selector)){return el;}
el=el.parentElement;}};if(document.readyState==="complete"||(document.readyState!=="loading"&&!document.documentElement.doScroll)){listen();}else{document.addEventListener("DOMContentLoaded",listen);}
function listen(){var configElements=document.getElementsByClassName("umbraco-forms-form-config");if(configElements.length>0){var umbracoFormsCollectionFromConfig=[];for(var i=0;i<configElements.length;i++){var configElement=configElements[i];var form={formId:configElement.dataset.id,pageButtonConditions:JSON.parse(configElement.dataset.serializedPageButtonConditions),fieldSetConditions:JSON.parse(configElement.dataset.serializedFieldsetConditions),fieldConditions:JSON.parse(configElement.dataset.serializedFieldConditions),triggerConditionsCheckOn:configElement.dataset.triggerConditionsCheckOn,recordValues:JSON.parse(configElement.dataset.serializedFieldsNotDisplayed)};umbracoFormsCollectionFromConfig.push(form);}
initCollection(umbracoFormsCollectionFromConfig,true);}else{if(typeof umbracoFormsCollection==="undefined"){document.addEventListener("umbracoFormLoaded",init);}
else{initCollection(umbracoFormsCollection);}}
var submittedFormElement=document.getElementById("umbraco-forms-form-submitted");if(submittedFormElement){scrollToSubmittedForm();}}
function initCollection(formsCollection,jsonParsed){configureUmbracoFormsValidation();for(var i=0;i<formsCollection.length;i++){init({form:formsCollection[i]},jsonParsed);}}
function init(e,jsonParsed){var formItem=jsonParsed?e.form:JSON.parse(decodeURI(e.form));var forms=document.querySelectorAll('.umbraco-forms-form');for(var i=0;i<forms.length;i++){var form=forms[i];dependencyCheck(form);var page=form.querySelector('.umbraco-forms-page');var conditions=new UmbracoFormsConditions(page,formItem.pageButtonConditions,formItem.fieldSetConditions,formItem.fieldConditions,formItem.triggerConditionsCheckOn&&formItem.triggerConditionsCheckOn.length>0?formItem.triggerConditionsCheckOn:"change",formItem.recordValues);conditions.watch();applyFormAccessibility(form);}}
function scrollToSubmittedForm(){document.onreadystatechange=function(){if(document.readyState=="complete"){var validationsDivs=document.querySelectorAll(".field-validation-error, .umbraco-forms-submitmessage");var scrollY=0;for(var i=0;i<validationsDivs.length;i++){var node=getNode(validationsDivs[i]);var offset=node.getBoundingClientRect().top;if(0<offset&&(offset<scrollY||scrollY===0)){scrollY=offset;}}
if(scrollY>0){window.scrollTo(0,scrollY);}}}
function getNode(node){var runner=node;while(runner.tagName!=="BODY"){if(runner.classList.contains("umbraco-forms-field")){return runner;}
runner=runner.parentNode;}
return node;}}
function configureUmbracoFormsValidation(){if(window.aspnetValidation!==undefined){var validationService=new aspnetValidation.ValidationService();var required=function(value,element){if(element.type.toLowerCase()==="checkbox"||element.type.toLowerCase()==="radio"){var allCheckboxesOfThisName=element.form.querySelectorAll("input[name='"+element.name+"']");for(var i=0;i<allCheckboxesOfThisName.length;i++){if(allCheckboxesOfThisName[i].checked===true){return true;}}
return false;}
return Boolean(value);}
validationService.addProvider("requiredcb",required);validationService.addProvider("required",required);var umbracoforms_regex=function(value,element,params){if(!value||!params.pattern){return true;}
var r=new RegExp(params.pattern);return r.test(value);}
validationService.addProvider("umbracoforms_regex",umbracoforms_regex);var wrapProviderWithIgnorerBehaviour=function(provider){return function(value,element,params){if(element.offsetParent===null){return true;}
return provider(value,element,params);}}
window.addEventListener('load',function(){for(var key in validationService.providers){validationService.providers[key]=wrapProviderWithIgnorerBehaviour(validationService.providers[key]);}});validationService.bootstrap();var handlePreviousClicked=function(){this.form.elements["PreviousClicked"].value="clicked";};var previousButtonElements=document.querySelectorAll("[data-umb='prev-forms-form']");if(previousButtonElements.length===0){previousButtonElements=document.getElementsByClassName("prev cancel");}
for(var i=0;i<previousButtonElements.length;i++){previousButtonElements[i].form.elements["PreviousClicked"].value="";previousButtonElements[i].addEventListener('click',handlePreviousClicked,false);}}else if(typeof jQuery==="function"&&$.validator&&$.validator.unobtrusive){$.validator.setDefaults({ignore:":hidden"});$.validator.unobtrusive.adapters.addBool("requiredcb","required");$.validator.addMethod("umbracoforms_regex",function(value,element){var regex=$(element).attr("data-regex");var val=$(element).val();if(val.length===0){return true;}
return val.match(regex);});$.validator.unobtrusive.adapters.addBool("regex","umbracoforms_regex");var submitInputs=document.querySelectorAll(".umbraco-forms-form input[type=submit]:not(.cancel)");for(let i=0;i<submitInputs.length;i++){var input=submitInputs[i];input.addEventListener("click",function(evt){evt.preventDefault();var frm=$(this).closest("form");resetValidationMessages(frm[0]);frm.validate();if(frm.valid()){frm.submit();this.setAttribute("disabled","disabled");}}.bind(input));}}}
function dependencyCheck(formEl){var isBackOffice=function(){return typeof Umbraco!=="undefined"&&typeof Umbraco.Sys!=="undefined";};var isBackOfficeRte=function(){return document.body.id==="tinymce";};if(isBackOffice()||isBackOfficeRte()){return;}
var errorElement=document.createElement("div");errorElement.className="umbraco-forms missing-library";errorElement.style.color="#fff";errorElement.style.backgroundColor="#9d261d";errorElement.style.padding="15px";errorElement.style.margin="10px 0";var errorMessage="";if(formEl){var checkForExistinhgErr=formEl.getElementsByClassName('umbraco-forms missing-library');if(checkForExistinhgErr.length>0){return;}
var hasValidationFramework=false;if(window.jQuery&&$&&$.validator!==undefined){hasValidationFramework=true;}else if(window.aspnetValidation!==undefined){hasValidationFramework=true;}
if(hasValidationFramework===false){errorMessage=errorMessage+"Umbraco Forms requires a validation framework to run, please read documentation for posible options.";}
if(errorMessage!==""){errorElement.innerHTML=errorMessage+'<br/> <a href="https://our.umbraco.org/documentation/products/umbracoforms/developer/Prepping-Frontend/" target="_blank" style="text-decoration:underline; color:#fff;">See Umbraco Forms Documentation</a>';formEl.insertBefore(errorElement,formEl.childNodes[0]);}}}
function applyFormAccessibility(formEl){setFocusToFirstElementOnValidationError(formEl);}
function setFocusToFirstElementOnValidationError(formEl){if("MutationObserver" in window===false){return;}
if(window.aspnetValidation!==undefined){var form=formEl.getElementsByTagName('form')[0];var handleResetValidationMessages=function(event){resetValidationMessages(form);};form.addEventListener('submit',handleResetValidationMessages,false);}else{}
var observer=new MutationObserver(function(mutationRecords){for(var i=0;i<mutationRecords.length;i++){var mutationRecord=mutationRecords[i];if(mutationRecord.target.className==='field-validation-error'){setFocusOnFormField(mutationRecord.target);break;}}});observer.observe(formEl,{attributes:true,attributeFilter:['class'],childList:false,characterData:false,subtree:true});}
function resetValidationMessages(formEl){var validationErrorMessageElements=formEl.getElementsByClassName('field-validation-error');for(var i=0;i<validationErrorMessageElements.length;i++){validationErrorMessageElements[i].className='field-validation-valid';}}
function setFocusOnFormField(validationErrorEl){var formFieldElement=validationErrorEl.previousElementSibling;while(formFieldElement){if(formFieldElement.tagName.toLowerCase()==='input'||formFieldElement.tagName.toLowerCase()==='textarea'||formFieldElement.tagName.toLowerCase()==='select'){formFieldElement.focus();break;}
if(formFieldElement.classList.contains("radiobuttonlist")||formFieldElement.classList.contains("checkboxlist")){for(var i=0;i<formFieldElement.children.length;i++){var formFieldChildElement=formFieldElement.children[i];if(formFieldChildElement.tagName.toLowerCase()==='input'){formFieldChildElement.focus();break;}}
break;}
formFieldElement=formFieldElement.previousElementSibling;}}
function UmbracoFormsConditions(form,pageButtonConditions,fieldsetConditions,fieldConditions,triggerConditionsCheckOn,values){var self={};self.form=form;self.pageButtonConditions=pageButtonConditions;self.fieldsetConditions=fieldsetConditions;self.fieldConditions=fieldConditions;self.triggerConditionsCheckOn=triggerConditionsCheckOn;self.values=values;self.dataTypes={};function populateFieldValues(page,formValues,dataTypes){var selectFields=page.querySelectorAll("select");for(let i=0;i<selectFields.length;i++){const field=selectFields[i];formValues[field.getAttribute("id")]=field.value;dataTypes[field.getAttribute("id")]="select";}
var textareaFields=page.querySelectorAll("textarea");for(let i=0;i<textareaFields.length;i++){const field=textareaFields[i];formValues[field.getAttribute("id")]=field.value;dataTypes[field.getAttribute("id")]="textarea";}
var checkboxFields=page.querySelectorAll("input[type=checkbox]");for(let i=0;i<checkboxFields.length;i++){const field=checkboxFields[i];formValues[field.getAttribute("name")]=null;dataTypes[field.getAttribute("id")]="checkbox";}
var inputFields=page.querySelectorAll("input");for(let i=0;i<inputFields.length;i++){const field=inputFields[i];if(field.getAttribute('type')==="text"||field.getAttribute('type')==="number"||field.getAttribute('type')==="email"||field.getAttribute('type')==="url"||field.getAttribute('type')==="tel"||field.getAttribute('type')==="date"||field.getAttribute('type')==="datetime-local"||field.getAttribute("type")==="hidden"){formValues[field.getAttribute("id")]=field.value;dataTypes[field.getAttribute("id")]="text";}
if(field.getAttribute('type')==="radio"){if(field.matches(':checked')){formValues[field.getAttribute("name")]=field.value;dataTypes[field.getAttribute("id")]="radio";}}
if(field.getAttribute("type")==="checkbox"){if(field.getAttribute("id")!==field.getAttribute("name")){if(field.matches(":checked")){if(formValues[field.getAttribute("name")]===null){formValues[field.getAttribute("name")]=field.value;}
else{formValues[field.getAttribute("name")]+=";;"+field.value;}}}
else{formValues[field.getAttribute("name")]=(field.matches(":checked")?"true":"false");}}}}
self.operators={Is:function(value,expected,dataType){if((value||"")===expected){return true;}
if(value==null){return(expected==value);}
if(dataType==="checkbox"){if(expected.toUpperCase()==="TRUE"||expected.toUpperCase()==="ON"){expected="true"}else if(expected.toUpperCase()==="FALSE"||expected.toUpperCase()==="OFF"){expected="false"}}
var values=value.split(';;');var matchingExpected=values.filter(function(o){return o===expected;});return matchingExpected.length>0;},IsNot:function(value,unexpected,dataType){if(value==null){return(unexpected!=value);}
var values=value.split(';;');var matchingUnexpected=values.filter(function(o){return o===unexpected;});if(dataType==="checkbox"){if(unexpected.toUpperCase()==="TRUE"||unexpected.toUpperCase()==="ON"){unexpected="true"}else if(unexpected.toUpperCase()==="FALSE"||unexpected.toUpperCase()==="OFF"){unexpected="false"}}
return(value||"")!==unexpected&&matchingUnexpected.length===0;},GreaterThen:function(value,limit){if(isNaN(value)||isNaN(limit)){return value>limit;}
return parseInt(value)>parseInt(limit);},LessThen:function(value,limit){if(isNaN(value)||isNaN(limit)){return value<limit;}
return parseInt(value)<parseInt(limit);},StartsWith:function(value,criteria){return value&&value.indexOf(criteria)===0;},EndsWith:function(value,criteria){return value&&value.indexOf(criteria)===value.length-criteria.length;},Contains:function(value,criteria){return value&&value.indexOf(criteria)>-1;}};self.watch=function(){var datepickerfields=self.form.querySelectorAll('.datepickerfield');for(let i=0;i<datepickerfields.length;i++){const field=datepickerfields[i];field.addEventListener('blur',function(){if(this.value===""){var id=this.getAttribute("id");var hiddenDatePickerField=id.substr(0,id.length-2);self.values[hiddenDatePickerField]="";document.getElementById(hiddenDatePickerField).value="";}
populateFieldValues(self.form,self.values,self.dataTypes);self.run();}.bind(field));}
var changeablefields=self.form.querySelectorAll("input, textarea, select");for(let i=0;i<changeablefields.length;i++){const field=changeablefields[i];field.addEventListener(self.triggerConditionsCheckOn,function(){populateFieldValues(self.form,self.values,self.dataTypes);self.run();}.bind(field));}
populateFieldValues(self.form,self.values,self.dataTypes);self.run();};self.run=function(){var fsId,fieldId,cachedResults={};function evaluateRuleInstance(rule){var value=self.values[rule.field],dataType=self.dataTypes[rule.field],func=self.operators[rule.operator],result=value!==null&&func(value,rule.value,dataType);return result;}
function evaluateRule(rule){var dependencyIsVisible=true;if(self.fieldConditions[rule.field]){dependencyIsVisible=isVisible(rule.field,self.fieldConditions[rule.field]);}
if(dependencyIsVisible){return evaluateRuleInstance(rule);}
else{return false;}}
function evaluateCondition(id,condition){var any=condition.logicType==="Any",all=condition.logicType==="All",fieldsetVisibilities={},hasHiddenFieldset=false,success=true,rule,i;if(condition.rules.length===0){return false;}
for(i=0;i<condition.rules.length;i++){rule=condition.rules[i];if(id===rule.field||id===rule.fieldsetId){throw new Error("Field or fieldset "+id+" has a condition on itself.");}
if(fieldsetVisibilities[rule.fieldsetId]!==undefined){continue;}
if(self.fieldsetConditions[rule.fieldsetId]){fieldsetVisibilities[rule.fieldsetId]=isVisible(rule.fieldsetId,self.fieldsetConditions[rule.fieldsetId]);if(!fieldsetVisibilities[rule.fieldsetId]){hasHiddenFieldset=true;}}
else{fieldsetVisibilities[rule.fieldsetId]=true;}}
if(all&&hasHiddenFieldset){return false;}
for(i=0;i<condition.rules.length;i++){rule=condition.rules[i];if(fieldsetVisibilities[rule.fieldsetId]){success=evaluateRule(condition.rules[i]);}
else{success=false;}
if(any&&success){break;}
if(all&&!success){break;}}
return success;}
function evaluateConditionVisibility(id,condition){var show=condition.actionType==="Show",cachedResult=cachedResults[id];var success;if(cachedResult===undefined){cachedResults[id]=show;success=(cachedResults[id]=evaluateCondition(id,condition));}else{success=cachedResult;}
var visible=!(success^show);return visible;}
function isVisible(id,condition){if(condition){return evaluateConditionVisibility(id,condition);}
return true;}
function handleCondition(element,id,condition){var shouldShow=isVisible(id,condition);if(element){if(shouldShow){element.style.display="";}
else{element.style.display="none";}}}
for(pageId in self.pageButtonConditions){if(Object.prototype.hasOwnProperty.call(self.pageButtonConditions,pageId)){var pageElem=document.getElementById(pageId);if(pageElem){handleCondition(pageElem.querySelector("input[name='__next'], button[name='__next'], input[data-form-navigate='next'], button[data-form-navigate='next']"),pageId,self.pageButtonConditions[pageId],"Page");}}}
for(fsId in self.fieldsetConditions){if(Object.prototype.hasOwnProperty.call(self.fieldsetConditions,fsId)){handleCondition(document.getElementById(fsId),fsId,self.fieldsetConditions[fsId],"Fieldset");}}
for(fieldId in self.fieldConditions){if(Object.prototype.hasOwnProperty.call(self.fieldConditions,fieldId)){if(document.getElementById(fieldId)){handleCondition(document.getElementById(fieldId).closest(".umbraco-forms-field"),fieldId,self.fieldConditions[fieldId],"Field");}}}};return self;}})();
;;;