!function(e){var t,r="";(t=e(".ur-frontend-form form, form.cart, form.checkout")).hasClass("edit-profile")&&(r="user_registration_");var i={$user_registration:t,init:function(){this.add_validation_methods(),this.load_validation(),this.init_inputMask(),this.init_tooltipster(),this.$user_registration.on("input validate change",".input-text, select, input:checkbox input:radio",this.validate_field),e(".input-text").keypress(function(t){$this=e(this);var r=Number($this.attr("max-words")),i=$this.val().split(" ").length;void 0!==r&&i>r&&t.preventDefault()}),e("[type='number']").keypress(function(t){var r=t.keyCode||t.which,i=e(this).val();46===r&&-1===i.indexOf(".")||!(r<48||r>57)||t.preventDefault()})},init_inputMask:function(){"undefined"!=typeof e.fn.inputmask&&e(".ur-masked-input").inputmask()},init_tooltipster:function(){if("undefined"!=typeof tooltipster){var t={theme:"tooltipster-borderless",maxWidth:200,multiple:!0,interactive:!0,position:"bottom",contentAsHTML:!0,functionInit:function(e,t){var r=jQuery(t.origin).attr("data-tip");r&&e.content(r)}};e(".user-registration-help-tip").tooltipster(t)}},add_validation_methods:function(){e.validator.methods.email=function(e,t){var r=new RegExp(/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i);return this.optional(t)||r.test(e)},e.validator.methods.required=function(t,r,i){if(!this.depend(i,r))return"dependency-mismatch";if("select"===r.nodeName.toLowerCase()){var a=e(r).val();return a&&a.length>0}return this.checkable(r)?this.getLength(t,r)>0:t.trim()!==undefined&&null!==t.trim()&&t.trim().length>0},e.validator.addMethod("wordsValidator",function(e,t,r){var i=e.trim().split(/\s+/).length;return""==e||i>=r},e.validator.format("Please enter at least {0} words.")),e.validator.addMethod("lengthValidator",function(e,t,r){return e.length<=r},e.validator.format("Please enter less than {0} characters.")),e.validator.addMethod("SpecialCharacterValidator",function(e,t){var r=new RegExp(/^(?=.{3,20}$)[a-zA-Z][a-zA-Z0-9]*(?: [a-zA-Z0-9]+)*$/);return this.optional(t)||r.test(e)},user_registration_params.message_username_character_fields),e.validator.addMethod("checkLimit",function(t,r,i){var a=parseInt(i||0,10),s="";if(e(r).closest(".field-checkbox").length){s=e(r).closest("ul").find('input[type="checkbox"]:checked')}else if(e(r).closest(".field-multi_select2").length)s=e(r).val();else if(e(r).closest(".field-multiple_choice").length){s=e(r).closest("ul").find('input[type="checkbox"]:checked')}return 0===a||s.length<=a},e.validator.format(user_registration_params.user_registration_checkbox_validation_message))},load_validation:function(){if("undefined"==typeof e.fn.validate)return!1;var t=e(document).find('[name="quantity"]');""===t.attr("max")&&t.removeAttr("max");var r=this;r.$user_registration.each(function(){var t=e(this),i=r.custom_validation(t);r.custom_validation_messages(),t.validate({errorClass:"user-registration-error",validClass:"user-registration-valid",ignore:function(t,r){return!(!e(r).closest(".ur-field-item").is(":hidden")&&!e(r).closest(".ur_membership_frontend_input_container").is(":hidden"))||(!!e(r).hasClass("ur-flatpickr-field")||r.id&&(r.id.startsWith("billing_")||r.id.startsWith("shipping_")||r.id.startsWith("quantity_")))},rules:i.rules,messages:i.messages,focusInvalid:!1,invalidHandler:function(t,r){r.numberOfInvalids()&&e(window).scrollTop(e(r.errorList[0].element).offset().top)},errorPlacement:function(t,r){if(r.is("#password_2"))r.parent().after(t);else if("radio"===r.attr("type")||"checkbox"===r.attr("type")||"password"===r.attr("type"))r.parent().parent().parent().append(t);else if(r.is("select")&&r.attr("class").match(/date-month|date-day|date-year/))0===r.parent().find("label.user-registration-error:visible").length&&r.parent().find("select:last").after(t);else if(r.hasClass("ur-smart-phone-field")){var i=r.closest(".form-row");i.find("#"+r.data("id")+"-error").remove(),i.append(t)}else"number"===r.attr("type")&&r.hasClass("ur-range-input")?t.insertAfter(r.closest(".ur-range-row").find(".ur-range-number")):"text"===r.attr("type")&&r.hasClass("input-timepicker")?r.hasClass("timepicker-end")||t.insertAfter(r.parent()):(e(document).trigger("user-registration-append-error-messages",r),r.hasClass("urfu-file-input")||r.closest(".field-multi_select2").length?t.insertAfter(r.parent().parent()):"number"===r.attr("type")&&r.hasClass("ur-quantity")?t.insertAfter(r.parent()):"text"===r.attr("type")&&r.hasClass("ur-payment-price")?t.insertAfter(r):"url"===r.attr("type")?t.insertAfter(r.parent()):t.insertAfter(r.parent().parent()))},highlight:function(t,r,i){var a=e(t);a.closest(".form-row"),a.attr("name");a.removeClass("ur-input-border-green").addClass("ur-input-border-red")},unhighlight:function(t,r,i){var a=e(t),s=a.closest(".form-row"),n=a.attr("name");a.removeClass("ur-input-border-red").addClass("ur-input-border-green"),"radio"===a.attr("type")||"checkbox"===a.attr("type")?s.find("input[name='"+n+"']").addClass(i).removeClass(r):a.addClass(i).removeClass(r),s.removeClass("user-registration-has-error")},submitHandler:function(t){return!(e(t).hasClass("register")||e(t).hasClass("edit-profile")&&user_registration_params.ajax_submission_on_edit_profile)}})})},validate_field:function(t){e.extend(e.validator.messages,{required:user_registration_params.message_required_fields,url:user_registration_params.message_url_fields,email:user_registration_params.message_email_fields,number:user_registration_params.message_number_fields,confirmpassword:user_registration_params.message_confirm_password_fields});var r=e(this),i=r.closest(".form-row"),a=!0,s=i.is(".validate-required"),n=i.is(".validate-email"),u=t.type;if("input"===u&&i.removeClass("user-registration-invalid user-registration-invalid-required-field user-registration-invalid-email user-registration-validated"),"validate"===u||"change"===u){if(s&&("checkbox"!==r.attr("type")||r.is(":checked")?""===r.val()&&(i.removeClass("user-registration-validated").addClass("user-registration-invalid user-registration-invalid-required-field"),a=!1):(i.removeClass("user-registration-validated").addClass("user-registration-invalid user-registration-invalid-required-field"),a=!1)),n&&r.val()){new RegExp(/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i).test(r.val())||(i.removeClass("user-registration-validated").addClass("user-registration-invalid user-registration-invalid-email"),a=!1)}a&&i.removeClass("user-registration-invalid user-registration-invalid-required-field user-registration-invalid-email").addClass("user-registration-validated")}},custom_validation:function(t){var i={},a={},s=t.find("[data-min-words]");if(s.length&&e.each(s,function(t,r){var s={};$this=e(r),s.wordsValidator=$this.data("min-words");var n=$this.data("id");i[n]=s,a[n]={wordsValidator:user_registration_params.message_min_words_fields.replace("%qty%",s.wordsValidator)}}),t.find("#user_confirm_email").length){var n=t.closest(".ur-frontend-form").attr("id");i.user_confirm_email={required:!0,equalTo:"#"+n+" #user_email"},a.user_confirm_email={required:user_registration_params.message_required_fields,equalTo:user_registration_params.message_confirm_email_fields}}if(t.hasClass("edit-password"))i.password_2={equalTo:"#password_1"},a.password_2=user_registration_params.message_confirm_password_fields;else if(t.hasClass("register")&&t.find("#user_confirm_password").length){n=t.closest(".ur-frontend-form").attr("id");i.user_confirm_password={required:!0,equalTo:"#"+n+" #user_pass"},a.user_confirm_password={required:user_registration_params.message_required_fields,equalTo:user_registration_params.message_confirm_password_fields}}var u=t.find("#user_login"),d={};u.length&&void 0!==u.data("username-length")&&(d.lengthValidator=u.data("username-length")),void 0===u.data("username-character")&&t.closest(".ur-frontend-form").find(".register").length&&(d.SpecialCharacterValidator=!0),i.user_login=d;var o=t.find(".field-checkbox"),l=t.find(".field-multi_select2"),F=t.find(".field-multiple_choice");return o.length&&o.each(function(){e(this).attr("data-field-id").indexOf("user_registration_")>-1&&(r=""),i[r+e(this).attr("data-field-id")+"[]"]={checkLimit:e(this).find("ul").data("choice-limit")?e(this).find("ul").data("choice-limit"):0}}),l.length&&l.each(function(){e(this).attr("data-field-id").indexOf("user_registration_")>-1&&(r=""),i[r+e(this).attr("data-field-id")+"[]"]={checkLimit:e(this).find("select").data("choice-limit")?e(this).find("select").data("choice-limit"):0}}),F.length&&F.each(function(){i[r+e(this).data("field-id")+"[]"]={checkLimit:e(this).find("ul").data("choice-limit")?e(this).find("ul").data("choice-limit"):0}}),{rules:i,messages:a}},custom_validation_messages:function(){e.validator.messages.required=user_registration_params.message_required_fields,e.validator.messages.url=user_registration_params.message_url_fields,e.validator.messages.email=user_registration_params.message_email_fields,e.validator.messages.number=user_registration_params.message_number_fields,e.validator.messages.confirmpassword=user_registration_params.message_confirm_password_fields,e.validator.messages.max=function(e,t){return user_registration_params.message_confirm_number_field_max.replace("%qty%",t.max)},e.validator.messages.min=function(e,t){return user_registration_params.message_confirm_number_field_min.replace("%qty%",t.min)},e.validator.messages.step=function(e,t){return user_registration_params.message_confirm_number_field_step.replace("%qty%",t.step)}}};e(window).on("load",function(){i.init()}),e(window).on("user_registration_repeater_modified",function(){i.init()})}(jQuery);