/**
 * @package Helix3 Framework
 * @author JoomShaper https://www.joomshaper.com
 * @copyright (c) 2010 - 2021 JoomShaper
 * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPLv2 or Later
 */
jQuery(function ($) {
	$(".sp-image-field").each(function (index, el) {
		var $field = $(el);

		// Upload form
		$field.find(".btn-sp-image-upload").on("click", function (event) {
			event.preventDefault();
			$field.find(".sp-image-upload").click();
		});

		//Upload
		$field.find(".sp-image-upload").on("change", function (e) {
			e.preventDefault();
			var $this = $(this);
			var file = $(this).prop("files")[0];

			var data = new FormData();
			data.append("option", "com_ajax");
			data.append("plugin", "helix3");
			data.append("action", "upload_image");
			data.append("imageonly", false);
			data.append("format", "json");

			if (file.type.match(/image.*/)) {
				data.append("image", file);

				$.ajax({
					type: "POST",
					data: data,
					contentType: false,
					cache: false,
					processData: false,
					beforeSend: function () {
						$this.prop("disabled", true);
						$field.find(".btn-sp-image-upload").attr("disabled", "disabled");
						var loader = $(
							'<div class="sp-image-item-loader"><i class="fa fa-circle-o-notch fa-spin"></i></div>'
						);
						$field.find(".sp-image-upload-wrapper").html(loader);
					},
					success: function (response) {
						var data = $.parseJSON(response);

						if (data.status) {
							$field.find(".sp-image-upload-wrapper").empty().html(data.output);
						} else {
							$field.find(".sp-image-upload-wrapper").empty();
							alert(data.output);
						}

						var $image = $field.find(".sp-image-upload-wrapper").find(">img");

						if ($image.length) {
							$field.find(".btn-sp-image-upload").addClass("hide");
							$field.find(".btn-sp-image-remove").removeClass("hide");
							$field.find(".form-field-spimage").val($image.data("src"));
						} else {
							$field.find(".btn-sp-image-upload").removeClass("hide");
							$field.find(".btn-sp-image-remove").addClass("hide");
							$field.find(".form-field-spimage").val("");
						}

						$this.val("");
						$this.prop("disabled", false);
						$field.find(".btn-sp-image-upload").removeAttr("disabled");
					},
					error: function () {
						$field.find(".sp-image-upload-wrapper").empty();
						$this.val("");
					},
				});
			}

			$this.val("");
		});
	});

	// Delete Image
	$(document).on("click", ".btn-sp-image-remove", function (event) {
		event.preventDefault();

		var $this = $(this);
		var $parent = $this.closest(".sp-image-field");

		if (confirm("You are about to permanently delete this item. 'Cancel' to stop, 'OK' to delete.") == true) {
			var request = {
				option: "com_ajax",
				plugin: "helix3",
				action: "remove_image",
				src: $parent.find(".sp-image-upload-wrapper").find(">img").data("src"),
				format: "json",
			};

			$.ajax({
				type: "POST",
				data: request,
				success: function (response) {
					var data = $.parseJSON(response);
					if (data.status) {
						$parent.find(".sp-image-upload-wrapper").empty();
						$parent.find(".btn-sp-image-upload").removeClass("hide");
						$parent.find(".btn-sp-image-remove").addClass("hide");
						$parent.find(".form-field-spimage").val("");
					} else {
						alert(data.output);
					}
				},
			});
		}
	});
});
