function displayMessage(n,t,i){var r=$("#formwidget_success_"+n),u=$("#formwidget_error_"+n);r.html("");u.html("");t?u.html(i):r.html(i)}function validateRecaptcha(n){const t=n.sitekey;grecaptcha.ready(function(){try{grecaptcha.execute(t,{action:"formSubmit"}).then(function(t){$.ajax({url:"/api/Form/?formId="+n.section.FormTemplateId+"&captchaResponse="+t,data:{"":n.questionResponseList},dataType:"json",type:"POST",cache:!1,success:function(t){n.showSpinner=!1;t.success?(displayMessage(n.formwidgetid,!1,"Thank you, your form has been successfully sent."),n.disable=!0):displayMessage(n.formwidgetid,!0,t.message)},error:function(t){n.showSpinner=!1;console.error(err);alert(t)}})})}catch(err){n.showSpinner=!1;console.error(err);$("#recaptcha_failed").removeClass("hide")}})}Vue.component("section-nav",{template:'<ol class="step-indicator">        <li v-for="section in sections" is="section-nav-step" :section="section" :sectioncount="sections.length" :currentsection="currentsection"><\/li>    <\/ol>',data:function(){return{sectionIndicator:!1}},props:["section","currentsection","sections","sectioncount"]});Vue.component("section-nav-step",{template:'<li :class="sectionIndicator">        <div v-if="section.Index == 1 || section.Index == sectioncount">            <div class="step">{{section.Index}}<\/div>        <\/div>        <div v-if="section.Index == currentsection && (section.Index != 1 && section.Index != sectioncount)">            <div class="progress-step">{{section.Index}}<\/div>        <\/div>    <\/li>',props:["section","currentsection","sectioncount"],computed:{sectionIndicator:function(){return{active:this.section.Index===this.currentsection,complete:this.currentsection>this.section.Index}}}});Vue.component("question-nav",{template:'<ol class="step-indicator">        <li v-for="question in questions" is="question-nav-step" :question="question" :questioncount="questioncount" :currentquestion="currentquestion" :currentsection="currentsection" :section="section"><\/li>    <\/ol>',data:function(){return{questionIndicator:!1}},props:["section","questions","question","currentquestion","questioncount","currentsection"]});Vue.component("question-nav-step",{template:'<li :class="questionIndicator">        <div v-show="question.Index == 1 || question.Index == questioncount">            <div class="step">Q{{question.Index}}<\/div>        <\/div>        <div v-if="question.Index == currentquestion && (question.Index != 1 && question.Index != questioncount)">            <div class="progress-step">Q{{question.Index}}<\/div>        <\/div>    <\/li>',props:["section","question","currentquestion","questioncount","currentsection"],computed:{questionIndicator:function(){return{active:this.question.Index===this.currentquestion,complete:this.currentquestion>this.question.Index}}}});Vue.component("section-body",{template:'<div>        <div class="section-details">            <p class="title"><strong>{{section.Title}}<\/strong><\/p>        <\/div>        <question-body v-for="question in questions" :key="question.Index" :question="question" :currentquestion="currentquestion" v-show="question.Index==currentquestion"><\/question-body>    <\/div>',props:["section","currentquestion","question","currentsection","questions"]});Vue.component("question-body",{template:'<div>        <div class="question-details">            <p class="title"><strong>{{question.Text}} <span v-if="question.IsRequired" class="required">*<\/span><\/strong><\/p>        <\/div>        <text-type v-if="question.FormQuestionTypeId==1" :question="question"><\/text-type>        <paragraph-text-type v-if="question.FormQuestionTypeId==2" :question="question"><\/paragraph-text-type>        <date-type v-if="question.FormQuestionTypeId==3" :question="question"><\/date-type>        <radio-button-list-type v-if="question.FormQuestionTypeId==4" :question="question"><\/radio-button-list-type>        <checkbox-type v-if="question.FormQuestionTypeId==5" :question="question"><\/checkbox-type>        <drop-down-list-type v-if="question.FormQuestionTypeId==6" :question="question"><\/drop-down-list-type>        <yes-no-type v-if="question.FormQuestionTypeId==7" :question="question"><\/yes-no-type>    <\/div>',props:["currentquestion","question"]});Vue.component("text-type",{template:'<div>        <input type="text" class="form-control" v-model="question.Answer" :aria-label="question.Text" />    <\/div>',props:["question"]});Vue.component("paragraph-text-type",{template:'<div>        <textarea type="text" class="form-control" v-model="question.Answer" :aria-label="question.Text"/>    <\/div>',props:["question"]});Vue.component("date-type",{template:'<div>        <div class="input-group">            <input type="date" class="form-control" v-model="question.Answer" :aria-label="question.Text"/>        <\/div>    <\/div>',props:["question"]});Vue.component("radio-button-list-type",{data:function(){return{selected:[]}},computed:{IsOther:function(){return this.selected==="Other"?!0:!1}},methods:{updateRadioAnswer:function(n,t){this.$set(t,"Answer",n)}},template:'<div>        <div class="radio" v-for="presetAnswer in question.PresetAnswers">            <label class="radio-inline"><input type="radio" class="form-control" v-model="selected" name="presetAnswer.Text" v-on:change="updateRadioAnswer(presetAnswer.Id, question)" v-bind:value="presetAnswer.Text"> {{presetAnswer.Text}}<\/label>        <\/div>        <div v-show="IsOther">            <input type="text" class="form-control" v-model="question.OtherAnswer" placeholder="Please enter other details" aria-label="Please enter other details" />        <\/div>    <\/div>',props:["question"]});Vue.component("checkbox-type",{data:function(){return{selected:[],checkboxClass:""}},created:function(){this.checkboxClass="check"+this.question.Id},computed:{IsOther:function(){for(let n=0;n<this.selected.length;n++)if(this.selected[n]==="Other")return!0;return!1}},methods:{updateCheckAnswer:function(n){var t="";$("."+this.checkboxClass).each(function(){if($(this).is(":checked")){var n=$(this);t=t===""?this.id:t+","+this.id}});this.$set(n,"Answer",t)}},template:'<div>        <div class="checkbox" v-for="presetAnswer in question.PresetAnswers">            <label ><input type="checkbox" :class="checkboxClass" v-model="selected" :id="presetAnswer.Id" v-on:change="updateCheckAnswer(question)" v-bind:value="presetAnswer.Text"> {{presetAnswer.Text}}<\/label>        <\/div>         <div v-show="IsOther">            <input type="text" class="form-control" v-model="question.OtherAnswer" placeholder="Please enter other details" aria-label="Please enter other details"/>        <\/div>    <\/div>',props:["question"]});Vue.component("drop-down-list-type",{data:function(){return{selected:[]}},computed:{IsOther:function(){return this.selected.text==="Other"?!0:!1}},methods:{updateDropDownAnswer:function(n,t){this.$set(t,"Answer",n.value)}},template:'<div>        <select :aria-label="question.Text" class="form-control" v-model="selected" v-on:change="updateDropDownAnswer(selected, question)">            <option v-for="presetAnswer in question.PresetAnswers" :id="presetAnswer.Id" v-bind:value="{value:presetAnswer.Id,text:presetAnswer.Text}">{{presetAnswer.Text}}<\/option>        <\/select>        <div v-show="IsOther">            <input type="text"class="form-control" v-model="question.OtherAnswer" placeholder="Please enter other details" aria-label="Please enter other details" />        <\/div>    <\/div>',props:["question"]});Vue.component("yes-no-type",{template:'<div>        <label class="radio-inline"><input type="radio" value="true" v-model="question.Answer"> Yes<\/label>        <label class="radio-inline"><input type="radio" value="false" v-model="question.Answer"> No<\/label>    <\/div>',props:["question"]});Vue.component("all-footer",{template:'<div class="step-wrapper row" :class="{ \'active\': active }">   <div class="col-md-2">      <div class="pull-left">     <button class="step-caret"  v-on:click="lastStep()" :disabled="isfirststep || disable" aria-label="Previous question">      <i class="fa fa-chevron-left"><\/i>    <\/button>     <\/div><\/div>       <div class="col-md-8">      <question-nav :questions="questions" :currentquestion="currentquestion" :questioncount="questions.length" :section="section" :currentsection="currentsection"><\/question-nav>     <\/div>     <div class="col-md-2">      <div class="pull-right">   <div v-if="!islaststep">     <button class="step-caret" :disabled="disable" v-on:click="nextStep()" aria-label="Next question">     <i :class="[showSpinner ? \'fa fa-spinner fa-spin\': \'fa fa-chevron-right\' ]" :style="{\'font-size:14px\':showSpinner}"><\/i><\/button><\/div><div v-if="islaststep"><button class="step-caret" :disabled="disable" v-on:click="onSubmit()">     <i :class="[showSpinner ? \'fa fa-spinner fa-spin\': \'fa fa-check\' ]" :style="{\'font-size:14px\':showSpinner}"><\/i><\/button><\/div><\/div><\/div><\/div><\/div>',props:["section","sections","sectioncount","currentsection","currentquestion","questioncount","questions","formwidgetid","sitekey"],data:function(){return{questionResponseList:[],disable:!1,showSpinner:!1}},computed:{active:function(){return this.section.Index==this.currentsection},isfirststep:function(){return this.currentsection==1&&this.currentquestion==1},islaststep:function(){var t=this.questioncount!=0,n=!1;return this.currentsection==this.sectioncount&&(n=t?this.currentquestion==this.questioncount:!0),n}},methods:{nextStep:function(){var n=this,t,i;n.showSpinner=!0;t=this.questions[this.currentquestion-1];i=!1;t!=null&&(i=t.OtherAnswer!=null);$.ajax({type:"POST",url:"/api/Question/?formId="+this.section.FormTemplateId,data:{QuestionId:t.Id,Answer:t.Answer,OtherAnswer:t.OtherAnswer,IsOtherOption:i},success:function(r){if(n.showSpinner=!1,$("#formwidget_success_"+n.formwidgetid).html(""),$("#formwidget_error_"+n.formwidgetid).html(""),r.success){var u={QuestionId:t.Id,Answer:t.Answer,OtherAnswer:t.OtherAnswer,IsOtherOption:i};n.questionResponseList.push(u);n.$emit("step-change",!0,n.currentsection,n.sectioncount,n.currentquestion,n.questioncount)}else displayMessage(n.formwidgetid,!0,r.message)},error:function(t){n.showSpinner=!1;alert(t)}})},lastStep:function(){var n,t,i;$("#formwidget_error_"+this.formwidgetid).html("");n=0;t=0;this.currentsection>0&&(t=this.currentsection-2,i=this.sections[t],i!=null&&(n=i.Questions.length));this.$emit("step-change",!1,this.currentsection,this.sectioncount,this.currentquestion,this.questioncount,n)},onSubmit:function(){let n=this;n.showSpinner=!0;const t=this.questions[this.currentquestion-1];let i=!1;t!=null&&(i=t.OtherAnswer!=null);let r=[];this.sections.forEach(function(n){const t=n.Questions;t.forEach(function(n){r.push({QuestionId:n.Id,Answer:n.Answer,OtherAnswer:n.OtherAnswer,IsOtherOption:n.IsOtherOption})})});$.ajax({type:"POST",url:"/api/Question/?formId="+this.section.FormTemplateId,data:{QuestionId:t.Id,Answer:t.Answer,OtherAnswer:t.OtherAnswer,IsOtherOption:i},success:function(t){t.success?(n.questionResponseList=r,validateRecaptcha(n)):(n.showSpinner=!1,displayMessage(n.formwidgetid,!0,t.message))},error:function(t){n.showSpinner=!1;alert(t)}})}}})