function addFormEditorCondition(n,t){formEditorConditions[n]=t}function getFormEditorCondition(n){return formEditorConditions[n]}(function(){function n(n){function s(n){n&&c.push(n)}for(var u,r,i,h,l,v,y,c=[n],f=[],e=[],o=["ng:module","ng-module","x-ng-module","data-ng-module","ng:modules","ng-modules","x-ng-modules","data-ng-modules"],t=0;t<o.length;t++)if(u=o[t],o[t]=!0,s(document.getElementById(u)),u=u.replace(":","\\:"),n.querySelectorAll){for(r=n.querySelectorAll("."+u),i=0;i<r.length;i++)s(r[i]);for(r=n.querySelectorAll("."+u+"\\:"),i=0;i<r.length;i++)s(r[i]);for(r=n.querySelectorAll("["+u+"]"),i=0;i<r.length;i++)s(r[i])}for(t=0;t<c.length;t++){var n=c[t],p=" "+n.className+" ",a=/\sng[:\-]module[s](:\s*([\w\d_]+);?)?\s/.exec(p);if(a)f.push(n),e.push((a[2]||"").replace(/\s+/g,","));else if(n.attributes)for(h in n.attributes)h!="length"&&(l={name:h,value:n.attributes[h].value},o[l.name]&&(f.push(n),e.push(l.value)))}for(t=0;t<f.length;t++)v=f[t],typeof e[t]!="undefined"&&(y=e[t].replace(/ /g,"").split(","),angular.bootstrap(v,y))}angular.element(document).ready(function(){n(document)})})();angular.module("ngAudio",[]).constant("ngAudioDomUid",function(){for(var n="",t=0;t<8;t++)n=n+Math.floor((1+Math.random())*65536).toString(16).substring(1);return n}()).directive("ngAudio",["$compile","$q","ngAudio",function(n,t,i){return{restrict:"AEC",scope:{volume:"=",start:"=",currentTime:"=",loop:"=",clickPlay:"=",disablePreload:"="},controller:["$scope","$attrs","$element","$timeout",function(n,t,r,u){function e(){f=i.load(t.ngAudio,n);n.$audio=f;f.unbind()}var f;n.disablePreload||e();r.on("click",function(){n.clickPlay!==!1&&(n.disablePreload&&e(),f.audio.play(),f.volume=n.volume||f.volume,f.loop=n.loop,f.currentTime=n.start||0,u(function(){f.play()},5))});r.on("$destroy",function(){f.destroy()})}]}}]).directive("ngAudioHover",["$compile","$q","ngAudio",function(n,t,i){return{restrict:"AEC",controller:["$scope","$attrs","$element","$timeout",function(n,t,r){var u=i.load(t.ngAudioHover,n);r.on("mouseover rollover hover",function(){u.audio.play();u.volume=t.volumeHover||u.volume;u.loop=t.loop;u.currentTime=t.startHover||0});r.on("$destroy",function(){u.destroy()})}]}}]).service("localAudioFindingService",["$q",function(n){this.find=function(t){var i=n.defer(),r=document.getElementById(t);return r?i.resolve(r):i.reject(t),i.promise}}]).service("remoteAudioFindingService",["$q","ngAudioDomUid",function(n,t){this.find=function(i){var f=n.defer(),r=document.getElementById(t),u;return r?(r.pause(),r.src=i,r.load()):(u=document.createElement("audio"),u.style.display="none",u.id=t,u.src=i,document.body.appendChild(u),r=document.getElementById(t),r.load()),r?f.resolve(r):f.reject(id),f.promise}}]).service("cleverAudioFindingService",["$q","localAudioFindingService","remoteAudioFindingService",function(n,t,i){this.find=function(r){var u=n.defer();return r=r.replace("|","/"),t.find(r).then(u.resolve,function(){return i.find(r)}).then(u.resolve,u.reject),u.promise}}]).value("ngAudioGlobals",{muting:!1,performance:25,unlock:!0,volume:1}).factory("NgAudioObject",["cleverAudioFindingService","$rootScope","$interval","$timeout","ngAudioGlobals",function(n,t,i,r,u){return function(r,f){function y(){try{o.play();o.pause()}catch(n){}window.removeEventListener("click",y)}function ut(){a||(h&&i.cancel(h),p&&p(),s&&s(),a=!0)}function ot(){a||(s=nt.$watch(function(){return{volume:e.volume,currentTime:e.currentTime,progress:e.progress,muting:e.muting,loop:e.loop,playbackRate:e.playbackRate,globalVolume:u.volume}},function(n,t){n.currentTime!==t.currentTime&&e.setCurrentTime(n.currentTime);n.progress!==t.progress&&e.setProgress(n.progress);n.volume!==t.volume&&e.setVolume(n.volume);n.playbackRate!==t.playbackRate&&e.setPlaybackRate(n.playbackRate);n.globalVolume!==t.globalVolume&&(n.globalVolume===0?e.setMuting(!0):(e.setMuting(!1),e.setVolume(n.globalVolume)));l=n.loop;n.muting!==t.muting&&e.setMuting(n.muting)},!0))}function ft(){e.error=!0}function et(){if(s&&s(),o){if(o.volume=g||u.muting?0:e.volume!==undefined?e.volume:1,w&&(o.play(),w=!1),k&&(o.pause(),o.currentTime=0,k=!1),b&&(o.pause(),b=!1),d&&(o.playbackRate=it,d=!1),c&&(o.volume=c,c=undefined),rt){e.currentTime=o.currentTime;e.duration=o.duration;e.remaining=o.duration-o.currentTime;e.progress=0;e.paused=o.paused;e.src=o.src;var n=(o.currentTime/o.duration).toPrecision();n>0&&(e.progress=n);e.currentTime>=e.duration&&tt.forEach(function(n){n(e)});v.forEach(function(n){e.duration-e.currentTime<=n.secs&&(n.callback(e),v.shift())});l&&e.currentTime>=e.duration&&(l!==!0&&(l--,e.loop--),e.setCurrentTime(0),e.play())}g||u.muting||(e.volume=o.volume);e.audio=o}ot()}var s,p,w=!1,b=!1,k=!1,d=!1,it=!1,c,l,g=!1,rt=!0,a=!1,nt=f||t,o,e=this,tt,v,h;this.id=r;this.safeId=r.replace("/","|");this.loop=0;this.unbind=function(){rt=!1};this.play=function(){return w=!0,this};tt=[];this.complete=function(n){tt.push(n)};v=[];this.toFinish=function(n,t){v.push({secs:n,callback:t})};this.pause=function(){b=!0};this.restart=function(){k=!0};this.stop=function(){this.restart()};this.setVolume=function(n){c=n};this.setPlaybackRate=function(n){it=n;d=!0};this.setMuting=function(n){g=n};this.setProgress=function(n){o&&o.duration&&isFinite(n)&&(o.currentTime=o.duration*n)};this.setCurrentTime=function(n){o&&o.duration&&(o.currentTime=n)};this.destroy=ut;nt.$on("$destroy",function(){ut()});this.destroyed=function(){return a};n.find(r).then(function(n){o=n;u.unlock&&(window.addEventListener("click",y),o.addEventListener("playing",function(){window.removeEventListener("click",y)}));o.addEventListener("error",ft);o.addEventListener("canplay",function(){e.canPlay=!0})},ft);h=i(et,u.performance);p=nt.$watch(function(){return u.performance},function(){i.cancel(h);h=i(et,u.performance)})}}]).service("ngAudio",["NgAudioObject","ngAudioGlobals",function(n,t){this.play=function(t,i){var r=new n(t,i);return r.play(),r};this.load=function(t,i){return new n(t,i)};this.mute=function(){t.muting=!0};this.unmute=function(){t.muting=!1};this.toggleMute=function(){t.muting=!t.muting};this.setUnlock=function(n){t.unlock=n};this.setGlobalVolume=function(n){t.volume=n}}]).filter("trackTime",function(){return function(n){var t=Math.floor(n|0),f="",u=0,i=0,r=0;return t>3599?(u=Math.floor(t/3600),i=Math.floor((t-u*3600)/60),r=t-(i*60+u*3600),u.toString().length==1&&(u="0"+Math.floor(t/3600).toString()),i.toString().length==1&&(i="0"+Math.floor((t-u*3600)/60).toString()),r.toString().length==1&&(r="0"+(t-(i*60+u*3600)).toString()),f=u+":"+i+":"+r):t>59?(i=Math.floor(t/60),r=t-i*60,i.toString().length==1&&(i="0"+Math.floor(t/60).toString()),r.toString().length==1&&(r="0"+(t-i*60).toString()),f=i+":"+r):(r=t,r.toString().length==1&&(r="0"+t.toString()),f=t+"s"),typeof Number.isNaN=="function"&&Number.isNaN(f),f}});angular.module("formEditor",[]).controller("FormController",["$scope","$filter","$http","$window","$timeout",function(n,t,i,r,u){n.formData={};n.fileData={};n.formState={};n.invalidValidations=[];n.submitStatus="none";n.showReceipt=!1;n.activePage=0;n.init=function(t){if(typeof _fe=="undefined"||typeof _fe[t]=="undefined"){console.error("Could not find any Form Editor state for form ID "+t);return}n.formState=_fe[t];n.formState.formId=t;for(var i in n.formState.defaultValues)n.formData[i]=n.formState.defaultValues[i];n.formState.actions&&n.formState.actions.length&&(n.fieldVisibility={},n.$watch("formData",function(){n.formDataChanged()},!0))};n.toggleMultiSelectValue=function(t,i,r,u){var f=n.formData[t]||[],e=f.indexOf(r);e<0?f.push(r):f.splice(e,1);f.length==0&&(f=undefined);n.formData[t]=f;u&&n.getFormPage(i)[t].$setValidity("required",f!=undefined&&f.length!=0)};n.hasMultiSelectValue=function(t,i){var r=n.formData[t]||[];return r.indexOf(i)>=0};n.setAndSubmit=function(){u(n.submit,10)};n.submit=function(u){var s,f,o,e;for(u.preventDefault(),s=0;s<n.formState.totalPages;s++)n.getFormPage(s).showValidationErrors=!0;if(!n.form.$invalid&&(n.invalidValidations=t("filter")(n.formState.validations,function(t){return n.validate(t)==!1}),!(n.invalidValidations.length>0))){f=new FormData;f.append("_id",n.formState.formId);f.append("_rowId",n.formState.formRowId);for(e in n.formData)(o=n.formData[e],o!=null&&o!=undefined)&&(o instanceof Date?f.append(e,o.toISOString()):f.append(e,o));for(e in n.fileData)f.append(e,n.fileData[e]);r.document.form["g-recaptcha-response"]&&f.append("g-recaptcha-response",r.document.form["g-recaptcha-response"].value);n.submitStatus="submitting";i.post("/umbraco/FormEditorApi/Public/SubmitEntry/",f,{headers:{"Content-Type":undefined}}).then(function(t){n.submitStatus="success";t.data&&t.data.redirectUrl&&(r.location.href=t.data.redirectUrl);n.showReceipt=n.formState.hasReceipt},function(t){n.submitStatus="failure";t.data&&(t.data.invalidFields&&t.data.invalidFields.length>0&&angular.forEach(t.data.invalidFields,function(t){for(var i=0;i<n.formState.totalPages;i++)n.getFormPage(i)[t.formSafeName].$setValidity("required",!1)}),t.data.failedValidations&&t.data.failedValidations.length>0&&(n.invalidValidations=t.data.failedValidations))})}};n.validate=function(t){return!t.rules||!t.rules.length?!0:n.validateRules(t.rules)==!1};n.validateRules=function(t){var i=!0;return angular.forEach(t,function(t){var r=n.formData[t.field.formSafeName],u,f;if((r==undefined||r=="")&&(r=null),angular.isArray(r)&&(r=r.join()),u=!1,f=getFormEditorCondition(t.condition.type),f)try{u=f(t,r,n.formData)}catch(e){console.warn(e)}if(u==!1)return i=!1,!1}),i};n.$on("filesSelected",function(t,i){n.fileData[i.fieldName]=i.files.length==0?undefined:i.files[0]});n.shouldShowValidationError=function(t,i){var r=n.getFormPage(i),u=r[t];return(u==null&&console.warn("could not find field",t),u==null||u.$invalid==!1)?!1:r.$invalid&&r.showValidationErrors};n.formDataChanged=function(){angular.forEach(n.formState.actions,function(t){var r=n.validateRules(t.rules),i;switch(t.task){case"core.showfield":case"core.hidefield":i=t.task=="core.showfield";n.fieldVisibility[t.field.formSafeName]=i==r}})};n.getFormPage=function(t){return n.form["formPage"+t]};n.isFirstPage=function(){return n.activePage==0};n.isLastPage=function(){return n.activePage==n.formState.totalPages-1};n.isActivePage=function(t){return n.activePage==t};n.goToNextPage=function(){var t=n.getFormPage(n.activePage);(t.showValidationErrors=!0,t.$invalid)||n.isLastPage()==!1&&n.activePage++};n.goToPreviousPage=function(){n.isFirstPage()==!1&&n.activePage--}}]).directive("fileUpload",function(){return{restrict:"A",scope:!0,link:function(n,t){t.bind("change",function(t){n.$emit("filesSelected",{fieldName:t.target.name,files:t.target.files})})}}}).directive("requiredFile",function(){return{require:"ngModel",link:function(n,t,i,r){r.$setValidity("requiredFile",t.val()!="");t.bind("change",function(){r.$setValidity("requiredFile",t.val()!="");n.$apply(function(){r.$setViewValue(t.val());r.$render()})})}}}).directive("httpPrefix",function(){return{restrict:"A",require:"ngModel",link:function(n,t,i,r){function u(n){return n&&!/^(https?):\/\//i.test(n)&&"http://".indexOf(n)===-1?(r.$setViewValue("http://"+n),r.$render(),"http://"+n):n}r.$formatters.push(u);r.$parsers.splice(0,0,u)}}}).directive("actionField",function(){return{restrict:"A",scope:!1,link:function(n,t,i){n.$watch("fieldVisibility."+i.actionField,function(n){n!=undefined&&t[n?"removeClass":"addClass"]("ng-hide")},!0)}}});var formEditorConditions={};addFormEditorCondition("core.fieldisnotempty",function(n,t){return t!=null});addFormEditorCondition("core.fieldisempty",function(n,t,i){return!getFormEditorCondition("core.fieldisnotempty")(n,t,i)});addFormEditorCondition("core.fieldvalueisnot",function(n,t){return(t+""||"").toLowerCase()!=(n.condition.expectedFieldValue+""||"").toLowerCase()});addFormEditorCondition("core.fieldvalueis",function(n,t,i){return!getFormEditorCondition("core.fieldvalueisnot")(n,t,i)});addFormEditorCondition("core.fieldvaluesdonotmatch",function(n,t,i){var r=i[n.condition.otherFieldName];return(t||"").toLowerCase()!=(r||"").toLowerCase()});addFormEditorCondition("core.fieldvaluesmatch",function(n,t,i){return!getFormEditorCondition("core.fieldvaluesdonotmatch")(n,t,i)});angular.module("ngCheckboxes",[]).directive("mtTo",["$timeout",function(n){return{restrict:"A",controller:["$parse","$attrs","$scope",function(t,i,r){var f=t(i.mtTo),e=f.assign,u=this,o=t(i.mtOptions);this.setterTimeout=null;this.options=function(){return o(r)||{debounce:0}};this.get=function(){return f(r)||[]};this.set=function(n){return e(r,angular.copy(n))};this.indexOf=function(n){for(var i=u.get(),t=0,r=i.length;t<r;t++)if(angular.equals(i[t],n))return t;return-1};this.add=function(t){var i=this.options();i.disabled||(this.setterTimeout&&n.cancel(this.setterTimeout),this.setterTimeout=n(function(){if(-1===u.indexOf(t)){var n=u.get();n.push(t);u.set(n)}},i.debounce))};this.remove=function(t){var i=this.options();i.disabled||(this.setterTimeout&&n.cancel(this.setterTimeout),this.setterTimeout=n(function(){var i=u.indexOf(t),n;-1!==i&&(n=u.get(),n.splice(i,1),u.set(n))},i.debounce))}}]}}]).directive("mtCheckbox",[function(){function t(){return"mtCheckBox_"+ ++n}var n=0;return{restrict:"A",require:["mtCheckbox","^mtTo","?ngModel"],controller:["$attrs","$parse","$scope",function(n,i,r){var u=i(n.mtCheckbox),f=u.assign;""===n.mtCheckbox?this.value=!!n.name&&""!==n.name?n.name:t():angular.isFunction(f)?Object.defineProperty(this,"value",{enumerable:!0,get:function(){return u(r)},set:function(n){f(r,n)}}):this.value=u(r);this.state=undefined}],link:{pre:function(n,t,i,r){var u=r[0],e=r[1],f=r[2];if(u.hasNgModel=!!f,u.hasNgModel)n.$watch(i.ngModel,function(n,t){n!==t&&u.set(n)});else t.on("change",function(){u.set(!u.state)});n.$watchCollection(function(){return-1!==e.indexOf(u.value)},function(n){u.set(n)});u.set=function(n){if(u.hasNgModel&&n!==f.$modelValue){f.$setViewValue(n);return}u.state!==n&&"boolean"==typeof n&&(u.state=!!n,t[0].checked=u.state,e[u.state?"add":"remove"](u.value))}}}}}])