class bluditAjax {

	// Autosave works only when the content has more than 100 characters
	// callBack function need to be showAlert(), this function is for display alerts to the user, defined in alert.php
	autosave(uuid, title, content, callBack) {
		var ajaxRequest;
		if (ajaxRequest) {
			ajaxRequest.abort();
		}

		if (content.length<100) {
			return false;
		}

		ajaxRequest = $.ajax({
			type: "POST",
			data: {
				tokenCSRF: tokenCSRF, // token from env variables
				uuid: uuid,
				title: title,
				content: content
			},
			url: HTML_PATH_ADMIN_ROOT+"ajax/save-as-draft"
		});

		ajaxRequest.done(function (response, textStatus, jqXHR) {
			console.log("Bludit AJAX: autosave(): done handler");
			callBack("Autosave success");
		});

		ajaxRequest.fail(function (jqXHR, textStatus, errorThrown) {
			console.log("Bludit AJAX: autosave(): fail handler");
			callBack("Autosave failure");
		});

		ajaxRequest.always(function () {
			console.log("Bludit AJAX: autosave(): always handler");
		});
	}

	// Alert the user when the user is not logged
	userLogged(callBack) {
		var ajaxRequest;
		if (ajaxRequest) {
			ajaxRequest.abort();
		}

		console.log("[INFO] [BLUDIT AJAX] [userLogged()] Checking if the user is logged.");

		ajaxRequest = $.ajax({
			type: "GET",
			url: HTML_PATH_ADMIN_ROOT+"ajax/user-logged"
		});

		ajaxRequest.done(function (response, textStatus, jqXHR) {
			console.log("[INFO] [BLUDIT AJAX] [userLogged()] The user is logged.");
		});

		ajaxRequest.fail(function (jqXHR, textStatus, errorThrown) {
			// The fail is produced by admin.php when the user is not logged the ajax request is not possible and returns 401
			console.log("[INFO] [BLUDIT AJAX] [userLogged()] The user is NOT logged.");
			if (jqXHR.status==401) {
				callBack("You are not logged in anymore, so Bludit can't save your settings and content.");
			}
		});
	}

	generateSlug(text, parentKey, currentKey, callBack) {
		var ajaxRequest;
		if (ajaxRequest) {
			ajaxRequest.abort();
		}

		ajaxRequest = $.ajax({
		    type: "POST",
		    data: {
			tokenCSRF: tokenCSRF,
			text: text,
			parentKey: parentKey,
			currentKey: currentKey
		    },
		    url: HTML_PATH_ADMIN_ROOT+"ajax/generate-slug"
		});

		ajaxRequest.done(function (response, textStatus, jqXHR) {
			console.log("Bludit AJAX: generateSlug(): done handler");
			callBack.val(response["slug"]);
		});

		ajaxRequest.fail(function (jqXHR, textStatus, errorThrown) {
			console.log("Bludit AJAX: generateSlug(): fail handler");
		});

		ajaxRequest.always(function () {
			console.log("Bludit AJAX: generateSlug(): always handler");
		});
	    }
}