class strongValidation{constructor(e){this.form=jQuery(e).find("form"),this.formID=this.form.data("formid"),this.defaults={ajaxUrl:"",display:{successMessage:!1},scroll:{onError:!0,onErrorOffset:100,onSuccess:!0,onSuccessOffset:100},fields:{}},this.settings={},this.rules={},this.init()}setOpts(e){this.settings=jQuery.extend({},this.defaults,e)}setRules(){for(var e=0;e<this.settings.fields.length;e++)"rating"===this.settings.fields[e].type&&1===this.settings.fields[e].required&&(this.rules[this.settings.fields[e].name]={ratingRequired:!0})}init(){var e={};void 0!==window.strongForm&&(e=this.form.data("config")),this.setOpts(e),this.settings.display.successMessage?this.scrollOnSuccess():(this.setRules(),this.changeEvents(),this.customValidators(),this.validateForm())}changeEvents(){jQuery('input[type="text"], input[type="url"], input[type="email"], textarea',".wpmtst-submission-form").on("change blur",(function(e){e.target.value=e.target.value.trim()})),jQuery("input[type=url]").on("change",(function(){this.value.length&&!/^https*:\/\//.test(this.value)&&(this.value="https://"+this.value)}));for(var e=document.getElementsByClassName("strong-rating"),s=0;s<e.length;s++)e[s].addEventListener("click",this.handleRadioEvent,!0),e[s].addEventListener("keyup",this.handleRadioEvent,!0),e[s].addEventListener("change",(function(){jQuery(this).valid()}),!0)}disableForm(){jQuery('.strong-form-wait[data-formid="'+this.formID+'"]').show(),this.form.find(".wpmtst_submit_testimonial").prop("disabled",!0)}enableForm(){jQuery('.strong-form-wait[data-formid="'+this.formID+'"]').hide(),this.form.find(".wpmtst_submit_testimonial").prop("disabled",!1)}handleRadioEvent(e){if(e.keyCode>=48&&e.keyCode<=53){var s=e.keyCode-48;jQuery(this).find('input[type="radio"][value='+s+"]").trigger("click")}}customValidators(){jQuery.validator.addMethod("ratingRequired",(function(e,s){return jQuery(s).find("input:checked").val()>0}),jQuery.validator.messages.required)}validateForm(){var e=this;this.form.validate({onfocusout:!1,focusInvalid:!1,invalidHandler:function(s,t){if(t.numberOfInvalids())if(e.settings.scroll.onError){if(void 0!==t.errorList[0]){var i=jQuery(t.errorList[0].element),r=i.closest(".form-field").offset().top-e.settings.scroll.onErrorOffset;jQuery("html, body").animate({scrollTop:r},800,(function(){i.focus()}))}}else t.errorList[0].element.focus()},submitHandler:function(){if(e.disableForm(),""!==e.settings.ajaxUrl){window.onbeforeunload=function(){return"Please wait while the form is submitted."};var s={url:e.settings.ajaxUrl,data:{action:"wpmtst_form2"},success:function(s){e.showResponse(s)}};e.form.ajaxSubmit(s)}else e.form.get(0).submit()},rules:this.rules,errorPlacement:function(e,s){e.appendTo(s.closest("div.form-field"))},highlight:function(e,s,t){"checkbox"===e.type||"rating"===jQuery(e).data("fieldType")?jQuery(e).closest(".field-wrap").addClass(s).removeClass(t):jQuery(e).addClass(s).removeClass(t)},unhighlight:function(e,s,t){"checkbox"===e.type||"rating"===jQuery(e).data("fieldType")?jQuery(e).closest(".field-wrap").removeClass(s).addClass(t):jQuery(e).removeClass(s).addClass(t)}})}showResponse(e){window.onbeforeunload=null,this.enableForm();var s=JSON.parse(e);if(s.success)this.form.parent().html(s.message),this.scrollOnSuccess();else for(var t in s.errors)s.errors.hasOwnProperty(t)&&this.form.children(".field-"+t).find("span.error").remove().end().append('<span class="error">'+s.errors[t]+"</span>")}scrollOnSuccess(){var e,s;this.settings.scroll.onSuccess&&((e=jQuery(".wpmtst-form-id-"+this.formID).find(".wpmtst-testimonial-success").offset())&&(s=e.top-this.settings.scroll.onSuccessOffset,jQuery("#wpadminbar").length&&(s-=32),jQuery("html, body").animate({scrollTop:s},800)))}};