%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /var/www/html/higroup/wp-content/plugins/user-registration/assets/js/frontend/
Upload File :
Create Path :
Current File : /var/www/html/higroup/wp-content/plugins/user-registration/assets/js/frontend/user-registration.js

/* global  user_registration_params */
/* global  ur_google_recaptcha_code */
/* global  grecaptcha */
(function ($) {
	var user_registration_form_init = function () {
		var ursL10n = user_registration_params.ursL10n;

		$.fn.ur_form_submission = function () {
			// traverse all nodes
			return this.each(function () {
				// express a single node as a jQuery object
				var $this = $(this);
				var available_field = [];
				var required_fields =
					user_registration_params.form_required_fields;

				var form = {
					init: function () {},
					get_form_data: function (form_id) {
						if (
							form_id ===
								$this.closest(".ur-frontend-form").attr("id") ||
							$(".ur-frontend-form")
								.find("form.edit-profile")
								.hasClass("user-registration-EditProfileForm")
						) {
							var this_instance = this;
							var form_data = [];
							var frontend_field = form.separate_form_handler("");

							var multi_value_field = new Array();
							$.each(frontend_field, function () {
								var field_name = $(this).attr("name");
								var single_field = form.separate_form_handler(
									'[name="' + field_name + '"]'
								);

								if (single_field.length < 2) {
									var single_data = this_instance.get_fieldwise_data(
										$(this)
									);
									var invite_code = document.querySelector(
										".field-invite_code"
									);

									if (
										"invite_code" === single_data.field_name
									) {
										if (
											"none" !== invite_code.style.display
										) {
											form_data.push(single_data);
										}
									} else {
										form_data.push(single_data);
									}
								} else {
									if (
										$.inArray(
											field_name,
											multi_value_field
										) < 0
									) {
										multi_value_field.push(field_name);
									}
								}
							});

							for (
								var multi_start = 0;
								multi_start < multi_value_field.length;
								multi_start++
							) {
								var field = form.separate_form_handler(
									'[name="' +
										multi_value_field[multi_start] +
										'"]'
								);

								var node_type = field
									.get(0)
									.tagName.toLowerCase();
								var field_type =
									"undefined" !== field.eq(0).attr("type")
										? field.eq(0).attr("type")
										: "null";
								var field_value = new Array();
								$.each(field, function () {
									var this_field = $(this);

									var this_field_value = "";

									switch (
										this_field.get(0).tagName.toLowerCase()
									) {
										case "input":
											switch (field_type) {
												case "checkbox":
												case "radio":
													this_field_value = this_field.prop(
														"checked"
													)
														? this_field.val()
														: "";
													break;
												default:
													this_field_value = this_field.val();
											}
											break;
										case "select":
											this_field_value = this_field.val();
											break;
										case "textarea":
											this_field_value = this_field.val();
											break;
										default:
									}
									if (this_field_value !== "") {
										field_value.push(this_field_value);
									}
								});

								if (field_type == "checkbox") {
									var field_value_json = JSON.stringify(
										field_value
									);
								} else if (field_type == "radio") {
									var field_value_json = field_value[0];
								} else {
									var field_value_json = field.val();
								}

								var single_form_field_name =
									multi_value_field[multi_start];
								single_form_field_name = single_form_field_name.replace(
									"[]",
									""
								);

								var field_data = {
									value: field_value_json,
									field_type: field_type,
									label: field.eq(0).attr("data-label"),
									field_name: single_form_field_name,
								};

								form_data.push(field_data);
							}

							$(
								document
							).trigger(
								"user_registration_frontend_form_data_filter",
								[form_data]
							);
							return form_data;
						}
					},
					get_fieldwise_data: function (field) {
						var formwise_data = {};
						var node_type = field.get(0).tagName.toLowerCase();
						var field_name =
							"undefined" !== field.attr("name")
								? field.attr("name")
								: "null";
						var phone_id = [];

						$(".field-phone").each(function () {
							var phone_field_id = $(this)
								.find(".form-row")
								.attr("id");
							// Check if smart phone field is enabled.
							if (
								$(this)
									.find(".form-row")
									.find("#" + phone_field_id)
									.hasClass("ur-smart-phone-field")
							) {
								phone_id.push(
									$(this).find(".form-row").attr("id")
								);
							}
						});
						var field_type =
							"undefined" !== field.attr("type")
								? field.attr("type")
								: "null";
						var textarea_type = field
							.get(0)
							.className.split(" ")[0];
						formwise_data.value = "";
						switch (node_type) {
							case "input":
								switch (field_type) {
									case "checkbox":
									case "radio":
										formwise_data.value = field.prop(
											"checked"
										)
											? field.val()
											: "";
										break;
									default:
										formwise_data.value = field.val();
								}

								if (ur_includes(phone_id, field_name)) {
									formwise_data.value = field
										.siblings('input[type="hidden"]')
										.val();
								}
								break;
							case "select":
								formwise_data.value = field.val();
								break;
							case "textarea":
								switch (textarea_type) {
									case "wysiwyg":
										tinyMCE.triggerSave();
										formwise_data.value = field.val();
										break;
									default:
										formwise_data.value = field.val();
								}
								break;
							default:
						}

						$(
							document
						).trigger(
							"user_registration_frontend_form_data_render",
							[field, formwise_data]
						);
						formwise_data.field_type =
							"undefined" !== field.eq(0).attr("type")
								? field.eq(0).attr("type")
								: "null";
						if (field.attr("data-label") !== undefined) {
							formwise_data.label = field.attr("data-label");
						} else if (
							field.prev().length &&
							field.prev().get(0).tagName.toLowerCase() ===
								"label"
						) {
							formwise_data.label = field.prev().text();
						} else {
							formwise_data.label = formwise_data.field_type;
						}
						if (
							field.attr("name") !== undefined &&
							field.attr("name") !== ""
						) {
							formwise_data.field_name = field.attr("name");
							formwise_data.field_name = formwise_data.field_name.replace(
								"[]",
								""
							);
						} else {
							formwise_data.field_name = "";
						}
						if (
							$.inArray(
								formwise_data.field_name,
								required_fields.join(",").trim()
							) >= 0
						) {
							available_field.push(formwise_data.field_name);
						}
						return formwise_data;
					},
					show_message: function (
						message,
						type,
						$submit_node,
						position
					) {
						$submit_node.find(".ur-message").remove();

						// Check if the form is edit-profile form.
						if (
							$(".ur-frontend-form")
								.find("form.edit-profile")
								.hasClass("user-registration-EditProfileForm")
						) {
							var wrapper = $(
								'<div class="user-registration-' + type + '"/>'
							);
							wrapper.append(message);
							wrapper.insertBefore(
								".user-registration-MyAccount-navigation"
							);
						} else {
							var wrapper = $(
								'<div class="ur-message user-registration-' +
									type +
									'" id="ur-submit-message-node"/>'
							);
							wrapper.append(message);

							// Check the position set by the admin and append message accordingly.
							if ("1" === position) {
								$submit_node.append(wrapper);
							} else {
								$submit_node.prepend(wrapper);
							}
						}
					},
					/**
					 * Handles registration form submit and edit-profile form submit instances separately.
					 *
					 * @since  1.8.5
					 *
					 * @param element Element to search for in the template.
					 */
					separate_form_handler: function (element) {
						var field = "";

						// Check if the form is edit-profile form.
						if (
							$(".ur-frontend-form")
								.find("form.edit-profile")
								.hasClass("user-registration-EditProfileForm")
						) {
							field = $this
								.find(".user-registration-profile-fields")
								.find(".ur-edit-profile-field" + element);
						} else {
							field = $this
								.closest(".ur-frontend-form")
								.find(".ur-form-grid")
								.find(".ur-frontend-field" + element);
						}

						return field;
					},
					missing_attachment_handler: function name(file_upload) {
						var file_upload_field_array = [];

						//Check if file upload field exists.
						if (1 <= file_upload.length) {
							file_upload.each(function () {
								var file_upload_id = $(this).attr("id");

								if (
									$.inArray(
										file_upload_id,
										file_upload_field_array
									) === -1
								) {
									file_upload_field_array.push(
										file_upload_id
									);
								}
							});

							for (
								var i = 0;
								i < file_upload_field_array.length;
								i++
							) {
								var file_upload_val = $(
									"#" + file_upload_field_array[i]
								)
									.val()
									.split(",");

								for (
									var j = file_upload_val.length;
									j >= 0;
									j--
								) {
									if (!$.isNumeric(file_upload_val[j])) {
										file_upload_val.splice(j, 1);
									}
								}
								$("#" + file_upload_field_array[i]).val(
									file_upload_val
								);
							}
						}
					},
				};

				var events = {
					init: function () {
						this.form_submit_event();
						this.edit_profile_event();
					},
					/**
					 * Handles registration ajax form submission event.
					 *
					 */
					form_submit_event: function () {
						$(".ur-frontend-form").each(function () {
							var $registration_form = $(this);

							$registration_form
								.find("form.register")
								.off("submit")
								.on("submit", function (event) {
									event.preventDefault();

									var $this = $(this);

									// Validator messages.
									$.extend($.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,
									});

									if (
										$this.find(
											".user-registration-password-strength"
										).length > 0
									) {
										var current_strength = $this
											.find(
												".user-registration-password-strength"
											)
											.attr("data-current-strength");
										var min_strength = $this
											.find(
												".user-registration-password-strength"
											)
											.attr("data-min-strength");

										if (
											parseInt(current_strength, 0) <
											parseInt(min_strength, 0)
										) {
											if (
												$this
													.find("#user_pass")
													.val() != ""
											) {
												$this
													.find("#user_pass_error")
													.remove();

												var error_msg_dom =
													'<label id="user_pass_error" class="user-registration-error" for="user_pass">' +
													ursL10n.password_strength_error +
													".</label>";
												$this
													.find(
														".user-registration-password-hint"
													)
													.after(error_msg_dom);
												$this
													.find("#user_pass")
													.attr("aria-invalid", true);
												$this
													.find("#user_pass")
													.trigger("focus");
											}

											return false;
										}
									}

									var $el = $this.find(
										".ur-smart-phone-field"
									);

									if ("true" === $el.attr("aria-invalid")) {
										var wrapper = $el.closest("p.form-row");
										wrapper
											.find(
												"#" + $el.data("id") + "-error"
											)
											.remove();
										var phone_error_msg_dom =
											'<label id="' +
											$el.data("id") +
											"-error" +
											'" class="user-registration-error" for="' +
											$el.data("id") +
											'">' +
											user_registration_params.message_validate_phone_number +
											"</label>";
										wrapper.append(phone_error_msg_dom);
										wrapper
											.find("#" + $el.data("id"))
											.attr("aria-invalid", true);
										return true;
									}

									// Remove word added by form filler in file upload field during submission
									var file_upload = $this.find(
										".urfu-file-input"
									);

									form.missing_attachment_handler(
										file_upload
									);

									var exist_detail = $this
										.find(".uraf-profile-picture-upload")
										.find(".user-registration-error")
										.length;

									if (1 === exist_detail) {
										var profile = $this
											.find(
												".uraf-profile-picture-upload"
											)
											.find(
												".uraf-profile-picture-input"
											);
										var wrapper = $this.find(
											".uraf-profile-picture-upload"
										);
										wrapper
											.find(
												"#" +
													profile.attr("name") +
													"-error"
											)
											.remove();
										wrapper
											.find(
												".uraf-profile-picture-file-error"
											)
											.remove();
										var error_message =
											'<label id="' +
											profile.attr("name") +
											"-error" +
											'" class="user-registration-error" for="' +
											profile.attr("name") +
											'">' +
											user_registration_params.message_required_fields +
											"</label>";
										wrapper
											.find(
												"button.wp_uraf_profile_picture_upload"
											)
											.after(error_message);
									}

									if (!$this.valid()) {
										return;
									}

									$this
										.find(".ur-submit-button")
										.prop("disabled", true);
									var form_data;
									var form_id = 0;
									var form_nonce = "0";
									var captchaResponse = $this
										.find('[name="g-recaptcha-response"]')
										.val();

									try {
										form_data = JSON.stringify(
											form.get_form_data(
												$this
													.closest(
														".ur-frontend-form"
													)
													.attr("id")
											)
										);
									} catch (ex) {
										form_data = "";
									}

									if (
										$(this)
											.closest("form")
											.find(
												'input[name="ur-user-form-id"]'
											).length === 1
									) {
										form_id = $(this)
											.closest("form")
											.find(
												'input[name="ur-user-form-id"]'
											)
											.val();
									}

									if (
										$(this)
											.closest("form")
											.find(
												'input[name="ur_frontend_form_nonce"]'
											).length === 1
									) {
										form_nonce = $(this)
											.closest("form")
											.find(
												'input[name="ur_frontend_form_nonce"]'
											)
											.val();
									}

									var data = {
										action:
											"user_registration_user_form_submit",
										security:
											user_registration_params.user_registration_form_data_save,
										form_data: form_data,
										captchaResponse: captchaResponse,
										form_id: form_id,
										ur_frontend_form_nonce: form_nonce,
									};

									$(
										document
									).trigger(
										"user_registration_frontend_before_form_submit",
										[data, $this]
									);

									if (
										"undefined" !==
										typeof ur_google_recaptcha_code
									) {
										if (
											"1" ===
											ur_google_recaptcha_code.is_captcha_enable
										) {
											var captchaResponse = $this
												.find(
													'[name="g-recaptcha-response"]'
												)
												.val();

											if (0 === captchaResponse.length) {
												form.show_message(
													"<p>" +
														ursL10n.captcha_error +
														"</p>",
													"error",
													$this,
													"1"
												);
												$this
													.find(".ur-submit-button")
													.prop("disabled", false);
												return;
											}

											if (
												ur_google_recaptcha_code.version ==
												"v3"
											) {
												request_recaptcha_token();
											} else {
												for (
													var i = 0;
													i <=
													google_recaptcha_user_registration;
													i++
												) {
													grecaptcha.reset(i);
												}
											}
										}
									}

									$this
										.find(".ur-submit-button")
										.find("span")
										.addClass("ur-front-spinner");

									$.ajax({
										url: user_registration_params.ajax_url,
										data: data,
										type: "POST",
										async: true,
										complete: function (ajax_response) {
											var ajaxFlag = [];
											ajaxFlag["status"] = false;
											$(
												document
											).trigger(
												"user_registration_frontend_before_ajax_complete_success_message",
												[ajax_response, ajaxFlag]
											);
											if (!ajaxFlag["status"]) {
												$this
													.find(".ur-submit-button")
													.find("span")
													.removeClass(
														"ur-front-spinner"
													);
												var redirect_url = $this
													.find(
														'input[name="ur-redirect-url"]'
													)
													.val();

												var message = $(
													'<ul class=""/>'
												);
												var type = "error";

												try {
													var response = JSON.parse(
														ajax_response.responseText
													);

													if (
														typeof response.success !==
															"undefined" &&
														response.success ===
															true &&
														typeof response.data
															.paypal_redirect !==
															"undefined"
													) {
														window.location =
															response.data.paypal_redirect;
													}

													if (
														typeof response.success !==
															"undefined" &&
														response.success ===
															true
													) {
														type = "message";
													}

													if (type === "message") {
														$this
															.find(
																".user-registration-password-hint"
															)
															.remove();
														$this
															.find(
																".user-registration-password-strength"
															)
															.remove();

														if (
															response.data
																.form_login_option ==
															"admin_approval"
														) {
															message.append(
																"<li>" +
																	ursL10n.user_under_approval +
																	"</li>"
															);
														} else if (
															response.data
																.form_login_option ==
															"email_confirmation"
														) {
															message.append(
																"<li>" +
																	ursL10n.user_email_pending +
																	"</li>"
															);
														} else if (
															response.data
																.form_login_option ==
															"payment"
														) {
															message.append(
																"<li>" +
																	response
																		.data
																		.message +
																	"</li>"
															);
														} else {
															message.append(
																"<li>" +
																	(typeof response
																		.data
																		.message ===
																		"undefined")
																	? ursL10n.user_successfully_saved
																	: response
																			.data
																			.message +
																			"</li>"
															);
														}

														if (
															"undefined" !==
															typeof response.data
																.auto_password_generation_success_message
														) {
															message.append(
																"<li>" +
																	response
																		.data
																		.auto_password_generation_success_message +
																	"</li>"
															);
														}

														$this[0].reset();
														jQuery(
															"#billing_country"
														).trigger("change");
														jQuery(
															"#shipping_country"
														).trigger("change");

														if (
															"undefined" !==
																typeof redirect_url &&
															redirect_url !== ""
														) {
															window.setTimeout(
																function () {
																	window.location = redirect_url;
																},
																1000
															);
														} else {
															if (
																typeof response
																	.data
																	.auto_login !==
																	"undefined" &&
																response.data
																	.auto_login
															) {
																location.reload();
															}
														}
													} else if (
														type === "error"
													) {
														if (
															typeof response.data
																.message ===
															"object"
														) {
															$.each(
																response.data
																	.message,
																function (
																	index,
																	value
																) {
																	message.append(
																		"<li>" +
																			value +
																			"</li>"
																	);
																}
															);
														} else {
															message.append(
																"<li>" +
																	response
																		.data
																		.message +
																	"</li>"
															);
														}
													}
												} catch (e) {
													message.append(
														"<li>" +
															e.message +
															"</li>"
													);
												}

												var success_message_position = JSON.parse(
													ajax_response.responseText
												).data.success_message_positon;

												form.show_message(
													message,
													type,
													$this,
													success_message_position
												);

												// Check the position set by the admin and scroll to the message postion accordingly.
												if (
													"1" ===
													success_message_position
												) {
													// Scroll to the bottom on ajax submission complete.
													$(window).scrollTop(
														$this
															.find(
																".ur-button-container"
															)
															.offset().top
													);
												} else {
													// Scroll to the top on ajax submission complete.
													$(window).scrollTop(
														$this
															.closest(
																".ur-frontend-form"
															)
															.offset().top
													);
												}

												$(
													document
												).trigger(
													"user_registration_frontend_after_ajax_complete",
													[
														ajax_response.responseText,
														type,
														$this,
													]
												);
												$this
													.find(".ur-submit-button")
													.prop("disabled", false);
											}
										},
									});
								});
						});
					},
					/**
					 * Handles edit-profile ajax form submission event.
					 *
					 * @since  1.8.5
					 */
					edit_profile_event: function () {
						$("form.user-registration-EditProfileForm").on(
							"submit",
							function (event) {
								var $this = $(this);

								// Validator messages.
								$.extend($.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,
								});

								var $el = $this.find(".ur-smart-phone-field");

								if ("true" === $el.attr("aria-invalid")) {
									var wrapper = $el.closest("p.form-row");
									wrapper
										.find("#" + $el.data("id") + "-error")
										.remove();
									var phone_error_msg_dom =
										'<label id="' +
										$el.data("id") +
										"-error" +
										'" class="user-registration-error" for="' +
										$el.data("id") +
										'">' +
										user_registration_params.message_validate_phone_number +
										"</label>";
									wrapper.append(phone_error_msg_dom);
									wrapper
										.find("#" + $el.data("id"))
										.attr("aria-invalid", true);
									return true;
								}

								var exist_detail = $this
									.find(".uraf-profile-picture-upload")
									.find(".user-registration-error").length;

								if (1 === exist_detail) {
									var profile = $this
										.find(".uraf-profile-picture-upload")
										.find(".uraf-profile-picture-input");
									var wrapper = $this.find(
										".uraf-profile-picture-upload"
									);
									wrapper
										.find(
											"#" +
												profile.attr("name") +
												"-error"
										)
										.remove();
									wrapper
										.find(
											".uraf-profile-picture-file-error"
										)
										.remove();
									var error_message =
										'<label id="' +
										profile.attr("name") +
										"-error" +
										'" class="user-registration-error" for="' +
										profile.attr("name") +
										'">' +
										user_registration_params.message_required_fields +
										"</label>";
									wrapper
										.find(
											"button.wp_uraf_profile_picture_upload"
										)
										.after(error_message);
								}

								if (!$this.valid()) {
									return;
								}

								event.preventDefault();
								$this
									.find(".user-registration-submit-Button")
									.prop("disabled", true);

								// Remove word added by form filler in file upload field during submission
								var file_upload = $this.find(
									".urfu-file-input"
								);

								form.missing_attachment_handler(file_upload);

								var form_data;
								var form_nonce = "0";

								try {
									form_data = form.get_form_data();

									// Handle profile picture
									var profile_picture_url = $(
										"#profile_pic_url"
									).val();

									if (profile_picture_url) {
										form_data.push({
											value: profile_picture_url,
											field_name:
												"user_registration_profile_pic_url",
										});
									}

									form_data = JSON.stringify(form_data);
								} catch (ex) {
									form_data = "";
								}

								var data = {
									action:
										"user_registration_update_profile_details",
									security:
										user_registration_params.user_registration_profile_details_save,
									form_data: form_data,
								};

								$this
									.find(".user-registration-submit-Button")
									.find("span")
									.addClass("ur-front-spinner");

								$.ajax({
									type: "POST",
									url: user_registration_params.ajax_url,
									dataType: "JSON",
									data: data,
									complete: function (ajax_response) {
										$this
											.find("span.ur-front-spinner")
											.removeClass("ur-front-spinner");
										$this
											.closest(".user-registration")
											.find(".user-registration-error")
											.remove();
										$this
											.closest(".user-registration")
											.find(".user-registration-message")
											.remove();

										var message = $('<ul class=""/>');
										var type = "error";

										try {
											var response = JSON.parse(
												ajax_response.responseText
											);

											if (
												typeof response.success !==
													"undefined" &&
												response.success === true
											) {
												type = "message";
											}

											if (
												typeof response.data.message ===
												"object"
											) {
												$.each(
													response.data.message,
													function (index, value) {
														message.append(
															"<li>" +
																value +
																"</li>"
														);
													}
												);
											} else {
												message.append(
													"<li>" +
														response.data.message +
														"</li>"
												);
											}
										} catch (e) {
											message.append(
												"<li>" + e.message + "</li>"
											);
										}

										form.show_message(
											message,
											type,
											$this,
											"0"
										);

										$this
											.find(
												".user-registration-submit-Button"
											)
											.prop("disabled", false);

										// Scroll yo the top on ajax submission complete.
										$(window).scrollTop(
											$(
												".user-registration-MyAccount-navigation"
											).position()
										);
									},
								});
							}
						);
					},
				};
				form.init();
				events.init();
			});
		};

		$(function () {
			// Handle user registration form submit event.
			$(".ur-submit-button").on("click", function () {
				$(this).closest("form.register").ur_form_submission();
			});

			// Handle edit-profile form submit event.
			$(".user-registration-submit-Button").on("click", function () {
				// Check if the form is edit-profile form and check if ajax submission on edit profile is enabled.
				if (
					$(".ur-frontend-form")
						.find("form.edit-profile")
						.hasClass("user-registration-EditProfileForm") &&
					"yes" ===
						user_registration_params.ajax_submission_on_edit_profile
				) {
					$(
						"form.user-registration-EditProfileForm"
					).ur_form_submission();
				}
			});

			var date_flatpickrs = {};

			$(document.body).on("click", "#load_flatpickr", function () {
				var field_id = $(this).data("id");
				var date_flatpickr = date_flatpickrs[field_id];

				// Load a flatpicker for the field, if hasn't been loaded.
				if (!date_flatpickr) {
					var formated_date = $(this)
						.closest(".ur-field-item")
						.find("#formated_date")
						.val();

					if (0 < $(".ur-frontend-form").length) {
						var date_selector = $(".ur-frontend-form #" + field_id)
							.attr("type", "text")
							.val(formated_date);
					} else {
						var date_selector = $(
							".woocommerce-MyAccount-content #" + field_id
						)
							.attr("type", "text")
							.val(formated_date);
					}

					$(this).attr(
						"data-date-format",
						date_selector.data("date-format")
					);
					$(this).attr("data-mode", date_selector.data("mode"));
					$(this).attr(
						"data-min-date",
						date_selector.data("min-date")
					);
					$(this).attr(
						"data-max-date",
						date_selector.data("max-date")
					);
					$(this).attr("data-default-date", formated_date);
					date_flatpickr = $(this).flatpickr({
						disableMobile: true,
						onChange: function (
							selectedDates,
							dateString,
							instance
						) {
							$("#" + field_id).val(dateString);
						},
					});
					date_flatpickrs[field_id] = date_flatpickr;
				}

				if (date_flatpickr) {
					date_flatpickr.open();
				}
			});

			$(".ur-frontend-form").each(function () {
				var $registration_form = $(this).find("form.register");

				$registration_form.on(
					"focusout",
					"#user_pass, #password_1",
					function () {
						$this = $(this);
						var this_name = $(this).attr("name");
						var this_data_id = $(this).data("id");
						var enable_strength_password = $this
							.closest("form")
							.attr("data-enable-strength-password");

						if (
							"yes" === enable_strength_password ||
							"1" === enable_strength_password
						) {
							var wrapper = $this.closest("form");
							var minimum_password_strength = wrapper.attr(
								"data-minimum-password-strength"
							);
							var disallowedListArray = [];
							if (
								"function" ===
								typeof wp.passwordStrength
									.userInputDisallowedList
							) {
								disallowedListArray = wp.passwordStrength.userInputDisallowedList();
							} else {
								disallowedListArray = wp.passwordStrength.userInputBlacklist();
							}

							disallowedListArray.push(
								wrapper
									.find('input[data-id="user_email"]')
									.val()
							); // Add email address in disallowedList.
							disallowedListArray.push(
								wrapper
									.find('input[data-id="user_login"]')
									.val()
							); // Add username in disallowedList.

							var strength = wp.passwordStrength.meter(
								$this.val(),
								disallowedListArray
							);
							if (strength < minimum_password_strength) {
								if ($this.val() !== "") {
									wrapper
										.find("#" + this_data_id + "_error")
										.remove();
									var error_msg_dom =
										'<label id="' +
										this_data_id +
										'_error" class="user-registration-error" for="' +
										this_name +
										'">' +
										ursL10n.password_strength_error +
										".</label>";
									wrapper
										.find(
											".user-registration-password-hint"
										)
										.after(error_msg_dom);
								}
							}
						}
					}
				);
			});
		});

		$(function () {
			request_recaptcha_token();
		});

		/**
		 * Append a country option and Remove it on click, if the country is not allowed.
		 */
		$(function () {
			if (
				$(
					".user-registration-EditProfileForm.edit-profile .field-country"
				).length > 0
			) {
				$(".field-country").each(function () {
					var option_value = $(this)
						.find(".ur-data-holder")
						.data("option-value");
					var option_html = $(this)
						.find(".ur-data-holder")
						.data("option-html");
					var $select = $(this).find("select");

					if (option_value && option_html) {
						if (
							$select.find('option[value="' + option_value + '"]')
								.length === 0
						) {
							$select.append(
								"<option class='ur-remove' selected='selected' value='" +
									option_value +
									"'>" +
									option_html +
									"</option>"
							);
						}
						$(this).on("click", function () {
							$(this).find(".ur-remove").remove();
						});
					}
				});
			}
		});
	};

	user_registration_form_init();

	/**
	 * Reinitialize the form again after page is fully loaded,
	 * in order to support third party popup plugins like elementor.
	 *
	 * @since 1.9.0
	 */
	$(window).on("load", function () {
		user_registration_form_init();
	});
})(jQuery);

var google_recaptcha_user_registration;
var onloadURCallback = function () {
	jQuery(".ur-frontend-form").each(function (i) {
		$this = jQuery(this);
		var form_id = $this.attr("id");
		var node_recaptcha_register = $this.find(
			"form.register #ur-recaptcha-node #node_recaptcha_register"
		).length;

		if (node_recaptcha_register !== 0) {
			$this
				.find("form.register #ur-recaptcha-node .g-recaptcha")
				.attr("id", "node_recaptcha_register_" + form_id);
			google_recaptcha_user_registration = grecaptcha.render(
				"node_recaptcha_register_" + form_id,
				{
					sitekey: ur_google_recaptcha_code.site_key,
					theme: "light",
					style:
						"transform:scale(0.77);-webkit-transform:scale(0.77);transform-origin:0 0;-webkit-transform-origin:0 0;",
				}
			);
		}

		var node_recaptcha_login = $this.find(
			"form.login .ur-form-row .ur-form-grid #ur-recaptcha-node #node_recaptcha_login"
		).length;

		if (node_recaptcha_login !== 0) {
			grecaptcha.render("node_recaptcha_login", {
				sitekey: ur_google_recaptcha_code.site_key,
				theme: "light",
				style:
					"transform:scale(0.77);-webkit-transform:scale(0.77);transform-origin:0 0;-webkit-transform-origin:0 0;",
			});
		}
	});
};

function request_recaptcha_token() {
	var node_recaptcha_register = jQuery(".ur-frontend-form").find(
		"form.register #ur-recaptcha-node #node_recaptcha_register.g-recaptcha-v3"
	).length;

	if (node_recaptcha_register !== 0) {
		grecaptcha.ready(function () {
			grecaptcha
				.execute(ur_google_recaptcha_code.site_key, {
					action: "register",
				})
				.then(function (token) {
					jQuery("form.register")
						.find("#g-recaptcha-response")
						.text(token);
				});
		});
	}
	var node_recaptcha_login = jQuery(".ur-frontend-form").find(
		"form.login .ur-form-row .ur-form-grid #ur-recaptcha-node #node_recaptcha_login.g-recaptcha-v3"
	).length;
	if (node_recaptcha_login !== 0) {
		grecaptcha.ready(function () {
			grecaptcha
				.execute(ur_google_recaptcha_code.site_key, { action: "login" })
				.then(function (token) {
					jQuery("form.login")
						.find("#g-recaptcha-response")
						.text(token);
				});
		});
	}
}

function ur_includes(arr, item) {
	if (Array.isArray(arr)) {
		for (var i = 0; i < arr.length; i += 1) {
			if (arr[i] === item) {
				return true;
			}
		}
	}
	return false;
}

(function ($) {
	$(document).on("click", ".password_preview", function (e) {
		e.preventDefault();
		var ursL10n = user_registration_params.ursL10n;

		var current_task = $(this).hasClass("dashicons-hidden")
			? "show"
			: "hide";
		var $password_field = $(this)
			.closest(".user-registration-form-row")
			.find('input[name="password"]');

		// Hide/show password for user registration form
		if ($password_field.length === 0) {
			$password_field = $(this)
				.closest(".field-user_pass")
				.find('input[name="user_pass"]');
		}
		if ($password_field.length === 0) {
			$password_field = $(this)
				.closest(".field-user_confirm_password")
				.find('input[name="user_confirm_password"]');
		}

		// Hide/show password for edit password form
		if ($password_field.length === 0) {
			$password_field = $(this)
				.closest(".user-registration-form-row")
				.find('input[name="password_current"]');
		}
		if ($password_field.length === 0) {
			$password_field = $(this)
				.closest(".user-registration-form-row")
				.find('input[name="password_1"]');
		}
		if ($password_field.length === 0) {
			$password_field = $(this)
				.closest(".user-registration-form-row")
				.find('input[name="password_2"]');
		}

		if ($password_field.length > 0) {
			switch (current_task) {
				case "show":
					$password_field.attr("type", "text");
					$(this)
						.removeClass("dashicons-hidden")
						.addClass("dashicons-visibility");
					$(this).attr("title", ursL10n.hide_password_title);
					break;
				case "hide":
					$password_field.attr("type", "password");
					$(this)
						.removeClass("dashicons-visibility")
						.addClass("dashicons-hidden");
					$(this).attr("title", ursL10n.show_password_title);
					break;
			}
		}
	});
})(jQuery);

Zerion Mini Shell 1.0